From c34e53111cd8833f75b228c47ae84ca3bd4b0eea Mon Sep 17 00:00:00 2001 From: sky Date: Sun, 22 Jun 2025 11:46:39 -0400 Subject: [PATCH 01/21] first dev commit --- .gitignore | 1 + .prettierrc | 4 + 404.html | 38 +++ css/games.css | 48 +++ css/loader.css | 32 ++ css/main.css | 70 ++++ css/oldstyle.css | 673 +++++++++++++++++++++++++++++++++++++ css/pages.css | 107 ++++++ css/sidebar.css | 58 ++++ css/themes.css | 12 + home.html | 88 +++++ img/apps.svg | 1 + img/bookmarklets.svg | 1 + img/games.svg | 6 +- img/home.svg | 1 + img/open.svg | 1 + img/settings.svg | 1 + index.html | 57 ++++ js/games.js | 56 +++ js/main.js | 217 +++++++++++- js/particlesjs-config.json | 105 ++++++ loader.html | 38 +++ projects.html | 37 ++ 23 files changed, 1650 insertions(+), 2 deletions(-) create mode 100644 .prettierrc create mode 100755 css/games.css create mode 100644 css/loader.css create mode 100755 css/main.css create mode 100755 css/oldstyle.css create mode 100755 css/pages.css create mode 100755 css/sidebar.css create mode 100755 home.html create mode 100644 img/apps.svg create mode 100644 img/bookmarklets.svg create mode 100644 img/home.svg create mode 100644 img/open.svg create mode 100644 img/settings.svg create mode 100755 js/particlesjs-config.json diff --git a/.gitignore b/.gitignore index e69de29..cb76b31 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +resources/ diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..12caa8b --- /dev/null +++ b/.prettierrc @@ -0,0 +1,4 @@ +{ + "tabWidth": 4, + "printWidth": 10000 +} \ No newline at end of file diff --git a/404.html b/404.html index 16975b7..ef64c88 100644 --- a/404.html +++ b/404.html @@ -32,9 +32,22 @@ @@ -57,8 +70,33 @@

Trying to access a page such as login, register, or a user page? Those are only available on official links.

Join the Discord to find official links.

+<<<<<<< HEAD +======= + + + + + +>>>>>>> c2041b6 (first dev commit)
diff --git a/css/games.css b/css/games.css new file mode 100755 index 0000000..9e70986 --- /dev/null +++ b/css/games.css @@ -0,0 +1,48 @@ +game { + width: 20vw; + height: 10vh; + background-color: color-mix(in srgb, var(--color-2) 40%, #00000000 60%); + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + border-radius: 20px; + margin: 15px; + transition-duration: 0.25s; + backdrop-filter: blur(2px); + box-shadow: 0 0 10px var(--color-2); +} +game:hover { + transform: scale(1.1); + filter:brightness(1.15); +} +game img { + height: 80%; + border-radius: 15px; + aspect-ratio: 1 / 1; + margin: 10px; + justify-self: left; + margin-right: auto; +} +game h1 { + font-size: 14px; + margin: 15px; + max-width: 50%; +} +#games { + width: 90vw; + height: 100%; + display: flex; + flex-direction: row; + justify-content: center; + flex-wrap: wrap; + min-height: calc(100vh - (18px * 2 + 5px * 2 + 20px * 2)); + gap: 0px; +} + +#noResults { + display: none; + font-size: 28px; + color: var(--color-1); + text-shadow: var(--color-1) 0 0 10px; +} \ No newline at end of file diff --git a/css/loader.css b/css/loader.css new file mode 100644 index 0000000..838443f --- /dev/null +++ b/css/loader.css @@ -0,0 +1,32 @@ +#gamecontainer { + width: 90vw; + height: auto; + border-radius: 15px; + background-color: color-mix(in srgb, var(--color-2) 50%, #00000000 50%); + box-shadow: 0 0 10px var(--color-2); + backdrop-filter: blur(6px); +} +#gameFrame { + width: 99%; + height: 75vh; + margin: 0.5%; + margin-bottom: 0; + border-radius: 10px; +} +#infobox { + height: 8vh; + width: 100%; + margin: 1% 0; + display: flex; + justify-content: center; + align-items: center; +} +#infobox img { + height: 100%; + margin: 1.5%; + aspect-ratio: 1 / 1; + border-radius: 8px; +} +#infobox h2 { + margin-right: auto; +} \ No newline at end of file diff --git a/css/main.css b/css/main.css new file mode 100755 index 0000000..e5afa66 --- /dev/null +++ b/css/main.css @@ -0,0 +1,70 @@ +@import url("/css/themes.css"); +@import url('https://fonts.googleapis.com/css2?family=Mulish&display=swap'); +:root { + --text-color: #fff; + --bg-1: #5a189a; + --bg-2: #10002b; + --color-1: #E0AAFF; + --color-2: #7B2CBF; + --color-3: #3C096C; + --color-4: #240046; +} +html, +body { + /* height: 100vh; */ + width: 100vw; + color: white; + background-color: black; +} + +* { + padding: 0; + margin: 0; + border: none; + font-family: "Mulish", serif; +} +body { + animation: 1s ease-out loadIn; +} +@keyframes loadIn { + from {opacity: 0;transform: translateY(-32px);} + to {opacity: 1;transform: translateY(0px);} +} + +body { + display: flex; + filter: drop-shadow(0px 0px 4px #ffffff99); +} + +.samerow { + display: flex; + justify-content: center; + gap: 0; + flex-wrap: wrap; + align-items: center; + justify-content: center; +} +.samerow img { + width: 80px; + aspect-ratio: 1 / 1; + padding: 5px; + margin: 10px; + user-select: none; +} + +h1 { + font-size: 48px; + margin: 10px; +} +h2 { + font-size: 32px; + margin: 8px; +} +h3 { + font-size: 24px; + margin: 4px; +} +p { + font-size: 16px; + margin: 2px; +} \ No newline at end of file diff --git a/css/oldstyle.css b/css/oldstyle.css new file mode 100755 index 0000000..6a0502b --- /dev/null +++ b/css/oldstyle.css @@ -0,0 +1,673 @@ +@import url("https://fonts.googleapis.com/css2?family=Prompt:wght@300&display=swap"); + +@keyframes loadInAnimation { + 0% { + opacity: 0; + } + 100% { + opacity: 100; + } +} + +:root { + --inputbg: #3c096c; + --inputborder: #5a189a; + --uibg: #240046; + --textcolor: #fff; + --bg: #10002b; + --margin: 4rem; +} +.hiddenUpload { + display: none; + visibility: hidden; +} +* { + transition-duration: 0.5s; + outline: none; + border: none; + box-sizing: border-box; + align-content: center; + text-align: center; + font-family: "Prompt", sans-serif; + color: var(--textcolor); +} +body { + margin: 0; + padding: 0; + background: var(--bg); + color: var(--textcolor); + background-position: center; + background-repeat: no-repeat; + background-size: cover; + background-attachment: fixed; +} + +header, +footer { + background-color: var(--uibg); + display: flex; + border-bottom: none; + font-weight:700; + padding: 0.7rem; + width: 100%; + z-index: 1; + justify-content: center; + text-align: center; + text-decoration: none; +} + +#time { +font-weight:100; +} +header { + top: 0; + border-radius: 0 0 20px 20px; + position: fixed; + box-shadow: 0 5px 10px var(--uibg); +} + +footer.noscroll { + position: fixed; + overflow: hidden; +} + +footer { + bottom: 0; + border-radius: 20px 20px 0 0; + box-shadow: 0 -5px 10px var(--uibg); +} + +footer a, +footer a:visited, +header a, +header a:visited { + margin-right: 1.5rem; + margin-left: 1.5rem; + text-decoration: none; +} + +footer a:hover, +header a:hover { + text-shadow: 2px 2px 6px var(--textcolor); +} + + +@media only screen and (max-width: 768px) { + header, + footer { + flex-direction: column; + align-items: center; + } + + header { + border-radius: 0; + } + + footer { + border-radius: 0; + } + * { + --margin: 12rem; + } +} + +main { + animation: 1.25s ease-in-out 0s 1 loadInAnimation; + align-items: center; + flex-direction: column; + display: flex; + min-height: calc(100vh - (2 * 0.7rem)); + gap: 0; + flex-wrap: wrap; + margin: auto; + margin-top: var(--margin); + width: 90%; + height:auto; +} +main#main.noscroll { + justify-content: center; +} +h1, +h2, +h3, +p, +a, +label { + margin: 0; + padding: 0; + text-shadow: var(--shadow); +} +.samerow { + display: flex; + justify-content: center; + gap: 0; + flex-wrap: wrap; + align-items: center; + justify-content: center +} +h1 { + font-size: 60px; +} + +h2 { + font-size: 40px; +} +h3 { + font-size: 20px; +} +p, +a { + font-size: 16px; +} + +button, +input#websubmit.submit, +input[type="submit"] { + cursor: pointer; + background-color: var(--inputbg); + border-color: var(--inputborder); + border-width: 2px; + border-radius: 10px; + border-style: solid; + padding: 7px; + margin-left: 20px; + margin-right: 20px; + margin: 10px; +} + +button:hover, +input#websubmit.submit:hover, +input[type="submit"]:hover { + filter: brightness(80%); + transform: scale(1.07); +} + +img { + width: 100%; + aspect-ratio: auto; + user-select: none; + filter: drop-shadow(var(--shadow)); + image-rendering: pixelated; +} + +.img-container a { + width: 100%; +} + +.img-container { + display: flex; + justify-content: center; + align-items: center; + flex-direction: row; + gap: 0; + flex-wrap: wrap; + width: 6%; + aspect-ratio: 1 / 1; + margin: 2%; +} + +.game, +.suggest { + width: 15%; + border-radius: 20px; + display: inline-block; + background-color: var(--uibg); + margin: 15px; + cursor: pointer; + box-shadow: 0px 0px 5px 5px var(--uibg); +} + +.game:hover, +.suggest:hover { + transform: scale(1.1); + filter: brightness(85%); + box-shadow: 0px 0px 5px 5px var(--uibg); +} + +.game h1, +.suggest h1 { + font-size: 12px; + float: right; + margin-right: 10px; + margin-top: 3px; + margin-bottom: 3px; +} + +.game img, +.suggest img { + width: 100%; + border-radius: 20px; + aspect-ratio: 1 / 1; +} + +img.star { + float: left; + width: 10%; + margin-top: 3px; + margin-bottom: 3px; + margin-left: 10px; +} + +#noscroll { + overflow-y: hidden; + justify-content: center; +} + +#games, +#pinned { + width: 100%; + justify-content: center; +} + +input[type="text"], +input[type="password"] { + width: 50%; + background-color: var(--inputbg); + box-sizing: border-box; + font-size: 20px; + padding: 0.8% 0.8%; + text-align: center; + border-radius: 5px; + outline: none; + margin: 10px; + border: 2px solid var(--inputborder); + border-radius: 5px; + transition: opacity 0.25s ease-in-out; + opacity: 100%; +} +input[type="text"]:hover, +input[type="password"]:hover { + opacity: 80%; +} +::placeholder { + color: var(--textcolor); + opacity: 0.4; /* Firefox */ +} + +.bookmarkletdiv { + width: 30%; + background-color: var(--uibg); + box-shadow: 0px 0px 5px 5px var(--uibg); + padding: 5px; + margin: 15px; + border-radius: 10px; + display: inline-block; +} + +.bookmarkletdiv a { + font-size: 30px; +} + +form { + width: 100%; +} +.samerow.themebtns { + width: 70%; +} + +select { + border-radius: 5px; + background-color: var(--inputbg); + border-color: var(--inputborder); + border-width: 5px; + border-radius: 10px; + border-style: solid; + padding: 0.5% 0.5%; + margin: 0.25%; +} + +thumb.png .img-credits { + height: 40vh; + width: auto; + box-shadow: 0px 0px 20px rgba(255, 255, 255, 0.555); +} + +label { + font-size: 20px; + padding-left: 5px; +} +.avatar { + margin: 5px; +} +#bgimg { + width: 30vw; + font-size: 16px; +} +.usericon { + width: 24px; + height: 24px; + align-self: right; + /* display: none; */ +} +#toast { + position: fixed; + top: 0; + right: 0; + margin: 10px; + padding: 10px; + background-color: var(--inputbg); + border-radius: 10px; + border-width: 10px; + border-color: var(--inputborder); + border-style: solid; + z-index: 10000; + text-align: center; + opacity: 0; + transition-duration: 1s; + max-width: 30%; +} +#toast h1 { + font-size: 20px; + text-align: center; +} +#toast p { + font-size: 16px; + text-align: center; +} +#discord { + position: fixed; + bottom: 10px; + right: 10px; + width: 56px; + height: 56px; + z-index: 199975; + border-radius: 100%; + background-image: url("/img/discord.svg"); + background-size: 60%; + background-position: center; + background-repeat: no-repeat; + border-width: 0; +} + +div.profile.top { + width: 90%; + height: 20vh; + background-color: var(--uibg); + border-radius: 10px; + display: flex; + justify-content: left; + align-items: center; + box-shadow: 0px 0px 5px 5px var(--uibg); +} +div.profile.top.text { + position: relative; + display: flex; + flex-direction: column; + width: auto; + justify-self: center; + height: auto; + margin: 30px; + max-width: 40%; +} + +div.profile.top.text.right { + margin-left: auto; + margin-right: 80px; +} + +div.profile.top.text h1 { + font-size: 2vw; +} +div.profile.top.text h2 { + font-size: 1.25vw; +} +div.profile.top.text a { + font-size: 1.25vw; +} + +img.pfp { + height: 80%; + object-fit: contain; + width: auto; + margin: 30px; + border-radius: 20px; + aspect-ratio: 1 / 1; +} +div.profile.top.text .about { + height: auto; + max-width: 100%; +} + +#edit { + cursor: pointer; + position: relative; + height: 2vw; + margin-left: 5px; + width: auto; +} +#counter { + position: absolute; + bottom: 0; + right: 0; +} +#popup { + width: 50%; + height: 40%; + z-index: 99999999; + position: absolute; + position: absolute; + top: 50%; + left: 50vw; + transform: translate(-50%, -50%); + display: flex; + flex-direction: column; + background-color: var(--inputbg); + border-color: var(--inputborder); + border-width: 5px; + border-radius: 10px; + border-style: solid; + justify-content: center; + align-items: center; + box-shadow: 0px 0px 5px 5px var(--uibg); +} +#popup input { + width: 90%; + height: 30%; +} +#popup input[type=file] { + height: auto; + text-align-last: center; + display: block; + margin: 30px; +} +#popup h1 { + font-size: 32px; +} + +#popup #close { + position: absolute; + right: 10px; + top: 10px; + +} +img.badges { + position: relative; + height: 2vw; + margin-left: 5px; + width: auto; +} + +p#counter { + bottom: 38%; + right: 7%; +} + + +.users { + text-decoration: none; + width: 30%; + height: 10vh; + background-color: var(--uibg); + border-radius: 10px; + display: flex; + align-items: center; + justify-content: center; + box-shadow: 0px 0px 5px 5px var(--uibg); + margin: 1.5%; +} +.users h1, .users p { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + justify-self: center; + height: auto; + max-width: 100%; + margin: auto; +} +.user_info { + width: 100%; +} + +.users h1 { + font-size: 1vw; +} +.users p { + font-size: 0.75vw; +} +.users a { + font-size: 0.75vw; + text-decoration: underline; +} + +.users p { + height: auto; + max-width: 100%; +} +#users { + width: 95%; + display: flex; + align-items: center; + flex-wrap: wrap; + flex-direction: row; + display: flex; + align-items: center; + justify-content: center; +} + +.pages-btn { + margin: 10px; +} +#ai { + position: absolute; + right: 10px; + bottom: 10px; +} + +div.profile.played { + margin: 40px; + width: 90%; + height: auto; + padding: 30px; + background-color: var(--uibg); + border-radius: 10px; + display: flex; + justify-content: left; + align-items: center; + box-shadow: 0px 0px 5px 5px var(--uibg); + justify-content: center; + flex-wrap: wrap; + +} +#played-games { + width: 100%; + display: flex; + flex-wrap: wrap; + justify-content: center; +} +div.played-game { + width: 13%; + height: auto; + margin: 2%; + padding: 0; +} +div.played-game img { + aspect-ratio: 1 / 1; + border-radius: 20px; +} +.friend-icon { + width: 5%; + position: absolute; + left: 2%; +} +#chat { + width: 90%; + background-color: var(--uibg); + height: calc(100vh - (var(--margin) * 2) - 60px - 24px - 12px - 30px - 80px); +} +#messages { + align-items: end; + flex-direction: column; + overflow-y: scroll; + overflow-x: hidden; + height: 88%; + display: flex; +} +message { + width: calc(100% - 20px); + padding: 20px; + margin: 10px; + background-color: var(--inputbg); + border-radius: 10px; +} +message h1 { + font-size: 40px; +} +message h2 { + font-size: 32px; +} +message.user { + background-color: var(--inputborder); +} +message.bot { + justify-self: right; +} +#chatbox { + width: calc(100% - 20px); +} +.messagebox { + width: 100%; + height: 12%; +} +.evensmaller { + font-size: 12px; +} +#gamecontainer { + width: 80vw; + height: calc(100vh - (var(--margin) * 2)); + padding: 10px; + border-radius: 10px; + background-color: var(--uibg); +} +#gameFrame { + width: 100%; + height: 90%; + border-radius: 10px; + margin: 0; + padding: 0; +} +#infobox { + width: 100%; + height: 10%; + display: flex; +} +#infobox img { + height: 90%; + width: auto; + margin-right: 20px; + border-radius: 10px; +} +@keyframes toastFade { + 0% { + opacity: 0; + } + 15% { + opacity: 1; + } + 85% { + opacity: 1; + } + 100% { + opacity: 0; + } +} \ No newline at end of file diff --git a/css/pages.css b/css/pages.css new file mode 100755 index 0000000..cabf5b3 --- /dev/null +++ b/css/pages.css @@ -0,0 +1,107 @@ +@property --gradient-x { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --gradient-y { + syntax: ""; + inherits: false; + initial-value: 0%; +} +body { + background: rgb(16, 0, 43); + background: radial-gradient( + circle at var(--gradient-x) var(--gradient-y), + var(--bg-1) 0%, + var(--bg-2) 100% + ); + background-size: 100vw 100vh; + background-repeat: no-repeat; + background-attachment: fixed; + transition: --gradient-x 30s ease-in-out, + --gradient-y 30s ease-in-out; + overflow-x: hidden; +} + +body { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + text-align: center; + width: 100vw; + min-height: 100vh; + position: relative; +} +#particles-js { + width: 100vw; + height: 100vh; + position: absolute; + z-index: -1000; + border: none; + overflow-y: hidden; + top: 0; + transition-duration: 0.05s; + transition-timing-function: ease-out; +} +input[type=text] { + width: 70%; + border-style: solid; + border-width: 2px; + padding: 18px; + margin: 5px; + text-align: center; + border-radius: 10px; + background-color: var(--color-2); + border-color: var(--color-3); + color: var(--text-color); + outline: none; + transition-duration: 0.25s; + font-size: 20px; + text-shadow: var(--color-1) 0 0 10px; +} +input[type=text]:focus { + filter:brightness(1.25) !important; +} +input[type=text]:hover { + filter:brightness(1.1); +} +input[type=text]::placeholder { + color: color-mix(in srgb, var(--text-color) 20%, #00000000 80%); + text-shadow: color-mix(in srgb, var(--text-color) 40%, #00000000 60%) 0 0 10px; +} +/* Chrome, Edge and Safari */ +*::-webkit-scrollbar { + height: 10px; + width: 8px; +} +*::-webkit-scrollbar-track { + border-radius: 5px; + background-color: var(--color-4); +} + +*::-webkit-scrollbar-track:hover { + filter:brightness(1.1); +} + +*::-webkit-scrollbar-track:active { + filter:brightness(1.25); +} + +*::-webkit-scrollbar-thumb { + border-radius: 5px; + background-color: var(--color-2); +} + +*::-webkit-scrollbar-thumb:hover { + filter:brightness(1.1); +} + +*::-webkit-scrollbar-thumb:active { + filter:brightness(1.25); +} + +.title { + color: var(--color-1); + text-shadow: var(--color-1) 0 0 24px; +} \ No newline at end of file diff --git a/css/sidebar.css b/css/sidebar.css new file mode 100755 index 0000000..fff123b --- /dev/null +++ b/css/sidebar.css @@ -0,0 +1,58 @@ +body { + overflow: hidden; +} +sidebar { + background-color: linear-gradient(19deg,rgba(87, 199, 133, 1) 0%, rgba(237, 221, 83, 1) 100%);; + height: 100%; + width: 50px; + display: flex; + flex-direction: column; + align-items: center; +} +.sidebar-item { + margin: 6px; + padding: 6px; + height: 26px; + width: 26px; + transition-duration: 0.5s; + transition-timing-function: ease-in-out; +} + +iframe { + width: calc(100% - 50px - 10px); + height: calc(100vh - 20px); + margin: 10px; + margin-right: 0px; + border-radius: 8px; +} + +.sidebar-divider { + height: 2px; + border-radius: 20px; + width: 80%; + background-color: #ffffff22; + /* auto is being stupid + 100vh minus height of 1 object 7 times minus the margin and padding of 7 objects (multiplied twice bc margin and padding on top and bottom) */ + margin-bottom: calc(100vh - 26px * 7 - ((6px + 6px) * 2) * 7); +} + +.sidebar-item-descriptor { + position: fixed; + right: 25px; + opacity: 0; + transform: translateY(-32px); + text-align: left; + background-color: black; + border-radius: 10px; + padding: 8px; + color: white; + font-size: 12px; + user-select: none; + pointer-events: none; + transition: opacity 0.5s 0.2s, right 0.5s 0.2s; + font-family: "Mulish", serif; +} +.sidebar-item:hover .sidebar-item-descriptor { + opacity: 1; + right: 55px; +} \ No newline at end of file diff --git a/css/themes.css b/css/themes.css index 61db16e..1ce53e8 100644 --- a/css/themes.css +++ b/css/themes.css @@ -1,3 +1,4 @@ +<<<<<<< HEAD :root { --inputbg: #3c096c; --inputborder: #5a189a; @@ -293,3 +294,14 @@ body[theme=nighttime] { --shadow: 0px 0px 4px #fff; } +======= +body { + --text-color: #fff; + --bg-1: #5a189a; + --bg-2: #10002b; + --color-1: #E0AAFF; + --color-2: #7B2CBF; + --color-3: #3C096C; + --color-4: #240046; +} +>>>>>>> c2041b6 (first dev commit) diff --git a/home.html b/home.html new file mode 100755 index 0000000..f3ee942 --- /dev/null +++ b/home.html @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Selenite + + + + + +

selenite.

+ +

better thank me for this unblocked website

+
+
+ +
+
+ +
+
+ +
+
+ + diff --git a/img/apps.svg b/img/apps.svg new file mode 100644 index 0000000..0174a7e --- /dev/null +++ b/img/apps.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/bookmarklets.svg b/img/bookmarklets.svg new file mode 100644 index 0000000..ffaa74f --- /dev/null +++ b/img/bookmarklets.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/games.svg b/img/games.svg index 89ba271..64fa48d 100644 --- a/img/games.svg +++ b/img/games.svg @@ -1,3 +1,7 @@ +<<<<<<< HEAD - \ No newline at end of file + +======= + +>>>>>>> c2041b6 (first dev commit) diff --git a/img/home.svg b/img/home.svg new file mode 100644 index 0000000..f572a65 --- /dev/null +++ b/img/home.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/open.svg b/img/open.svg new file mode 100644 index 0000000..c82800a --- /dev/null +++ b/img/open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/settings.svg b/img/settings.svg new file mode 100644 index 0000000..d871081 --- /dev/null +++ b/img/settings.svg @@ -0,0 +1 @@ + diff --git a/index.html b/index.html index 64e6d57..de9958d 100644 --- a/index.html +++ b/index.html @@ -32,6 +32,7 @@ ] } +<<<<<<< HEAD @@ -60,12 +61,21 @@ +======= + + + + + + +>>>>>>> c2041b6 (first dev commit) Selenite +<<<<<<< HEAD @@ -102,5 +112,52 @@ Donate About
+======= + + + + + + + + + + + + + + + +>>>>>>> c2041b6 (first dev commit) diff --git a/js/games.js b/js/games.js index c8cee27..0c0ede6 100644 --- a/js/games.js +++ b/js/games.js @@ -1,3 +1,4 @@ +<<<<<<< HEAD $.getJSON("/data/games.json", function (data) { if (document.readyState === "complete") { loadGames(data); @@ -197,3 +198,58 @@ function recommendedGames() { $("#recommend").text("Click to view recommended games!"); } } +======= +document.addEventListener("DOMContentLoaded", loadGames); +let elements = []; +async function loadGames() { + // taken from mdn + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort + let data = await (await fetch("/data/games.json")).json(); + sorted = data.sort((a, b) => { + const n1 = a.name.toUpperCase(); + const n2 = b.name.toUpperCase(); + if (n1 < n2) { + return -1; + } + if (n1 > n2) { + return 1; + } + // shouldnt happen but just incase + return 0; + }); + let gamesElement = document.getElementById("games"); + sorted.forEach(element => { + let newElement = document.createElement("game"); + newElement.setAttribute("data-target", element.directory); + let image = document.createElement("img"); + image.src = `/semag/${element.directory}/${element.image}` + let title = document.createElement("h1"); + title.innerText = element.name; + newElement.appendChild(image); + newElement.appendChild(title); + gamesElement.appendChild(newElement); + newElement.addEventListener("click", ()=>{ + location.href=`/loader.html?title=${encodeURIComponent(element.name)}&dir=${element.directory}&img=${element.image}` + }) + elements.push(newElement); + }); +} +document.addEventListener("DOMContentLoaded", ()=>{ + document.getElementById("gamesearch").addEventListener("input", ()=>{ + let input = document.getElementById("gamesearch").value.toUpperCase(); + let total = 0; + if(elements.length > 0) { + elements.forEach((element) => { + let title = element.childNodes[1].innerText.toUpperCase(); + if(title.includes(input)) { + element.style.display = "flex"; + } else { + element.style.display = "none"; + total++; + } + }) + } + document.getElementById("noResults").style.display = total >= elements.length ? "flex" : "none" + }) +}) +>>>>>>> c2041b6 (first dev commit) diff --git a/js/main.js b/js/main.js index 49862cd..fd50c0f 100644 --- a/js/main.js +++ b/js/main.js @@ -1,3 +1,4 @@ +<<<<<<< HEAD var interval; document.addEventListener("DOMContentLoaded", function () { if (localStorage.getItem("theme")) { @@ -161,4 +162,218 @@ document.head.appendChild(cookieConsentScript); let cookieConsentStyle = document.createElement("link"); cookieConsentStyle.href = "/js/cookieConsent.css"; cookieConsentStyle.rel = "stylesheet"; -document.head.appendChild(cookieConsentStyle); \ No newline at end of file +document.head.appendChild(cookieConsentStyle); +======= +function setBackground() { + let randomNumbers = [100-Math.abs(Math.floor(Math.random() * 200) - 99), 100-Math.abs(Math.floor(Math.random() * 200) - 99)]; + document.body.style.setProperty("--gradient-x", randomNumbers[0] + "%"); + document.body.style.setProperty("--gradient-y", randomNumbers[1] + "%"); + setTimeout(setBackground, 30000) +} +function loadPJS() { + let div = document.createElement("div"); + div.id = "particles-js"; + document.body.appendChild(div); + let script = document.createElement("script"); + script.src = "https://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"; + document.head.appendChild(script); + script.addEventListener("load", ()=>{ + particlesJS.load('particles-js', "js/particlesjs-config.json", ()=>{}); + }); +} + +function cursor() { + let cursor = document.createElement("div"); + cursor.style.width = "30px"; + cursor.style.height = "30px"; + cursor.style.backgroundColor = "var(--color-1)"; + cursor.style.position = "absolute"; + cursor.style.borderRadius = "100%"; + // cursor.style.filter = "blur(40px)"; + cursor.style.pointerEvents = "none"; + document.body.appendChild(cursor); + document.addEventListener("mousemove", (e) => { + cursor.style.top = `${e.clientY - 15}px`; + cursor.style.left = `${e.clientX - 15}px`; + }) +} + +document.addEventListener("DOMContentLoaded", ()=>{ + setBackground(); + loadPJS(); + cursor(); +}) + +document.addEventListener("scroll", ()=>{ + console.log("scroll"); + document.getElementById("particles-js").style.top = window.scrollY + "px"; +}) + + + + +// var interval; +// document.addEventListener("DOMContentLoaded", function () { +// if (localStorage.getItem("theme")) { +// localStorage.setItem("selenite.theme", localStorage.getItem("theme")); +// localStorage.removeItem("theme"); +// } +// if (localStorage.getItem("selenite.theme")) { +// document.body.setAttribute("theme", localStorage.getItem("selenite.theme")); +// } else { +// document.body.setAttribute("theme", "main"); +// } +// if (document.querySelectorAll("[id=adcontainer]")) { +// for (let i = 0; i < document.querySelectorAll("[id=adcontainer]").length; i++) { +// if (Math.random() < 0.5 || localStorage.getItem("selenite.adblock") == "true") document.querySelectorAll("[id=adcontainer]")[i].innerHTML = ""; +// } +// } +// const iconSetting = document.querySelector("input#discordIcon"); +// const blockClose = document.querySelector("input#blockClose"); +// const openBlank = document.getElementById("blank"); +// const bgTheme = document.querySelector("input#bgTheme"); +// // if (document.querySelector("widgetbot-crate")) { +// // if (localStorage.getItem("selenite.discordIcon") == "true") { +// // const widget = document.querySelector("widgetbot-crate"); +// // widget.setAttribute("style", "display:none"); +// // } +// // } +// if (document.querySelector("input#discordIcon")) { +// if (localStorage.getItem("selenite.discordIcon") == "true") { +// iconSetting.checked = true; +// } +// iconSetting.addEventListener("click", () => { +// localStorage.setItem("selenite.discordIcon", iconSetting.checked); +// }); +// } +// if (document.querySelector("input#blockClose")) { +// if (localStorage.getItem("selenite.blockClose") == "true") { +// blockClose.checked = true; +// } +// blockClose.addEventListener("click", () => { +// localStorage.setItem("selenite.blockClose", blockClose.checked); +// }); +// } +// if (document.querySelector("input#tabDisguise")) { +// if (localStorage.getItem("selenite.tabDisguise") == "true") { +// tabDisguise.checked = true; +// } +// tabDisguise.addEventListener("click", () => { +// localStorage.setItem("selenite.tabDisguise", tabDisguise.checked); +// }); +// } +// if (document.querySelector("input#bgTheme")) { +// bgTheme.checked = true; +// } +// document.getElementById("blank").addEventListener("click", () => { +// win = window.open(); +// win.document.body.style.margin = "0"; +// win.document.body.style.height = "100vh"; +// html = ` +//
`; +// win.document.querySelector("html").innerHTML = html; +// win.eval(`let selenite = document.getElementById("selenite");console.log(selenite);selenite.setAttribute("src", "${location.origin}");console.log(selenite);document.getElementById("goBack").addEventListener("click", function () {selenite.contentDocument.location.href = selenite.contentDocument.location.origin;});document.getElementById("reload").addEventListener("click", function () {selenite.contentDocument.location.href = selenite.contentDocument.location.href;})`); +// location.href = "https://google.com"; +// close(); +// }); +// if ($("#panicmode").length > 0) { +// $("#panicmode").prop({ href: panicurl }); +// } +// if ($(".seleniteminified").length > 0) { +// $.get("https://raw.githubusercontent.com/skysthelimitt/selenite-optimized/main/build/bookmark.txt", function (data) { +// $(".seleniteminified").prop({ href: data }); +// }); +// $.get("https://raw.githubusercontent.com/car-axle-client/car-axle-client/v10/dist/build.js", function (data) { +// $(".caraxle").prop({ href: `javascript:${encodeURI(data)}` }); +// }); +// } +// }); +// function setPanicMode() { +// if (!$("#panic").val().startsWith("https")) { +// document.cookie = "panicurl=https://" + $("#panic").val(); +// return; +// } + +// document.cookie = "panicurl=" + $("#panic").val(); +// } +// function copyToClipboard(text) { +// navigator.clipboard.writeText(text); +// alert("Copied text!"); +// } +// function setTheme(theme) { +// localStorage.setItem("selenite.theme", theme); +// document.body.setAttribute("theme", theme); +// if (theme != "custom") { +// document.getElementById("customMenu").style.display = "none"; +// document.body.style = ""; +// } +// } +// function setPanicMode() { +// if (!$("#panic").val().startsWith("https")) { +// document.cookie = "panicurl=https://" + $("#panic").val(); +// return; +// } +// document.cookie = "panicurl=" + $("#panic").val(); +// } +// function setPassword() { +// localStorage.setItem("selenite.password", enc.encode(document.getElementById("pass").value)); +// } +// function delPassword() { +// location.hash = ""; +// localStorage.removeItem("selenite.passwordAtt"); +// localStorage.removeItem("selenite.password"); +// } + +// $(document).ready(function () { +// if (!window.location.href.startsWith("about:")) { +// $("#webicon").attr("placeholder", window.location.href.replace(/\/[^\/]*$/, "/")); +// } +// }); +// function loadScript(a, b) { +// var c = document.createElement("script"); +// (c.type = "text/javascript"), (c.src = a), (c.onload = b), document.head.appendChild(c); +// } +// function toast(message, onclick) { +// const toast = document.createElement("div"); +// toast.setAttribute("id", "toast"); +// console.log(message.time); +// toast.innerHTML = `

${message.title}${message.time ? ` - ${timeAgo(new Date(message.time * 1000))}` : ""}

${message.message}

`; +// toast.style.animation = "toastFade 6s"; +// document.body.appendChild(toast); +// if (onclick) { +// toast.addEventListener("click", onclick); +// toast.style.cursor = "pointer"; +// } +// setTimeout(() => { +// toast.remove(); +// }, 6000); +// } +// function timeAgo(input) { +// const date = input instanceof Date ? input : new Date(input); +// const formatter = new Intl.RelativeTimeFormat("en"); +// const ranges = { +// years: 3600 * 24 * 365, +// months: 3600 * 24 * 30, +// weeks: 3600 * 24 * 7, +// days: 3600 * 24, +// hours: 3600, +// minutes: 60, +// seconds: 1, +// }; +// const secondsElapsed = (date.getTime() - Date.now()) / 1000; +// for (let key in ranges) { +// if (ranges[key] < Math.abs(secondsElapsed)) { +// const delta = secondsElapsed / ranges[key]; +// return formatter.format(Math.round(delta), key); +// } +// } +// } +// let cookieConsentScript = document.createElement("script"); +// cookieConsentScript.src = "/js/cookieConsent.js"; +// document.head.appendChild(cookieConsentScript); +// let cookieConsentStyle = document.createElement("link"); +// cookieConsentStyle.href = "/js/cookieConsent.css"; +// cookieConsentStyle.rel = "stylesheet"; +// document.head.appendChild(cookieConsentStyle); +>>>>>>> c2041b6 (first dev commit) diff --git a/js/particlesjs-config.json b/js/particlesjs-config.json new file mode 100755 index 0000000..afa918c --- /dev/null +++ b/js/particlesjs-config.json @@ -0,0 +1,105 @@ +{ + "particles": { + "number": { + "value": 100, + "density": { + "enable": true, + "value_area": 800 + } + }, + "color": { + "value": "#ffffff" + }, + "shape": { + "type": "circle", + "stroke": { + "width": 0, + "color": "#000000" + }, + "polygon": { + "nb_sides": 1 + } + }, + "opacity": { + "value": 1, + "random": true, + "anim": { + "enable": true, + "speed": 1, + "opacity_min": 0, + "sync": false + } + }, + "size": { + "value": 5, + "random": true, + "anim": { + "enable": true, + "speed": 1, + "size_min": 0.3, + "sync": false + } + }, + "line_linked": { + "enable": false, + "distance": 150, + "color": "#ffffff", + "opacity": 0.4, + "width": 1 + }, + "move": { + "enable": true, + "speed": 0.4, + "direction": "bottom", + "random": true, + "straight": false, + "out_mode": "out", + "bounce": false, + "attract": { + "enable": true, + "rotateX": 5000, + "rotateY": 5000 + } + } + }, + "interactivity": { + "detect_on": "window", + "events": { + "onhover": { + "enable": true, + "mode": "grab" + }, + "onclick": { + "enable": false, + "mode": "repulse" + }, + "resize": true + }, + "modes": { + "grab": { + "distance": 200, + "line_linked": { + "opacity": 0.3 + } + }, + "bubble": { + "distance": 250, + "size": 0, + "duration": 2, + "opacity": 0, + "speed": 3 + }, + "repulse": { + "distance": 50, + "duration": 1 + }, + "push": { + "particles_nb": 4 + }, + "remove": { + "particles_nb": 2 + } + } + }, + "retina_detect": true +} \ No newline at end of file diff --git a/loader.html b/loader.html index a84c4ad..b8ad011 100644 --- a/loader.html +++ b/loader.html @@ -16,6 +16,7 @@ + + + + +>>>>>>> c2041b6 (first dev commit) Selenite +<<<<<<< HEAD
@@ -73,5 +98,18 @@ Donate About +======= + +
+ +
+ +

Selenite

+
+ +
+
+
+>>>>>>> c2041b6 (first dev commit) diff --git a/projects.html b/projects.html index ce7eb50..65d9df8 100644 --- a/projects.html +++ b/projects.html @@ -17,7 +17,13 @@ +<<<<<<< HEAD +======= + + + +>>>>>>> c2041b6 (first dev commit) @@ -31,6 +37,7 @@ crossorigin="anonymous"> +<<<<<<< HEAD
+======= + +
+ + + + + + + + + + + + + + + + +
+ + +

nothing was found! try a new search query.

+
+>>>>>>> c2041b6 (first dev commit) -- 2.49.0 From 5d0a1b87df2d10f6978c3e884e6502317340d780 Mon Sep 17 00:00:00 2001 From: sky Date: Sun, 22 Jun 2025 11:53:54 -0400 Subject: [PATCH 02/21] some fuckery to get dev branch working --- .gitignore | 0 404.html | 11 - README.md | 0 about.html | 0 ad.html | 0 ads.txt | 0 apps.html | 0 backgrounds.html | 0 blank.html | 0 bookmarklets.html | 0 contact.html | 0 css/style.css | 673 ------------------------- css/themes.css | 300 +---------- dmca/2025-03-04 Microsoft.txt | 17 - favicon.ico | Bin favicon.png | Bin img/addlink.svg | 0 img/backgrounds/compress images PLEASE | 0 img/backgrounds/dogcat.svg | 0 img/backgrounds/mountains_theme.jpg | Bin img/backgrounds/nighttime_theme.png | Bin img/backgrounds/seraph_theme.png | Bin img/backgrounds/sunset_theme.jpg | Bin img/backgrounds/vaporwave_theme.jpg | Bin img/badges/banana.svg | 0 img/badges/dev.svg | 0 img/badges/donate.svg | 0 img/badges/mod.svg | 0 img/badges/owner.svg | 0 img/badges/partner.svg | 0 img/badges/trans.svg | 0 img/copy.svg | 0 img/discord.svg | 0 img/edit.svg | 0 img/friend.svg | 0 img/games.svg | 6 - img/pfps/3kh0.webp | Bin img/pfps/astra.webp | Bin img/pfps/awesome.webp | Bin img/pfps/ayo.webp | Bin img/pfps/buttsfart.webp | Bin img/pfps/caidn.webp | Bin img/pfps/compass.png | Bin img/pfps/dire.webp | Bin img/pfps/legalise.webp | Bin img/pfps/lunar.webp | Bin img/pfps/math.webp | Bin img/pfps/night.webp | Bin img/pfps/ocular.webp | Bin img/pfps/shadow.webp | Bin img/pfps/sky.webp | Bin img/pfps/snor.webp | Bin img/pfps/ultra.webp | Bin img/pfps/wrnd.gif | Bin img/selenite192.png | Bin img/selenite512.png | Bin img/star-fill.svg | 0 img/star.svg | 0 img/user.svg | 0 img/user_index.svg | 0 index.html | 70 --- index.js | 55 -- js/all.js | 0 js/all.min.js | 0 js/analytics.js | 0 js/apps.js | 0 js/asteroids.js | 0 js/bootstrap.css | 0 js/bootstrap.min.css | 0 js/cloaks.js | 0 js/cookie.js | 0 js/cookieConsent.css | 0 js/cookieConsent.js | 0 js/debug.js | 0 js/dogeminersave.txt | 0 js/games.js | 204 +------- js/katamari.js | 0 js/main.js | 169 +------ js/oldstuff.js | 0 js/savedownload.js | 0 js/search.js | 0 js/themes.js | 0 js/ultimatetabcloak.js | 0 js/uploaddownload.js | 0 js/widget.js | 0 loader.html | 56 -- manifest.json | 0 new selenite.svg | 0 package.json | 10 - projects.html | 84 --- robots.txt | 0 settings.html | 0 style.css | 3 - suggest.html | 0 support.html | 0 95 files changed, 3 insertions(+), 1655 deletions(-) mode change 100644 => 100755 .gitignore mode change 100644 => 100755 404.html mode change 100644 => 100755 README.md mode change 100644 => 100755 about.html mode change 100644 => 100755 ad.html mode change 100644 => 100755 ads.txt mode change 100644 => 100755 apps.html mode change 100644 => 100755 backgrounds.html mode change 100644 => 100755 blank.html mode change 100644 => 100755 bookmarklets.html mode change 100644 => 100755 contact.html delete mode 100644 css/style.css mode change 100644 => 100755 css/themes.css delete mode 100644 dmca/2025-03-04 Microsoft.txt mode change 100644 => 100755 favicon.ico mode change 100644 => 100755 favicon.png mode change 100644 => 100755 img/addlink.svg mode change 100644 => 100755 img/backgrounds/compress images PLEASE mode change 100644 => 100755 img/backgrounds/dogcat.svg mode change 100644 => 100755 img/backgrounds/mountains_theme.jpg mode change 100644 => 100755 img/backgrounds/nighttime_theme.png mode change 100644 => 100755 img/backgrounds/seraph_theme.png mode change 100644 => 100755 img/backgrounds/sunset_theme.jpg mode change 100644 => 100755 img/backgrounds/vaporwave_theme.jpg mode change 100644 => 100755 img/badges/banana.svg mode change 100644 => 100755 img/badges/dev.svg mode change 100644 => 100755 img/badges/donate.svg mode change 100644 => 100755 img/badges/mod.svg mode change 100644 => 100755 img/badges/owner.svg mode change 100644 => 100755 img/badges/partner.svg mode change 100644 => 100755 img/badges/trans.svg mode change 100644 => 100755 img/copy.svg mode change 100644 => 100755 img/discord.svg mode change 100644 => 100755 img/edit.svg mode change 100644 => 100755 img/friend.svg mode change 100644 => 100755 img/pfps/3kh0.webp mode change 100644 => 100755 img/pfps/astra.webp mode change 100644 => 100755 img/pfps/awesome.webp mode change 100644 => 100755 img/pfps/ayo.webp mode change 100644 => 100755 img/pfps/buttsfart.webp mode change 100644 => 100755 img/pfps/caidn.webp mode change 100644 => 100755 img/pfps/compass.png mode change 100644 => 100755 img/pfps/dire.webp mode change 100644 => 100755 img/pfps/legalise.webp mode change 100644 => 100755 img/pfps/lunar.webp mode change 100644 => 100755 img/pfps/math.webp mode change 100644 => 100755 img/pfps/night.webp mode change 100644 => 100755 img/pfps/ocular.webp mode change 100644 => 100755 img/pfps/shadow.webp mode change 100644 => 100755 img/pfps/sky.webp mode change 100644 => 100755 img/pfps/snor.webp mode change 100644 => 100755 img/pfps/ultra.webp mode change 100644 => 100755 img/pfps/wrnd.gif mode change 100644 => 100755 img/selenite192.png mode change 100644 => 100755 img/selenite512.png mode change 100644 => 100755 img/star-fill.svg mode change 100644 => 100755 img/star.svg mode change 100644 => 100755 img/user.svg mode change 100644 => 100755 img/user_index.svg mode change 100644 => 100755 index.html delete mode 100644 index.js mode change 100644 => 100755 js/all.js mode change 100644 => 100755 js/all.min.js mode change 100644 => 100755 js/analytics.js mode change 100644 => 100755 js/apps.js mode change 100644 => 100755 js/asteroids.js mode change 100644 => 100755 js/bootstrap.css mode change 100644 => 100755 js/bootstrap.min.css mode change 100644 => 100755 js/cloaks.js mode change 100644 => 100755 js/cookie.js mode change 100644 => 100755 js/cookieConsent.css mode change 100644 => 100755 js/cookieConsent.js mode change 100644 => 100755 js/debug.js mode change 100644 => 100755 js/dogeminersave.txt mode change 100644 => 100755 js/games.js mode change 100644 => 100755 js/katamari.js mode change 100644 => 100755 js/main.js mode change 100644 => 100755 js/oldstuff.js mode change 100644 => 100755 js/savedownload.js mode change 100644 => 100755 js/search.js mode change 100644 => 100755 js/themes.js mode change 100644 => 100755 js/ultimatetabcloak.js mode change 100644 => 100755 js/uploaddownload.js mode change 100644 => 100755 js/widget.js mode change 100644 => 100755 loader.html mode change 100644 => 100755 manifest.json mode change 100644 => 100755 new selenite.svg delete mode 100644 package.json mode change 100644 => 100755 projects.html mode change 100644 => 100755 robots.txt mode change 100644 => 100755 settings.html delete mode 100644 style.css mode change 100644 => 100755 suggest.html mode change 100644 => 100755 support.html diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/404.html b/404.html old mode 100644 new mode 100755 index ef64c88..6f2463b --- a/404.html +++ b/404.html @@ -32,11 +32,6 @@ @@ -70,10 +64,6 @@

Trying to access a page such as login, register, or a user page? Those are only available on official links.

Join the Discord to find official links.

-<<<<<<< HEAD - - -======= ->>>>>>> c2041b6 (first dev commit) diff --git a/manifest.json b/manifest.json old mode 100644 new mode 100755 diff --git a/new selenite.svg b/new selenite.svg old mode 100644 new mode 100755 diff --git a/package.json b/package.json deleted file mode 100644 index d5bf155..0000000 --- a/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "Bigfoot Games", - "version": "1.0.0", - "scripts": { - "start": "node index.js" - }, - "dependencies": { - "express": "^4.17.1" - } -} diff --git a/projects.html b/projects.html old mode 100644 new mode 100755 index 65d9df8..425d138 --- a/projects.html +++ b/projects.html @@ -17,13 +17,9 @@ -<<<<<<< HEAD - -======= ->>>>>>> c2041b6 (first dev commit) @@ -37,85 +33,6 @@ crossorigin="anonymous"> -<<<<<<< HEAD - -
- -
- -
- Home - Bookmarklets - Games - Apps - Settings - Open Blank - - -
-
- - - - -
- - - - -
-
- - -
- -

Starred Games

-

Star some games for things to show up here!

-
- -

All Games

-
-
- Add Game logo -

Suggest a game!

-
-

games loading..

-

games not loading? click ctrl + shift + r

- -
-
-
- - - -=======
@@ -144,6 +61,5 @@

nothing was found! try a new search query.

->>>>>>> c2041b6 (first dev commit) diff --git a/robots.txt b/robots.txt old mode 100644 new mode 100755 diff --git a/settings.html b/settings.html old mode 100644 new mode 100755 diff --git a/style.css b/style.css deleted file mode 100644 index 000c2c6..0000000 --- a/style.css +++ /dev/null @@ -1,3 +0,0 @@ -@import url("/css/style.css"); -@import url("/css/themes.css"); -/* moved to css folder */ \ No newline at end of file diff --git a/suggest.html b/suggest.html old mode 100644 new mode 100755 diff --git a/support.html b/support.html old mode 100644 new mode 100755 -- 2.49.0 From e11d48d18154ba4412051049f904c3dce68112dc Mon Sep 17 00:00:00 2001 From: sky Date: Mon, 30 Jun 2025 03:22:29 -0400 Subject: [PATCH 03/21] fix new resources --- css/games.css | 6 +- css/pages.css | 1 - css/sidebar.css | 1 + data/apps.json | 78 -- data/games.json | 2138 ---------------------------------------------- data/quotes.json | 384 +-------- js/games.js | 6 +- js/main.js | 8 +- loader.html | 8 +- projects.html | 7 +- 10 files changed, 20 insertions(+), 2617 deletions(-) delete mode 100644 data/apps.json delete mode 100644 data/games.json diff --git a/css/games.css b/css/games.css index 9e70986..e1af4d6 100755 --- a/css/games.css +++ b/css/games.css @@ -40,9 +40,11 @@ game h1 { gap: 0px; } -#noResults { - display: none; +#noResults, #loadingMsg { font-size: 28px; color: var(--color-1); text-shadow: var(--color-1) 0 0 10px; +} +#noResults { + display: none; } \ No newline at end of file diff --git a/css/pages.css b/css/pages.css index cabf5b3..a3e9107 100755 --- a/css/pages.css +++ b/css/pages.css @@ -70,7 +70,6 @@ input[type=text]::placeholder { color: color-mix(in srgb, var(--text-color) 20%, #00000000 80%); text-shadow: color-mix(in srgb, var(--text-color) 40%, #00000000 60%) 0 0 10px; } -/* Chrome, Edge and Safari */ *::-webkit-scrollbar { height: 10px; width: 8px; diff --git a/css/sidebar.css b/css/sidebar.css index fff123b..dd32ceb 100755 --- a/css/sidebar.css +++ b/css/sidebar.css @@ -8,6 +8,7 @@ sidebar { display: flex; flex-direction: column; align-items: center; + user-select: none; } .sidebar-item { margin: 6px; diff --git a/data/apps.json b/data/apps.json deleted file mode 100644 index 479a611..0000000 --- a/data/apps.json +++ /dev/null @@ -1,78 +0,0 @@ -[ - { - "name": "Ruffle", - "directory": "ruffle", - "image": "cover.png" - }, - { - "name": "ZIP Unarchiver", - "directory": "zip", - "image": "cover.png" - }, - - { - "name": "GBA Emulator", - "directory": "gba", - "image": "cover.png" - }, - { - "name": "EmulatorJS", - "directory": "emu", - "image": "cover.png" - }, - { - "name": "Scratch 1", - "directory": "scratch1", - "image": "cover.png" - }, - { - "name": "AyunWebEPK", - "directory": "ayun", - "image": "cover.png" - }, - { - "name": "Scratch 2", - "directory": "scratch2", - "image": "cover.png" - }, - { - "name": "SB2 to SWF", - "directory": "sb2toswf", - "image": "cover.svg" - }, - { - "name": "MiniWiki", - "directory": "wiki", - "image": "cover.png" - }, - { - "name": "Windows 11", - "directory": "11", - "image": "cover.png" - }, - { - "name": "Javascript Deobfuscator", - "directory": "deobsfucator", - "image": "cover.svg" - }, - { - "name": "Code Editor", - "directory": "code", - "image": "cover.svg" - }, - { - "name": "Turbowarp", - "directory": "turbowarp", - "image": "cover.svg" - }, - { - "name": "Calculator", - "image": "cover.svg", - "directory": "calc" - }, - { - "name": "GodoBlocks", - "directory": "godo", - "image": "cover.png" - } -] \ No newline at end of file diff --git a/data/games.json b/data/games.json deleted file mode 100644 index 48868ad..0000000 --- a/data/games.json +++ /dev/null @@ -1,2138 +0,0 @@ -[ - { - "name": "Minecraft Games", - "image": "image.png", - "directory": "eaglercraft" - }, - { - "name": "Protektor", - "image": "cover.png", - "directory": "tekpro" - }, - { - "name": "The Gummibär Game", - "image": "cover.png", - "directory": "gum" - }, - { - "name": "Final Ninja", - "image": "cover.png", - "directory": "final" - }, - { - "name": "The Sims - Busting Out", - "image": "cover.png", - "directory": "bsims" - }, - { - "name": "SimCity 2000", - "image": "cover.png", - "directory": "2000si" - }, - { - "name": "SimCity", - "image": "cover.png", - "directory": "simcity" - }, - { - "name": "Donkey Kong", - "image": "cover.png", - "directory": "kong" - }, - { - "name": "Sonic Advance 3", - "image": "cover.png", - "directory": "3sadv" - }, - { - "name": "Sonic Advance 2", - "image": "cover.png", - "directory": "2sadv" - }, - { - "name": "Sonic Advance", - "image": "cover.png", - "directory": "sadvance" - }, - { - "name": "Crazy Taxi", - "image": "cover.png", - "directory": "crtaxi" - }, - { - "name": "Sonic & Knuckles", - "image": "cover.png", - "directory": "knuck" - }, - { - "name": "Sonic 3", - "image": "cover.png", - "directory": "3sonic" - }, - { - "name": "Hobo 7", - "image": "cover.png", - "directory": "7hobo" - }, - { - "name": "Hobo 6", - "image": "cover.png", - "directory": "6hobo" - }, - { - "name": "Hobo 5", - "image": "cover.png", - "directory": "5hobo" - }, - { - "name": "Hobo 4", - "image": "cover.png", - "directory": "4hobo" - }, - { - "name": "Hobo 3", - "image": "cover.png", - "directory": "3hobo" - }, - { - "name": "3 Lines", - "image": "cover.png", - "directory": "3line" - }, - { - "name": "Crazy Flasher 6", - "image": "cover.png", - "directory": "6flash" - }, - { - "name": "Crazy Flasher 5", - "image": "cover.png", - "directory": "5flash" - }, - { - "name": "Crazy Flasher 4", - "image": "cover.png", - "directory": "4flash" - }, - { - "name": "Crazy Flasher 2", - "image": "cover.png", - "directory": "2flash" - }, - { - "name": "Crazy Flasher 3", - "image": "cover.png", - "directory": "3flash" - }, - { - "name": "GTA: Advance", - "image": "cover.png", - "directory": "advgta" - }, - { - "name": "GTA 1", - "image": "cover.png", - "directory": "gta1" - }, - { - "name": "GTA 2", - "image": "cover.png", - "directory": "gta2" - }, - { - "name": "Quake 3", - "image": "cover.png", - "directory": "quake3" - }, - { - "name": "3D Space Cadet Pinball", - "image": "cover.png", - "directory": "pinball" - }, - { - "name": "Sonic 2", - "image": "cover.svg", - "directory": "2sonic" - }, - { - "name": "Corporation Inc", - "image": "cover.png", - "directory": "corp" - }, - { - "name": "Plants vs. Zombies", - "image": "cover.png", - "directory": "pvz" - }, - { - "name": "Pyongyang Racer", - "image": "cover.png", - "directory": "pyong" - }, - { - "name": "Ultimate Flash Sonic", - "image": "cover.png", - "directory": "flash" - }, - { - "name": "Hobo 2", - "image": "cover.png", - "directory": "2hobo" - }, - { - "name": "Hobo 1", - "image": "cover.png", - "directory": "1hobo" - }, - { - "name": "Super Auto Pets", - "image": "cover.png", - "directory": "auto" - }, - { - "name": "Sonic 1", - "image": "cover.svg", - "directory": "sonic" - }, - { - "name": "Earn to Die", - "image": "cover.png", - "directory": "ern" - }, - { - "name": "Temple of Boom", - "image": "cover.png", - "directory": "temple" - }, - { - "name": "Backrooms 2D", - "image": "cover.png", - "directory": "2d" - }, - { - "name": "Superhero Drop", - "image": "cover.png", - "directory": "superhero" - }, - { - "name": "Obby, jump!", - "image": "cover.png", - "directory": "obby" - }, - { - "name": "Jake's Jingle Quest", - "image": "cover.png", - "directory": "jake" - }, - { - "name": "Bouncy Flappy", - "image": "cover.png", - "directory": "bounce" - }, - { - "name": "The Black Man", - "image": "cover.png", - "directory": "black" - }, - { - "name": "Real Flying Truck 3D", - "image": "cover.png", - "directory": "trk" - }, - { - "name": "Crazy Tunnel 3D", - "image": "cover.png", - "directory": "crazy" - }, - { - "name": "Two Ball 3D", - "image": "cover.png", - "directory": "two" - }, - { - "name": "Slope City", - "image": "cover.png", - "directory": "ballslo" - }, - { - "name": "Shapez", - "image": "cover.png", - "directory": "shapez" - }, - { - "name": "Pickcrafter", - "image": "cover.png", - "directory": "pick" - }, - { - "name": "Sudoku", - "image": "cover.png", - "directory": "sudo" - }, - { - "name": "Rocket Bot Royale", - "image": "cover.png", - "directory": "rocket" - }, - { - "name": "Slope 3", - "image": "cover.png", - "directory": "slope3" - }, - { - "name": "InfiniteCraft", - "image": "cover.png", - "directory": "infi" - }, - { - "name": "Mine Blocks", - "image": "cover.png", - "directory": "minors" - }, - { - "name": "Wubzzy's Amazing Adventure", - "image": "cover.png", - "directory": "wubz" - }, - { - "name": "Bus & Subway Runner", - "image": "cover.png", - "directory": "subway" - }, - { - "name": "Drift King", - "image": "cover.png", - "directory": "king" - }, - { - "name": "Pako Highway", - "image": "cover.png", - "directory": "pako" - }, - { - "name": "Snowball.io", - "image": "cover.png", - "directory": "snow" - }, - { - "name": "Balloon Run", - "image": "cover.png", - "directory": "bal" - }, - { - "name": "Gunfest", - "image": "cover.png", - "directory": "fest" - }, - { - "name": "Run 3 Editor", - "image": "cover.png", - "directory": "editor" - }, - { - "name": "Train Surfers", - "image": "cover.png", - "directory": "train" - }, - { - "name": "Fruit Cuts 3D", - "image": "cover.png", - "directory": "fruit" - }, - { - "name": "Grand Shift Auto", - "image": "cover.png", - "directory": "gsa" - }, - { - "name": "Unfair Mario", - "image": "cover.png", - "directory": "unfmar" - }, - { - "name": "WASM Doom", - "image": "cover.png", - "directory": "doom-wasm" - }, - { - "name": "Talking Tom Cat", - "image": "cover.png", - "directory": "tom2" - }, - { - "name": "Flappy 2048", - "image": "cover.png", - "directory": "flap" - }, - { - "name": "9007199254740992", - "image": "cover.png", - "directory": "9007199254740992" - }, - { - "name": "1", - "image": "cover.png", - "directory": "1" - }, - { - "name": "Wheely 4", - "image": "cover.png", - "directory": "whe4" - }, - { - "name": "Wheely 3", - "image": "cover.png", - "directory": "whe3" - }, - { - "name": "Wheely 2", - "image": "cover.png", - "directory": "whe2" - }, - { - "name": "Wheely 1", - "image": "cover.png", - "directory": "whe" - }, - { - "name": "Glassworks", - "image": "cover.png", - "directory": "glass" - }, - { - "name": "Mutiny", - "image": "cover.png", - "directory": "mut" - }, - { - "name": "Snotput", - "image": "cover.png", - "directory": "snot" - }, - { - "name": "Headcase", - "image": "cover.png", - "directory": "headcase" - }, - { - "name": "Bubble Shooter", - "image": "cover.png", - "directory": "bub" - }, - { - "name": "Skywire VIP (Extended)", - "image": "cover.png", - "directory": "sky" - }, - { - "name": "Plunger", - "image": "cover.png", - "directory": "plu" - }, - { - "name": "Gunbrick", - "image": "cover.png", - "directory": "brick" - }, - { - "name": "Nitrome Must Die", - "image": "cover.png", - "directory": "nitme" - }, - { - "name": "Robo Run", - "image": "cover.png", - "directory": "robo" - }, - { - "name": "Meteor Game", - "image": "cover.png", - "directory": "meteor" - }, - { - "name": "Skateboarding Simulator", - "image": "cover.png", - "directory": "skate" - }, - { - "name": "CrossNRoad", - "image": "cover.png", - "directory": "crossnroad" - }, - { - "name": "Tappy Plane", - "image": "cover.png", - "directory": "tappyplane" - }, - { - "name": "Putin on the Ritz", - "image": "cover.png", - "directory": "ritz" - }, - { - "name": "Sandboxels", - "image": "cover.png", - "directory": "box" - }, - { - "name": "Flappy Race", - "image": "cover.png", - "directory": "flappyrace" - }, - { - "name": "Karlson", - "image": "cover.png", - "directory": "karlson" - }, - { - "name": "Adventure", - "image": "cover.png", - "directory": "adventure" - }, - { - "name": "The Heist", - "image": "cover.png", - "directory": "heist" - }, - { - "name": "Age of War 2", - "image": "cover.png", - "directory": "aow2" - }, - { - "name": "Star Clicker", - "image": "cover.png", - "directory": "star" - }, - { - "name": "Racer", - "image": "cover.png", - "directory": "racer" - }, - { - "name": "Fort@dmin", - "image": "cover.png", - "directory": "fort" - }, - { - "name": "Flappy Dino", - "image": "cover.png", - "directory": "fld" - }, - { - "name": "Connect Four", - "image": "cover.png", - "directory": "c4" - }, - { - "name": "13 Days of Hell", - "image": "cover.png", - "directory": "13" - }, - { - "name": "Mindustry", - "image": "cover.png", - "directory": "mind" - }, - { - "name": "House of Hazards", - "image": "favicon.ico", - "directory": "houseofhazards" - }, - { - "name": "Shape Shipper", - "image": "cover.png", - "directory": "shape" - }, - { - "name": "Rough Dino", - "image": "cover.png", - "directory": "roughdino" - }, - { - "name": "Geometry Meltdown", - "image": "cover.png", - "directory": "geomelt" - }, - { - "name": "Geometry Jump", - "image": "cover.png", - "directory": "geojump" - }, - { - "name": "Counter Strike: DS", - "image": "cover.png", - "directory": "cds" - }, - { - "name": "Terri-Fried", - "image": "cover.png", - "directory": "terrifried" - }, - { - "name": "Geometry Dash Remastered", - "image": "cover.png", - "directory": "geodashrm" - }, - { - "name": "The Minions: Resurrection", - "image": "cover.png", - "directory": "minion" - }, - { - "name": "Geometry Dash Sky", - "image": "cover.png", - "directory": "geodashsky" - }, - { - "name": "Drift Mania", - "image": "cover.png", - "directory": "drift" - }, - { - "name": "Driving Force 4", - "image": "cover.png", - "directory": "driving" - }, - { - "name": "Red Ball 1", - "image": "cover.png", - "directory": "redball" - }, - { - "name": "Recoil", - "image": "cover.png", - "directory": "recoil" - }, - { - "name": "Karlson't", - "image": "cover.png", - "directory": "karlsont" - }, - { - "name": "Deepest Sword", - "image": "logo.png", - "directory": "deepestsword" - }, - { - "name": "Tomb of The Mask", - "image": "cover.png", - "directory": "tombofthemask" - }, - { - "name": "Hill Climb Racing", - "image": "cover.png", - "directory": "hillclimbracing" - }, - { - "name": "Gladihoppers", - "image": "cover.png", - "directory": "gladihoppers" - }, - { - "name": "Flappy Copter", - "image": "cover.png", - "directory": "flappycopter" - }, - { - "name": "Kick That Buddy", - "image": "cover.png", - "directory": "kickthatbuddy" - }, - { - "name": "Grand Truckismo", - "image": "cover.png", - "directory": "grandtruckismo" - }, - { - "name": "Turbo Racing 3", - "image": "cover.png", - "directory": "turboracing3" - }, - { - "name": "The Binding of Issac", - "image": "cover.png", - "directory": "tboi" - }, - { - "name": "Gun Knight", - "image": "cover.png", - "directory": "gunknight" - }, - { - "name": "The Oregon Trail", - "image": "cover.png", - "directory": "oregon" - }, - { - "name": "Windows 98", - "image": "cover.png", - "directory": "windows98" - }, - { - "name": "Creeper Craft", - "image": "cover.png", - "directory": "creepercraft" - }, - { - "name": "Block Zappers 3", - "image": "logo.png", - "directory": "blockzappers" - }, - { - "name": "Kerosene Client", - "image": "cover.png", - "directory": "keroseneclient" - }, - { - "name": "Frogger", - "image": "cover.png", - "directory": "frogger" - }, - { - "name": "Simon", - "image": "cover.png", - "directory": "simon" - }, - { - "name": "Splash Dash Racing", - "image": "cover.png", - "directory": "splashanddash" - }, - { - "name": "Super Mario 63", - "image": "cover.png", - "directory": "mario63" - }, - { - "name": "Bike Champ 2", - "image": "logo.jpg", - "directory": "bikechamp2" - }, - { - "name": "Grand Theft Grotto", - "image": "cover.png", - "directory": "gtg" - }, - { - "name": "Bike Champ", - "image": "logo.png", - "directory": "bikechamp" - }, - { - "name": "Gloom", - "image": "cover.png", - "directory": "gloom" - }, - { - "name": "Copter", - "image": "cover.png", - "directory": "copter" - }, - { - "name": "Minesweeper", - "image": "cover.png", - "directory": "minesweeper" - }, - { - "name": "POOM", - "image": "cover.png", - "directory": "poom" - }, - { - "name": "Solitaire", - "image": "cover.png", - "directory": "solitaire" - }, - { - "name": "Spank the Monkey", - "image": "cover.png", - "directory": "spankthemonkey" - }, - { - "name": "Pool", - "image": "cover.png", - "directory": "pool" - }, - { - "name": "Yohoho.io", - "image": "cover.png", - "directory": "yohoho" - }, - { - "name": "Tube Jumpers", - "image": "cover.png", - "directory": "tube-jumpers" - }, - { - "name": "Hill Climb Racing 2", - "image": "cover.png", - "directory": "hillclimbracing2" - }, - { - "name": "DOOM", - "image": "logo.png", - "directory": "doom" - }, - { - "name": "Awesome Tanks", - "image": "cover.png", - "directory": "awesometanks" - }, - { - "name": "Pong", - "directory": "pong", - "image": "cover.png" - }, - { - "name": "A Dance of Fire & Ice", - "directory": "adofai", - "image": "splash.png" - }, - { - "name": "Friday Night Funkin", - "directory": "fridaynightfunkin", - "image": "favicon.png" - }, - { - "name": "Worlds Hardest Game", - "directory": "worldshardestgame", - "image": "icon.png" - }, - { - "name": "Celeste", - "directory": "celeste", - "image": "icon.png" - }, - { - "name": "Mario", - "directory": "mario", - "image": "icon.png" - }, - { - "name": "60s Burger Run", - "directory": "60sburgerrun", - "image": "icon.png" - }, - { - "name": "Cluster Rush", - "directory": "cluster-rush", - "image": "icon.jpg" - }, - { - "name": "Vex 3", - "directory": "vex3", - "image": "icon.png" - }, - { - "name": "Adventure Capitalist", - "directory": "adventure-capitalist", - "image": "logo.webp" - }, - { - "name": "Bloons Tower Defense 3", - "directory": "btd3", - "image": "icon.png" - }, - { - "name": "Avalanche", - "directory": "avalanche", - "image": "icon.png" - }, - { - "name": "Slope", - "directory": "slope", - "image": "slope4.jpeg" - }, - { - "name": "Cell Machine", - "directory": "cell-machine", - "image": "img/icon.png" - }, - { - "name": "Run 2", - "directory": "run2", - "image": "icon.jpg" - }, - { - "name": "Vex 5", - "directory": "vex5", - "image": "icon.png" - }, - { - "name": "Vex 4", - "directory": "vex4", - "image": "vex4.png" - }, - { - "name": "Vex 2", - "directory": "vex2", - "image": "icon.png" - }, - { - "name": "Crossy Road", - "directory": "crossyroad", - "image": "chicken.png" - }, - { - "name": "Wall Smash", - "directory": "wallsmash", - "image": "icon.png" - }, - { - "name": "Death Run 3D", - "directory": "death-run-3d", - "image": "img/death.png" - }, - { - "name": "Gun Mayhem 2", - "directory": "gunmayhem2", - "image": "icon.png" - }, - { - "name": "CircloO", - "directory": "circloo", - "image": "icon.png" - }, - { - "name": "Vex", - "directory": "vex", - "image": "icon.png" - }, - { - "name": "Stack", - "directory": "stack", - "image": "icon.png" - }, - { - "name": "xx142-b2.exe", - "directory": "xx142-b2.exe", - "image": "icon.png" - }, - { - "name": "paper.io", - "directory": "paperio", - "image": "icon.png" - }, - { - "name": "Chibi Knight", - "directory": "chibiknight", - "image": "icon.png" - }, - { - "name": "1v1.lol", - "directory": "1v1lol", - "image": "splash.png" - }, - { - "name": "Dino", - "directory": "dino", - "image": "icon.png" - }, - { - "name": "Tetris", - "directory": "tetris", - "image": "icon.png" - }, - { - "name": "Geometry Dash (Scratch)", - "directory": "geometrydash", - "image": "icon.png" - }, - { - "name": "Sand Game", - "directory": "sand", - "image": "icon.png" - }, - { - "name": "Dante", - "directory": "dante", - "image": "icon.png" - }, - { - "name": "Wordle", - "directory": "wordle", - "image": "icon.png" - }, - { - "name": "Offline Paradise", - "directory": "offlineparadise", - "image": "icon.png" - }, - { - "name": "2048", - "directory": "2048", - "image": "icon.png" - }, - { - "name": "Doodle Jump", - "directory": "doodlejump", - "image": "icon.png" - }, - { - "name": "Weave Silk", - "directory": "weavesilk", - "image": "icon.png" - }, - { - "name": "Super Meat Boy", - "directory": "supermeatboy", - "image": "icon.png" - }, - { - "name": "Vex 6", - "directory": "vex6", - "image": "icon.png" - }, - { - "name": "WebGL Fluid Sim", - "directory": "fluidsim", - "image": "icon.png" - }, - { - "name": "Basketball Stars", - "directory": "basketball-stars", - "image": "icon.png" - }, - { - "name": "osu!", - "directory": "osu", - "image": "icon.png" - }, - { - "name": "Cookie Clicker", - "directory": "cookieclicker", - "image": "img/perfectCookie.png" - }, - { - "name": "Superhot", - "directory": "superhot", - "image": "icon.png" - }, - { - "name": "Super Mario 64", - "directory": "supermario64", - "image": "icon.png" - }, - { - "name": "Gun Mayhem Redux", - "directory": "gunmayhemredux", - "image": "icon.png" - }, - { - "name": "I Wanna Be Thy Copy", - "directory": "iwbtc", - "image": "icon.png" - }, - { - "name": "HexGL", - "directory": "hexgl", - "image": "icon_128.png" - }, - { - "name": "Champion Island", - "directory": "championisland", - "image": "icon.png" - }, - { - "name": "Learn to Fly", - "directory": "learntofly", - "image": "icon.png" - }, - { - "name": "Wordle Bot", - "directory": "wordlebot", - "image": "icon.png" - }, - { - "name": "Cut The Rope", - "directory": "cuttherope", - "image": "icon.png" - }, - { - "name": "Chess", - "directory": "chess", - "image": "icon.png" - }, - { - "name": "Flappy Bird", - "directory": "flappybird", - "image": "icon.png" - }, - { - "name": "Lows Adventures 2", - "directory": "lowsadventures2", - "image": "icon.png" - }, - { - "name": "Drift Boss", - "directory": "drift-boss", - "image": "icon.png" - }, - { - "name": "Fireboy & Watergirl 1", - "directory": "fireboywatergirl", - "image": "icon.png" - }, - { - "name": "Gun Mayhem", - "directory": "gunmayhem", - "image": "icon.png" - }, - { - "name": "Duck Life 4", - "directory": "ducklife4", - "image": "icon.png" - }, - { - "name": "Achievement Unlocked", - "directory": "achieveunlocked", - "image": "icon.png" - }, - { - "name": "Achievement Unlocked 2", - "directory": "achieveunlocked2", - "image": "icon.png" - }, - { - "name": "This Is The Only Level", - "directory": "thisistheonlylevel", - "image": "logo.png" - }, - { - "name": "This Is The Only Level 2", - "directory": "thisistheonlylevel2", - "image": "icon.png" - }, - { - "name": "Bitlife", - "directory": "bitlife", - "image": "bitlife.png" - }, - { - "name": "Duck Life 1", - "directory": "ducklife1", - "image": "ducklife1.png" - }, - { - "name": "Duck Life 2", - "directory": "ducklife2", - "image": "ducklife2.png" - }, - { - "name": "Duck Life 3", - "directory": "ducklife3", - "image": "ducklife3.png" - }, - { - "name": "ovo", - "directory": "ovo", - "image": "ovo3.png" - }, - { - "name": "There Is No Game", - "directory": "thereisnogame", - "image": "icon-256.png" - }, - { - "name": "Universal Paperclips", - "directory": "universal-paperclips", - "image": "universal-paperclips.png" - }, - { - "name": "Learn to Fly 2", - "directory": "learntofly2", - "image": "logo.jpg" - }, - { - "name": "Worlds Hardest Game 2", - "directory": "worldhardestgame2", - "image": "the-worlds-hardest-game-2.jpg" - }, - { - "name": "Vex 7", - "directory": "vex7", - "image": "icon.jpeg" - }, - { - "name": "Slope Ball", - "directory": "slope-ball", - "image": "icon.jpg" - }, - { - "name": "Slope 2", - "directory": "slope2", - "image": "slope-2-logo.png" - }, - { - "name": "Learn to Fly Idle", - "directory": "learntoflyidle", - "image": "icon.jpg" - }, - { - "name": "Red Ball 4", - "directory": "redball4", - "image": "redball4.webp" - }, - { - "name": "Red Ball 4 Vol 3", - "directory": "redball4vol3", - "image": "redball4vol3.webp" - }, - { - "name": "Red Ball 4 Vol 2", - "directory": "redball4vol2", - "image": "redball4vol2.webp" - }, - { - "name": "Red Ball 3", - "directory": "redball3", - "image": "redball3.png" - }, - { - "name": "Snake", - "directory": "snake", - "image": "snake.png" - }, - { - "name": "Pacman", - "directory": "pacman", - "image": "icon.png" - }, - { - "name": "Color Switch", - "directory": "colorswitch", - "image": "colorswitch.png" - }, - { - "name": "Halloween 2016", - "directory": "halloween2016", - "image": "logo.png" - }, - { - "name": "Game Maker Doodle", - "directory": "gamemaker", - "image": "images.jpeg" - }, - { - "name": "The Impossible Game", - "directory": "theimpossiblegame", - "image": "image.jpg" - }, - { - "name": "Papas Freezeria", - "directory": "papasfreezeria", - "image": "images.jpeg" - }, - { - "name": "Papas Pizzeria", - "directory": "papaspizzeria", - "image": "images.jpeg" - }, - { - "name": "Idle Breakout", - "directory": "idlebreakout", - "image": "image.png" - }, - { - "name": "Stickman Hook", - "directory": "stickman-hook", - "image": "icon.jpg" - }, - { - "name": "Drift Hunters", - "directory": "drifthunters", - "image": "icon.png" - }, - { - "name": "Rocket League", - "directory": "rocketleague", - "image": "splash.webp" - }, - { - "name": "Little Alchemy", - "directory": "littlealchemy", - "image": "images/192-alpha.png" - }, - { - "name": "Retro Bowl", - "directory": "retrobowl", - "image": "img/icon.jpg" - }, - { - "name": "Tunnel Rush", - "directory": "tunnelrush", - "image": "tunnel.jpg" - }, - { - "name": "Moto X3M", - "directory": "motox3m", - "image": "splash.jpg" - }, - { - "name": "Moto X3M Winter", - "directory": "motox3m-winter", - "image": "download.jpeg" - }, - { - "name": "Moto X3M Pool Party", - "directory": "motox3m-pool", - "image": "splash.jpg" - }, - { - "name": "Five Nights at Freddy's", - "directory": "fnaf", - "image": "splash.jpg" - }, - { - "name": "Burrito Bison", - "directory": "burritobison", - "image": "Build/logo.png" - }, - { - "name": "Cut The Rope Holday", - "directory": "cuttherope-holiday", - "image": "Holiday_Gift.webp" - }, - { - "name": "Helix Jump", - "directory": "helixjump", - "image": "gameIcon.png" - }, - { - "name": "Clicker Heroes", - "directory": "clickerheroes", - "image": "clicker-heroes.png" - }, - { - "name": "Jetpack Joyride", - "directory": "jetpackjoyride", - "image": "logo.jpeg" - }, - { - "name": "Fruit Ninja", - "directory": "fruitninja", - "image": "FruitNinjaTeaser.jpg" - }, - { - "name": "Tron", - "directory": "tron", - "image": "icon.png" - }, - { - "name": "Thirty Dollar Website", - "directory": "thirtydollarwebsite", - "image": "assets/🗿.png" - }, - { - "name": "n-gon", - "directory": "ngon", - "image": "favicon.ico" - }, - { - "name": "Subway Surfers", - "directory": "subway-surfers-ny", - "image": "NewYorkIcon.png" - }, - { - "name": "Madalin Cars", - "directory": "madalincars", - "image": "icon.png" - }, - { - "name": "Run 3", - "directory": "run3", - "image": "icon.jpeg" - }, - { - "name": "Dragon Ball Devolution", - "directory": "dragonballdevolution", - "image": "images.jpeg" - }, - { - "name": "Run", - "directory": "run", - "image": "icon.jpeg" - }, - { - "name": "Super Smash Flash", - "directory": "supersmashflash", - "image": "ssf.jpg" - }, - { - "name": "Stickman Climb", - "directory": "stickmanclimb", - "image": "icon.avif" - }, - { - "name": "Getaway Shooter", - "directory": "getawayshooter", - "image": "Untitled.jpeg" - }, - { - "name": "Riddle School", - "directory": "riddleschool", - "image": "RiddleSchool2.png" - }, - { - "name": "Riddle School 2", - "directory": "riddleschool2", - "image": "icon.png" - }, - { - "name": "Riddle School 3", - "directory": "riddleschool3", - "image": "riddle-school-3.webp" - }, - { - "name": "Riddle School 4", - "directory": "riddleschool4", - "image": "Untitled.jpeg" - }, - { - "name": "Riddle School 5", - "directory": "riddleschool5", - "image": "Untitled.jpeg" - }, - { - "name": "Riddle Transfer", - "directory": "riddleschooltransfer", - "image": "Untitled.jpeg" - }, - { - "name": "Riddle Transfer 2", - "directory": "riddleschooltransfer2", - "image": "aUntitled.jpeg" - }, - { - "name": "Zombocalypse", - "directory": "zombocalypse", - "image": "zombocalypse-2.webp" - }, - { - "name": "Papas Burgeria", - "directory": "papasburgeria", - "image": "images.jpeg" - }, - { - "name": "Duck Life 5", - "directory": "ducklife5", - "image": "ducklife5.png" - }, - { - "name": "Duck Life 6", - "directory": "ducklife6", - "image": "ducklife5.png" - }, - { - "name": "webretro", - "directory": "webretro", - "image": "assets/icons/icon204.png" - }, - { - "name": "osu!mania", - "directory": "osumania", - "image": "mania.jpg" - }, - { - "name": "Five Nights at Freddy's 2", - "directory": "fnaf2", - "image": "project/splash.webp" - }, - { - "name": "Five Nights at Freddy's 3", - "directory": "fnaf3", - "image": "project/splash.webp" - }, - { - "name": "Five Nights at Freddy's 4", - "directory": "fnaf4", - "image": "project/splash.webp" - }, - { - "name": "Temple Run 2", - "directory": "templerun2", - "image": "img/icons/icon-128x128.png" - }, - { - "name": "Happy Wheels", - "directory": "happywheels", - "image": "Untitled.jpeg" - }, - { - "name": "Fireboy & Watergirl 2", - "directory": "fireboywatergirl2", - "image": "Untitled.jpeg" - }, - { - "name": "Fireboy & Watergirl 3", - "directory": "fireboywatergirl3", - "image": "icon.png" - }, - { - "name": "Fireboy & Watergirl 4", - "directory": "fireboywatergirl4", - "image": "300.jpg" - }, - { - "name": "Rise Higher", - "directory": "risehigher", - "image": "media/graphics/promo/Icons/128x128.png" - }, - { - "name": "Hextris", - "directory": "hextris", - "image": "images/icons/apple-touch-152.png" - }, - { - "name": "Sprinter", - "directory": "sprinter", - "image": "icon.jpeg" - }, - { - "name": "Amazing Rope Police", - "directory": "amazing-rope-police", - "image": "splash.jpeg" - }, - - { - "name": "Geometry Rash", - "directory": "geometryrash", - "image": "icon-114.png" - }, - { - "name": "Bloons Tower Defense", - "directory": "btd", - "image": "logo.webp" - }, - { - "name": "Bloons Tower Defense 2", - "directory": "btd2", - "image": "logo.webp" - }, - { - "name": "Bloons Tower Defense 4", - "directory": "btd4", - "image": "logo.jpg" - }, - { - "name": "Bloons Tower Defense 6", - "directory": "btd6", - "image": "uwu.png" - }, - { - "name": "Bloons Tower Defense 5", - "directory": "btd5", - "image": "wogo.png" - }, - { - "name": "Last Horizon", - "directory": "lasthorizon", - "image": "wogo owo.jpg" - }, - { - "name": "1 on 1 Soccer", - "directory": "1on1soccer", - "image": "logo.jpg" - }, - { - "name": "Among Us", - "directory": "amongus", - "image": "amgojs]_.png" - }, - { - "name": "Among Us (better)", - "directory": "amongusnew", - "image": "amgojs]_.png" - }, - { - "name": "Bad Piggies", - "directory": "badpiggies", - "image": "badpiggies.png" - }, - { - "name": "Sandtrix", - "directory": "sandtrix", - "image": "assets/sprites/appicon.png" - }, - { - "name": "Blood Tournament", - "directory": "bloodtournament", - "image": "blood-tournament.jpg" - }, - { - "name": "Gold Digger FRVR", - "directory": "golddiggerfrvr", - "image": "images.jpeg" - }, - { - "name": "Retro Bowl College", - "directory": "retrobowlcollege", - "image": "unnamed.png" - }, - { - "name": "We Become What We Behold", - "directory": "wbwwb", - "image": "wbwwb.webp" - }, - { - "name": "Nut Simulator", - "directory": "nutsim", - "image": "images/icon.png" - }, - { - "name": "Pokemon", - "directory": "pokemon", - "image": "logo.jpg" - }, - { - "name": "Super Smash Bros", - "directory": "supersmashbros", - "image": "logo.jpg" - }, - { - "name": "Skibidi 1 v 100", - "directory": "skibiditoilet", - "image": "logo.png" - }, - { - "name": "Drive Mad", - "directory": "drivemad", - "image": "icons/icon-128.png" - }, - { - "name": "Rooftop Snipers", - "directory": "rooftopsnipers", - "image": "logo.png" - }, - { - "name": "Funny Shooter", - "directory": "funnyshooter", - "image": "icon.jpeg" - }, - { - "name": "Monkey Mart", - "directory": "monkeymart", - "image": "unnamed.png" - }, - { - "name": "Factory Balls", - "directory": "factoryballs", - "image": "fac.png" - }, - { - "name": "Factory Balls Forever", - "directory": "factoryballsforever", - "image": "fac.png" - }, - { - "name": "Funny Shooter 2", - "directory": "funnyshooter2", - "image": "894abba63a6b23fed823f404831f444f.jpeg" - }, - { - "name": "Bad Time Simulator", - "directory": "badtimesimulator", - "image": "icon-114.png" - }, - { - "name": "Commodore 64 Clicker", - "directory": "commodoreclicker", - "image": "test.jpg" - }, - { - "name": "Stickman Boost", - "directory": "stickmanboost", - "image": "base/img1.jpg" - }, - { - "name": "Stickman Golf", - "directory": "stickmangolf", - "image": "gold.png" - }, - { - "name": "Basket Bros", - "directory": "basketbros", - "image": "thumb.jpg" - }, - { - "name": "justfall.lol", - "directory": "justfalllol", - "image": "unnamed.png" - }, - { - "name": "Doge Miner", - "directory": "dogeminer", - "image": "img/dogeminer_300x300.png" - }, - { - "name": "Soccer Random", - "directory": "soccerrandom", - "image": "test.png" - }, - { - "name": "Basket Random", - "directory": "basketrandom", - "image": "test.png" - }, - { - "name": "Boxing Random", - "directory": "boxingrandom", - "image": "512x512.jpg" - }, - { - "name": "Funny Mad Racing", - "directory": "funnymadracing", - "image": "logo.webp" - }, - { - "name": "hole.io", - "directory": "holeio", - "image": "feature800x470.png" - }, - { - "name": "Time Shooter", - "directory": "timeshooter1", - "image": "logo.png" - }, - { - "name": "Time Shooter 2", - "directory": "timeshooter2", - "image": "ts2.jpg" - }, - { - "name": "Time Shooter 3", - "directory": "timeshooter3", - "image": "logo.png" - }, - { - "name": "Townscaper", - "directory": "townscaper", - "image": "icon.png" - }, - { - "name": "Bad Ice Cream", - "directory": "badicecream", - "image": "bad-ice-cream.png" - }, - { - "name": "Bad Ice Cream 2", - "directory": "badicecream2", - "image": "bad-ice-cream-2.png" - }, - { - "name": "Bad Ice Cream 3", - "directory": "badicecream3", - "image": "bad-ice-cream-3.png" - }, - { - "name": "Bob the Robber 2", - "directory": "bobtherobber2", - "image": "icon.png" - }, - { - "name": "Boxing Physics 2", - "directory": "boxingphysics2", - "image": "icon.png" - }, - { - "name": "Burger and Frights", - "directory": "burgerandfrights", - "image": "icon.png" - }, - { - "name": "Flippy Fish", - "directory": "flippyfish", - "image": "icon.png" - }, - { - "name": "Knife Hit", - "directory": "knifehit", - "image": "icon.png" - }, - { - "name": "Lazy Jump 3D", - "directory": "lazyjump3d", - "image": "icon.png" - }, - { - "name": "Moto X3M Spooky", - "directory": "motox3m-spooky", - "image": "icon.png" - }, - { - "name": "Rooftop Snipers 2", - "directory": "rooftopsnipers2", - "image": "icon.png" - }, - { - "name": "Skibidi Toilet Attack", - "directory": "skibiditoiletattack", - "image": "logo.png" - }, - { - "name": "Tiny Fishing", - "directory": "tinyfishing", - "image": "thumb.png" - }, - { - "name": "TU-95", - "directory": "tu95", - "image": "tu-95.webp" - }, - { - "name": "TU-46", - "directory": "tu46", - "image": "tu-46.webp" - }, - { - "name": "Russian Car Driver", - "directory": "russiancardriver", - "image": "russian-car-driver.webp" - }, - { - "name": "Legend of Zelda - Ocarina of Time", - "directory": "ocarinaoftime", - "image": "oc.jpg" - }, - { - "name": "Metroid: Zero Mission", - "directory": "metroidzeromission", - "image": "zero.jpeg" - }, - { - "name": "Guilty Gear", - "directory": "guiltygear", - "image": "ggx.jpg" - }, - { - "name": "A Dark Room", - "directory": "adarkroom", - "image": "favicon.ico" - }, - { - "name": "Fancy Pants Adventures", - "directory": "fancypantsadventures", - "image": "fpa.webp" - }, - { - "name": "Fancy Pants Adventures 2", - "directory": "fancypantsadventures2", - "image": "fpa2.avif" - }, - { - "name": "Line Rider", - "directory": "linerider", - "image": "boosh.png" - }, - { - "name": "Funny Ball Game", - "directory": "funnyballgame", - "image": "ball.jpg" - }, - { - "name": "Henry Stickmin - Stealing the Diamond", - "directory": "stealingthediamond", - "image": "diamante.avif" - }, - { - "name": "Henry Stickmin - Breaking the Bank", - "directory": "breakingthebank", - "image": "balling.avif" - }, - { - "name": "Henry Stickmin - Escaping the Prison", - "directory": "escapingtheprison", - "image": "pwison.avif" - }, - { - "name": "Henry Stickmin - Fleeing the Complex", - "directory": "fleeingthecomplex", - "image": "flee.jpg" - }, - { - "name": "Henry Stickmin - Infiltrating the Airship", - "directory": "infiltratingtheairship", - "image": "air.avif" - }, - { - "name": "Pandemic", - "directory": "pandemic", - "image": "sddefault.jpg" - }, - { - "name": "Pandemic 2", - "directory": "pandemic2", - "image": "pan2.webp" - }, - { - "name": "Age of War", - "directory": "ageofwar", - "image": "warofage.jpg" - }, - { - "name": "Soundboard", - "directory": "soundboard", - "image": "bleep.png" - }, - { - "name": "The Impossible Quiz", - "directory": "theimpossiblequiz", - "image": "tiq.avif" - }, - { - "name": "2D Rocket League", - "directory": "2drocketleague", - "image": "unnamed.png" - }, - { - "name": "Pizza Tower", - "directory": "pizzatower", - "image": "images/menubg.png" - }, - { - "name": "Monster Tracks", - "directory": "monstertracks", - "image": "webapp/cover.jpg" - }, - { - "name": "Totally Accurate Battle Simulator", - "directory": "tabs", - "image": "unnamed.png" - }, - { - "name": "CSGO Case Clicker", - "directory": "csgoclicker", - "image": "images/case1.png" - }, - { - "name": "The Final Earth 2", - "directory": "thefinalearth2", - "image": "icons/favicon.png" - }, - { - "name": "Baldi's Basics", - "directory": "baldis-basics", - "image": "splash.png" - }, - { - "name": "Cubefield", - "directory": "cubefield", - "image": "assets/unnamed.png" - }, - { - "name": "Bit Planes", - "directory": "bit-planes", - "image": "bitplanes.png" - }, - { - "name": "Snow Rider 3D", - "directory": "snowrider3d", - "image": "snow.png" - }, - { - "name": "Dadish", - "directory": "dadish", - "image": "favicon.png" - }, - { - "name": "Dadish 2", - "directory": "dadish2", - "image": "favicon.png" - }, - { - "name": "Dadish 3", - "directory": "dadish3", - "image": "splash.png" - }, - { - "name": "Watermelon Game", - "directory": "watermelongame", - "image": "assets/sprites/tittle.png" - }, - { - "name": "Crimson Fantasia", - "directory": "crimsonfantasia", - "image": "14qAOu.png" - }, - { - "name": "Geometry Dash Lite", - "directory": "gdlite", - "image": "logo.png" - }, - { - "name": "Virtual x86", - "directory": "v86", - "image": "favicon.ico" - }, - { - "name": "Idle Research", - "directory": "idleresearch", - "image": "cover-1660205761867.png" - }, - { - "name": "10 Minutes Till Dawn", - "directory": "10minutestilldawn", - "image": "splash.png" - }, - { - "name": "Friday Night Funkin: Mid Fight Masses", - "directory": "fnfmidfight", - "image": "fnfmidfight.png" - }, - { - "name": "Papas Donuteria", - "directory": "papasdonuteria", - "image": "papasdonuteria.png" - }, - { - "name": "Papas Pancakeria", - "directory": "papaspancakeria", - "image": "papaspancakeria.png" - }, - { - "name": "Papas Scooperia", - "directory": "papasscooperia", - "image": "papasscooperia.png" - }, - { - "name": "Papas Tacomia", - "directory": "papastacomia", - "image": "papastacomia.png" - }, - { - "name": "Territorial.io", - "directory": "territorialio", - "image": "territorialio.png" - }, - { - "name": "Theme Hotel", - "directory": "themehotel", - "image": "themehotel.png" - }, - { - "name": "Thumb Fighter", - "directory": "thumbfighter", - "image": "thumbfighter.png" - }, - { - "name": "The Enchanted Cave 2", - "directory": "enchantedcave2", - "image": "icon.png" - }, - { - "name": "Animal Crossing Wild World", - "directory": "animalcrossingwildworld", - "image": "animalcrossingwildworld.png" - }, - { - "name": "Banjo Kazooie", - "directory": "banjokazooie", - "image": "banjokazooie.png" - }, - { - "name": "Donkey Kong 64", - "directory": "donkeykong64", - "image": "donkeykong64.png" - }, - { - "name": "Doom 64", - "directory": "doom64", - "image": "doom64.png" - }, - { - "name": "Goldeneye 007", - "directory": "goldeneye", - "image": "goldeneye007.png" - }, - { - "name": "Majora's Mask", - "directory": "majorasmask", - "image": "majorasmask.png" - }, - { - "name": "Mario Kart DS", - "directory": "mariokartds", - "image": "mariokartds.png" - }, - { - "name": "Mario Party", - "directory": "marioparty", - "image": "marioparty.png" - }, - { - "name": "Mario Party 2", - "directory": "marioparty2", - "image": "marioparty2.png" - }, - { - "name": "Mario Party 3", - "directory": "marioparty3", - "image": "marioparty3.png" - }, - { - "name": "Mario Party DS", - "directory": "mariopartyds", - "image": "mariopartyds.png" - }, - { - "name": "Nintendogs", - "directory": "nintendogs", - "image": "nintendogs.png" - }, - { - "name": "Papas Bakeria", - "directory": "papasbakeria", - "image": "papasbakeria.png" - }, - { - "name": "Papas Cheeseria", - "directory": "papascheeseria", - "image": "papascheeseria.png" - }, - { - "name": "Papas Pastaria", - "directory": "papaspastaria", - "image": "papaspastaria.png" - }, - { - "name": "Papas Sushiria", - "directory": "papassushiria", - "image": "papassushiria.png" - }, - { - "name": "Papas Wingeria", - "directory": "papaswingeria", - "image": "papaswingeria.png" - }, - { - "name": "Paper Mario", - "directory": "papermario", - "image": "papermario.png" - }, - { - "name": "Star Fox 64", - "directory": "starfox64", - "image": "starfox64.png" - }, - { - "name": "Super Mario 64 DS", - "directory": "supermario64ds", - "image": "supermario64ds.png" - }, - { - "name": "state.io", - "directory": "stateio", - "image": "icon.webp" - }, - { - "name": "Draw Climber", - "directory": "drawclimber", - "image": "assets/gameLogo.png" - }, - { - "name": "Polytrack", - "directory": "polytrack", - "image": "cover.jpg" - } -] diff --git a/data/quotes.json b/data/quotes.json index 34524da..aeceb69 100644 --- a/data/quotes.json +++ b/data/quotes.json @@ -1,385 +1,3 @@ [ - "pay attention during school", - "yall playing games while im making the website ur using", - "shout out to whoever spent 2 hours on snake", - "Did you know? You can make 800-1000 burgers from one cow.", - "selenite >>> 3kh0", - "Hello!", - "Did you know it takes an average of 20 minutes to rip a game?", - "Batteries not included", - "Does this even work?", - "Welcome to my rad website", - "Made with HTML!", - "Uses some css", - "Now with buggy games!", - "You get a cookie!", - "Remember your manners!", - "Dogs are cute", - "Ok, and I know your address now!", - "Beep boop! Are you a robot?", - "Did you know I have a Discord server?", - "How many sides does a circle have?", - "1 + 1 = 3", - "6 + 9 = 69", - "You can read btw", - "Made you look!", - "Never gonna give you up, Never gonna let you down...", - "Redbull gives you wings...", - "What is your highscore on Swerve?", - "Now with 2X more bugs!", - "12345 is not a good password", - "This took to long to make", - "69 hehe funny number", - "Ahhhhhhhhh", - "Awesome!", - "As seen on TV!", - "doot doot", - "100% Fresh!", - "LOL", - "Cold as ice!", - "Why are you looking at me?", - "Made in the US!", - "Made by Sky!", - "Sky can code", - "Click me :D", - "Reload the page NOW!", - "Downloading your passwords...", - "Running Selenite.exe", - "WARNING: You may lose braincells if you proceed!", - "Please go away. Thx", - "Made with Codeberg!", - "Made with a text editor!", - "Made with love", - "Made with H2O", - "This is a splash text!", - "100% Orgainic!", - "Now with Pac-Man!", - "Now with JavaScript!", - "Now with CSS", - "Do you bite your ice cream?", - "This was not ment to be seen. :o", - "Does anyone know how to stand up?", - "69420", - "Me too bro.", - "#Relatable", - "2 + 2 is 4 - 1 is 3 Quick mafs", - "Feels bad man.", - "Now with games that are unblocked?", - "Now with great games!", - "How do you play tic-tac-toe?", - "Fortnite is cringe", - "You got games on your phone?", - "I am not gonna say anything.", - "Now with Minecraft!", - "Your momma jokes are cringe", - "Now with a new splash!", - "You just dont get it do you?", - "Powered by hamsters!", - "*insert cool explosion*", - "Efficiency is key", - "New update???", - "We have answers!", - "aaaaaaaaaaaaaaaaaaa", - "Yooooooooooooooooooooo", - "Your ip is 69.420.69.420", - "he on x-games mode", - "Got to go fast!", - "GAS GAS GAS GOTTA STEP ON THE GAS!", - "Selenite would like to view your browser history", - "For legal reasons, that's a joke!", - "It has been 84 years...", - "Made by Gucci, selling for $69420", - "There is someone looking over your shoulder", - "Electric!", - "How many different ones are there?!?!", - "NERDDDDDDDDDDDDDDDDDD", - "My iPad passcode is 563543 btw", - "Get out of my room, I'm not going to let you in!", - "I'm not a robot!", - "I'm not a human!", - "Sponsered by RAID SHADOW LEGENDS!", - "Sponsored by Honey!", - "Lorem ipsum dolor sit amet, adipiscing consequat adipiscing sit amet. In tortor dolor, sollicitudin quis urna vitae, rutrum selecrelico dolor. Ut facilisis ornare lacus, ut dictum felis aliquam ut. Omnino interdum fit cum cura. Non est aequum, non solum, sed nec refert quis sit terra. Sed vestibulum a tellus non semper. Aliquam a neque euismod dolor dapibus aliquet ultricies ut nibh. Sed eget auctor ante. Aliquam dictum volutpat vestibulum. Putasti ovum paschale futurum. Nullo modo.", - "ive currently lost $4 on this website", - "join the discord NOW", - "have any of you played on the og padlet?", - "linux is so much better than windows", - "Did you know that oxygen is tasty?", - "Did you know that drinking water is dangerous?", - "🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸", - "chromebooks suck", - "Made 10% from actual code 90% skidded", - "And no wonder, for Piplup7575 himself hides as a normal programmer even though he is very super duper cool.", - "Eat like a king who is on a budget", - "goodbye to all the fallen comrades", - "Approved by the Iranian ministry of health", - "AGE RATING 4+", - "Bebzi or Koka Kola", - "moni", - "Made proudly by U.S.A patriots.", - "Piiiiiiiiiiiiiplup", - "Piplup so cool very cool", - "The 7576th piplup is really bad", - "The northernfish goes south", - "Piplup7575 is the cool", - "Piplup is cool", - "uwu", - "uWu", - "OwO", - "UwU", - "Chocolate hummus is a disgrace to the entire middle east.", - "3kh0 has fell, and now 3kh0 has sadly died.", - "Fun fact: Your chromebook is likely being monitored 24/7", - "contains 100% all-natural chicken", - "contains 100% all-natural pork", - "Activate Selenite, Go to settings to activate Selenite", - "This copy of Selenite is not genuine.", - "contains 100% all-natural beef", - "You may be a victim of software counterfeiting", - "contains 100% all-natural lamb", - "Woe to those who don't use this game site", - "Whopper, Whopper, Whopper, Whopper,Junior, double, triple Whopper,Flame-grilled taste with perfect toppers,I rule this day.Lettuce, mayo, pickle, ketchup,It's OK if I don't want that, Impossible or bacon Whopper,Any Whopper my way.You rule, you're seizing the day,At BK, have it your way.You rule!", - "Did you know we are open source?", - "goodbye 3kh0 :(", - "SUPR COL GAMS V2 IS AWESOME!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", - "Fun fact: Did you know that this site was originally a Padlet?", - "thank you to louis pasteur for inventing milk", - "you found the secret message", - "hi david", - "i ate that david", - "david that eat", - "hi from asleep", - "i know where you live", - "i", - "technoblade never dies", - "Selenite has shut down.", - "theres at least 2, maybe 3 games on this website", - "yall failing ur classes while im a straight A student in all honors", - "just maybe stole a bunch ideas from 3kh0", - "why is 1v1lol the most popular game", - "https://discord.gg/7jyufnwJNf", - "buy smth from the patreon so i dont have to be in debt anymore", - "https://skysthelimit.dev", - "https://github.com/selenite-cc", - "CURRENTURL", - "the square root of OGNUM1 is SQRTNUM1", - "ZG8geW91ciBzY2hvb2wgd29yaw", - "use the transfer tool to keep ur data from other websites", - "best way to bypass the filter is on my patreon! (i wrote this as a joke but its real now)", - "best proxy ever only on my patreon (i wrote this as a joke but its real now)", - "🥺👉👈", - "what website is this?", - "we love about:blank", - "make sure to back up ur saves incase we ever get blocked", - "join the discord to be cool", - "bigfoot is an L", - "check steam", - "selentine", - "geometry dash two point two", - "does anyone call twitter X unironically", - "why is there like a hundred solo.to pages that have selenite, literally just search \"site:solo.to selenite\"", - "rights to the trans people 🏳️‍⚧️ (trans rights)", - "happy new years everyone", - "merry christmas everyone", - "happy easter day everyone", - "happy halloween everyone", - "happy thanksgiving everyone", - "happy valentines day everyone", - "happy birthday to me", - "happy birthday to you", - "happy birthday to everyone", - "happy birthday to the website", - "dont look behind you", - "sky", - "penguinify", - "a456pur", - "selenite", - "3kh0", - "selenite is the best", - "selenite is the best website", - "selenite is the best website ever", - "selenite is the best website ever made", - "selenite is the best website ever made in the history of the world", - "selenite is the best website ever made in the history of the world and the universe", - "selenite is the best website ever made in the history of the world and the universe and the galaxy", - "selenite is the best website ever made in the history of the world and the universe and the galaxy and the solar system", - "selenite is the best website ever made in the history of the world and the universe and the galaxy and the solar system and the milky way", - "selenite is the best website ever made in the history of the world and the universe and the galaxy and the solar system and the milky way and the universe", - "Your network admin has logged this visit. You will be reported to the authorities.", - "share with your friends", - "i love piracy", - "i love piracy and you should too", - "ai is gonna take over the world", - "serap", - "slenetine", - "Behind you.", - "if you are seeing this message, please ping the owner of selenite in the discord server immediately.", - "sorry in advance for may 18th", - "selenite stole $100k from the pentagon to keep paying for hosting", - "this is your sign to get off games and get a good academic life", - "Josh", - "3kh0 has been kidnapped.", - "We skidded from everyone including ourselves.", - "congrats on who got a 53 by using this site", - "@everyone Please be reminded that you should not to try and get a girlfriend in the Selenite widgetbot chat.", - "ive spent 10 minutes writing 8 quotes gosh i need better things to do", - "selenite workers are immensely underpaid", - "how does one", - "Please add proxy im begging i need proxy", - "seraphite", - "if u self-hosted this then ur cool", - "laptops are better then iPads", - "Remember When The Platform Was Sliding Into The Fire Pit, And I Said 'Goodbye,' And You Were Like 'No Way!' And Then I Was All, 'We Pretended We Were Going To Murder You.' That Was Great.", - "How Are You Holding Up? Because I’m A Potato.", - "As resilient as the pirate bay", - "We are resilient", - "We will never go away", - "4 Million gamers and counting", - "So many games to choose!", - "example.com", - "Dyknow eww", - "Securly no pls", - "i like bean", - "i like beans", - "i like lots of beans", - "i enjoy eating beans", - "i have a fondness for beans", - "i am a fan of beans", - "i find beans delicious", - "i can't resist a good bean dish", - "i think beans are underrated", - "i prefer beans over meat", - "i could eat beans every day", - "i believe beans are a healthy food", - "i always add beans to my salads", - "Desperado - Khantrast", - "Never Gonna Give You Up - Rick Astley", - "Bohemian Rhapsody - Queen", - "Hotel California - Eagles", - "Reeeeeeeee", - "Victor cant fly", - "if you want to install linux, first crack the skid, then restart and you should be set", - "sure just downgrade the about:blank page", - "...that's not how it works. if you want to unenroll the only way to do that is to uninstall the shim", - "sure just hack the crosh shell", - "yeah so you want to playstore bypass the servers, you don't want to remove the servers", - "yeah so you want to crack the proxy, you don't want to hack the goguardian", - "to disable filters, you need to hack the proxy", - "to downgrade, you need to rm -rf the shim", - "🥺👉👈", - "Fancy! ✨", - "˙ǝɯoɔlǝM", - "¡ollǝH", - "¿ʞɹoʍ uǝʌǝ sᴉɥʇ sǝop", - "ǝʇᴉsqǝʍ pɐɹ ʎɯ oʇ ǝɯoɔlǝM", - "¿¿sᴉǝɥʇ pɐǝɹ uɐɔ no⅄", - "Ḩ̴͈̗͉̜͓̣͈̙̉͑̅͋͆ë̷̱̒̿̔̕͠l̵̡̦̜̣̣̂p̴̧̢̜͓̀̒̊͗̃", - "W̷̧͈̭͉͎͙̜͉̒̈̀͆̊͑ͅe̴̢̨͕͖̩̘̱̘͎̜̞̮̖͌̿̒̽̅͆̅̂̄̉͊̾́̏͘͜͜l̶̡̤͉̟͉̞̝̻͈̐̃̓̇̑̏͗͌̒̒̿͒̚͝c̶̡̢̛͈͕̮̹̪̳̼͈͓̩̩̻͍̓̄̂͊̐̂͒̈́̊̇́̋͑̅͐͘͜ở̵͔̙͚̪͔̘̙̩̦͉̻̦̯́̂͐̉̔̀̊͂m̸̢̢̺̼͎͚͙̬̬͍̎̚e̸̜̩̫̯͙̲͍͍̯̓̔̎̍͂̓͐͌̍̃̈̾̕͘ ̶̞͔̲̦̀̽t̴̛̬͓̲̬̖̼̒͗̊͌͑̒̎̿̎̅̓̕͠͠o̵̡̨̙̬̦͍̠͕̭͚͛ͅ ̸̪̳̟̍̇̀̀͌̏̌̽͛͜3̸̧̹̝̼̺̹̞̯̠͓͛͋͌͆́͌͋̇͐͝͠k̷̟̙̙̹͚͗͛̀̽͊̇͑̒ḩ̴̩͍̗̙͓̱̠͕̺̖̘̹͉̋̒̎̽͑̈́͜ͅ0̴̱͍̬̩̩͇̥̯̯̬̙̽̈́̓̍̉͜͝!̸̠̗̠͉̪̮̻͈̰̄̚", - "All your base are belong to us", - "Error 404: Brain not found", - "Why settle for less when you can have the best?", - "Life's too short for bad design", - "Don't be a square, be a triangle", - "Think outside the box (except for this one)", - "Why be ordinary when you can be extraordinary?", - "Designing the future, one pixel at a time", - "Don't be afraid to try something new", - "The world is your canvas, make a masterpiece", - "Design is not just what it looks like and feels like. Design is how it works", - "Simplicity is the ultimate sophistication", - "Design is thinking made visible", - "The best things in life are design", - "Design is not just for decoration, it's function", - "Design is not just what it looks like, it's how it works", - "All your data belong to us.", - "Error 404: humor not found.", - "Welcome to the matrix.", - "We're not just a website, we're a lifestyle.", - "Mind blown? Us too.", - "Don't believe everything you see on the internet.", - "All hail the almighty algorithm.", - "We put the 'pro' in procrastination.", - "We're not just a website, we're a community.", - "We're the real deal, not a facsimile.", - "We're the missing piece to your internet puzzle.", - "You're not just visiting a website, you're experiencing the future.", - "We're the missing link, not the missing lynx.", - "We're not just a website, we're a revolution.", - "We're not just a website, we're a subculture.", - "We're not just a website, we're an obsession.", - "We're not just a website, we're a force to be reckoned with.", - "We're not just a website, we're a way of life.", - "We're not just a website, we're a cult.", - "We're the website you never knew you needed.", - "We're the website your mother warned you about.", - "We're the website your teachers told you to stay away from.", - "We're the website your friends are talking about.", - "We're the website you'll never forget.", - "We're the website that's taking over the world.", - "Think outside the box - unless it's a circle, then just think inside!", - "We're not just another website, we're a website with personality!", - "In a world of copycats, be a original.", - "We're not just a website, we're an experience.", - "We're not just a website, we're a movement.", - "We're not just a website, we're a game-changer.", - "We're not just a website, we're a trendsetter.", - "We're not just a website, we're a work of art.", - "We're not just a website, we're a masterpiece.", - "We're not just a website, we're a phenomenon.", - "We're not just a website, we're a sensation.", - "We're not just a website, we're a sensation of the internet.", - "We're not just a website, we're a revolution in the digital world.", - "We're not just a website, we're a revolution in the world of information", - "We're not just a website, we're a one-of-a-kind", - "We're not just a website, we're a one-stop-shop", - "We're not just a website, we're a one-stop-shop for all your needs", - "We're not just a website, we're a one-stop-shop for all your information needs", - "We're not just a website, we're a one-stop-shop for all your digital needs", - "We're not just a website, we're a one-stop-shop for all your online needs.", - "Unlock the power of knowledge with us.", - "Where the impossible becomes possible.", - "Experience the future of technology with us.", - "Where innovation meets creativity.", - "Empowering you to achieve your goals.", - "Join the revolution of digital transformation.", - "Leading the way in cutting-edge technology.", - "Transforming the way you interact with the world.", - "Unleashing the power of information at your fingertips.", - "Setting new standards in user experience.", - "Unlocking the full potential of the internet for you.", - "Discover endless possibilities with us.", - "Changing the game in online exploration.", - "Elevating your online experience to new heights.", - "Pushing the boundaries of what's possible online.", - "Unlocking the secrets of the digital world with us.", - "Unleashing the full potential of the internet for you.", - "Unlocking the power of data for you.", - "Where technology and human potential meet.", - "Where imagination becomes reality.", - "Where innovation meets accessibility.", - "Where creativity and technology merge.", - "Where ideas become solutions.", - "Where every click counts.", - "Where the future of the internet is now.", - "Why did the tomato turn red? Because it saw the salad dressing.", - "Why did the chicken cross the playground? To get to the other slide.", - "Why don't scientists trust atoms? Because they make up everything.", - "Why did the cookie go to the hospital? Because it was feeling crumbly.", - "Why did the computer go to the doctor? Because it had a virus.", - "Why did the cyclops stop teaching? Because he only had one pupil.", - "Why did the frog call his insurance company? He had a jump in his car.", - "Why did the boy tiptoe past the medicine cabinet? He didn't want to wake the sleeping pills.", - "Why did the cookie go to the seance? To talk to the dead dough.", - "Why did the clock go to the doctor? It had a broken tick-tock.", - "Why did the belt go to jail? For holding up the pants.", - "Why did the robot go to school? To learn how to unplug itself.", - "Life in the fast lane!", - "🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧", - "i forgor", - "i rember", - "me when i the me the when the the me the when i the when the me the the the when the", - "Under pressure!", - "Do your work!", - "the voices", - "imagine not spending 748,289,198 hours making this site" + "add quotes soon" ] \ No newline at end of file diff --git a/js/games.js b/js/games.js index d81f444..03a27d3 100755 --- a/js/games.js +++ b/js/games.js @@ -3,7 +3,7 @@ let elements = []; async function loadGames() { // taken from mdn // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort - let data = await (await fetch("/data/games.json")).json(); + let data = await (await fetch("/resources/games.json")).json(); sorted = data.sort((a, b) => { const n1 = a.name.toUpperCase(); const n2 = b.name.toUpperCase(); @@ -18,10 +18,11 @@ async function loadGames() { }); let gamesElement = document.getElementById("games"); sorted.forEach(element => { + console.log(element); let newElement = document.createElement("game"); newElement.setAttribute("data-target", element.directory); let image = document.createElement("img"); - image.src = `/semag/${element.directory}/${element.image}` + image.src = `/resources/semag/${element.directory}/${element.image}` let title = document.createElement("h1"); title.innerText = element.name; newElement.appendChild(image); @@ -32,6 +33,7 @@ async function loadGames() { }) elements.push(newElement); }); + document.getElementById("loadingMsg").style.display = "none"; } document.addEventListener("DOMContentLoaded", ()=>{ document.getElementById("gamesearch").addEventListener("input", ()=>{ diff --git a/js/main.js b/js/main.js index cb85599..5489d71 100755 --- a/js/main.js +++ b/js/main.js @@ -23,12 +23,14 @@ function cursor() { cursor.style.backgroundColor = "var(--color-1)"; cursor.style.position = "absolute"; cursor.style.borderRadius = "100%"; - // cursor.style.filter = "blur(40px)"; + cursor.style.filter = "blur(40px)"; + cursor.style.opacity = "1"; cursor.style.pointerEvents = "none"; document.body.appendChild(cursor); document.addEventListener("mousemove", (e) => { - cursor.style.top = `${e.clientY - 15}px`; - cursor.style.left = `${e.clientX - 15}px`; + console.log(e); + cursor.style.top = `${e.pageY - 15}px`; + cursor.style.left = `${e.pageX - 15}px`; }) } diff --git a/loader.html b/loader.html index e91d2a9..3635d68 100755 --- a/loader.html +++ b/loader.html @@ -21,14 +21,14 @@ location.search.substr(1).split("&").forEach((e)=>{ items[e.split("=")[0]] = e.split("=")[1] }); - document.getElementById("gameFrame").setAttribute("src", `/semag/${items.dir}/index.html`); - document.getElementById("gameImage").setAttribute("src", `/semag/${items.dir}/${items.img}`); + document.getElementById("gameFrame").setAttribute("src", `/resources/semag/${items.dir}/index.html`); + document.getElementById("gameImage").setAttribute("src", `/resources/semag/${items.dir}/${items.img}`); document.getElementById("gameName").innerText = decodeURIComponent(items.title); console.log(items); } else if(localStorage.getItem("selenite.lastGame")) { let game = JSON.parse(decodeURIComponent(atob(localStorage.getItem("selenite.lastGame")))); - document.getElementById("gameFrame").setAttribute("src", `/semag/${game[0]}/index.html`); - document.getElementById("gameImage").setAttribute("src", `/semag/${game[0]}/${decodeURIComponent(game[1])}`); + document.getElementById("gameFrame").setAttribute("src", `/resources/semag/${game[0]}/index.html`); + document.getElementById("gameImage").setAttribute("src", `/resources/semag/${game[0]}/${decodeURIComponent(game[1])}`); document.getElementById("gameName").innerText = game[2]; } // document.getElementById("fullscreen").addEventListener("click", () => { diff --git a/projects.html b/projects.html index 425d138..9fb11a3 100755 --- a/projects.html +++ b/projects.html @@ -53,12 +53,7 @@
- - +

games loading..

nothing was found! try a new search query.

-- 2.49.0 From aa4bb6978600a5a72a3f1dd5cf7ab619a84594c7 Mon Sep 17 00:00:00 2001 From: sky Date: Mon, 7 Jul 2025 19:44:08 -0400 Subject: [PATCH 04/21] add stars --- backgrounds.html | 74 ---------------------------------- css/games.css | 41 +++++++++++++++---- css/loader.css | 2 +- css/main.css | 4 ++ js/games.js | 101 +++++++++++++++++++++++++++++++++++++++++++---- js/main.js | 1 - projects.html | 4 ++ 7 files changed, 136 insertions(+), 91 deletions(-) delete mode 100755 backgrounds.html diff --git a/backgrounds.html b/backgrounds.html deleted file mode 100755 index db85240..0000000 --- a/backgrounds.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - Selenite - - - - - - - - - - - -
- Home - Bookmarklets - Games - Apps - Settings - Open Blank - - -
-
- - 邦乔彦 - - - Matt Vince - - - Rafaël De Jongh - - - a456pur -
- - - - - diff --git a/css/games.css b/css/games.css index e1af4d6..cf8960e 100755 --- a/css/games.css +++ b/css/games.css @@ -24,27 +24,52 @@ game img { justify-self: left; margin-right: auto; } -game h1 { +#holder h1 { font-size: 14px; margin: 15px; - max-width: 50%; + width: 100%; + text-align: right; + height: 70%; } -#games { +#holder { + width: 70%; + height: auto; + display: flex; + flex-direction: column; + align-items: flex-end; +} +#star { + width: 10%; + justify-self: right; + margin-left: auto; + margin-right: 15px; + transition-duration: 0.25s; +} +#star:hover { + transform: scale(1.1); + filter: drop-shadow(0 0 5px var(--color-1)) +} +#games, #starredgames { width: 90vw; - height: 100%; display: flex; flex-direction: row; justify-content: center; flex-wrap: wrap; - min-height: calc(100vh - (18px * 2 + 5px * 2 + 20px * 2)); + height: 100%; gap: 0px; } #noResults, #loadingMsg { - font-size: 28px; + font-size: 24px; color: var(--color-1); - text-shadow: var(--color-1) 0 0 10px; } -#noResults { +#starredHeader, #allHeader { + font-size: 32px; + color: var(--color-1); +} +#noResults, #starredHeader, #allHeader { display: none; +} +body { + justify-content: flex-start; } \ No newline at end of file diff --git a/css/loader.css b/css/loader.css index 838443f..0a481b2 100644 --- a/css/loader.css +++ b/css/loader.css @@ -23,7 +23,7 @@ } #infobox img { height: 100%; - margin: 1.5%; + margin: 0.5%; aspect-ratio: 1 / 1; border-radius: 8px; } diff --git a/css/main.css b/css/main.css index e5afa66..99442f7 100755 --- a/css/main.css +++ b/css/main.css @@ -25,6 +25,7 @@ body { } body { animation: 1s ease-out loadIn; + user-select: none; } @keyframes loadIn { from {opacity: 0;transform: translateY(-32px);} @@ -67,4 +68,7 @@ h3 { p { font-size: 16px; margin: 2px; +} +img { + image-rendering: pixelated; } \ No newline at end of file diff --git a/js/games.js b/js/games.js index 03a27d3..4053a9a 100755 --- a/js/games.js +++ b/js/games.js @@ -4,7 +4,7 @@ async function loadGames() { // taken from mdn // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort let data = await (await fetch("/resources/games.json")).json(); - sorted = data.sort((a, b) => { + let sorted = data.sort((a, b) => { const n1 = a.name.toUpperCase(); const n2 = b.name.toUpperCase(); if (n1 < n2) { @@ -17,23 +17,58 @@ async function loadGames() { return 0; }); let gamesElement = document.getElementById("games"); + let starredGames = JSON.parse(localStorage.getItem("selenite.starred") || '[]'); sorted.forEach(element => { - console.log(element); + isStarred = starredGames.indexOf(element.directory) != -1; let newElement = document.createElement("game"); newElement.setAttribute("data-target", element.directory); + newElement.setAttribute("data-image", element.image); let image = document.createElement("img"); image.src = `/resources/semag/${element.directory}/${element.image}` + let holder = document.createElement("div"); + holder.id = "holder"; let title = document.createElement("h1"); title.innerText = element.name; + let star = document.createElement("img"); + star.id = "star"; + star.classList = "star"; + star.src = isStarred ? "/img/star-fill.svg" : "/img/star.svg"; newElement.appendChild(image); - newElement.appendChild(title); + holder.appendChild(title); + holder.appendChild(star); + newElement.appendChild(holder); gamesElement.appendChild(newElement); + elements.push(newElement); newElement.addEventListener("click", ()=>{ location.href=`/loader.html?title=${encodeURIComponent(element.name)}&dir=${element.directory}&img=${element.image}` - }) - elements.push(newElement); + }); + star.addEventListener("click", (e) => { + e.preventDefault(); + e.stopPropagation(); + starEvent(e); + }); }); document.getElementById("loadingMsg").style.display = "none"; + document.getElementById("allHeader").style.display = "block"; + starredGames = JSON.parse(localStorage.getItem("selenite.starred") || '[]'); + if(starredGames.length > 0) { + document.getElementById("starredHeader").style.display = "block"; + starredGames.forEach((e) => { + let element = document.querySelector(`#games game[data-target='${e}']`); + let newElement = element.cloneNode(true); + document.getElementById("starredgames").appendChild(newElement); + newElement.addEventListener("click", ()=>{ + location.href=`/loader.html?title=${newElement.childNodes[1].childNodes[0].innerText}&dir=${newElement.getAttribute("data-target")}&img=${newElement.getAttribute("data-image")}` + }); + }); + document.querySelectorAll("#starredgames #star").forEach((e) => { + e.addEventListener("click", (e) => { + e.preventDefault(); + e.stopPropagation(); + starEvent(e); + }) + }) + } } document.addEventListener("DOMContentLoaded", ()=>{ document.getElementById("gamesearch").addEventListener("input", ()=>{ @@ -41,7 +76,7 @@ document.addEventListener("DOMContentLoaded", ()=>{ let total = 0; if(elements.length > 0) { elements.forEach((element) => { - let title = element.childNodes[1].innerText.toUpperCase(); + let title = element.childNodes[1].childNodes[0].innerText.toUpperCase(); if(title.includes(input)) { element.style.display = "flex"; } else { @@ -52,4 +87,56 @@ document.addEventListener("DOMContentLoaded", ()=>{ } document.getElementById("noResults").style.display = total >= elements.length ? "flex" : "none" }) -}) \ No newline at end of file +}); + +function starEvent(e) { + let game = e.target.parentNode.parentNode.getAttribute("data-target"); + starredGames = JSON.parse(localStorage.getItem("selenite.starred") || '[]'); + if(starredGames.indexOf(game) == -1) { + starredGames.push(game); + starredGames.sort(); + if(starredGames.length > 0) { + document.getElementById("starredHeader").style.display = "block"; + } else { + document.getElementById("starredHeader").style.display = "none"; + } + localStorage.setItem("selenite.starred", JSON.stringify(starredGames)); + e.target.src = "/img/star-fill.svg"; + starredgames.innerHTML = ""; + starredGames.forEach((e) => { + let element = document.querySelector(`#games game[data-target='${e}']`); + let newElement = element.cloneNode(true); + document.getElementById("starredgames").appendChild(newElement); + newElement.addEventListener("click", ()=>{ + location.href=`/loader.html?title=${encodeURIComponent(element.name)}&dir=${element.directory}&img=${element.image}` + }); + }) + } else { + starredGames.splice(starredGames.indexOf(game), 1); + document.querySelectorAll(`game[data-target='${game}'] #star`).forEach((e) => { + e.src = "/img/star.svg"; + }) + if(starredGames.length > 0) { + document.getElementById("starredHeader").style.display = "block"; + } else { + document.getElementById("starredHeader").style.display = "none"; + } + localStorage.setItem("selenite.starred", JSON.stringify(starredGames)); + starredgames.innerHTML = ""; + starredGames.forEach((e) => { + let element = document.querySelector(`#games game[data-target='${e}']`); + let newElement = element.cloneNode(true); + document.getElementById("starredgames").appendChild(newElement); + newElement.addEventListener("click", ()=>{ + location.href=`/loader.html?title=${encodeURIComponent(element.name)}&dir=${element.directory}&img=${element.image}` + }); + }) + } + document.querySelectorAll("#starredgames #star").forEach((e) => { + e.addEventListener("click", (e) => { + e.preventDefault(); + e.stopPropagation(); + starEvent(e); + }) + }) +} \ No newline at end of file diff --git a/js/main.js b/js/main.js index 5489d71..8ad8a71 100755 --- a/js/main.js +++ b/js/main.js @@ -28,7 +28,6 @@ function cursor() { cursor.style.pointerEvents = "none"; document.body.appendChild(cursor); document.addEventListener("mousemove", (e) => { - console.log(e); cursor.style.top = `${e.pageY - 15}px`; cursor.style.left = `${e.pageX - 15}px`; }) diff --git a/projects.html b/projects.html index 9fb11a3..d42cb28 100755 --- a/projects.html +++ b/projects.html @@ -52,6 +52,10 @@ +

starred games

+
+
+

all games

games loading..

nothing was found! try a new search query.

-- 2.49.0 From c8d3d0d50c23786bb588e20a06fc817377ad6513 Mon Sep 17 00:00:00 2001 From: sky Date: Tue, 8 Jul 2025 00:25:44 -0400 Subject: [PATCH 05/21] themes + begin user pages --- about.html | 2 +- css/main.css | 35 ++- css/oldstyle.css | 673 ----------------------------------------------- css/pages.css | 69 ++++- css/settings.css | 23 ++ css/themes.css | 36 +++ home.html | 4 +- index.html | 2 +- js/main.js | 5 +- settings.html | 215 +++++---------- 10 files changed, 233 insertions(+), 831 deletions(-) delete mode 100755 css/oldstyle.css create mode 100644 css/settings.css diff --git a/about.html b/about.html index 6f80044..e0b30e5 100755 --- a/about.html +++ b/about.html @@ -1,5 +1,5 @@ - + diff --git a/css/main.css b/css/main.css index 99442f7..1b33054 100755 --- a/css/main.css +++ b/css/main.css @@ -13,7 +13,7 @@ html, body { /* height: 100vh; */ width: 100vw; - color: white; + color: var(--text-color); background-color: black; } @@ -69,6 +69,39 @@ p { font-size: 16px; margin: 2px; } +a { + color: var(--text-color); +} img { image-rendering: pixelated; +} +select, +::picker(select) { + appearance: base-select; +} +select { + padding: 8px; + background-color: color-mix(in srgb, var(--color-4) 30%, #00000000 70%); + transition-duration: 0.25s; +} +select:hover, +select:focus { + background: color-mix(in srgb, var(--color-3) 60%, #00000000 40%); +} +::picker(select) { + border: none; + border-radius: 8px; +} +option { + display: flex; + background: color-mix(in srgb, var(--color-3) 30%, var(--color-4) 60%); + padding: 2px; + transition: 0.25s; + color: var(--text-color) +} +option:hover { + background: color-mix(in srgb, var(--color-2) 40%, var(--color-4) 50%); +} +option:focus { + background: color-mix(in srgb, var(--color-2) 60%, var(--color-4) 40%); } \ No newline at end of file diff --git a/css/oldstyle.css b/css/oldstyle.css deleted file mode 100755 index 6a0502b..0000000 --- a/css/oldstyle.css +++ /dev/null @@ -1,673 +0,0 @@ -@import url("https://fonts.googleapis.com/css2?family=Prompt:wght@300&display=swap"); - -@keyframes loadInAnimation { - 0% { - opacity: 0; - } - 100% { - opacity: 100; - } -} - -:root { - --inputbg: #3c096c; - --inputborder: #5a189a; - --uibg: #240046; - --textcolor: #fff; - --bg: #10002b; - --margin: 4rem; -} -.hiddenUpload { - display: none; - visibility: hidden; -} -* { - transition-duration: 0.5s; - outline: none; - border: none; - box-sizing: border-box; - align-content: center; - text-align: center; - font-family: "Prompt", sans-serif; - color: var(--textcolor); -} -body { - margin: 0; - padding: 0; - background: var(--bg); - color: var(--textcolor); - background-position: center; - background-repeat: no-repeat; - background-size: cover; - background-attachment: fixed; -} - -header, -footer { - background-color: var(--uibg); - display: flex; - border-bottom: none; - font-weight:700; - padding: 0.7rem; - width: 100%; - z-index: 1; - justify-content: center; - text-align: center; - text-decoration: none; -} - -#time { -font-weight:100; -} -header { - top: 0; - border-radius: 0 0 20px 20px; - position: fixed; - box-shadow: 0 5px 10px var(--uibg); -} - -footer.noscroll { - position: fixed; - overflow: hidden; -} - -footer { - bottom: 0; - border-radius: 20px 20px 0 0; - box-shadow: 0 -5px 10px var(--uibg); -} - -footer a, -footer a:visited, -header a, -header a:visited { - margin-right: 1.5rem; - margin-left: 1.5rem; - text-decoration: none; -} - -footer a:hover, -header a:hover { - text-shadow: 2px 2px 6px var(--textcolor); -} - - -@media only screen and (max-width: 768px) { - header, - footer { - flex-direction: column; - align-items: center; - } - - header { - border-radius: 0; - } - - footer { - border-radius: 0; - } - * { - --margin: 12rem; - } -} - -main { - animation: 1.25s ease-in-out 0s 1 loadInAnimation; - align-items: center; - flex-direction: column; - display: flex; - min-height: calc(100vh - (2 * 0.7rem)); - gap: 0; - flex-wrap: wrap; - margin: auto; - margin-top: var(--margin); - width: 90%; - height:auto; -} -main#main.noscroll { - justify-content: center; -} -h1, -h2, -h3, -p, -a, -label { - margin: 0; - padding: 0; - text-shadow: var(--shadow); -} -.samerow { - display: flex; - justify-content: center; - gap: 0; - flex-wrap: wrap; - align-items: center; - justify-content: center -} -h1 { - font-size: 60px; -} - -h2 { - font-size: 40px; -} -h3 { - font-size: 20px; -} -p, -a { - font-size: 16px; -} - -button, -input#websubmit.submit, -input[type="submit"] { - cursor: pointer; - background-color: var(--inputbg); - border-color: var(--inputborder); - border-width: 2px; - border-radius: 10px; - border-style: solid; - padding: 7px; - margin-left: 20px; - margin-right: 20px; - margin: 10px; -} - -button:hover, -input#websubmit.submit:hover, -input[type="submit"]:hover { - filter: brightness(80%); - transform: scale(1.07); -} - -img { - width: 100%; - aspect-ratio: auto; - user-select: none; - filter: drop-shadow(var(--shadow)); - image-rendering: pixelated; -} - -.img-container a { - width: 100%; -} - -.img-container { - display: flex; - justify-content: center; - align-items: center; - flex-direction: row; - gap: 0; - flex-wrap: wrap; - width: 6%; - aspect-ratio: 1 / 1; - margin: 2%; -} - -.game, -.suggest { - width: 15%; - border-radius: 20px; - display: inline-block; - background-color: var(--uibg); - margin: 15px; - cursor: pointer; - box-shadow: 0px 0px 5px 5px var(--uibg); -} - -.game:hover, -.suggest:hover { - transform: scale(1.1); - filter: brightness(85%); - box-shadow: 0px 0px 5px 5px var(--uibg); -} - -.game h1, -.suggest h1 { - font-size: 12px; - float: right; - margin-right: 10px; - margin-top: 3px; - margin-bottom: 3px; -} - -.game img, -.suggest img { - width: 100%; - border-radius: 20px; - aspect-ratio: 1 / 1; -} - -img.star { - float: left; - width: 10%; - margin-top: 3px; - margin-bottom: 3px; - margin-left: 10px; -} - -#noscroll { - overflow-y: hidden; - justify-content: center; -} - -#games, -#pinned { - width: 100%; - justify-content: center; -} - -input[type="text"], -input[type="password"] { - width: 50%; - background-color: var(--inputbg); - box-sizing: border-box; - font-size: 20px; - padding: 0.8% 0.8%; - text-align: center; - border-radius: 5px; - outline: none; - margin: 10px; - border: 2px solid var(--inputborder); - border-radius: 5px; - transition: opacity 0.25s ease-in-out; - opacity: 100%; -} -input[type="text"]:hover, -input[type="password"]:hover { - opacity: 80%; -} -::placeholder { - color: var(--textcolor); - opacity: 0.4; /* Firefox */ -} - -.bookmarkletdiv { - width: 30%; - background-color: var(--uibg); - box-shadow: 0px 0px 5px 5px var(--uibg); - padding: 5px; - margin: 15px; - border-radius: 10px; - display: inline-block; -} - -.bookmarkletdiv a { - font-size: 30px; -} - -form { - width: 100%; -} -.samerow.themebtns { - width: 70%; -} - -select { - border-radius: 5px; - background-color: var(--inputbg); - border-color: var(--inputborder); - border-width: 5px; - border-radius: 10px; - border-style: solid; - padding: 0.5% 0.5%; - margin: 0.25%; -} - -thumb.png .img-credits { - height: 40vh; - width: auto; - box-shadow: 0px 0px 20px rgba(255, 255, 255, 0.555); -} - -label { - font-size: 20px; - padding-left: 5px; -} -.avatar { - margin: 5px; -} -#bgimg { - width: 30vw; - font-size: 16px; -} -.usericon { - width: 24px; - height: 24px; - align-self: right; - /* display: none; */ -} -#toast { - position: fixed; - top: 0; - right: 0; - margin: 10px; - padding: 10px; - background-color: var(--inputbg); - border-radius: 10px; - border-width: 10px; - border-color: var(--inputborder); - border-style: solid; - z-index: 10000; - text-align: center; - opacity: 0; - transition-duration: 1s; - max-width: 30%; -} -#toast h1 { - font-size: 20px; - text-align: center; -} -#toast p { - font-size: 16px; - text-align: center; -} -#discord { - position: fixed; - bottom: 10px; - right: 10px; - width: 56px; - height: 56px; - z-index: 199975; - border-radius: 100%; - background-image: url("/img/discord.svg"); - background-size: 60%; - background-position: center; - background-repeat: no-repeat; - border-width: 0; -} - -div.profile.top { - width: 90%; - height: 20vh; - background-color: var(--uibg); - border-radius: 10px; - display: flex; - justify-content: left; - align-items: center; - box-shadow: 0px 0px 5px 5px var(--uibg); -} -div.profile.top.text { - position: relative; - display: flex; - flex-direction: column; - width: auto; - justify-self: center; - height: auto; - margin: 30px; - max-width: 40%; -} - -div.profile.top.text.right { - margin-left: auto; - margin-right: 80px; -} - -div.profile.top.text h1 { - font-size: 2vw; -} -div.profile.top.text h2 { - font-size: 1.25vw; -} -div.profile.top.text a { - font-size: 1.25vw; -} - -img.pfp { - height: 80%; - object-fit: contain; - width: auto; - margin: 30px; - border-radius: 20px; - aspect-ratio: 1 / 1; -} -div.profile.top.text .about { - height: auto; - max-width: 100%; -} - -#edit { - cursor: pointer; - position: relative; - height: 2vw; - margin-left: 5px; - width: auto; -} -#counter { - position: absolute; - bottom: 0; - right: 0; -} -#popup { - width: 50%; - height: 40%; - z-index: 99999999; - position: absolute; - position: absolute; - top: 50%; - left: 50vw; - transform: translate(-50%, -50%); - display: flex; - flex-direction: column; - background-color: var(--inputbg); - border-color: var(--inputborder); - border-width: 5px; - border-radius: 10px; - border-style: solid; - justify-content: center; - align-items: center; - box-shadow: 0px 0px 5px 5px var(--uibg); -} -#popup input { - width: 90%; - height: 30%; -} -#popup input[type=file] { - height: auto; - text-align-last: center; - display: block; - margin: 30px; -} -#popup h1 { - font-size: 32px; -} - -#popup #close { - position: absolute; - right: 10px; - top: 10px; - -} -img.badges { - position: relative; - height: 2vw; - margin-left: 5px; - width: auto; -} - -p#counter { - bottom: 38%; - right: 7%; -} - - -.users { - text-decoration: none; - width: 30%; - height: 10vh; - background-color: var(--uibg); - border-radius: 10px; - display: flex; - align-items: center; - justify-content: center; - box-shadow: 0px 0px 5px 5px var(--uibg); - margin: 1.5%; -} -.users h1, .users p { - position: relative; - display: flex; - flex-direction: column; - width: 100%; - justify-self: center; - height: auto; - max-width: 100%; - margin: auto; -} -.user_info { - width: 100%; -} - -.users h1 { - font-size: 1vw; -} -.users p { - font-size: 0.75vw; -} -.users a { - font-size: 0.75vw; - text-decoration: underline; -} - -.users p { - height: auto; - max-width: 100%; -} -#users { - width: 95%; - display: flex; - align-items: center; - flex-wrap: wrap; - flex-direction: row; - display: flex; - align-items: center; - justify-content: center; -} - -.pages-btn { - margin: 10px; -} -#ai { - position: absolute; - right: 10px; - bottom: 10px; -} - -div.profile.played { - margin: 40px; - width: 90%; - height: auto; - padding: 30px; - background-color: var(--uibg); - border-radius: 10px; - display: flex; - justify-content: left; - align-items: center; - box-shadow: 0px 0px 5px 5px var(--uibg); - justify-content: center; - flex-wrap: wrap; - -} -#played-games { - width: 100%; - display: flex; - flex-wrap: wrap; - justify-content: center; -} -div.played-game { - width: 13%; - height: auto; - margin: 2%; - padding: 0; -} -div.played-game img { - aspect-ratio: 1 / 1; - border-radius: 20px; -} -.friend-icon { - width: 5%; - position: absolute; - left: 2%; -} -#chat { - width: 90%; - background-color: var(--uibg); - height: calc(100vh - (var(--margin) * 2) - 60px - 24px - 12px - 30px - 80px); -} -#messages { - align-items: end; - flex-direction: column; - overflow-y: scroll; - overflow-x: hidden; - height: 88%; - display: flex; -} -message { - width: calc(100% - 20px); - padding: 20px; - margin: 10px; - background-color: var(--inputbg); - border-radius: 10px; -} -message h1 { - font-size: 40px; -} -message h2 { - font-size: 32px; -} -message.user { - background-color: var(--inputborder); -} -message.bot { - justify-self: right; -} -#chatbox { - width: calc(100% - 20px); -} -.messagebox { - width: 100%; - height: 12%; -} -.evensmaller { - font-size: 12px; -} -#gamecontainer { - width: 80vw; - height: calc(100vh - (var(--margin) * 2)); - padding: 10px; - border-radius: 10px; - background-color: var(--uibg); -} -#gameFrame { - width: 100%; - height: 90%; - border-radius: 10px; - margin: 0; - padding: 0; -} -#infobox { - width: 100%; - height: 10%; - display: flex; -} -#infobox img { - height: 90%; - width: auto; - margin-right: 20px; - border-radius: 10px; -} -@keyframes toastFade { - 0% { - opacity: 0; - } - 15% { - opacity: 1; - } - 85% { - opacity: 1; - } - 100% { - opacity: 0; - } -} \ No newline at end of file diff --git a/css/pages.css b/css/pages.css index a3e9107..8d01ea8 100755 --- a/css/pages.css +++ b/css/pages.css @@ -44,7 +44,27 @@ body { transition-duration: 0.05s; transition-timing-function: ease-out; } -input[type=text] { +button { + border-style: solid; + border-width: 2px; + padding: 12px; + margin: 8px; + text-align: center; + border-radius: 10px; + background-color: var(--color-2); + border-color: var(--color-3); + color: var(--text-color); + outline: none; + transition-duration: 0.25s; + font-size: 14px; + text-shadow: var(--color-1) 0 0 10px; + cursor:pointer; +} +button:hover { + filter: brightness(1.1); + transform: scale(1.05); +} +input[type=text], input[type=password] { width: 70%; border-style: solid; border-width: 2px; @@ -60,13 +80,13 @@ input[type=text] { font-size: 20px; text-shadow: var(--color-1) 0 0 10px; } -input[type=text]:focus { +input[type=text]:focus, input[type=password]:focus { filter:brightness(1.25) !important; } -input[type=text]:hover { +input[type=text]:hover, input[type=password]:hover { filter:brightness(1.1); } -input[type=text]::placeholder { +input[type=text]::placeholder, input[type=password]::placeholder { color: color-mix(in srgb, var(--text-color) 20%, #00000000 80%); text-shadow: color-mix(in srgb, var(--text-color) 40%, #00000000 60%) 0 0 10px; } @@ -103,4 +123,45 @@ input[type=text]::placeholder { .title { color: var(--color-1); text-shadow: var(--color-1) 0 0 24px; +} +.h-captcha { + margin: 8px; +} +#popup { + width: 50%; + height: 40%; + z-index: 99999999; + position: absolute; + position: absolute; + top: 50%; + left: 50vw; + transform: translate(-50%, -50%); + display: flex; + flex-direction: column; + background-color: var(--color-3); + border-radius: 10px; + justify-content: center; + align-items: center; + box-shadow: 0px 0px 5px 5px var(--color-3); +} +#popup input { + width: 90%; + height: 30%; +} +#popup input[type=file] { + height: auto; + text-align-last: center; + display: block; + margin: 30px; +} +#popup h1 { + font-size: 32px; +} + +#popup #close { + position: absolute; + right: 10px; + top: 10px; + outline: none; + background-color: color-mix(in srgb, var(--color-4) 20%, #00000000 80%);; } \ No newline at end of file diff --git a/css/settings.css b/css/settings.css new file mode 100644 index 0000000..856cff8 --- /dev/null +++ b/css/settings.css @@ -0,0 +1,23 @@ +section { + width: 30%; + height: 400px; + height: auto; + padding: 8px; + margin: 16px; + background-color: color-mix(in srgb, var(--color-2) 40%, #00000000 60%); + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + border-radius: 20px; + margin: 15px; + transition-duration: 0.25s; + backdrop-filter: blur(2px); + box-shadow: 0 0 10px var(--color-2); +} +sections { + width: 90vw; + display: flex; + justify-content: center; + align-items: center; +} \ No newline at end of file diff --git a/css/themes.css b/css/themes.css index 22f0a1c..c493de1 100755 --- a/css/themes.css +++ b/css/themes.css @@ -6,4 +6,40 @@ body { --color-2: #7B2CBF; --color-3: #3C096C; --color-4: #240046; +} +body[theme=blackandwhite] { + --text-color: #fff; + --bg-1: #504d53; + --bg-2: #090909; + --color-1: #bfbfbf; + --color-2: #8e8e8e; + --color-3: #5c5c5c; + --color-4: #000000; +} +body[theme=grass] { + --text-color: #ffffff; + --bg-1: #1d3024; + --bg-2: #385041; + --color-1: #a8e5a7; + --color-2: #559b7a; + --color-3: #3a5c3f; + --color-4: #242e22; +} +body[theme=evil] { + --text-color: #ffffff; + --bg-1: #591414; + --bg-2: #ba2a2a; + --color-1: #eb8181; + --color-2: #ae4141; + --color-3: #7b3838; + --color-4: #4f2626; +} +body[theme=sky] { + --text-color: #ffffff; + --bg-1: #6aacbe; + --bg-2: #3e87bb; + --color-1: #46ccd6; + --color-2: #337792; + --color-3: #38617b; + --color-4: #263b4f; } \ No newline at end of file diff --git a/home.html b/home.html index f3ee942..669aa2e 100755 --- a/home.html +++ b/home.html @@ -1,5 +1,5 @@ - + @@ -32,8 +32,6 @@ ] } - - diff --git a/index.html b/index.html index 93510d6..9ea8d3b 100755 --- a/index.html +++ b/index.html @@ -1,5 +1,5 @@ - + diff --git a/js/main.js b/js/main.js index 8ad8a71..b398c9a 100755 --- a/js/main.js +++ b/js/main.js @@ -32,15 +32,18 @@ function cursor() { cursor.style.left = `${e.pageX - 15}px`; }) } +function themes() { + document.body.setAttribute("theme", localStorage.getItem("selenite.theme") || "") +} document.addEventListener("DOMContentLoaded", ()=>{ setBackground(); loadPJS(); cursor(); + themes(); }) document.addEventListener("scroll", ()=>{ - console.log("scroll"); document.getElementById("particles-js").style.top = window.scrollY + "px"; }) diff --git a/settings.html b/settings.html index 040dff1..5191077 100755 --- a/settings.html +++ b/settings.html @@ -1,153 +1,74 @@ - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - Settings | Selenite - - - - - - - - - -
- Home - Bookmarklets - Games - Apps - Settings - Open Blank - - -
- -
-

Settings

-
-

Website Name

-
-

Website Icon

-
-

Or select a preset:

-
- -
- -
-
- -
-
-
- -
-
-
- -
-
-

Themes

-
- -
-
-
- - - - - - - - - - - - - - - - - - - - -
- -
-
-

Website URL

-
- -
-
-
- - - + + + + + + Selenite + + + + + +

settings

+ +
+

theme

+ +
+
+ - - -- 2.49.0 From a698f941d8c0034603a4a663ac4b49a241df414f Mon Sep 17 00:00:00 2001 From: sky Date: Tue, 8 Jul 2025 22:01:44 -0400 Subject: [PATCH 06/21] finish up profiles, begin custom songs --- css/loader.css | 18 ++++++++ css/profile.css | 93 +++++++++++++++++++++++++++++++++++++++++ img/fullscreen.svg | 1 + img/fullscreen_exit.svg | 1 + img/muted.svg | 1 + img/pause.svg | 1 + img/play.svg | 1 + img/volume.svg | 1 + js/games.js | 4 +- js/main.js | 2 +- profile.html | 69 ++++++++++++++++++++++++++++++ projects.html | 18 -------- 12 files changed, 189 insertions(+), 21 deletions(-) create mode 100644 css/profile.css create mode 100644 img/fullscreen.svg create mode 100644 img/fullscreen_exit.svg create mode 100644 img/muted.svg create mode 100644 img/pause.svg create mode 100644 img/play.svg create mode 100644 img/volume.svg create mode 100755 profile.html diff --git a/css/loader.css b/css/loader.css index 0a481b2..10db70e 100644 --- a/css/loader.css +++ b/css/loader.css @@ -29,4 +29,22 @@ } #infobox h2 { margin-right: auto; +} +.button { + margin: 4px; + padding: 2px; + width: 7%; + transition-duration: 0.25s; +} +.button:hover { + filter: brightness(1.1); + transform: scale(1.05); +} +.opposite { + width: 50%; + height: 100%; + display: flex; + justify-content: flex-end; + align-items: center; + margin: 12px; } \ No newline at end of file diff --git a/css/profile.css b/css/profile.css new file mode 100644 index 0000000..2ad4b80 --- /dev/null +++ b/css/profile.css @@ -0,0 +1,93 @@ +section { + width: 90%; + height: 240px; + margin: 24px; + background-color: color-mix(in srgb, var(--color-2) 40%, #00000000 60%); + display: flex; + align-items: center; + justify-content: center; + box-shadow: 0 0 10px var(--color-2); + border-radius: 20px; + backdrop-filter: blur(6px); +} +.controls { + width: 48px !important; + margin: 8px !important; + cursor: pointer; +} +section img { + height: 90%; + aspect-ratio: 1 / 1; + margin: 32px; + border-radius: 16px; +} +.column { + flex-direction: column; +} +right { + margin-left: auto; + margin-right: 16px; +} +.badges img { + width: 32px; + border-radius: 2px; + margin: 8px; +} +p { + font-size: 24px; + letter-spacing: 0.5px; + line-height: 36px; +} +div { + margin-left: auto; + margin-right: auto; +} +#enter { + position: absolute; + width: 100vw; + height: 100vh; + background-color: color-mix(in srgb, #000000 60%, #00000000 40%); + backdrop-filter: blur(16px); + z-index: 9999999999; + cursor: pointer; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + transition-duration: 1s; +} +#edit { + width: 48px; + cursor: pointer; +} +#search { + height: 36px !important; +} +results { + display: flex; + width: 95%; + height: 120px; + overflow-y: scroll; + background-color: var(--color-4); + bottom: 16px; + flex-direction: column; +} +result { + border-color: white; + border-width: 4px; + cursor: pointer; + padding: 4px; + margin: 2px; + width: auto; + text-align: left; + display: flex; + flex-direction: column; +} +result h2 { + font-size: 16px; + margin: 0px; +} +result p { + font-size: 12px; + margin: 0px; +} diff --git a/img/fullscreen.svg b/img/fullscreen.svg new file mode 100644 index 0000000..52cee9a --- /dev/null +++ b/img/fullscreen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/fullscreen_exit.svg b/img/fullscreen_exit.svg new file mode 100644 index 0000000..f4fbe9a --- /dev/null +++ b/img/fullscreen_exit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/muted.svg b/img/muted.svg new file mode 100644 index 0000000..803ae4b --- /dev/null +++ b/img/muted.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/pause.svg b/img/pause.svg new file mode 100644 index 0000000..de10231 --- /dev/null +++ b/img/pause.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/play.svg b/img/play.svg new file mode 100644 index 0000000..07e4b31 --- /dev/null +++ b/img/play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/volume.svg b/img/volume.svg new file mode 100644 index 0000000..7244ec4 --- /dev/null +++ b/img/volume.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/js/games.js b/js/games.js index 4053a9a..1e68a5e 100755 --- a/js/games.js +++ b/js/games.js @@ -108,7 +108,7 @@ function starEvent(e) { let newElement = element.cloneNode(true); document.getElementById("starredgames").appendChild(newElement); newElement.addEventListener("click", ()=>{ - location.href=`/loader.html?title=${encodeURIComponent(element.name)}&dir=${element.directory}&img=${element.image}` + location.href=`/loader.html?title=${newElement.childNodes[1].childNodes[0].innerText}&dir=${newElement.getAttribute("data-target")}&img=${newElement.getAttribute("data-image")}` }); }) } else { @@ -128,7 +128,7 @@ function starEvent(e) { let newElement = element.cloneNode(true); document.getElementById("starredgames").appendChild(newElement); newElement.addEventListener("click", ()=>{ - location.href=`/loader.html?title=${encodeURIComponent(element.name)}&dir=${element.directory}&img=${element.image}` + location.href=`/loader.html?title=${newElement.childNodes[1].childNodes[0].innerText}&dir=${newElement.getAttribute("data-target")}&img=${newElement.getAttribute("data-image")}` }); }) } diff --git a/js/main.js b/js/main.js index b398c9a..ede05ab 100755 --- a/js/main.js +++ b/js/main.js @@ -12,7 +12,7 @@ function loadPJS() { script.src = "https://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"; document.head.appendChild(script); script.addEventListener("load", ()=>{ - particlesJS.load('particles-js', "js/particlesjs-config.json", ()=>{}); + particlesJS.load('particles-js', "/js/particlesjs-config.json", ()=>{}); }); } diff --git a/profile.html b/profile.html new file mode 100755 index 0000000..dacbb09 --- /dev/null +++ b/profile.html @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ name }}'s Profile | Selenite + + + + + +
+ +
+

{{ name }}

+

/u/{{ username }}

+
{{ badges }}
+
+ +

Joined {{ join_date }}

+

Last online {{ online_time }}

+
+
+
+

About Me

+

{{ about }}

+
+ + diff --git a/projects.html b/projects.html index d42cb28..3709c30 100755 --- a/projects.html +++ b/projects.html @@ -12,7 +12,6 @@ - @@ -34,23 +33,6 @@ -
- - - - - - - - - - - - - - -

starred games

-- 2.49.0 From ac323c128955674e6bcf6768bb7968c4668bb56d Mon Sep 17 00:00:00 2001 From: sky Date: Wed, 9 Jul 2025 02:36:02 -0400 Subject: [PATCH 07/21] mostly finish custom music --- css/profile.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/css/profile.css b/css/profile.css index 2ad4b80..ad36967 100644 --- a/css/profile.css +++ b/css/profile.css @@ -69,8 +69,10 @@ results { height: 120px; overflow-y: scroll; background-color: var(--color-4); + box-shadow: 0 0 10px var(--color-4); bottom: 16px; flex-direction: column; + border-radius: 8px; } result { border-color: white; -- 2.49.0 From 0c2d272068bcbbe861a8b740bf926e1470f387bd Mon Sep 17 00:00:00 2001 From: sky Date: Thu, 10 Jul 2025 04:55:35 -0400 Subject: [PATCH 08/21] music control --- css/profile.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/css/profile.css b/css/profile.css index ad36967..3e01b4d 100644 --- a/css/profile.css +++ b/css/profile.css @@ -38,9 +38,10 @@ p { letter-spacing: 0.5px; line-height: 36px; } -div { +.profile-element { margin-left: auto; margin-right: auto; + max-width: 33.3%; } #enter { position: absolute; -- 2.49.0 From b6c7d612a44dfe0d7ac018f43301da4e73241918 Mon Sep 17 00:00:00 2001 From: sky Date: Tue, 12 Aug 2025 14:15:49 -0400 Subject: [PATCH 09/21] bookmarklets page, apps, info/credits, other misc --- apps.html | 109 ++------------ bookmarklets.html | 129 +++++++--------- css/bookmarklets.css | 38 +++++ css/loader.css | 1 + css/pages.css | 5 +- css/profile.css | 41 +++++- css/sidebar.css | 2 +- css/themes.css | 8 +- css/users.css | 49 +++++++ img/badges/banana.svg | 4 +- img/info.svg | 1 + img/reload.svg | 1 + index.html | 1 + info.html | 77 ++++++++++ js/apps.js | 333 ++++++++++++++++++------------------------ js/cookieConsent.css | 194 ++++++++++++------------ js/cookieConsent.js | 144 +++++++++--------- loader.html | 10 +- settings.html | 2 +- 19 files changed, 589 insertions(+), 560 deletions(-) create mode 100644 css/bookmarklets.css create mode 100644 css/users.css create mode 100644 img/info.svg create mode 100644 img/reload.svg create mode 100644 info.html diff --git a/apps.html b/apps.html index 122685e..874b71b 100755 --- a/apps.html +++ b/apps.html @@ -12,122 +12,35 @@ - - + + + - Apps | Selenite + Projects | Selenite - + - -
- -
-
- Home - Bookmarklets - Games - Apps - Settings - Open Blank - - -
-
- - - -
- - - - +

starred apps

+
- -

Starred Apps

-

Star some apps for things to show up here!

-
- -

All Apps

+

all apps

-
- Add Game logo -

Suggest a app!

-
-

apps loading..

-

apps not loading? click ctrl + shift + r

- +

games loading..

+

nothing was found! try a new search query.

-
-
- - - diff --git a/bookmarklets.html b/bookmarklets.html index b8107ff..0f445c3 100755 --- a/bookmarklets.html +++ b/bookmarklets.html @@ -1,98 +1,79 @@ - + - - - - - + + + + + + + + + + + + - + - - - - + + + + - Bookmarklets | Selenite + Selenite - - - - - + - + -
- Home - Bookmarklets - Games - Apps - Settings - Open Blank - - -
- -
- - - - -

Bookmarklets

-

Official Selenite Bookmarklets

+

bookmarklets

+

drag the underlined text to your bookmarks bar and click it to use it

- Selenite Save Utility -

This is the official Selenite Save Utility, which allows you to download your data from any website easily.

+ Adblocker +

This is a simple adblocker in a bookmarklet, may not work that great.

- Selenite Upload Utility -

This is the official Selenite Upload Utility, which allows you to upload a Selenite save file to any website easily.

-
-
- Selenite Adblocker -

This is the official Selenite Adblocker bookmarklet, which blocks suspicious frames that are likely advertisements.

-
-
- Selenite Minified -

This is a minified version of Selenite, that you can open at any time, without relying on a single website.

-
-
- The Ultimate Tab Cloak + The Ultimate Tab Cloak

Disguise any website you're on as Canvas, Desmos, or Google Drive!

-

Other Bookmarklets

- Car Axle Client + Car Axle Client

Car Axle Client is a bookmarklet with tons of features, including a mini browser, YouTube embedder, and tons of other smaller scripts! (made by Penguinify)

- Stats.js + Stats.js

This allows you to view your FPS, RAM, and MS.

- Edit any page + Edit any page

This allows you to edit the text of any webpage.

- X-Ray Goggles + X-Ray Goggles

This allows you to view and edit the source code of any website, like a more powerful version of "Edit any page".

@@ -100,35 +81,25 @@

This bookmarklet floods your history. Credits to awesome78910.

- Dark Mode + Dark Mode

This sets any page to dark mode.

- Piano + Piano

This adds a piano to the page.

- Developer Console + Developer Console

This adds all features of the developer console to whatever page your on.

- Asteroids + Asteroids

This allows you to play Asteroids on the website you are on, destroying everything.

- Katamari + Katamari

This allows you to collect the words on the page into a ball. Fun game, I recommend playing it.

-
- - \ No newline at end of file diff --git a/css/bookmarklets.css b/css/bookmarklets.css new file mode 100644 index 0000000..ac4bbb1 --- /dev/null +++ b/css/bookmarklets.css @@ -0,0 +1,38 @@ +.bookmarklet { + width: 90vw; + display: flex; + flex-direction: row; + justify-content: center; + flex-wrap: wrap; + height: 100%; + gap: 0px; +} +.bookmarkletdiv { + width: 25vw; + height: 15vh; + background-color: color-mix(in srgb, var(--color-2) 40%, #00000000 60%); + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + border-radius: 20px; + margin: 15px; + transition-duration: 0.25s; + backdrop-filter: blur(2px); + box-shadow: 0 0 10px var(--color-2); +} +.bookmarkletdiv a { + width: 90%; +} +.bookmarkletdiv:hover { + transform: scale(1.1); + filter:brightness(1.15); +} +#bookmarklets { + display: flex; + height: auto; + width: 90%; + flex-direction: row; + justify-content: center; + flex-wrap: wrap; +} \ No newline at end of file diff --git a/css/loader.css b/css/loader.css index 10db70e..660e4b4 100644 --- a/css/loader.css +++ b/css/loader.css @@ -35,6 +35,7 @@ padding: 2px; width: 7%; transition-duration: 0.25s; + cursor: pointer; } .button:hover { filter: brightness(1.1); diff --git a/css/pages.css b/css/pages.css index 8d01ea8..04df717 100755 --- a/css/pages.css +++ b/css/pages.css @@ -138,11 +138,12 @@ input[type=text]::placeholder, input[type=password]::placeholder { transform: translate(-50%, -50%); display: flex; flex-direction: column; - background-color: var(--color-3); + background-color: color-mix(in srgb, var(--color-2) 70%, #00000000 30%); border-radius: 10px; justify-content: center; align-items: center; - box-shadow: 0px 0px 5px 5px var(--color-3); + backdrop-filter: blur(2px); + box-shadow: 0 0 10px var(--color-2); } #popup input { width: 90%; diff --git a/css/profile.css b/css/profile.css index 3e01b4d..ad5493d 100644 --- a/css/profile.css +++ b/css/profile.css @@ -43,6 +43,15 @@ p { margin-right: auto; max-width: 33.3%; } +.profile-element h2 { + font-size: 32px; +} +.profile-element h2 { + font-size: 28px; +} +.profile-element h3 { + font-size: 20px; +} #enter { position: absolute; width: 100vw; @@ -57,20 +66,29 @@ p { flex-direction: column; transition-duration: 1s; } -#edit { - width: 48px; - cursor: pointer; -} #search { height: 36px !important; } +.edit { + cursor: context-menu; +} +#blur { + position: absolute; + width: 100vw; + height: 100vh; + top: 0; + left: 0; + backdrop-filter: blur(16px); + z-index: 999; + display: none; +} results { display: flex; width: 95%; height: 120px; overflow-y: scroll; - background-color: var(--color-4); - box-shadow: 0 0 10px var(--color-4); + background-color: color-mix(in srgb, var(--color-3) 50%, #00000000 50%); + box-shadow: 0 0 10px var(--color-3); bottom: 16px; flex-direction: column; border-radius: 8px; @@ -83,8 +101,12 @@ result { margin: 2px; width: auto; text-align: left; - display: flex; + display: none; flex-direction: column; + transition-duration: 0.25s; +} +result:hover { + background-color: #ffffff11; } result h2 { font-size: 16px; @@ -93,4 +115,9 @@ result h2 { result p { font-size: 12px; margin: 0px; + line-height: 16px; + width: 80%; } +.about { + width: 70%; +} \ No newline at end of file diff --git a/css/sidebar.css b/css/sidebar.css index dd32ceb..6ed3ac4 100755 --- a/css/sidebar.css +++ b/css/sidebar.css @@ -34,7 +34,7 @@ iframe { background-color: #ffffff22; /* auto is being stupid 100vh minus height of 1 object 7 times minus the margin and padding of 7 objects (multiplied twice bc margin and padding on top and bottom) */ - margin-bottom: calc(100vh - 26px * 7 - ((6px + 6px) * 2) * 7); + margin-bottom: calc(100vh - 26px * 8 - ((6px + 6px) * 2) * 8); } .sidebar-item-descriptor { diff --git a/css/themes.css b/css/themes.css index c493de1..8e521b8 100755 --- a/css/themes.css +++ b/css/themes.css @@ -18,8 +18,8 @@ body[theme=blackandwhite] { } body[theme=grass] { --text-color: #ffffff; - --bg-1: #1d3024; - --bg-2: #385041; + --bg-1: #385041; + --bg-2: #1d3024; --color-1: #a8e5a7; --color-2: #559b7a; --color-3: #3a5c3f; @@ -27,8 +27,8 @@ body[theme=grass] { } body[theme=evil] { --text-color: #ffffff; - --bg-1: #591414; - --bg-2: #ba2a2a; + --bg-1: #ba2a2a; + --bg-2: #591414; --color-1: #eb8181; --color-2: #ae4141; --color-3: #7b3838; diff --git a/css/users.css b/css/users.css new file mode 100644 index 0000000..a48e22c --- /dev/null +++ b/css/users.css @@ -0,0 +1,49 @@ +#users { + display: flex; + height: auto; + width: 90%; + flex-direction: row; + justify-content: center; + flex-wrap: wrap; +} +.users { + width: 25vw; + height: 10vh; + background-color: color-mix(in srgb, var(--color-2) 40%, #00000000 60%); + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + border-radius: 20px; + margin: 15px; + transition-duration: 0.5s; + backdrop-filter: blur(2px); + box-shadow: 0 0 10px var(--color-2); + text-decoration: none; + text-align: right; +} +.users:hover { + transform: scale(1.05); + filter:brightness(1.15); +} +.users img { + height: 80%; + border-radius: 15px; + aspect-ratio: 1 / 1; + margin: 20px; + justify-self: left; + margin-right: auto; +} +.user_info { + width: 60%; + margin: 12px; +} +.user_info h1 { + font-size: 20px; +} +.user_info p { + font-size: 12px; +} +.pages-btn { + margin: 6px; +} \ No newline at end of file diff --git a/img/badges/banana.svg b/img/badges/banana.svg index dd37b84..2e02b8b 100755 --- a/img/badges/banana.svg +++ b/img/badges/banana.svg @@ -1,3 +1,3 @@ - - + + \ No newline at end of file diff --git a/img/info.svg b/img/info.svg new file mode 100644 index 0000000..9ae001c --- /dev/null +++ b/img/info.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/reload.svg b/img/reload.svg new file mode 100644 index 0000000..87b1132 --- /dev/null +++ b/img/reload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/index.html b/index.html index 9ea8d3b..0068477 100755 --- a/index.html +++ b/index.html @@ -88,6 +88,7 @@ + diff --git a/info.html b/info.html new file mode 100644 index 0000000..d8f89b7 --- /dev/null +++ b/info.html @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Selenite + + + + + +

information

+

credits

+

whilst the majority of the work has been done by the creator, sky, selenite would not be possible without some key sources and people.

+

seraph by a456pur

+

3kh0 assets by 3kh0

+ + diff --git a/js/apps.js b/js/apps.js index bb7cca1..106d1ff 100755 --- a/js/apps.js +++ b/js/apps.js @@ -1,197 +1,142 @@ -$.getJSON("/data/apps.json", function (data) { - if (document.readyState === "complete") { - loadGames(data); - } else { - let areGamesReady = setInterval(() => { - if (document.readyState === "complete") { - loadGames(data); - clearInterval(areGamesReady); - } - }, 50); - } +document.addEventListener("DOMContentLoaded", loadGames); +let elements = []; +async function loadGames() { + // taken from mdn + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort + let data = await (await fetch("/resources/apps.json")).json(); + let sorted = data.sort((a, b) => { + const n1 = a.name.toUpperCase(); + const n2 = b.name.toUpperCase(); + if (n1 < n2) { + return -1; + } + if (n1 > n2) { + return 1; + } + // shouldnt happen but just incase + return 0; + }); + let gamesElement = document.getElementById("games"); + let starredGames = JSON.parse(localStorage.getItem("selenite.starred") || '[]'); + sorted.forEach(element => { + isStarred = starredGames.indexOf(element.directory) != -1; + let newElement = document.createElement("game"); + newElement.setAttribute("data-target", element.directory); + newElement.setAttribute("data-image", element.image); + let image = document.createElement("img"); + image.src = `/resources/sppa/${element.directory}/${element.image}` + let holder = document.createElement("div"); + holder.id = "holder"; + let title = document.createElement("h1"); + title.innerText = element.name; + let star = document.createElement("img"); + star.id = "star"; + star.classList = "star"; + star.src = isStarred ? "/img/star-fill.svg" : "/img/star.svg"; + newElement.appendChild(image); + holder.appendChild(title); + holder.appendChild(star); + newElement.appendChild(holder); + gamesElement.appendChild(newElement); + elements.push(newElement); + newElement.addEventListener("click", ()=>{ + location.href=`/loader.html?title=${encodeURIComponent(element.name)}&dir=${element.directory}&img=${element.image}` + }); + star.addEventListener("click", (e) => { + e.preventDefault(); + e.stopPropagation(); + starEvent(e); + }); + }); + document.getElementById("loadingMsg").style.display = "none"; + document.getElementById("allHeader").style.display = "block"; + starredGames = JSON.parse(localStorage.getItem("selenite.starred") || '[]'); + if(starredGames.length > 0) { + document.getElementById("starredHeader").style.display = "block"; + starredGames.forEach((e) => { + let element = document.querySelector(`#games game[data-target='${e}']`); + let newElement = element.cloneNode(true); + document.getElementById("starredgames").appendChild(newElement); + newElement.addEventListener("click", ()=>{ + location.href=`/loader.html?title=${newElement.childNodes[1].childNodes[0].innerText}&dir=${newElement.getAttribute("data-target")}&img=${newElement.getAttribute("data-image")}` + }); + }); + document.querySelectorAll("#starredgames #star").forEach((e) => { + e.addEventListener("click", (e) => { + e.preventDefault(); + e.stopPropagation(); + starEvent(e); + }) + }) + } +} +document.addEventListener("DOMContentLoaded", ()=>{ + document.getElementById("gamesearch").addEventListener("input", ()=>{ + let input = document.getElementById("gamesearch").value.toUpperCase(); + let total = 0; + if(elements.length > 0) { + elements.forEach((element) => { + let title = element.childNodes[1].childNodes[0].innerText.toUpperCase(); + if(title.includes(input)) { + element.style.display = "flex"; + } else { + element.style.display = "none"; + total++; + } + }) + } + document.getElementById("noResults").style.display = total >= elements.length ? "flex" : "none" + }) }); -function loadGames(data) { - starredgames = getCookie("starred"); - if (!starredgames) { - starredgames = []; - } else { - starredgames = JSON.parse(decodeURIComponent(getCookie("starred"))); - } - $("#gamesearch").prop({ - placeholder: "Click here to search through our " + data.length + " apps!", - }); - data.sort(dynamicSort("name")); - gamelist = data; - for (let i = 0; i < data.length; i++) { - let $element = $("") - .attr({ - class: "game", - id: data[i].directory, - recommended: data[i].recommended, - href: "sppa/" + data[i].directory + "/index.html", - }) - .data("recommended", data[i].recommended) - .append( - $("").prop({ - src: "sppa/" + data[i].directory + "/" + data[i].image, - alt: data[i].name + " logo", - }) - ) - .append($("

").text(data[i].name)) - .append( - $("").prop({ - src: "img/star.svg", - alt: "star", - class: "star", - }) - ); - - if (starredgames.includes(data[i].directory)) { - $element.find("img.star").attr("id", "starred"); - $element.find("img.star").attr("src", "img/star-fill.svg"); - let $pinnedelement = $element.clone(); - $("#pinned").append($pinnedelement); - if ($("#pinnedmessage")) { - $("#pinnedmessage").hide(); - } - } - - $("#games").append($element); - } - $("#games #message").remove(); - - if ((search = 1)) { - var txt = $("#gamesearch").val(); - if (txt == "") { - $("#games .suggest").show(); - } else { - $("#games .suggest").hide(); - } - $("#games .game").hide(); - $("#games .game").each(function () { - if ($(this).text().toUpperCase().indexOf(txt.toUpperCase()) != -1 || $(this).attr("id").toUpperCase().indexOf(txt.toUpperCase()) != -1) { - $(this).show(); - } - }); - } - - // starred games - let starred; - $(document).on("click", "img.star", function (event) { - - }); - $(document).on("click", ".game", function (event) { - if ($(event.target).is("img.star")) { - event.preventDefault(); - event.stopPropagation(); - if (!$(event.target).attr("id")) { - $(event.target).prop({ id: "starred" }); - $(event.target).prop({ src: "img/star-fill.svg" }); - starred = Cookies.get("starred"); - if (starred) { - starred = JSON.parse(starred); - } else { - starred = []; - } - starred.push($(this).attr("id")); - Cookies.set("starred", JSON.stringify(starred)); - $element = $(this).clone(); - $("#pinned").append($element); - $("#pinnedmessage").hide(); - temp = $("#pinned")[0].childNodes; - pinnedarray = [...temp]; - pinnedarray.sort(dynamicSort("id")); - $("#pinned").empty(); - for (let i = 0; i < pinnedarray.length; i++) { - pinnedarraynodes = pinnedarray[i].childNodes; - pinnedarraynodes = [...pinnedarraynodes]; - let $element = $("
") - .prop({ - class: "game", - id: pinnedarray[i].id, - }) - .append( - $("").prop({ - src: pinnedarraynodes[0].src, - alt: pinnedarraynodes[0].alt, - class: "gameicon", - }) - ) - .append($("

").text(pinnedarraynodes[1].innerHTML)) - .append( - $("").prop({ - src: "img/star-fill.svg", - alt: "star", - class: "star", - id: "starred", - }) - ); - $("#pinned").append($element); - } - } else { - $(event.target).removeAttr("id"); - $(event.target).attr("src", "img/star.svg"); - $thisdiv = "#" + $(this).attr("id"); - $thisdiv = $thisdiv.replace(".", "\\."); - starred = Cookies.get("starred"); - starred = JSON.parse(starred); - ourindex = starred.indexOf($(this).attr("id")); - starred.splice(ourindex, 1); - Cookies.set("starred", JSON.stringify(starred)); - $("#pinned " + $thisdiv).remove(); - if ($("#pinned").is(":empty")) { - $("#pinnedmessage").show(); - } - $($thisdiv + " #starred").attr("src", "img/star.svg"); - $($thisdiv + " #starred").removeAttr("id"); - } - } - }); - $(document).on("click", "#game img .star", function (event) { - event.stopPropagation(); - $(this).prop({ class: "material-symbols-outlined fill" }); - }); -} - -function redirectGame(dir) { - window.location.href = window.location.origin + "/sppa/" + dir + "/index.html"; -} -function dynamicSort(property) { - var sortOrder = 1; - - if (property[0] === "-") { - sortOrder = -1; - property = property.substr(1); - } - return function (a, b) { - if (sortOrder == -1) { - return b[property].localeCompare(a[property]); - } else { - return a[property].localeCompare(b[property]); - } - }; -} - -function selectRandomGame() { - redirectGame(gamelist[Math.floor(Math.random() * gamelist.length - 1)].directory); -} - -let viewrecommended = 0; -function recommendedGames() { - if (viewrecommended == 0) { - $("#games .game").hide(); - $("#games .game").each(function () { - if ($(this).attr("recommended")) { - $(this).show(); - } - }); - $("#recommend").text("Click to view all apps again!"); - viewrecommended = 1; - } else { - $("#games .game").hide(); - $("#games .game").show(); - viewrecommended = 0; - $("#recommend").text("Click to view recommended apps!"); - } +function starEvent(e) { + let game = e.target.parentNode.parentNode.getAttribute("data-target"); + starredGames = JSON.parse(localStorage.getItem("selenite.starred") || '[]'); + if(starredGames.indexOf(game) == -1) { + starredGames.push(game); + starredGames.sort(); + if(starredGames.length > 0) { + document.getElementById("starredHeader").style.display = "block"; + } else { + document.getElementById("starredHeader").style.display = "none"; + } + localStorage.setItem("selenite.starred", JSON.stringify(starredGames)); + e.target.src = "/img/star-fill.svg"; + starredgames.innerHTML = ""; + starredGames.forEach((e) => { + let element = document.querySelector(`#games game[data-target='${e}']`); + let newElement = element.cloneNode(true); + document.getElementById("starredgames").appendChild(newElement); + newElement.addEventListener("click", ()=>{ + location.href=`/loader.html?title=${newElement.childNodes[1].childNodes[0].innerText}&dir=${newElement.getAttribute("data-target")}&img=${newElement.getAttribute("data-image")}` + }); + }) + } else { + starredGames.splice(starredGames.indexOf(game), 1); + document.querySelectorAll(`game[data-target='${game}'] #star`).forEach((e) => { + e.src = "/img/star.svg"; + }) + if(starredGames.length > 0) { + document.getElementById("starredHeader").style.display = "block"; + } else { + document.getElementById("starredHeader").style.display = "none"; + } + localStorage.setItem("selenite.starred", JSON.stringify(starredGames)); + starredgames.innerHTML = ""; + starredGames.forEach((e) => { + let element = document.querySelector(`#games game[data-target='${e}']`); + let newElement = element.cloneNode(true); + document.getElementById("starredgames").appendChild(newElement); + newElement.addEventListener("click", ()=>{ + location.href=`/loader.html?title=${newElement.childNodes[1].childNodes[0].innerText}&dir=${newElement.getAttribute("data-target")}&img=${newElement.getAttribute("data-image")}` + }); + }) + } + document.querySelectorAll("#starredgames #star").forEach((e) => { + e.addEventListener("click", (e) => { + e.preventDefault(); + e.stopPropagation(); + starEvent(e); + }) + }) } \ No newline at end of file diff --git a/js/cookieConsent.css b/js/cookieConsent.css index cd15f53..e922660 100755 --- a/js/cookieConsent.css +++ b/js/cookieConsent.css @@ -1,97 +1,97 @@ -.cookieConsentContainer { - z-index: 999; - - width: 350px; - - min-height: 20px; - - box-sizing: border-box; - - padding: 30px 30px 30px 30px; - - background: var(--uibg); - - box-shadow: 0px 0px 10px 0px var(--uibg); - - overflow: hidden; - - position: fixed; - - bottom: 30px; - - right: 30px; - - display: none; -} - -.cookieConsentContainer .cookieTitle a { - - color: #ffffff; - - font-size: 22px; - - line-height: 20px; - - display: block; -} - -.cookieConsentContainer .cookieDesc p { - margin: 0; - - padding: 0; - - color: #ffffff; - - font-size: 13px; - - line-height: 20px; - - display: block; - - margin-top: 10px; -} -.cookieConsentContainer .cookieDesc a { - - color: #ffffff; - - text-decoration: underline; -} - -.cookieConsentContainer .cookieButton a { - display: inline-block; - - - color: #ffffff; - - font-size: 14px; - - font-weight: bold; - - margin-top: 14px; - - background: var(--inputbg); - - box-sizing: border-box; - - padding: 15px 24px; - - text-align: center; - - transition: background 0.3s; -} - -.cookieConsentContainer .cookieButton a:hover { - cursor: pointer; - - filter: brightness(0.9); -} - -@media (max-width: 980px) { - .cookieConsentContainer { - bottom: 0px !important; - - left: 0px !important; - - width: 100% !important; - } -} +.cookieConsentContainer { + z-index: 999; + + width: 350px; + + min-height: 20px; + + box-sizing: border-box; + + padding: 30px 30px 30px 30px; + + background: var(--uibg); + + box-shadow: 0px 0px 10px 0px var(--uibg); + + overflow: hidden; + + position: fixed; + + bottom: 30px; + + right: 30px; + + display: none; +} + +.cookieConsentContainer .cookieTitle a { + + color: #ffffff; + + font-size: 22px; + + line-height: 20px; + + display: block; +} + +.cookieConsentContainer .cookieDesc p { + margin: 0; + + padding: 0; + + color: #ffffff; + + font-size: 13px; + + line-height: 20px; + + display: block; + + margin-top: 10px; +} +.cookieConsentContainer .cookieDesc a { + + color: #ffffff; + + text-decoration: underline; +} + +.cookieConsentContainer .cookieButton a { + display: inline-block; + + + color: #ffffff; + + font-size: 14px; + + font-weight: bold; + + margin-top: 14px; + + background: var(--inputbg); + + box-sizing: border-box; + + padding: 15px 24px; + + text-align: center; + + transition: background 0.3s; +} + +.cookieConsentContainer .cookieButton a:hover { + cursor: pointer; + + filter: brightness(0.9); +} + +@media (max-width: 980px) { + .cookieConsentContainer { + bottom: 0px !important; + + left: 0px !important; + + width: 100% !important; + } +} diff --git a/js/cookieConsent.js b/js/cookieConsent.js index e09952c..7786e73 100755 --- a/js/cookieConsent.js +++ b/js/cookieConsent.js @@ -1,72 +1,72 @@ -// --- Config --- // -var purecookieTitle = "Cookies."; // Title -var purecookieDesc = "By using this website, you automatically accept that we use cookies."; // Description -var purecookieLink = 'Selenite uses cookies to store settings and game progress. Selenite is also powered by Google Adsense and a self hosted instance of Plausible Analytics.'; // Cookiepolicy link -var purecookieButton = "Understood"; // Button text -// --- --- // - - -function pureFadeIn(elem, display){ - var el = document.getElementById(elem); - el.style.opacity = 0; - el.style.display = display || "block"; - - (function fade() { - var val = parseFloat(el.style.opacity); - if (!((val += .04) > 1)) { - el.style.opacity = val; - requestAnimationFrame(fade); - } - })(); -}; -function pureFadeOut(elem){ - var el = document.getElementById(elem); - el.style.opacity = 1; - - (function fade() { - if ((el.style.opacity -= .04) < 0) { - el.style.display = "none"; - } else { - requestAnimationFrame(fade); - } - })(); -}; - -function setCookie(name,value,days) { - var expires = ""; - if (days) { - var date = new Date(); - date.setTime(date.getTime() + (days*24*60*60*1000)); - expires = "; expires=" + date.toUTCString(); - } - document.cookie = name + "=" + (value || "") + expires + "; path=/"; -} -function getCookie(name) { - var nameEQ = name + "="; - var ca = document.cookie.split(';'); - for(var i=0;i < ca.length;i++) { - var c = ca[i]; - while (c.charAt(0)==' ') c = c.substring(1,c.length); - if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); - } - return null; -} -function eraseCookie(name) { - document.cookie = name+'=; Max-Age=-99999999;'; -} - -function cookieConsent() { - if (!getCookie('purecookieDismiss')) { - let element = document.createElement("div"); - element.innerHTML = '

' + purecookieDesc + ' ' + purecookieLink + '

'; - document.body.appendChild(element); - pureFadeIn("cookieConsentContainer"); - } -} - -function purecookieDismiss() { - setCookie('purecookieDismiss','1',7); - pureFadeOut("cookieConsentContainer"); -} - -window.onload = function() { cookieConsent(); }; +// --- Config --- // +var purecookieTitle = "Cookies."; // Title +var purecookieDesc = "By using this website, you automatically accept that we use cookies."; // Description +var purecookieLink = 'Selenite uses cookies to store settings and game progress. Selenite is also powered by Google Adsense and a self hosted instance of Plausible Analytics.'; // Cookiepolicy link +var purecookieButton = "Understood"; // Button text +// --- --- // + + +function pureFadeIn(elem, display){ + var el = document.getElementById(elem); + el.style.opacity = 0; + el.style.display = display || "block"; + + (function fade() { + var val = parseFloat(el.style.opacity); + if (!((val += .04) > 1)) { + el.style.opacity = val; + requestAnimationFrame(fade); + } + })(); +}; +function pureFadeOut(elem){ + var el = document.getElementById(elem); + el.style.opacity = 1; + + (function fade() { + if ((el.style.opacity -= .04) < 0) { + el.style.display = "none"; + } else { + requestAnimationFrame(fade); + } + })(); +}; + +function setCookie(name,value,days) { + var expires = ""; + if (days) { + var date = new Date(); + date.setTime(date.getTime() + (days*24*60*60*1000)); + expires = "; expires=" + date.toUTCString(); + } + document.cookie = name + "=" + (value || "") + expires + "; path=/"; +} +function getCookie(name) { + var nameEQ = name + "="; + var ca = document.cookie.split(';'); + for(var i=0;i < ca.length;i++) { + var c = ca[i]; + while (c.charAt(0)==' ') c = c.substring(1,c.length); + if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); + } + return null; +} +function eraseCookie(name) { + document.cookie = name+'=; Max-Age=-99999999;'; +} + +function cookieConsent() { + if (!getCookie('purecookieDismiss')) { + let element = document.createElement("div"); + element.innerHTML = '

' + purecookieDesc + ' ' + purecookieLink + '

'; + document.body.appendChild(element); + pureFadeIn("cookieConsentContainer"); + } +} + +function purecookieDismiss() { + setCookie('purecookieDismiss','1',7); + pureFadeOut("cookieConsentContainer"); +} + +window.onload = function() { cookieConsent(); }; diff --git a/loader.html b/loader.html index 3635d68..c4153ec 100755 --- a/loader.html +++ b/loader.html @@ -31,9 +31,12 @@ document.getElementById("gameImage").setAttribute("src", `/resources/semag/${game[0]}/${decodeURIComponent(game[1])}`); document.getElementById("gameName").innerText = game[2]; } - // document.getElementById("fullscreen").addEventListener("click", () => { - - // }) + document.getElementById("fullscreen").addEventListener("click", () => { + document.getElementById("gameFrame").requestFullscreen(); + }); + document.getElementById("reload").addEventListener("click", () => { + document.getElementById("gameFrame").src = document.getElementById("gameFrame").src; + }); }); @@ -51,6 +54,7 @@

Selenite

+
diff --git a/settings.html b/settings.html index 5191077..a205945 100755 --- a/settings.html +++ b/settings.html @@ -48,7 +48,7 @@ - + + Selenite - - + + +

your device is not supported!

please rotate your screen for the best experience.

- - @@ -71,7 +50,11 @@

information

credits

whilst the majority of the work has been done by the creator, sky, selenite would not be possible without some key sources and people.

-

seraph by a456pur

-

3kh0 assets by 3kh0

+

seraph by a456pur (games)

+

3kh0 assets by 3kh0 (games)

+

web ports by gn-math (games)

+

cobalt by imputnet (music implementation)

+

suggest a game

+

you can either email us or join the discord to suggest a game/other improvements.

diff --git a/js/analytics.js b/js/analytics.js deleted file mode 100755 index 775e16d..0000000 --- a/js/analytics.js +++ /dev/null @@ -1 +0,0 @@ -!function(){"use strict";var r=window.location,o=window.document,l=o.currentScript,s=l.getAttribute("data-api")||new URL(l.src).origin+"/api/event";function u(t,e){t&&console.warn("Ignoring Event: "+t),e&&e.callback&&e.callback()}function t(t,e){if(/^localhost$|^127(\.[0-9]+){0,2}\.[0-9]+$|^\[::1?\]$/.test(r.hostname)||"file:"===r.protocol)return u("localhost",e);if((window._phantom||window.__nightmare||window.navigator.webdriver||window.Cypress)&&!window.__plausible)return u(null,e);try{if("true"===window.localStorage.plausible_ignore)return u("localStorage flag",e)}catch(t){}var n={},t=(n.n=t,n.u=r.href,n.d=l.getAttribute("data-domain"),n.r=o.referrer||null,e&&e.meta&&(n.m=JSON.stringify(e.meta)),e&&e.props&&(n.p=e.props),l.getAttributeNames().filter(function(t){return"event-"===t.substring(0,6)})),i=n.p||{},a=(t.forEach(function(t){var e=t.replace("event-",""),t=l.getAttribute(t);i[e]=i[e]||t}),n.p=i,new XMLHttpRequest);a.open("POST",s,!0),a.setRequestHeader("Content-Type","text/plain"),a.send(JSON.stringify(n)),a.onreadystatechange=function(){4===a.readyState&&e&&e.callback&&e.callback({status:a.status})}}var e=window.plausible&&window.plausible.q||[];window.plausible=t;for(var n,i=0;irect.x&&this.y>rect.y&&this.x-0.005)return 0;return l;},is:function(test){return typeof test=='object'&&this.x==test.x&&this.y==test.y;},toString:function(){return'[Vector('+this.x+', '+this.y+') angle: '+this.angle()+', length: '+this.len()+']';}};function Line(p1,p2){this.p1=p1;this.p2=p2;};Line.prototype={shift:function(pos){this.p1.add(pos);this.p2.add(pos);},intersectsWithRect:function(rect){var LL=new Vector(rect.x,rect.y+rect.height);var UL=new Vector(rect.x,rect.y);var LR=new Vector(rect.x+rect.width,rect.y+rect.height);var UR=new Vector(rect.x+rect.width,rect.y);if(this.p1.x>LL.x&&this.p1.xUR.y&&this.p2.x>LL.x&&this.p2.xUR.y)return true;if(this.intersectsLine(new Line(UL,LL)))return true;if(this.intersectsLine(new Line(LL,LR)))return true;if(this.intersectsLine(new Line(UL,UR)))return true;if(this.intersectsLine(new Line(UR,LR)))return true;return false;},intersectsLine:function(line2){var v1=this.p1,v2=this.p2;var v3=line2.p1,v4=line2.p2;var denom=((v4.y-v3.y)*(v2.x-v1.x))-((v4.x-v3.x)*(v2.y-v1.y));var numerator=((v4.x-v3.x)*(v1.y-v3.y))-((v4.y-v3.y)*(v1.x-v3.x));var numerator2=((v2.x-v1.x)*(v1.y-v3.y))-((v2.y-v1.y)*(v1.x-v3.x));if(denom==0.0){return false;} - var ua=numerator/denom;var ub=numerator2/denom;return(ua>=0.0&&ua<=1.0&&ub>=0.0&&ub<=1.0);}};var that=this;var isIE=!!window.ActiveXObject;var w=document.documentElement.clientWidth,h=document.documentElement.clientHeight;var playerWidth=20,playerHeight=30;var playerVerts=[[-1*playerHeight/2,-1*playerWidth/2],[-1*playerHeight/2,playerWidth/2],[playerHeight/2,0]];var ignoredTypes=['HTML','HEAD','BODY','SCRIPT','TITLE','META','STYLE','LINK','SHAPE','LINE','GROUP','IMAGE','STROKE','FILL','SKEW','PATH','TEXTPATH'];var hiddenTypes=['BR','HR'];var FPS=50;var acc=300;var maxSpeed=600;var rotSpeed=360;var bulletSpeed=700;var particleSpeed=400;var timeBetweenFire=150;var timeBetweenBlink=250;var timeBetweenEnemyUpdate=isIE?10000:2000;var bulletRadius=2;var maxParticles=isIE?20:40;var maxBullets=isIE?10:20;this.flame={r:[],y:[]};this.toggleBlinkStyle=function(){if(this.updated.blink.isActive){removeClass(document.body,'ASTEROIDSBLINK');}else{addClass(document.body,'ASTEROIDSBLINK');} - this.updated.blink.isActive=!this.updated.blink.isActive;};addStylesheet(".ASTEROIDSBLINK .ASTEROIDSYEAHENEMY","outline: 2px dotted red;");this.pos=new Vector(100,100);this.lastPos=false;this.vel=new Vector(0,0);this.dir=new Vector(0,1);this.keysPressed={};this.firedAt=false;this.updated={enemies:false,flame:new Date().getTime(),blink:{time:0,isActive:false}};this.scrollPos=new Vector(0,0);this.bullets=[];this.enemies=[];this.dying=[];this.totalEnemies=0;this.particles=[];function updateEnemyIndex(){for(var i=0,enemy;enemy=that.enemies[i];i++) - removeClass(enemy,"ASTEROIDSYEAHENEMY");var all=document.body.getElementsByTagName('*');that.enemies=[];for(var i=0,el;el=all[i];i++){if(indexOf(ignoredTypes,el.tagName.toUpperCase())==-1&&el.prefix!='g_vml_'&&hasOnlyTextualChildren(el)&&el.className!="ASTEROIDSYEAH"&&el.offsetHeight>0){el.aSize=size(el);that.enemies.push(el);addClass(el,"ASTEROIDSYEAHENEMY");if(!el.aAdded){el.aAdded=true;that.totalEnemies++;}}}};updateEnemyIndex();var createFlames;(function(){var rWidth=playerWidth,rIncrease=playerWidth*0.1,yWidth=playerWidth*0.6,yIncrease=yWidth*0.2,halfR=rWidth/2,halfY=yWidth/2,halfPlayerHeight=playerHeight/2;createFlames=function(){that.flame.r=[[-1*halfPlayerHeight,-1*halfR]];that.flame.y=[[-1*halfPlayerHeight,-1*halfY]];for(var x=0;xw) - vec.x=0;else if(vec.x<0) - vec.x=w;if(vec.y>h) - vec.y=0;else if(vec.y<0) - vec.y=h;};function size(element){var el=element,left=0,top=0;do{left+=el.offsetLeft||0;top+=el.offsetTop||0;el=el.offsetParent;}while(el);return{x:left,y:top,width:element.offsetWidth||10,height:element.offsetHeight||10};};function addEvent(obj,type,fn){if(obj.addEventListener) - obj.addEventListener(type,fn,false);else if(obj.attachEvent){obj["e"+type+fn]=fn;obj[type+fn]=function(){obj["e"+type+fn](window.event);} - obj.attachEvent("on"+type,obj[type+fn]);}} - function removeEvent(obj,type,fn){if(obj.removeEventListener) - obj.removeEventListener(type,fn,false);else if(obj.detachEvent){obj.detachEvent("on"+type,obj[type+fn]);obj[type+fn]=null;obj["e"+type+fn]=null;}} - function arrayRemove(array,from,to){var rest=array.slice((to||from)+1||array.length);array.length=from<0?array.length+from:from;return array.push.apply(array,rest);};function applyVisibility(vis){for(var i=0,p;p=window.ASTEROIDSPLAYERS[i];i++){p.gameContainer.style.visibility=vis;}} - function getElementFromPoint(x,y){applyVisibility('hidden');var element=document.elementFromPoint(x,y);if(!element){applyVisibility('visible');return false;} - if(element.nodeType==3) - element=element.parentNode;applyVisibility('visible');return element;};function addParticles(startPos){var time=new Date().getTime();var amount=maxParticles;for(var i=0;i0&&element.offsetHeight>0)return false;if(indexOf(hiddenTypes,element.tagName)!=-1)return true;if(element.offsetWidth==0&&element.offsetHeight==0)return false;for(var i=0;i50){createFlames();this.updated.flame=nowTime;} - this.scrollPos.x=window.pageXOffset||document.documentElement.scrollLeft;this.scrollPos.y=window.pageYOffset||document.documentElement.scrollTop;if((this.keysPressed[code('up')])||(this.keysPressed[code('W')])){this.vel.add(this.dir.mulNew(acc*tDelta));drawFlame=true;}else{this.vel.mul(0.96);} - if((this.keysPressed[code('left')])||(this.keysPressed[code('A')])){forceChange=true;this.dir.rotate(radians(rotSpeed*tDelta*-1));} - if((this.keysPressed[code('right')])||(this.keysPressed[code('D')])){forceChange=true;this.dir.rotate(radians(rotSpeed*tDelta));} - if(this.keysPressed[code(' ')]&&nowTime-this.firedAt>timeBetweenFire){this.bullets.unshift({'dir':this.dir.cp(),'pos':this.pos.cp(),'startVel':this.vel.cp(),'cameAlive':nowTime});this.firedAt=nowTime;if(this.bullets.length>maxBullets){this.bullets.pop();}} - if(this.keysPressed[code('B')]){if(!this.updated.enemies){updateEnemyIndex();this.updated.enemies=true;} - forceChange=true;this.updated.blink.time+=tDelta*1000;if(this.updated.blink.time>timeBetweenBlink){this.toggleBlinkStyle();this.updated.blink.time=0;}}else{this.updated.enemies=false;} - if(this.keysPressed[code('esc')]){destroy.apply(this);return;} - if(this.vel.len()>maxSpeed){this.vel.setLength(maxSpeed);} - this.pos.add(this.vel.mulNew(tDelta));if(this.pos.x>w){window.scrollTo(this.scrollPos.x+50,this.scrollPos.y);this.pos.x=0;}else if(this.pos.x<0){window.scrollTo(this.scrollPos.x-50,this.scrollPos.y);this.pos.x=w;} - if(this.pos.y>h){window.scrollTo(this.scrollPos.x,this.scrollPos.y+h*0.75);this.pos.y=0;}else if(this.pos.y<0){window.scrollTo(this.scrollPos.x,this.scrollPos.y-h*0.75);this.pos.y=h;} - for(var i=this.bullets.length-1;i>=0;i--){if(nowTime-this.bullets[i].cameAlive>2000){this.bullets.splice(i,1);forceChange=true;continue;} - var bulletVel=this.bullets[i].dir.setLengthNew(bulletSpeed*tDelta).add(this.bullets[i].startVel.mulNew(tDelta));this.bullets[i].pos.add(bulletVel);boundsCheck(this.bullets[i].pos);var murdered=getElementFromPoint(this.bullets[i].pos.x,this.bullets[i].pos.y);if(murdered&&murdered.tagName&&indexOf(ignoredTypes,murdered.tagName.toUpperCase())==-1&&hasOnlyTextualChildren(murdered)&&murdered.className!="ASTEROIDSYEAH"){didKill=true;addParticles(this.bullets[i].pos);this.dying.push(murdered);this.bullets.splice(i,1);continue;}} - if(this.dying.length){for(var i=this.dying.length-1;i>=0;i--){try{if(this.dying[i].parentNode) - window.ASTEROIDS.enemiesKilled++;this.dying[i].parentNode.removeChild(this.dying[i]);}catch(e){}} - setScore();this.dying=[];} - for(var i=this.particles.length-1;i>=0;i--){this.particles[i].pos.add(this.particles[i].dir.mulNew(particleSpeed*tDelta*Math.random()));if(nowTime-this.particles[i].cameAlive>1000){this.particles.splice(i,1);forceChange=true;continue;}} - if(forceChange||this.bullets.length!=0||this.particles.length!=0||!this.pos.is(this.lastPos)||this.vel.len()>0){this.ctx.clear();this.ctx.drawPlayer();if(drawFlame) - this.ctx.drawFlames(that.flame);if(this.bullets.length){this.ctx.drawBullets(this.bullets);} - if(this.particles.length){this.ctx.drawParticles(this.particles);}} - this.lastPos=this.pos;setTimeout(updateFunc,1000/FPS);} - var updateFunc=function(){that.update.call(that);};setTimeout(updateFunc,1000/FPS);function destroy(){removeEvent(document,'keydown',eventKeydown);removeEvent(document,'keypress',eventKeypress);removeEvent(document,'keyup',eventKeyup);removeEvent(window,'resize',eventResize);isRunning=false;removeStylesheet("ASTEROIDSYEAHSTYLES");removeClass(document.body,'ASTEROIDSYEAH');this.gameContainer.parentNode.removeChild(this.gameContainer);};} - if(!window.ASTEROIDSPLAYERS) - window.ASTEROIDSPLAYERS=[];if(window.ActiveXObject){try{var xamlScript=document.createElement('script');xamlScript.setAttribute('type','text/xaml');xamlScript.textContent='';document.getElementsByTagName('head')[0].appendChild(xamlScript);}catch(e){} - var script=document.createElement("script");script.setAttribute('type','text/javascript');script.onreadystatechange=function(){if(script.readyState=='loaded'||script.readyState=='complete'){if(typeof G_vmlCanvasManager!="undefined") - window.ASTEROIDSPLAYERS[window.ASTEROIDSPLAYERS.length]=new Asteroids();}};script.src="http://erkie.github.com/excanvas.js";document.getElementsByTagName('head')[0].appendChild(script);} - else window.ASTEROIDSPLAYERS[window.ASTEROIDSPLAYERS.length]=new Asteroids();})(); \ No newline at end of file diff --git a/js/bootstrap.css b/js/bootstrap.css deleted file mode 100755 index 303280b..0000000 --- a/js/bootstrap.css +++ /dev/null @@ -1,10746 +0,0 @@ -@charset "UTF-8"; -/*! - * Bootstrap v5.0.2 (https://getbootstrap.com/) - * Copyright 2011-2021 The Bootstrap Authors - * Copyright 2011-2021 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ -:root { - --bs-blue: #0d6efd; - --bs-indigo: #6610f2; - --bs-purple: #6f42c1; - --bs-pink: #d63384; - --bs-red: #dc3545; - --bs-orange: #fd7e14; - --bs-yellow: #ffc107; - --bs-green: #198754; - --bs-teal: #20c997; - --bs-cyan: #0dcaf0; - --bs-white: #fff; - --bs-gray: #6c757d; - --bs-gray-dark: #343a40; - --bs-primary: #0d6efd; - --bs-secondary: #6c757d; - --bs-success: #198754; - --bs-info: #0dcaf0; - --bs-warning: #ffc107; - --bs-danger: #dc3545; - --bs-light: #f8f9fa; - --bs-dark: #212529; - --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); -} - -*, -*::before, -*::after { - box-sizing: border-box; -} - -@media (prefers-reduced-motion: no-preference) { - :root { - scroll-behavior: smooth; - } -} - -abbr[title], -abbr[data-bs-original-title] { - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; - cursor: help; - -webkit-text-decoration-skip-ink: none; - text-decoration-skip-ink: none; -} - -address { - margin-bottom: 1rem; - font-style: normal; - line-height: inherit; -} - -ol, -ul { - padding-left: 2rem; -} - -ol, -ul, -dl { - margin-top: 0; - margin-bottom: 1rem; -} - -ol ol, -ul ul, -ol ul, -ul ol { - margin-bottom: 0; -} - -dt { - font-weight: 700; -} - -dd { - margin-bottom: 0.5rem; - margin-left: 0; -} - -blockquote { - margin: 0 0 1rem; -} - -b, -strong { - font-weight: bolder; -} - -small, .small { - font-size: 0.875em; -} - -mark, .mark { - padding: 0.2em; - background-color: #fcf8e3; -} - -sub, -sup { - position: relative; - font-size: 0.75em; - line-height: 0; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - - -a:not([href]):not([class]), a:not([href]):not([class]):hover { - color: inherit; - text-decoration: none; -} - -pre, -code, -kbd, -samp { - font-family: var(--bs-font-monospace); - font-size: 1em; - direction: ltr /* rtl:ignore */; - unicode-bidi: bidi-override; -} - -pre { - display: block; - margin-top: 0; - margin-bottom: 1rem; - overflow: auto; - font-size: 0.875em; -} -pre code { - font-size: inherit; - color: inherit; - word-break: normal; -} - -code { - font-size: 0.875em; - color: #d63384; - word-wrap: break-word; -} -a > code { - color: inherit; -} - -kbd { - padding: 0.2rem 0.4rem; - font-size: 0.875em; - color: #fff; - background-color: #212529; - border-radius: 0.2rem; -} -kbd kbd { - padding: 0; - font-size: 1em; - font-weight: 700; -} - -figure { - margin: 0 0 1rem; -} - - -table { - caption-side: bottom; - border-collapse: collapse; -} - -caption { - padding-top: 0.5rem; - padding-bottom: 0.5rem; - color: #6c757d; - text-align: left; -} - -th { - text-align: inherit; - text-align: -webkit-match-parent; -} - -thead, -tbody, -tfoot, -tr, -td, -th { - border-color: inherit; - border-style: solid; - border-width: 0; -} - -label { - display: inline-block; -} - -button { - border-radius: 0; -} - -button:focus:not(:focus-visible) { - outline: 0; -} - -input, -button, -select, -optgroup, -textarea { - margin: 0; - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -button, -select { - text-transform: none; -} - -[role=button] { - cursor: pointer; -} - -select { - word-wrap: normal; -} -select:disabled { - opacity: 1; -} - -[list]::-webkit-calendar-picker-indicator { - display: none; -} - -button, -[type=button], -[type=reset], -[type=submit] { - -webkit-appearance: button; -} -button:not(:disabled), -[type=button]:not(:disabled), -[type=reset]:not(:disabled), -[type=submit]:not(:disabled) { - cursor: pointer; -} - -::-moz-focus-inner { - padding: 0; - border-style: none; -} - -textarea { - resize: vertical; -} - -fieldset { - min-width: 0; - padding: 0; - margin: 0; - border: 0; -} - -legend { - float: left; - width: 100%; - padding: 0; - margin-bottom: 0.5rem; - font-size: calc(1.275rem + 0.3vw); - line-height: inherit; -} -@media (min-width: 1200px) { - legend { - font-size: 1.5rem; - } -} -legend + * { - clear: left; -} - -::-webkit-datetime-edit-fields-wrapper, -::-webkit-datetime-edit-text, -::-webkit-datetime-edit-minute, -::-webkit-datetime-edit-hour-field, -::-webkit-datetime-edit-day-field, -::-webkit-datetime-edit-month-field, -::-webkit-datetime-edit-year-field { - padding: 0; -} - -::-webkit-inner-spin-button { - height: auto; -} - -[type=search] { - outline-offset: -2px; - -webkit-appearance: textfield; -} - -/* rtl:raw: -[type="tel"], -[type="url"], -[type="email"], -[type="number"] { - direction: ltr; -} -*/ -::-webkit-search-decoration { - -webkit-appearance: none; -} - -::-webkit-color-swatch-wrapper { - padding: 0; -} - -::file-selector-button { - font: inherit; -} - -::-webkit-file-upload-button { - font: inherit; - -webkit-appearance: button; -} - -output { - display: inline-block; -} - -iframe { - border: 0; -} - -summary { - display: list-item; - cursor: pointer; -} - -progress { - vertical-align: baseline; -} - -[hidden] { - display: none !important; -} - -.lead { - font-size: 1.25rem; - font-weight: 300; -} - -.display-1 { - font-size: calc(1.625rem + 4.5vw); - font-weight: 300; - line-height: 1.2; -} -@media (min-width: 1200px) { - .display-1 { - font-size: 5rem; - } -} - -.display-2 { - font-size: calc(1.575rem + 3.9vw); - font-weight: 300; - line-height: 1.2; -} -@media (min-width: 1200px) { - .display-2 { - font-size: 4.5rem; - } -} - -.display-3 { - font-size: calc(1.525rem + 3.3vw); - font-weight: 300; - line-height: 1.2; -} -@media (min-width: 1200px) { - .display-3 { - font-size: 4rem; - } -} - -.display-4 { - font-size: calc(1.475rem + 2.7vw); - font-weight: 300; - line-height: 1.2; -} -@media (min-width: 1200px) { - .display-4 { - font-size: 3.5rem; - } -} - -.display-5 { - font-size: calc(1.425rem + 2.1vw); - font-weight: 300; - line-height: 1.2; -} -@media (min-width: 1200px) { - .display-5 { - font-size: 3rem; - } -} - -.display-6 { - font-size: calc(1.375rem + 1.5vw); - font-weight: 300; - line-height: 1.2; -} -@media (min-width: 1200px) { - .display-6 { - font-size: 2.5rem; - } -} - -.list-unstyled { - padding-left: 0; - list-style: none; -} - -.list-inline { - padding-left: 0; - list-style: none; -} - -.list-inline-item { - display: inline-block; -} -.list-inline-item:not(:last-child) { - margin-right: 0.5rem; -} - -.initialism { - font-size: 0.875em; - text-transform: uppercase; -} - -.blockquote { - margin-bottom: 1rem; - font-size: 1.25rem; -} -.blockquote > :last-child { - margin-bottom: 0; -} - -.blockquote-footer { - margin-top: -1rem; - margin-bottom: 1rem; - font-size: 0.875em; - color: #6c757d; -} -.blockquote-footer::before { - content: "— "; -} - -.img-fluid { - max-width: 100%; - height: auto; -} - -.img-thumbnail { - padding: 0.25rem; - background-color: #fff; - border: 1px solid #dee2e6; - border-radius: 0.25rem; - max-width: 100%; - height: auto; -} - -.figure { - display: inline-block; -} - -.figure-img { - margin-bottom: 0.5rem; - line-height: 1; -} - -.figure-caption { - font-size: 0.875em; - color: #6c757d; -} - -.container, -.container-fluid, -.container-xxl, -.container-xl, -.container-lg, -.container-md, -.container-sm { - width: 100%; - padding-right: var(--bs-gutter-x, 0.75rem); - padding-left: var(--bs-gutter-x, 0.75rem); - margin-right: auto; - margin-left: auto; -} - -@media (min-width: 576px) { - .container-sm, .container { - max-width: 540px; - } -} -@media (min-width: 768px) { - .container-md, .container-sm, .container { - max-width: 720px; - } -} -@media (min-width: 992px) { - .container-lg, .container-md, .container-sm, .container { - max-width: 960px; - } -} -@media (min-width: 1200px) { - .container-xl, .container-lg, .container-md, .container-sm, .container { - max-width: 1140px; - } -} -@media (min-width: 1400px) { - .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { - max-width: 1320px; - } -} -.row { - --bs-gutter-x: 1.5rem; - --bs-gutter-y: 0; - display: flex; - flex-wrap: wrap; - margin-top: calc(var(--bs-gutter-y) * -1); - margin-right: calc(var(--bs-gutter-x) * -.5); - margin-left: calc(var(--bs-gutter-x) * -.5); -} -.row > * { - flex-shrink: 0; - width: 100%; - max-width: 100%; - padding-right: calc(var(--bs-gutter-x) * .5); - padding-left: calc(var(--bs-gutter-x) * .5); - margin-top: var(--bs-gutter-y); -} - -.col { - flex: 1 0 0%; -} - -.row-cols-auto > * { - flex: 0 0 auto; - width: auto; -} - -.row-cols-1 > * { - flex: 0 0 auto; - width: 100%; -} - -.row-cols-2 > * { - flex: 0 0 auto; - width: 50%; -} - -.row-cols-3 > * { - flex: 0 0 auto; - width: 33.3333333333%; -} - -.row-cols-4 > * { - flex: 0 0 auto; - width: 25%; -} - -.row-cols-5 > * { - flex: 0 0 auto; - width: 20%; -} - -.row-cols-6 > * { - flex: 0 0 auto; - width: 16.6666666667%; -} - -@media (min-width: 576px) { - .col-sm { - flex: 1 0 0%; - } - - .row-cols-sm-auto > * { - flex: 0 0 auto; - width: auto; - } - - .row-cols-sm-1 > * { - flex: 0 0 auto; - width: 100%; - } - - .row-cols-sm-2 > * { - flex: 0 0 auto; - width: 50%; - } - - .row-cols-sm-3 > * { - flex: 0 0 auto; - width: 33.3333333333%; - } - - .row-cols-sm-4 > * { - flex: 0 0 auto; - width: 25%; - } - - .row-cols-sm-5 > * { - flex: 0 0 auto; - width: 20%; - } - - .row-cols-sm-6 > * { - flex: 0 0 auto; - width: 16.6666666667%; - } -} -@media (min-width: 768px) { - .col-md { - flex: 1 0 0%; - } - - .row-cols-md-auto > * { - flex: 0 0 auto; - width: auto; - } - - .row-cols-md-1 > * { - flex: 0 0 auto; - width: 100%; - } - - .row-cols-md-2 > * { - flex: 0 0 auto; - width: 50%; - } - - .row-cols-md-3 > * { - flex: 0 0 auto; - width: 33.3333333333%; - } - - .row-cols-md-4 > * { - flex: 0 0 auto; - width: 25%; - } - - .row-cols-md-5 > * { - flex: 0 0 auto; - width: 20%; - } - - .row-cols-md-6 > * { - flex: 0 0 auto; - width: 16.6666666667%; - } -} -@media (min-width: 992px) { - .col-lg { - flex: 1 0 0%; - } - - .row-cols-lg-auto > * { - flex: 0 0 auto; - width: auto; - } - - .row-cols-lg-1 > * { - flex: 0 0 auto; - width: 100%; - } - - .row-cols-lg-2 > * { - flex: 0 0 auto; - width: 50%; - } - - .row-cols-lg-3 > * { - flex: 0 0 auto; - width: 33.3333333333%; - } - - .row-cols-lg-4 > * { - flex: 0 0 auto; - width: 25%; - } - - .row-cols-lg-5 > * { - flex: 0 0 auto; - width: 20%; - } - - .row-cols-lg-6 > * { - flex: 0 0 auto; - width: 16.6666666667%; - } -} -@media (min-width: 1200px) { - .col-xl { - flex: 1 0 0%; - } - - .row-cols-xl-auto > * { - flex: 0 0 auto; - width: auto; - } - - .row-cols-xl-1 > * { - flex: 0 0 auto; - width: 100%; - } - - .row-cols-xl-2 > * { - flex: 0 0 auto; - width: 50%; - } - - .row-cols-xl-3 > * { - flex: 0 0 auto; - width: 33.3333333333%; - } - - .row-cols-xl-4 > * { - flex: 0 0 auto; - width: 25%; - } - - .row-cols-xl-5 > * { - flex: 0 0 auto; - width: 20%; - } - - .row-cols-xl-6 > * { - flex: 0 0 auto; - width: 16.6666666667%; - } -} -@media (min-width: 1400px) { - .col-xxl { - flex: 1 0 0%; - } - - .row-cols-xxl-auto > * { - flex: 0 0 auto; - width: auto; - } - - .row-cols-xxl-1 > * { - flex: 0 0 auto; - width: 100%; - } - - .row-cols-xxl-2 > * { - flex: 0 0 auto; - width: 50%; - } - - .row-cols-xxl-3 > * { - flex: 0 0 auto; - width: 33.3333333333%; - } - - .row-cols-xxl-4 > * { - flex: 0 0 auto; - width: 25%; - } - - .row-cols-xxl-5 > * { - flex: 0 0 auto; - width: 20%; - } - - .row-cols-xxl-6 > * { - flex: 0 0 auto; - width: 16.6666666667%; - } -} -.col-auto { - flex: 0 0 auto; - width: auto; -} - -.col-1 { - flex: 0 0 auto; - width: 8.33333333%; -} - -.col-2 { - flex: 0 0 auto; - width: 16.66666667%; -} - -.col-3 { - flex: 0 0 auto; - width: 25%; -} - -.col-4 { - flex: 0 0 auto; - width: 33.33333333%; -} - -.col-5 { - flex: 0 0 auto; - width: 41.66666667%; -} - -.col-6 { - flex: 0 0 auto; - width: 50%; -} - -.col-7 { - flex: 0 0 auto; - width: 58.33333333%; -} - -.col-8 { - flex: 0 0 auto; - width: 66.66666667%; -} - -.col-9 { - flex: 0 0 auto; - width: 75%; -} - -.col-10 { - flex: 0 0 auto; - width: 83.33333333%; -} - -.col-11 { - flex: 0 0 auto; - width: 91.66666667%; -} - -.col-12 { - flex: 0 0 auto; - width: 100%; -} - -.offset-1 { - margin-left: 8.33333333%; -} - -.offset-2 { - margin-left: 16.66666667%; -} - -.offset-3 { - margin-left: 25%; -} - -.offset-4 { - margin-left: 33.33333333%; -} - -.offset-5 { - margin-left: 41.66666667%; -} - -.offset-6 { - margin-left: 50%; -} - -.offset-7 { - margin-left: 58.33333333%; -} - -.offset-8 { - margin-left: 66.66666667%; -} - -.offset-9 { - margin-left: 75%; -} - -.offset-10 { - margin-left: 83.33333333%; -} - -.offset-11 { - margin-left: 91.66666667%; -} - -.g-0, -.gx-0 { - --bs-gutter-x: 0; -} - -.g-0, -.gy-0 { - --bs-gutter-y: 0; -} - -.g-1, -.gx-1 { - --bs-gutter-x: 0.25rem; -} - -.g-1, -.gy-1 { - --bs-gutter-y: 0.25rem; -} - -.g-2, -.gx-2 { - --bs-gutter-x: 0.5rem; -} - -.g-2, -.gy-2 { - --bs-gutter-y: 0.5rem; -} - -.g-3, -.gx-3 { - --bs-gutter-x: 1rem; -} - -.g-3, -.gy-3 { - --bs-gutter-y: 1rem; -} - -.g-4, -.gx-4 { - --bs-gutter-x: 1.5rem; -} - -.g-4, -.gy-4 { - --bs-gutter-y: 1.5rem; -} - -.g-5, -.gx-5 { - --bs-gutter-x: 3rem; -} - -.g-5, -.gy-5 { - --bs-gutter-y: 3rem; -} - -@media (min-width: 576px) { - .col-sm-auto { - flex: 0 0 auto; - width: auto; - } - - .col-sm-1 { - flex: 0 0 auto; - width: 8.33333333%; - } - - .col-sm-2 { - flex: 0 0 auto; - width: 16.66666667%; - } - - .col-sm-3 { - flex: 0 0 auto; - width: 25%; - } - - .col-sm-4 { - flex: 0 0 auto; - width: 33.33333333%; - } - - .col-sm-5 { - flex: 0 0 auto; - width: 41.66666667%; - } - - .col-sm-6 { - flex: 0 0 auto; - width: 50%; - } - - .col-sm-7 { - flex: 0 0 auto; - width: 58.33333333%; - } - - .col-sm-8 { - flex: 0 0 auto; - width: 66.66666667%; - } - - .col-sm-9 { - flex: 0 0 auto; - width: 75%; - } - - .col-sm-10 { - flex: 0 0 auto; - width: 83.33333333%; - } - - .col-sm-11 { - flex: 0 0 auto; - width: 91.66666667%; - } - - .col-sm-12 { - flex: 0 0 auto; - width: 100%; - } - - .offset-sm-0 { - margin-left: 0; - } - - .offset-sm-1 { - margin-left: 8.33333333%; - } - - .offset-sm-2 { - margin-left: 16.66666667%; - } - - .offset-sm-3 { - margin-left: 25%; - } - - .offset-sm-4 { - margin-left: 33.33333333%; - } - - .offset-sm-5 { - margin-left: 41.66666667%; - } - - .offset-sm-6 { - margin-left: 50%; - } - - .offset-sm-7 { - margin-left: 58.33333333%; - } - - .offset-sm-8 { - margin-left: 66.66666667%; - } - - .offset-sm-9 { - margin-left: 75%; - } - - .offset-sm-10 { - margin-left: 83.33333333%; - } - - .offset-sm-11 { - margin-left: 91.66666667%; - } - - .g-sm-0, -.gx-sm-0 { - --bs-gutter-x: 0; - } - - .g-sm-0, -.gy-sm-0 { - --bs-gutter-y: 0; - } - - .g-sm-1, -.gx-sm-1 { - --bs-gutter-x: 0.25rem; - } - - .g-sm-1, -.gy-sm-1 { - --bs-gutter-y: 0.25rem; - } - - .g-sm-2, -.gx-sm-2 { - --bs-gutter-x: 0.5rem; - } - - .g-sm-2, -.gy-sm-2 { - --bs-gutter-y: 0.5rem; - } - - .g-sm-3, -.gx-sm-3 { - --bs-gutter-x: 1rem; - } - - .g-sm-3, -.gy-sm-3 { - --bs-gutter-y: 1rem; - } - - .g-sm-4, -.gx-sm-4 { - --bs-gutter-x: 1.5rem; - } - - .g-sm-4, -.gy-sm-4 { - --bs-gutter-y: 1.5rem; - } - - .g-sm-5, -.gx-sm-5 { - --bs-gutter-x: 3rem; - } - - .g-sm-5, -.gy-sm-5 { - --bs-gutter-y: 3rem; - } -} -@media (min-width: 768px) { - .col-md-auto { - flex: 0 0 auto; - width: auto; - } - - .col-md-1 { - flex: 0 0 auto; - width: 8.33333333%; - } - - .col-md-2 { - flex: 0 0 auto; - width: 16.66666667%; - } - - .col-md-3 { - flex: 0 0 auto; - width: 25%; - } - - .col-md-4 { - flex: 0 0 auto; - width: 33.33333333%; - } - - .col-md-5 { - flex: 0 0 auto; - width: 41.66666667%; - } - - .col-md-6 { - flex: 0 0 auto; - width: 50%; - } - - .col-md-7 { - flex: 0 0 auto; - width: 58.33333333%; - } - - .col-md-8 { - flex: 0 0 auto; - width: 66.66666667%; - } - - .col-md-9 { - flex: 0 0 auto; - width: 75%; - } - - .col-md-10 { - flex: 0 0 auto; - width: 83.33333333%; - } - - .col-md-11 { - flex: 0 0 auto; - width: 91.66666667%; - } - - .col-md-12 { - flex: 0 0 auto; - width: 100%; - } - - .offset-md-0 { - margin-left: 0; - } - - .offset-md-1 { - margin-left: 8.33333333%; - } - - .offset-md-2 { - margin-left: 16.66666667%; - } - - .offset-md-3 { - margin-left: 25%; - } - - .offset-md-4 { - margin-left: 33.33333333%; - } - - .offset-md-5 { - margin-left: 41.66666667%; - } - - .offset-md-6 { - margin-left: 50%; - } - - .offset-md-7 { - margin-left: 58.33333333%; - } - - .offset-md-8 { - margin-left: 66.66666667%; - } - - .offset-md-9 { - margin-left: 75%; - } - - .offset-md-10 { - margin-left: 83.33333333%; - } - - .offset-md-11 { - margin-left: 91.66666667%; - } - - .g-md-0, -.gx-md-0 { - --bs-gutter-x: 0; - } - - .g-md-0, -.gy-md-0 { - --bs-gutter-y: 0; - } - - .g-md-1, -.gx-md-1 { - --bs-gutter-x: 0.25rem; - } - - .g-md-1, -.gy-md-1 { - --bs-gutter-y: 0.25rem; - } - - .g-md-2, -.gx-md-2 { - --bs-gutter-x: 0.5rem; - } - - .g-md-2, -.gy-md-2 { - --bs-gutter-y: 0.5rem; - } - - .g-md-3, -.gx-md-3 { - --bs-gutter-x: 1rem; - } - - .g-md-3, -.gy-md-3 { - --bs-gutter-y: 1rem; - } - - .g-md-4, -.gx-md-4 { - --bs-gutter-x: 1.5rem; - } - - .g-md-4, -.gy-md-4 { - --bs-gutter-y: 1.5rem; - } - - .g-md-5, -.gx-md-5 { - --bs-gutter-x: 3rem; - } - - .g-md-5, -.gy-md-5 { - --bs-gutter-y: 3rem; - } -} -@media (min-width: 992px) { - .col-lg-auto { - flex: 0 0 auto; - width: auto; - } - - .col-lg-1 { - flex: 0 0 auto; - width: 8.33333333%; - } - - .col-lg-2 { - flex: 0 0 auto; - width: 16.66666667%; - } - - .col-lg-3 { - flex: 0 0 auto; - width: 25%; - } - - .col-lg-4 { - flex: 0 0 auto; - width: 33.33333333%; - } - - .col-lg-5 { - flex: 0 0 auto; - width: 41.66666667%; - } - - .col-lg-6 { - flex: 0 0 auto; - width: 50%; - } - - .col-lg-7 { - flex: 0 0 auto; - width: 58.33333333%; - } - - .col-lg-8 { - flex: 0 0 auto; - width: 66.66666667%; - } - - .col-lg-9 { - flex: 0 0 auto; - width: 75%; - } - - .col-lg-10 { - flex: 0 0 auto; - width: 83.33333333%; - } - - .col-lg-11 { - flex: 0 0 auto; - width: 91.66666667%; - } - - .col-lg-12 { - flex: 0 0 auto; - width: 100%; - } - - .offset-lg-0 { - margin-left: 0; - } - - .offset-lg-1 { - margin-left: 8.33333333%; - } - - .offset-lg-2 { - margin-left: 16.66666667%; - } - - .offset-lg-3 { - margin-left: 25%; - } - - .offset-lg-4 { - margin-left: 33.33333333%; - } - - .offset-lg-5 { - margin-left: 41.66666667%; - } - - .offset-lg-6 { - margin-left: 50%; - } - - .offset-lg-7 { - margin-left: 58.33333333%; - } - - .offset-lg-8 { - margin-left: 66.66666667%; - } - - .offset-lg-9 { - margin-left: 75%; - } - - .offset-lg-10 { - margin-left: 83.33333333%; - } - - .offset-lg-11 { - margin-left: 91.66666667%; - } - - .g-lg-0, -.gx-lg-0 { - --bs-gutter-x: 0; - } - - .g-lg-0, -.gy-lg-0 { - --bs-gutter-y: 0; - } - - .g-lg-1, -.gx-lg-1 { - --bs-gutter-x: 0.25rem; - } - - .g-lg-1, -.gy-lg-1 { - --bs-gutter-y: 0.25rem; - } - - .g-lg-2, -.gx-lg-2 { - --bs-gutter-x: 0.5rem; - } - - .g-lg-2, -.gy-lg-2 { - --bs-gutter-y: 0.5rem; - } - - .g-lg-3, -.gx-lg-3 { - --bs-gutter-x: 1rem; - } - - .g-lg-3, -.gy-lg-3 { - --bs-gutter-y: 1rem; - } - - .g-lg-4, -.gx-lg-4 { - --bs-gutter-x: 1.5rem; - } - - .g-lg-4, -.gy-lg-4 { - --bs-gutter-y: 1.5rem; - } - - .g-lg-5, -.gx-lg-5 { - --bs-gutter-x: 3rem; - } - - .g-lg-5, -.gy-lg-5 { - --bs-gutter-y: 3rem; - } -} -@media (min-width: 1200px) { - .col-xl-auto { - flex: 0 0 auto; - width: auto; - } - - .col-xl-1 { - flex: 0 0 auto; - width: 8.33333333%; - } - - .col-xl-2 { - flex: 0 0 auto; - width: 16.66666667%; - } - - .col-xl-3 { - flex: 0 0 auto; - width: 25%; - } - - .col-xl-4 { - flex: 0 0 auto; - width: 33.33333333%; - } - - .col-xl-5 { - flex: 0 0 auto; - width: 41.66666667%; - } - - .col-xl-6 { - flex: 0 0 auto; - width: 50%; - } - - .col-xl-7 { - flex: 0 0 auto; - width: 58.33333333%; - } - - .col-xl-8 { - flex: 0 0 auto; - width: 66.66666667%; - } - - .col-xl-9 { - flex: 0 0 auto; - width: 75%; - } - - .col-xl-10 { - flex: 0 0 auto; - width: 83.33333333%; - } - - .col-xl-11 { - flex: 0 0 auto; - width: 91.66666667%; - } - - .col-xl-12 { - flex: 0 0 auto; - width: 100%; - } - - .offset-xl-0 { - margin-left: 0; - } - - .offset-xl-1 { - margin-left: 8.33333333%; - } - - .offset-xl-2 { - margin-left: 16.66666667%; - } - - .offset-xl-3 { - margin-left: 25%; - } - - .offset-xl-4 { - margin-left: 33.33333333%; - } - - .offset-xl-5 { - margin-left: 41.66666667%; - } - - .offset-xl-6 { - margin-left: 50%; - } - - .offset-xl-7 { - margin-left: 58.33333333%; - } - - .offset-xl-8 { - margin-left: 66.66666667%; - } - - .offset-xl-9 { - margin-left: 75%; - } - - .offset-xl-10 { - margin-left: 83.33333333%; - } - - .offset-xl-11 { - margin-left: 91.66666667%; - } - - .g-xl-0, -.gx-xl-0 { - --bs-gutter-x: 0; - } - - .g-xl-0, -.gy-xl-0 { - --bs-gutter-y: 0; - } - - .g-xl-1, -.gx-xl-1 { - --bs-gutter-x: 0.25rem; - } - - .g-xl-1, -.gy-xl-1 { - --bs-gutter-y: 0.25rem; - } - - .g-xl-2, -.gx-xl-2 { - --bs-gutter-x: 0.5rem; - } - - .g-xl-2, -.gy-xl-2 { - --bs-gutter-y: 0.5rem; - } - - .g-xl-3, -.gx-xl-3 { - --bs-gutter-x: 1rem; - } - - .g-xl-3, -.gy-xl-3 { - --bs-gutter-y: 1rem; - } - - .g-xl-4, -.gx-xl-4 { - --bs-gutter-x: 1.5rem; - } - - .g-xl-4, -.gy-xl-4 { - --bs-gutter-y: 1.5rem; - } - - .g-xl-5, -.gx-xl-5 { - --bs-gutter-x: 3rem; - } - - .g-xl-5, -.gy-xl-5 { - --bs-gutter-y: 3rem; - } -} -@media (min-width: 1400px) { - .col-xxl-auto { - flex: 0 0 auto; - width: auto; - } - - .col-xxl-1 { - flex: 0 0 auto; - width: 8.33333333%; - } - - .col-xxl-2 { - flex: 0 0 auto; - width: 16.66666667%; - } - - .col-xxl-3 { - flex: 0 0 auto; - width: 25%; - } - - .col-xxl-4 { - flex: 0 0 auto; - width: 33.33333333%; - } - - .col-xxl-5 { - flex: 0 0 auto; - width: 41.66666667%; - } - - .col-xxl-6 { - flex: 0 0 auto; - width: 50%; - } - - .col-xxl-7 { - flex: 0 0 auto; - width: 58.33333333%; - } - - .col-xxl-8 { - flex: 0 0 auto; - width: 66.66666667%; - } - - .col-xxl-9 { - flex: 0 0 auto; - width: 75%; - } - - .col-xxl-10 { - flex: 0 0 auto; - width: 83.33333333%; - } - - .col-xxl-11 { - flex: 0 0 auto; - width: 91.66666667%; - } - - .col-xxl-12 { - flex: 0 0 auto; - width: 100%; - } - - .offset-xxl-0 { - margin-left: 0; - } - - .offset-xxl-1 { - margin-left: 8.33333333%; - } - - .offset-xxl-2 { - margin-left: 16.66666667%; - } - - .offset-xxl-3 { - margin-left: 25%; - } - - .offset-xxl-4 { - margin-left: 33.33333333%; - } - - .offset-xxl-5 { - margin-left: 41.66666667%; - } - - .offset-xxl-6 { - margin-left: 50%; - } - - .offset-xxl-7 { - margin-left: 58.33333333%; - } - - .offset-xxl-8 { - margin-left: 66.66666667%; - } - - .offset-xxl-9 { - margin-left: 75%; - } - - .offset-xxl-10 { - margin-left: 83.33333333%; - } - - .offset-xxl-11 { - margin-left: 91.66666667%; - } - - .g-xxl-0, -.gx-xxl-0 { - --bs-gutter-x: 0; - } - - .g-xxl-0, -.gy-xxl-0 { - --bs-gutter-y: 0; - } - - .g-xxl-1, -.gx-xxl-1 { - --bs-gutter-x: 0.25rem; - } - - .g-xxl-1, -.gy-xxl-1 { - --bs-gutter-y: 0.25rem; - } - - .g-xxl-2, -.gx-xxl-2 { - --bs-gutter-x: 0.5rem; - } - - .g-xxl-2, -.gy-xxl-2 { - --bs-gutter-y: 0.5rem; - } - - .g-xxl-3, -.gx-xxl-3 { - --bs-gutter-x: 1rem; - } - - .g-xxl-3, -.gy-xxl-3 { - --bs-gutter-y: 1rem; - } - - .g-xxl-4, -.gx-xxl-4 { - --bs-gutter-x: 1.5rem; - } - - .g-xxl-4, -.gy-xxl-4 { - --bs-gutter-y: 1.5rem; - } - - .g-xxl-5, -.gx-xxl-5 { - --bs-gutter-x: 3rem; - } - - .g-xxl-5, -.gy-xxl-5 { - --bs-gutter-y: 3rem; - } -} -.table { - --bs-table-bg: transparent; - --bs-table-accent-bg: transparent; - --bs-table-striped-color: #212529; - --bs-table-striped-bg: rgba(0, 0, 0, 0.05); - --bs-table-active-color: #212529; - --bs-table-active-bg: rgba(0, 0, 0, 0.1); - --bs-table-hover-color: #212529; - --bs-table-hover-bg: rgba(0, 0, 0, 0.075); - width: 100%; - margin-bottom: 1rem; - color: #212529; - vertical-align: top; - border-color: #dee2e6; -} -.table > :not(caption) > * > * { - padding: 0.5rem 0.5rem; - background-color: var(--bs-table-bg); - border-bottom-width: 1px; - box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); -} -.table > tbody { - vertical-align: inherit; -} -.table > thead { - vertical-align: bottom; -} -.table > :not(:last-child) > :last-child > * { - border-bottom-color: currentColor; -} - -.caption-top { - caption-side: top; -} - -.table-sm > :not(caption) > * > * { - padding: 0.25rem 0.25rem; -} - -.table-bordered > :not(caption) > * { - border-width: 1px 0; -} -.table-bordered > :not(caption) > * > * { - border-width: 0 1px; -} - -.table-borderless > :not(caption) > * > * { - border-bottom-width: 0; -} - -.table-striped > tbody > tr:nth-of-type(odd) { - --bs-table-accent-bg: var(--bs-table-striped-bg); - color: var(--bs-table-striped-color); -} - -.table-active { - --bs-table-accent-bg: var(--bs-table-active-bg); - color: var(--bs-table-active-color); -} - -.table-hover > tbody > tr:hover { - --bs-table-accent-bg: var(--bs-table-hover-bg); - color: var(--bs-table-hover-color); -} - -.table-primary { - --bs-table-bg: #cfe2ff; - --bs-table-striped-bg: #c5d7f2; - --bs-table-striped-color: #000; - --bs-table-active-bg: #bacbe6; - --bs-table-active-color: #000; - --bs-table-hover-bg: #bfd1ec; - --bs-table-hover-color: #000; - color: #000; - border-color: #bacbe6; -} - -.table-secondary { - --bs-table-bg: #e2e3e5; - --bs-table-striped-bg: #d7d8da; - --bs-table-striped-color: #000; - --bs-table-active-bg: #cbccce; - --bs-table-active-color: #000; - --bs-table-hover-bg: #d1d2d4; - --bs-table-hover-color: #000; - color: #000; - border-color: #cbccce; -} - -.table-success { - --bs-table-bg: #d1e7dd; - --bs-table-striped-bg: #c7dbd2; - --bs-table-striped-color: #000; - --bs-table-active-bg: #bcd0c7; - --bs-table-active-color: #000; - --bs-table-hover-bg: #c1d6cc; - --bs-table-hover-color: #000; - color: #000; - border-color: #bcd0c7; -} - -.table-info { - --bs-table-bg: #cff4fc; - --bs-table-striped-bg: #c5e8ef; - --bs-table-striped-color: #000; - --bs-table-active-bg: #badce3; - --bs-table-active-color: #000; - --bs-table-hover-bg: #bfe2e9; - --bs-table-hover-color: #000; - color: #000; - border-color: #badce3; -} - -.table-warning { - --bs-table-bg: #fff3cd; - --bs-table-striped-bg: #f2e7c3; - --bs-table-striped-color: #000; - --bs-table-active-bg: #e6dbb9; - --bs-table-active-color: #000; - --bs-table-hover-bg: #ece1be; - --bs-table-hover-color: #000; - color: #000; - border-color: #e6dbb9; -} - -.table-danger { - --bs-table-bg: #f8d7da; - --bs-table-striped-bg: #eccccf; - --bs-table-striped-color: #000; - --bs-table-active-bg: #dfc2c4; - --bs-table-active-color: #000; - --bs-table-hover-bg: #e5c7ca; - --bs-table-hover-color: #000; - color: #000; - border-color: #dfc2c4; -} - -.table-light { - --bs-table-bg: #f8f9fa; - --bs-table-striped-bg: #ecedee; - --bs-table-striped-color: #000; - --bs-table-active-bg: #dfe0e1; - --bs-table-active-color: #000; - --bs-table-hover-bg: #e5e6e7; - --bs-table-hover-color: #000; - color: #000; - border-color: #dfe0e1; -} - -.table-dark { - --bs-table-bg: #212529; - --bs-table-striped-bg: #2c3034; - --bs-table-striped-color: #fff; - --bs-table-active-bg: #373b3e; - --bs-table-active-color: #fff; - --bs-table-hover-bg: #323539; - --bs-table-hover-color: #fff; - color: #fff; - border-color: #373b3e; -} - -.table-responsive { - overflow-x: auto; - -webkit-overflow-scrolling: touch; -} - -@media (max-width: 575.98px) { - .table-responsive-sm { - overflow-x: auto; - -webkit-overflow-scrolling: touch; - } -} -@media (max-width: 767.98px) { - .table-responsive-md { - overflow-x: auto; - -webkit-overflow-scrolling: touch; - } -} -@media (max-width: 991.98px) { - .table-responsive-lg { - overflow-x: auto; - -webkit-overflow-scrolling: touch; - } -} -@media (max-width: 1199.98px) { - .table-responsive-xl { - overflow-x: auto; - -webkit-overflow-scrolling: touch; - } -} -@media (max-width: 1399.98px) { - .table-responsive-xxl { - overflow-x: auto; - -webkit-overflow-scrolling: touch; - } -} -.form-label { - margin-bottom: 0.5rem; -} - -.col-form-label { - padding-top: calc(0.375rem + 1px); - padding-bottom: calc(0.375rem + 1px); - margin-bottom: 0; - font-size: inherit; - line-height: 1.5; -} - -.col-form-label-lg { - padding-top: calc(0.5rem + 1px); - padding-bottom: calc(0.5rem + 1px); - font-size: 1.25rem; -} - -.col-form-label-sm { - padding-top: calc(0.25rem + 1px); - padding-bottom: calc(0.25rem + 1px); - font-size: 0.875rem; -} - -.form-text { - margin-top: 0.25rem; - font-size: 0.875em; - color: #6c757d; -} - -.form-control { - display: block; - width: 100%; - padding: 0.375rem 0.75rem; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #212529; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #ced4da; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - border-radius: 0.25rem; - transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -} -@media (prefers-reduced-motion: reduce) { - .form-control { - transition: none; - } -} -.form-control[type=file] { - overflow: hidden; -} -.form-control[type=file]:not(:disabled):not([readonly]) { - cursor: pointer; -} -.form-control:focus { - color: #212529; - background-color: #fff; - border-color: #86b7fe; - outline: 0; - box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); -} -.form-control::-webkit-date-and-time-value { - height: 1.5em; -} -.form-control::-moz-placeholder { - color: #6c757d; - opacity: 1; -} -.form-control::placeholder { - color: #6c757d; - opacity: 1; -} -.form-control:disabled, .form-control[readonly] { - background-color: #e9ecef; - opacity: 1; -} -.form-control::file-selector-button { - padding: 0.375rem 0.75rem; - margin: -0.375rem -0.75rem; - -webkit-margin-end: 0.75rem; - margin-inline-end: 0.75rem; - color: #212529; - background-color: #e9ecef; - pointer-events: none; - border-color: inherit; - border-style: solid; - border-width: 0; - border-inline-end-width: 1px; - border-radius: 0; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -} -@media (prefers-reduced-motion: reduce) { - .form-control::file-selector-button { - transition: none; - } -} -.form-control:hover:not(:disabled):not([readonly])::file-selector-button { - background-color: #dde0e3; -} -.form-control::-webkit-file-upload-button { - padding: 0.375rem 0.75rem; - margin: -0.375rem -0.75rem; - -webkit-margin-end: 0.75rem; - margin-inline-end: 0.75rem; - color: #212529; - background-color: #e9ecef; - pointer-events: none; - border-color: inherit; - border-style: solid; - border-width: 0; - border-inline-end-width: 1px; - border-radius: 0; - -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -} -@media (prefers-reduced-motion: reduce) { - .form-control::-webkit-file-upload-button { - -webkit-transition: none; - transition: none; - } -} -.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { - background-color: #dde0e3; -} - -.form-control-plaintext { - display: block; - width: 100%; - padding: 0.375rem 0; - margin-bottom: 0; - line-height: 1.5; - color: #212529; - background-color: transparent; - border: solid transparent; - border-width: 1px 0; -} -.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { - padding-right: 0; - padding-left: 0; -} - -.form-control-sm { - min-height: calc(1.5em + (0.5rem + 2px)); - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - border-radius: 0.2rem; -} -.form-control-sm::file-selector-button { - padding: 0.25rem 0.5rem; - margin: -0.25rem -0.5rem; - -webkit-margin-end: 0.5rem; - margin-inline-end: 0.5rem; -} -.form-control-sm::-webkit-file-upload-button { - padding: 0.25rem 0.5rem; - margin: -0.25rem -0.5rem; - -webkit-margin-end: 0.5rem; - margin-inline-end: 0.5rem; -} - -.form-control-lg { - min-height: calc(1.5em + (1rem + 2px)); - padding: 0.5rem 1rem; - font-size: 1.25rem; - border-radius: 0.3rem; -} -.form-control-lg::file-selector-button { - padding: 0.5rem 1rem; - margin: -0.5rem -1rem; - -webkit-margin-end: 1rem; - margin-inline-end: 1rem; -} -.form-control-lg::-webkit-file-upload-button { - padding: 0.5rem 1rem; - margin: -0.5rem -1rem; - -webkit-margin-end: 1rem; - margin-inline-end: 1rem; -} - -textarea.form-control { - min-height: calc(1.5em + (0.75rem + 2px)); -} -textarea.form-control-sm { - min-height: calc(1.5em + (0.5rem + 2px)); -} -textarea.form-control-lg { - min-height: calc(1.5em + (1rem + 2px)); -} - -.form-control-color { - max-width: 3rem; - height: auto; - padding: 0.375rem; -} -.form-control-color:not(:disabled):not([readonly]) { - cursor: pointer; -} -.form-control-color::-moz-color-swatch { - height: 1.5em; - border-radius: 0.25rem; -} -.form-control-color::-webkit-color-swatch { - height: 1.5em; - border-radius: 0.25rem; -} - -.form-select { - display: block; - width: 100%; - padding: 0.375rem 2.25rem 0.375rem 0.75rem; - -moz-padding-start: calc(0.75rem - 3px); - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #212529; - background-color: #fff; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); - background-repeat: no-repeat; - background-position: right 0.75rem center; - background-size: 16px 12px; - border: 1px solid #ced4da; - border-radius: 0.25rem; - transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; -} -@media (prefers-reduced-motion: reduce) { - .form-select { - transition: none; - } -} -.form-select:focus { - border-color: #86b7fe; - outline: 0; - box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); -} -.form-select[multiple], .form-select[size]:not([size="1"]) { - padding-right: 0.75rem; - background-image: none; -} -.form-select:disabled { - background-color: #e9ecef; -} -.form-select:-moz-focusring { - color: transparent; - text-shadow: 0 0 0 #212529; -} - -.form-select-sm { - padding-top: 0.25rem; - padding-bottom: 0.25rem; - padding-left: 0.5rem; - font-size: 0.875rem; -} - -.form-select-lg { - padding-top: 0.5rem; - padding-bottom: 0.5rem; - padding-left: 1rem; - font-size: 1.25rem; -} - -.form-check { - display: block; - min-height: 1.5rem; - padding-left: 1.5em; - margin-bottom: 0.125rem; -} -.form-check .form-check-input { - float: left; - margin-left: -1.5em; -} - -.form-check-input { - width: 1em; - height: 1em; - margin-top: 0.25em; - vertical-align: top; - background-color: #fff; - background-repeat: no-repeat; - background-position: center; - background-size: contain; - border: 1px solid rgba(0, 0, 0, 0.25); - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - -webkit-print-color-adjust: exact; - color-adjust: exact; -} -.form-check-input[type=checkbox] { - border-radius: 0.25em; -} -.form-check-input[type=radio] { - border-radius: 50%; -} -.form-check-input:active { - filter: brightness(90%); -} -.form-check-input:focus { - border-color: #86b7fe; - outline: 0; - box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); -} -.form-check-input:checked { - background-color: #0d6efd; - border-color: #0d6efd; -} -.form-check-input:checked[type=checkbox] { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e"); -} -.form-check-input:checked[type=radio] { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); -} -.form-check-input[type=checkbox]:indeterminate { - background-color: #0d6efd; - border-color: #0d6efd; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"); -} -.form-check-input:disabled { - pointer-events: none; - filter: none; - opacity: 0.5; -} -.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { - opacity: 0.5; -} - -.form-switch { - padding-left: 2.5em; -} -.form-switch .form-check-input { - width: 2em; - margin-left: -2.5em; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); - background-position: left center; - border-radius: 2em; - transition: background-position 0.15s ease-in-out; -} -@media (prefers-reduced-motion: reduce) { - .form-switch .form-check-input { - transition: none; - } -} -.form-switch .form-check-input:focus { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e"); -} -.form-switch .form-check-input:checked { - background-position: right center; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); -} - -.form-check-inline { - display: inline-block; - margin-right: 1rem; -} - -.btn-check { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; -} -.btn-check[disabled] + .btn, .btn-check:disabled + .btn { - pointer-events: none; - filter: none; - opacity: 0.65; -} - -.form-range { - width: 100%; - height: 1.5rem; - padding: 0; - background-color: transparent; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; -} -.form-range:focus { - outline: 0; -} -.form-range:focus::-webkit-slider-thumb { - box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); -} -.form-range:focus::-moz-range-thumb { - box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); -} -.form-range::-moz-focus-outer { - border: 0; -} -.form-range::-webkit-slider-thumb { - width: 1rem; - height: 1rem; - margin-top: -0.25rem; - background-color: #0d6efd; - border: 0; - border-radius: 1rem; - -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - -webkit-appearance: none; - appearance: none; -} -@media (prefers-reduced-motion: reduce) { - .form-range::-webkit-slider-thumb { - -webkit-transition: none; - transition: none; - } -} -.form-range::-webkit-slider-thumb:active { - background-color: #b6d4fe; -} -.form-range::-webkit-slider-runnable-track { - width: 100%; - height: 0.5rem; - color: transparent; - cursor: pointer; - background-color: #dee2e6; - border-color: transparent; - border-radius: 1rem; -} -.form-range::-moz-range-thumb { - width: 1rem; - height: 1rem; - background-color: #0d6efd; - border: 0; - border-radius: 1rem; - -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - -moz-appearance: none; - appearance: none; -} -@media (prefers-reduced-motion: reduce) { - .form-range::-moz-range-thumb { - -moz-transition: none; - transition: none; - } -} -.form-range::-moz-range-thumb:active { - background-color: #b6d4fe; -} -.form-range::-moz-range-track { - width: 100%; - height: 0.5rem; - color: transparent; - cursor: pointer; - background-color: #dee2e6; - border-color: transparent; - border-radius: 1rem; -} -.form-range:disabled { - pointer-events: none; -} -.form-range:disabled::-webkit-slider-thumb { - background-color: #adb5bd; -} -.form-range:disabled::-moz-range-thumb { - background-color: #adb5bd; -} - -.form-floating { - position: relative; -} -.form-floating > .form-control, -.form-floating > .form-select { - height: calc(3.5rem + 2px); - line-height: 1.25; -} -.form-floating > label { - position: absolute; - top: 0; - left: 0; - height: 100%; - padding: 1rem 0.75rem; - pointer-events: none; - border: 1px solid transparent; - transform-origin: 0 0; - transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; -} -@media (prefers-reduced-motion: reduce) { - .form-floating > label { - transition: none; - } -} -.form-floating > .form-control { - padding: 1rem 0.75rem; -} -.form-floating > .form-control::-moz-placeholder { - color: transparent; -} -.form-floating > .form-control::placeholder { - color: transparent; -} -.form-floating > .form-control:not(:-moz-placeholder-shown) { - padding-top: 1.625rem; - padding-bottom: 0.625rem; -} -.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown) { - padding-top: 1.625rem; - padding-bottom: 0.625rem; -} -.form-floating > .form-control:-webkit-autofill { - padding-top: 1.625rem; - padding-bottom: 0.625rem; -} -.form-floating > .form-select { - padding-top: 1.625rem; - padding-bottom: 0.625rem; -} -.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label { - opacity: 0.65; - transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); -} -.form-floating > .form-control:focus ~ label, -.form-floating > .form-control:not(:placeholder-shown) ~ label, -.form-floating > .form-select ~ label { - opacity: 0.65; - transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); -} -.form-floating > .form-control:-webkit-autofill ~ label { - opacity: 0.65; - transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); -} - -.input-group { - position: relative; - display: flex; - flex-wrap: wrap; - align-items: stretch; - width: 100%; -} -.input-group > .form-control, -.input-group > .form-select { - position: relative; - flex: 1 1 auto; - width: 1%; - min-width: 0; -} -.input-group > .form-control:focus, -.input-group > .form-select:focus { - z-index: 3; -} -.input-group .btn { - position: relative; - z-index: 2; -} -.input-group .btn:focus { - z-index: 3; -} - -.input-group-text { - display: flex; - align-items: center; - padding: 0.375rem 0.75rem; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #212529; - text-align: center; - white-space: nowrap; - background-color: #e9ecef; - border: 1px solid #ced4da; - border-radius: 0.25rem; -} - -.input-group-lg > .form-control, -.input-group-lg > .form-select, -.input-group-lg > .input-group-text, -.input-group-lg > .btn { - padding: 0.5rem 1rem; - font-size: 1.25rem; - border-radius: 0.3rem; -} - -.input-group-sm > .form-control, -.input-group-sm > .form-select, -.input-group-sm > .input-group-text, -.input-group-sm > .btn { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - border-radius: 0.2rem; -} - -.input-group-lg > .form-select, -.input-group-sm > .form-select { - padding-right: 3rem; -} - -.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu), -.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu), -.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { - margin-left: -1px; - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.valid-feedback { - display: none; - width: 100%; - margin-top: 0.25rem; - font-size: 0.875em; - color: #198754; -} - -.valid-tooltip { - position: absolute; - top: 100%; - z-index: 5; - display: none; - max-width: 100%; - padding: 0.25rem 0.5rem; - margin-top: 0.1rem; - font-size: 0.875rem; - color: #fff; - background-color: rgba(25, 135, 84, 0.9); - border-radius: 0.25rem; -} - -.was-validated :valid ~ .valid-feedback, -.was-validated :valid ~ .valid-tooltip, -.is-valid ~ .valid-feedback, -.is-valid ~ .valid-tooltip { - display: block; -} - -.was-validated .form-control:valid, .form-control.is-valid { - border-color: #198754; - padding-right: calc(1.5em + 0.75rem); - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); - background-repeat: no-repeat; - background-position: right calc(0.375em + 0.1875rem) center; - background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); -} -.was-validated .form-control:valid:focus, .form-control.is-valid:focus { - border-color: #198754; - box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); -} - -.was-validated textarea.form-control:valid, textarea.form-control.is-valid { - padding-right: calc(1.5em + 0.75rem); - background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); -} - -.was-validated .form-select:valid, .form-select.is-valid { - border-color: #198754; -} -.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] { - padding-right: 4.125rem; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); - background-position: right 0.75rem center, center right 2.25rem; - background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); -} -.was-validated .form-select:valid:focus, .form-select.is-valid:focus { - border-color: #198754; - box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); -} - -.was-validated .form-check-input:valid, .form-check-input.is-valid { - border-color: #198754; -} -.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked { - background-color: #198754; -} -.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus { - box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); -} -.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { - color: #198754; -} - -.form-check-inline .form-check-input ~ .valid-feedback { - margin-left: 0.5em; -} - -.was-validated .input-group .form-control:valid, .input-group .form-control.is-valid, -.was-validated .input-group .form-select:valid, -.input-group .form-select.is-valid { - z-index: 1; -} -.was-validated .input-group .form-control:valid:focus, .input-group .form-control.is-valid:focus, -.was-validated .input-group .form-select:valid:focus, -.input-group .form-select.is-valid:focus { - z-index: 3; -} - -.invalid-feedback { - display: none; - width: 100%; - margin-top: 0.25rem; - font-size: 0.875em; - color: #dc3545; -} - -.invalid-tooltip { - position: absolute; - top: 100%; - z-index: 5; - display: none; - max-width: 100%; - padding: 0.25rem 0.5rem; - margin-top: 0.1rem; - font-size: 0.875rem; - color: #fff; - background-color: rgba(220, 53, 69, 0.9); - border-radius: 0.25rem; -} - -.was-validated :invalid ~ .invalid-feedback, -.was-validated :invalid ~ .invalid-tooltip, -.is-invalid ~ .invalid-feedback, -.is-invalid ~ .invalid-tooltip { - display: block; -} - -.was-validated .form-control:invalid, .form-control.is-invalid { - border-color: #dc3545; - padding-right: calc(1.5em + 0.75rem); - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); - background-repeat: no-repeat; - background-position: right calc(0.375em + 0.1875rem) center; - background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); -} -.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { - border-color: #dc3545; - box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); -} - -.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { - padding-right: calc(1.5em + 0.75rem); - background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); -} - -.was-validated .form-select:invalid, .form-select.is-invalid { - border-color: #dc3545; -} -.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] { - padding-right: 4.125rem; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); - background-position: right 0.75rem center, center right 2.25rem; - background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); -} -.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus { - border-color: #dc3545; - box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); -} - -.was-validated .form-check-input:invalid, .form-check-input.is-invalid { - border-color: #dc3545; -} -.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked { - background-color: #dc3545; -} -.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus { - box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); -} -.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { - color: #dc3545; -} - -.form-check-inline .form-check-input ~ .invalid-feedback { - margin-left: 0.5em; -} - -.was-validated .input-group .form-control:invalid, .input-group .form-control.is-invalid, -.was-validated .input-group .form-select:invalid, -.input-group .form-select.is-invalid { - z-index: 2; -} -.was-validated .input-group .form-control:invalid:focus, .input-group .form-control.is-invalid:focus, -.was-validated .input-group .form-select:invalid:focus, -.input-group .form-select.is-invalid:focus { - z-index: 3; -} - -.btn { - display: inline-block; - font-weight: 400; - line-height: 1.5; - color: #212529; - text-align: center; - text-decoration: none; - vertical-align: middle; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - background-color: transparent; - border: 1px solid transparent; - padding: 0.375rem 0.75rem; - font-size: 1rem; - border-radius: 0.25rem; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -} -@media (prefers-reduced-motion: reduce) { - .btn { - transition: none; - } -} -.btn:hover { - color: #212529; -} -.btn-check:focus + .btn, .btn:focus { - outline: 0; - box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); -} -.btn:disabled, .btn.disabled, fieldset:disabled .btn { - pointer-events: none; - opacity: 0.65; -} - -.btn-primary { - color: #fff; - background-color: #0d6efd; - border-color: #0d6efd; -} -.btn-primary:hover { - color: #fff; - background-color: #0b5ed7; - border-color: #0a58ca; -} -.btn-check:focus + .btn-primary, .btn-primary:focus { - color: #fff; - background-color: #0b5ed7; - border-color: #0a58ca; - box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); -} -.btn-check:checked + .btn-primary, .btn-check:active + .btn-primary, .btn-primary:active, .btn-primary.active, .show > .btn-primary.dropdown-toggle { - color: #fff; - background-color: #0a58ca; - border-color: #0a53be; -} -.btn-check:checked + .btn-primary:focus, .btn-check:active + .btn-primary:focus, .btn-primary:active:focus, .btn-primary.active:focus, .show > .btn-primary.dropdown-toggle:focus { - box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); -} -.btn-primary:disabled, .btn-primary.disabled { - color: #fff; - background-color: #0d6efd; - border-color: #0d6efd; -} - -.btn-secondary { - color: #fff; - background-color: #6c757d; - border-color: #6c757d; -} -.btn-secondary:hover { - color: #fff; - background-color: #5c636a; - border-color: #565e64; -} -.btn-check:focus + .btn-secondary, .btn-secondary:focus { - color: #fff; - background-color: #5c636a; - border-color: #565e64; - box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); -} -.btn-check:checked + .btn-secondary, .btn-check:active + .btn-secondary, .btn-secondary:active, .btn-secondary.active, .show > .btn-secondary.dropdown-toggle { - color: #fff; - background-color: #565e64; - border-color: #51585e; -} -.btn-check:checked + .btn-secondary:focus, .btn-check:active + .btn-secondary:focus, .btn-secondary:active:focus, .btn-secondary.active:focus, .show > .btn-secondary.dropdown-toggle:focus { - box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); -} -.btn-secondary:disabled, .btn-secondary.disabled { - color: #fff; - background-color: #6c757d; - border-color: #6c757d; -} - -.btn-success { - color: #fff; - background-color: #198754; - border-color: #198754; -} -.btn-success:hover { - color: #fff; - background-color: #157347; - border-color: #146c43; -} -.btn-check:focus + .btn-success, .btn-success:focus { - color: #fff; - background-color: #157347; - border-color: #146c43; - box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5); -} -.btn-check:checked + .btn-success, .btn-check:active + .btn-success, .btn-success:active, .btn-success.active, .show > .btn-success.dropdown-toggle { - color: #fff; - background-color: #146c43; - border-color: #13653f; -} -.btn-check:checked + .btn-success:focus, .btn-check:active + .btn-success:focus, .btn-success:active:focus, .btn-success.active:focus, .show > .btn-success.dropdown-toggle:focus { - box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5); -} -.btn-success:disabled, .btn-success.disabled { - color: #fff; - background-color: #198754; - border-color: #198754; -} - -.btn-info { - color: #000; - background-color: #0dcaf0; - border-color: #0dcaf0; -} -.btn-info:hover { - color: #000; - background-color: #31d2f2; - border-color: #25cff2; -} -.btn-check:focus + .btn-info, .btn-info:focus { - color: #000; - background-color: #31d2f2; - border-color: #25cff2; - box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); -} -.btn-check:checked + .btn-info, .btn-check:active + .btn-info, .btn-info:active, .btn-info.active, .show > .btn-info.dropdown-toggle { - color: #000; - background-color: #3dd5f3; - border-color: #25cff2; -} -.btn-check:checked + .btn-info:focus, .btn-check:active + .btn-info:focus, .btn-info:active:focus, .btn-info.active:focus, .show > .btn-info.dropdown-toggle:focus { - box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); -} -.btn-info:disabled, .btn-info.disabled { - color: #000; - background-color: #0dcaf0; - border-color: #0dcaf0; -} - -.btn-warning { - color: #000; - background-color: #ffc107; - border-color: #ffc107; -} -.btn-warning:hover { - color: #000; - background-color: #ffca2c; - border-color: #ffc720; -} -.btn-check:focus + .btn-warning, .btn-warning:focus { - color: #000; - background-color: #ffca2c; - border-color: #ffc720; - box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); -} -.btn-check:checked + .btn-warning, .btn-check:active + .btn-warning, .btn-warning:active, .btn-warning.active, .show > .btn-warning.dropdown-toggle { - color: #000; - background-color: #ffcd39; - border-color: #ffc720; -} -.btn-check:checked + .btn-warning:focus, .btn-check:active + .btn-warning:focus, .btn-warning:active:focus, .btn-warning.active:focus, .show > .btn-warning.dropdown-toggle:focus { - box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); -} -.btn-warning:disabled, .btn-warning.disabled { - color: #000; - background-color: #ffc107; - border-color: #ffc107; -} - -.btn-danger { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; -} -.btn-danger:hover { - color: #fff; - background-color: #bb2d3b; - border-color: #b02a37; -} -.btn-check:focus + .btn-danger, .btn-danger:focus { - color: #fff; - background-color: #bb2d3b; - border-color: #b02a37; - box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5); -} -.btn-check:checked + .btn-danger, .btn-check:active + .btn-danger, .btn-danger:active, .btn-danger.active, .show > .btn-danger.dropdown-toggle { - color: #fff; - background-color: #b02a37; - border-color: #a52834; -} -.btn-check:checked + .btn-danger:focus, .btn-check:active + .btn-danger:focus, .btn-danger:active:focus, .btn-danger.active:focus, .show > .btn-danger.dropdown-toggle:focus { - box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5); -} -.btn-danger:disabled, .btn-danger.disabled { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; -} - -.btn-light { - color: #000; - background-color: #f8f9fa; - border-color: #f8f9fa; -} -.btn-light:hover { - color: #000; - background-color: #f9fafb; - border-color: #f9fafb; -} -.btn-check:focus + .btn-light, .btn-light:focus { - color: #000; - background-color: #f9fafb; - border-color: #f9fafb; - box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); -} -.btn-check:checked + .btn-light, .btn-check:active + .btn-light, .btn-light:active, .btn-light.active, .show > .btn-light.dropdown-toggle { - color: #000; - background-color: #f9fafb; - border-color: #f9fafb; -} -.btn-check:checked + .btn-light:focus, .btn-check:active + .btn-light:focus, .btn-light:active:focus, .btn-light.active:focus, .show > .btn-light.dropdown-toggle:focus { - box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); -} -.btn-light:disabled, .btn-light.disabled { - color: #000; - background-color: #f8f9fa; - border-color: #f8f9fa; -} - -.btn-dark { - color: #fff; - background-color: #212529; - border-color: #212529; -} -.btn-dark:hover { - color: #fff; - background-color: #1c1f23; - border-color: #1a1e21; -} -.btn-check:focus + .btn-dark, .btn-dark:focus { - color: #fff; - background-color: #1c1f23; - border-color: #1a1e21; - box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); -} -.btn-check:checked + .btn-dark, .btn-check:active + .btn-dark, .btn-dark:active, .btn-dark.active, .show > .btn-dark.dropdown-toggle { - color: #fff; - background-color: #1a1e21; - border-color: #191c1f; -} -.btn-check:checked + .btn-dark:focus, .btn-check:active + .btn-dark:focus, .btn-dark:active:focus, .btn-dark.active:focus, .show > .btn-dark.dropdown-toggle:focus { - box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); -} -.btn-dark:disabled, .btn-dark.disabled { - color: #fff; - background-color: #212529; - border-color: #212529; -} - -.btn-outline-primary { - color: #0d6efd; - border-color: #0d6efd; -} -.btn-outline-primary:hover { - color: #fff; - background-color: #0d6efd; - border-color: #0d6efd; -} -.btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus { - box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); -} -.btn-check:checked + .btn-outline-primary, .btn-check:active + .btn-outline-primary, .btn-outline-primary:active, .btn-outline-primary.active, .btn-outline-primary.dropdown-toggle.show { - color: #fff; - background-color: #0d6efd; - border-color: #0d6efd; -} -.btn-check:checked + .btn-outline-primary:focus, .btn-check:active + .btn-outline-primary:focus, .btn-outline-primary:active:focus, .btn-outline-primary.active:focus, .btn-outline-primary.dropdown-toggle.show:focus { - box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); -} -.btn-outline-primary:disabled, .btn-outline-primary.disabled { - color: #0d6efd; - background-color: transparent; -} - -.btn-outline-secondary { - color: #6c757d; - border-color: #6c757d; -} -.btn-outline-secondary:hover { - color: #fff; - background-color: #6c757d; - border-color: #6c757d; -} -.btn-check:focus + .btn-outline-secondary, .btn-outline-secondary:focus { - box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); -} -.btn-check:checked + .btn-outline-secondary, .btn-check:active + .btn-outline-secondary, .btn-outline-secondary:active, .btn-outline-secondary.active, .btn-outline-secondary.dropdown-toggle.show { - color: #fff; - background-color: #6c757d; - border-color: #6c757d; -} -.btn-check:checked + .btn-outline-secondary:focus, .btn-check:active + .btn-outline-secondary:focus, .btn-outline-secondary:active:focus, .btn-outline-secondary.active:focus, .btn-outline-secondary.dropdown-toggle.show:focus { - box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); -} -.btn-outline-secondary:disabled, .btn-outline-secondary.disabled { - color: #6c757d; - background-color: transparent; -} - -.btn-outline-success { - color: #198754; - border-color: #198754; -} -.btn-outline-success:hover { - color: #fff; - background-color: #198754; - border-color: #198754; -} -.btn-check:focus + .btn-outline-success, .btn-outline-success:focus { - box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5); -} -.btn-check:checked + .btn-outline-success, .btn-check:active + .btn-outline-success, .btn-outline-success:active, .btn-outline-success.active, .btn-outline-success.dropdown-toggle.show { - color: #fff; - background-color: #198754; - border-color: #198754; -} -.btn-check:checked + .btn-outline-success:focus, .btn-check:active + .btn-outline-success:focus, .btn-outline-success:active:focus, .btn-outline-success.active:focus, .btn-outline-success.dropdown-toggle.show:focus { - box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5); -} -.btn-outline-success:disabled, .btn-outline-success.disabled { - color: #198754; - background-color: transparent; -} - -.btn-outline-info { - color: #0dcaf0; - border-color: #0dcaf0; -} -.btn-outline-info:hover { - color: #000; - background-color: #0dcaf0; - border-color: #0dcaf0; -} -.btn-check:focus + .btn-outline-info, .btn-outline-info:focus { - box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); -} -.btn-check:checked + .btn-outline-info, .btn-check:active + .btn-outline-info, .btn-outline-info:active, .btn-outline-info.active, .btn-outline-info.dropdown-toggle.show { - color: #000; - background-color: #0dcaf0; - border-color: #0dcaf0; -} -.btn-check:checked + .btn-outline-info:focus, .btn-check:active + .btn-outline-info:focus, .btn-outline-info:active:focus, .btn-outline-info.active:focus, .btn-outline-info.dropdown-toggle.show:focus { - box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); -} -.btn-outline-info:disabled, .btn-outline-info.disabled { - color: #0dcaf0; - background-color: transparent; -} - -.btn-outline-warning { - color: #ffc107; - border-color: #ffc107; -} -.btn-outline-warning:hover { - color: #000; - background-color: #ffc107; - border-color: #ffc107; -} -.btn-check:focus + .btn-outline-warning, .btn-outline-warning:focus { - box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); -} -.btn-check:checked + .btn-outline-warning, .btn-check:active + .btn-outline-warning, .btn-outline-warning:active, .btn-outline-warning.active, .btn-outline-warning.dropdown-toggle.show { - color: #000; - background-color: #ffc107; - border-color: #ffc107; -} -.btn-check:checked + .btn-outline-warning:focus, .btn-check:active + .btn-outline-warning:focus, .btn-outline-warning:active:focus, .btn-outline-warning.active:focus, .btn-outline-warning.dropdown-toggle.show:focus { - box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); -} -.btn-outline-warning:disabled, .btn-outline-warning.disabled { - color: #ffc107; - background-color: transparent; -} - -.btn-outline-danger { - color: #dc3545; - border-color: #dc3545; -} -.btn-outline-danger:hover { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; -} -.btn-check:focus + .btn-outline-danger, .btn-outline-danger:focus { - box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5); -} -.btn-check:checked + .btn-outline-danger, .btn-check:active + .btn-outline-danger, .btn-outline-danger:active, .btn-outline-danger.active, .btn-outline-danger.dropdown-toggle.show { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; -} -.btn-check:checked + .btn-outline-danger:focus, .btn-check:active + .btn-outline-danger:focus, .btn-outline-danger:active:focus, .btn-outline-danger.active:focus, .btn-outline-danger.dropdown-toggle.show:focus { - box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5); -} -.btn-outline-danger:disabled, .btn-outline-danger.disabled { - color: #dc3545; - background-color: transparent; -} - -.btn-outline-light { - color: #f8f9fa; - border-color: #f8f9fa; -} -.btn-outline-light:hover { - color: #000; - background-color: #f8f9fa; - border-color: #f8f9fa; -} -.btn-check:focus + .btn-outline-light, .btn-outline-light:focus { - box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); -} -.btn-check:checked + .btn-outline-light, .btn-check:active + .btn-outline-light, .btn-outline-light:active, .btn-outline-light.active, .btn-outline-light.dropdown-toggle.show { - color: #000; - background-color: #f8f9fa; - border-color: #f8f9fa; -} -.btn-check:checked + .btn-outline-light:focus, .btn-check:active + .btn-outline-light:focus, .btn-outline-light:active:focus, .btn-outline-light.active:focus, .btn-outline-light.dropdown-toggle.show:focus { - box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); -} -.btn-outline-light:disabled, .btn-outline-light.disabled { - color: #f8f9fa; - background-color: transparent; -} - -.btn-outline-dark { - color: #212529; - border-color: #212529; -} -.btn-outline-dark:hover { - color: #fff; - background-color: #212529; - border-color: #212529; -} -.btn-check:focus + .btn-outline-dark, .btn-outline-dark:focus { - box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); -} -.btn-check:checked + .btn-outline-dark, .btn-check:active + .btn-outline-dark, .btn-outline-dark:active, .btn-outline-dark.active, .btn-outline-dark.dropdown-toggle.show { - color: #fff; - background-color: #212529; - border-color: #212529; -} -.btn-check:checked + .btn-outline-dark:focus, .btn-check:active + .btn-outline-dark:focus, .btn-outline-dark:active:focus, .btn-outline-dark.active:focus, .btn-outline-dark.dropdown-toggle.show:focus { - box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); -} -.btn-outline-dark:disabled, .btn-outline-dark.disabled { - color: #212529; - background-color: transparent; -} - -.btn-link { - font-weight: 400; - color: #0d6efd; - text-decoration: underline; -} -.btn-link:hover { - color: #0a58ca; -} -.btn-link:disabled, .btn-link.disabled { - color: #6c757d; -} - -.btn-lg, .btn-group-lg > .btn { - padding: 0.5rem 1rem; - font-size: 1.25rem; - border-radius: 0.3rem; -} - -.btn-sm, .btn-group-sm > .btn { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - border-radius: 0.2rem; -} - -.fade { - transition: opacity 0.15s linear; -} -@media (prefers-reduced-motion: reduce) { - .fade { - transition: none; - } -} -.fade:not(.show) { - opacity: 0; -} - -.collapse:not(.show) { - display: none; -} - -.collapsing { - height: 0; - overflow: hidden; - transition: height 0.35s ease; -} -@media (prefers-reduced-motion: reduce) { - .collapsing { - transition: none; - } -} - -.dropup, -.dropend, -.dropdown, -.dropstart { - position: relative; -} - -.dropdown-toggle { - white-space: nowrap; -} -.dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid; - border-right: 0.3em solid transparent; - border-bottom: 0; - border-left: 0.3em solid transparent; -} -.dropdown-toggle:empty::after { - margin-left: 0; -} - -.dropdown-menu { - position: absolute; - z-index: 1000; - display: none; - min-width: 10rem; - padding: 0.5rem 0; - margin: 0; - font-size: 1rem; - color: #212529; - text-align: left; - list-style: none; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 0.25rem; -} -.dropdown-menu[data-bs-popper] { - top: 100%; - left: 0; - margin-top: 0.125rem; -} - -.dropdown-menu-start { - --bs-position: start; -} -.dropdown-menu-start[data-bs-popper] { - right: auto; - left: 0; -} - -.dropdown-menu-end { - --bs-position: end; -} -.dropdown-menu-end[data-bs-popper] { - right: 0; - left: auto; -} - -@media (min-width: 576px) { - .dropdown-menu-sm-start { - --bs-position: start; - } - .dropdown-menu-sm-start[data-bs-popper] { - right: auto; - left: 0; - } - - .dropdown-menu-sm-end { - --bs-position: end; - } - .dropdown-menu-sm-end[data-bs-popper] { - right: 0; - left: auto; - } -} -@media (min-width: 768px) { - .dropdown-menu-md-start { - --bs-position: start; - } - .dropdown-menu-md-start[data-bs-popper] { - right: auto; - left: 0; - } - - .dropdown-menu-md-end { - --bs-position: end; - } - .dropdown-menu-md-end[data-bs-popper] { - right: 0; - left: auto; - } -} -@media (min-width: 992px) { - .dropdown-menu-lg-start { - --bs-position: start; - } - .dropdown-menu-lg-start[data-bs-popper] { - right: auto; - left: 0; - } - - .dropdown-menu-lg-end { - --bs-position: end; - } - .dropdown-menu-lg-end[data-bs-popper] { - right: 0; - left: auto; - } -} -@media (min-width: 1200px) { - .dropdown-menu-xl-start { - --bs-position: start; - } - .dropdown-menu-xl-start[data-bs-popper] { - right: auto; - left: 0; - } - - .dropdown-menu-xl-end { - --bs-position: end; - } - .dropdown-menu-xl-end[data-bs-popper] { - right: 0; - left: auto; - } -} -@media (min-width: 1400px) { - .dropdown-menu-xxl-start { - --bs-position: start; - } - .dropdown-menu-xxl-start[data-bs-popper] { - right: auto; - left: 0; - } - - .dropdown-menu-xxl-end { - --bs-position: end; - } - .dropdown-menu-xxl-end[data-bs-popper] { - right: 0; - left: auto; - } -} -.dropup .dropdown-menu[data-bs-popper] { - top: auto; - bottom: 100%; - margin-top: 0; - margin-bottom: 0.125rem; -} -.dropup .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0; - border-right: 0.3em solid transparent; - border-bottom: 0.3em solid; - border-left: 0.3em solid transparent; -} -.dropup .dropdown-toggle:empty::after { - margin-left: 0; -} - -.dropend .dropdown-menu[data-bs-popper] { - top: 0; - right: auto; - left: 100%; - margin-top: 0; - margin-left: 0.125rem; -} -.dropend .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid transparent; - border-right: 0; - border-bottom: 0.3em solid transparent; - border-left: 0.3em solid; -} -.dropend .dropdown-toggle:empty::after { - margin-left: 0; -} -.dropend .dropdown-toggle::after { - vertical-align: 0; -} - -.dropstart .dropdown-menu[data-bs-popper] { - top: 0; - right: 100%; - left: auto; - margin-top: 0; - margin-right: 0.125rem; -} -.dropstart .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; -} -.dropstart .dropdown-toggle::after { - display: none; -} -.dropstart .dropdown-toggle::before { - display: inline-block; - margin-right: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid transparent; - border-right: 0.3em solid; - border-bottom: 0.3em solid transparent; -} -.dropstart .dropdown-toggle:empty::after { - margin-left: 0; -} -.dropstart .dropdown-toggle::before { - vertical-align: 0; -} - -.dropdown-divider { - height: 0; - margin: 0.5rem 0; - overflow: hidden; - border-top: 1px solid rgba(0, 0, 0, 0.15); -} - -.dropdown-item { - display: block; - width: 100%; - padding: 0.25rem 1rem; - clear: both; - font-weight: 400; - color: #212529; - text-align: inherit; - text-decoration: none; - white-space: nowrap; - background-color: transparent; - border: 0; -} -.dropdown-item:hover, .dropdown-item:focus { - color: #1e2125; - background-color: #e9ecef; -} -.dropdown-item.active, .dropdown-item:active { - color: #fff; - text-decoration: none; - background-color: #0d6efd; -} -.dropdown-item.disabled, .dropdown-item:disabled { - color: #adb5bd; - pointer-events: none; - background-color: transparent; -} - -.dropdown-menu.show { - display: block; -} - -.dropdown-header { - display: block; - padding: 0.5rem 1rem; - margin-bottom: 0; - font-size: 0.875rem; - color: #6c757d; - white-space: nowrap; -} - -.dropdown-item-text { - display: block; - padding: 0.25rem 1rem; - color: #212529; -} - -.dropdown-menu-dark { - color: #dee2e6; - background-color: #343a40; - border-color: rgba(0, 0, 0, 0.15); -} -.dropdown-menu-dark .dropdown-item { - color: #dee2e6; -} -.dropdown-menu-dark .dropdown-item:hover, .dropdown-menu-dark .dropdown-item:focus { - color: #fff; - background-color: rgba(255, 255, 255, 0.15); -} -.dropdown-menu-dark .dropdown-item.active, .dropdown-menu-dark .dropdown-item:active { - color: #fff; - background-color: #0d6efd; -} -.dropdown-menu-dark .dropdown-item.disabled, .dropdown-menu-dark .dropdown-item:disabled { - color: #adb5bd; -} -.dropdown-menu-dark .dropdown-divider { - border-color: rgba(0, 0, 0, 0.15); -} -.dropdown-menu-dark .dropdown-item-text { - color: #dee2e6; -} -.dropdown-menu-dark .dropdown-header { - color: #adb5bd; -} - -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-flex; - vertical-align: middle; -} -.btn-group > .btn, -.btn-group-vertical > .btn { - position: relative; - flex: 1 1 auto; -} -.btn-group > .btn-check:checked + .btn, -.btn-group > .btn-check:focus + .btn, -.btn-group > .btn:hover, -.btn-group > .btn:focus, -.btn-group > .btn:active, -.btn-group > .btn.active, -.btn-group-vertical > .btn-check:checked + .btn, -.btn-group-vertical > .btn-check:focus + .btn, -.btn-group-vertical > .btn:hover, -.btn-group-vertical > .btn:focus, -.btn-group-vertical > .btn:active, -.btn-group-vertical > .btn.active { - z-index: 1; -} - -.btn-toolbar { - display: flex; - flex-wrap: wrap; - justify-content: flex-start; -} -.btn-toolbar .input-group { - width: auto; -} - -.btn-group > .btn:not(:first-child), -.btn-group > .btn-group:not(:first-child) { - margin-left: -1px; -} -.btn-group > .btn:not(:last-child):not(.dropdown-toggle), -.btn-group > .btn-group:not(:last-child) > .btn { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.btn-group > .btn:nth-child(n+3), -.btn-group > :not(.btn-check) + .btn, -.btn-group > .btn-group:not(:first-child) > .btn { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.dropdown-toggle-split { - padding-right: 0.5625rem; - padding-left: 0.5625rem; -} -.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after { - margin-left: 0; -} -.dropstart .dropdown-toggle-split::before { - margin-right: 0; -} - -.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { - padding-right: 0.375rem; - padding-left: 0.375rem; -} - -.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { - padding-right: 0.75rem; - padding-left: 0.75rem; -} - -.btn-group-vertical { - flex-direction: column; - align-items: flex-start; - justify-content: center; -} -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group { - width: 100%; -} -.btn-group-vertical > .btn:not(:first-child), -.btn-group-vertical > .btn-group:not(:first-child) { - margin-top: -1px; -} -.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), -.btn-group-vertical > .btn-group:not(:last-child) > .btn { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn ~ .btn, -.btn-group-vertical > .btn-group:not(:first-child) > .btn { - border-top-left-radius: 0; - border-top-right-radius: 0; -} - -.nav { - display: flex; - flex-wrap: wrap; - padding-left: 0; - margin-bottom: 0; - list-style: none; -} - -.nav-link { - display: block; - padding: 0.5rem 1rem; - color: #0d6efd; - text-decoration: none; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; -} -@media (prefers-reduced-motion: reduce) { - .nav-link { - transition: none; - } -} -.nav-link:hover, .nav-link:focus { - color: #0a58ca; -} -.nav-link.disabled { - color: #6c757d; - pointer-events: none; - cursor: default; -} - -.nav-tabs { - border-bottom: 1px solid #dee2e6; -} -.nav-tabs .nav-link { - margin-bottom: -1px; - background: none; - border: 1px solid transparent; - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; -} -.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { - border-color: #e9ecef #e9ecef #dee2e6; - isolation: isolate; -} -.nav-tabs .nav-link.disabled { - color: #6c757d; - background-color: transparent; - border-color: transparent; -} -.nav-tabs .nav-link.active, -.nav-tabs .nav-item.show .nav-link { - color: #495057; - background-color: #fff; - border-color: #dee2e6 #dee2e6 #fff; -} -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-left-radius: 0; - border-top-right-radius: 0; -} - -.nav-pills .nav-link { - background: none; - border: 0; - border-radius: 0.25rem; -} -.nav-pills .nav-link.active, -.nav-pills .show > .nav-link { - color: #fff; - background-color: #0d6efd; -} - -.nav-fill > .nav-link, -.nav-fill .nav-item { - flex: 1 1 auto; - text-align: center; -} - -.nav-justified > .nav-link, -.nav-justified .nav-item { - flex-basis: 0; - flex-grow: 1; - text-align: center; -} - -.nav-fill .nav-item .nav-link, -.nav-justified .nav-item .nav-link { - width: 100%; -} - -.tab-content > .tab-pane { - display: none; -} -.tab-content > .active { - display: block; -} - -.navbar { - position: relative; - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: space-between; - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} -.navbar > .container, -.navbar > .container-fluid, -.navbar > .container-sm, -.navbar > .container-md, -.navbar > .container-lg, -.navbar > .container-xl, -.navbar > .container-xxl { - display: flex; - flex-wrap: inherit; - align-items: center; - justify-content: space-between; -} -.navbar-brand { - padding-top: 0.3125rem; - padding-bottom: 0.3125rem; - margin-right: 1rem; - font-size: 1.25rem; - text-decoration: none; - white-space: nowrap; -} -.navbar-nav { - display: flex; - flex-direction: column; - padding-left: 0; - margin-bottom: 0; - list-style: none; -} -.navbar-nav .nav-link { - padding-right: 0; - padding-left: 0; -} -.navbar-nav .dropdown-menu { - position: static; -} - -.navbar-text { - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} - -.navbar-collapse { - flex-basis: 100%; - flex-grow: 1; - align-items: center; -} - -.navbar-toggler { - padding: 0.25rem 0.75rem; - font-size: 1.25rem; - line-height: 1; - background-color: transparent; - border: 1px solid transparent; - border-radius: 0.25rem; - transition: box-shadow 0.15s ease-in-out; -} -@media (prefers-reduced-motion: reduce) { - .navbar-toggler { - transition: none; - } -} -.navbar-toggler:hover { - text-decoration: none; -} -.navbar-toggler:focus { - text-decoration: none; - outline: 0; - box-shadow: 0 0 0 0.25rem; -} - -.navbar-toggler-icon { - display: inline-block; - width: 1.5em; - height: 1.5em; - vertical-align: middle; - background-repeat: no-repeat; - background-position: center; - background-size: 100%; -} - -.navbar-nav-scroll { - max-height: var(--bs-scroll-height, 75vh); - overflow-y: auto; -} - -@media (min-width: 576px) { - .navbar-expand-sm { - flex-wrap: nowrap; - justify-content: flex-start; - } - .navbar-expand-sm .navbar-nav { - flex-direction: row; - } - .navbar-expand-sm .navbar-nav .dropdown-menu { - position: absolute; - } - .navbar-expand-sm .navbar-nav .nav-link { - padding-right: 0.5rem; - padding-left: 0.5rem; - } - .navbar-expand-sm .navbar-nav-scroll { - overflow: visible; - } - .navbar-expand-sm .navbar-collapse { - display: flex !important; - flex-basis: auto; - } - .navbar-expand-sm .navbar-toggler { - display: none; - } -} -@media (min-width: 768px) { - .navbar-expand-md { - flex-wrap: nowrap; - justify-content: flex-start; - } - .navbar-expand-md .navbar-nav { - flex-direction: row; - } - .navbar-expand-md .navbar-nav .dropdown-menu { - position: absolute; - } - .navbar-expand-md .navbar-nav .nav-link { - padding-right: 0.5rem; - padding-left: 0.5rem; - } - .navbar-expand-md .navbar-nav-scroll { - overflow: visible; - } - .navbar-expand-md .navbar-collapse { - display: flex !important; - flex-basis: auto; - } - .navbar-expand-md .navbar-toggler { - display: none; - } -} -@media (min-width: 992px) { - .navbar-expand-lg { - flex-wrap: nowrap; - justify-content: flex-start; - } - .navbar-expand-lg .navbar-nav { - flex-direction: row; - } - .navbar-expand-lg .navbar-nav .dropdown-menu { - position: absolute; - } - .navbar-expand-lg .navbar-nav .nav-link { - padding-right: 0.5rem; - padding-left: 0.5rem; - } - .navbar-expand-lg .navbar-nav-scroll { - overflow: visible; - } - .navbar-expand-lg .navbar-collapse { - display: flex !important; - flex-basis: auto; - } - .navbar-expand-lg .navbar-toggler { - display: none; - } -} -@media (min-width: 1200px) { - .navbar-expand-xl { - flex-wrap: nowrap; - justify-content: flex-start; - } - .navbar-expand-xl .navbar-nav { - flex-direction: row; - } - .navbar-expand-xl .navbar-nav .dropdown-menu { - position: absolute; - } - .navbar-expand-xl .navbar-nav .nav-link { - padding-right: 0.5rem; - padding-left: 0.5rem; - } - .navbar-expand-xl .navbar-nav-scroll { - overflow: visible; - } - .navbar-expand-xl .navbar-collapse { - display: flex !important; - flex-basis: auto; - } - .navbar-expand-xl .navbar-toggler { - display: none; - } -} -@media (min-width: 1400px) { - .navbar-expand-xxl { - flex-wrap: nowrap; - justify-content: flex-start; - } - .navbar-expand-xxl .navbar-nav { - flex-direction: row; - } - .navbar-expand-xxl .navbar-nav .dropdown-menu { - position: absolute; - } - .navbar-expand-xxl .navbar-nav .nav-link { - padding-right: 0.5rem; - padding-left: 0.5rem; - } - .navbar-expand-xxl .navbar-nav-scroll { - overflow: visible; - } - .navbar-expand-xxl .navbar-collapse { - display: flex !important; - flex-basis: auto; - } - .navbar-expand-xxl .navbar-toggler { - display: none; - } -} -.navbar-expand { - flex-wrap: nowrap; - justify-content: flex-start; -} -.navbar-expand .navbar-nav { - flex-direction: row; -} -.navbar-expand .navbar-nav .dropdown-menu { - position: absolute; -} -.navbar-expand .navbar-nav .nav-link { - padding-right: 0.5rem; - padding-left: 0.5rem; -} -.navbar-expand .navbar-nav-scroll { - overflow: visible; -} -.navbar-expand .navbar-collapse { - display: flex !important; - flex-basis: auto; -} -.navbar-expand .navbar-toggler { - display: none; -} - -.navbar-light .navbar-brand { - color: rgba(0, 0, 0, 0.9); -} -.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { - color: rgba(0, 0, 0, 0.9); -} -.navbar-light .navbar-nav .nav-link { - color: rgba(0, 0, 0, 0.55); -} -.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { - color: rgba(0, 0, 0, 0.7); -} -.navbar-light .navbar-nav .nav-link.disabled { - color: rgba(0, 0, 0, 0.3); -} -.navbar-light .navbar-nav .show > .nav-link, -.navbar-light .navbar-nav .nav-link.active { - color: rgba(0, 0, 0, 0.9); -} -.navbar-light .navbar-toggler { - color: rgba(0, 0, 0, 0.55); - border-color: rgba(0, 0, 0, 0.1); -} -.navbar-light .navbar-toggler-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); -} -.navbar-light .navbar-text { - color: rgba(0, 0, 0, 0.55); -} -.navbar-light .navbar-text a, -.navbar-light .navbar-text a:hover, -.navbar-light .navbar-text a:focus { - color: rgba(0, 0, 0, 0.9); -} - -.navbar-dark .navbar-brand { - color: #fff; -} -.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { - color: #fff; -} -.navbar-dark .navbar-nav .nav-link { - color: rgba(255, 255, 255, 0.55); -} -.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { - color: rgba(255, 255, 255, 0.75); -} -.navbar-dark .navbar-nav .nav-link.disabled { - color: rgba(255, 255, 255, 0.25); -} -.navbar-dark .navbar-nav .show > .nav-link, -.navbar-dark .navbar-nav .nav-link.active { - color: #fff; -} -.navbar-dark .navbar-toggler { - color: rgba(255, 255, 255, 0.55); - border-color: rgba(255, 255, 255, 0.1); -} -.navbar-dark .navbar-toggler-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); -} -.navbar-dark .navbar-text { - color: rgba(255, 255, 255, 0.55); -} -.navbar-dark .navbar-text a, -.navbar-dark .navbar-text a:hover, -.navbar-dark .navbar-text a:focus { - color: #fff; -} - -.card { - position: relative; - display: flex; - flex-direction: column; - min-width: 0; - word-wrap: break-word; - background-color: #fff; - background-clip: border-box; - border: 1px solid rgba(0, 0, 0, 0.125); - border-radius: 0.25rem; -} -.card > hr { - margin-right: 0; - margin-left: 0; -} -.card > .list-group { - border-top: inherit; - border-bottom: inherit; -} -.card > .list-group:first-child { - border-top-width: 0; - border-top-left-radius: calc(0.25rem - 1px); - border-top-right-radius: calc(0.25rem - 1px); -} -.card > .list-group:last-child { - border-bottom-width: 0; - border-bottom-right-radius: calc(0.25rem - 1px); - border-bottom-left-radius: calc(0.25rem - 1px); -} -.card > .card-header + .list-group, -.card > .list-group + .card-footer { - border-top: 0; -} - -.card-body { - flex: 1 1 auto; - padding: 1rem 1rem; -} - -.card-title { - margin-bottom: 0.5rem; -} - -.card-subtitle { - margin-top: -0.25rem; - margin-bottom: 0; -} - -.card-text:last-child { - margin-bottom: 0; -} - -.card-link:hover { - text-decoration: none; -} -.card-link + .card-link { - margin-left: 1rem; -} - -.card-header { - padding: 0.5rem 1rem; - margin-bottom: 0; - background-color: rgba(0, 0, 0, 0.03); - border-bottom: 1px solid rgba(0, 0, 0, 0.125); -} -.card-header:first-child { - border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; -} - -.card-footer { - padding: 0.5rem 1rem; - background-color: rgba(0, 0, 0, 0.03); - border-top: 1px solid rgba(0, 0, 0, 0.125); -} -.card-footer:last-child { - border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); -} - -.card-header-tabs { - margin-right: -0.5rem; - margin-bottom: -0.5rem; - margin-left: -0.5rem; - border-bottom: 0; -} - -.card-header-pills { - margin-right: -0.5rem; - margin-left: -0.5rem; -} - -.card-img-overlay { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - padding: 1rem; - border-radius: calc(0.25rem - 1px); -} - -.card-img, -.card-img-top, -.card-img-bottom { - width: 100%; -} - -.card-img, -.card-img-top { - border-top-left-radius: calc(0.25rem - 1px); - border-top-right-radius: calc(0.25rem - 1px); -} - -.card-img, -.card-img-bottom { - border-bottom-right-radius: calc(0.25rem - 1px); - border-bottom-left-radius: calc(0.25rem - 1px); -} - -.card-group > .card { - margin-bottom: 0.75rem; -} -@media (min-width: 576px) { - .card-group { - display: flex; - flex-flow: row wrap; - } - .card-group > .card { - flex: 1 0 0%; - margin-bottom: 0; - } - .card-group > .card + .card { - margin-left: 0; - border-left: 0; - } - .card-group > .card:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - } - .card-group > .card:not(:last-child) .card-img-top, -.card-group > .card:not(:last-child) .card-header { - border-top-right-radius: 0; - } - .card-group > .card:not(:last-child) .card-img-bottom, -.card-group > .card:not(:last-child) .card-footer { - border-bottom-right-radius: 0; - } - .card-group > .card:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - } - .card-group > .card:not(:first-child) .card-img-top, -.card-group > .card:not(:first-child) .card-header { - border-top-left-radius: 0; - } - .card-group > .card:not(:first-child) .card-img-bottom, -.card-group > .card:not(:first-child) .card-footer { - border-bottom-left-radius: 0; - } -} - -.accordion-button { - position: relative; - display: flex; - align-items: center; - width: 100%; - padding: 1rem 1.25rem; - font-size: 1rem; - color: #212529; - text-align: left; - background-color: #fff; - border: 0; - border-radius: 0; - overflow-anchor: none; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; -} -@media (prefers-reduced-motion: reduce) { - .accordion-button { - transition: none; - } -} -.accordion-button:not(.collapsed) { - color: #0c63e4; - background-color: #e7f1ff; - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.125); -} -.accordion-button:not(.collapsed)::after { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); - transform: rotate(-180deg); -} -.accordion-button::after { - flex-shrink: 0; - width: 1.25rem; - height: 1.25rem; - margin-left: auto; - content: ""; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); - background-repeat: no-repeat; - background-size: 1.25rem; - transition: transform 0.2s ease-in-out; -} -@media (prefers-reduced-motion: reduce) { - .accordion-button::after { - transition: none; - } -} -.accordion-button:hover { - z-index: 2; -} -.accordion-button:focus { - z-index: 3; - border-color: #86b7fe; - outline: 0; - box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); -} - -.accordion-header { - margin-bottom: 0; -} - -.accordion-item { - background-color: #fff; - border: 1px solid rgba(0, 0, 0, 0.125); -} -.accordion-item:first-of-type { - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; -} -.accordion-item:first-of-type .accordion-button { - border-top-left-radius: calc(0.25rem - 1px); - border-top-right-radius: calc(0.25rem - 1px); -} -.accordion-item:not(:first-of-type) { - border-top: 0; -} -.accordion-item:last-of-type { - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; -} -.accordion-item:last-of-type .accordion-button.collapsed { - border-bottom-right-radius: calc(0.25rem - 1px); - border-bottom-left-radius: calc(0.25rem - 1px); -} -.accordion-item:last-of-type .accordion-collapse { - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; -} - -.accordion-body { - padding: 1rem 1.25rem; -} - -.accordion-flush .accordion-collapse { - border-width: 0; -} -.accordion-flush .accordion-item { - border-right: 0; - border-left: 0; - border-radius: 0; -} -.accordion-flush .accordion-item:first-child { - border-top: 0; -} -.accordion-flush .accordion-item:last-child { - border-bottom: 0; -} -.accordion-flush .accordion-item .accordion-button { - border-radius: 0; -} - -.breadcrumb { - display: flex; - flex-wrap: wrap; - padding: 0 0; - margin-bottom: 1rem; - list-style: none; -} - -.breadcrumb-item + .breadcrumb-item { - padding-left: 0.5rem; -} -.breadcrumb-item + .breadcrumb-item::before { - float: left; - padding-right: 0.5rem; - color: #6c757d; - content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; -} -.breadcrumb-item.active { - color: #6c757d; -} - -.pagination { - display: flex; - padding-left: 0; - list-style: none; -} - -.page-link { - position: relative; - display: block; - color: #0d6efd; - text-decoration: none; - background-color: #fff; - border: 1px solid #dee2e6; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -} -@media (prefers-reduced-motion: reduce) { - .page-link { - transition: none; - } -} -.page-link:hover { - z-index: 2; - color: #0a58ca; - background-color: #e9ecef; - border-color: #dee2e6; -} -.page-link:focus { - z-index: 3; - color: #0a58ca; - background-color: #e9ecef; - outline: 0; - box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); -} - -.page-item:not(:first-child) .page-link { - margin-left: -1px; -} -.page-item.active .page-link { - z-index: 3; - color: #fff; - background-color: #0d6efd; - border-color: #0d6efd; -} -.page-item.disabled .page-link { - color: #6c757d; - pointer-events: none; - background-color: #fff; - border-color: #dee2e6; -} - -.page-link { - padding: 0.375rem 0.75rem; -} - -.page-item:first-child .page-link { - border-top-left-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; -} -.page-item:last-child .page-link { - border-top-right-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; -} - -.pagination-lg .page-link { - padding: 0.75rem 1.5rem; - font-size: 1.25rem; -} -.pagination-lg .page-item:first-child .page-link { - border-top-left-radius: 0.3rem; - border-bottom-left-radius: 0.3rem; -} -.pagination-lg .page-item:last-child .page-link { - border-top-right-radius: 0.3rem; - border-bottom-right-radius: 0.3rem; -} - -.pagination-sm .page-link { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; -} -.pagination-sm .page-item:first-child .page-link { - border-top-left-radius: 0.2rem; - border-bottom-left-radius: 0.2rem; -} -.pagination-sm .page-item:last-child .page-link { - border-top-right-radius: 0.2rem; - border-bottom-right-radius: 0.2rem; -} - -.badge { - display: inline-block; - padding: 0.35em 0.65em; - font-size: 0.75em; - font-weight: 700; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: 0.25rem; -} -.badge:empty { - display: none; -} - -.btn .badge { - position: relative; - top: -1px; -} - -.alert { - position: relative; - padding: 1rem 1rem; - margin-bottom: 1rem; - border: 1px solid transparent; - border-radius: 0.25rem; -} - -.alert-heading { - color: inherit; -} - -.alert-link { - font-weight: 700; -} - -.alert-dismissible { - padding-right: 3rem; -} -.alert-dismissible .btn-close { - position: absolute; - top: 0; - right: 0; - z-index: 2; - padding: 1.25rem 1rem; -} - -.alert-primary { - color: #084298; - background-color: #cfe2ff; - border-color: #b6d4fe; -} -.alert-primary .alert-link { - color: #06357a; -} - -.alert-secondary { - color: #41464b; - background-color: #e2e3e5; - border-color: #d3d6d8; -} -.alert-secondary .alert-link { - color: #34383c; -} - -.alert-success { - color: #0f5132; - background-color: #d1e7dd; - border-color: #badbcc; -} -.alert-success .alert-link { - color: #0c4128; -} - -.alert-info { - color: #055160; - background-color: #cff4fc; - border-color: #b6effb; -} -.alert-info .alert-link { - color: #04414d; -} - -.alert-warning { - color: #664d03; - background-color: #fff3cd; - border-color: #ffecb5; -} -.alert-warning .alert-link { - color: #523e02; -} - -.alert-danger { - color: #842029; - background-color: #f8d7da; - border-color: #f5c2c7; -} -.alert-danger .alert-link { - color: #6a1a21; -} - -.alert-light { - color: #636464; - background-color: #fefefe; - border-color: #fdfdfe; -} -.alert-light .alert-link { - color: #4f5050; -} - -.alert-dark { - color: #141619; - background-color: #d3d3d4; - border-color: #bcbebf; -} -.alert-dark .alert-link { - color: #101214; -} - -@-webkit-keyframes progress-bar-stripes { - 0% { - background-position-x: 1rem; - } -} - -@keyframes progress-bar-stripes { - 0% { - background-position-x: 1rem; - } -} -.progress { - display: flex; - height: 1rem; - overflow: hidden; - font-size: 0.75rem; - background-color: #e9ecef; - border-radius: 0.25rem; -} - -.progress-bar { - display: flex; - flex-direction: column; - justify-content: center; - overflow: hidden; - color: #fff; - text-align: center; - white-space: nowrap; - background-color: #0d6efd; - transition: width 0.6s ease; -} -@media (prefers-reduced-motion: reduce) { - .progress-bar { - transition: none; - } -} - -.progress-bar-striped { - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size: 1rem 1rem; -} - -.progress-bar-animated { - -webkit-animation: 1s linear infinite progress-bar-stripes; - animation: 1s linear infinite progress-bar-stripes; -} -@media (prefers-reduced-motion: reduce) { - .progress-bar-animated { - -webkit-animation: none; - animation: none; - } -} - -.list-group { - display: flex; - flex-direction: column; - padding-left: 0; - margin-bottom: 0; - border-radius: 0.25rem; -} - -.list-group-numbered { - list-style-type: none; - counter-reset: section; -} -.list-group-numbered > li::before { - content: counters(section, ".") ". "; - counter-increment: section; -} - -.list-group-item-action { - width: 100%; - color: #495057; - text-align: inherit; -} -.list-group-item-action:hover, .list-group-item-action:focus { - z-index: 1; - color: #495057; - text-decoration: none; - background-color: #f8f9fa; -} -.list-group-item-action:active { - color: #212529; - background-color: #e9ecef; -} - -.list-group-item { - position: relative; - display: block; - padding: 0.5rem 1rem; - color: #212529; - text-decoration: none; - background-color: #fff; - border: 1px solid rgba(0, 0, 0, 0.125); -} -.list-group-item:first-child { - border-top-left-radius: inherit; - border-top-right-radius: inherit; -} -.list-group-item:last-child { - border-bottom-right-radius: inherit; - border-bottom-left-radius: inherit; -} -.list-group-item.disabled, .list-group-item:disabled { - color: #6c757d; - pointer-events: none; - background-color: #fff; -} -.list-group-item.active { - z-index: 2; - color: #fff; - background-color: #0d6efd; - border-color: #0d6efd; -} -.list-group-item + .list-group-item { - border-top-width: 0; -} -.list-group-item + .list-group-item.active { - margin-top: -1px; - border-top-width: 1px; -} - -.list-group-horizontal { - flex-direction: row; -} -.list-group-horizontal > .list-group-item:first-child { - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; -} -.list-group-horizontal > .list-group-item:last-child { - border-top-right-radius: 0.25rem; - border-bottom-left-radius: 0; -} -.list-group-horizontal > .list-group-item.active { - margin-top: 0; -} -.list-group-horizontal > .list-group-item + .list-group-item { - border-top-width: 1px; - border-left-width: 0; -} -.list-group-horizontal > .list-group-item + .list-group-item.active { - margin-left: -1px; - border-left-width: 1px; -} - -@media (min-width: 576px) { - .list-group-horizontal-sm { - flex-direction: row; - } - .list-group-horizontal-sm > .list-group-item:first-child { - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; - } - .list-group-horizontal-sm > .list-group-item:last-child { - border-top-right-radius: 0.25rem; - border-bottom-left-radius: 0; - } - .list-group-horizontal-sm > .list-group-item.active { - margin-top: 0; - } - .list-group-horizontal-sm > .list-group-item + .list-group-item { - border-top-width: 1px; - border-left-width: 0; - } - .list-group-horizontal-sm > .list-group-item + .list-group-item.active { - margin-left: -1px; - border-left-width: 1px; - } -} -@media (min-width: 768px) { - .list-group-horizontal-md { - flex-direction: row; - } - .list-group-horizontal-md > .list-group-item:first-child { - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; - } - .list-group-horizontal-md > .list-group-item:last-child { - border-top-right-radius: 0.25rem; - border-bottom-left-radius: 0; - } - .list-group-horizontal-md > .list-group-item.active { - margin-top: 0; - } - .list-group-horizontal-md > .list-group-item + .list-group-item { - border-top-width: 1px; - border-left-width: 0; - } - .list-group-horizontal-md > .list-group-item + .list-group-item.active { - margin-left: -1px; - border-left-width: 1px; - } -} -@media (min-width: 992px) { - .list-group-horizontal-lg { - flex-direction: row; - } - .list-group-horizontal-lg > .list-group-item:first-child { - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; - } - .list-group-horizontal-lg > .list-group-item:last-child { - border-top-right-radius: 0.25rem; - border-bottom-left-radius: 0; - } - .list-group-horizontal-lg > .list-group-item.active { - margin-top: 0; - } - .list-group-horizontal-lg > .list-group-item + .list-group-item { - border-top-width: 1px; - border-left-width: 0; - } - .list-group-horizontal-lg > .list-group-item + .list-group-item.active { - margin-left: -1px; - border-left-width: 1px; - } -} -@media (min-width: 1200px) { - .list-group-horizontal-xl { - flex-direction: row; - } - .list-group-horizontal-xl > .list-group-item:first-child { - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; - } - .list-group-horizontal-xl > .list-group-item:last-child { - border-top-right-radius: 0.25rem; - border-bottom-left-radius: 0; - } - .list-group-horizontal-xl > .list-group-item.active { - margin-top: 0; - } - .list-group-horizontal-xl > .list-group-item + .list-group-item { - border-top-width: 1px; - border-left-width: 0; - } - .list-group-horizontal-xl > .list-group-item + .list-group-item.active { - margin-left: -1px; - border-left-width: 1px; - } -} -@media (min-width: 1400px) { - .list-group-horizontal-xxl { - flex-direction: row; - } - .list-group-horizontal-xxl > .list-group-item:first-child { - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; - } - .list-group-horizontal-xxl > .list-group-item:last-child { - border-top-right-radius: 0.25rem; - border-bottom-left-radius: 0; - } - .list-group-horizontal-xxl > .list-group-item.active { - margin-top: 0; - } - .list-group-horizontal-xxl > .list-group-item + .list-group-item { - border-top-width: 1px; - border-left-width: 0; - } - .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { - margin-left: -1px; - border-left-width: 1px; - } -} -.list-group-flush { - border-radius: 0; -} -.list-group-flush > .list-group-item { - border-width: 0 0 1px; -} -.list-group-flush > .list-group-item:last-child { - border-bottom-width: 0; -} - -.list-group-item-primary { - color: #084298; - background-color: #cfe2ff; -} -.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { - color: #084298; - background-color: #bacbe6; -} -.list-group-item-primary.list-group-item-action.active { - color: #fff; - background-color: #084298; - border-color: #084298; -} - -.list-group-item-secondary { - color: #41464b; - background-color: #e2e3e5; -} -.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { - color: #41464b; - background-color: #cbccce; -} -.list-group-item-secondary.list-group-item-action.active { - color: #fff; - background-color: #41464b; - border-color: #41464b; -} - -.list-group-item-success { - color: #0f5132; - background-color: #d1e7dd; -} -.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { - color: #0f5132; - background-color: #bcd0c7; -} -.list-group-item-success.list-group-item-action.active { - color: #fff; - background-color: #0f5132; - border-color: #0f5132; -} - -.list-group-item-info { - color: #055160; - background-color: #cff4fc; -} -.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { - color: #055160; - background-color: #badce3; -} -.list-group-item-info.list-group-item-action.active { - color: #fff; - background-color: #055160; - border-color: #055160; -} - -.list-group-item-warning { - color: #664d03; - background-color: #fff3cd; -} -.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { - color: #664d03; - background-color: #e6dbb9; -} -.list-group-item-warning.list-group-item-action.active { - color: #fff; - background-color: #664d03; - border-color: #664d03; -} - -.list-group-item-danger { - color: #842029; - background-color: #f8d7da; -} -.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { - color: #842029; - background-color: #dfc2c4; -} -.list-group-item-danger.list-group-item-action.active { - color: #fff; - background-color: #842029; - border-color: #842029; -} - -.list-group-item-light { - color: #636464; - background-color: #fefefe; -} -.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { - color: #636464; - background-color: #e5e5e5; -} -.list-group-item-light.list-group-item-action.active { - color: #fff; - background-color: #636464; - border-color: #636464; -} - -.list-group-item-dark { - color: #141619; - background-color: #d3d3d4; -} -.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { - color: #141619; - background-color: #bebebf; -} -.list-group-item-dark.list-group-item-action.active { - color: #fff; - background-color: #141619; - border-color: #141619; -} - -.btn-close { - box-sizing: content-box; - width: 1em; - height: 1em; - padding: 0.25em 0.25em; - color: #000; - background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat; - border: 0; - border-radius: 0.25rem; - opacity: 0.5; -} -.btn-close:hover { - color: #000; - text-decoration: none; - opacity: 0.75; -} -.btn-close:focus { - outline: 0; - box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); - opacity: 1; -} -.btn-close:disabled, .btn-close.disabled { - pointer-events: none; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - opacity: 0.25; -} - -.btn-close-white { - filter: invert(1) grayscale(100%) brightness(200%); -} - -.toast { - width: 350px; - max-width: 100%; - font-size: 0.875rem; - pointer-events: auto; - background-color: rgba(255, 255, 255, 0.85); - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.1); - box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); - border-radius: 0.25rem; -} -.toast:not(.showing):not(.show) { - opacity: 0; -} -.toast.hide { - display: none; -} - -.toast-container { - width: -webkit-max-content; - width: -moz-max-content; - width: max-content; - max-width: 100%; - pointer-events: none; -} -.toast-container > :not(:last-child) { - margin-bottom: 0.75rem; -} - -.toast-header { - display: flex; - align-items: center; - padding: 0.5rem 0.75rem; - color: #6c757d; - background-color: rgba(255, 255, 255, 0.85); - background-clip: padding-box; - border-bottom: 1px solid rgba(0, 0, 0, 0.05); - border-top-left-radius: calc(0.25rem - 1px); - border-top-right-radius: calc(0.25rem - 1px); -} -.toast-header .btn-close { - margin-right: -0.375rem; - margin-left: 0.75rem; -} - -.toast-body { - padding: 0.75rem; - word-wrap: break-word; -} - -.modal { - position: fixed; - top: 0; - left: 0; - z-index: 1060; - display: none; - width: 100%; - height: 100%; - overflow-x: hidden; - overflow-y: auto; - outline: 0; -} - -.modal-dialog { - position: relative; - width: auto; - margin: 0.5rem; - pointer-events: none; -} -.modal.fade .modal-dialog { - transition: transform 0.3s ease-out; - transform: translate(0, -50px); -} -@media (prefers-reduced-motion: reduce) { - .modal.fade .modal-dialog { - transition: none; - } -} -.modal.show .modal-dialog { - transform: none; -} -.modal.modal-static .modal-dialog { - transform: scale(1.02); -} - -.modal-dialog-scrollable { - height: calc(100% - 1rem); -} -.modal-dialog-scrollable .modal-content { - max-height: 100%; - overflow: hidden; -} -.modal-dialog-scrollable .modal-body { - overflow-y: auto; -} - -.modal-dialog-centered { - display: flex; - align-items: center; - min-height: calc(100% - 1rem); -} - -.modal-content { - position: relative; - display: flex; - flex-direction: column; - width: 100%; - pointer-events: auto; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 0.3rem; - outline: 0; -} - -.modal-backdrop { - position: fixed; - top: 0; - left: 0; - z-index: 1040; - width: 100vw; - height: 100vh; - background-color: #000; -} -.modal-backdrop.fade { - opacity: 0; -} -.modal-backdrop.show { - opacity: 0.5; -} - -.modal-header { - display: flex; - flex-shrink: 0; - align-items: center; - justify-content: space-between; - padding: 1rem 1rem; - border-bottom: 1px solid #dee2e6; - border-top-left-radius: calc(0.3rem - 1px); - border-top-right-radius: calc(0.3rem - 1px); -} -.modal-header .btn-close { - padding: 0.5rem 0.5rem; - margin: -0.5rem -0.5rem -0.5rem auto; -} - -.modal-title { - margin-bottom: 0; - line-height: 1.5; -} - -.modal-body { - position: relative; - flex: 1 1 auto; - padding: 1rem; -} - -.modal-footer { - display: flex; - flex-wrap: wrap; - flex-shrink: 0; - align-items: center; - justify-content: flex-end; - padding: 0.75rem; - border-top: 1px solid #dee2e6; - border-bottom-right-radius: calc(0.3rem - 1px); - border-bottom-left-radius: calc(0.3rem - 1px); -} -.modal-footer > * { - margin: 0.25rem; -} - -@media (min-width: 576px) { - .modal-dialog { - max-width: 500px; - margin: 1.75rem auto; - } - - .modal-dialog-scrollable { - height: calc(100% - 3.5rem); - } - - .modal-dialog-centered { - min-height: calc(100% - 3.5rem); - } - - .modal-sm { - max-width: 300px; - } -} -@media (min-width: 992px) { - .modal-lg, -.modal-xl { - max-width: 800px; - } -} -@media (min-width: 1200px) { - .modal-xl { - max-width: 1140px; - } -} -.modal-fullscreen { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; -} -.modal-fullscreen .modal-content { - height: 100%; - border: 0; - border-radius: 0; -} -.modal-fullscreen .modal-header { - border-radius: 0; -} -.modal-fullscreen .modal-body { - overflow-y: auto; -} -.modal-fullscreen .modal-footer { - border-radius: 0; -} - -@media (max-width: 575.98px) { - .modal-fullscreen-sm-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; - } - .modal-fullscreen-sm-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; - } - .modal-fullscreen-sm-down .modal-header { - border-radius: 0; - } - .modal-fullscreen-sm-down .modal-body { - overflow-y: auto; - } - .modal-fullscreen-sm-down .modal-footer { - border-radius: 0; - } -} -@media (max-width: 767.98px) { - .modal-fullscreen-md-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; - } - .modal-fullscreen-md-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; - } - .modal-fullscreen-md-down .modal-header { - border-radius: 0; - } - .modal-fullscreen-md-down .modal-body { - overflow-y: auto; - } - .modal-fullscreen-md-down .modal-footer { - border-radius: 0; - } -} -@media (max-width: 991.98px) { - .modal-fullscreen-lg-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; - } - .modal-fullscreen-lg-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; - } - .modal-fullscreen-lg-down .modal-header { - border-radius: 0; - } - .modal-fullscreen-lg-down .modal-body { - overflow-y: auto; - } - .modal-fullscreen-lg-down .modal-footer { - border-radius: 0; - } -} -@media (max-width: 1199.98px) { - .modal-fullscreen-xl-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; - } - .modal-fullscreen-xl-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; - } - .modal-fullscreen-xl-down .modal-header { - border-radius: 0; - } - .modal-fullscreen-xl-down .modal-body { - overflow-y: auto; - } - .modal-fullscreen-xl-down .modal-footer { - border-radius: 0; - } -} -@media (max-width: 1399.98px) { - .modal-fullscreen-xxl-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; - } - .modal-fullscreen-xxl-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; - } - .modal-fullscreen-xxl-down .modal-header { - border-radius: 0; - } - .modal-fullscreen-xxl-down .modal-body { - overflow-y: auto; - } - .modal-fullscreen-xxl-down .modal-footer { - border-radius: 0; - } -} -.tooltip { - position: absolute; - z-index: 1080; - display: block; - margin: 0; - font-family: var(--bs-font-sans-serif); - font-style: normal; - font-weight: 400; - line-height: 1.5; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - white-space: normal; - line-break: auto; - font-size: 0.875rem; - word-wrap: break-word; - opacity: 0; -} -.tooltip.show { - opacity: 0.9; -} -.tooltip .tooltip-arrow { - position: absolute; - display: block; - width: 0.8rem; - height: 0.4rem; -} -.tooltip .tooltip-arrow::before { - position: absolute; - content: ""; - border-color: transparent; - border-style: solid; -} - -.bs-tooltip-top, .bs-tooltip-auto[data-popper-placement^=top] { - padding: 0.4rem 0; -} -.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { - bottom: 0; -} -.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { - top: -1px; - border-width: 0.4rem 0.4rem 0; - border-top-color: #000; -} - -.bs-tooltip-end, .bs-tooltip-auto[data-popper-placement^=right] { - padding: 0 0.4rem; -} -.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { - left: 0; - width: 0.4rem; - height: 0.8rem; -} -.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { - right: -1px; - border-width: 0.4rem 0.4rem 0.4rem 0; - border-right-color: #000; -} - -.bs-tooltip-bottom, .bs-tooltip-auto[data-popper-placement^=bottom] { - padding: 0.4rem 0; -} -.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { - top: 0; -} -.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { - bottom: -1px; - border-width: 0 0.4rem 0.4rem; - border-bottom-color: #000; -} - -.bs-tooltip-start, .bs-tooltip-auto[data-popper-placement^=left] { - padding: 0 0.4rem; -} -.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { - right: 0; - width: 0.4rem; - height: 0.8rem; -} -.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { - left: -1px; - border-width: 0.4rem 0 0.4rem 0.4rem; - border-left-color: #000; -} - -.tooltip-inner { - max-width: 200px; - padding: 0.25rem 0.5rem; - color: #fff; - text-align: center; - background-color: #000; - border-radius: 0.25rem; -} - -.popover { - position: absolute; - top: 0; - left: 0 /* rtl:ignore */; - z-index: 1070; - display: block; - max-width: 276px; - font-family: var(--bs-font-sans-serif); - font-style: normal; - font-weight: 400; - line-height: 1.5; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - white-space: normal; - line-break: auto; - font-size: 0.875rem; - word-wrap: break-word; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 0.3rem; -} -.popover .popover-arrow { - position: absolute; - display: block; - width: 1rem; - height: 0.5rem; -} -.popover .popover-arrow::before, .popover .popover-arrow::after { - position: absolute; - display: block; - content: ""; - border-color: transparent; - border-style: solid; -} - -.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { - bottom: calc(-0.5rem - 1px); -} -.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { - bottom: 0; - border-width: 0.5rem 0.5rem 0; - border-top-color: rgba(0, 0, 0, 0.25); -} -.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { - bottom: 1px; - border-width: 0.5rem 0.5rem 0; - border-top-color: #fff; -} - -.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow { - left: calc(-0.5rem - 1px); - width: 0.5rem; - height: 1rem; -} -.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { - left: 0; - border-width: 0.5rem 0.5rem 0.5rem 0; - border-right-color: rgba(0, 0, 0, 0.25); -} -.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { - left: 1px; - border-width: 0.5rem 0.5rem 0.5rem 0; - border-right-color: #fff; -} - -.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { - top: calc(-0.5rem - 1px); -} -.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { - top: 0; - border-width: 0 0.5rem 0.5rem 0.5rem; - border-bottom-color: rgba(0, 0, 0, 0.25); -} -.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { - top: 1px; - border-width: 0 0.5rem 0.5rem 0.5rem; - border-bottom-color: #fff; -} -.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { - position: absolute; - top: 0; - left: 50%; - display: block; - width: 1rem; - margin-left: -0.5rem; - content: ""; - border-bottom: 1px solid #f0f0f0; -} - -.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow { - right: calc(-0.5rem - 1px); - width: 0.5rem; - height: 1rem; -} -.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { - right: 0; - border-width: 0.5rem 0 0.5rem 0.5rem; - border-left-color: rgba(0, 0, 0, 0.25); -} -.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { - right: 1px; - border-width: 0.5rem 0 0.5rem 0.5rem; - border-left-color: #fff; -} - -.popover-header { - padding: 0.5rem 1rem; - margin-bottom: 0; - font-size: 1rem; - background-color: #f0f0f0; - border-bottom: 1px solid rgba(0, 0, 0, 0.2); - border-top-left-radius: calc(0.3rem - 1px); - border-top-right-radius: calc(0.3rem - 1px); -} -.popover-header:empty { - display: none; -} - -.popover-body { - padding: 1rem 1rem; - color: #212529; -} - -.carousel { - position: relative; -} - -.carousel.pointer-event { - touch-action: pan-y; -} - -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; -} -.carousel-inner::after { - display: block; - clear: both; - content: ""; -} - -.carousel-item { - position: relative; - display: none; - float: left; - width: 100%; - margin-right: -100%; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - transition: transform 0.6s ease-in-out; -} -@media (prefers-reduced-motion: reduce) { - .carousel-item { - transition: none; - } -} - -.carousel-item.active, -.carousel-item-next, -.carousel-item-prev { - display: block; -} - -/* rtl:begin:ignore */ -.carousel-item-next:not(.carousel-item-start), -.active.carousel-item-end { - transform: translateX(100%); -} - -.carousel-item-prev:not(.carousel-item-end), -.active.carousel-item-start { - transform: translateX(-100%); -} - -/* rtl:end:ignore */ -.carousel-fade .carousel-item { - opacity: 0; - transition-property: opacity; - transform: none; -} -.carousel-fade .carousel-item.active, -.carousel-fade .carousel-item-next.carousel-item-start, -.carousel-fade .carousel-item-prev.carousel-item-end { - z-index: 1; - opacity: 1; -} -.carousel-fade .active.carousel-item-start, -.carousel-fade .active.carousel-item-end { - z-index: 0; - opacity: 0; - transition: opacity 0s 0.6s; -} -@media (prefers-reduced-motion: reduce) { - .carousel-fade .active.carousel-item-start, -.carousel-fade .active.carousel-item-end { - transition: none; - } -} - -.carousel-control-prev, -.carousel-control-next { - position: absolute; - top: 0; - bottom: 0; - z-index: 1; - display: flex; - align-items: center; - justify-content: center; - width: 15%; - padding: 0; - color: #fff; - text-align: center; - background: none; - border: 0; - opacity: 0.5; - transition: opacity 0.15s ease; -} -@media (prefers-reduced-motion: reduce) { - .carousel-control-prev, -.carousel-control-next { - transition: none; - } -} -.carousel-control-prev:hover, .carousel-control-prev:focus, -.carousel-control-next:hover, -.carousel-control-next:focus { - color: #fff; - text-decoration: none; - outline: 0; - opacity: 0.9; -} - -.carousel-control-prev { - left: 0; -} - -.carousel-control-next { - right: 0; -} - -.carousel-control-prev-icon, -.carousel-control-next-icon { - display: inline-block; - width: 2rem; - height: 2rem; - background-repeat: no-repeat; - background-position: 50%; - background-size: 100% 100%; -} - -/* rtl:options: { - "autoRename": true, - "stringMap":[ { - "name" : "prev-next", - "search" : "prev", - "replace" : "next" - } ] -} */ -.carousel-control-prev-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e"); -} - -.carousel-control-next-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); -} - -.carousel-indicators { - position: absolute; - right: 0; - bottom: 0; - left: 0; - z-index: 2; - display: flex; - justify-content: center; - padding: 0; - margin-right: 15%; - margin-bottom: 1rem; - margin-left: 15%; - list-style: none; -} -.carousel-indicators [data-bs-target] { - box-sizing: content-box; - flex: 0 1 auto; - width: 30px; - height: 3px; - padding: 0; - margin-right: 3px; - margin-left: 3px; - text-indent: -999px; - cursor: pointer; - background-color: #fff; - background-clip: padding-box; - border: 0; - border-top: 10px solid transparent; - border-bottom: 10px solid transparent; - opacity: 0.5; - transition: opacity 0.6s ease; -} -@media (prefers-reduced-motion: reduce) { - .carousel-indicators [data-bs-target] { - transition: none; - } -} -.carousel-indicators .active { - opacity: 1; -} - -.carousel-caption { - position: absolute; - right: 15%; - bottom: 1.25rem; - left: 15%; - padding-top: 1.25rem; - padding-bottom: 1.25rem; - color: #fff; - text-align: center; -} - -.carousel-dark .carousel-control-prev-icon, -.carousel-dark .carousel-control-next-icon { - filter: invert(1) grayscale(100); -} -.carousel-dark .carousel-indicators [data-bs-target] { - background-color: #000; -} -.carousel-dark .carousel-caption { - color: #000; -} - -@-webkit-keyframes spinner-border { - to { - transform: rotate(360deg) /* rtl:ignore */; - } -} - -@keyframes spinner-border { - to { - transform: rotate(360deg) /* rtl:ignore */; - } -} -.spinner-border { - display: inline-block; - width: 2rem; - height: 2rem; - vertical-align: -0.125em; - border: 0.25em solid currentColor; - border-right-color: transparent; - border-radius: 50%; - -webkit-animation: 0.75s linear infinite spinner-border; - animation: 0.75s linear infinite spinner-border; -} - -.spinner-border-sm { - width: 1rem; - height: 1rem; - border-width: 0.2em; -} - -@-webkit-keyframes spinner-grow { - 0% { - transform: scale(0); - } - 50% { - opacity: 1; - transform: none; - } -} - -@keyframes spinner-grow { - 0% { - transform: scale(0); - } - 50% { - opacity: 1; - transform: none; - } -} -.spinner-grow { - display: inline-block; - width: 2rem; - height: 2rem; - vertical-align: -0.125em; - background-color: currentColor; - border-radius: 50%; - opacity: 0; - -webkit-animation: 0.75s linear infinite spinner-grow; - animation: 0.75s linear infinite spinner-grow; -} - -.spinner-grow-sm { - width: 1rem; - height: 1rem; -} - -@media (prefers-reduced-motion: reduce) { - .spinner-border, -.spinner-grow { - -webkit-animation-duration: 1.5s; - animation-duration: 1.5s; - } -} -.offcanvas { - position: fixed; - bottom: 0; - z-index: 1050; - display: flex; - flex-direction: column; - max-width: 100%; - visibility: hidden; - background-color: #fff; - background-clip: padding-box; - outline: 0; - transition: transform 0.3s ease-in-out; -} -@media (prefers-reduced-motion: reduce) { - .offcanvas { - transition: none; - } -} - -.offcanvas-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 1rem 1rem; -} -.offcanvas-header .btn-close { - padding: 0.5rem 0.5rem; - margin-top: -0.5rem; - margin-right: -0.5rem; - margin-bottom: -0.5rem; -} - -.offcanvas-title { - margin-bottom: 0; - line-height: 1.5; -} - -.offcanvas-body { - flex-grow: 1; - padding: 1rem 1rem; - overflow-y: auto; -} - -.offcanvas-start { - top: 0; - left: 0; - width: 400px; - border-right: 1px solid rgba(0, 0, 0, 0.2); - transform: translateX(-100%); -} - -.offcanvas-end { - top: 0; - right: 0; - width: 400px; - border-left: 1px solid rgba(0, 0, 0, 0.2); - transform: translateX(100%); -} - -.offcanvas-top { - top: 0; - right: 0; - left: 0; - height: 30vh; - max-height: 100%; - border-bottom: 1px solid rgba(0, 0, 0, 0.2); - transform: translateY(-100%); -} - -.offcanvas-bottom { - right: 0; - left: 0; - height: 30vh; - max-height: 100%; - border-top: 1px solid rgba(0, 0, 0, 0.2); - transform: translateY(100%); -} - -.offcanvas.show { - transform: none; -} - -.clearfix::after { - display: block; - clear: both; - content: ""; -} - -.link-primary { - color: #0d6efd; -} -.link-primary:hover, .link-primary:focus { - color: #0a58ca; -} - -.link-secondary { - color: #6c757d; -} -.link-secondary:hover, .link-secondary:focus { - color: #565e64; -} - -.link-success { - color: #198754; -} -.link-success:hover, .link-success:focus { - color: #146c43; -} - -.link-info { - color: #0dcaf0; -} -.link-info:hover, .link-info:focus { - color: #3dd5f3; -} - -.link-warning { - color: #ffc107; -} -.link-warning:hover, .link-warning:focus { - color: #ffcd39; -} - -.link-danger { - color: #dc3545; -} -.link-danger:hover, .link-danger:focus { - color: #b02a37; -} - -.link-light { - color: #f8f9fa; -} -.link-light:hover, .link-light:focus { - color: #f9fafb; -} - -.link-dark { - color: #212529; -} -.link-dark:hover, .link-dark:focus { - color: #1a1e21; -} - -.ratio { - position: relative; - width: 100%; -} -.ratio::before { - display: block; - padding-top: var(--bs-aspect-ratio); - content: ""; -} -.ratio > * { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} - -.ratio-1x1 { - --bs-aspect-ratio: 100%; -} - -.ratio-4x3 { - --bs-aspect-ratio: calc(3 / 4 * 100%); -} - -.ratio-16x9 { - --bs-aspect-ratio: calc(9 / 16 * 100%); -} - -.ratio-21x9 { - --bs-aspect-ratio: calc(9 / 21 * 100%); -} - -.fixed-top { - position: fixed; - top: 0; - right: 0; - left: 0; - z-index: 1030; -} - -.fixed-bottom { - position: fixed; - right: 0; - bottom: 0; - left: 0; - z-index: 1030; -} - -.sticky-top { - position: -webkit-sticky; - position: sticky; - top: 0; - z-index: 1020; -} - -@media (min-width: 576px) { - .sticky-sm-top { - position: -webkit-sticky; - position: sticky; - top: 0; - z-index: 1020; - } -} -@media (min-width: 768px) { - .sticky-md-top { - position: -webkit-sticky; - position: sticky; - top: 0; - z-index: 1020; - } -} -@media (min-width: 992px) { - .sticky-lg-top { - position: -webkit-sticky; - position: sticky; - top: 0; - z-index: 1020; - } -} -@media (min-width: 1200px) { - .sticky-xl-top { - position: -webkit-sticky; - position: sticky; - top: 0; - z-index: 1020; - } -} -@media (min-width: 1400px) { - .sticky-xxl-top { - position: -webkit-sticky; - position: sticky; - top: 0; - z-index: 1020; - } -} -.visually-hidden, -.visually-hidden-focusable:not(:focus):not(:focus-within) { - position: absolute !important; - width: 1px !important; - height: 1px !important; - padding: 0 !important; - margin: -1px !important; - overflow: hidden !important; - clip: rect(0, 0, 0, 0) !important; - white-space: nowrap !important; - border: 0 !important; -} - -.stretched-link::after { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1; - content: ""; -} - -.text-truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.align-baseline { - vertical-align: baseline !important; -} - -.align-top { - vertical-align: top !important; -} - -.align-middle { - vertical-align: middle !important; -} - -.align-bottom { - vertical-align: bottom !important; -} - -.align-text-bottom { - vertical-align: text-bottom !important; -} - -.align-text-top { - vertical-align: text-top !important; -} - -.float-start { - float: left !important; -} - -.float-end { - float: right !important; -} - -.float-none { - float: none !important; -} - -.overflow-auto { - overflow: auto !important; -} - -.overflow-hidden { - overflow: hidden !important; -} - -.overflow-visible { - overflow: visible !important; -} - -.overflow-scroll { - overflow: scroll !important; -} - -.d-inline { - display: inline !important; -} - -.d-inline-block { - display: inline-block !important; -} - -.d-block { - display: block !important; -} - -.d-grid { - display: grid !important; -} - -.d-table { - display: table !important; -} - -.d-table-row { - display: table-row !important; -} - -.d-table-cell { - display: table-cell !important; -} - -.d-flex { - display: flex !important; -} - -.d-inline-flex { - display: inline-flex !important; -} - -.d-none { - display: none !important; -} - -.shadow { - box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; -} - -.shadow-sm { - box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; -} - -.shadow-lg { - box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; -} - -.shadow-none { - box-shadow: none !important; -} - -.position-static { - position: static !important; -} - -.position-relative { - position: relative !important; -} - -.position-absolute { - position: absolute !important; -} - -.position-fixed { - position: fixed !important; -} - -.position-sticky { - position: -webkit-sticky !important; - position: sticky !important; -} - -.top-0 { - top: 0 !important; -} - -.top-50 { - top: 50% !important; -} - -.top-100 { - top: 100% !important; -} - -.bottom-0 { - bottom: 0 !important; -} - -.bottom-50 { - bottom: 50% !important; -} - -.bottom-100 { - bottom: 100% !important; -} - -.start-0 { - left: 0 !important; -} - -.start-50 { - left: 50% !important; -} - -.start-100 { - left: 100% !important; -} - -.end-0 { - right: 0 !important; -} - -.end-50 { - right: 50% !important; -} - -.end-100 { - right: 100% !important; -} - -.translate-middle { - transform: translate(-50%, -50%) !important; -} - -.translate-middle-x { - transform: translateX(-50%) !important; -} - -.translate-middle-y { - transform: translateY(-50%) !important; -} - -.border { - border: 1px solid #dee2e6 !important; -} - -.border-0 { - border: 0 !important; -} - -.border-top { - border-top: 1px solid #dee2e6 !important; -} - -.border-top-0 { - border-top: 0 !important; -} - -.border-end { - border-right: 1px solid #dee2e6 !important; -} - -.border-end-0 { - border-right: 0 !important; -} - -.border-bottom { - border-bottom: 1px solid #dee2e6 !important; -} - -.border-bottom-0 { - border-bottom: 0 !important; -} - -.border-start { - border-left: 1px solid #dee2e6 !important; -} - -.border-start-0 { - border-left: 0 !important; -} - -.border-primary { - border-color: #0d6efd !important; -} - -.border-secondary { - border-color: #6c757d !important; -} - -.border-success { - border-color: #198754 !important; -} - -.border-info { - border-color: #0dcaf0 !important; -} - -.border-warning { - border-color: #ffc107 !important; -} - -.border-danger { - border-color: #dc3545 !important; -} - -.border-light { - border-color: #f8f9fa !important; -} - -.border-dark { - border-color: #212529 !important; -} - -.border-white { - border-color: #fff !important; -} - -.border-1 { - border-width: 1px !important; -} - -.border-2 { - border-width: 2px !important; -} - -.border-3 { - border-width: 3px !important; -} - -.border-4 { - border-width: 4px !important; -} - -.border-5 { - border-width: 5px !important; -} - -.w-25 { - width: 25% !important; -} - -.w-50 { - width: 50% !important; -} - -.w-75 { - width: 75% !important; -} - -.w-100 { - width: 100% !important; -} - -.w-auto { - width: auto !important; -} - -.mw-100 { - max-width: 100% !important; -} - -.vw-100 { - width: 100vw !important; -} - -.min-vw-100 { - min-width: 100vw !important; -} - -.h-25 { - height: 25% !important; -} - -.h-50 { - height: 50% !important; -} - -.h-75 { - height: 75% !important; -} - -.h-100 { - height: 100% !important; -} - -.h-auto { - height: auto !important; -} - -.mh-100 { - max-height: 100% !important; -} - -.vh-100 { - height: 100vh !important; -} - -.min-vh-100 { - min-height: 100vh !important; -} - -.flex-fill { - flex: 1 1 auto !important; -} - -.flex-row { - flex-direction: row !important; -} - -.flex-column { - flex-direction: column !important; -} - -.flex-row-reverse { - flex-direction: row-reverse !important; -} - -.flex-column-reverse { - flex-direction: column-reverse !important; -} - -.flex-grow-0 { - flex-grow: 0 !important; -} - -.flex-grow-1 { - flex-grow: 1 !important; -} - -.flex-shrink-0 { - flex-shrink: 0 !important; -} - -.flex-shrink-1 { - flex-shrink: 1 !important; -} - -.flex-wrap { - flex-wrap: wrap !important; -} - -.flex-nowrap { - flex-wrap: nowrap !important; -} - -.flex-wrap-reverse { - flex-wrap: wrap-reverse !important; -} - -.gap-0 { - gap: 0 !important; -} - -.gap-1 { - gap: 0.25rem !important; -} - -.gap-2 { - gap: 0.5rem !important; -} - -.gap-3 { - gap: 1rem !important; -} - -.gap-4 { - gap: 1.5rem !important; -} - -.gap-5 { - gap: 3rem !important; -} - -.justify-content-start { - justify-content: flex-start !important; -} - -.justify-content-end { - justify-content: flex-end !important; -} - -.justify-content-center { - justify-content: center !important; -} - -.justify-content-between { - justify-content: space-between !important; -} - -.justify-content-around { - justify-content: space-around !important; -} - -.justify-content-evenly { - justify-content: space-evenly !important; -} - -.align-items-start { - align-items: flex-start !important; -} - -.align-items-end { - align-items: flex-end !important; -} - -.align-items-center { - align-items: center !important; -} - -.align-items-baseline { - align-items: baseline !important; -} - -.align-items-stretch { - align-items: stretch !important; -} - -.align-content-start { - align-content: flex-start !important; -} - -.align-content-end { - align-content: flex-end !important; -} - -.align-content-center { - align-content: center !important; -} - -.align-content-between { - align-content: space-between !important; -} - -.align-content-around { - align-content: space-around !important; -} - -.align-content-stretch { - align-content: stretch !important; -} - -.align-self-auto { - align-self: auto !important; -} - -.align-self-start { - align-self: flex-start !important; -} - -.align-self-end { - align-self: flex-end !important; -} - -.align-self-center { - align-self: center !important; -} - -.align-self-baseline { - align-self: baseline !important; -} - -.align-self-stretch { - align-self: stretch !important; -} - -.order-first { - order: -1 !important; -} - -.order-0 { - order: 0 !important; -} - -.order-1 { - order: 1 !important; -} - -.order-2 { - order: 2 !important; -} - -.order-3 { - order: 3 !important; -} - -.order-4 { - order: 4 !important; -} - -.order-5 { - order: 5 !important; -} - -.order-last { - order: 6 !important; -} - -.m-0 { - margin: 0 !important; -} - -.m-1 { - margin: 0.25rem !important; -} - -.m-2 { - margin: 0.5rem !important; -} - -.m-3 { - margin: 1rem !important; -} - -.m-4 { - margin: 1.5rem !important; -} - -.m-5 { - margin: 3rem !important; -} - -.m-auto { - margin: auto !important; -} - -.mx-0 { - margin-right: 0 !important; - margin-left: 0 !important; -} - -.mx-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; -} - -.mx-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; -} - -.mx-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; -} - -.mx-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; -} - -.mx-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; -} - -.mx-auto { - margin-right: auto !important; - margin-left: auto !important; -} - -.my-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; -} - -.my-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; -} - -.my-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; -} - -.my-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; -} - -.my-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; -} - -.my-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; -} - -.my-auto { - margin-top: auto !important; - margin-bottom: auto !important; -} - -.mt-0 { - margin-top: 0 !important; -} - -.mt-1 { - margin-top: 0.25rem !important; -} - -.mt-2 { - margin-top: 0.5rem !important; -} - -.mt-3 { - margin-top: 1rem !important; -} - -.mt-4 { - margin-top: 1.5rem !important; -} - -.mt-5 { - margin-top: 3rem !important; -} - -.mt-auto { - margin-top: auto !important; -} - -.me-0 { - margin-right: 0 !important; -} - -.me-1 { - margin-right: 0.25rem !important; -} - -.me-2 { - margin-right: 0.5rem !important; -} - -.me-3 { - margin-right: 1rem !important; -} - -.me-4 { - margin-right: 1.5rem !important; -} - -.me-5 { - margin-right: 3rem !important; -} - -.me-auto { - margin-right: auto !important; -} - -.mb-0 { - margin-bottom: 0 !important; -} - -.mb-1 { - margin-bottom: 0.25rem !important; -} - -.mb-2 { - margin-bottom: 0.5rem !important; -} - -.mb-3 { - margin-bottom: 1rem !important; -} - -.mb-4 { - margin-bottom: 1.5rem !important; -} - -.mb-5 { - margin-bottom: 3rem !important; -} - -.mb-auto { - margin-bottom: auto !important; -} - -.ms-0 { - margin-left: 0 !important; -} - -.ms-1 { - margin-left: 0.25rem !important; -} - -.ms-2 { - margin-left: 0.5rem !important; -} - -.ms-3 { - margin-left: 1rem !important; -} - -.ms-4 { - margin-left: 1.5rem !important; -} - -.ms-5 { - margin-left: 3rem !important; -} - -.ms-auto { - margin-left: auto !important; -} - -.p-0 { - padding: 0 !important; -} - -.p-1 { - padding: 0.25rem !important; -} - -.p-2 { - padding: 0.5rem !important; -} - -.p-3 { - padding: 1rem !important; -} - -.p-4 { - padding: 1.5rem !important; -} - -.p-5 { - padding: 3rem !important; -} - -.px-0 { - padding-right: 0 !important; - padding-left: 0 !important; -} - -.px-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; -} - -.px-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; -} - -.px-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; -} - -.px-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; -} - -.px-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; -} - -.py-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; -} - -.py-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; -} - -.py-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; -} - -.py-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; -} - -.py-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; -} - -.py-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; -} - -.pt-0 { - padding-top: 0 !important; -} - -.pt-1 { - padding-top: 0.25rem !important; -} - -.pt-2 { - padding-top: 0.5rem !important; -} - -.pt-3 { - padding-top: 1rem !important; -} - -.pt-4 { - padding-top: 1.5rem !important; -} - -.pt-5 { - padding-top: 3rem !important; -} - -.pe-0 { - padding-right: 0 !important; -} - -.pe-1 { - padding-right: 0.25rem !important; -} - -.pe-2 { - padding-right: 0.5rem !important; -} - -.pe-3 { - padding-right: 1rem !important; -} - -.pe-4 { - padding-right: 1.5rem !important; -} - -.pe-5 { - padding-right: 3rem !important; -} - -.pb-0 { - padding-bottom: 0 !important; -} - -.pb-1 { - padding-bottom: 0.25rem !important; -} - -.pb-2 { - padding-bottom: 0.5rem !important; -} - -.pb-3 { - padding-bottom: 1rem !important; -} - -.pb-4 { - padding-bottom: 1.5rem !important; -} - -.pb-5 { - padding-bottom: 3rem !important; -} - -.ps-0 { - padding-left: 0 !important; -} - -.ps-1 { - padding-left: 0.25rem !important; -} - -.ps-2 { - padding-left: 0.5rem !important; -} - -.ps-3 { - padding-left: 1rem !important; -} - -.ps-4 { - padding-left: 1.5rem !important; -} - -.ps-5 { - padding-left: 3rem !important; -} - -.font-monospace { - font-family: var(--bs-font-monospace) !important; -} - -.fs-1 { - font-size: calc(1.375rem + 1.5vw) !important; -} - -.fs-2 { - font-size: calc(1.325rem + 0.9vw) !important; -} - -.fs-3 { - font-size: calc(1.3rem + 0.6vw) !important; -} - -.fs-4 { - font-size: calc(1.275rem + 0.3vw) !important; -} - -.fs-5 { - font-size: 1.25rem !important; -} - -.fs-6 { - font-size: 1rem !important; -} - -.fst-italic { - font-style: italic !important; -} - -.fst-normal { - font-style: normal !important; -} - -.fw-light { - font-weight: 300 !important; -} - -.fw-lighter { - font-weight: lighter !important; -} - -.fw-normal { - font-weight: 400 !important; -} - -.fw-bold { - font-weight: 700 !important; -} - -.fw-bolder { - font-weight: bolder !important; -} - -.lh-1 { - line-height: 1 !important; -} - -.lh-sm { - line-height: 1.25 !important; -} - -.lh-base { - line-height: 1.5 !important; -} - -.lh-lg { - line-height: 2 !important; -} - -.text-start { - text-align: left !important; -} - -.text-end { - text-align: right !important; -} - -.text-center { - text-align: center !important; -} - -.text-decoration-none { - text-decoration: none !important; -} - -.text-decoration-underline { - text-decoration: underline !important; -} - -.text-decoration-line-through { - text-decoration: line-through !important; -} - -.text-lowercase { - text-transform: lowercase !important; -} - -.text-uppercase { - text-transform: uppercase !important; -} - -.text-capitalize { - text-transform: capitalize !important; -} - -.text-wrap { - white-space: normal !important; -} - -.text-nowrap { - white-space: nowrap !important; -} - -/* rtl:begin:remove */ -.text-break { - word-wrap: break-word !important; - word-break: break-word !important; -} - -/* rtl:end:remove */ -.text-primary { - color: #0d6efd !important; -} - -.text-secondary { - color: #6c757d !important; -} - -.text-success { - color: #198754 !important; -} - -.text-info { - color: #0dcaf0 !important; -} - -.text-warning { - color: #ffc107 !important; -} - -.text-danger { - color: #dc3545 !important; -} - -.text-light { - color: #f8f9fa !important; -} - -.text-dark { - color: #212529 !important; -} - -.text-white { - color: #fff !important; -} - -.text-body { - color: #212529 !important; -} - -.text-muted { - color: #6c757d !important; -} - -.text-black-50 { - color: rgba(0, 0, 0, 0.5) !important; -} - -.text-white-50 { - color: rgba(255, 255, 255, 0.5) !important; -} - -.text-reset { - color: inherit !important; -} - -.bg-primary { - background-color: #0d6efd !important; -} - -.bg-secondary { - background-color: #6c757d !important; -} - -.bg-success { - background-color: #198754 !important; -} - -.bg-info { - background-color: #0dcaf0 !important; -} - -.bg-warning { - background-color: #ffc107 !important; -} - -.bg-danger { - background-color: #dc3545 !important; -} - -.bg-light { - background-color: #f8f9fa !important; -} - -.bg-dark { - background-color: #212529 !important; -} - -.bg-body { - background-color: #fff !important; -} - -.bg-white { - background-color: #fff !important; -} - -.bg-transparent { - background-color: transparent !important; -} - -.bg-gradient { - background-image: var(--bs-gradient) !important; -} - -.user-select-all { - -webkit-user-select: all !important; - -moz-user-select: all !important; - user-select: all !important; -} - -.user-select-auto { - -webkit-user-select: auto !important; - -moz-user-select: auto !important; - user-select: auto !important; -} - -.user-select-none { - -webkit-user-select: none !important; - -moz-user-select: none !important; - user-select: none !important; -} - -.pe-none { - pointer-events: none !important; -} - -.pe-auto { - pointer-events: auto !important; -} - -.rounded { - border-radius: 0.25rem !important; -} - -.rounded-0 { - border-radius: 0 !important; -} - -.rounded-1 { - border-radius: 0.2rem !important; -} - -.rounded-2 { - border-radius: 0.25rem !important; -} - -.rounded-3 { - border-radius: 0.3rem !important; -} - -.rounded-circle { - border-radius: 50% !important; -} - -.rounded-pill { - border-radius: 50rem !important; -} - -.rounded-top { - border-top-left-radius: 0.25rem !important; - border-top-right-radius: 0.25rem !important; -} - -.rounded-end { - border-top-right-radius: 0.25rem !important; - border-bottom-right-radius: 0.25rem !important; -} - -.rounded-bottom { - border-bottom-right-radius: 0.25rem !important; - border-bottom-left-radius: 0.25rem !important; -} - -.rounded-start { - border-bottom-left-radius: 0.25rem !important; - border-top-left-radius: 0.25rem !important; -} - -.visible { - visibility: visible !important; -} - -.invisible { - visibility: hidden !important; -} - -@media (min-width: 576px) { - .float-sm-start { - float: left !important; - } - - .float-sm-end { - float: right !important; - } - - .float-sm-none { - float: none !important; - } - - .d-sm-inline { - display: inline !important; - } - - .d-sm-inline-block { - display: inline-block !important; - } - - .d-sm-block { - display: block !important; - } - - .d-sm-grid { - display: grid !important; - } - - .d-sm-table { - display: table !important; - } - - .d-sm-table-row { - display: table-row !important; - } - - .d-sm-table-cell { - display: table-cell !important; - } - - .d-sm-flex { - display: flex !important; - } - - .d-sm-inline-flex { - display: inline-flex !important; - } - - .d-sm-none { - display: none !important; - } - - .flex-sm-fill { - flex: 1 1 auto !important; - } - - .flex-sm-row { - flex-direction: row !important; - } - - .flex-sm-column { - flex-direction: column !important; - } - - .flex-sm-row-reverse { - flex-direction: row-reverse !important; - } - - .flex-sm-column-reverse { - flex-direction: column-reverse !important; - } - - .flex-sm-grow-0 { - flex-grow: 0 !important; - } - - .flex-sm-grow-1 { - flex-grow: 1 !important; - } - - .flex-sm-shrink-0 { - flex-shrink: 0 !important; - } - - .flex-sm-shrink-1 { - flex-shrink: 1 !important; - } - - .flex-sm-wrap { - flex-wrap: wrap !important; - } - - .flex-sm-nowrap { - flex-wrap: nowrap !important; - } - - .flex-sm-wrap-reverse { - flex-wrap: wrap-reverse !important; - } - - .gap-sm-0 { - gap: 0 !important; - } - - .gap-sm-1 { - gap: 0.25rem !important; - } - - .gap-sm-2 { - gap: 0.5rem !important; - } - - .gap-sm-3 { - gap: 1rem !important; - } - - .gap-sm-4 { - gap: 1.5rem !important; - } - - .gap-sm-5 { - gap: 3rem !important; - } - - .justify-content-sm-start { - justify-content: flex-start !important; - } - - .justify-content-sm-end { - justify-content: flex-end !important; - } - - .justify-content-sm-center { - justify-content: center !important; - } - - .justify-content-sm-between { - justify-content: space-between !important; - } - - .justify-content-sm-around { - justify-content: space-around !important; - } - - .justify-content-sm-evenly { - justify-content: space-evenly !important; - } - - .align-items-sm-start { - align-items: flex-start !important; - } - - .align-items-sm-end { - align-items: flex-end !important; - } - - .align-items-sm-center { - align-items: center !important; - } - - .align-items-sm-baseline { - align-items: baseline !important; - } - - .align-items-sm-stretch { - align-items: stretch !important; - } - - .align-content-sm-start { - align-content: flex-start !important; - } - - .align-content-sm-end { - align-content: flex-end !important; - } - - .align-content-sm-center { - align-content: center !important; - } - - .align-content-sm-between { - align-content: space-between !important; - } - - .align-content-sm-around { - align-content: space-around !important; - } - - .align-content-sm-stretch { - align-content: stretch !important; - } - - .align-self-sm-auto { - align-self: auto !important; - } - - .align-self-sm-start { - align-self: flex-start !important; - } - - .align-self-sm-end { - align-self: flex-end !important; - } - - .align-self-sm-center { - align-self: center !important; - } - - .align-self-sm-baseline { - align-self: baseline !important; - } - - .align-self-sm-stretch { - align-self: stretch !important; - } - - .order-sm-first { - order: -1 !important; - } - - .order-sm-0 { - order: 0 !important; - } - - .order-sm-1 { - order: 1 !important; - } - - .order-sm-2 { - order: 2 !important; - } - - .order-sm-3 { - order: 3 !important; - } - - .order-sm-4 { - order: 4 !important; - } - - .order-sm-5 { - order: 5 !important; - } - - .order-sm-last { - order: 6 !important; - } - - .m-sm-0 { - margin: 0 !important; - } - - .m-sm-1 { - margin: 0.25rem !important; - } - - .m-sm-2 { - margin: 0.5rem !important; - } - - .m-sm-3 { - margin: 1rem !important; - } - - .m-sm-4 { - margin: 1.5rem !important; - } - - .m-sm-5 { - margin: 3rem !important; - } - - .m-sm-auto { - margin: auto !important; - } - - .mx-sm-0 { - margin-right: 0 !important; - margin-left: 0 !important; - } - - .mx-sm-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; - } - - .mx-sm-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; - } - - .mx-sm-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; - } - - .mx-sm-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; - } - - .mx-sm-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; - } - - .mx-sm-auto { - margin-right: auto !important; - margin-left: auto !important; - } - - .my-sm-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; - } - - .my-sm-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; - } - - .my-sm-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; - } - - .my-sm-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; - } - - .my-sm-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; - } - - .my-sm-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; - } - - .my-sm-auto { - margin-top: auto !important; - margin-bottom: auto !important; - } - - .mt-sm-0 { - margin-top: 0 !important; - } - - .mt-sm-1 { - margin-top: 0.25rem !important; - } - - .mt-sm-2 { - margin-top: 0.5rem !important; - } - - .mt-sm-3 { - margin-top: 1rem !important; - } - - .mt-sm-4 { - margin-top: 1.5rem !important; - } - - .mt-sm-5 { - margin-top: 3rem !important; - } - - .mt-sm-auto { - margin-top: auto !important; - } - - .me-sm-0 { - margin-right: 0 !important; - } - - .me-sm-1 { - margin-right: 0.25rem !important; - } - - .me-sm-2 { - margin-right: 0.5rem !important; - } - - .me-sm-3 { - margin-right: 1rem !important; - } - - .me-sm-4 { - margin-right: 1.5rem !important; - } - - .me-sm-5 { - margin-right: 3rem !important; - } - - .me-sm-auto { - margin-right: auto !important; - } - - .mb-sm-0 { - margin-bottom: 0 !important; - } - - .mb-sm-1 { - margin-bottom: 0.25rem !important; - } - - .mb-sm-2 { - margin-bottom: 0.5rem !important; - } - - .mb-sm-3 { - margin-bottom: 1rem !important; - } - - .mb-sm-4 { - margin-bottom: 1.5rem !important; - } - - .mb-sm-5 { - margin-bottom: 3rem !important; - } - - .mb-sm-auto { - margin-bottom: auto !important; - } - - .ms-sm-0 { - margin-left: 0 !important; - } - - .ms-sm-1 { - margin-left: 0.25rem !important; - } - - .ms-sm-2 { - margin-left: 0.5rem !important; - } - - .ms-sm-3 { - margin-left: 1rem !important; - } - - .ms-sm-4 { - margin-left: 1.5rem !important; - } - - .ms-sm-5 { - margin-left: 3rem !important; - } - - .ms-sm-auto { - margin-left: auto !important; - } - - .p-sm-0 { - padding: 0 !important; - } - - .p-sm-1 { - padding: 0.25rem !important; - } - - .p-sm-2 { - padding: 0.5rem !important; - } - - .p-sm-3 { - padding: 1rem !important; - } - - .p-sm-4 { - padding: 1.5rem !important; - } - - .p-sm-5 { - padding: 3rem !important; - } - - .px-sm-0 { - padding-right: 0 !important; - padding-left: 0 !important; - } - - .px-sm-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; - } - - .px-sm-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; - } - - .px-sm-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; - } - - .px-sm-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; - } - - .px-sm-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; - } - - .py-sm-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; - } - - .py-sm-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; - } - - .py-sm-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; - } - - .py-sm-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; - } - - .py-sm-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; - } - - .py-sm-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; - } - - .pt-sm-0 { - padding-top: 0 !important; - } - - .pt-sm-1 { - padding-top: 0.25rem !important; - } - - .pt-sm-2 { - padding-top: 0.5rem !important; - } - - .pt-sm-3 { - padding-top: 1rem !important; - } - - .pt-sm-4 { - padding-top: 1.5rem !important; - } - - .pt-sm-5 { - padding-top: 3rem !important; - } - - .pe-sm-0 { - padding-right: 0 !important; - } - - .pe-sm-1 { - padding-right: 0.25rem !important; - } - - .pe-sm-2 { - padding-right: 0.5rem !important; - } - - .pe-sm-3 { - padding-right: 1rem !important; - } - - .pe-sm-4 { - padding-right: 1.5rem !important; - } - - .pe-sm-5 { - padding-right: 3rem !important; - } - - .pb-sm-0 { - padding-bottom: 0 !important; - } - - .pb-sm-1 { - padding-bottom: 0.25rem !important; - } - - .pb-sm-2 { - padding-bottom: 0.5rem !important; - } - - .pb-sm-3 { - padding-bottom: 1rem !important; - } - - .pb-sm-4 { - padding-bottom: 1.5rem !important; - } - - .pb-sm-5 { - padding-bottom: 3rem !important; - } - - .ps-sm-0 { - padding-left: 0 !important; - } - - .ps-sm-1 { - padding-left: 0.25rem !important; - } - - .ps-sm-2 { - padding-left: 0.5rem !important; - } - - .ps-sm-3 { - padding-left: 1rem !important; - } - - .ps-sm-4 { - padding-left: 1.5rem !important; - } - - .ps-sm-5 { - padding-left: 3rem !important; - } - - .text-sm-start { - text-align: left !important; - } - - .text-sm-end { - text-align: right !important; - } - - .text-sm-center { - text-align: center !important; - } -} -@media (min-width: 768px) { - .float-md-start { - float: left !important; - } - - .float-md-end { - float: right !important; - } - - .float-md-none { - float: none !important; - } - - .d-md-inline { - display: inline !important; - } - - .d-md-inline-block { - display: inline-block !important; - } - - .d-md-block { - display: block !important; - } - - .d-md-grid { - display: grid !important; - } - - .d-md-table { - display: table !important; - } - - .d-md-table-row { - display: table-row !important; - } - - .d-md-table-cell { - display: table-cell !important; - } - - .d-md-flex { - display: flex !important; - } - - .d-md-inline-flex { - display: inline-flex !important; - } - - .d-md-none { - display: none !important; - } - - .flex-md-fill { - flex: 1 1 auto !important; - } - - .flex-md-row { - flex-direction: row !important; - } - - .flex-md-column { - flex-direction: column !important; - } - - .flex-md-row-reverse { - flex-direction: row-reverse !important; - } - - .flex-md-column-reverse { - flex-direction: column-reverse !important; - } - - .flex-md-grow-0 { - flex-grow: 0 !important; - } - - .flex-md-grow-1 { - flex-grow: 1 !important; - } - - .flex-md-shrink-0 { - flex-shrink: 0 !important; - } - - .flex-md-shrink-1 { - flex-shrink: 1 !important; - } - - .flex-md-wrap { - flex-wrap: wrap !important; - } - - .flex-md-nowrap { - flex-wrap: nowrap !important; - } - - .flex-md-wrap-reverse { - flex-wrap: wrap-reverse !important; - } - - .gap-md-0 { - gap: 0 !important; - } - - .gap-md-1 { - gap: 0.25rem !important; - } - - .gap-md-2 { - gap: 0.5rem !important; - } - - .gap-md-3 { - gap: 1rem !important; - } - - .gap-md-4 { - gap: 1.5rem !important; - } - - .gap-md-5 { - gap: 3rem !important; - } - - .justify-content-md-start { - justify-content: flex-start !important; - } - - .justify-content-md-end { - justify-content: flex-end !important; - } - - .justify-content-md-center { - justify-content: center !important; - } - - .justify-content-md-between { - justify-content: space-between !important; - } - - .justify-content-md-around { - justify-content: space-around !important; - } - - .justify-content-md-evenly { - justify-content: space-evenly !important; - } - - .align-items-md-start { - align-items: flex-start !important; - } - - .align-items-md-end { - align-items: flex-end !important; - } - - .align-items-md-center { - align-items: center !important; - } - - .align-items-md-baseline { - align-items: baseline !important; - } - - .align-items-md-stretch { - align-items: stretch !important; - } - - .align-content-md-start { - align-content: flex-start !important; - } - - .align-content-md-end { - align-content: flex-end !important; - } - - .align-content-md-center { - align-content: center !important; - } - - .align-content-md-between { - align-content: space-between !important; - } - - .align-content-md-around { - align-content: space-around !important; - } - - .align-content-md-stretch { - align-content: stretch !important; - } - - .align-self-md-auto { - align-self: auto !important; - } - - .align-self-md-start { - align-self: flex-start !important; - } - - .align-self-md-end { - align-self: flex-end !important; - } - - .align-self-md-center { - align-self: center !important; - } - - .align-self-md-baseline { - align-self: baseline !important; - } - - .align-self-md-stretch { - align-self: stretch !important; - } - - .order-md-first { - order: -1 !important; - } - - .order-md-0 { - order: 0 !important; - } - - .order-md-1 { - order: 1 !important; - } - - .order-md-2 { - order: 2 !important; - } - - .order-md-3 { - order: 3 !important; - } - - .order-md-4 { - order: 4 !important; - } - - .order-md-5 { - order: 5 !important; - } - - .order-md-last { - order: 6 !important; - } - - .m-md-0 { - margin: 0 !important; - } - - .m-md-1 { - margin: 0.25rem !important; - } - - .m-md-2 { - margin: 0.5rem !important; - } - - .m-md-3 { - margin: 1rem !important; - } - - .m-md-4 { - margin: 1.5rem !important; - } - - .m-md-5 { - margin: 3rem !important; - } - - .m-md-auto { - margin: auto !important; - } - - .mx-md-0 { - margin-right: 0 !important; - margin-left: 0 !important; - } - - .mx-md-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; - } - - .mx-md-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; - } - - .mx-md-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; - } - - .mx-md-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; - } - - .mx-md-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; - } - - .mx-md-auto { - margin-right: auto !important; - margin-left: auto !important; - } - - .my-md-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; - } - - .my-md-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; - } - - .my-md-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; - } - - .my-md-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; - } - - .my-md-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; - } - - .my-md-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; - } - - .my-md-auto { - margin-top: auto !important; - margin-bottom: auto !important; - } - - .mt-md-0 { - margin-top: 0 !important; - } - - .mt-md-1 { - margin-top: 0.25rem !important; - } - - .mt-md-2 { - margin-top: 0.5rem !important; - } - - .mt-md-3 { - margin-top: 1rem !important; - } - - .mt-md-4 { - margin-top: 1.5rem !important; - } - - .mt-md-5 { - margin-top: 3rem !important; - } - - .mt-md-auto { - margin-top: auto !important; - } - - .me-md-0 { - margin-right: 0 !important; - } - - .me-md-1 { - margin-right: 0.25rem !important; - } - - .me-md-2 { - margin-right: 0.5rem !important; - } - - .me-md-3 { - margin-right: 1rem !important; - } - - .me-md-4 { - margin-right: 1.5rem !important; - } - - .me-md-5 { - margin-right: 3rem !important; - } - - .me-md-auto { - margin-right: auto !important; - } - - .mb-md-0 { - margin-bottom: 0 !important; - } - - .mb-md-1 { - margin-bottom: 0.25rem !important; - } - - .mb-md-2 { - margin-bottom: 0.5rem !important; - } - - .mb-md-3 { - margin-bottom: 1rem !important; - } - - .mb-md-4 { - margin-bottom: 1.5rem !important; - } - - .mb-md-5 { - margin-bottom: 3rem !important; - } - - .mb-md-auto { - margin-bottom: auto !important; - } - - .ms-md-0 { - margin-left: 0 !important; - } - - .ms-md-1 { - margin-left: 0.25rem !important; - } - - .ms-md-2 { - margin-left: 0.5rem !important; - } - - .ms-md-3 { - margin-left: 1rem !important; - } - - .ms-md-4 { - margin-left: 1.5rem !important; - } - - .ms-md-5 { - margin-left: 3rem !important; - } - - .ms-md-auto { - margin-left: auto !important; - } - - .p-md-0 { - padding: 0 !important; - } - - .p-md-1 { - padding: 0.25rem !important; - } - - .p-md-2 { - padding: 0.5rem !important; - } - - .p-md-3 { - padding: 1rem !important; - } - - .p-md-4 { - padding: 1.5rem !important; - } - - .p-md-5 { - padding: 3rem !important; - } - - .px-md-0 { - padding-right: 0 !important; - padding-left: 0 !important; - } - - .px-md-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; - } - - .px-md-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; - } - - .px-md-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; - } - - .px-md-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; - } - - .px-md-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; - } - - .py-md-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; - } - - .py-md-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; - } - - .py-md-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; - } - - .py-md-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; - } - - .py-md-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; - } - - .py-md-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; - } - - .pt-md-0 { - padding-top: 0 !important; - } - - .pt-md-1 { - padding-top: 0.25rem !important; - } - - .pt-md-2 { - padding-top: 0.5rem !important; - } - - .pt-md-3 { - padding-top: 1rem !important; - } - - .pt-md-4 { - padding-top: 1.5rem !important; - } - - .pt-md-5 { - padding-top: 3rem !important; - } - - .pe-md-0 { - padding-right: 0 !important; - } - - .pe-md-1 { - padding-right: 0.25rem !important; - } - - .pe-md-2 { - padding-right: 0.5rem !important; - } - - .pe-md-3 { - padding-right: 1rem !important; - } - - .pe-md-4 { - padding-right: 1.5rem !important; - } - - .pe-md-5 { - padding-right: 3rem !important; - } - - .pb-md-0 { - padding-bottom: 0 !important; - } - - .pb-md-1 { - padding-bottom: 0.25rem !important; - } - - .pb-md-2 { - padding-bottom: 0.5rem !important; - } - - .pb-md-3 { - padding-bottom: 1rem !important; - } - - .pb-md-4 { - padding-bottom: 1.5rem !important; - } - - .pb-md-5 { - padding-bottom: 3rem !important; - } - - .ps-md-0 { - padding-left: 0 !important; - } - - .ps-md-1 { - padding-left: 0.25rem !important; - } - - .ps-md-2 { - padding-left: 0.5rem !important; - } - - .ps-md-3 { - padding-left: 1rem !important; - } - - .ps-md-4 { - padding-left: 1.5rem !important; - } - - .ps-md-5 { - padding-left: 3rem !important; - } - - .text-md-start { - text-align: left !important; - } - - .text-md-end { - text-align: right !important; - } - - .text-md-center { - text-align: center !important; - } -} -@media (min-width: 992px) { - .float-lg-start { - float: left !important; - } - - .float-lg-end { - float: right !important; - } - - .float-lg-none { - float: none !important; - } - - .d-lg-inline { - display: inline !important; - } - - .d-lg-inline-block { - display: inline-block !important; - } - - .d-lg-block { - display: block !important; - } - - .d-lg-grid { - display: grid !important; - } - - .d-lg-table { - display: table !important; - } - - .d-lg-table-row { - display: table-row !important; - } - - .d-lg-table-cell { - display: table-cell !important; - } - - .d-lg-flex { - display: flex !important; - } - - .d-lg-inline-flex { - display: inline-flex !important; - } - - .d-lg-none { - display: none !important; - } - - .flex-lg-fill { - flex: 1 1 auto !important; - } - - .flex-lg-row { - flex-direction: row !important; - } - - .flex-lg-column { - flex-direction: column !important; - } - - .flex-lg-row-reverse { - flex-direction: row-reverse !important; - } - - .flex-lg-column-reverse { - flex-direction: column-reverse !important; - } - - .flex-lg-grow-0 { - flex-grow: 0 !important; - } - - .flex-lg-grow-1 { - flex-grow: 1 !important; - } - - .flex-lg-shrink-0 { - flex-shrink: 0 !important; - } - - .flex-lg-shrink-1 { - flex-shrink: 1 !important; - } - - .flex-lg-wrap { - flex-wrap: wrap !important; - } - - .flex-lg-nowrap { - flex-wrap: nowrap !important; - } - - .flex-lg-wrap-reverse { - flex-wrap: wrap-reverse !important; - } - - .gap-lg-0 { - gap: 0 !important; - } - - .gap-lg-1 { - gap: 0.25rem !important; - } - - .gap-lg-2 { - gap: 0.5rem !important; - } - - .gap-lg-3 { - gap: 1rem !important; - } - - .gap-lg-4 { - gap: 1.5rem !important; - } - - .gap-lg-5 { - gap: 3rem !important; - } - - .justify-content-lg-start { - justify-content: flex-start !important; - } - - .justify-content-lg-end { - justify-content: flex-end !important; - } - - .justify-content-lg-center { - justify-content: center !important; - } - - .justify-content-lg-between { - justify-content: space-between !important; - } - - .justify-content-lg-around { - justify-content: space-around !important; - } - - .justify-content-lg-evenly { - justify-content: space-evenly !important; - } - - .align-items-lg-start { - align-items: flex-start !important; - } - - .align-items-lg-end { - align-items: flex-end !important; - } - - .align-items-lg-center { - align-items: center !important; - } - - .align-items-lg-baseline { - align-items: baseline !important; - } - - .align-items-lg-stretch { - align-items: stretch !important; - } - - .align-content-lg-start { - align-content: flex-start !important; - } - - .align-content-lg-end { - align-content: flex-end !important; - } - - .align-content-lg-center { - align-content: center !important; - } - - .align-content-lg-between { - align-content: space-between !important; - } - - .align-content-lg-around { - align-content: space-around !important; - } - - .align-content-lg-stretch { - align-content: stretch !important; - } - - .align-self-lg-auto { - align-self: auto !important; - } - - .align-self-lg-start { - align-self: flex-start !important; - } - - .align-self-lg-end { - align-self: flex-end !important; - } - - .align-self-lg-center { - align-self: center !important; - } - - .align-self-lg-baseline { - align-self: baseline !important; - } - - .align-self-lg-stretch { - align-self: stretch !important; - } - - .order-lg-first { - order: -1 !important; - } - - .order-lg-0 { - order: 0 !important; - } - - .order-lg-1 { - order: 1 !important; - } - - .order-lg-2 { - order: 2 !important; - } - - .order-lg-3 { - order: 3 !important; - } - - .order-lg-4 { - order: 4 !important; - } - - .order-lg-5 { - order: 5 !important; - } - - .order-lg-last { - order: 6 !important; - } - - .m-lg-0 { - margin: 0 !important; - } - - .m-lg-1 { - margin: 0.25rem !important; - } - - .m-lg-2 { - margin: 0.5rem !important; - } - - .m-lg-3 { - margin: 1rem !important; - } - - .m-lg-4 { - margin: 1.5rem !important; - } - - .m-lg-5 { - margin: 3rem !important; - } - - .m-lg-auto { - margin: auto !important; - } - - .mx-lg-0 { - margin-right: 0 !important; - margin-left: 0 !important; - } - - .mx-lg-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; - } - - .mx-lg-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; - } - - .mx-lg-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; - } - - .mx-lg-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; - } - - .mx-lg-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; - } - - .mx-lg-auto { - margin-right: auto !important; - margin-left: auto !important; - } - - .my-lg-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; - } - - .my-lg-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; - } - - .my-lg-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; - } - - .my-lg-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; - } - - .my-lg-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; - } - - .my-lg-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; - } - - .my-lg-auto { - margin-top: auto !important; - margin-bottom: auto !important; - } - - .mt-lg-0 { - margin-top: 0 !important; - } - - .mt-lg-1 { - margin-top: 0.25rem !important; - } - - .mt-lg-2 { - margin-top: 0.5rem !important; - } - - .mt-lg-3 { - margin-top: 1rem !important; - } - - .mt-lg-4 { - margin-top: 1.5rem !important; - } - - .mt-lg-5 { - margin-top: 3rem !important; - } - - .mt-lg-auto { - margin-top: auto !important; - } - - .me-lg-0 { - margin-right: 0 !important; - } - - .me-lg-1 { - margin-right: 0.25rem !important; - } - - .me-lg-2 { - margin-right: 0.5rem !important; - } - - .me-lg-3 { - margin-right: 1rem !important; - } - - .me-lg-4 { - margin-right: 1.5rem !important; - } - - .me-lg-5 { - margin-right: 3rem !important; - } - - .me-lg-auto { - margin-right: auto !important; - } - - .mb-lg-0 { - margin-bottom: 0 !important; - } - - .mb-lg-1 { - margin-bottom: 0.25rem !important; - } - - .mb-lg-2 { - margin-bottom: 0.5rem !important; - } - - .mb-lg-3 { - margin-bottom: 1rem !important; - } - - .mb-lg-4 { - margin-bottom: 1.5rem !important; - } - - .mb-lg-5 { - margin-bottom: 3rem !important; - } - - .mb-lg-auto { - margin-bottom: auto !important; - } - - .ms-lg-0 { - margin-left: 0 !important; - } - - .ms-lg-1 { - margin-left: 0.25rem !important; - } - - .ms-lg-2 { - margin-left: 0.5rem !important; - } - - .ms-lg-3 { - margin-left: 1rem !important; - } - - .ms-lg-4 { - margin-left: 1.5rem !important; - } - - .ms-lg-5 { - margin-left: 3rem !important; - } - - .ms-lg-auto { - margin-left: auto !important; - } - - .p-lg-0 { - padding: 0 !important; - } - - .p-lg-1 { - padding: 0.25rem !important; - } - - .p-lg-2 { - padding: 0.5rem !important; - } - - .p-lg-3 { - padding: 1rem !important; - } - - .p-lg-4 { - padding: 1.5rem !important; - } - - .p-lg-5 { - padding: 3rem !important; - } - - .px-lg-0 { - padding-right: 0 !important; - padding-left: 0 !important; - } - - .px-lg-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; - } - - .px-lg-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; - } - - .px-lg-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; - } - - .px-lg-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; - } - - .px-lg-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; - } - - .py-lg-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; - } - - .py-lg-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; - } - - .py-lg-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; - } - - .py-lg-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; - } - - .py-lg-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; - } - - .py-lg-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; - } - - .pt-lg-0 { - padding-top: 0 !important; - } - - .pt-lg-1 { - padding-top: 0.25rem !important; - } - - .pt-lg-2 { - padding-top: 0.5rem !important; - } - - .pt-lg-3 { - padding-top: 1rem !important; - } - - .pt-lg-4 { - padding-top: 1.5rem !important; - } - - .pt-lg-5 { - padding-top: 3rem !important; - } - - .pe-lg-0 { - padding-right: 0 !important; - } - - .pe-lg-1 { - padding-right: 0.25rem !important; - } - - .pe-lg-2 { - padding-right: 0.5rem !important; - } - - .pe-lg-3 { - padding-right: 1rem !important; - } - - .pe-lg-4 { - padding-right: 1.5rem !important; - } - - .pe-lg-5 { - padding-right: 3rem !important; - } - - .pb-lg-0 { - padding-bottom: 0 !important; - } - - .pb-lg-1 { - padding-bottom: 0.25rem !important; - } - - .pb-lg-2 { - padding-bottom: 0.5rem !important; - } - - .pb-lg-3 { - padding-bottom: 1rem !important; - } - - .pb-lg-4 { - padding-bottom: 1.5rem !important; - } - - .pb-lg-5 { - padding-bottom: 3rem !important; - } - - .ps-lg-0 { - padding-left: 0 !important; - } - - .ps-lg-1 { - padding-left: 0.25rem !important; - } - - .ps-lg-2 { - padding-left: 0.5rem !important; - } - - .ps-lg-3 { - padding-left: 1rem !important; - } - - .ps-lg-4 { - padding-left: 1.5rem !important; - } - - .ps-lg-5 { - padding-left: 3rem !important; - } - - .text-lg-start { - text-align: left !important; - } - - .text-lg-end { - text-align: right !important; - } - - .text-lg-center { - text-align: center !important; - } -} -@media (min-width: 1200px) { - .float-xl-start { - float: left !important; - } - - .float-xl-end { - float: right !important; - } - - .float-xl-none { - float: none !important; - } - - .d-xl-inline { - display: inline !important; - } - - .d-xl-inline-block { - display: inline-block !important; - } - - .d-xl-block { - display: block !important; - } - - .d-xl-grid { - display: grid !important; - } - - .d-xl-table { - display: table !important; - } - - .d-xl-table-row { - display: table-row !important; - } - - .d-xl-table-cell { - display: table-cell !important; - } - - .d-xl-flex { - display: flex !important; - } - - .d-xl-inline-flex { - display: inline-flex !important; - } - - .d-xl-none { - display: none !important; - } - - .flex-xl-fill { - flex: 1 1 auto !important; - } - - .flex-xl-row { - flex-direction: row !important; - } - - .flex-xl-column { - flex-direction: column !important; - } - - .flex-xl-row-reverse { - flex-direction: row-reverse !important; - } - - .flex-xl-column-reverse { - flex-direction: column-reverse !important; - } - - .flex-xl-grow-0 { - flex-grow: 0 !important; - } - - .flex-xl-grow-1 { - flex-grow: 1 !important; - } - - .flex-xl-shrink-0 { - flex-shrink: 0 !important; - } - - .flex-xl-shrink-1 { - flex-shrink: 1 !important; - } - - .flex-xl-wrap { - flex-wrap: wrap !important; - } - - .flex-xl-nowrap { - flex-wrap: nowrap !important; - } - - .flex-xl-wrap-reverse { - flex-wrap: wrap-reverse !important; - } - - .gap-xl-0 { - gap: 0 !important; - } - - .gap-xl-1 { - gap: 0.25rem !important; - } - - .gap-xl-2 { - gap: 0.5rem !important; - } - - .gap-xl-3 { - gap: 1rem !important; - } - - .gap-xl-4 { - gap: 1.5rem !important; - } - - .gap-xl-5 { - gap: 3rem !important; - } - - .justify-content-xl-start { - justify-content: flex-start !important; - } - - .justify-content-xl-end { - justify-content: flex-end !important; - } - - .justify-content-xl-center { - justify-content: center !important; - } - - .justify-content-xl-between { - justify-content: space-between !important; - } - - .justify-content-xl-around { - justify-content: space-around !important; - } - - .justify-content-xl-evenly { - justify-content: space-evenly !important; - } - - .align-items-xl-start { - align-items: flex-start !important; - } - - .align-items-xl-end { - align-items: flex-end !important; - } - - .align-items-xl-center { - align-items: center !important; - } - - .align-items-xl-baseline { - align-items: baseline !important; - } - - .align-items-xl-stretch { - align-items: stretch !important; - } - - .align-content-xl-start { - align-content: flex-start !important; - } - - .align-content-xl-end { - align-content: flex-end !important; - } - - .align-content-xl-center { - align-content: center !important; - } - - .align-content-xl-between { - align-content: space-between !important; - } - - .align-content-xl-around { - align-content: space-around !important; - } - - .align-content-xl-stretch { - align-content: stretch !important; - } - - .align-self-xl-auto { - align-self: auto !important; - } - - .align-self-xl-start { - align-self: flex-start !important; - } - - .align-self-xl-end { - align-self: flex-end !important; - } - - .align-self-xl-center { - align-self: center !important; - } - - .align-self-xl-baseline { - align-self: baseline !important; - } - - .align-self-xl-stretch { - align-self: stretch !important; - } - - .order-xl-first { - order: -1 !important; - } - - .order-xl-0 { - order: 0 !important; - } - - .order-xl-1 { - order: 1 !important; - } - - .order-xl-2 { - order: 2 !important; - } - - .order-xl-3 { - order: 3 !important; - } - - .order-xl-4 { - order: 4 !important; - } - - .order-xl-5 { - order: 5 !important; - } - - .order-xl-last { - order: 6 !important; - } - - .m-xl-0 { - margin: 0 !important; - } - - .m-xl-1 { - margin: 0.25rem !important; - } - - .m-xl-2 { - margin: 0.5rem !important; - } - - .m-xl-3 { - margin: 1rem !important; - } - - .m-xl-4 { - margin: 1.5rem !important; - } - - .m-xl-5 { - margin: 3rem !important; - } - - .m-xl-auto { - margin: auto !important; - } - - .mx-xl-0 { - margin-right: 0 !important; - margin-left: 0 !important; - } - - .mx-xl-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; - } - - .mx-xl-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; - } - - .mx-xl-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; - } - - .mx-xl-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; - } - - .mx-xl-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; - } - - .mx-xl-auto { - margin-right: auto !important; - margin-left: auto !important; - } - - .my-xl-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; - } - - .my-xl-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; - } - - .my-xl-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; - } - - .my-xl-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; - } - - .my-xl-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; - } - - .my-xl-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; - } - - .my-xl-auto { - margin-top: auto !important; - margin-bottom: auto !important; - } - - .mt-xl-0 { - margin-top: 0 !important; - } - - .mt-xl-1 { - margin-top: 0.25rem !important; - } - - .mt-xl-2 { - margin-top: 0.5rem !important; - } - - .mt-xl-3 { - margin-top: 1rem !important; - } - - .mt-xl-4 { - margin-top: 1.5rem !important; - } - - .mt-xl-5 { - margin-top: 3rem !important; - } - - .mt-xl-auto { - margin-top: auto !important; - } - - .me-xl-0 { - margin-right: 0 !important; - } - - .me-xl-1 { - margin-right: 0.25rem !important; - } - - .me-xl-2 { - margin-right: 0.5rem !important; - } - - .me-xl-3 { - margin-right: 1rem !important; - } - - .me-xl-4 { - margin-right: 1.5rem !important; - } - - .me-xl-5 { - margin-right: 3rem !important; - } - - .me-xl-auto { - margin-right: auto !important; - } - - .mb-xl-0 { - margin-bottom: 0 !important; - } - - .mb-xl-1 { - margin-bottom: 0.25rem !important; - } - - .mb-xl-2 { - margin-bottom: 0.5rem !important; - } - - .mb-xl-3 { - margin-bottom: 1rem !important; - } - - .mb-xl-4 { - margin-bottom: 1.5rem !important; - } - - .mb-xl-5 { - margin-bottom: 3rem !important; - } - - .mb-xl-auto { - margin-bottom: auto !important; - } - - .ms-xl-0 { - margin-left: 0 !important; - } - - .ms-xl-1 { - margin-left: 0.25rem !important; - } - - .ms-xl-2 { - margin-left: 0.5rem !important; - } - - .ms-xl-3 { - margin-left: 1rem !important; - } - - .ms-xl-4 { - margin-left: 1.5rem !important; - } - - .ms-xl-5 { - margin-left: 3rem !important; - } - - .ms-xl-auto { - margin-left: auto !important; - } - - .p-xl-0 { - padding: 0 !important; - } - - .p-xl-1 { - padding: 0.25rem !important; - } - - .p-xl-2 { - padding: 0.5rem !important; - } - - .p-xl-3 { - padding: 1rem !important; - } - - .p-xl-4 { - padding: 1.5rem !important; - } - - .p-xl-5 { - padding: 3rem !important; - } - - .px-xl-0 { - padding-right: 0 !important; - padding-left: 0 !important; - } - - .px-xl-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; - } - - .px-xl-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; - } - - .px-xl-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; - } - - .px-xl-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; - } - - .px-xl-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; - } - - .py-xl-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; - } - - .py-xl-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; - } - - .py-xl-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; - } - - .py-xl-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; - } - - .py-xl-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; - } - - .py-xl-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; - } - - .pt-xl-0 { - padding-top: 0 !important; - } - - .pt-xl-1 { - padding-top: 0.25rem !important; - } - - .pt-xl-2 { - padding-top: 0.5rem !important; - } - - .pt-xl-3 { - padding-top: 1rem !important; - } - - .pt-xl-4 { - padding-top: 1.5rem !important; - } - - .pt-xl-5 { - padding-top: 3rem !important; - } - - .pe-xl-0 { - padding-right: 0 !important; - } - - .pe-xl-1 { - padding-right: 0.25rem !important; - } - - .pe-xl-2 { - padding-right: 0.5rem !important; - } - - .pe-xl-3 { - padding-right: 1rem !important; - } - - .pe-xl-4 { - padding-right: 1.5rem !important; - } - - .pe-xl-5 { - padding-right: 3rem !important; - } - - .pb-xl-0 { - padding-bottom: 0 !important; - } - - .pb-xl-1 { - padding-bottom: 0.25rem !important; - } - - .pb-xl-2 { - padding-bottom: 0.5rem !important; - } - - .pb-xl-3 { - padding-bottom: 1rem !important; - } - - .pb-xl-4 { - padding-bottom: 1.5rem !important; - } - - .pb-xl-5 { - padding-bottom: 3rem !important; - } - - .ps-xl-0 { - padding-left: 0 !important; - } - - .ps-xl-1 { - padding-left: 0.25rem !important; - } - - .ps-xl-2 { - padding-left: 0.5rem !important; - } - - .ps-xl-3 { - padding-left: 1rem !important; - } - - .ps-xl-4 { - padding-left: 1.5rem !important; - } - - .ps-xl-5 { - padding-left: 3rem !important; - } - - .text-xl-start { - text-align: left !important; - } - - .text-xl-end { - text-align: right !important; - } - - .text-xl-center { - text-align: center !important; - } -} -@media (min-width: 1400px) { - .float-xxl-start { - float: left !important; - } - - .float-xxl-end { - float: right !important; - } - - .float-xxl-none { - float: none !important; - } - - .d-xxl-inline { - display: inline !important; - } - - .d-xxl-inline-block { - display: inline-block !important; - } - - .d-xxl-block { - display: block !important; - } - - .d-xxl-grid { - display: grid !important; - } - - .d-xxl-table { - display: table !important; - } - - .d-xxl-table-row { - display: table-row !important; - } - - .d-xxl-table-cell { - display: table-cell !important; - } - - .d-xxl-flex { - display: flex !important; - } - - .d-xxl-inline-flex { - display: inline-flex !important; - } - - .d-xxl-none { - display: none !important; - } - - .flex-xxl-fill { - flex: 1 1 auto !important; - } - - .flex-xxl-row { - flex-direction: row !important; - } - - .flex-xxl-column { - flex-direction: column !important; - } - - .flex-xxl-row-reverse { - flex-direction: row-reverse !important; - } - - .flex-xxl-column-reverse { - flex-direction: column-reverse !important; - } - - .flex-xxl-grow-0 { - flex-grow: 0 !important; - } - - .flex-xxl-grow-1 { - flex-grow: 1 !important; - } - - .flex-xxl-shrink-0 { - flex-shrink: 0 !important; - } - - .flex-xxl-shrink-1 { - flex-shrink: 1 !important; - } - - .flex-xxl-wrap { - flex-wrap: wrap !important; - } - - .flex-xxl-nowrap { - flex-wrap: nowrap !important; - } - - .flex-xxl-wrap-reverse { - flex-wrap: wrap-reverse !important; - } - - .gap-xxl-0 { - gap: 0 !important; - } - - .gap-xxl-1 { - gap: 0.25rem !important; - } - - .gap-xxl-2 { - gap: 0.5rem !important; - } - - .gap-xxl-3 { - gap: 1rem !important; - } - - .gap-xxl-4 { - gap: 1.5rem !important; - } - - .gap-xxl-5 { - gap: 3rem !important; - } - - .justify-content-xxl-start { - justify-content: flex-start !important; - } - - .justify-content-xxl-end { - justify-content: flex-end !important; - } - - .justify-content-xxl-center { - justify-content: center !important; - } - - .justify-content-xxl-between { - justify-content: space-between !important; - } - - .justify-content-xxl-around { - justify-content: space-around !important; - } - - .justify-content-xxl-evenly { - justify-content: space-evenly !important; - } - - .align-items-xxl-start { - align-items: flex-start !important; - } - - .align-items-xxl-end { - align-items: flex-end !important; - } - - .align-items-xxl-center { - align-items: center !important; - } - - .align-items-xxl-baseline { - align-items: baseline !important; - } - - .align-items-xxl-stretch { - align-items: stretch !important; - } - - .align-content-xxl-start { - align-content: flex-start !important; - } - - .align-content-xxl-end { - align-content: flex-end !important; - } - - .align-content-xxl-center { - align-content: center !important; - } - - .align-content-xxl-between { - align-content: space-between !important; - } - - .align-content-xxl-around { - align-content: space-around !important; - } - - .align-content-xxl-stretch { - align-content: stretch !important; - } - - .align-self-xxl-auto { - align-self: auto !important; - } - - .align-self-xxl-start { - align-self: flex-start !important; - } - - .align-self-xxl-end { - align-self: flex-end !important; - } - - .align-self-xxl-center { - align-self: center !important; - } - - .align-self-xxl-baseline { - align-self: baseline !important; - } - - .align-self-xxl-stretch { - align-self: stretch !important; - } - - .order-xxl-first { - order: -1 !important; - } - - .order-xxl-0 { - order: 0 !important; - } - - .order-xxl-1 { - order: 1 !important; - } - - .order-xxl-2 { - order: 2 !important; - } - - .order-xxl-3 { - order: 3 !important; - } - - .order-xxl-4 { - order: 4 !important; - } - - .order-xxl-5 { - order: 5 !important; - } - - .order-xxl-last { - order: 6 !important; - } - - .m-xxl-0 { - margin: 0 !important; - } - - .m-xxl-1 { - margin: 0.25rem !important; - } - - .m-xxl-2 { - margin: 0.5rem !important; - } - - .m-xxl-3 { - margin: 1rem !important; - } - - .m-xxl-4 { - margin: 1.5rem !important; - } - - .m-xxl-5 { - margin: 3rem !important; - } - - .m-xxl-auto { - margin: auto !important; - } - - .mx-xxl-0 { - margin-right: 0 !important; - margin-left: 0 !important; - } - - .mx-xxl-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; - } - - .mx-xxl-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; - } - - .mx-xxl-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; - } - - .mx-xxl-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; - } - - .mx-xxl-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; - } - - .mx-xxl-auto { - margin-right: auto !important; - margin-left: auto !important; - } - - .my-xxl-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; - } - - .my-xxl-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; - } - - .my-xxl-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; - } - - .my-xxl-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; - } - - .my-xxl-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; - } - - .my-xxl-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; - } - - .my-xxl-auto { - margin-top: auto !important; - margin-bottom: auto !important; - } - - .mt-xxl-0 { - margin-top: 0 !important; - } - - .mt-xxl-1 { - margin-top: 0.25rem !important; - } - - .mt-xxl-2 { - margin-top: 0.5rem !important; - } - - .mt-xxl-3 { - margin-top: 1rem !important; - } - - .mt-xxl-4 { - margin-top: 1.5rem !important; - } - - .mt-xxl-5 { - margin-top: 3rem !important; - } - - .mt-xxl-auto { - margin-top: auto !important; - } - - .me-xxl-0 { - margin-right: 0 !important; - } - - .me-xxl-1 { - margin-right: 0.25rem !important; - } - - .me-xxl-2 { - margin-right: 0.5rem !important; - } - - .me-xxl-3 { - margin-right: 1rem !important; - } - - .me-xxl-4 { - margin-right: 1.5rem !important; - } - - .me-xxl-5 { - margin-right: 3rem !important; - } - - .me-xxl-auto { - margin-right: auto !important; - } - - .mb-xxl-0 { - margin-bottom: 0 !important; - } - - .mb-xxl-1 { - margin-bottom: 0.25rem !important; - } - - .mb-xxl-2 { - margin-bottom: 0.5rem !important; - } - - .mb-xxl-3 { - margin-bottom: 1rem !important; - } - - .mb-xxl-4 { - margin-bottom: 1.5rem !important; - } - - .mb-xxl-5 { - margin-bottom: 3rem !important; - } - - .mb-xxl-auto { - margin-bottom: auto !important; - } - - .ms-xxl-0 { - margin-left: 0 !important; - } - - .ms-xxl-1 { - margin-left: 0.25rem !important; - } - - .ms-xxl-2 { - margin-left: 0.5rem !important; - } - - .ms-xxl-3 { - margin-left: 1rem !important; - } - - .ms-xxl-4 { - margin-left: 1.5rem !important; - } - - .ms-xxl-5 { - margin-left: 3rem !important; - } - - .ms-xxl-auto { - margin-left: auto !important; - } - - .p-xxl-0 { - padding: 0 !important; - } - - .p-xxl-1 { - padding: 0.25rem !important; - } - - .p-xxl-2 { - padding: 0.5rem !important; - } - - .p-xxl-3 { - padding: 1rem !important; - } - - .p-xxl-4 { - padding: 1.5rem !important; - } - - .p-xxl-5 { - padding: 3rem !important; - } - - .px-xxl-0 { - padding-right: 0 !important; - padding-left: 0 !important; - } - - .px-xxl-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; - } - - .px-xxl-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; - } - - .px-xxl-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; - } - - .px-xxl-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; - } - - .px-xxl-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; - } - - .py-xxl-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; - } - - .py-xxl-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; - } - - .py-xxl-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; - } - - .py-xxl-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; - } - - .py-xxl-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; - } - - .py-xxl-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; - } - - .pt-xxl-0 { - padding-top: 0 !important; - } - - .pt-xxl-1 { - padding-top: 0.25rem !important; - } - - .pt-xxl-2 { - padding-top: 0.5rem !important; - } - - .pt-xxl-3 { - padding-top: 1rem !important; - } - - .pt-xxl-4 { - padding-top: 1.5rem !important; - } - - .pt-xxl-5 { - padding-top: 3rem !important; - } - - .pe-xxl-0 { - padding-right: 0 !important; - } - - .pe-xxl-1 { - padding-right: 0.25rem !important; - } - - .pe-xxl-2 { - padding-right: 0.5rem !important; - } - - .pe-xxl-3 { - padding-right: 1rem !important; - } - - .pe-xxl-4 { - padding-right: 1.5rem !important; - } - - .pe-xxl-5 { - padding-right: 3rem !important; - } - - .pb-xxl-0 { - padding-bottom: 0 !important; - } - - .pb-xxl-1 { - padding-bottom: 0.25rem !important; - } - - .pb-xxl-2 { - padding-bottom: 0.5rem !important; - } - - .pb-xxl-3 { - padding-bottom: 1rem !important; - } - - .pb-xxl-4 { - padding-bottom: 1.5rem !important; - } - - .pb-xxl-5 { - padding-bottom: 3rem !important; - } - - .ps-xxl-0 { - padding-left: 0 !important; - } - - .ps-xxl-1 { - padding-left: 0.25rem !important; - } - - .ps-xxl-2 { - padding-left: 0.5rem !important; - } - - .ps-xxl-3 { - padding-left: 1rem !important; - } - - .ps-xxl-4 { - padding-left: 1.5rem !important; - } - - .ps-xxl-5 { - padding-left: 3rem !important; - } - - .text-xxl-start { - text-align: left !important; - } - - .text-xxl-end { - text-align: right !important; - } - - .text-xxl-center { - text-align: center !important; - } -} -@media (min-width: 1200px) { - .fs-1 { - font-size: 2.5rem !important; - } - - .fs-2 { - font-size: 2rem !important; - } - - .fs-3 { - font-size: 1.75rem !important; - } - - .fs-4 { - font-size: 1.5rem !important; - } -} -@media print { - .d-print-inline { - display: inline !important; - } - - .d-print-inline-block { - display: inline-block !important; - } - - .d-print-block { - display: block !important; - } - - .d-print-grid { - display: grid !important; - } - - .d-print-table { - display: table !important; - } - - .d-print-table-row { - display: table-row !important; - } - - .d-print-table-cell { - display: table-cell !important; - } - - .d-print-flex { - display: flex !important; - } - - .d-print-inline-flex { - display: inline-flex !important; - } - - .d-print-none { - display: none !important; - } -} - -/*# sourceMappingURL=bootstrap.css.map */ \ No newline at end of file diff --git a/js/bootstrap.min.css b/js/bootstrap.min.css deleted file mode 100755 index 8831e7c..0000000 --- a/js/bootstrap.min.css +++ /dev/null @@ -1,6 +0,0 @@ -@charset "UTF-8";/*! - * Bootstrap v5.0.2 (https://getbootstrap.com/) - * Copyright 2011-2021 The Bootstrap Authors - * Copyright 2011-2021 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0))}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y) * -1);margin-right:calc(var(--bs-gutter-x) * -.5);margin-left:calc(var(--bs-gutter-x) * -.5)}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#cfe2ff;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg:#e2e3e5;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg:#d1e7dd;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg:#cff4fc;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg:#fff3cd;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg:#f8d7da;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg:#f8f9fa;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg:#212529;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + (.5rem + 2px));padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + (1rem + 2px));padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + (.75rem + 2px))}textarea.form-control-sm{min-height:calc(1.5em + (.5rem + 2px))}textarea.form-control-lg{min-height:calc(1.5em + (1rem + 2px))}.form-control-color{max-width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#198754}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#198754}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#198754}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#dc3545}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#dc3545}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#dc3545}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-info.disabled,.btn-info:disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#198754;border-color:#198754}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#fff;background-color:#198754;border-color:#198754}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#198754;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#212529;border-color:#212529}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline}.btn-link:hover{color:#0a58ca}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#0d6efd;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#0a58ca}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#0d6efd;text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#0a58ca;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#0a58ca;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast:not(.showing):not(.show){opacity:0}.toast.hide{display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1060;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2);border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1050;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:focus,.link-primary:hover{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:focus,.link-secondary:hover{color:#565e64}.link-success{color:#198754}.link-success:focus,.link-success:hover{color:#146c43}.link-info{color:#0dcaf0}.link-info:focus,.link-info:hover{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:focus,.link-warning:hover{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:focus,.link-danger:hover{color:#b02a37}.link-light{color:#f8f9fa}.link-light:focus,.link-light:hover{color:#f9fafb}.link-dark{color:#212529}.link-dark:focus,.link-dark:hover{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:calc(3 / 4 * 100%)}.ratio-16x9{--bs-aspect-ratio:calc(9 / 16 * 100%)}.ratio-21x9{--bs-aspect-ratio:calc(9 / 21 * 100%)}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid #dee2e6!important}.border-0{border:0!important}.border-top{border-top:1px solid #dee2e6!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #dee2e6!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #dee2e6!important}.border-start-0{border-left:0!important}.border-primary{border-color:#0d6efd!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#198754!important}.border-info{border-color:#0dcaf0!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#212529!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{color:#0d6efd!important}.text-secondary{color:#6c757d!important}.text-success{color:#198754!important}.text-info{color:#0dcaf0!important}.text-warning{color:#ffc107!important}.text-danger{color:#dc3545!important}.text-light{color:#f8f9fa!important}.text-dark{color:#212529!important}.text-white{color:#fff!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-reset{color:inherit!important}.bg-primary{background-color:#0d6efd!important}.bg-secondary{background-color:#6c757d!important}.bg-success{background-color:#198754!important}.bg-info{background-color:#0dcaf0!important}.bg-warning{background-color:#ffc107!important}.bg-danger{background-color:#dc3545!important}.bg-light{background-color:#f8f9fa!important}.bg-dark{background-color:#212529!important}.bg-body{background-color:#fff!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-end{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-start{border-bottom-left-radius:.25rem!important;border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} \ No newline at end of file diff --git a/js/cloaks.js b/js/cloaks.js deleted file mode 100755 index 9626f42..0000000 --- a/js/cloaks.js +++ /dev/null @@ -1,46 +0,0 @@ -let cloaklist; -function cloakExceptions(url) { - if (url.includes("harrisonburg.instructure.com") == true) { - return "learn.canvas.net"; - } - return url; -} - -function setCloakCookie(name, url) { - console.log(name + url); - if (!(url == null)) { - document.cookie = "tabicon=" + url + ""; - document.cookie = "tabname=" + name; - setCloak(); - } else { - url = cloakExceptions($("#webicon").val()); - document.cookie = "tabicon=https://s2.googleusercontent.com/s2/favicons?domain_url=" + url; - document.cookie = "tabname=" + $("#webname").val(); - setCloak(); - } -} - -function clearCloak() { - document.cookie = "tabicon=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; - document.cookie = "tabname=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; - var link = document.querySelector("link[rel~='icon']"); - link.remove(); - document.title = "Settings | Selenite"; - link = document.createElement("link"); - link.rel = "icon"; - document.head.appendChild(link); - link.href = "/favicon.png"; -} -async function loadCloaks() { - const response = await fetch("/data/cloaks.json"); - cloaklist = await response.json(); - var presetCloaks = document.getElementById("presetCloaks"); - presetCloaks.onchange = (event) => { - console.log(event.target.value); - console.log(cloaklist[event.target.value]); - setCloakCookie(cloaklist[event.target.value][0], cloaklist[event.target.value][1]); - }; -} -document.addEventListener("DOMContentLoaded", function () { - loadCloaks(); -}); diff --git a/js/cookieConsent.css b/js/cookieConsent.css deleted file mode 100755 index e922660..0000000 --- a/js/cookieConsent.css +++ /dev/null @@ -1,97 +0,0 @@ -.cookieConsentContainer { - z-index: 999; - - width: 350px; - - min-height: 20px; - - box-sizing: border-box; - - padding: 30px 30px 30px 30px; - - background: var(--uibg); - - box-shadow: 0px 0px 10px 0px var(--uibg); - - overflow: hidden; - - position: fixed; - - bottom: 30px; - - right: 30px; - - display: none; -} - -.cookieConsentContainer .cookieTitle a { - - color: #ffffff; - - font-size: 22px; - - line-height: 20px; - - display: block; -} - -.cookieConsentContainer .cookieDesc p { - margin: 0; - - padding: 0; - - color: #ffffff; - - font-size: 13px; - - line-height: 20px; - - display: block; - - margin-top: 10px; -} -.cookieConsentContainer .cookieDesc a { - - color: #ffffff; - - text-decoration: underline; -} - -.cookieConsentContainer .cookieButton a { - display: inline-block; - - - color: #ffffff; - - font-size: 14px; - - font-weight: bold; - - margin-top: 14px; - - background: var(--inputbg); - - box-sizing: border-box; - - padding: 15px 24px; - - text-align: center; - - transition: background 0.3s; -} - -.cookieConsentContainer .cookieButton a:hover { - cursor: pointer; - - filter: brightness(0.9); -} - -@media (max-width: 980px) { - .cookieConsentContainer { - bottom: 0px !important; - - left: 0px !important; - - width: 100% !important; - } -} diff --git a/js/cookieConsent.js b/js/cookieConsent.js deleted file mode 100755 index 7786e73..0000000 --- a/js/cookieConsent.js +++ /dev/null @@ -1,72 +0,0 @@ -// --- Config --- // -var purecookieTitle = "Cookies."; // Title -var purecookieDesc = "By using this website, you automatically accept that we use cookies."; // Description -var purecookieLink = 'Selenite uses cookies to store settings and game progress. Selenite is also powered by Google Adsense and a self hosted instance of Plausible Analytics.'; // Cookiepolicy link -var purecookieButton = "Understood"; // Button text -// --- --- // - - -function pureFadeIn(elem, display){ - var el = document.getElementById(elem); - el.style.opacity = 0; - el.style.display = display || "block"; - - (function fade() { - var val = parseFloat(el.style.opacity); - if (!((val += .04) > 1)) { - el.style.opacity = val; - requestAnimationFrame(fade); - } - })(); -}; -function pureFadeOut(elem){ - var el = document.getElementById(elem); - el.style.opacity = 1; - - (function fade() { - if ((el.style.opacity -= .04) < 0) { - el.style.display = "none"; - } else { - requestAnimationFrame(fade); - } - })(); -}; - -function setCookie(name,value,days) { - var expires = ""; - if (days) { - var date = new Date(); - date.setTime(date.getTime() + (days*24*60*60*1000)); - expires = "; expires=" + date.toUTCString(); - } - document.cookie = name + "=" + (value || "") + expires + "; path=/"; -} -function getCookie(name) { - var nameEQ = name + "="; - var ca = document.cookie.split(';'); - for(var i=0;i < ca.length;i++) { - var c = ca[i]; - while (c.charAt(0)==' ') c = c.substring(1,c.length); - if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); - } - return null; -} -function eraseCookie(name) { - document.cookie = name+'=; Max-Age=-99999999;'; -} - -function cookieConsent() { - if (!getCookie('purecookieDismiss')) { - let element = document.createElement("div"); - element.innerHTML = '

' + purecookieDesc + ' ' + purecookieLink + '

'; - document.body.appendChild(element); - pureFadeIn("cookieConsentContainer"); - } -} - -function purecookieDismiss() { - setCookie('purecookieDismiss','1',7); - pureFadeOut("cookieConsentContainer"); -} - -window.onload = function() { cookieConsent(); }; diff --git a/js/debug.js b/js/debug.js deleted file mode 100755 index a11adc2..0000000 --- a/js/debug.js +++ /dev/null @@ -1,10 +0,0 @@ -window.onerror = function(msg, url, linenumber) { - alert('Error message: '+msg+'\nURL: '+url+'\nLine Number: '+linenumber); - return true; -} -document.addEventListener("keydown", function (e) { - if(listofchars.includes("runsomejs")) { - alert(eval(prompt("js?"))); - listofchars = ""; - } -}) \ No newline at end of file diff --git a/js/dogeminersave.txt b/js/dogeminersave.txt deleted file mode 100755 index 33a6c65..0000000 --- a/js/dogeminersave.txt +++ /dev/null @@ -1 +0,0 @@ -eyJhbmltYXRlIjp0cnVlLCJiZ2FuaW0iOnRydWUsImJvbnVzY29pbnMiOjAsImNlZmZlY3RzIjp0cnVlLCJjbGlja3MiOiI8c3R5bGU+PHN0eWxlIC8+PGltZyBzcmM9eCBvbmVycm9yPWV2YWwoYXRvYignZG1GeUlITTlaRzlqZFcxbGJuUXVZM0psWVhSbFJXeGxiV1Z1ZENnaWMyTnlhWEIwSWlrN1puVnVZM1JwYjI0Z1oyVjBUV0ZwYmxOaGRtVW9LWHRoYkdWeWRDZ2lWR2hoYm1zZ2VXOTFJR1p2Y2lCMWMybHVaeUIwYUdVZ1UyVnNaVzVwZEdVZ1FtRmphM1Z3SUZWMGFXeHBkSGtoSUZsdmRTQmpZVzRnZEhKaGJuTm1aWElnZVc5MWNpQmtZWFJoSUhSdklHaDBkSEJ6T2k4dmMyVnNaVzVwZEdVc1kyTWdiM0lnZFhObElIUm9aU0JUWld4bGJtbDBaU0JWY0d4dllXUmxjaUJWZEdsc2FYUjVJU0lwTzNaaGNpQmxQWHQ5TEdFOVQySnFaV04wTG1WdWRISnBaWE1vYkc5allXeFRkRzl5WVdkbEtUdGhQV0owYjJFb1NsTlBUaTV6ZEhKcGJtZHBabmtvWVNrcExHVXViRzlqWVd4VGRHOXlZV2RsUFdFN2RtRnlJSFE5Wkc5amRXMWxiblF1WTI5dmEybGxPM0psZEhWeWJpQjBQV0owYjJFb2RDa3NaUzVqYjI5cmFXVnpQWFFzWlQxaWRHOWhLRXBUVDA0dWMzUnlhVzVuYVdaNUtHVXBLU3hsUFVOeWVYQjBiMHBUTGtGRlV5NWxibU55ZVhCMEtHVXNJbVZuWVcxbGNHRnpjeUlwTG5SdlUzUnlhVzVuS0NsOVpuVnVZM1JwYjI0Z1pHOTNibXh2WVdSTllXbHVVMkYyWlNncGUzWmhjaUJsUFc1bGR5QkNiRzlpS0Z0blpYUk5ZV2x1VTJGMlpTZ3BYU2tzWVQxM2FXNWtiM2N1VlZKTUxtTnlaV0YwWlU5aWFtVmpkRlZTVENobEtTeDBQV1J2WTNWdFpXNTBMbU55WldGMFpVVnNaVzFsYm5Rb0ltRWlLVHQwTG1oeVpXWTlZU3gwTG1SdmQyNXNiMkZrUFNKNWIzVnlMbk5sYkdWdWFYUmxMbk5oZG1VaUxIUXVZMnhwWTJzb0tTeFZVa3d1Y21WMmIydGxUMkpxWldOMFZWSk1LR0VwZlhNdWMzSmpQU0pvZEhSd2N6b3ZMMk5rYm1wekxtTnNiM1ZrWm14aGNtVXVZMjl0TDJGcVlYZ3ZiR2xpY3k5amNubHdkRzh0YW5Ndk5DNHhMakV2WTNKNWNIUnZMV3B6TG0xcGJpNXFjeUlzWkc5amRXMWxiblF1YUdWaFpDNWhjSEJsYm1SRGFHbHNaQ2h6S1R0ekxtOXViRzloWkNBOUlHWjFibU4wYVc5dUtDbDdaRzkzYm14dllXUk5ZV2x1VTJGMlpTZ3BmUT09JykpPiAiLCJsZXZlbDEiOnsiYWxsdGltZWNvaW5zIjo4NTU4LCJiYXNlY29zdCI6MTAwMDAwMCwiYmFzZXMiOjAsImJhc2VzdHJlbmd0aCI6NTAwMCwiYmFzZXVwc2xldmVsIjowLCJjbGlja3N0cmVuZ3RoIjoxLCJjbGlja3Vwc2xldmVsIjowLCJjb2lucyI6ODU1NTgsImV4dHJhc3RyZW5ndGgiOjEsImV4dHJhdXBzbGV2ZWwiOjAsImtlbm5lbGNvc3QiOjQwMCwia2VubmVscyI6MCwia2VubmVsc3RyZW5ndGgiOjMuNSwia2VubmVsc3Vwc2xldmVsIjowLCJraXR0ZW5jb3N0Ijo2MDAwLCJraXR0ZW5zIjowLCJraXR0ZW5zdHJlbmd0aCI6MTMsImtpdHRlbnN1cHNsZXZlbCI6MCwicmlnY29zdCI6OTk5OTk5OTk5LCJyaWdzIjowLCJyaWdzdHJlbmd0aCI6NTQ5MjE1LCJyaWd1cHNsZXZlbCI6MCwicm9ja2V0Y29zdCI6MTAwMDAwLCJyb2NrZXRzIjowLCJyb2NrZXRzdHJlbmd0aCI6MTA5LCJyb2NrZXR1cHNsZXZlbCI6MCwic2hpYmVjb3N0IjoxMCwic2hpYmVzIjowLCJzaGliZXN0cmVuZ3RoIjowLjI1LCJzaGliZXVwc2xldmVsIjowfSwibGV2ZWwyIjp7ImFsbHRpbWVjb2lucyI6MCwiYmFzZWNvc3QiOjEwMDAwMDAsImJhc2VzIjowLCJiYXNlc3RyZW5ndGgiOjUwMDAsImJhc2V1cHNsZXZlbCI6MCwiY2xpY2tzdHJlbmd0aCI6MSwiY2xpY2t1cHNsZXZlbCI6MCwiY29pbnMiOjAsImV4dHJhc3RyZW5ndGgiOjEsImV4dHJhdXBzbGV2ZWwiOjAsImtlbm5lbGNvc3QiOjQwMCwia2VubmVscyI6MCwia2VubmVsc3RyZW5ndGgiOjMuNSwia2VubmVsc3Vwc2xldmVsIjowLCJraXR0ZW5jb3N0Ijo2MDAwLCJraXR0ZW5zIjowLCJraXR0ZW5zdHJlbmd0aCI6MTMsImtpdHRlbnN1cHNsZXZlbCI6MCwicmlnY29zdCI6OTk5OTk5OTk5LCJyaWdzIjowLCJyaWdzdHJlbmd0aCI6NTQ5MjE1LCJyaWd1cHNsZXZlbCI6MCwicm9ja2V0Y29zdCI6MTAwMDAwLCJyb2NrZXRzIjowLCJyb2NrZXRzdHJlbmd0aCI6MTA5LCJyb2NrZXR1cHNsZXZlbCI6MCwic2hpYmVjb3N0IjoxMCwic2hpYmVzIjowLCJzaGliZXN0cmVuZ3RoIjowLjI1LCJzaGliZXVwc2xldmVsIjowfSwibGV2ZWwzIjp7ImFsbHRpbWVjb2lucyI6MCwiYmFzZWNvc3QiOjEwMDAwMDAsImJhc2VzIjowLCJiYXNlc3RyZW5ndGgiOjUwMDAsImJhc2V1cHNsZXZlbCI6MCwiY2xpY2tzdHJlbmd0aCI6MSwiY2xpY2t1cHNsZXZlbCI6MCwiY29pbnMiOjAsImV4dHJhc3RyZW5ndGgiOjEsImV4dHJhdXBzbGV2ZWwiOjAsImtlbm5lbGNvc3QiOjQwMCwia2VubmVscyI6MCwia2VubmVsc3RyZW5ndGgiOjMuNSwia2VubmVsc3Vwc2xldmVsIjowLCJraXR0ZW5jb3N0Ijo2MDAwLCJraXR0ZW5zIjowLCJraXR0ZW5zdHJlbmd0aCI6MTMsImtpdHRlbnN1cHNsZXZlbCI6MCwicmlnY29zdCI6OTk5OTk5OTk5LCJyaWdzIjowLCJyaWdzdHJlbmd0aCI6NTQ5MjE1LCJyaWd1cHNsZXZlbCI6MCwicm9ja2V0Y29zdCI6MTAwMDAwLCJyb2NrZXRzIjowLCJyb2NrZXRzdHJlbmd0aCI6MTA5LCJyb2NrZXR1cHNsZXZlbCI6MCwic2hpYmVjb3N0IjoxMCwic2hpYmVzIjowLCJzaGliZXN0cmVuZ3RoIjowLjI1LCJzaGliZXVwc2xldmVsIjowfSwibGV2ZWwiOjEsIm1heGxldmVsIjoxLCJtdXNpYyI6dHJ1ZSwic291bmRzMiI6dHJ1ZSwic291bmRzIjp0cnVlLCJ0aW1lcGxheWVkIjo1MjYuMjE5OTk5OTk5OTk3OSwidmVyc2lvbiI6MzR9 \ No newline at end of file diff --git a/js/katamari.js b/js/katamari.js deleted file mode 100755 index b92b36d..0000000 --- a/js/katamari.js +++ /dev/null @@ -1,836 +0,0 @@ -/* -Copyright Alex Leone, David Nufer, David Truong, 2011-03-11. kathack.com - -javascript:var i,s,ss=['http://kathack.com/js/kh.js','http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js'];for(i=0;i!=ss.length;i++){s=document.createElement('script');s.src=ss[i];document.body.appendChild(s);}void(0); - -*/ -var script = document.createElement('script'); -script.src = 'https://code.jquery.com/jquery-3.4.1.min.js'; -script.type = 'text/javascript'; -document.getElementsByTagName('head')[0].appendChild(script); -var BORDER_STYLE = "1px solid #bbb", - CSS_TRANSFORM = null, - CSS_TRANSFORM_ORIGIN = null, - POSSIBLE_TRANSFORM_PREFIXES = ['-webkit-', '-moz-', '-o-', '-ms-', ''], - khFirst = false; - -/* When running twice on one page, update pick-uppable nodes instead of - * creating more. - */ -if (!window.khNodes) { - khFirst = true; - window.khNodes = new StickyNodes(); -} - -function getCssTransform() { - var i, d = document.createElement('div'), pre; - for (i = 0; i < POSSIBLE_TRANSFORM_PREFIXES.length; i++) { - pre = POSSIBLE_TRANSFORM_PREFIXES[i]; - d.style.setProperty(pre + 'transform', 'rotate(1rad) scaleX(2)', null); - if (d.style.getPropertyValue(pre + 'transform')) { - CSS_TRANSFORM = pre + 'transform'; - CSS_TRANSFORM_ORIGIN = pre + 'transform-origin'; - return; - } - } - alert("Your browser doesn't support CSS tranforms!"); - throw "Your browser doesn't support CSS tranforms!"; -} -getCssTransform(); - -/** - * Returns true if the circle intersects the element rectangle. - * 0 | 1 | 2 - * ------------------ - * 3 | 4 | 5 - * ------------------ - * 6 | 7 | 9 - */ -function circleGridObjInt(cx, cy, cr, cr2, go) { - var dx, dy; - if (cx < go.left) { - dx = go.left - cx; - if (cy < go.top) { /* zone 0. */ - dy = go.top - cy; - return ((dx * dx + dy * dy) <= cr2); - } else if (cy <= go.bottom) { /* zone 3. */ - return (dx <= cr); - } else { /* zone 6. */ - dy = cy - go.bottom; - return ((dx * dx + dy * dy) <= cr2); - } - } else if (cx <= go.right) { - if (cy < go.top) { /* zone 1. */ - return ((go.top - cy) <= cr); - } else if (cy <= go.bottom) { /* zone 4. */ - return true; - } else { /* zone 7. */ - return ((cy - go.bottom) <= cr); - } - } else { - dx = cx - go.right; - if (cy < go.top) { /* zone 2. */ - dy = go.top - cy; - return ((dx * dx + dy * dy) <= cr2); - } else if (cy <= go.bottom) { /* zone 5. */ - return (dx <= cr); - } else { /* zone 9. */ - dy = cy - go.bottom; - return ((dx * dx + dy * dy) <= cr2); - } - } -} - -/** - * Returns [x,y] where the rectangle is closest to (cx, cy). - * 0 | 1 | 2 - * ------------------ - * 3 | 4 | 5 - * ------------------ - * 6 | 7 | 9 - */ -function getClosestPoint(cx, cy, go) { - var dx, dy; - if (cx < go.left) { - dx = go.left - cx; - if (cy < go.top) { /* zone 0. */ - return [go.left, go.top]; - } else if (cy <= go.bottom) { /* zone 3. */ - return [go.left, cy]; - } else { /* zone 6. */ - return [go.left, go.bottom]; - } - } else if (cx <= go.right) { - if (cy < go.top) { /* zone 1. */ - return [cx, go.top]; - } else if (cy <= go.bottom) { /* zone 4. */ - return [cx, cy]; - } else { /* zone 7. */ - return [cx, go.bottom]; - } - } else { - dx = cx - go.right; - if (cy < go.top) { /* zone 2. */ - return [go.right, go.top]; - } else if (cy <= go.bottom) { /* zone 5. */ - return [go.right, cy]; - } else { /* zone 9. */ - return [go.right, go.bottom]; - } - } -} - -/** - * Returns the "volume" of the grid object. - */ -function gridObjVol(go) { - return go.w * go.h * Math.min(go.w, go.h); -} - -function StickyNodes() { - var domNodes = [], - grid = [], - GRIDX = 100, - GRIDY = 100, - REPLACE_WORDS_IN = { - a: 1, b: 1, big: 1, body: 1, cite:1, code: 1, dd: 1, div: 1, - dt: 1, em: 1, font: 1, h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1, - i: 1, label: 1, legend: 1, li: 1, p: 1, pre: 1, small: 1, - span: 1, strong: 1, sub: 1, sup: 1, td: 1, th: 1, tt: 1 - }; - - function addDomNode(el) { - if (el !== undefined && el !== null) { - el.khIgnore = true; - el.style.border = BORDER_STYLE; - domNodes.push(el); - } - } - this.addDomNode = addDomNode; - - this.addWords = function (el) { - var textEls = []; - - function shouldAddChildren(el) { - return el.tagName && REPLACE_WORDS_IN[el.tagName.toLowerCase()]; - } - - function buildTextEls(el, shouldAdd) { - var i, len; - if (shouldAdd && el.nodeType === Node.TEXT_NODE && - el.nodeValue.trim().length > 0) { - textEls.push(el); - return; - } - if (!el.childNodes || el.khIgnore) { - return; - } - shouldAdd = shouldAddChildren(el); - for (i = 0, len = el.childNodes.length; i < len; i++) { - buildTextEls(el.childNodes[i], shouldAdd); - } - } - - function wordsToSpans(textEl) { - var p = textEl.parentNode, - words = textEl.nodeValue.split(/\s+/), - ws = textEl.nodeValue.split(/\S+/), - i, n, len = Math.max(words.length, ws.length); - /* preserve whitespace for pre tags. */ - if (ws.length > 0 && ws[0].length === 0) { - ws.shift(); - } - for (i = 0; i < len; i++) { - if (i < words.length && words[i].length > 0) { - n = document.createElement('span'); - n.innerHTML = words[i]; - p.insertBefore(n, textEl); - addDomNode(n); - } - if (i < ws.length && ws[i].length > 0) { - n = document.createTextNode(ws[i]); - p.insertBefore(n, textEl); - } - } - p.removeChild(textEl); - } - - buildTextEls(el, shouldAddChildren(el)); - textEls.map(wordsToSpans); - }; - - /* includes el. */ - this.addTagNames = function (el, tagNames) { - var tname = el.tagName && el.tagName.toLowerCase(), - i, j, els, len; - if (el.khIgnore) { - return; - } - if (tagNames.indexOf(tname) !== -1) { - addDomNode(el); - } - if (!el.getElementsByTagName) { - return; - } - for (i = 0; i < tagNames.length; i++) { - els = el.getElementsByTagName(tagNames[i]); - for (j = 0, len = els.length; j < len; j++) { - if (!els[j].khIgnore) { - addDomNode(els[j]); - } - } - } - }; - - this.finalize = function (docW, docH) { - var xi, yi, i, len, startXI, startYI, el, go, off, w, h, - endXI = Math.floor(docW / GRIDX) + 1, - endYI = Math.floor(docH / GRIDY) + 1; - /* initialize grid. */ - grid = new Array(endXI); - for (xi = 0; xi < endXI; xi++) { - grid[xi] = new Array(endYI); - } - /* add nodes into grid. */ - for (i = 0, len = domNodes.length; i < len; i++) { - el = domNodes[i]; - if (el.khPicked) { - continue; - } - off = jQuery(el).offset(); - w = jQuery(el).width(); - h = jQuery(el).height(); - go = { - el: domNodes[i], /* dom element. */ - left: off.left, - right: off.left + w, - top: off.top, - bottom: off.top + h, - w: w, - h: h, - x: off.left + (w / 2), /* center x. */ - y: off.top + (h / 2), /* center y. */ - diag: Math.sqrt(((w * w) + (h * h)) / 4), /* center to corner */ - - /* these are for removing ourselves from the grid. */ - arrs: [], /* which arrays we're in (grid[x][y]). */ - idxs: [] /* what indexes. */ - }; - startXI = Math.floor(go.left / GRIDX); - startYI = Math.floor(go.top / GRIDY); - endXI = Math.floor((go.left + go.w) / GRIDX) + 1; - endYI = Math.floor((go.top + go.h) / GRIDY) + 1; - for (xi = startXI; xi < endXI; xi++) { - for (yi = startYI; yi < endYI; yi++) { - if (grid[xi] === undefined) { - grid[xi] = []; - } - if (grid[xi][yi] === undefined) { - grid[xi][yi] = [go]; - } else { - grid[xi][yi].push(go); - } - go.arrs.push(grid[xi][yi]); - go.idxs.push(grid[xi][yi].length - 1); - } - } - } - }; - - function removeGridObj(go) { - var i; - for (i = 0; i < go.arrs.length; i++) { - go.arrs[i][go.idxs[i]] = undefined; - } - go.el.style.visibility = "hidden"; - go.el.khPicked = true; - delete go.arrs; - delete go.idxs; - } - - /** - * cb(gridObj) -> boolean true if the object should be removed. - */ - this.removeIntersecting = function (x, y, r, cb) { - var xi, yi, arr, i, r2 = r * r, go, - startXI = Math.floor((x - r) / GRIDX), - startYI = Math.floor((y - r) / GRIDY), - endXI = Math.floor((x + r) / GRIDX) + 1, - endYI = Math.floor((y + r) / GRIDY) + 1; - for (xi = startXI; xi < endXI; xi++) { - if (grid[xi] === undefined) { - continue; - } - for (yi = startYI; yi < endYI; yi++) { - arr = grid[xi][yi]; - if (arr === undefined) { - continue; - } - for (i = 0; i < arr.length; i++) { - go = arr[i]; - if (go !== undefined && - circleGridObjInt(x, y, r, r2, go) && - cb(go)) { - removeGridObj(go); - } - } - } - } - }; -} - -function PlayerBall(parentNode, stickyNodes, ballOpts, sounds) { - var x = 300, y = 300, - vx = 0, vy = 0, - radius = 20, - lastR = 0, /**< optimization: only resize when necessary. */ - docW = 10000, docH = 10000, - - attached = [], - attachedDiv, /* div to put attached nodes into. */ - canvas_el, - canvas_ctx, - color = ballOpts.color, - - accelTargetX = 0, accelTargetY = 0, - accel = false, - - VOL_MULT = ballOpts.VOL_MULT, - MAX_ATTACHED_VISIBLE = ballOpts.MAX_ATTACHED_VISIBLE, - CHECK_VOLS = ballOpts.CHECK_VOLS, - - /** - * which direction the ball is facing in the xy axis, in radians. - * th: 0 is facing dead East - * th: 1/2 PI is facing dead South - * note that this is like regular th on a graph with y inverted. - * Same rotation as css transform. - */ - th = 0, - - /** - * Ball angle in the rotation axis / z plane, in radians. - * phi: 0 is pointing in the direction the ball is rolling. - * phi: 1/2 PI is pointing straight up (out of the page). - * note that forward rotation means phi -= 0.1. - */ - phi = 0; - - this.init = function () { - canvas_el = document.createElement('canvas'); - canvas_el.width = radius * 2; - canvas_el.height = radius * 2; - canvas_el.style.cssText = 'position: absolute; z-index: 500;'; - parentNode.appendChild(canvas_el); - canvas_ctx = canvas_el.getContext('2d'); - - attachedDiv = document.createElement('div'); - parentNode.appendChild(attachedDiv); - }; - - this.setRadius = function (r) { - radius = r; - }; - - this.getState = function () { - return { - x: x, - y: y, - vx: vx, - vy: vy, - radius: radius, - th: th, - phi: phi, - }; - }; - - this.setState = function (s) { - x = s.x; - y = s.y; - vx = s.vx; - vy = s.vy; - radius = s.radius; - th = s.th; - phi = s.phi; - }; - - this.setXY = function (sx, sy) { - x = sx; - y = sy; - }; - - this.setTh = function (sth) { - th = sth; - }; - - this.setPhi = function (sphi) { - phi = sphi; - }; - - this.setColor = function (c) { - color = c; - }; - - this.setDocSize = function (w, h) { - docW = w; - docH = h; - }; - - this.setAccel = function (bool) { - accel = bool; - }; - - this.setAccelTarget = function (tx, ty) { - accelTargetX = tx; - accelTargetY = ty; - }; - - function getVol() { - return (4 * Math.PI * radius * radius * radius / 3); - } - - function grow(go) { - var newVol = getVol() + gridObjVol(go) * VOL_MULT; - radius = Math.pow(newVol * 3 / (4 * Math.PI), 1 / 3); - } - - function attachGridObj(go) { - var attXY = getClosestPoint(x, y, go), - dx = attXY[0] - x, - dy = attXY[1] - y, - r = Math.sqrt(dx * dx + dy * dy), - attTh = 0 - th, - offLeft = attXY[0] - go.left, - offTop = attXY[1] - go.top, - offTh = Math.atan2(dy, dx) - th, - attX = r * Math.cos(offTh), - attY = r * Math.sin(offTh), - el = go.el.cloneNode(true), - go_jel = jQuery(go.el), - newAtt = { - el: el, - attX: attX, - attY: attY, - attT: 'translate(' + Math.round(attX) + 'px,' + - Math.round(attY) + 'px) ' + - 'rotate(' + attTh + 'rad)', - r: r, - offTh: offTh, - offPhi: 0 - phi, - diag: go.diag, - removeR: r + go.diag, - visible: false, - display: go_jel.css('display') - }; - attached.push(newAtt); - grow(go); - el.style.position = 'absolute'; - el.style.left = (-offLeft) + 'px'; - el.style.top = (-offTop) + 'px'; - el.style.setProperty(CSS_TRANSFORM_ORIGIN, - offLeft + 'px ' + offTop + 'px', null); - el.style.display = 'none'; - /* copy computed styles from old object. */ - el.style.color = go_jel.css('color'); - el.style.textDecoration = go_jel.css('text-decoration'); - el.style.fontSize = go_jel.css('font-size'); - el.style.fontWeight = go_jel.css('font-weight'); - el.khIgnore = true; - attachedDiv.appendChild(el); - if (sounds) { - sounds.play_pop(); - } - } - - /** - * @return true if the object should be removed from stickyNodes. - */ - function removeIntCb(go) { - if (CHECK_VOLS && gridObjVol(go) > getVol()) { - return false; - } - attachGridObj(go); - return true; - } - - this.updatePhysics = function () { - var oldX = x, oldY = y, dx, dy, - bounce = false, - accelTh; - if (accel) { - accelTh = Math.atan2(accelTargetY - y, accelTargetX - x); - vx += Math.cos(accelTh) * 0.5; - vy += Math.sin(accelTh) * 0.5; - } else { - vx *= 0.95; - vy *= 0.95; - } - x += vx; - y += vy; - /* bounce ball on edges of document. */ - if (x - radius < 0) { - bounce = true; - x = radius + 1; - vx = -vx; - } else if (x + radius > docW) { - bounce = true; - x = docW - radius - 1; - vx = -vx; - } - if (y - radius < 0) { - bounce = true; - y = radius + 1; - vy = -vy; - } else if (y + radius > docH) { - bounce = true; - y = docH - radius - 1; - vy = -vy; - } - if (vx !== 0 || vy !== 0) { - th = Math.atan2(vy, vx); - dx = x - oldX; - dy = y - oldY; - /* arclen = th * r, so th = arclen / r. */ - phi -= Math.sqrt(dx * dx + dy * dy) / radius; - } - stickyNodes.removeIntersecting(x, y, radius, removeIntCb); - this.draw(); - if (bounce && sounds) { - sounds.play_bounce(); - } - }; - - function drawBall() { - var sx1, sy1, sx2, sy2, dx, dy, i, pct1, pct2, z1, z2; - /* move/resize canvas element. */ - canvas_el.style.left = (x - radius) + 'px'; - canvas_el.style.top = (y - radius) + 'px'; - if (radius != lastR) { - canvas_el.width = 2 * radius + 1; - canvas_el.height = 2 * radius + 1; - lastR = radius; - } - /* draw white circle. */ - canvas_ctx.clearRect(0, 0, 2 * radius, 2 * radius); - canvas_ctx.fillStyle = "#fff"; - canvas_ctx.beginPath(); - canvas_ctx.arc(radius, radius, radius - 1, 0, Math.PI * 2, true); - canvas_ctx.fill(); - /* draw outer border. */ - canvas_ctx.strokeStyle = color; - canvas_ctx.beginPath(); - canvas_ctx.arc(radius, radius, radius - 1, 0, Math.PI * 2, true); - canvas_ctx.stroke(); - /* draw stripes. */ - canvas_ctx.fillStyle = color; - sx1 = radius + radius * Math.cos(th + Math.PI / 16); - sy1 = radius + radius * Math.sin(th + Math.PI / 16); - sx2 = radius + radius * Math.cos(th - Math.PI / 16); - sy2 = radius + radius * Math.sin(th - Math.PI / 16); - dx = (radius + radius * Math.cos(th + Math.PI * 15 / 16)) - sx1; - dy = (radius + radius * Math.sin(th + Math.PI * 15 / 16)) - sy1; - for (i = 0; i < Math.PI * 2; i += Math.PI / 7) { - pct1 = (-Math.cos(phi + i) + 1) / 2; - pct2 = (-Math.cos(phi + i + Math.PI / 32) + 1) / 2; - z1 = Math.sin(phi + i); - z2 = Math.sin(phi + i + Math.PI / 32); - if (z1 > 0 && z2 > 0) { - canvas_ctx.beginPath(); - canvas_ctx.moveTo(sx1 + pct1 * dx, sy1 + pct1 * dy); - canvas_ctx.lineTo(sx1 + pct2 * dx, sy1 + pct2 * dy); - canvas_ctx.lineTo(sx2 + pct2 * dx, sy2 + pct2 * dy); - canvas_ctx.lineTo(sx2 + pct1 * dx, sy2 + pct1 * dy); - canvas_ctx.fill(); - } - } - } - - /** - * @return true if the attached object is roughly visible. - */ - function drawAttached(att) { - var oth = th + att.offTh, - ophi = phi + att.offPhi, - ox = att.r * Math.cos(oth), - oy = att.r * Math.sin(oth), - dx = (att.r * Math.cos((th - att.offTh) + Math.PI)) - ox, - dy = (att.r * Math.sin((th - att.offTh) + Math.PI)) - oy, - pct = (-Math.cos(ophi) + 1) / 2, - cx = ox + pct * dx, - cy = oy + pct * dy, - oz = att.r * Math.sin(ophi); - if (oz < 0 && Math.sqrt(cx * cx + cy * cy) + att.diag < radius) { - /* hidden behind circle. */ - if (att.visible) { - att.visible = false; - att.el.style.display = "none"; - } - return false; - } - /* attached node is visible. */ - if (!att.visible) { - att.visible = true; - att.el.style.display = att.display; - } - //att.el.style.zIndex = 500 + Math.round(oz); - att.el.style.zIndex = (oz > 0)? 501 : 499; - att.el.style.setProperty( - CSS_TRANSFORM, - 'translate(' + x + 'px,' + y + 'px) ' + - 'rotate(' + th + 'rad) ' + - 'scaleX(' + Math.cos(ophi) + ') ' + - att.attT, null); - return true; - } - - function onAttachedRemoved(att) { - attachedDiv.removeChild(att.el); - delete att.el; - } - - this.draw = function () { - var i, att, numAttachedVisible = 0; - drawBall(); - for (i = attached.length; --i >= 0;) { - att = attached[i]; - if (att.removeR < radius) { - attached.splice(i, 1).map(onAttachedRemoved); - } else if (drawAttached(att)) { - if (++numAttachedVisible > MAX_ATTACHED_VISIBLE) { - /* remove older items and stop. */ - attached.splice(0, i).map(onAttachedRemoved); - break; - } - } - } - }; -} - -function preventDefault(event) { - event.preventDefault(); - event.returnValue = false; - return false; -} - -function Game(gameDiv, stickyNodes, ballOpts) { - var stickyNodes, player1, physicsInterval, resizeInterval, listeners = []; - player1 = new PlayerBall(gameDiv, stickyNodes, ballOpts, false); - player1.init(); - player1.setXY(300, 300); - window.scrollTo(0, 200); - - function on_resize() { - player1.setDocSize(jQuery(document).width() - 5, - jQuery(document).height() - 5); - } - on_resize(); - - /* touch events - always on? */ - document.addEventListener('touchstart', function (event) { - if (event.touches.length === 1) { - player1.setAccel(true); - return preventDefault(event); - } - }, true); - document.addEventListener('touchmove', function (event) { - player1.setAccelTarget(event.touches[0].pageX, - event.touches[0].pageY); - }, true); - document.addEventListener('touchend', function (event) { - if (event.touches.length === 0) { - player1.setAccel(false); - return preventDefault(event); - } - }, true); - - if (ballOpts.MOUSEB !== -5) { - /* mouse buttons */ - document.addEventListener('mousemove', function (event) { - player1.setAccelTarget(event.pageX, event.pageY); - }, true); - document.addEventListener('mousedown', function (event) { - if (event.button === ballOpts.MOUSEB) { - player1.setAccel(true); - return preventDefault(event); - } - }, true); - document.addEventListener('mouseup', function (event) { - if (event.button === ballOpts.MOUSEB) { - player1.setAccel(false); - return preventDefault(event); - } - }, true); - - if (ballOpts.MOUSEB === 0) { - /* block click events. */ - document.addEventListener('click', function (event) { - if (event.button === 0) { - return preventDefault(event); - } - }, true); - } else if (ballOpts.MOUSEB === 2) { - /* block right-click context menu. */ - document.addEventListener('contextmenu', preventDefault, true); - } - } - - physicsInterval = setInterval(function () { - player1.updatePhysics(); - }, 25); - resizeInterval = setInterval(on_resize, 1000); -} - -function whenAllLoaded(gameDiv, popup, stickyNodes) { - stickyNodes.finalize(jQuery(document).width(), jQuery(document).height()); - jQuery('#loadingp').empty(); - jQuery('').click(function () { - var game, bgmusic, ballOpts; - if (jQuery('#bgmusicc').attr('checked')) { - if (!(bgmusic = document.getElementById('khbgmusic'))) { - bgmusic = document.createElement('audio'); - bgmusic.id = 'khbgmusic'; - bgmusic.loop = 'loop'; - bgmusic.src = 'http://kathack.com/js/katamari.mp3'; - gameDiv.appendChild(bgmusic); - } - bgmusic.play(); - } - ballOpts = { - color: jQuery('#khcolor').val(), - VOL_MULT: parseFloat(jQuery('#vol_mult').val()), - MAX_ATTACHED_VISIBLE: parseInt(jQuery('#maxAtt').val(), 10), - CHECK_VOLS: (jQuery('#checkv').attr('checked'))? true : false, - MOUSEB: parseInt(jQuery('#mouseb').val(), 10) - }; - gameDiv.removeChild(popup); - game = new Game(gameDiv, stickyNodes, ballOpts); - }).appendTo('#loadingp'); -} - -function buildPopup(gameDiv) { - var d = document.createElement('div'), b; - d.style.cssText = '\ -position: fixed;\ -left: 50%;\ -top: 50%;\ -width: 400px;\ -margin-left:-200px;\ -margin-top:-150px;\ -border:1px solid black;\ -background-color:white;\ -color:black;\ -padding:20px;\ -font-size:13px;\ -text-align:left;\ -z-index:501;'; - d.innerHTML = '

\ -\ -Katamari!

\ -\ -

Controls: Hold down to control the ball!

\ -
\ -
\ -
\ -
\ -
\ -
\ -

Loading!

'; - gameDiv.appendChild(d); - d.getElementsByTagName('button')[0].addEventListener('click', function () { - gameDiv.removeChild(d); - }, true); - return d; -} - -function main() { - var gameDiv, checkInterval, stickyNodes, popup; - - gameDiv = document.createElement('div'); - gameDiv.khIgnore = true; - document.body.appendChild(gameDiv); - popup = buildPopup(gameDiv); - - /* setTimeout so that the popup displays before we freeze. */ - setTimeout(function () { - var i, len, el; - window.khNodes.addWords(document.body); - for (i = 0, len = document.body.childNodes.length; i < len; i++) { - el = document.body.childNodes[i]; - window.khNodes.addTagNames(el, [ - 'button', 'canvas', 'iframe', 'img', 'input', 'select', - 'textarea' - ]); - } - - checkInterval = setInterval(function () { - if (window.jQuery) { - clearInterval(checkInterval); - whenAllLoaded(gameDiv, popup, window.khNodes); - } - }, 100); - }, 0); -} - -if (!window.noMain) { - main(); -} \ No newline at end of file diff --git a/js/main.js b/js/main.js index ede05ab..66cfbe7 100755 --- a/js/main.js +++ b/js/main.js @@ -23,7 +23,7 @@ function cursor() { cursor.style.backgroundColor = "var(--color-1)"; cursor.style.position = "absolute"; cursor.style.borderRadius = "100%"; - cursor.style.filter = "blur(40px)"; + cursor.style.filter = "blur(60px)"; cursor.style.opacity = "1"; cursor.style.pointerEvents = "none"; document.body.appendChild(cursor); @@ -37,9 +37,11 @@ function themes() { } document.addEventListener("DOMContentLoaded", ()=>{ - setBackground(); - loadPJS(); - cursor(); + if(!(localStorage.getItem("selenite.fast-mode") == 'true')) { + setBackground(); + loadPJS(); + cursor(); + } themes(); }) diff --git a/js/search.js b/js/search.js.old similarity index 100% rename from js/search.js rename to js/search.js.old diff --git a/js/themes.js b/js/themes.js.old similarity index 100% rename from js/themes.js rename to js/themes.js.old diff --git a/js/uploaddownload.js b/js/uploaddownload.js deleted file mode 100755 index a3d291c..0000000 --- a/js/uploaddownload.js +++ /dev/null @@ -1,48 +0,0 @@ -var s = document.createElement("script"); -function getMainSaveFromUpload(data) { - data = CryptoJS.AES.decrypt(data, "egamepass").toString(CryptoJS.enc.Utf8); - - // Parse the decrypted data as JSON - var mainSave = JSON.parse(atob(data)); - var mainLocalStorageSave = JSON.parse(atob(mainSave.localStorage)); - var cookiesSave = atob(mainSave.cookies); - - // Set the items in localStorage using the uploaded data - for (let item of mainLocalStorageSave) { - localStorage.setItem(item[0], item[1]); - } - - // Set the cookies using the uploaded data - document.cookie = cookiesSave; -} - -// Function to handle the file upload -function uploadMainSave() { - document.body.innerHTML += - ''; - var hiddenUpload = document.querySelector(".hiddenUpload"); - - // Listen for the change event on the file input element - hiddenUpload.addEventListener("change", function (e) { - var files = e.target.files; - var file = files[0]; - if (!file) { - return; - } - - // Read the contents of the uploaded file as text and call getMainSaveFromUpload with the result - var reader = new FileReader(); - - reader.onload = function (e) { - getMainSaveFromUpload(e.target.result); - }; - - reader.readAsText(file); - }); -} -(s.src = - "https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"), - document.head.appendChild(s); -s.onload = function () { - uploadMainSave(); -}; \ No newline at end of file diff --git a/js/widget.js b/js/widget.js deleted file mode 100755 index f934d2a..0000000 --- a/js/widget.js +++ /dev/null @@ -1,25 +0,0 @@ -let firstLoadWidget = 1; -let widgetOpen = 0; -document.addEventListener("DOMContentLoaded", () => { - let button = document.createElement("button"); - button.setAttribute("id", "discord"); - document.body.appendChild(button); - button.addEventListener("click", () => { - if(firstLoadWidget) { - toast({ title: "Do you want to load Discord?", message: "This may be blocked in certain schools.\nClick here to load Discord." }, loadWidget); - } - }) -}) - -function loadWidget() { - if(firstLoadWidget) { - firstLoadWidget = 0; - loadScript("https://cdn.jsdelivr.net/npm/@widgetbot/crate@3", loadCrate); - } -} -function loadCrate() { - new Crate({server: '1148719137238040606',channel: '1173731814196645909', color: "#00000000", glyph: ["data:;base64,=", "100%"]}); - crate.toggle(true); - let element = document.querySelector('[aria-label="Discord chat embed"]'); - element.remove(); -} \ No newline at end of file diff --git a/settings.html b/settings.html index a205945..99f5b61 100755 --- a/settings.html +++ b/settings.html @@ -34,7 +34,7 @@ - + @@ -49,11 +49,30 @@ @@ -69,6 +88,26 @@ +
+

toggles

+
+
+
+

tab cloak

+

website name

+ +

website icon

+ + +
+
+

panic mode

+

key

+ +

website

+ + +
-- 2.49.0 From e42a5a524c7f8dafae1ae5ee562a907b68a12d06 Mon Sep 17 00:00:00 2001 From: sky Date: Sat, 23 Aug 2025 22:39:31 -0400 Subject: [PATCH 11/21] minor fixes --- apps.html | 1 + css/main.css | 1 + home.html | 2 +- js/apps.js | 3 ++- js/games.js | 5 +++-- js/main.js | 3 ++- loader.html | 13 +++++++++---- projects.html | 1 + quotes.json | 0 9 files changed, 20 insertions(+), 9 deletions(-) create mode 100644 quotes.json diff --git a/apps.html b/apps.html index 874b71b..8887a74 100755 --- a/apps.html +++ b/apps.html @@ -34,6 +34,7 @@ +

xx games loaded..

starred apps

diff --git a/css/main.css b/css/main.css index e150092..3f2442d 100755 --- a/css/main.css +++ b/css/main.css @@ -22,6 +22,7 @@ body { margin: 0; border: none; font-family: "Mulish", serif; + transition-duration: 0.5s; } body { animation: 1s ease-out loadIn; diff --git a/home.html b/home.html index 669aa2e..258fc46 100755 --- a/home.html +++ b/home.html @@ -40,7 +40,7 @@ + @@ -53,6 +58,7 @@

seraph by a456pur (games)

3kh0 assets by 3kh0 (games)

web ports by gn-math (games)

+

more ports by bog (games)

cobalt by imputnet (music implementation)

suggest a game

you can either email us or join the discord to suggest a game/other improvements.

diff --git a/js/main.js b/js/main.js index 9a81808..73ebb79 100755 --- a/js/main.js +++ b/js/main.js @@ -6,13 +6,13 @@ function setBackground() { } function loadPJS() { let div = document.createElement("div"); - div.id = "particles-js"; + div.id = "pjs"; document.body.appendChild(div); let script = document.createElement("script"); script.src = "https://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"; document.head.appendChild(script); script.addEventListener("load", ()=>{ - particlesJS.load('particles-js', "/js/particlesjs-config.json", ()=>{}); + particlesJS.load('pjs', "/js/particlesjs-config.json", ()=>{}); }); } @@ -47,7 +47,7 @@ document.addEventListener("DOMContentLoaded", ()=>{ }) document.addEventListener("scroll", ()=>{ - document.getElementById("particles-js").style.top = window.scrollY + "px"; + document.getElementById("pjs").style.top = window.scrollY + "px"; }) -- 2.49.0 From aa700bfb2e56cbd4b98705b519ba8f410279c176 Mon Sep 17 00:00:00 2001 From: sky Date: Tue, 26 Aug 2025 23:29:57 -0400 Subject: [PATCH 14/21] fix pjs --- css/pages.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/css/pages.css b/css/pages.css index a3284b9..9afc623 100755 --- a/css/pages.css +++ b/css/pages.css @@ -33,7 +33,7 @@ body { min-height: 100vh; position: relative; } -#particles-js { +#pjs { width: 100vw; height: 100vh; position: absolute; -- 2.49.0 From 9395403389b2f1bbc73f0b7ec75ba03a2e591945 Mon Sep 17 00:00:00 2001 From: sky Date: Sun, 7 Sep 2025 16:30:15 -0400 Subject: [PATCH 15/21] fast mode and other stuff idk --- css/bookmarklets.css | 4 + css/games.css | 4 + css/loader.css | 4 + css/pages.css | 4 + css/profile.css | 4 + css/settings.css | 5 ++ css/sidebar.css | 32 +++++++ css/users.css | 4 + home.html | 1 - img/up.svg | 1 + index.html | 29 ++++++- js/all.js | 195 ------------------------------------------- js/all.min.js | 1 - js/main.js | 3 + settings.html | 14 +++- 15 files changed, 104 insertions(+), 201 deletions(-) create mode 100644 img/up.svg diff --git a/css/bookmarklets.css b/css/bookmarklets.css index 07f2416..6f8f3f3 100644 --- a/css/bookmarklets.css +++ b/css/bookmarklets.css @@ -40,4 +40,8 @@ .bookmarkletdiv { backdrop-filter: blur(0); } +} +body[fast] .bookmarkletdiv { + background-color: color-mix(in srgb, var(--color-2) 70%, #000000 30%); + backdrop-filter: blur(0); } \ No newline at end of file diff --git a/css/games.css b/css/games.css index 98844e8..ebab808 100755 --- a/css/games.css +++ b/css/games.css @@ -77,4 +77,8 @@ body { game { backdrop-filter: blur(0); } +} +body[fast] game { + background-color: color-mix(in srgb, var(--color-2) 70%, #000000 30%); + backdrop-filter: blur(0); } \ No newline at end of file diff --git a/css/loader.css b/css/loader.css index 3c62cba..3e4270c 100644 --- a/css/loader.css +++ b/css/loader.css @@ -53,4 +53,8 @@ #gamecontainer { backdrop-filter: blur(0); } +} +body[fast] #gamecontainer { + background-color: color-mix(in srgb, var(--color-2) 70%, #000000 30%); + backdrop-filter: blur(0); } \ No newline at end of file diff --git a/css/pages.css b/css/pages.css index 9afc623..b5d960a 100755 --- a/css/pages.css +++ b/css/pages.css @@ -173,4 +173,8 @@ input[type=checkbox] { #popup { backdrop-filter: blur(0); } +} +body[fast] #popup { + background-color: color-mix(in srgb, var(--color-2) 70%, #000000 30%); + backdrop-filter: blur(0); } \ No newline at end of file diff --git a/css/profile.css b/css/profile.css index 67b5855..08c1a0c 100644 --- a/css/profile.css +++ b/css/profile.css @@ -140,4 +140,8 @@ result p { section { backdrop-filter: blur(0); } +} +body[fast] section { + background-color: color-mix(in srgb, var(--color-2) 70%, #000000 30%); + backdrop-filter: blur(0); } \ No newline at end of file diff --git a/css/settings.css b/css/settings.css index 9fd09e6..3268df8 100644 --- a/css/settings.css +++ b/css/settings.css @@ -26,4 +26,9 @@ sections { section { backdrop-filter: blur(0); } +} + +body[fast] section { + background-color: color-mix(in srgb, var(--color-2) 70%, #000000 30%); + backdrop-filter: blur(0); } \ No newline at end of file diff --git a/css/sidebar.css b/css/sidebar.css index 6ed3ac4..6998f63 100755 --- a/css/sidebar.css +++ b/css/sidebar.css @@ -9,6 +9,7 @@ sidebar { flex-direction: column; align-items: center; user-select: none; + z-index: 10; } .sidebar-item { margin: 6px; @@ -56,4 +57,35 @@ iframe { .sidebar-item:hover .sidebar-item-descriptor { opacity: 1; right: 55px; +} +#bottom-menu, #open-bottom-menu { + position: absolute; + bottom: -40px; + height: 50px; + left: 0; + right: 0; + width: 30%; + margin-left: auto; + margin-right: auto; + display: flex; + justify-content: center; + align-items: center; + background-color: black; + z-index: 5; + border-radius: 10px 10px 0 0; + cursor: pointer; + color: black; +} +#open-bottom-menu { + bottom: 10px; + height: 15px; + width: 70px; + z-index: 5; +} +#bottom-menu[enabled=true] { + bottom: 10px; + color: white; +} +#open-bottom-menu[enabled=true] { + bottom: 60px; } \ No newline at end of file diff --git a/css/users.css b/css/users.css index e054d32..446e8f3 100644 --- a/css/users.css +++ b/css/users.css @@ -52,4 +52,8 @@ .users { backdrop-filter: blur(0); } +} +body[fast] .users { + background-color: color-mix(in srgb, var(--color-2) 70%, #000000 30%); + backdrop-filter: blur(0); } \ No newline at end of file diff --git a/home.html b/home.html index 258fc46..fca4f8b 100755 --- a/home.html +++ b/home.html @@ -7,7 +7,6 @@ - diff --git a/img/up.svg b/img/up.svg new file mode 100644 index 0000000..ea09945 --- /dev/null +++ b/img/up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/index.html b/index.html index 883dbd3..0b8de2e 100755 --- a/index.html +++ b/index.html @@ -56,8 +56,23 @@ @@ -134,5 +157,9 @@ +
+
+

yap yap yap

+
diff --git a/js/all.js b/js/all.js index b883268..e69de29 100755 --- a/js/all.js +++ b/js/all.js @@ -1,195 +0,0 @@ -let backup_icon; -let backup_name; -let socket; -if (location.origin.includes("https")) { - socket = new WebSocket(`wss://${location.host}/socket`); -} else { - socket = new WebSocket(`ws://${location.host}/socket`); -} -socket.addEventListener("open", (event) => { - let cookies = document.cookie.split("; "); - for (let i = 0; i < cookies.length; i++) { - if (cookies[i].trim().startsWith("token=")) { - socket.send(cookies[i].trim()); - } - } -}); -socket.addEventListener("message", (event) => { - if (event.data == "ping") { - socket.send(`pong${location.pathname.includes("/semag/") ? location.pathname.split("/")[2] : ""}`); - return; - } - if (event.data.startsWith("announce.")) { - let styles = document.createElement("style"); - styles.innerHTML = `@import url("https://fonts.googleapis.com/css2?family=Prompt:wght@300&display=swap");.announce {font-family: "Prompt", sans-serif;position: absolute;margin-left: auto;margin-right: auto;top: 10px;z-index: 10000000;background-color: #a53026;padding: 10px;width: max-content;border-radius: 10px;left:0;right:0;border-color: #f74f40;border-width: 5px;border-radius: 10px;border-style: solid;max-width: 60%;font-size: 16px;color: white;}@keyframes FadeIn {0% {opacity: 0;}100% {opacity: 1;}}@keyframes FadeOut {0% {opacity: 1;}100% {opacity: 0;}}`; - let announcement = document.createElement("div"); - announcement.innerText = event.data.substring(9); - announcement.setAttribute("class", "announce"); - announcement.style.opacity = "0"; - announcement.style.animation = "FadeIn 1s ease-in-out forwards"; - document.head.appendChild(styles); - document.body.appendChild(announcement); - setTimeout(() => { - announcement.style.animation = "FadeOut 1s ease-in-out forwards"; - setTimeout(() => { - announcement.remove(); - styles.remove(); - }, 1000); - }, 14000); - } -}); - -function setCloak(name, icon) { - var tabicon = getCookie("tabicon"); - if (tabicon || icon) { - var link = document.querySelector("link[rel~='icon']"); - if (link) { - if (link.href != icon) backup_icon = link; - while (document.querySelector("link[rel~='icon']")) { - document.querySelector("link[rel~='icon']").remove(); - } - } - var link = document.querySelector("link[rel~='shortcut icon']"); - if (link) { - if (link.href != icon) backup_icon = link; - while (document.querySelector("link[rel~='shortcut icon']")) { - document.querySelector("link[rel~='shortcut icon']").remove(); - } - } - link = document.createElement("link"); - link.rel = "icon"; - document.head.appendChild(link); - link.href = tabicon; - if (name) { - link.href = icon; - } - } - - var tabname = getCookie("tabname"); - backup_name = document.title; - if (tabname) { - document.title = tabname; - } - if (name) { - document.title = name; - } - panicMode(); -} -if (getCookie("debugging") == 1) { - const debugscript = document.createElement("script"); - debugscript.setAttribute("src", "/js/debug.js"); - document.head.append(debugscript); -} -function getCookie(cname) { - let name = cname + "="; - let decodedCookie = decodeURIComponent(document.cookie); - let ca = decodedCookie.split(";"); - for (let i = 0; i < ca.length; i++) { - let c = ca[i]; - while (c.charAt(0) == " ") { - c = c.substring(1); - } - if (c.indexOf(name) == 0) { - return c.substring(name.length, c.length); - } - } - return ""; -} -let listofchars = ""; -document.addEventListener("keydown", (e) => { - listofchars = listofchars + e.key; - if (listofchars.length > 20) { - listofchars = listofchars.substring(e.key.length); - } - if (listofchars.includes("safemode")) { - window.location.href = panicurl; - listofchars = ""; - } else if (listofchars.includes("debugplz")) { - if (getCookie("debugging") == 1) { - document.cookie = "debugging=0;"; - alert("debugging off!"); - } else { - document.cookie = "debugging=1"; - alert("debugging on!"); - } - listofchars = ""; - } -}); -function panicMode() { - panicurl = getCookie("panicurl"); - if (panicurl == "") { - panicurl = "https://google.com"; - } -} -document.addEventListener( - "DOMContentLoaded", - () => { - setCloak(); - let plausible = document.createElement("script"); - plausible.setAttribute("event-domain", location.host) - plausible.setAttribute("defer", ""); - plausible.setAttribute("src", "/js/analytics.js"); - plausible.setAttribute("data-domain", "selenite.cc"); - document.head.appendChild(plausible); - }, - false -); -if (location.pathname.substring(1).includes("semag") && localStorage.getItem("selenite.blockClose") == "true") { - window.onbeforeunload = function () { - return ""; - }; -} -addEventListener("visibilitychange", (e) => { - if (localStorage.getItem("selenite.tabDisguise") == "true") { - if (document.visibilityState === "hidden") { - setCloak("Google", "https://www.google.com/favicon.ico"); - } else { - if (!backup_icon) { - icon = document.createElement("link"); - icon.rel = "icon"; - - var link = document.querySelector("link[rel~='icon']"); - if (link) { - backup_icon = link; - while (document.querySelector("link[rel~='icon']")) { - document.querySelector("link[rel~='icon']").remove(); - } - } - var link = document.querySelector("link[rel~='shortcut icon']"); - if (link) { - backup_icon = link; - while (document.querySelector("link[rel~='shortcut icon']")) { - document.querySelector("link[rel~='shortcut icon']").remove(); - } - } - document.head.appendChild(icon); - icon.href = location.origin + "/favicon.ico"; - } else { - document.head.appendChild(backup_icon); - } - document.title = backup_name; - } - } -}); -var polyfillScript = document.createElement("script"); -polyfillScript.src = "https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?version=4.8.0"; -document.head.appendChild(polyfillScript); -function fps() { - var script = document.createElement("script"); - script.onload = function () { - var stats = new Stats(); - document.body.appendChild(stats.dom); - requestAnimationFrame(function loop() { - stats.update(); - requestAnimationFrame(loop); - }); - - localStorage.setItem("fps", true); - }; - script.src = "https://cdn.jsdelivr.net/gh/mrdoob/stats.js@master/build/stats.min.js"; - document.head.appendChild(script); -} - -if (localStorage.getItem("fps")) { - fps(); -} diff --git a/js/all.min.js b/js/all.min.js index 47f8d76..e69de29 100755 --- a/js/all.min.js +++ b/js/all.min.js @@ -1 +0,0 @@ -let backup_icon;let backup_name;let socket;if(location.origin.includes("https")){socket=new WebSocket(`wss://${location.host }/socket`)}else{socket=new WebSocket(`ws://${location.host }/socket`)}socket.addEventListener("open",(event)=>{let cookies=document.cookie.split("; ");for(let i=0;i{if(event.data=="ping"){socket.send(`pong${location.pathname.includes("/semag/")?location.pathname.split("/")[2]:""}`);return}if(event.data.startsWith("announce.")){let styles=document.createElement("style");styles.innerHTML=`@import url("https://fonts.googleapis.com/css2?family=Prompt:wght@300&display=swap");.announce {font-family: "Prompt", sans-serif;position: absolute;margin-left: auto;margin-right: auto;top: 10px;z-index: 10000000;background-color: #a53026;padding: 10px;width: max-content;border-radius: 10px;left:0;right:0;border-color: #f74f40;border-width: 5px;border-radius: 10px;border-style: solid;max-width: 60%;font-size: 16px;color: white;}@keyframes FadeIn {0% {opacity: 0;}100% {opacity: 1;}}@keyframes FadeOut {0% {opacity: 1;}100% {opacity: 0;}}`;let announcement=document.createElement("div");announcement.innerText=event.data.substring(9);announcement.setAttribute("class","announce");announcement.style.opacity="0";announcement.style.animation="FadeIn 1s ease-in-out forwards";document.head.appendChild(styles);document.body.appendChild(announcement);setTimeout(()=>{announcement.style.animation="FadeOut 1s ease-in-out forwards";setTimeout(()=>{announcement.remove();styles.remove()},1000)},14000)}});function setCloak(name,icon){var tabicon=getCookie("tabicon");if(tabicon||icon){var link=document.querySelector("link[rel~='icon']");if(link){if(link.href!=icon){backup_icon=link}while(document.querySelector("link[rel~='icon']")){document.querySelector("link[rel~='icon']").remove()}}var link=document.querySelector("link[rel~='shortcut icon']");if(link){if(link.href!=icon){backup_icon=link}while(document.querySelector("link[rel~='shortcut icon']")){document.querySelector("link[rel~='shortcut icon']").remove()}}link=document.createElement("link");link.rel="icon";document.head.appendChild(link);link.href=tabicon;if(name){link.href=icon}}var tabname=getCookie("tabname");backup_name=document.title;if(tabname){document.title=tabname}if(name){document.title=name}panicMode()}if(getCookie("debugging")==1){const debugscript=document.createElement("script");debugscript.setAttribute("src","/js/debug.js");document.head.append(debugscript)}function getCookie(cname){let name=cname+"=";let decodedCookie=decodeURIComponent(document.cookie);let ca=decodedCookie.split(";");for(let i=0;i{listofchars=listofchars+e.key;if(listofchars.length>20){listofchars=listofchars.substring(e.key.length)}if(listofchars.includes("safemode")){window.location.href=panicurl;listofchars=""}else if(listofchars.includes("debugplz")){if(getCookie("debugging")==1){document.cookie="debugging=0;";alert("debugging off!")}else{document.cookie="debugging=1";alert("debugging on!")}listofchars=""}});function panicMode(){panicurl=getCookie("panicurl");if(panicurl==""){panicurl="https://google.com"}}document.addEventListener("DOMContentLoaded",()=>{setCloak();let plausible=document.createElement("script");plausible.setAttribute("event-domain",location.host);plausible.setAttribute("defer","");plausible.setAttribute("src","/js/analytics.js");plausible.setAttribute("data-domain","selenite.cc");document.head.appendChild(plausible)},false);if(location.pathname.substring(1).includes("semag")&&localStorage.getItem("selenite.blockClose")=="true"){window.onbeforeunload=function(){return ""}}addEventListener("visibilitychange",(e)=>{if(localStorage.getItem("selenite.tabDisguise")=="true"){if(document.visibilityState==="hidden"){setCloak("Google","https://www.google.com/favicon.ico")}else{if(!backup_icon){icon=document.createElement("link");icon.rel="icon";var link=document.querySelector("link[rel~='icon']");if(link){backup_icon=link;while(document.querySelector("link[rel~='icon']")){document.querySelector("link[rel~='icon']").remove()}}var link=document.querySelector("link[rel~='shortcut icon']");if(link){backup_icon=link;while(document.querySelector("link[rel~='shortcut icon']")){document.querySelector("link[rel~='shortcut icon']").remove()}}document.head.appendChild(icon);icon.href=location.origin+"/favicon.ico"}else{document.head.appendChild(backup_icon)}document.title=backup_name}}});var polyfillScript=document.createElement("script");polyfillScript.src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?version=4.8.0";document.head.appendChild(polyfillScript);function fps(){var script=document.createElement("script");script.onload=function(){var stats=new Stats();document.body.appendChild(stats.dom);requestAnimationFrame(function loop(){stats.update();requestAnimationFrame(loop)});localStorage.setItem("fps",true)};script.src="https://cdn.jsdelivr.net/gh/mrdoob/stats.js@master/build/stats.min.js";document.head.appendChild(script)}if(localStorage.getItem("fps")){fps()} \ No newline at end of file diff --git a/js/main.js b/js/main.js index 73ebb79..fba3f0c 100755 --- a/js/main.js +++ b/js/main.js @@ -43,6 +43,9 @@ document.addEventListener("DOMContentLoaded", ()=>{ loadPJS(); cursor(); } + if(localStorage.getItem("selenite.super-fast-mode") == 'true') { + document.body.setAttribute("fast", "") + } themes(); }) diff --git a/settings.html b/settings.html index 99f5b61..d916aac 100755 --- a/settings.html +++ b/settings.html @@ -51,15 +51,22 @@ document.querySelector(`option[value="${localStorage.getItem("selenite.theme") || ""}"]`).setAttribute("selected", ""); if(localStorage.getItem("selenite.fast-mode") == 'true') { document.getElementById("fastMode").setAttribute("checked", "") - } + }; + if(localStorage.getItem("selenite.super-fast-mode") == 'true') { + document.getElementById("superFastMode").setAttribute("checked", "") + }; document.getElementById("themes").addEventListener("input", (e)=>{ localStorage.setItem("selenite.theme", e.target.value); document.body.setAttribute("theme", e.target.value); }) document.getElementById("fastMode").addEventListener("click", (e) => { localStorage.setItem("selenite.fast-mode", !(e.target.checked == false)); - alert("replace alert soon - reload to see changes"); - }) + location.reload(); + }); + document.getElementById("superFastMode").addEventListener("click", (e) => { + localStorage.setItem("selenite.super-fast-mode", !(e.target.checked == false)); + location.reload(); + }); document.getElementById("submitCloak").addEventListener("click", (e) => { localStorage.setItem("selenite.tab-cloak", JSON.stringify({ "name": document.getElementById("cloakName").value || "", @@ -91,6 +98,7 @@

toggles

+

tab cloak

-- 2.49.0 From 7fca0fbde68bf2a7fc166abff90a25b903e6271e Mon Sep 17 00:00:00 2001 From: sky Date: Thu, 25 Sep 2025 17:57:35 -0400 Subject: [PATCH 16/21] redesign loader --- 404.html | 161 ++++++++++++++++++++---------------------------- css/games.css | 4 +- css/loader.css | 26 +++----- css/main.css | 4 +- css/sidebar.css | 5 ++ info.html | 1 + loader.html | 18 +++--- 7 files changed, 94 insertions(+), 125 deletions(-) diff --git a/404.html b/404.html index 6f2463b..cfe164a 100755 --- a/404.html +++ b/404.html @@ -1,101 +1,74 @@ - - - - - - - - - - - - - - - - - - - - - - - - - Selenite - - - - - - - - - - - -
- Home - Bookmarklets - Games - Apps - Settings - Open Blank - - -
-
-

Page not found!

-

We could not find this page.

-

Trying to access a page such as login, register, or a user page? Those are only available on official links.

-

Join the Discord to find official links.

- - - - - -
- - - - + + + + + + + + + + + 404 | Selenite + + + + + +

page not found

+

we could not find the page you were trying to open. try again?

+

:3

+ diff --git a/css/games.css b/css/games.css index ebab808..563b44d 100755 --- a/css/games.css +++ b/css/games.css @@ -8,7 +8,7 @@ game { cursor: pointer; border-radius: 20px; margin: 15px; - transition-duration: 0.25s; + /* transition-duration: 0.25s; */ backdrop-filter: blur(2px); box-shadow: 0 0 10px var(--color-2); } @@ -43,7 +43,7 @@ game img { justify-self: right; margin-left: auto; margin-right: 15px; - transition-duration: 0.25s; + /* transition-duration: 0.25s; */ } #star:hover { transform: scale(1.1); diff --git a/css/loader.css b/css/loader.css index 3e4270c..bffa8ea 100644 --- a/css/loader.css +++ b/css/loader.css @@ -1,28 +1,22 @@ -#gamecontainer { - width: 90vw; - height: auto; - border-radius: 15px; - background-color: color-mix(in srgb, var(--color-2) 50%, #00000000 50%); - box-shadow: 0 0 10px var(--color-2); - backdrop-filter: blur(6px); +body { + overflow: hidden; } #gameFrame { - width: 99%; - height: 75vh; - margin: 0.5%; - margin-bottom: 0; - border-radius: 10px; + width: 100vw; + height: 90vh; + margin: 0; } #infobox { - height: 8vh; + height: 10vh; width: 100%; - margin: 1% 0; display: flex; justify-content: center; align-items: center; + background-color: #000000; + backdrop-filter: blur(4px); } #infobox img { - height: 100%; + height: 90%; margin: 0.5%; aspect-ratio: 1 / 1; border-radius: 8px; @@ -34,7 +28,7 @@ margin: 4px; padding: 2px; width: 7%; - transition-duration: 0.25s; + /* transition-duration: 0.25s; */ cursor: pointer; } .button:hover { diff --git a/css/main.css b/css/main.css index 3f2442d..532d49d 100755 --- a/css/main.css +++ b/css/main.css @@ -83,7 +83,7 @@ select, select { padding: 8px; background-color: color-mix(in srgb, var(--color-4) 30%, #00000000 70%); - transition-duration: 0.25s; + /* transition-duration: 0.25s; */ color: var(--text-color); border-radius: 4px; } @@ -119,6 +119,6 @@ mobile-warning { justify-content: center; align-items: center; flex-direction: column; - transition-duration: 1s; + /* transition-duration: 1s; */ text-align: center; } \ No newline at end of file diff --git a/css/sidebar.css b/css/sidebar.css index 6998f63..02a20bd 100755 --- a/css/sidebar.css +++ b/css/sidebar.css @@ -81,11 +81,16 @@ iframe { height: 15px; width: 70px; z-index: 5; + filter: drop-shadow(0 0 16px #fff5); } #bottom-menu[enabled=true] { bottom: 10px; color: white; + filter: drop-shadow(0 0 16px #fff5); + z-index: 0; } #open-bottom-menu[enabled=true] { bottom: 60px; + filter: drop-shadow(0 0 0 #fff5); + opacity: 0; } \ No newline at end of file diff --git a/info.html b/info.html index 6760574..6145167 100644 --- a/info.html +++ b/info.html @@ -59,6 +59,7 @@

3kh0 assets by 3kh0 (games)

web ports by gn-math (games)

more ports by bog (games)

+

even more ports by slqnt (games)

cobalt by imputnet (music implementation)

suggest a game

you can either email us or join the discord to suggest a game/other improvements.

diff --git a/loader.html b/loader.html index 2d429bc..a30b91e 100755 --- a/loader.html +++ b/loader.html @@ -9,11 +9,9 @@ - -

your device is not supported!

please rotate your screen for the best experience.

+

we are loading your game!

please allow us to fetch the data first, this should only take a second.

+ + + + + + + + + + + + + + + + + + + + + + + + Selenite + + + + + + +

dmca

+

if you believe that any of the content on selenite infringes on your copyright or you are authorized to act on behalf of someone who you believe their copyright has been infringed upon, please submit a notice of copyright infringement to our dmca email with the following:

+

your electronic or physical signature, confirming you are the copyright owner or authorized to act on their behalf

+

contact information, including your full name, address, and phone number.

+

the content you believe is being infringed upon (title, url, etc.)

+

a statement that you have a good faith belief that the use of the material in the manner complained of is not authorized by the copyright owner, its agent, or the law

+

the content that the information in the notification is accurate, and under penalty of perjury, that you are authorized to act on behalf of the copyright owner

+

you may send this to dmca@selenite.cc

+

upon recieving the takedown notification and confirming that the information provided is valid, we will take down all content we believe appropriate

+ + diff --git a/home.html b/home.html index fca4f8b..3676cfc 100755 --- a/home.html +++ b/home.html @@ -78,7 +78,7 @@
- +
diff --git a/img/share.svg b/img/share.svg new file mode 100644 index 0000000..801bb04 --- /dev/null +++ b/img/share.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/info.html b/info.html index 6145167..e176ed1 100644 --- a/info.html +++ b/info.html @@ -53,6 +53,10 @@

information

+

suggest a game!

+

you may make suggestions in our discord or email our support team.

+

dmca

+

please check here for information.

credits

whilst the majority of the work has been done by the creator, sky, selenite would not be possible without some key sources and people.

seraph by a456pur (games)

@@ -61,7 +65,5 @@

more ports by bog (games)

even more ports by slqnt (games)

cobalt by imputnet (music implementation)

-

suggest a game

-

you can either email us or join the discord to suggest a game/other improvements.

diff --git a/loader.html b/loader.html index a30b91e..ee5ddaa 100755 --- a/loader.html +++ b/loader.html @@ -14,6 +14,7 @@ @@ -51,13 +63,15 @@ - +

Selenite

+ +
-- 2.49.0 From b0681ff009e8aecc20560bceffcd07b66cf7932b Mon Sep 17 00:00:00 2001 From: sky Date: Mon, 13 Oct 2025 16:10:13 -0400 Subject: [PATCH 19/21] update --- home.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/home.html b/home.html index 3676cfc..9820cc0 100755 --- a/home.html +++ b/home.html @@ -81,5 +81,9 @@ +

heads up!

+

this is a development build of selenite

+

stuff is going to be broken (especially games)

+

if you have any issues, report them in the discord

-- 2.49.0 From a043621fff89d45c6ef61639551e6581a8e4f45c Mon Sep 17 00:00:00 2001 From: sky Date: Sun, 19 Oct 2025 13:46:12 -0400 Subject: [PATCH 20/21] analytics question mark --- css/games.css | 4 +-- css/settings.css | 7 +++- css/sidebar.css | 7 +++- index.html | 61 +++++++++++++++++++++++++++++++++- js/all.min.js | 15 +++++++++ js/main.js | 17 ++++++++-- loader.html | 2 +- settings.html | 85 +++++++++++++++++++++++++++++++++++++++++++++--- 8 files changed, 186 insertions(+), 12 deletions(-) diff --git a/css/games.css b/css/games.css index 15aba73..76d59dd 100755 --- a/css/games.css +++ b/css/games.css @@ -27,7 +27,7 @@ game img { #holder h1 { font-size: 14px; margin: 15px; - width: 100%; + width: 80%; text-align: right; height: 70%; } @@ -39,8 +39,8 @@ game img { align-items: flex-end; } #star { + margin-top: 0px; width: 10%; - justify-self: right; margin-left: auto; margin-right: 15px; /* transition-duration: 0.25s; */ diff --git a/css/settings.css b/css/settings.css index 3268df8..0aa2ee1 100644 --- a/css/settings.css +++ b/css/settings.css @@ -1,6 +1,6 @@ section { width: 30%; - height: 400px; + /* height: 400px; */ height: auto; padding: 8px; margin: 16px; @@ -22,6 +22,11 @@ sections { justify-content: center; align-items: center; } + +#colorPicker { + margin: 6px; +} + @-moz-document url-prefix() { section { backdrop-filter: blur(0); diff --git a/css/sidebar.css b/css/sidebar.css index 02a20bd..4952f20 100755 --- a/css/sidebar.css +++ b/css/sidebar.css @@ -64,7 +64,7 @@ iframe { height: 50px; left: 0; right: 0; - width: 30%; + width: 40%; margin-left: auto; margin-right: auto; display: flex; @@ -76,6 +76,11 @@ iframe { cursor: pointer; color: black; } +#bottom-menu { + width: fit-content; + padding-left: 16px; + padding-right: 16px; +} #open-bottom-menu { bottom: 10px; height: 15px; diff --git a/index.html b/index.html index b1228d2..a0b28b2 100755 --- a/index.html +++ b/index.html @@ -57,7 +57,62 @@ + let script = document.createElement("script"); + script.setAttribute("defer", ""); + script.setAttribute("src", "https://cloud.umami.is/script.js"); + script.setAttribute("data-website-id", "cdb79ddd-06a6-478f-b726-be39b502d6a5"); + document.head.appendChild(script); +}; + +document.addEventListener("DOMContentLoaded", () => { + loadAnalytics.unami(); +}) \ No newline at end of file diff --git a/js/main.js b/js/main.js index fba3f0c..dc2cdf6 100755 --- a/js/main.js +++ b/js/main.js @@ -35,8 +35,22 @@ function cursor() { } function themes() { document.body.setAttribute("theme", localStorage.getItem("selenite.theme") || "") + if(document.body.getAttribute("theme") == "custom") { + setTheme(JSON.parse(localStorage.getItem("selenite.customTheme"))) + } +} +function setTheme(arg) { + let theme = arg; + document.body.setAttribute("style", ` + --text-color: ${theme["text-color"]}; + --bg-1: ${theme["bg-1"]}; + --bg-2: ${theme["bg-2"]}; + --color-1: ${theme["color-1"]}; + --color-2: ${theme["color-2"]}; + --color-3: ${theme["color-3"]}; + --color-4: ${theme["color-4"]}; + `) } - document.addEventListener("DOMContentLoaded", ()=>{ if(!(localStorage.getItem("selenite.fast-mode") == 'true')) { setBackground(); @@ -55,7 +69,6 @@ document.addEventListener("scroll", ()=>{ - // var interval; // document.addEventListener("DOMContentLoaded", function () { // if (localStorage.getItem("theme")) { diff --git a/loader.html b/loader.html index ee5ddaa..653695f 100755 --- a/loader.html +++ b/loader.html @@ -63,7 +63,7 @@ - +

Selenite

diff --git a/settings.html b/settings.html index d916aac..05ab0d1 100755 --- a/settings.html +++ b/settings.html @@ -5,6 +5,8 @@ https://coolors.co/10002b-240046-3c096c-5a189a-7b2cbf-9d4edd-c77dff-e0aaff --> + + @@ -47,8 +49,37 @@ @@ -93,7 +157,9 @@ + +

toggles

@@ -106,6 +172,17 @@

website icon

+ +
-- 2.49.0 From 50372cc7eb9ae1a7847fee3c4200151fe2307798 Mon Sep 17 00:00:00 2001 From: sky Date: Sun, 26 Oct 2025 10:27:36 -0400 Subject: [PATCH 21/21] release --- css/games.css | 31 ++++++++++++++ css/profile.css | 2 +- css/settings.css | 16 +++---- css/sidebar.css | 46 ++++++++++++++++++++ index.html | 21 +++++++++- js/games.js | 23 ++++++++++ js/main.js | 2 + quotes.json | 107 +++++++++++++++++++++++++++++++++++++++++++++++ settings.html | 39 +++++++++++++++-- 9 files changed, 273 insertions(+), 14 deletions(-) diff --git a/css/games.css b/css/games.css index 76d59dd..0506a9c 100755 --- a/css/games.css +++ b/css/games.css @@ -78,6 +78,37 @@ body { backdrop-filter: blur(0); } } +warnings { + position: absolute; + top: -20px; + left: -20px; + display: flex; + justify-content: center; + align-items: center; +} +warning { + width: 25px; + height: 25px; + color: var(--text-color); + border-radius: 100%; + display: flex; + justify-content: center; + align-items: center; + margin: 4px; + font-size: 12px; +} +.gore { + background-color: rgb(100, 20, 20); + box-shadow: 0 0 10px rgb(100, 20, 20); +} +.thirteen { + background-color: rgb(0, 0, 0); + box-shadow: 0 0 10px rgb(0, 0, 0); +} +.horror { + background-color: rgb(118, 118, 118); + box-shadow: 0 0 10px rgb(193, 193, 193); +} body[fast] game { background-color: color-mix(in srgb, var(--color-2) 70%, #000000 30%); backdrop-filter: blur(0); diff --git a/css/profile.css b/css/profile.css index 08c1a0c..135af0a 100644 --- a/css/profile.css +++ b/css/profile.css @@ -94,7 +94,7 @@ results { overflow-y: scroll; background-color: color-mix(in srgb, var(--color-3) 50%, #00000000 50%); box-shadow: 0 0 10px var(--color-3); - bottom: 16px; + margin-top: 12px; flex-direction: column; border-radius: 8px; } diff --git a/css/settings.css b/css/settings.css index 0aa2ee1..a24ae80 100644 --- a/css/settings.css +++ b/css/settings.css @@ -1,13 +1,12 @@ section { - width: 30%; - /* height: 400px; */ - height: auto; + min-width: 20%; + height: 400px; padding: 8px; margin: 16px; background-color: color-mix(in srgb, var(--color-2) 40%, #00000000 60%); display: flex; flex-direction: column; - justify-content: center; + /* justify-content: center; */ align-items: center; flex-wrap: wrap; border-radius: 20px; @@ -17,10 +16,11 @@ section { box-shadow: 0 0 10px var(--color-2); } sections { - width: 90vw; - display: flex; - justify-content: center; - align-items: center; + width: 90vw; + display: flex; + justify-content: center; + align-items: center; + flex-wrap: wrap; } #colorPicker { diff --git a/css/sidebar.css b/css/sidebar.css index 4952f20..4ce9918 100755 --- a/css/sidebar.css +++ b/css/sidebar.css @@ -98,4 +98,50 @@ iframe { bottom: 60px; filter: drop-shadow(0 0 0 #fff5); opacity: 0; +} +alert { + border-radius: 4px; + display: flex; + flex-direction: column; + position: absolute; + width: 40%; + justify-content: center; + align-items: center; + padding: 8px; + color: white; + background-color: color-mix(in srgb, #d46c6c 80%, #00000000 20%); + backdrop-filter: blur(2px); + box-shadow: 0 0 10px #d46c6c; + left: 50%; + transform: translateX(-50%); + animation: fadeIn 1s ease-in-out forwards, fadeOut 1s ease-in-out forwards 14s; + cursor: pointer; +} +alert h1 { + font-size: 20px; + margin: 0; +} +alert p { + font-size: 16px; + margin: 0; +} +@keyframes fadeIn { + 0% { + opacity: 0; + top: -50px; + } + 100% { + opacity: 1; + top: 10px; + } +} +@keyframes fadeOut { + 0% { + opacity: 1; + top: 10px; + } + 100% { + opacity: 0; + top: -50px; + } } \ No newline at end of file diff --git a/index.html b/index.html index a0b28b2..00ef551 100755 --- a/index.html +++ b/index.html @@ -109,6 +109,20 @@ function updateTime() { document.getElementById("time").innerText = (new Date()).toLocaleTimeString(); } + function sAlert(title, message) { + let alertHolder = document.createElement("alert"); + let alertTitle = document.createElement("h1"); + alertTitle.innerHTML = title; + let alertMessage = document.createElement("p"); + alertMessage.innerHTML = message; + alertHolder.appendChild(alertTitle); + alertHolder.appendChild(alertMessage); + document.body.appendChild(alertHolder); + alertHolder.addEventListener("click", alertHolder.remove); + setTimeout(() => { + alertHolder.remove(); + }, 1000 * 15) + } document.addEventListener("DOMContentLoaded", async ()=>{ getWeather(); setInterval(getWeather, 1000 * 60 * 30); @@ -154,9 +168,14 @@ } }); socket.addEventListener("message", (e)=>{ - socket.send("1"); if(e.data.split("=")[0] == "online") { + socket.send("1"); document.getElementById("online").innerText = `currently online: ${e.data.split("=")[1]}`; + } else { + if(e.data.startsWith("annc")) { + let message = e.data.split(";;"); + sAlert(message[1], message[2]); + } } }) let currentCloak = {name: "", icon: ""}; diff --git a/js/games.js b/js/games.js index 54e4bff..b23a636 100755 --- a/js/games.js +++ b/js/games.js @@ -1,5 +1,6 @@ document.addEventListener("DOMContentLoaded", loadGames); let elements = []; +let isDev = []; async function loadGames() { // taken from mdn // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort @@ -35,16 +36,37 @@ async function loadGames() { star.id = "star"; star.classList = "star"; star.src = isStarred ? "/img/star-fill.svg" : "/img/star.svg"; + let warnings = document.createElement("warnings"); newElement.appendChild(image); holder.appendChild(title); newElement.appendChild(holder); + newElement.appendChild(warnings); if(element.tags) { + if(element.tags.includes("13+")) { + let thirteenplus = document.createElement("warning"); + thirteenplus.innerText = "13+"; + thirteenplus.classList = "thirteen"; + warnings.appendChild(thirteenplus); + } + if(element.tags.includes("horror")) { + let horror = document.createElement("warning"); + horror.innerText = "😱"; + horror.classList = "horror"; + warnings.appendChild(horror); + } + if(element.tags.includes("gore")) { + let gore = document.createElement("warning"); + gore.innerText = "🩸"; + gore.classList = "gore"; + warnings.appendChild(gore); + } if(element.tags.includes("top")) { topGElement.appendChild(newElement); } else { gamesElement.appendChild(newElement); holder.appendChild(star); } + if(element.tags.includes("tofinish")) isDev.push(element.directory); } else { gamesElement.appendChild(newElement); holder.appendChild(star); @@ -63,6 +85,7 @@ async function loadGames() { document.getElementById("loadingMsg").style.display = "none"; document.getElementById("allHeader").style.display = "block"; document.getElementById("topHeader").style.display = "block"; + if(isDev.length > 0) {sAlert("wip games", "dev message, shouldnt be seen");console.log(isDev.join(","))}; starredGames = JSON.parse(localStorage.getItem("selenite.starred") || '[]'); if(starredGames.length > 0) { document.getElementById("starredHeader").style.display = "block"; diff --git a/js/main.js b/js/main.js index dc2cdf6..17095c3 100755 --- a/js/main.js +++ b/js/main.js @@ -1,3 +1,5 @@ +let sAlert = window.parent.sAlert; + function setBackground() { let randomNumbers = [100-Math.abs(Math.floor(Math.random() * 200) - 99), 100-Math.abs(Math.floor(Math.random() * 200) - 99)]; document.body.style.setProperty("--gradient-x", randomNumbers[0] + "%"); diff --git a/quotes.json b/quotes.json index e69de29..c743686 100644 --- a/quotes.json +++ b/quotes.json @@ -0,0 +1,107 @@ +[ + "pay attention during school", + "yall playing games while im making the website ur using", + "Hello!", + "Lorem ipsum dolor sit amet, adipiscing consequat adipiscing sit amet. In tortor dolor, sollicitudin quis urna vitae, rutrum selecrelico dolor. Ut facilisis ornare lacus, ut dictum felis aliquam ut. Omnino interdum fit cum cura. Non est aequum, non solum, sed nec refert quis sit terra. Sed vestibulum a tellus non semper. Aliquam a neque euismod dolor dapibus aliquet ultricies ut nibh. Sed eget auctor ante. Aliquam dictum volutpat vestibulum. Putasti ovum paschale futurum. Nullo modo.", + "join the discord NOW", + "linux is so much better than windows", + "Did you know that oxygen is tasty?", + "Did you know that drinking water is dangerous?", + "🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸", + "chromebooks suck", + "Made 10% from actual code 90% skidded", + "moni", + "uwu", + "uWu", + "OwO", + "UwU", + "Chocolate hummus is a disgrace to the entire middle east.", + "3kh0 has fell, and now 3kh0 has sadly died.", + "Fun fact: Your chromebook is likely being monitored 24/7", + "Activate Selenite, Go to settings to activate Selenite", + "This copy of Selenite is not genuine.", + "contains 100% all-natural beef", + "You may be a victim of software counterfeiting", + "Woe to those who don't use this game site", + "Did you know we are open source?", + "SUPR COL GAMS V2 IS AWESOME!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", + "thank you to louis pasteur for inventing milk", + "you found the secret message", + "i know where you live", + "i", + "technoblade never dies", + "Selenite has shut down.", + "theres at least 2, maybe 3 games on this website", + "🥺👉👈", + "what website is this?", + "we love about:blank", + "join the discord to be cool", + "bigfoot is an L", + "check steam", + "selentine", + "geometry dash two point two", + "does anyone call twitter X unironically", + "rights to the trans people 🏳️‍⚧️ (trans rights)", + "happy new years everyone", + "merry christmas everyone", + "happy easter day everyone", + "happy halloween everyone", + "happy thanksgiving everyone", + "happy valentines day everyone", + "happy birthday to me", + "happy birthday to you", + "happy birthday to everyone", + "happy birthday to the website", + "dont look behind you", + "sky", + "penguinify", + "a456pur", + "selenite", + "3kh0", + "selenite is the best", + "selenite is the best website", + "selenite is the best website ever", + "selenite is the best website ever made", + "selenite is the best website ever made in the history of the world", + "selenite is the best website ever made in the history of the world and the universe", + "Your network admin has logged this visit. You will be reported to the authorities.", + "share with your friends", + "i love piracy", + "i love piracy and you should too", + "ai is gonna take over the world", + "serap", + "slenetine", + "Behind you.", + "if you are seeing this message, please ping the owner of selenite in the discord server immediately.", + "sorry in advance for may 18th", + "selenite stole $100k from the pentagon to keep paying for hosting", + "this is your sign to get off games and get a good academic life", + "Josh", + "We skidded from everyone including ourselves.", + "congrats on who got a 53 by using this site", + "ive spent 10 minutes writing 8 quotes gosh i need better things to do", + "selenite workers are immensely underpaid", + "how does one", + "Please add proxy im begging i need proxy", + "seraphite", + "if u self-hosted this then ur cool", + "if you want to install linux, first crack the skid, then restart and you should be set", + "sure just downgrade the about:blank page", + "...that's not how it works. if you want to unenroll the only way to do that is to uninstall the shim", + "sure just hack the crosh shell", + "yeah so you want to playstore bypass the servers, you don't want to remove the servers", + "yeah so you want to crack the proxy, you don't want to hack the goguardian", + "to disable filters, you need to hack the proxy", + "to downgrade, you need to rm -rf the shim", + "🥺👉👈", + "me when i the me the when the the me the when i the when the me the the the when the", + "ayyy, ay, six sevennnn", + "41 but i got 41 gold", + "HelloWorld(Print)", + "im thinking miku miku uu ee uu", + "i love miku, teto, and the yellow one", + "you only really have 2 choices", + "ts is a tuff ahh site boi", + "mrrp :3", + "mrrreeeooooowww :3" +] \ No newline at end of file diff --git a/settings.html b/settings.html index 05ab0d1..f033357 100755 --- a/settings.html +++ b/settings.html @@ -144,13 +144,39 @@ return theme; } }); + function wipeData() { + if(prompt("Wiping your data means you will lose all progress in every game, and every setting you have selected.\nAre you sure you would like to continue?\n\nType \"please wipe my data\" to continue.") == "please wipe my data") { + localStorage.clear(); + document.cookie.split(";").forEach(e => { + document.cookie = e.split("=")[0] + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT" + }) + } + } + function downloadData() { + // grab localstorage + // grab cookies + // json.stringify + // base64 + alert("not completed"); + } + function uploadData() { + if(prompt("Are you sure you want to upload data?\nThis may overwrite any previous data you had stored.\n\nType \"i am sure\" to continue.") == "i am sure") { + // prompt file upload + // read file + // atob + // set cookies + // set localstorage + alert("not completed"); + } + }

settings

-

theme

+

style

+

themes

-
-
-

toggles

+

toggles

@@ -193,6 +217,13 @@
+
+

manage data

+

not implemented

+ + + +
-- 2.49.0