commit a261c71fea8abf59860be80b321c147851667eb0 Author: Chad Baxter Date: Tue Jan 9 00:33:51 2024 -0500 added homelab page diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..9740a79 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,1309 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "askama" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b79091df18a97caea757e28cd2d5fda49c6cd4bd01ddffd7ff01ace0c0ad2c28" +dependencies = [ + "askama_derive", + "askama_escape", + "humansize", + "num-traits", + "percent-encoding", +] + +[[package]] +name = "askama_axum" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a41603f7cdbf5ac4af60760f17253eb6adf6ec5b6f14a7ed830cf687d375f163" +dependencies = [ + "askama", + "axum-core", + "http", +] + +[[package]] +name = "askama_derive" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ccf09143e56923c12e027b83a9553210a3c58322ed8419a53461b14a4dccd85" +dependencies = [ + "askama_parser", + "basic-toml", + "mime", + "mime_guess", + "proc-macro2", + "quote", + "serde", + "syn", +] + +[[package]] +name = "askama_escape" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "619743e34b5ba4e9703bba34deac3427c72507c7159f5fd030aea8cac0cfe341" + +[[package]] +name = "askama_parser" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "262eb9cf7be51269c5f2951eeda9ccd14d6934e437457f47b4f066bf55a6770d" +dependencies = [ + "nom", +] + +[[package]] +name = "async-compression" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", + "zstd", + "zstd-safe", +] + +[[package]] +name = "async-trait" +version = "0.1.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "axum" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d09dbe0e490df5da9d69b36dca48a76635288a82f92eca90024883a56202026d" +dependencies = [ + "async-trait", + "axum-core", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "axum-core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e87c8503f93e6d144ee5690907ba22db7ba79ab001a932ab99034f0fe836b3df" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" + +[[package]] +name = "basic-toml" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2db21524cad41c5591204d22d75e1970a2d1f71060214ca931dc7d5afe2c14e5" +dependencies = [ + "serde", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" + +[[package]] +name = "brotli" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" + +[[package]] +name = "cbax_dev" +version = "0.1.0" +dependencies = [ + "askama", + "askama_axum", + "axum", + "tokio", + "tower", + "tower-http", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "jobserver", + "libc", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "flate2" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "getrandom" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "h2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d308f63daf4181410c242d34c11f928dcb3aa105852019e043c9d1f4e4368a" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" + +[[package]] +name = "hermit-abi" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" + +[[package]] +name = "http" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840" +dependencies = [ + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "http-range-header" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ce4ef31cda248bbdb6e6820603b82dfcd9e833db65a43e997a0ccec777d11fe" + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humansize" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7" +dependencies = [ + "libm", +] + +[[package]] +name = "hyper" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "hyper-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdea9aac0dbe5a9240d68cfd9501e2db94222c6dc06843e06640b9e07f0fdc67" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tracing", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "iri-string" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21859b667d66a4c1dacd9df0863b3efb65785474255face87f5bca39dd8407c0" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "itoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" + +[[package]] +name = "jobserver" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +dependencies = [ + "libc", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "memchr" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +dependencies = [ + "libc", + "wasi", + "windows-sys", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pin-project" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" + +[[package]] +name = "proc-macro2" +version = "1.0.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "907a61bd0f64c2f29cd1cf1dc34d05176426a3f504a78010f08416ddb7b13708" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[package]] +name = "ryu" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "serde" +version = "1.0.194" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b114498256798c94a0689e1a15fec6005dee8ac1f41de56404b67afc2a4b773" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.194" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3385e45322e8f9931410f01b3031ec534c3947d0e94c18049af4d9f9907d4e0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.111" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebd154a240de39fdebcf5775d2675c204d7c13cf39a4c697be6493c8e734337c" +dependencies = [ + "itoa", + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" + +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "syn" +version = "2.0.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "tokio" +version = "1.35.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-util" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09e12e6351354851911bdf8c2b8f2ab15050c567d70a8b9a37ae7b8301a4080d" +dependencies = [ + "async-compression", + "base64", + "bitflags 2.4.1", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "http-range-header", + "httpdate", + "iri-string", + "mime", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "tokio", + "tokio-util", + "tower", + "tower-layer", + "tower-service", + "tracing", + "uuid", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "unicase" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +dependencies = [ + "getrandom", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "zstd" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bffb3309596d527cfcba7dfc6ed6052f1d39dfbd7c867aa2e865e4a449c10110" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43747c7422e2924c11144d5229878b98180ef8b06cca4ab5af37afc8a8d8ea3e" +dependencies = [ + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.9+zstd.1.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..991db99 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "cbax_dev" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +askama = { version = "0.12.1", features = ["with-axum"] } +askama_axum = "0.4.0" +axum = "0.7.2" +tokio = { version = "1.34.0", features = ["full"] } +tower = "0.4.13" +tower-http = { version = "0.5.0", features = ["full"] } +tracing = "0.1.40" +tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..115abf8 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,90 @@ +use std::io::prelude::*; +use std::fs::File; + +use askama::Template; +use axum::{ + http::StatusCode, + response::{Html, IntoResponse, Response}, + routing::get, + Router, +}; +use tower::ServiceBuilder; +use tower_http::services::ServeDir; +use tower_http::trace::TraceLayer; +use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt}; + +#[derive(Template)] +#[template(path = "index.html", escape = "none")] +struct IndexTemplate { + styles: String, +} + +#[derive(Template)] +#[template(path = "homelab.html", escape = "none")] +struct HomelabTemplate { + styles: String, +} + +struct HtmlTemplate(T); + +impl IntoResponse for HtmlTemplate +where + T: Template, +{ + fn into_response(self) -> Response { + match self.0.render() { + Ok(html) => Html(html).into_response(), + Err(err) => ( + StatusCode::INTERNAL_SERVER_ERROR, + format!("Failed to render template. Error: {err}"), + ) + .into_response(), + } + } +} + +async fn homelab() -> impl IntoResponse { + let mut styles_file = File::open("static/css/styles.css").expect("Failed to open stylesheet."); + let mut styles = String::new(); + styles_file.read_to_string(&mut styles).expect("Failed to read stylesheet."); + let template = HomelabTemplate { styles }; + HtmlTemplate(template) +} + +async fn index() -> impl IntoResponse { + let mut styles_file = File::open("static/css/styles.css").expect("Failed to open stylesheet."); + let mut styles = String::new(); + styles_file.read_to_string(&mut styles).expect("Failed to read stylesheet."); + let template = IndexTemplate { styles }; + HtmlTemplate(template) +} + +fn serve_dir() -> Router { + // serve the file in the "assets" directory under `/assets` + Router::new().nest_service("/res", ServeDir::new("static")) +} + +#[tokio::main] +async fn main() { + tracing_subscriber::registry() + .with( + tracing_subscriber::EnvFilter::try_from_default_env() + .unwrap_or_else(|_| "example_templates=debug".into()), + ) + .with(tracing_subscriber::fmt::layer()) + .init(); + + // build our application with some routes + let app = Router::new() + .route("/", get(index)) + .route("/homelab", get(homelab)) + .fallback_service(serve_dir()) + .layer(ServiceBuilder::new().layer(TraceLayer::new_for_http())); + + // run it + let listener = tokio::net::TcpListener::bind("127.0.0.1:7654") + .await + .unwrap(); + tracing::debug!("listening on {}", listener.local_addr().unwrap()); + axum::serve(listener, app).await.unwrap(); +} diff --git a/src/templating.rs.old b/src/templating.rs.old new file mode 100644 index 0000000..9ec1791 --- /dev/null +++ b/src/templating.rs.old @@ -0,0 +1,24 @@ +use log::debug; +use pug::parse; +use std::fs::File; +use std::io::prelude::*; +use std::io::{BufReader, BufWriter}; + +pub fn render(path: &str) -> String { + match File::open(path) { + Ok(file_handle) => { + let mut reader = BufReader::new(file_handle); + let mut template = String::new(); + let _ = reader.read_to_string(&mut template); + let mut writer = BufWriter::new(Vec::new()); + parse(template).unwrap().to_html(&mut writer).unwrap(); + let bytes = writer.into_inner().unwrap(); + + return String::from_utf8(bytes).unwrap(); + } + Err(_e) => { + debug!("Failed to open template file: {}", _e); + return String::new(); + } + } +} diff --git a/static/css/spectre-exp.min.css b/static/css/spectre-exp.min.css new file mode 100644 index 0000000..d313774 --- /dev/null +++ b/static/css/spectre-exp.min.css @@ -0,0 +1 @@ +/*! Spectre.css Experimentals v0.5.9 | MIT License | github.com/picturepan2/spectre */.form-autocomplete{position:relative}.form-autocomplete .form-autocomplete-input{align-content:flex-start;display:-ms-flexbox;display:flex;-ms-flex-line-pack:start;-ms-flex-wrap:wrap;flex-wrap:wrap;height:auto;min-height:1.6rem;padding:.1rem}.form-autocomplete .form-autocomplete-input.is-focused{border-color:#5755d9;box-shadow:0 0 0 .1rem rgba(87,85,217,.2)}.form-autocomplete .form-autocomplete-input .form-input{border-color:transparent;box-shadow:none;display:inline-block;-ms-flex:1 0 auto;flex:1 0 auto;height:1.2rem;line-height:.8rem;margin:.1rem;width:auto}.form-autocomplete .menu{left:0;position:absolute;top:100%;width:100%}.form-autocomplete.autocomplete-oneline .form-autocomplete-input{-ms-flex-wrap:nowrap;flex-wrap:nowrap;overflow-x:auto}.form-autocomplete.autocomplete-oneline .chip{-ms-flex:1 0 auto;flex:1 0 auto}.calendar{border:.05rem solid #dadee4;border-radius:.1rem;display:block;min-width:280px}.calendar .calendar-nav{align-items:center;background:#f7f8f9;border-top-left-radius:.1rem;border-top-right-radius:.1rem;display:-ms-flexbox;display:flex;-ms-flex-align:center;font-size:.9rem;padding:.4rem}.calendar .calendar-body,.calendar .calendar-header{display:-ms-flexbox;display:flex;-ms-flex-pack:center;-ms-flex-wrap:wrap;flex-wrap:wrap;justify-content:center;padding:.4rem 0}.calendar .calendar-body .calendar-date,.calendar .calendar-header .calendar-date{-ms-flex:0 0 14.28%;flex:0 0 14.28%;max-width:14.28%}.calendar .calendar-header{background:#f7f8f9;border-bottom:.05rem solid #dadee4;color:#bcc3ce;font-size:.7rem;text-align:center}.calendar .calendar-body{color:#66758c}.calendar .calendar-date{border:0;padding:.2rem}.calendar .calendar-date .date-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;border:.05rem solid transparent;border-radius:50%;color:#66758c;cursor:pointer;font-size:.7rem;height:1.4rem;line-height:1rem;outline:0;padding:.1rem;position:relative;text-align:center;text-decoration:none;transition:background .2s,border .2s,box-shadow .2s,color .2s;vertical-align:middle;white-space:nowrap;width:1.4rem}.calendar .calendar-date .date-item.date-today{border-color:#e5e5f9;color:#5755d9}.calendar .calendar-date .date-item:focus{box-shadow:0 0 0 .1rem rgba(87,85,217,.2)}.calendar .calendar-date .date-item:focus,.calendar .calendar-date .date-item:hover{background:#fefeff;border-color:#e5e5f9;color:#5755d9;text-decoration:none}.calendar .calendar-date .date-item.active,.calendar .calendar-date .date-item:active{background:#4b48d6;border-color:#3634d2;color:#fff}.calendar .calendar-date .date-item.badge::after{position:absolute;right:3px;top:3px;transform:translate(50%,-50%)}.calendar .calendar-date .calendar-event.disabled,.calendar .calendar-date .calendar-event:disabled,.calendar .calendar-date .date-item.disabled,.calendar .calendar-date .date-item:disabled{cursor:default;opacity:.25;pointer-events:none}.calendar .calendar-date.next-month .calendar-event,.calendar .calendar-date.next-month .date-item,.calendar .calendar-date.prev-month .calendar-event,.calendar .calendar-date.prev-month .date-item{opacity:.25}.calendar .calendar-range{position:relative}.calendar .calendar-range::before{background:#f1f1fc;content:"";height:1.4rem;left:0;position:absolute;right:0;top:50%;transform:translateY(-50%)}.calendar .calendar-range.range-start::before{left:50%}.calendar .calendar-range.range-end::before{right:50%}.calendar .calendar-range.range-end .date-item,.calendar .calendar-range.range-start .date-item{background:#4b48d6;border-color:#3634d2;color:#fff}.calendar .calendar-range .date-item{color:#5755d9}.calendar.calendar-lg .calendar-body{padding:0}.calendar.calendar-lg .calendar-body .calendar-date{border-bottom:.05rem solid #dadee4;border-right:.05rem solid #dadee4;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:5.5rem;padding:0}.calendar.calendar-lg .calendar-body .calendar-date:nth-child(7n){border-right:0}.calendar.calendar-lg .calendar-body .calendar-date:nth-last-child(-n+7){border-bottom:0}.calendar.calendar-lg .date-item{align-self:flex-end;-ms-flex-item-align:end;height:1.4rem;margin-right:.2rem;margin-top:.2rem}.calendar.calendar-lg .calendar-range::before{top:19px}.calendar.calendar-lg .calendar-range.range-start::before{left:auto;width:19px}.calendar.calendar-lg .calendar-range.range-end::before{right:19px}.calendar.calendar-lg .calendar-events{flex-grow:1;-ms-flex-positive:1;line-height:1;overflow-y:auto;padding:.2rem}.calendar.calendar-lg .calendar-event{border-radius:.1rem;display:block;font-size:.7rem;margin:.1rem auto;overflow:hidden;padding:3px 4px;text-overflow:ellipsis;white-space:nowrap}.carousel .carousel-locator:nth-of-type(1):checked~.carousel-container .carousel-item:nth-of-type(1),.carousel .carousel-locator:nth-of-type(2):checked~.carousel-container .carousel-item:nth-of-type(2),.carousel .carousel-locator:nth-of-type(3):checked~.carousel-container .carousel-item:nth-of-type(3),.carousel .carousel-locator:nth-of-type(4):checked~.carousel-container .carousel-item:nth-of-type(4),.carousel .carousel-locator:nth-of-type(5):checked~.carousel-container .carousel-item:nth-of-type(5),.carousel .carousel-locator:nth-of-type(6):checked~.carousel-container .carousel-item:nth-of-type(6),.carousel .carousel-locator:nth-of-type(7):checked~.carousel-container .carousel-item:nth-of-type(7),.carousel .carousel-locator:nth-of-type(8):checked~.carousel-container .carousel-item:nth-of-type(8){animation:carousel-slidein .75s ease-in-out 1;opacity:1;z-index:100}.carousel .carousel-locator:nth-of-type(1):checked~.carousel-nav .nav-item:nth-of-type(1),.carousel .carousel-locator:nth-of-type(2):checked~.carousel-nav .nav-item:nth-of-type(2),.carousel .carousel-locator:nth-of-type(3):checked~.carousel-nav .nav-item:nth-of-type(3),.carousel .carousel-locator:nth-of-type(4):checked~.carousel-nav .nav-item:nth-of-type(4),.carousel .carousel-locator:nth-of-type(5):checked~.carousel-nav .nav-item:nth-of-type(5),.carousel .carousel-locator:nth-of-type(6):checked~.carousel-nav .nav-item:nth-of-type(6),.carousel .carousel-locator:nth-of-type(7):checked~.carousel-nav .nav-item:nth-of-type(7),.carousel .carousel-locator:nth-of-type(8):checked~.carousel-nav .nav-item:nth-of-type(8){color:#f7f8f9}.carousel{background:#f7f8f9;display:block;overflow:hidden;-webkit-overflow-scrolling:touch;position:relative;width:100%;z-index:1}.carousel .carousel-container{height:100%;left:0;position:relative}.carousel .carousel-container::before{content:"";display:block;padding-bottom:56.25%}.carousel .carousel-container .carousel-item{animation:carousel-slideout 1s ease-in-out 1;height:100%;left:0;margin:0;opacity:0;position:absolute;top:0;width:100%}.carousel .carousel-container .carousel-item:hover .item-next,.carousel .carousel-container .carousel-item:hover .item-prev{opacity:1}.carousel .carousel-container .item-next,.carousel .carousel-container .item-prev{background:rgba(247,248,249,.25);border-color:rgba(247,248,249,.5);color:#f7f8f9;opacity:0;position:absolute;top:50%;transform:translateY(-50%);transition:all .4s;z-index:100}.carousel .carousel-container .item-prev{left:1rem}.carousel .carousel-container .item-next{right:1rem}.carousel .carousel-nav{bottom:.4rem;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;left:50%;position:absolute;transform:translateX(-50%);width:10rem;z-index:100}.carousel .carousel-nav .nav-item{color:rgba(247,248,249,.5);display:block;-ms-flex:1 0 auto;flex:1 0 auto;height:1.6rem;margin:.2rem;max-width:2.5rem;position:relative}.carousel .carousel-nav .nav-item::before{background:currentColor;content:"";display:block;height:.1rem;position:absolute;top:.5rem;width:100%}@keyframes carousel-slidein{0%{transform:translateX(100%)}100%{transform:translateX(0)}}@keyframes carousel-slideout{0%{opacity:1;transform:translateX(0)}100%{opacity:1;transform:translateX(-50%)}}.comparison-slider{height:50vh;overflow:hidden;-webkit-overflow-scrolling:touch;position:relative;width:100%}.comparison-slider .comparison-after,.comparison-slider .comparison-before{height:100%;left:0;margin:0;overflow:hidden;position:absolute;top:0}.comparison-slider .comparison-after img,.comparison-slider .comparison-before img{height:100%;object-fit:cover;object-position:left center;position:absolute;width:100%}.comparison-slider .comparison-before{width:100%;z-index:1}.comparison-slider .comparison-before .comparison-label{right:.8rem}.comparison-slider .comparison-after{max-width:100%;min-width:0;z-index:2}.comparison-slider .comparison-after::before{background:0 0;content:"";cursor:default;height:100%;left:0;position:absolute;right:.8rem;top:0;z-index:1}.comparison-slider .comparison-after::after{background:currentColor;border-radius:50%;box-shadow:0 -5px,0 5px;color:#fff;content:"";height:3px;pointer-events:none;position:absolute;right:.4rem;top:50%;transform:translate(50%,-50%);width:3px}.comparison-slider .comparison-after .comparison-label{left:.8rem}.comparison-slider .comparison-resizer{animation:first-run 1.5s 1 ease-in-out;cursor:ew-resize;height:.8rem;left:0;max-width:100%;min-width:.8rem;opacity:0;outline:0;position:relative;resize:horizontal;top:50%;transform:translateY(-50%) scaleY(30);width:0}.comparison-slider .comparison-label{background:rgba(48,55,66,.5);bottom:.8rem;color:#fff;padding:.2rem .4rem;position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@keyframes first-run{0%{width:0}25%{width:2.4rem}50%{width:.8rem}75%{width:1.2rem}100%{width:0}}.filter .filter-tag#tag-0:checked~.filter-nav .chip[for=tag-0],.filter .filter-tag#tag-1:checked~.filter-nav .chip[for=tag-1],.filter .filter-tag#tag-2:checked~.filter-nav .chip[for=tag-2],.filter .filter-tag#tag-3:checked~.filter-nav .chip[for=tag-3],.filter .filter-tag#tag-4:checked~.filter-nav .chip[for=tag-4],.filter .filter-tag#tag-5:checked~.filter-nav .chip[for=tag-5],.filter .filter-tag#tag-6:checked~.filter-nav .chip[for=tag-6],.filter .filter-tag#tag-7:checked~.filter-nav .chip[for=tag-7],.filter .filter-tag#tag-8:checked~.filter-nav .chip[for=tag-8]{background:#5755d9;color:#fff}.filter .filter-tag#tag-1:checked~.filter-body .filter-item:not([data-tag~=tag-1]),.filter .filter-tag#tag-2:checked~.filter-body .filter-item:not([data-tag~=tag-2]),.filter .filter-tag#tag-3:checked~.filter-body .filter-item:not([data-tag~=tag-3]),.filter .filter-tag#tag-4:checked~.filter-body .filter-item:not([data-tag~=tag-4]),.filter .filter-tag#tag-5:checked~.filter-body .filter-item:not([data-tag~=tag-5]),.filter .filter-tag#tag-6:checked~.filter-body .filter-item:not([data-tag~=tag-6]),.filter .filter-tag#tag-7:checked~.filter-body .filter-item:not([data-tag~=tag-7]),.filter .filter-tag#tag-8:checked~.filter-body .filter-item:not([data-tag~=tag-8]){display:none}.filter .filter-nav{margin:.4rem 0}.filter .filter-body{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.meter{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#f7f8f9;border:0;border-radius:.1rem;display:block;height:.8rem;width:100%}.meter::-webkit-meter-inner-element{display:block}.meter::-webkit-meter-bar,.meter::-webkit-meter-even-less-good-value,.meter::-webkit-meter-optimum-value,.meter::-webkit-meter-suboptimum-value{border-radius:.1rem}.meter::-webkit-meter-bar{background:#f7f8f9}.meter::-webkit-meter-optimum-value{background:#32b643}.meter::-webkit-meter-suboptimum-value{background:#ffb700}.meter::-webkit-meter-even-less-good-value{background:#e85600}.meter:-moz-meter-optimum,.meter:-moz-meter-sub-optimum,.meter:-moz-meter-sub-sub-optimum,.meter::-moz-meter-bar{border-radius:.1rem}.meter:-moz-meter-optimum::-moz-meter-bar{background:#32b643}.meter:-moz-meter-sub-optimum::-moz-meter-bar{background:#ffb700}.meter:-moz-meter-sub-sub-optimum::-moz-meter-bar{background:#e85600}.off-canvas{display:-ms-flexbox;display:flex;-ms-flex-flow:nowrap;flex-flow:nowrap;height:100%;position:relative;width:100%}.off-canvas .off-canvas-toggle{display:block;left:.4rem;position:absolute;top:.4rem;transition:none;z-index:1}.off-canvas .off-canvas-sidebar{background:#f7f8f9;bottom:0;left:0;min-width:10rem;overflow-y:auto;position:fixed;top:0;transform:translateX(-100%);transition:transform .25s;z-index:200}.off-canvas .off-canvas-content{-ms-flex:1 1 auto;flex:1 1 auto;height:100%;padding:.4rem .4rem .4rem 4rem}.off-canvas .off-canvas-overlay{background:rgba(48,55,66,.1);border-color:transparent;border-radius:0;bottom:0;display:none;height:100%;left:0;position:fixed;right:0;top:0;width:100%}.off-canvas .off-canvas-sidebar.active,.off-canvas .off-canvas-sidebar:target{transform:translateX(0)}.off-canvas .off-canvas-sidebar.active~.off-canvas-overlay,.off-canvas .off-canvas-sidebar:target~.off-canvas-overlay{display:block;z-index:100}@media (min-width:960px){.off-canvas.off-canvas-sidebar-show .off-canvas-toggle{display:none}.off-canvas.off-canvas-sidebar-show .off-canvas-sidebar{-ms-flex:0 0 auto;flex:0 0 auto;position:relative;transform:none}.off-canvas.off-canvas-sidebar-show .off-canvas-overlay{display:none!important}}.parallax{display:block;height:auto;position:relative;width:auto}.parallax .parallax-content{box-shadow:0 1rem 2.1rem rgba(48,55,66,.3);height:auto;transform:perspective(1000px);transform-style:preserve-3d;transition:all .4s ease;width:100%}.parallax .parallax-content::before{content:"";display:block;height:100%;left:0;position:absolute;top:0;width:100%}.parallax .parallax-front{align-items:center;color:#fff;display:-ms-flexbox;display:flex;-ms-flex-align:center;-ms-flex-pack:center;height:100%;justify-content:center;left:0;position:absolute;text-align:center;text-shadow:0 0 20px rgba(48,55,66,.75);top:0;transform:translateZ(50px) scale(.95);transition:transform .4s;width:100%;z-index:1}.parallax .parallax-top-left{height:50%;left:0;outline:0;position:absolute;top:0;width:50%;z-index:100}.parallax .parallax-top-left:focus~.parallax-content,.parallax .parallax-top-left:hover~.parallax-content{transform:perspective(1000px) rotateX(3deg) rotateY(-3deg)}.parallax .parallax-top-left:focus~.parallax-content::before,.parallax .parallax-top-left:hover~.parallax-content::before{background:linear-gradient(135deg,rgba(255,255,255,.35) 0,transparent 50%)}.parallax .parallax-top-left:focus~.parallax-content .parallax-front,.parallax .parallax-top-left:hover~.parallax-content .parallax-front{transform:translate3d(4.5px,4.5px,50px) scale(.95)}.parallax .parallax-top-right{height:50%;outline:0;position:absolute;right:0;top:0;width:50%;z-index:100}.parallax .parallax-top-right:focus~.parallax-content,.parallax .parallax-top-right:hover~.parallax-content{transform:perspective(1000px) rotateX(3deg) rotateY(3deg)}.parallax .parallax-top-right:focus~.parallax-content::before,.parallax .parallax-top-right:hover~.parallax-content::before{background:linear-gradient(-135deg,rgba(255,255,255,.35) 0,transparent 50%)}.parallax .parallax-top-right:focus~.parallax-content .parallax-front,.parallax .parallax-top-right:hover~.parallax-content .parallax-front{transform:translate3d(-4.5px,4.5px,50px) scale(.95)}.parallax .parallax-bottom-left{bottom:0;height:50%;left:0;outline:0;position:absolute;width:50%;z-index:100}.parallax .parallax-bottom-left:focus~.parallax-content,.parallax .parallax-bottom-left:hover~.parallax-content{transform:perspective(1000px) rotateX(-3deg) rotateY(-3deg)}.parallax .parallax-bottom-left:focus~.parallax-content::before,.parallax .parallax-bottom-left:hover~.parallax-content::before{background:linear-gradient(45deg,rgba(255,255,255,.35) 0,transparent 50%)}.parallax .parallax-bottom-left:focus~.parallax-content .parallax-front,.parallax .parallax-bottom-left:hover~.parallax-content .parallax-front{transform:translate3d(4.5px,-4.5px,50px) scale(.95)}.parallax .parallax-bottom-right{bottom:0;height:50%;outline:0;position:absolute;right:0;width:50%;z-index:100}.parallax .parallax-bottom-right:focus~.parallax-content,.parallax .parallax-bottom-right:hover~.parallax-content{transform:perspective(1000px) rotateX(-3deg) rotateY(3deg)}.parallax .parallax-bottom-right:focus~.parallax-content::before,.parallax .parallax-bottom-right:hover~.parallax-content::before{background:linear-gradient(-45deg,rgba(255,255,255,.35) 0,transparent 50%)}.parallax .parallax-bottom-right:focus~.parallax-content .parallax-front,.parallax .parallax-bottom-right:hover~.parallax-content .parallax-front{transform:translate3d(-4.5px,-4.5px,50px) scale(.95)}.progress{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#eef0f3;border:0;border-radius:.1rem;color:#5755d9;height:.2rem;position:relative;width:100%}.progress::-webkit-progress-bar{background:0 0;border-radius:.1rem}.progress::-webkit-progress-value{background:#5755d9;border-radius:.1rem}.progress::-moz-progress-bar{background:#5755d9;border-radius:.1rem}.progress:indeterminate{animation:progress-indeterminate 1.5s linear infinite;background:#eef0f3 linear-gradient(to right,#5755d9 30%,#eef0f3 30%) top left/150% 150% no-repeat}.progress:indeterminate::-moz-progress-bar{background:0 0}@keyframes progress-indeterminate{0%{background-position:200% 0}100%{background-position:-200% 0}}.slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;display:block;height:1.2rem;width:100%}.slider:focus{box-shadow:0 0 0 .1rem rgba(87,85,217,.2);outline:0}.slider.tooltip:not([data-tooltip])::after{content:attr(value)}.slider::-webkit-slider-thumb{-webkit-appearance:none;background:#5755d9;border:0;border-radius:50%;height:.6rem;margin-top:-.25rem;-webkit-transition:transform .2s;transition:transform .2s;width:.6rem}.slider::-moz-range-thumb{background:#5755d9;border:0;border-radius:50%;height:.6rem;-moz-transition:transform .2s;transition:transform .2s;width:.6rem}.slider::-ms-thumb{background:#5755d9;border:0;border-radius:50%;height:.6rem;-ms-transition:transform .2s;transition:transform .2s;width:.6rem}.slider:active::-webkit-slider-thumb{transform:scale(1.25)}.slider:active::-moz-range-thumb{transform:scale(1.25)}.slider:active::-ms-thumb{transform:scale(1.25)}.slider.disabled::-webkit-slider-thumb,.slider:disabled::-webkit-slider-thumb{background:#f7f8f9;transform:scale(1)}.slider.disabled::-moz-range-thumb,.slider:disabled::-moz-range-thumb{background:#f7f8f9;transform:scale(1)}.slider.disabled::-ms-thumb,.slider:disabled::-ms-thumb{background:#f7f8f9;transform:scale(1)}.slider::-webkit-slider-runnable-track{background:#eef0f3;border-radius:.1rem;height:.1rem;width:100%}.slider::-moz-range-track{background:#eef0f3;border-radius:.1rem;height:.1rem;width:100%}.slider::-ms-track{background:#eef0f3;border-radius:.1rem;height:.1rem;width:100%}.slider::-ms-fill-lower{background:#5755d9}.timeline .timeline-item{display:-ms-flexbox;display:flex;margin-bottom:1.2rem;position:relative}.timeline .timeline-item::before{background:#dadee4;content:"";height:100%;left:11px;position:absolute;top:1.2rem;width:2px}.timeline .timeline-item .timeline-left{-ms-flex:0 0 auto;flex:0 0 auto}.timeline .timeline-item .timeline-content{-ms-flex:1 1 auto;flex:1 1 auto;padding:2px 0 2px .8rem}.timeline .timeline-item .timeline-icon{align-items:center;border-radius:50%;color:#fff;display:-ms-flexbox;display:flex;-ms-flex-align:center;-ms-flex-pack:center;height:1.2rem;justify-content:center;text-align:center;width:1.2rem}.timeline .timeline-item .timeline-icon::before{border:.1rem solid #5755d9;border-radius:50%;content:"";display:block;height:.4rem;left:.4rem;position:absolute;top:.4rem;width:.4rem}.timeline .timeline-item .timeline-icon.icon-lg{background:#5755d9;line-height:1.2rem}.timeline .timeline-item .timeline-icon.icon-lg::before{content:none}.viewer-360{align-items:center;display:-ms-flexbox;display:flex;-ms-flex-align:center;-ms-flex-direction:column;flex-direction:column}.viewer-360 .viewer-slider[max="36"][value="1"]+.viewer-image{background-position-y:0}.viewer-360 .viewer-slider[max="36"][value="2"]+.viewer-image{background-position-y:2.8571428571%}.viewer-360 .viewer-slider[max="36"][value="3"]+.viewer-image{background-position-y:5.7142857143%}.viewer-360 .viewer-slider[max="36"][value="4"]+.viewer-image{background-position-y:8.5714285714%}.viewer-360 .viewer-slider[max="36"][value="5"]+.viewer-image{background-position-y:11.4285714286%}.viewer-360 .viewer-slider[max="36"][value="6"]+.viewer-image{background-position-y:14.2857142857%}.viewer-360 .viewer-slider[max="36"][value="7"]+.viewer-image{background-position-y:17.1428571429%}.viewer-360 .viewer-slider[max="36"][value="8"]+.viewer-image{background-position-y:20%}.viewer-360 .viewer-slider[max="36"][value="9"]+.viewer-image{background-position-y:22.8571428571%}.viewer-360 .viewer-slider[max="36"][value="10"]+.viewer-image{background-position-y:25.7142857143%}.viewer-360 .viewer-slider[max="36"][value="11"]+.viewer-image{background-position-y:28.5714285714%}.viewer-360 .viewer-slider[max="36"][value="12"]+.viewer-image{background-position-y:31.4285714286%}.viewer-360 .viewer-slider[max="36"][value="13"]+.viewer-image{background-position-y:34.2857142857%}.viewer-360 .viewer-slider[max="36"][value="14"]+.viewer-image{background-position-y:37.1428571429%}.viewer-360 .viewer-slider[max="36"][value="15"]+.viewer-image{background-position-y:40%}.viewer-360 .viewer-slider[max="36"][value="16"]+.viewer-image{background-position-y:42.8571428571%}.viewer-360 .viewer-slider[max="36"][value="17"]+.viewer-image{background-position-y:45.7142857143%}.viewer-360 .viewer-slider[max="36"][value="18"]+.viewer-image{background-position-y:48.5714285714%}.viewer-360 .viewer-slider[max="36"][value="19"]+.viewer-image{background-position-y:51.4285714286%}.viewer-360 .viewer-slider[max="36"][value="20"]+.viewer-image{background-position-y:54.2857142857%}.viewer-360 .viewer-slider[max="36"][value="21"]+.viewer-image{background-position-y:57.1428571429%}.viewer-360 .viewer-slider[max="36"][value="22"]+.viewer-image{background-position-y:60%}.viewer-360 .viewer-slider[max="36"][value="23"]+.viewer-image{background-position-y:62.8571428571%}.viewer-360 .viewer-slider[max="36"][value="24"]+.viewer-image{background-position-y:65.7142857143%}.viewer-360 .viewer-slider[max="36"][value="25"]+.viewer-image{background-position-y:68.5714285714%}.viewer-360 .viewer-slider[max="36"][value="26"]+.viewer-image{background-position-y:71.4285714286%}.viewer-360 .viewer-slider[max="36"][value="27"]+.viewer-image{background-position-y:74.2857142857%}.viewer-360 .viewer-slider[max="36"][value="28"]+.viewer-image{background-position-y:77.1428571429%}.viewer-360 .viewer-slider[max="36"][value="29"]+.viewer-image{background-position-y:80%}.viewer-360 .viewer-slider[max="36"][value="30"]+.viewer-image{background-position-y:82.8571428571%}.viewer-360 .viewer-slider[max="36"][value="31"]+.viewer-image{background-position-y:85.7142857143%}.viewer-360 .viewer-slider[max="36"][value="32"]+.viewer-image{background-position-y:88.5714285714%}.viewer-360 .viewer-slider[max="36"][value="33"]+.viewer-image{background-position-y:91.4285714286%}.viewer-360 .viewer-slider[max="36"][value="34"]+.viewer-image{background-position-y:94.2857142857%}.viewer-360 .viewer-slider[max="36"][value="35"]+.viewer-image{background-position-y:97.1428571429%}.viewer-360 .viewer-slider[max="36"][value="36"]+.viewer-image{background-position-y:100%}.viewer-360 .viewer-slider{cursor:ew-resize;-ms-flex-order:2;margin:1rem;order:2;width:60%}.viewer-360 .viewer-image{background-position-y:0;background-repeat:no-repeat;background-size:100%;-ms-flex-order:1;max-width:100%;order:1} \ No newline at end of file diff --git a/static/css/spectre-icons.min.css b/static/css/spectre-icons.min.css new file mode 100644 index 0000000..0276f7b --- /dev/null +++ b/static/css/spectre-icons.min.css @@ -0,0 +1 @@ +/*! Spectre.css Icons v0.5.9 | MIT License | github.com/picturepan2/spectre */.icon{box-sizing:border-box;display:inline-block;font-size:inherit;font-style:normal;height:1em;position:relative;text-indent:-9999px;vertical-align:middle;width:1em}.icon::after,.icon::before{content:"";display:block;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.icon.icon-2x{font-size:1.6rem}.icon.icon-3x{font-size:2.4rem}.icon.icon-4x{font-size:3.2rem}.accordion .icon,.btn .icon,.menu .icon,.toast .icon{vertical-align:-10%}.btn-lg .icon{vertical-align:-15%}.icon-arrow-down::before,.icon-arrow-left::before,.icon-arrow-right::before,.icon-arrow-up::before,.icon-back::before,.icon-downward::before,.icon-forward::before,.icon-upward::before{border:.1rem solid currentColor;border-bottom:0;border-right:0;height:.65em;width:.65em}.icon-arrow-down::before{transform:translate(-50%,-75%) rotate(225deg)}.icon-arrow-left::before{transform:translate(-25%,-50%) rotate(-45deg)}.icon-arrow-right::before{transform:translate(-75%,-50%) rotate(135deg)}.icon-arrow-up::before{transform:translate(-50%,-25%) rotate(45deg)}.icon-back::after,.icon-forward::after{background:currentColor;height:.1rem;width:.8em}.icon-downward::after,.icon-upward::after{background:currentColor;height:.8em;width:.1rem}.icon-back::after{left:55%}.icon-back::before{transform:translate(-50%,-50%) rotate(-45deg)}.icon-downward::after{top:45%}.icon-downward::before{transform:translate(-50%,-50%) rotate(-135deg)}.icon-forward::after{left:45%}.icon-forward::before{transform:translate(-50%,-50%) rotate(135deg)}.icon-upward::after{top:55%}.icon-upward::before{transform:translate(-50%,-50%) rotate(45deg)}.icon-caret::before{border-left:.3em solid transparent;border-right:.3em solid transparent;border-top:.3em solid currentColor;height:0;transform:translate(-50%,-25%);width:0}.icon-menu::before{background:currentColor;box-shadow:0 -.35em,0 .35em;height:.1rem;width:100%}.icon-apps::before{background:currentColor;box-shadow:-.35em -.35em,-.35em 0,-.35em .35em,0 -.35em,0 .35em,.35em -.35em,.35em 0,.35em .35em;height:3px;width:3px}.icon-resize-horiz::after,.icon-resize-horiz::before,.icon-resize-vert::after,.icon-resize-vert::before{border:.1rem solid currentColor;border-bottom:0;border-right:0;height:.45em;width:.45em}.icon-resize-horiz::before,.icon-resize-vert::before{transform:translate(-50%,-90%) rotate(45deg)}.icon-resize-horiz::after,.icon-resize-vert::after{transform:translate(-50%,-10%) rotate(225deg)}.icon-resize-horiz::before{transform:translate(-90%,-50%) rotate(-45deg)}.icon-resize-horiz::after{transform:translate(-10%,-50%) rotate(135deg)}.icon-more-horiz::before,.icon-more-vert::before{background:currentColor;border-radius:50%;box-shadow:-.4em 0,.4em 0;height:3px;width:3px}.icon-more-vert::before{box-shadow:0 -.4em,0 .4em}.icon-cross::before,.icon-minus::before,.icon-plus::before{background:currentColor;height:.1rem;width:100%}.icon-cross::after,.icon-plus::after{background:currentColor;height:100%;width:.1rem}.icon-cross::before{width:100%}.icon-cross::after{height:100%}.icon-cross::after,.icon-cross::before{transform:translate(-50%,-50%) rotate(45deg)}.icon-check::before{border:.1rem solid currentColor;border-right:0;border-top:0;height:.5em;transform:translate(-50%,-75%) rotate(-45deg);width:.9em}.icon-stop{border:.1rem solid currentColor;border-radius:50%}.icon-stop::before{background:currentColor;height:.1rem;transform:translate(-50%,-50%) rotate(45deg);width:1em}.icon-shutdown{border:.1rem solid currentColor;border-radius:50%;border-top-color:transparent}.icon-shutdown::before{background:currentColor;content:"";height:.5em;top:.1em;width:.1rem}.icon-refresh::before{border:.1rem solid currentColor;border-radius:50%;border-right-color:transparent;height:1em;width:1em}.icon-refresh::after{border:.2em solid currentColor;border-left-color:transparent;border-top-color:transparent;height:0;left:80%;top:20%;width:0}.icon-search::before{border:.1rem solid currentColor;border-radius:50%;height:.75em;left:5%;top:5%;transform:translate(0,0) rotate(45deg);width:.75em}.icon-search::after{background:currentColor;height:.1rem;left:80%;top:80%;transform:translate(-50%,-50%) rotate(45deg);width:.4em}.icon-edit::before{border:.1rem solid currentColor;height:.4em;transform:translate(-40%,-60%) rotate(-45deg);width:.85em}.icon-edit::after{border:.15em solid currentColor;border-right-color:transparent;border-top-color:transparent;height:0;left:5%;top:95%;transform:translate(0,-100%);width:0}.icon-delete::before{border:.1rem solid currentColor;border-bottom-left-radius:.1rem;border-bottom-right-radius:.1rem;border-top:0;height:.75em;top:60%;width:.75em}.icon-delete::after{background:currentColor;box-shadow:-.25em .2em,.25em .2em;height:.1rem;top:.05rem;width:.5em}.icon-share{border:.1rem solid currentColor;border-radius:.1rem;border-right:0;border-top:0}.icon-share::before{border:.1rem solid currentColor;border-left:0;border-top:0;height:.4em;left:100%;top:.25em;transform:translate(-125%,-50%) rotate(-45deg);width:.4em}.icon-share::after{border:.1rem solid currentColor;border-bottom:0;border-radius:75% 0;border-right:0;height:.5em;width:.6em}.icon-flag::before{background:currentColor;height:1em;left:15%;width:.1rem}.icon-flag::after{border:.1rem solid currentColor;border-bottom-right-radius:.1rem;border-left:0;border-top-right-radius:.1rem;height:.65em;left:60%;top:35%;width:.8em}.icon-bookmark::before{border:.1rem solid currentColor;border-bottom:0;border-top-left-radius:.1rem;border-top-right-radius:.1rem;height:.9em;width:.8em}.icon-bookmark::after{border:.1rem solid currentColor;border-bottom:0;border-left:0;border-radius:.1rem;height:.5em;transform:translate(-50%,35%) rotate(-45deg) skew(15deg,15deg);width:.5em}.icon-download,.icon-upload{border-bottom:.1rem solid currentColor}.icon-download::before,.icon-upload::before{border:.1rem solid currentColor;border-bottom:0;border-right:0;height:.5em;transform:translate(-50%,-60%) rotate(-135deg);width:.5em}.icon-download::after,.icon-upload::after{background:currentColor;height:.6em;top:40%;width:.1rem}.icon-upload::before{transform:translate(-50%,-60%) rotate(45deg)}.icon-upload::after{top:50%}.icon-copy::before{border:.1rem solid currentColor;border-bottom:0;border-radius:.1rem;border-right:0;height:.8em;left:40%;top:35%;width:.8em}.icon-copy::after{border:.1rem solid currentColor;border-radius:.1rem;height:.8em;left:60%;top:60%;width:.8em}.icon-time{border:.1rem solid currentColor;border-radius:50%}.icon-time::before{background:currentColor;height:.4em;transform:translate(-50%,-75%);width:.1rem}.icon-time::after{background:currentColor;height:.3em;transform:translate(-50%,-75%) rotate(90deg);transform-origin:50% 90%;width:.1rem}.icon-mail::before{border:.1rem solid currentColor;border-radius:.1rem;height:.8em;width:1em}.icon-mail::after{border:.1rem solid currentColor;border-right:0;border-top:0;height:.5em;transform:translate(-50%,-90%) rotate(-45deg) skew(10deg,10deg);width:.5em}.icon-people::before{border:.1rem solid currentColor;border-radius:50%;height:.45em;top:25%;width:.45em}.icon-people::after{border:.1rem solid currentColor;border-radius:50% 50% 0 0;height:.4em;top:75%;width:.9em}.icon-message{border:.1rem solid currentColor;border-bottom:0;border-radius:.1rem;border-right:0}.icon-message::before{border:.1rem solid currentColor;border-bottom-right-radius:.1rem;border-left:0;border-top:0;height:.8em;left:65%;top:40%;width:.7em}.icon-message::after{background:currentColor;border-radius:.1rem;height:.3em;left:10%;top:100%;transform:translate(0,-90%) rotate(45deg);width:.1rem}.icon-photo{border:.1rem solid currentColor;border-radius:.1rem}.icon-photo::before{border:.1rem solid currentColor;border-radius:50%;height:.25em;left:35%;top:35%;width:.25em}.icon-photo::after{border:.1rem solid currentColor;border-bottom:0;border-left:0;height:.5em;left:60%;transform:translate(-50%,25%) rotate(-45deg);width:.5em}.icon-link::after,.icon-link::before{border:.1rem solid currentColor;border-radius:5em 0 0 5em;border-right:0;height:.5em;width:.75em}.icon-link::before{transform:translate(-70%,-45%) rotate(-45deg)}.icon-link::after{transform:translate(-30%,-55%) rotate(135deg)}.icon-location::before{border:.1rem solid currentColor;border-radius:50% 50% 50% 0;height:.8em;transform:translate(-50%,-60%) rotate(-45deg);width:.8em}.icon-location::after{border:.1rem solid currentColor;border-radius:50%;height:.2em;transform:translate(-50%,-80%);width:.2em}.icon-emoji{border:.1rem solid currentColor;border-radius:50%}.icon-emoji::before{border-radius:50%;box-shadow:-.17em -.1em,.17em -.1em;height:.15em;width:.15em}.icon-emoji::after{border:.1rem solid currentColor;border-bottom-color:transparent;border-radius:50%;border-right-color:transparent;height:.5em;transform:translate(-50%,-40%) rotate(-135deg);width:.5em} \ No newline at end of file diff --git a/static/css/spectre.min.css b/static/css/spectre.min.css new file mode 100644 index 0000000..0fe23d9 --- /dev/null +++ b/static/css/spectre.min.css @@ -0,0 +1 @@ +/*! Spectre.css v0.5.9 | MIT License | github.com/picturepan2/spectre */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}hr{box-sizing:content-box;height:0;overflow:visible}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}address{font-style:normal}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:"SF Mono","Segoe UI Mono","Roboto Mono",Menlo,Courier,monospace;font-size:1em}dfn{font-style:italic}small{font-size:80%;font-weight:400}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}fieldset{border:0;margin:0;padding:0}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item;outline:0}canvas{display:inline-block}template{display:none}[hidden]{display:none}*,::after,::before{box-sizing:inherit}html{box-sizing:border-box;font-size:20px;line-height:1.5;-webkit-tap-highlight-color:transparent}body{background:#fff;color:#3b4351;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;font-size:.8rem;overflow-x:hidden;text-rendering:optimizeLegibility}a{color:#5755d9;outline:0;text-decoration:none}a:focus{box-shadow:0 0 0 .1rem rgba(87,85,217,.2)}a.active,a:active,a:focus,a:hover{color:#302ecd;text-decoration:underline}a:visited{color:#807fe2}h1,h2,h3,h4,h5,h6{color:inherit;font-weight:500;line-height:1.2;margin-bottom:.5em;margin-top:0}.h1,.h2,.h3,.h4,.h5,.h6{font-weight:500}.h1,h1{font-size:2rem}.h2,h2{font-size:1.6rem}.h3,h3{font-size:1.4rem}.h4,h4{font-size:1.2rem}.h5,h5{font-size:1rem}.h6,h6{font-size:.8rem}p{margin:0 0 1.2rem}a,ins,u{-webkit-text-decoration-skip:ink edges;text-decoration-skip:ink edges}abbr[title]{border-bottom:.05rem dotted;cursor:help;text-decoration:none}kbd{background:#303742;border-radius:.1rem;color:#fff;font-size:.7rem;line-height:1.25;padding:.1rem .2rem}mark{background:#ffe9b3;border-bottom:.05rem solid #ffd367;border-radius:.1rem;color:#3b4351;padding:.05rem .1rem 0}blockquote{border-left:.1rem solid #dadee4;margin-left:0;padding:.4rem .8rem}blockquote p:last-child{margin-bottom:0}ol,ul{margin:.8rem 0 .8rem .8rem;padding:0}ol ol,ol ul,ul ol,ul ul{margin:.8rem 0 .8rem .8rem}ol li,ul li{margin-top:.4rem}ul{list-style:disc inside}ul ul{list-style-type:circle}ol{list-style:decimal inside}ol ol{list-style-type:lower-alpha}dl dt{font-weight:700}dl dd{margin:.4rem 0 .8rem 0}.lang-zh,.lang-zh-hans,html:lang(zh),html:lang(zh-Hans){font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",sans-serif}.lang-zh-hant,html:lang(zh-Hant){font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang TC","Hiragino Sans CNS","Microsoft JhengHei","Helvetica Neue",sans-serif}.lang-ja,html:lang(ja){font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Hiragino Sans","Hiragino Kaku Gothic Pro","Yu Gothic",YuGothic,Meiryo,"Helvetica Neue",sans-serif}.lang-ko,html:lang(ko){font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Malgun Gothic","Helvetica Neue",sans-serif}.lang-cjk ins,.lang-cjk u,:lang(ja) ins,:lang(ja) u,:lang(zh) ins,:lang(zh) u{border-bottom:.05rem solid;text-decoration:none}.lang-cjk del+del,.lang-cjk del+s,.lang-cjk ins+ins,.lang-cjk ins+u,.lang-cjk s+del,.lang-cjk s+s,.lang-cjk u+ins,.lang-cjk u+u,:lang(ja) del+del,:lang(ja) del+s,:lang(ja) ins+ins,:lang(ja) ins+u,:lang(ja) s+del,:lang(ja) s+s,:lang(ja) u+ins,:lang(ja) u+u,:lang(zh) del+del,:lang(zh) del+s,:lang(zh) ins+ins,:lang(zh) ins+u,:lang(zh) s+del,:lang(zh) s+s,:lang(zh) u+ins,:lang(zh) u+u{margin-left:.125em}.table{border-collapse:collapse;border-spacing:0;text-align:left;width:100%}.table.table-striped tbody tr:nth-of-type(odd){background:#f7f8f9}.table tbody tr.active,.table.table-striped tbody tr.active{background:#eef0f3}.table.table-hover tbody tr:hover{background:#eef0f3}.table.table-scroll{display:block;overflow-x:auto;padding-bottom:.75rem;white-space:nowrap}.table td,.table th{border-bottom:.05rem solid #dadee4;padding:.6rem .4rem}.table th{border-bottom-width:.1rem}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;border:.05rem solid #5755d9;border-radius:.1rem;color:#5755d9;cursor:pointer;display:inline-block;font-size:.8rem;height:1.8rem;line-height:1.2rem;outline:0;padding:.25rem .4rem;text-align:center;text-decoration:none;transition:background .2s,border .2s,box-shadow .2s,color .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.btn:focus{box-shadow:0 0 0 .1rem rgba(87,85,217,.2)}.btn:focus,.btn:hover{background:#f1f1fc;border-color:#4b48d6;text-decoration:none}.btn.active,.btn:active{background:#4b48d6;border-color:#3634d2;color:#fff;text-decoration:none}.btn.active.loading::after,.btn:active.loading::after{border-bottom-color:#fff;border-left-color:#fff}.btn.disabled,.btn:disabled,.btn[disabled]{cursor:default;opacity:.5;pointer-events:none}.btn.btn-primary{background:#5755d9;border-color:#4b48d6;color:#fff}.btn.btn-primary:focus,.btn.btn-primary:hover{background:#4240d4;border-color:#3634d2;color:#fff}.btn.btn-primary.active,.btn.btn-primary:active{background:#3a38d2;border-color:#302ecd;color:#fff}.btn.btn-primary.loading::after{border-bottom-color:#fff;border-left-color:#fff}.btn.btn-success{background:#32b643;border-color:#2faa3f;color:#fff}.btn.btn-success:focus{box-shadow:0 0 0 .1rem rgba(50,182,67,.2)}.btn.btn-success:focus,.btn.btn-success:hover{background:#30ae40;border-color:#2da23c;color:#fff}.btn.btn-success.active,.btn.btn-success:active{background:#2a9a39;border-color:#278e34;color:#fff}.btn.btn-success.loading::after{border-bottom-color:#fff;border-left-color:#fff}.btn.btn-error{background:#e85600;border-color:#d95000;color:#fff}.btn.btn-error:focus{box-shadow:0 0 0 .1rem rgba(232,86,0,.2)}.btn.btn-error:focus,.btn.btn-error:hover{background:#de5200;border-color:#cf4d00;color:#fff}.btn.btn-error.active,.btn.btn-error:active{background:#c44900;border-color:#b54300;color:#fff}.btn.btn-error.loading::after{border-bottom-color:#fff;border-left-color:#fff}.btn.btn-link{background:0 0;border-color:transparent;color:#5755d9}.btn.btn-link.active,.btn.btn-link:active,.btn.btn-link:focus,.btn.btn-link:hover{color:#302ecd}.btn.btn-sm{font-size:.7rem;height:1.4rem;padding:.05rem .3rem}.btn.btn-lg{font-size:.9rem;height:2rem;padding:.35rem .6rem}.btn.btn-block{display:block;width:100%}.btn.btn-action{padding-left:0;padding-right:0;width:1.8rem}.btn.btn-action.btn-sm{width:1.4rem}.btn.btn-action.btn-lg{width:2rem}.btn.btn-clear{background:0 0;border:0;color:currentColor;height:1rem;line-height:.8rem;margin-left:.2rem;margin-right:-2px;opacity:1;padding:.1rem;text-decoration:none;width:1rem}.btn.btn-clear:focus,.btn.btn-clear:hover{background:rgba(247,248,249,.5);opacity:.95}.btn.btn-clear::before{content:"\2715"}.btn-group{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.btn-group .btn{-ms-flex:1 0 auto;flex:1 0 auto}.btn-group .btn:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group .btn:not(:first-child):not(:last-child){border-radius:0;margin-left:-.05rem}.btn-group .btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-.05rem}.btn-group .btn.active,.btn-group .btn:active,.btn-group .btn:focus,.btn-group .btn:hover{z-index:1}.btn-group.btn-group-block{display:-ms-flexbox;display:flex}.btn-group.btn-group-block .btn{-ms-flex:1 0 0;flex:1 0 0}.form-group:not(:last-child){margin-bottom:.4rem}fieldset{margin-bottom:.8rem}legend{font-size:.9rem;font-weight:500;margin-bottom:.8rem}.form-label{display:block;line-height:1.2rem;padding:.3rem 0}.form-label.label-sm{font-size:.7rem;padding:.1rem 0}.form-label.label-lg{font-size:.9rem;padding:.4rem 0}.form-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;background-image:none;border:.05rem solid #bcc3ce;border-radius:.1rem;color:#3b4351;display:block;font-size:.8rem;height:1.8rem;line-height:1.2rem;max-width:100%;outline:0;padding:.25rem .4rem;position:relative;transition:background .2s,border .2s,box-shadow .2s,color .2s;width:100%}.form-input:focus{border-color:#5755d9;box-shadow:0 0 0 .1rem rgba(87,85,217,.2)}.form-input:-ms-input-placeholder{color:#bcc3ce}.form-input::-ms-input-placeholder{color:#bcc3ce}.form-input::placeholder{color:#bcc3ce}.form-input.input-sm{font-size:.7rem;height:1.4rem;padding:.05rem .3rem}.form-input.input-lg{font-size:.9rem;height:2rem;padding:.35rem .6rem}.form-input.input-inline{display:inline-block;vertical-align:middle;width:auto}.form-input[type=file]{height:auto}textarea.form-input,textarea.form-input.input-lg,textarea.form-input.input-sm{height:auto}.form-input-hint{color:#bcc3ce;font-size:.7rem;margin-top:.2rem}.has-success .form-input-hint,.is-success+.form-input-hint{color:#32b643}.has-error .form-input-hint,.is-error+.form-input-hint{color:#e85600}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;border:.05rem solid #bcc3ce;border-radius:.1rem;color:inherit;font-size:.8rem;height:1.8rem;line-height:1.2rem;outline:0;padding:.25rem .4rem;vertical-align:middle;width:100%}.form-select:focus{border-color:#5755d9;box-shadow:0 0 0 .1rem rgba(87,85,217,.2)}.form-select::-ms-expand{display:none}.form-select.select-sm{font-size:.7rem;height:1.4rem;padding:.05rem 1.1rem .05rem .3rem}.form-select.select-lg{font-size:.9rem;height:2rem;padding:.35rem 1.4rem .35rem .6rem}.form-select[multiple],.form-select[size]{height:auto;padding:.25rem .4rem}.form-select[multiple] option,.form-select[size] option{padding:.1rem .2rem}.form-select:not([multiple]):not([size]){background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%204%205'%3E%3Cpath%20fill='%23667189'%20d='M2%200L0%202h4zm0%205L0%203h4z'/%3E%3C/svg%3E") no-repeat right .35rem center/.4rem .5rem;padding-right:1.2rem}.has-icon-left,.has-icon-right{position:relative}.has-icon-left .form-icon,.has-icon-right .form-icon{height:.8rem;margin:0 .25rem;position:absolute;top:50%;transform:translateY(-50%);width:.8rem;z-index:2}.has-icon-left .form-icon{left:.05rem}.has-icon-left .form-input{padding-left:1.3rem}.has-icon-right .form-icon{right:.05rem}.has-icon-right .form-input{padding-right:1.3rem}.form-checkbox,.form-radio,.form-switch{display:block;line-height:1.2rem;margin:.2rem 0;min-height:1.4rem;padding:.1rem .4rem .1rem 1.2rem;position:relative}.form-checkbox input,.form-radio input,.form-switch input{clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;position:absolute;width:1px}.form-checkbox input:focus+.form-icon,.form-radio input:focus+.form-icon,.form-switch input:focus+.form-icon{border-color:#5755d9;box-shadow:0 0 0 .1rem rgba(87,85,217,.2)}.form-checkbox input:checked+.form-icon,.form-radio input:checked+.form-icon,.form-switch input:checked+.form-icon{background:#5755d9;border-color:#5755d9}.form-checkbox .form-icon,.form-radio .form-icon,.form-switch .form-icon{border:.05rem solid #bcc3ce;cursor:pointer;display:inline-block;position:absolute;transition:background .2s,border .2s,box-shadow .2s,color .2s}.form-checkbox.input-sm,.form-radio.input-sm,.form-switch.input-sm{font-size:.7rem;margin:0}.form-checkbox.input-lg,.form-radio.input-lg,.form-switch.input-lg{font-size:.9rem;margin:.3rem 0}.form-checkbox .form-icon,.form-radio .form-icon{background:#fff;height:.8rem;left:0;top:.3rem;width:.8rem}.form-checkbox input:active+.form-icon,.form-radio input:active+.form-icon{background:#eef0f3}.form-checkbox .form-icon{border-radius:.1rem}.form-checkbox input:checked+.form-icon::before{background-clip:padding-box;border:.1rem solid #fff;border-left-width:0;border-top-width:0;content:"";height:9px;left:50%;margin-left:-3px;margin-top:-6px;position:absolute;top:50%;transform:rotate(45deg);width:6px}.form-checkbox input:indeterminate+.form-icon{background:#5755d9;border-color:#5755d9}.form-checkbox input:indeterminate+.form-icon::before{background:#fff;content:"";height:2px;left:50%;margin-left:-5px;margin-top:-1px;position:absolute;top:50%;width:10px}.form-radio .form-icon{border-radius:50%}.form-radio input:checked+.form-icon::before{background:#fff;border-radius:50%;content:"";height:6px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:6px}.form-switch{padding-left:2rem}.form-switch .form-icon{background:#bcc3ce;background-clip:padding-box;border-radius:.45rem;height:.9rem;left:0;top:.25rem;width:1.6rem}.form-switch .form-icon::before{background:#fff;border-radius:50%;content:"";display:block;height:.8rem;left:0;position:absolute;top:0;transition:background .2s,border .2s,box-shadow .2s,color .2s,left .2s;width:.8rem}.form-switch input:checked+.form-icon::before{left:14px}.form-switch input:active+.form-icon::before{background:#f7f8f9}.input-group{display:-ms-flexbox;display:flex}.input-group .input-group-addon{background:#f7f8f9;border:.05rem solid #bcc3ce;border-radius:.1rem;line-height:1.2rem;padding:.25rem .4rem;white-space:nowrap}.input-group .input-group-addon.addon-sm{font-size:.7rem;padding:.05rem .3rem}.input-group .input-group-addon.addon-lg{font-size:.9rem;padding:.35rem .6rem}.input-group .form-input,.input-group .form-select{-ms-flex:1 1 auto;flex:1 1 auto;width:1%}.input-group .input-group-btn{z-index:1}.input-group .form-input:first-child:not(:last-child),.input-group .form-select:first-child:not(:last-child),.input-group .input-group-addon:first-child:not(:last-child),.input-group .input-group-btn:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.input-group .form-input:not(:first-child):not(:last-child),.input-group .form-select:not(:first-child):not(:last-child),.input-group .input-group-addon:not(:first-child):not(:last-child),.input-group .input-group-btn:not(:first-child):not(:last-child){border-radius:0;margin-left:-.05rem}.input-group .form-input:last-child:not(:first-child),.input-group .form-select:last-child:not(:first-child),.input-group .input-group-addon:last-child:not(:first-child),.input-group .input-group-btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-.05rem}.input-group .form-input:focus,.input-group .form-select:focus,.input-group .input-group-addon:focus,.input-group .input-group-btn:focus{z-index:2}.input-group .form-select{width:auto}.input-group.input-inline{display:-ms-inline-flexbox;display:inline-flex}.form-input.is-success,.form-select.is-success,.has-success .form-input,.has-success .form-select{background:#f9fdfa;border-color:#32b643}.form-input.is-success:focus,.form-select.is-success:focus,.has-success .form-input:focus,.has-success .form-select:focus{box-shadow:0 0 0 .1rem rgba(50,182,67,.2)}.form-input.is-error,.form-select.is-error,.has-error .form-input,.has-error .form-select{background:#fffaf7;border-color:#e85600}.form-input.is-error:focus,.form-select.is-error:focus,.has-error .form-input:focus,.has-error .form-select:focus{box-shadow:0 0 0 .1rem rgba(232,86,0,.2)}.form-checkbox.is-error .form-icon,.form-radio.is-error .form-icon,.form-switch.is-error .form-icon,.has-error .form-checkbox .form-icon,.has-error .form-radio .form-icon,.has-error .form-switch .form-icon{border-color:#e85600}.form-checkbox.is-error input:checked+.form-icon,.form-radio.is-error input:checked+.form-icon,.form-switch.is-error input:checked+.form-icon,.has-error .form-checkbox input:checked+.form-icon,.has-error .form-radio input:checked+.form-icon,.has-error .form-switch input:checked+.form-icon{background:#e85600;border-color:#e85600}.form-checkbox.is-error input:focus+.form-icon,.form-radio.is-error input:focus+.form-icon,.form-switch.is-error input:focus+.form-icon,.has-error .form-checkbox input:focus+.form-icon,.has-error .form-radio input:focus+.form-icon,.has-error .form-switch input:focus+.form-icon{border-color:#e85600;box-shadow:0 0 0 .1rem rgba(232,86,0,.2)}.form-checkbox.is-error input:indeterminate+.form-icon,.has-error .form-checkbox input:indeterminate+.form-icon{background:#e85600;border-color:#e85600}.form-input:not(:-ms-input-placeholder):invalid{border-color:#e85600}.form-input:not(:placeholder-shown):invalid{border-color:#e85600}.form-input:not(:-ms-input-placeholder):invalid:focus{background:#fffaf7;box-shadow:0 0 0 .1rem rgba(232,86,0,.2)}.form-input:not(:placeholder-shown):invalid:focus{background:#fffaf7;box-shadow:0 0 0 .1rem rgba(232,86,0,.2)}.form-input:not(:-ms-input-placeholder):invalid+.form-input-hint{color:#e85600}.form-input:not(:placeholder-shown):invalid+.form-input-hint{color:#e85600}.form-input.disabled,.form-input:disabled,.form-select.disabled,.form-select:disabled{background-color:#eef0f3;cursor:not-allowed;opacity:.5}.form-input[readonly]{background-color:#f7f8f9}input.disabled+.form-icon,input:disabled+.form-icon{background:#eef0f3;cursor:not-allowed;opacity:.5}.form-switch input.disabled+.form-icon::before,.form-switch input:disabled+.form-icon::before{background:#fff}.form-horizontal{padding:.4rem 0}.form-horizontal .form-group{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.form-inline{display:inline-block}.label{background:#eef0f3;border-radius:.1rem;color:#455060;display:inline-block;line-height:1.25;padding:.1rem .2rem}.label.label-rounded{border-radius:5rem;padding-left:.4rem;padding-right:.4rem}.label.label-primary{background:#5755d9;color:#fff}.label.label-secondary{background:#f1f1fc;color:#5755d9}.label.label-success{background:#32b643;color:#fff}.label.label-warning{background:#ffb700;color:#fff}.label.label-error{background:#e85600;color:#fff}code{background:#fcf2f2;border-radius:.1rem;color:#d73e48;font-size:85%;line-height:1.25;padding:.1rem .2rem}.code{border-radius:.1rem;color:#3b4351;position:relative}.code::before{color:#bcc3ce;content:attr(data-lang);font-size:.7rem;position:absolute;right:.4rem;top:.1rem}.code code{background:#f7f8f9;color:inherit;display:block;line-height:1.5;overflow-x:auto;padding:1rem;width:100%}.img-responsive{display:block;height:auto;max-width:100%}.img-fit-cover{object-fit:cover}.img-fit-contain{object-fit:contain}.video-responsive{display:block;overflow:hidden;padding:0;position:relative;width:100%}.video-responsive::before{content:"";display:block;padding-bottom:56.25%}.video-responsive embed,.video-responsive iframe,.video-responsive object{border:0;bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}video.video-responsive{height:auto;max-width:100%}video.video-responsive::before{content:none}.video-responsive-4-3::before{padding-bottom:75%}.video-responsive-1-1::before{padding-bottom:100%}.figure{margin:0 0 .4rem 0}.figure .figure-caption{color:#66758c;margin-top:.4rem}.container{margin-left:auto;margin-right:auto;padding-left:.4rem;padding-right:.4rem;width:100%}.container.grid-xl{max-width:1296px}.container.grid-lg{max-width:976px}.container.grid-md{max-width:856px}.container.grid-sm{max-width:616px}.container.grid-xs{max-width:496px}.show-lg,.show-md,.show-sm,.show-xl,.show-xs{display:none!important}.cols,.columns{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:-.4rem;margin-right:-.4rem}.cols.col-gapless,.columns.col-gapless{margin-left:0;margin-right:0}.cols.col-gapless>.column,.columns.col-gapless>.column{padding-left:0;padding-right:0}.cols.col-oneline,.columns.col-oneline{-ms-flex-wrap:nowrap;flex-wrap:nowrap;overflow-x:auto}.column,[class~=col-]{-ms-flex:1;flex:1;max-width:100%;padding-left:.4rem;padding-right:.4rem}.column.col-1,.column.col-10,.column.col-11,.column.col-12,.column.col-2,.column.col-3,.column.col-4,.column.col-5,.column.col-6,.column.col-7,.column.col-8,.column.col-9,.column.col-auto,[class~=col-].col-1,[class~=col-].col-10,[class~=col-].col-11,[class~=col-].col-12,[class~=col-].col-2,[class~=col-].col-3,[class~=col-].col-4,[class~=col-].col-5,[class~=col-].col-6,[class~=col-].col-7,[class~=col-].col-8,[class~=col-].col-9,[class~=col-].col-auto{-ms-flex:none;flex:none}.col-12{width:100%}.col-11{width:91.66666667%}.col-10{width:83.33333333%}.col-9{width:75%}.col-8{width:66.66666667%}.col-7{width:58.33333333%}.col-6{width:50%}.col-5{width:41.66666667%}.col-4{width:33.33333333%}.col-3{width:25%}.col-2{width:16.66666667%}.col-1{width:8.33333333%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;max-width:none;width:auto}.col-mx-auto{margin-left:auto;margin-right:auto}.col-ml-auto{margin-left:auto}.col-mr-auto{margin-right:auto}@media (max-width:1280px){.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{-ms-flex:none;flex:none}.col-xl-12{width:100%}.col-xl-11{width:91.66666667%}.col-xl-10{width:83.33333333%}.col-xl-9{width:75%}.col-xl-8{width:66.66666667%}.col-xl-7{width:58.33333333%}.col-xl-6{width:50%}.col-xl-5{width:41.66666667%}.col-xl-4{width:33.33333333%}.col-xl-3{width:25%}.col-xl-2{width:16.66666667%}.col-xl-1{width:8.33333333%}.col-xl-auto{width:auto}.hide-xl{display:none!important}.show-xl{display:block!important}}@media (max-width:960px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto{-ms-flex:none;flex:none}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-auto{width:auto}.hide-lg{display:none!important}.show-lg{display:block!important}}@media (max-width:840px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto{-ms-flex:none;flex:none}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-auto{width:auto}.hide-md{display:none!important}.show-md{display:block!important}}@media (max-width:600px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto{-ms-flex:none;flex:none}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-auto{width:auto}.hide-sm{display:none!important}.show-sm{display:block!important}}@media (max-width:480px){.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-auto{-ms-flex:none;flex:none}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-auto{width:auto}.hide-xs{display:none!important}.show-xs{display:block!important}}.hero{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;padding-bottom:4rem;padding-top:4rem}.hero.hero-sm{padding-bottom:2rem;padding-top:2rem}.hero.hero-lg{padding-bottom:8rem;padding-top:8rem}.hero .hero-body{padding:.4rem}.navbar{align-items:stretch;display:-ms-flexbox;display:flex;-ms-flex-align:stretch;-ms-flex-pack:justify;-ms-flex-wrap:wrap;flex-wrap:wrap;justify-content:space-between}.navbar .navbar-section{align-items:center;display:-ms-flexbox;display:flex;-ms-flex:1 0 0;flex:1 0 0;-ms-flex-align:center}.navbar .navbar-section:not(:first-child):last-child{-ms-flex-pack:end;justify-content:flex-end}.navbar .navbar-center{align-items:center;display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-align:center}.navbar .navbar-brand{font-size:.9rem;text-decoration:none}.accordion input:checked~.accordion-header>.icon:first-child,.accordion[open] .accordion-header>.icon:first-child{transform:rotate(90deg)}.accordion input:checked~.accordion-body,.accordion[open] .accordion-body{max-height:50rem}.accordion .accordion-header{display:block;padding:.2rem .4rem}.accordion .accordion-header .icon{transition:transform .25s}.accordion .accordion-body{margin-bottom:.4rem;max-height:0;overflow:hidden;transition:max-height .25s}summary.accordion-header::-webkit-details-marker{display:none}.avatar{background:#5755d9;border-radius:50%;color:rgba(255,255,255,.85);display:inline-block;font-size:.8rem;font-weight:300;height:1.6rem;line-height:1.25;margin:0;position:relative;vertical-align:middle;width:1.6rem}.avatar.avatar-xs{font-size:.4rem;height:.8rem;width:.8rem}.avatar.avatar-sm{font-size:.6rem;height:1.2rem;width:1.2rem}.avatar.avatar-lg{font-size:1.2rem;height:2.4rem;width:2.4rem}.avatar.avatar-xl{font-size:1.6rem;height:3.2rem;width:3.2rem}.avatar img{border-radius:50%;height:100%;position:relative;width:100%;z-index:1}.avatar .avatar-icon,.avatar .avatar-presence{background:#fff;bottom:14.64%;height:50%;padding:.1rem;position:absolute;right:14.64%;transform:translate(50%,50%);width:50%;z-index:2}.avatar .avatar-presence{background:#bcc3ce;border-radius:50%;box-shadow:0 0 0 .1rem #fff;height:.5em;width:.5em}.avatar .avatar-presence.online{background:#32b643}.avatar .avatar-presence.busy{background:#e85600}.avatar .avatar-presence.away{background:#ffb700}.avatar[data-initial]::before{color:currentColor;content:attr(data-initial);left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:1}.badge{position:relative;white-space:nowrap}.badge:not([data-badge])::after,.badge[data-badge]::after{background:#5755d9;background-clip:padding-box;border-radius:.5rem;box-shadow:0 0 0 .1rem #fff;color:#fff;content:attr(data-badge);display:inline-block;transform:translate(-.05rem,-.5rem)}.badge[data-badge]::after{font-size:.7rem;height:.9rem;line-height:1;min-width:.9rem;padding:.1rem .2rem;text-align:center;white-space:nowrap}.badge:not([data-badge])::after,.badge[data-badge=""]::after{height:6px;min-width:6px;padding:0;width:6px}.badge.btn::after{position:absolute;right:0;top:0;transform:translate(50%,-50%)}.badge.avatar::after{position:absolute;right:14.64%;top:14.64%;transform:translate(50%,-50%);z-index:100}.breadcrumb{list-style:none;margin:.2rem 0;padding:.2rem 0}.breadcrumb .breadcrumb-item{color:#66758c;display:inline-block;margin:0;padding:.2rem 0}.breadcrumb .breadcrumb-item:not(:last-child){margin-right:.2rem}.breadcrumb .breadcrumb-item:not(:last-child) a{color:#66758c}.breadcrumb .breadcrumb-item:not(:first-child)::before{color:#66758c;content:"/";padding-right:.4rem}.bar{background:#eef0f3;border-radius:.1rem;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;height:.8rem;width:100%}.bar.bar-sm{height:.2rem}.bar .bar-item{background:#5755d9;color:#fff;display:block;-ms-flex-negative:0;flex-shrink:0;font-size:.7rem;height:100%;line-height:.8rem;position:relative;text-align:center;width:0}.bar .bar-item:first-child{border-bottom-left-radius:.1rem;border-top-left-radius:.1rem}.bar .bar-item:last-child{border-bottom-right-radius:.1rem;border-top-right-radius:.1rem;-ms-flex-negative:1;flex-shrink:1}.bar-slider{height:.1rem;margin:.4rem 0;position:relative}.bar-slider .bar-item{left:0;padding:0;position:absolute}.bar-slider .bar-item:not(:last-child):first-child{background:#eef0f3;z-index:1}.bar-slider .bar-slider-btn{background:#5755d9;border:0;border-radius:50%;height:.6rem;padding:0;position:absolute;right:0;top:50%;transform:translate(50%,-50%);width:.6rem}.bar-slider .bar-slider-btn:active{box-shadow:0 0 0 .1rem #5755d9}.card{background:#fff;border:.05rem solid #dadee4;border-radius:.1rem;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card .card-body,.card .card-footer,.card .card-header{padding:.8rem;padding-bottom:0}.card .card-body:last-child,.card .card-footer:last-child,.card .card-header:last-child{padding-bottom:.8rem}.card .card-body{-ms-flex:1 1 auto;flex:1 1 auto}.card .card-image{padding-top:.8rem}.card .card-image:first-child{padding-top:0}.card .card-image:first-child img{border-top-left-radius:.1rem;border-top-right-radius:.1rem}.card .card-image:last-child img{border-bottom-left-radius:.1rem;border-bottom-right-radius:.1rem}.chip{align-items:center;background:#eef0f3;border-radius:5rem;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;font-size:90%;height:1.2rem;line-height:.8rem;margin:.1rem;max-width:320px;overflow:hidden;padding:.2rem .4rem;text-decoration:none;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.chip.active{background:#5755d9;color:#fff}.chip .avatar{margin-left:-.4rem;margin-right:.2rem}.chip .btn-clear{border-radius:50%;transform:scale(.75)}.dropdown{display:inline-block;position:relative}.dropdown .menu{animation:slide-down .15s ease 1;display:none;left:0;max-height:50vh;overflow-y:auto;position:absolute;top:100%}.dropdown.dropdown-right .menu{left:auto;right:0}.dropdown .dropdown-toggle:focus+.menu,.dropdown .menu:hover,.dropdown.active .menu{display:block}.dropdown .btn-group .dropdown-toggle:nth-last-child(2){border-bottom-right-radius:.1rem;border-top-right-radius:.1rem}.empty{background:#f7f8f9;border-radius:.1rem;color:#66758c;padding:3.2rem 1.6rem;text-align:center}.empty .empty-icon{margin-bottom:.8rem}.empty .empty-subtitle,.empty .empty-title{margin:.4rem auto}.empty .empty-action{margin-top:.8rem}.menu{background:#fff;border-radius:.1rem;box-shadow:0 .05rem .2rem rgba(48,55,66,.3);list-style:none;margin:0;min-width:180px;padding:.4rem;transform:translateY(.2rem);z-index:300}.menu.menu-nav{background:0 0;box-shadow:none}.menu .menu-item{margin-top:0;padding:0 .4rem;position:relative;text-decoration:none}.menu .menu-item>a{border-radius:.1rem;color:inherit;display:block;margin:0 -.4rem;padding:.2rem .4rem;text-decoration:none}.menu .menu-item>a:focus,.menu .menu-item>a:hover{background:#f1f1fc;color:#5755d9}.menu .menu-item>a.active,.menu .menu-item>a:active{background:#f1f1fc;color:#5755d9}.menu .menu-item .form-checkbox,.menu .menu-item .form-radio,.menu .menu-item .form-switch{margin:.1rem 0}.menu .menu-item+.menu-item{margin-top:.2rem}.menu .menu-badge{align-items:center;display:-ms-flexbox;display:flex;-ms-flex-align:center;height:100%;position:absolute;right:0;top:0}.menu .menu-badge .label{margin-right:.4rem}.modal{align-items:center;bottom:0;display:none;-ms-flex-align:center;-ms-flex-pack:center;justify-content:center;left:0;opacity:0;overflow:hidden;padding:.4rem;position:fixed;right:0;top:0}.modal.active,.modal:target{display:-ms-flexbox;display:flex;opacity:1;z-index:400}.modal.active .modal-overlay,.modal:target .modal-overlay{background:rgba(247,248,249,.75);bottom:0;cursor:default;display:block;left:0;position:absolute;right:0;top:0}.modal.active .modal-container,.modal:target .modal-container{animation:slide-down .2s ease 1;z-index:1}.modal.modal-sm .modal-container{max-width:320px;padding:0 .4rem}.modal.modal-lg .modal-overlay{background:#fff}.modal.modal-lg .modal-container{box-shadow:none;max-width:960px}.modal-container{background:#fff;border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(48,55,66,.3);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-height:75vh;max-width:640px;padding:0 .8rem;width:100%}.modal-container.modal-fullheight{max-height:100vh}.modal-container .modal-header{color:#303742;padding:.8rem}.modal-container .modal-body{overflow-y:auto;padding:.8rem;position:relative}.modal-container .modal-footer{padding:.8rem;text-align:right}.nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;list-style:none;margin:.2rem 0}.nav .nav-item a{color:#66758c;padding:.2rem .4rem;text-decoration:none}.nav .nav-item a:focus,.nav .nav-item a:hover{color:#5755d9}.nav .nav-item.active>a{color:#505c6e;font-weight:700}.nav .nav-item.active>a:focus,.nav .nav-item.active>a:hover{color:#5755d9}.nav .nav{margin-bottom:.4rem;margin-left:.8rem}.pagination{display:-ms-flexbox;display:flex;list-style:none;margin:.2rem 0;padding:.2rem 0}.pagination .page-item{margin:.2rem .05rem}.pagination .page-item span{display:inline-block;padding:.2rem .2rem}.pagination .page-item a{border-radius:.1rem;display:inline-block;padding:.2rem .4rem;text-decoration:none}.pagination .page-item a:focus,.pagination .page-item a:hover{color:#5755d9}.pagination .page-item.disabled a{cursor:default;opacity:.5;pointer-events:none}.pagination .page-item.active a{background:#5755d9;color:#fff}.pagination .page-item.page-next,.pagination .page-item.page-prev{-ms-flex:1 0 50%;flex:1 0 50%}.pagination .page-item.page-next{text-align:right}.pagination .page-item .page-item-title{margin:0}.pagination .page-item .page-item-subtitle{margin:0;opacity:.5}.panel{border:.05rem solid #dadee4;border-radius:.1rem;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.panel .panel-footer,.panel .panel-header{-ms-flex:0 0 auto;flex:0 0 auto;padding:.8rem}.panel .panel-nav{-ms-flex:0 0 auto;flex:0 0 auto}.panel .panel-body{-ms-flex:1 1 auto;flex:1 1 auto;overflow-y:auto;padding:0 .8rem}.popover{display:inline-block;position:relative}.popover .popover-container{left:50%;opacity:0;padding:.4rem;position:absolute;top:0;transform:translate(-50%,-50%) scale(0);transition:transform .2s;width:320px;z-index:300}.popover :focus+.popover-container,.popover:hover .popover-container{display:block;opacity:1;transform:translate(-50%,-100%) scale(1)}.popover.popover-right .popover-container{left:100%;top:50%}.popover.popover-right :focus+.popover-container,.popover.popover-right:hover .popover-container{transform:translate(0,-50%) scale(1)}.popover.popover-bottom .popover-container{left:50%;top:100%}.popover.popover-bottom :focus+.popover-container,.popover.popover-bottom:hover .popover-container{transform:translate(-50%,0) scale(1)}.popover.popover-left .popover-container{left:0;top:50%}.popover.popover-left :focus+.popover-container,.popover.popover-left:hover .popover-container{transform:translate(-100%,-50%) scale(1)}.popover .card{border:0;box-shadow:0 .2rem .5rem rgba(48,55,66,.3)}.step{display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;list-style:none;margin:.2rem 0;width:100%}.step .step-item{-ms-flex:1 1 0;flex:1 1 0;margin-top:0;min-height:1rem;position:relative;text-align:center}.step .step-item:not(:first-child)::before{background:#5755d9;content:"";height:2px;left:-50%;position:absolute;top:9px;width:100%}.step .step-item a{color:#5755d9;display:inline-block;padding:20px 10px 0;text-decoration:none}.step .step-item a::before{background:#5755d9;border:.1rem solid #fff;border-radius:50%;content:"";display:block;height:.6rem;left:50%;position:absolute;top:.2rem;transform:translateX(-50%);width:.6rem;z-index:1}.step .step-item.active a::before{background:#fff;border:.1rem solid #5755d9}.step .step-item.active~.step-item::before{background:#dadee4}.step .step-item.active~.step-item a{color:#bcc3ce}.step .step-item.active~.step-item a::before{background:#dadee4}.tab{align-items:center;border-bottom:.05rem solid #dadee4;display:-ms-flexbox;display:flex;-ms-flex-align:center;-ms-flex-wrap:wrap;flex-wrap:wrap;list-style:none;margin:.2rem 0 .15rem 0}.tab .tab-item{margin-top:0}.tab .tab-item a{border-bottom:.1rem solid transparent;color:inherit;display:block;margin:0 .4rem 0 0;padding:.4rem .2rem .3rem .2rem;text-decoration:none}.tab .tab-item a:focus,.tab .tab-item a:hover{color:#5755d9}.tab .tab-item a.active,.tab .tab-item.active a{border-bottom-color:#5755d9;color:#5755d9}.tab .tab-item.tab-action{-ms-flex:1 0 auto;flex:1 0 auto;text-align:right}.tab .tab-item .btn-clear{margin-top:-.2rem}.tab.tab-block .tab-item{-ms-flex:1 0 0;flex:1 0 0;text-align:center}.tab.tab-block .tab-item a{margin:0}.tab.tab-block .tab-item .badge[data-badge]::after{position:absolute;right:.1rem;top:.1rem;transform:translate(0,0)}.tab:not(.tab-block) .badge{padding-right:0}.tile{align-content:space-between;align-items:flex-start;display:-ms-flexbox;display:flex;-ms-flex-align:start;-ms-flex-line-pack:justify}.tile .tile-action,.tile .tile-icon{-ms-flex:0 0 auto;flex:0 0 auto}.tile .tile-content{-ms-flex:1 1 auto;flex:1 1 auto}.tile .tile-content:not(:first-child){padding-left:.4rem}.tile .tile-content:not(:last-child){padding-right:.4rem}.tile .tile-subtitle,.tile .tile-title{line-height:1.2rem}.tile.tile-centered{align-items:center;-ms-flex-align:center}.tile.tile-centered .tile-content{overflow:hidden}.tile.tile-centered .tile-subtitle,.tile.tile-centered .tile-title{margin-bottom:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast{background:rgba(48,55,66,.95);border:.05rem solid #303742;border-color:#303742;border-radius:.1rem;color:#fff;display:block;padding:.4rem;width:100%}.toast.toast-primary{background:rgba(87,85,217,.95);border-color:#5755d9}.toast.toast-success{background:rgba(50,182,67,.95);border-color:#32b643}.toast.toast-warning{background:rgba(255,183,0,.95);border-color:#ffb700}.toast.toast-error{background:rgba(232,86,0,.95);border-color:#e85600}.toast a{color:#fff;text-decoration:underline}.toast a.active,.toast a:active,.toast a:focus,.toast a:hover{opacity:.75}.toast .btn-clear{margin:.1rem}.toast p:last-child{margin-bottom:0}.tooltip{position:relative}.tooltip::after{background:rgba(48,55,66,.95);border-radius:.1rem;bottom:100%;color:#fff;content:attr(data-tooltip);display:block;font-size:.7rem;left:50%;max-width:320px;opacity:0;overflow:hidden;padding:.2rem .4rem;pointer-events:none;position:absolute;text-overflow:ellipsis;transform:translate(-50%,.4rem);transition:opacity .2s,transform .2s;white-space:pre;z-index:300}.tooltip:focus::after,.tooltip:hover::after{opacity:1;transform:translate(-50%,-.2rem)}.tooltip.disabled,.tooltip[disabled]{pointer-events:auto}.tooltip.tooltip-right::after{bottom:50%;left:100%;transform:translate(-.2rem,50%)}.tooltip.tooltip-right:focus::after,.tooltip.tooltip-right:hover::after{transform:translate(.2rem,50%)}.tooltip.tooltip-bottom::after{bottom:auto;top:100%;transform:translate(-50%,-.4rem)}.tooltip.tooltip-bottom:focus::after,.tooltip.tooltip-bottom:hover::after{transform:translate(-50%,.2rem)}.tooltip.tooltip-left::after{bottom:50%;left:auto;right:100%;transform:translate(.4rem,50%)}.tooltip.tooltip-left:focus::after,.tooltip.tooltip-left:hover::after{transform:translate(-.2rem,50%)}@keyframes loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-1.6rem)}100%{opacity:1;transform:translateY(0)}}.text-primary{color:#5755d9!important}a.text-primary:focus,a.text-primary:hover{color:#4240d4}a.text-primary:visited{color:#6c6ade}.text-secondary{color:#e5e5f9!important}a.text-secondary:focus,a.text-secondary:hover{color:#d1d0f4}a.text-secondary:visited{color:#fafafe}.text-gray{color:#bcc3ce!important}a.text-gray:focus,a.text-gray:hover{color:#adb6c4}a.text-gray:visited{color:#cbd0d9}.text-light{color:#fff!important}a.text-light:focus,a.text-light:hover{color:#f2f2f2}a.text-light:visited{color:#fff}.text-dark{color:#3b4351!important}a.text-dark:focus,a.text-dark:hover{color:#303742}a.text-dark:visited{color:#455060}.text-success{color:#32b643!important}a.text-success:focus,a.text-success:hover{color:#2da23c}a.text-success:visited{color:#39c94b}.text-warning{color:#ffb700!important}a.text-warning:focus,a.text-warning:hover{color:#e6a500}a.text-warning:visited{color:#ffbe1a}.text-error{color:#e85600!important}a.text-error:focus,a.text-error:hover{color:#cf4d00}a.text-error:visited{color:#ff6003}.bg-primary{background:#5755d9!important;color:#fff}.bg-secondary{background:#f1f1fc!important}.bg-dark{background:#303742!important;color:#fff}.bg-gray{background:#f7f8f9!important}.bg-success{background:#32b643!important;color:#fff}.bg-warning{background:#ffb700!important;color:#fff}.bg-error{background:#e85600!important;color:#fff}.c-hand{cursor:pointer}.c-move{cursor:move}.c-zoom-in{cursor:zoom-in}.c-zoom-out{cursor:zoom-out}.c-not-allowed{cursor:not-allowed}.c-auto{cursor:auto}.d-block{display:block}.d-inline{display:inline}.d-inline-block{display:inline-block}.d-flex{display:-ms-flexbox;display:flex}.d-inline-flex{display:-ms-inline-flexbox;display:inline-flex}.d-hide,.d-none{display:none!important}.d-visible{visibility:visible}.d-invisible{visibility:hidden}.text-hide{background:0 0;border:0;color:transparent;font-size:0;line-height:0;text-shadow:none}.text-assistive{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.divider,.divider-vert{display:block;position:relative}.divider-vert[data-content]::after,.divider[data-content]::after{background:#fff;color:#bcc3ce;content:attr(data-content);display:inline-block;font-size:.7rem;padding:0 .4rem;transform:translateY(-.65rem)}.divider{border-top:.05rem solid #f1f3f5;height:.05rem;margin:.4rem 0}.divider[data-content]{margin:.8rem 0}.divider-vert{display:block;padding:.8rem}.divider-vert::before{border-left:.05rem solid #dadee4;bottom:.4rem;content:"";display:block;left:50%;position:absolute;top:.4rem;transform:translateX(-50%)}.divider-vert[data-content]::after{left:50%;padding:.2rem 0;position:absolute;top:50%;transform:translate(-50%,-50%)}.loading{color:transparent!important;min-height:.8rem;pointer-events:none;position:relative}.loading::after{animation:loading .5s infinite linear;background:0 0;border:.1rem solid #5755d9;border-radius:50%;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:.8rem;left:50%;margin-left:-.4rem;margin-top:-.4rem;opacity:1;padding:0;position:absolute;top:50%;width:.8rem;z-index:1}.loading.loading-lg{min-height:2rem}.loading.loading-lg::after{height:1.6rem;margin-left:-.8rem;margin-top:-.8rem;width:1.6rem}.clearfix::after{clear:both;content:"";display:table}.float-left{float:left!important}.float-right{float:right!important}.p-relative{position:relative!important}.p-absolute{position:absolute!important}.p-fixed{position:fixed!important}.p-sticky{position:-webkit-sticky!important;position:sticky!important}.p-centered{display:block;float:none;margin-left:auto;margin-right:auto}.flex-centered{align-items:center;display:-ms-flexbox;display:flex;-ms-flex-align:center;-ms-flex-pack:center;justify-content:center}.m-0{margin:0!important}.mb-0{margin-bottom:0!important}.ml-0{margin-left:0!important}.mr-0{margin-right:0!important}.mt-0{margin-top:0!important}.mx-0{margin-left:0!important;margin-right:0!important}.my-0{margin-bottom:0!important;margin-top:0!important}.m-1{margin:.2rem!important}.mb-1{margin-bottom:.2rem!important}.ml-1{margin-left:.2rem!important}.mr-1{margin-right:.2rem!important}.mt-1{margin-top:.2rem!important}.mx-1{margin-left:.2rem!important;margin-right:.2rem!important}.my-1{margin-bottom:.2rem!important;margin-top:.2rem!important}.m-2{margin:.4rem!important}.mb-2{margin-bottom:.4rem!important}.ml-2{margin-left:.4rem!important}.mr-2{margin-right:.4rem!important}.mt-2{margin-top:.4rem!important}.mx-2{margin-left:.4rem!important;margin-right:.4rem!important}.my-2{margin-bottom:.4rem!important;margin-top:.4rem!important}.p-0{padding:0!important}.pb-0{padding-bottom:0!important}.pl-0{padding-left:0!important}.pr-0{padding-right:0!important}.pt-0{padding-top:0!important}.px-0{padding-left:0!important;padding-right:0!important}.py-0{padding-bottom:0!important;padding-top:0!important}.p-1{padding:.2rem!important}.pb-1{padding-bottom:.2rem!important}.pl-1{padding-left:.2rem!important}.pr-1{padding-right:.2rem!important}.pt-1{padding-top:.2rem!important}.px-1{padding-left:.2rem!important;padding-right:.2rem!important}.py-1{padding-bottom:.2rem!important;padding-top:.2rem!important}.p-2{padding:.4rem!important}.pb-2{padding-bottom:.4rem!important}.pl-2{padding-left:.4rem!important}.pr-2{padding-right:.4rem!important}.pt-2{padding-top:.4rem!important}.px-2{padding-left:.4rem!important;padding-right:.4rem!important}.py-2{padding-bottom:.4rem!important;padding-top:.4rem!important}.s-rounded{border-radius:.1rem}.s-circle{border-radius:50%}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-normal{font-weight:400}.text-bold{font-weight:700}.text-italic{font-style:italic}.text-large{font-size:1.2em}.text-small{font-size:.9em}.text-tiny{font-size:.8em}.text-muted{opacity:.8}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-clip{overflow:hidden;text-overflow:clip;white-space:nowrap}.text-break{-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;word-break:break-word;word-wrap:break-word} \ No newline at end of file diff --git a/static/css/starground.css b/static/css/starground.css new file mode 100644 index 0000000..4774030 --- /dev/null +++ b/static/css/starground.css @@ -0,0 +1,89 @@ +html { + height: 100%; + background: radial-gradient(ellipse at bottom, #1B2735 0%, #090A0F 100%); + overflow: hidden; +} + +#stars { + width: 1px; + height: 1px; + background: transparent; + box-shadow: 1070px 1974px #FFF , 1359px 1534px #FFF , 99px 595px #FFF , 1301px 1560px #FFF , 1563px 1402px #FFF , 505px 1764px #FFF , 739px 610px #FFF , 400px 872px #FFF , 677px 529px #FFF , 162px 172px #FFF , 836px 1208px #FFF , 821px 1972px #FFF , 393px 1721px #FFF , 992px 1071px #FFF , 223px 1649px #FFF , 1673px 639px #FFF , 32px 733px #FFF , 45px 481px #FFF , 469px 1736px #FFF , 1516px 41px #FFF , 1076px 1264px #FFF , 895px 662px #FFF , 1510px 425px #FFF , 1276px 1677px #FFF , 651px 455px #FFF , 1188px 770px #FFF , 1392px 1291px #FFF , 1200px 1059px #FFF , 1737px 272px #FFF , 1738px 606px #FFF , 1394px 469px #FFF , 1930px 257px #FFF , 1426px 719px #FFF , 1760px 1796px #FFF , 1882px 242px #FFF , 1927px 11px #FFF , 1624px 1443px #FFF , 298px 760px #FFF , 1702px 37px #FFF , 788px 1766px #FFF , 920px 1757px #FFF , 1470px 194px #FFF , 1481px 105px #FFF , 835px 979px #FFF , 38px 1501px #FFF , 20px 1020px #FFF , 1833px 327px #FFF , 519px 1529px #FFF , 329px 230px #FFF , 303px 1306px #FFF , 1339px 775px #FFF , 1514px 1628px #FFF , 1736px 763px #FFF , 1969px 1961px #FFF , 1318px 901px #FFF , 1389px 1204px #FFF , 1110px 715px #FFF , 312px 1198px #FFF , 1249px 757px #FFF , 990px 1244px #FFF , 673px 456px #FFF , 233px 1305px #FFF , 1321px 1711px #FFF , 1941px 780px #FFF , 250px 153px #FFF , 1309px 1485px #FFF , 1047px 1381px #FFF , 1052px 841px #FFF , 1622px 753px #FFF , 1745px 1604px #FFF , 1711px 1394px #FFF , 968px 992px #FFF , 1965px 1951px #FFF , 180px 1039px #FFF , 437px 1745px #FFF , 1144px 943px #FFF , 1178px 1262px #FFF , 623px 1792px #FFF , 633px 957px #FFF , 727px 911px #FFF , 934px 277px #FFF , 1069px 669px #FFF , 1729px 753px #FFF , 918px 1286px #FFF , 762px 1556px #FFF , 1730px 1128px #FFF , 1104px 799px #FFF , 395px 655px #FFF , 242px 389px #FFF , 1168px 1659px #FFF , 333px 269px #FFF , 881px 1306px #FFF , 1567px 710px #FFF , 1213px 1653px #FFF , 1369px 1234px #FFF , 166px 739px #FFF , 1000px 1182px #FFF , 115px 1231px #FFF , 1702px 1340px #FFF , 1457px 1547px #FFF , 1487px 1687px #FFF , 1352px 48px #FFF , 714px 1779px #FFF , 903px 1498px #FFF , 1471px 1336px #FFF , 62px 73px #FFF , 136px 1491px #FFF , 1732px 1033px #FFF , 479px 1151px #FFF , 475px 1955px #FFF , 891px 772px #FFF , 1633px 29px #FFF , 612px 1257px #FFF , 1475px 1710px #FFF , 1682px 977px #FFF , 127px 160px #FFF , 1490px 795px #FFF , 1700px 1034px #FFF , 423px 1251px #FFF , 102px 52px #FFF , 1588px 826px #FFF , 233px 1320px #FFF , 1978px 1546px #FFF , 1652px 1531px #FFF , 210px 524px #FFF , 1050px 1482px #FFF , 167px 241px #FFF , 1847px 1499px #FFF , 1712px 867px #FFF , 1200px 344px #FFF , 1628px 1060px #FFF , 558px 831px #FFF , 1154px 1832px #FFF , 1631px 963px #FFF , 1539px 859px #FFF , 840px 437px #FFF , 218px 639px #FFF , 317px 1039px #FFF , 648px 744px #FFF , 410px 1590px #FFF , 1371px 557px #FFF , 1715px 164px #FFF , 657px 727px #FFF , 620px 1365px #FFF , 470px 388px #FFF , 442px 341px #FFF , 1770px 660px #FFF , 1016px 557px #FFF , 958px 1492px #FFF , 226px 1100px #FFF , 422px 899px #FFF , 844px 393px #FFF , 184px 1544px #FFF , 1398px 1094px #FFF , 254px 232px #FFF , 1990px 206px #FFF , 624px 1190px #FFF , 723px 1030px #FFF , 223px 1694px #FFF , 504px 1895px #FFF , 374px 1333px #FFF , 1234px 1004px #FFF , 936px 1335px #FFF , 861px 1013px #FFF , 276px 1963px #FFF , 998px 453px #FFF , 1680px 111px #FFF , 1039px 40px #FFF , 564px 1566px #FFF , 27px 1880px #FFF , 1546px 754px #FFF , 976px 1707px #FFF , 1905px 1967px #FFF , 416px 18px #FFF , 1217px 408px #FFF , 948px 293px #FFF , 580px 1300px #FFF , 1656px 798px #FFF , 70px 1516px #FFF , 1263px 1480px #FFF , 1686px 1242px #FFF , 861px 1783px #FFF , 1437px 309px #FFF , 195px 251px #FFF , 1214px 1459px #FFF , 534px 1120px #FFF , 623px 1700px #FFF , 1349px 67px #FFF , 528px 1049px #FFF , 447px 403px #FFF , 63px 1669px #FFF , 1699px 755px #FFF , 1722px 1698px #FFF , 701px 1676px #FFF , 295px 1248px #FFF , 14px 1042px #FFF , 1839px 1085px #FFF , 1984px 1770px #FFF , 890px 1079px #FFF , 300px 1850px #FFF , 197px 1334px #FFF , 34px 1587px #FFF , 499px 1940px #FFF , 368px 1009px #FFF , 1399px 1766px #FFF , 1672px 1438px #FFF , 402px 1800px #FFF , 541px 757px #FFF , 118px 1152px #FFF , 938px 1653px #FFF , 817px 1875px #FFF , 1179px 1682px #FFF , 888px 1801px #FFF , 1786px 1815px #FFF , 1954px 1735px #FFF , 1366px 1326px #FFF , 1120px 636px #FFF , 870px 1913px #FFF , 651px 952px #FFF , 77px 1794px #FFF , 322px 947px #FFF , 2px 1536px #FFF , 714px 960px #FFF , 883px 1445px #FFF , 728px 1438px #FFF , 1498px 20px #FFF , 1436px 441px #FFF , 369px 267px #FFF , 1632px 1972px #FFF , 1508px 655px #FFF , 1042px 1407px #FFF , 925px 315px #FFF , 507px 466px #FFF , 1538px 1452px #FFF , 658px 513px #FFF , 490px 1903px #FFF , 1728px 1331px #FFF , 1346px 1346px #FFF , 570px 1990px #FFF , 1787px 1138px #FFF , 1762px 1347px #FFF , 1800px 1369px #FFF , 700px 1421px #FFF , 1448px 661px #FFF , 923px 317px #FFF , 1601px 444px #FFF , 1000px 512px #FFF , 1479px 1592px #FFF , 1804px 1233px #FFF , 737px 1371px #FFF , 329px 1235px #FFF , 286px 1792px #FFF , 517px 1873px #FFF , 1414px 1950px #FFF , 967px 567px #FFF , 1518px 1650px #FFF , 1720px 752px #FFF , 93px 827px #FFF , 1787px 1355px #FFF , 796px 937px #FFF , 1884px 827px #FFF , 787px 60px #FFF , 1990px 1565px #FFF , 504px 7px #FFF , 1027px 110px #FFF , 1277px 16px #FFF , 962px 1586px #FFF , 909px 285px #FFF , 367px 508px #FFF , 142px 479px #FFF , 793px 752px #FFF , 574px 932px #FFF , 872px 484px #FFF , 1100px 1702px #FFF , 134px 1894px #FFF , 935px 1075px #FFF , 1364px 250px #FFF , 760px 1184px #FFF , 1199px 1735px #FFF , 1163px 972px #FFF , 675px 386px #FFF , 294px 1262px #FFF , 715px 554px #FFF , 967px 1059px #FFF , 513px 1067px #FFF , 1590px 251px #FFF , 1238px 1984px #FFF , 1196px 1625px #FFF , 1942px 960px #FFF , 888px 1733px #FFF , 1381px 290px #FFF , 950px 696px #FFF , 717px 1367px #FFF , 1546px 1498px #FFF , 150px 489px #FFF , 299px 1206px #FFF , 516px 288px #FFF , 734px 582px #FFF , 110px 1710px #FFF , 1269px 127px #FFF , 1705px 350px #FFF , 1104px 525px #FFF , 952px 1015px #FFF , 1825px 1984px #FFF , 1009px 306px #FFF , 1705px 1216px #FFF , 1898px 497px #FFF , 911px 1094px #FFF , 199px 36px #FFF , 1276px 1892px #FFF , 755px 224px #FFF , 662px 92px #FFF , 796px 755px #FFF , 658px 1873px #FFF , 1979px 517px #FFF , 1186px 1537px #FFF , 38px 618px #FFF , 986px 1249px #FFF , 717px 233px #FFF , 927px 1352px #FFF , 639px 618px #FFF , 281px 1641px #FFF , 781px 1054px #FFF , 857px 1846px #FFF , 751px 865px #FFF , 100px 22px #FFF , 92px 1531px #FFF , 852px 1446px #FFF , 1819px 1559px #FFF , 342px 637px #FFF , 1464px 992px #FFF , 50px 1045px #FFF , 1922px 57px #FFF , 1649px 916px #FFF , 608px 225px #FFF , 1758px 403px #FFF , 278px 470px #FFF , 1786px 1533px #FFF , 785px 1330px #FFF , 1724px 181px #FFF , 1796px 659px #FFF , 1769px 967px #FFF , 889px 1092px #FFF , 581px 1956px #FFF , 1820px 469px #FFF , 185px 1112px #FFF , 315px 1801px #FFF , 1334px 992px #FFF , 1283px 1604px #FFF , 1793px 1655px #FFF , 134px 31px #FFF , 497px 617px #FFF , 236px 37px #FFF , 1374px 380px #FFF , 1973px 616px #FFF , 817px 329px #FFF , 157px 1846px #FFF , 1380px 682px #FFF , 419px 597px #FFF , 1937px 827px #FFF , 527px 54px #FFF , 497px 1253px #FFF , 173px 794px #FFF , 626px 1564px #FFF , 1025px 1318px #FFF , 1787px 1763px #FFF , 1381px 706px #FFF , 116px 573px #FFF , 959px 278px #FFF , 1915px 1639px #FFF , 704px 1287px #FFF , 1779px 931px #FFF , 929px 1761px #FFF , 144px 389px #FFF , 1287px 544px #FFF , 176px 140px #FFF , 627px 1043px #FFF , 1580px 760px #FFF , 774px 1411px #FFF , 1856px 372px #FFF , 424px 1369px #FFF , 542px 1527px #FFF , 922px 284px #FFF , 1352px 1587px #FFF , 855px 1652px #FFF , 1155px 151px #FFF , 438px 1081px #FFF , 1511px 1909px #FFF , 807px 41px #FFF , 1325px 1278px #FFF , 114px 1132px #FFF , 1231px 847px #FFF , 1671px 722px #FFF , 1678px 1358px #FFF , 134px 1082px #FFF , 1212px 1819px #FFF , 852px 158px #FFF , 216px 106px #FFF , 1917px 986px #FFF , 21px 1840px #FFF , 779px 1912px #FFF , 856px 594px #FFF , 1138px 230px #FFF , 109px 1289px #FFF , 1544px 303px #FFF , 25px 192px #FFF , 509px 893px #FFF , 8px 1160px #FFF , 916px 69px #FFF , 1741px 382px #FFF , 1729px 370px #FFF , 1766px 891px #FFF , 928px 166px #FFF , 710px 386px #FFF , 1390px 22px #FFF , 1307px 1732px #FFF , 1253px 822px #FFF , 165px 1502px #FFF , 1055px 591px #FFF , 1227px 553px #FFF , 379px 1600px #FFF , 953px 1063px #FFF , 1618px 215px #FFF , 129px 490px #FFF , 262px 1174px #FFF , 1285px 123px #FFF , 205px 1335px #FFF , 1481px 1693px #FFF , 380px 1688px #FFF , 1884px 143px #FFF , 1433px 504px #FFF , 1757px 606px #FFF , 1627px 1208px #FFF , 1819px 37px #FFF , 122px 820px #FFF , 821px 1257px #FFF , 536px 1561px #FFF , 582px 1352px #FFF , 1612px 235px #FFF , 1091px 947px #FFF , 1441px 293px #FFF , 761px 1169px #FFF , 1102px 1903px #FFF , 1607px 1419px #FFF , 1360px 1165px #FFF , 362px 1791px #FFF , 963px 1912px #FFF , 154px 1412px #FFF , 1550px 28px #FFF , 139px 1838px #FFF , 1140px 284px #FFF , 1109px 1171px #FFF , 1630px 1684px #FFF , 700px 38px #FFF , 1000px 878px #FFF , 165px 929px #FFF , 625px 1524px #FFF , 1154px 479px #FFF , 1665px 834px #FFF , 1330px 1417px #FFF , 1078px 842px #FFF , 744px 920px #FFF , 295px 1471px #FFF , 1702px 338px #FFF , 1640px 1399px #FFF , 404px 1019px #FFF , 323px 803px #FFF , 653px 1181px #FFF , 225px 1415px #FFF , 762px 1615px #FFF , 1861px 1688px #FFF , 294px 1302px #FFF , 325px 1274px #FFF , 1073px 1732px #FFF , 985px 1590px #FFF , 1733px 1829px #FFF , 1757px 1415px #FFF , 888px 1918px #FFF , 1977px 583px #FFF , 870px 1166px #FFF , 1457px 1536px #FFF , 1636px 1387px #FFF , 852px 635px #FFF , 204px 394px #FFF , 746px 949px #FFF , 1163px 1942px #FFF , 15px 1789px #FFF , 1731px 1617px #FFF , 1383px 216px #FFF , 546px 947px #FFF , 1066px 1471px #FFF , 931px 494px #FFF , 1704px 211px #FFF , 1175px 366px #FFF , 313px 95px #FFF , 816px 1891px #FFF , 123px 1708px #FFF , 1733px 576px #FFF , 1605px 293px #FFF , 1935px 176px #FFF , 1501px 1306px #FFF , 71px 1104px #FFF , 278px 1209px #FFF , 802px 1853px #FFF , 245px 649px #FFF , 1791px 500px #FFF , 1192px 1388px #FFF , 910px 696px #FFF , 667px 779px #FFF , 1439px 61px #FFF , 55px 1805px #FFF , 1031px 1131px #FFF , 7px 1265px #FFF , 503px 1382px #FFF , 1621px 437px #FFF , 1656px 695px #FFF , 806px 104px #FFF , 410px 1858px #FFF , 336px 414px #FFF , 1463px 669px #FFF , 368px 499px #FFF , 214px 663px #FFF , 1325px 1434px #FFF , 937px 518px #FFF , 1718px 796px #FFF , 1548px 1120px #FFF , 246px 1799px #FFF , 1549px 1434px #FFF , 1271px 921px #FFF , 360px 1390px #FFF , 1991px 1867px #FFF , 1368px 1665px #FFF , 730px 1438px #FFF , 275px 1118px #FFF , 885px 894px #FFF , 805px 1820px #FFF , 386px 951px #FFF , 1676px 346px #FFF , 1529px 1882px #FFF , 1779px 1166px #FFF , 693px 814px #FFF , 1104px 925px #FFF , 1680px 1573px #FFF , 1799px 396px #FFF , 1928px 547px #FFF , 485px 1002px #FFF , 1395px 23px #FFF , 572px 17px #FFF , 1341px 1921px #FFF , 1116px 296px #FFF , 712px 666px #FFF , 3px 1008px #FFF , 646px 648px #FFF , 933px 1675px #FFF , 350px 704px #FFF , 1263px 1922px #FFF , 1430px 630px #FFF , 1864px 1669px #FFF , 426px 45px #FFF , 1915px 326px #FFF , 1283px 1130px #FFF , 947px 1335px #FFF , 1487px 1111px #FFF , 1022px 272px #FFF , 1094px 827px #FFF , 1823px 546px #FFF , 1365px 1560px #FFF , 1373px 1641px #FFF , 1757px 1728px #FFF , 1973px 956px #FFF , 579px 1306px #FFF , 26px 5px #FFF , 1661px 1871px #FFF , 761px 447px #FFF , 1937px 1860px #FFF , 1977px 328px #FFF , 530px 1912px #FFF , 175px 100px #FFF , 1518px 801px #FFF , 1098px 1800px #FFF , 1597px 544px #FFF , 90px 1328px #FFF , 1569px 271px #FFF , 618px 1377px #FFF , 85px 841px #FFF , 905px 1096px #FFF , 1628px 517px #FFF , 226px 214px #FFF , 1511px 1245px #FFF , 346px 925px #FFF , 1711px 469px #FFF , 1622px 570px #FFF , 1732px 1590px #FFF , 1051px 958px #FFF , 768px 1423px #FFF , 1574px 651px #FFF , 965px 1078px #FFF , 3px 19px #FFF , 1076px 1198px #FFF , 1099px 994px #FFF , 505px 788px #FFF , 1665px 1762px #FFF , 685px 666px #FFF , 603px 899px #FFF , 384px 1637px #FFF , 557px 793px #FFF , 1687px 1926px #FFF , 349px 1524px #FFF , 816px 1281px #FFF , 817px 310px #FFF , 708px 1821px #FFF , 628px 1508px #FFF , 1957px 154px #FFF , 1103px 1587px #FFF , 665px 1061px #FFF , 578px 1843px #FFF , 948px 825px #FFF , 1419px 1835px #FFF , 53px 1653px #FFF , 1956px 1196px #FFF , 1245px 801px #FFF , 1777px 1188px #FFF , 641px 375px #FFF , 905px 1705px #FFF , 436px 891px #FFF , 354px 597px #FFF , 39px 1046px #FFF , 1851px 1858px #FFF , 1219px 985px #FFF , 1066px 1569px #FFF , 1405px 1171px #FFF , 1022px 1521px #FFF , 1467px 769px #FFF , 1893px 152px #FFF , 400px 925px #FFF , 1435px 1287px #FFF , 569px 526px #FFF , 1451px 2px #FFF , 1070px 1796px #FFF , 93px 183px #FFF , 296px 1080px #FFF , 1337px 289px #FFF , 1346px 1637px #FFF , 94px 854px #FFF , 51px 1925px #FFF , 59px 373px #FFF , 172px 1394px #FFF , 1889px 1872px #FFF , 1781px 152px #FFF , 1299px 203px #FFF , 959px 1236px #FFF , 162px 1711px #FFF , 1429px 648px #FFF , 1946px 379px #FFF , 1462px 642px #FFF , 57px 729px #FFF , 933px 44px #FFF , 984px 1857px #FFF , 1564px 1993px #FFF , 1886px 631px #FFF , 1149px 713px #FFF , 1917px 1919px #FFF , 1209px 307px #FFF , 1164px 43px #FFF , 1833px 1000px #FFF , 1854px 1636px #FFF , 701px 619px #FFF , 1981px 966px #FFF , 69px 1409px #FFF , 378px 659px #FFF , 1817px 1774px #FFF , 1148px 518px #FFF , 1722px 1750px #FFF , 740px 5px #FFF , 1771px 643px #FFF , 466px 716px #FFF , 1650px 216px #FFF , 1833px 686px #FFF , 932px 1867px #FFF , 5px 1570px #FFF , 914px 471px #FFF , 1733px 1537px #FFF , 862px 1774px #FFF , 820px 746px #FFF , 1094px 635px #FFF , 1039px 1249px #FFF , 1801px 1805px #FFF , 1143px 1071px #FFF , 305px 99px #FFF , 1823px 721px #FFF , 1516px 1918px #FFF , 201px 1199px #FFF , 538px 312px #FFF , 1311px 1558px #FFF , 1181px 223px #FFF , 512px 960px #FFF , 1425px 182px #FFF , 588px 48px #FFF , 1447px 753px #FFF , 1846px 1197px #FFF; + animation: animStar 50s linear infinite; +} + +#stars:after { + content: " "; + position: absolute; + top: 2000px; + width: 1px; + height: 1px; + background: transparent; + box-shadow: 1070px 1974px #FFF , 1359px 1534px #FFF , 99px 595px #FFF , 1301px 1560px #FFF , 1563px 1402px #FFF , 505px 1764px #FFF , 739px 610px #FFF , 400px 872px #FFF , 677px 529px #FFF , 162px 172px #FFF , 836px 1208px #FFF , 821px 1972px #FFF , 393px 1721px #FFF , 992px 1071px #FFF , 223px 1649px #FFF , 1673px 639px #FFF , 32px 733px #FFF , 45px 481px #FFF , 469px 1736px #FFF , 1516px 41px #FFF , 1076px 1264px #FFF , 895px 662px #FFF , 1510px 425px #FFF , 1276px 1677px #FFF , 651px 455px #FFF , 1188px 770px #FFF , 1392px 1291px #FFF , 1200px 1059px #FFF , 1737px 272px #FFF , 1738px 606px #FFF , 1394px 469px #FFF , 1930px 257px #FFF , 1426px 719px #FFF , 1760px 1796px #FFF , 1882px 242px #FFF , 1927px 11px #FFF , 1624px 1443px #FFF , 298px 760px #FFF , 1702px 37px #FFF , 788px 1766px #FFF , 920px 1757px #FFF , 1470px 194px #FFF , 1481px 105px #FFF , 835px 979px #FFF , 38px 1501px #FFF , 20px 1020px #FFF , 1833px 327px #FFF , 519px 1529px #FFF , 329px 230px #FFF , 303px 1306px #FFF , 1339px 775px #FFF , 1514px 1628px #FFF , 1736px 763px #FFF , 1969px 1961px #FFF , 1318px 901px #FFF , 1389px 1204px #FFF , 1110px 715px #FFF , 312px 1198px #FFF , 1249px 757px #FFF , 990px 1244px #FFF , 673px 456px #FFF , 233px 1305px #FFF , 1321px 1711px #FFF , 1941px 780px #FFF , 250px 153px #FFF , 1309px 1485px #FFF , 1047px 1381px #FFF , 1052px 841px #FFF , 1622px 753px #FFF , 1745px 1604px #FFF , 1711px 1394px #FFF , 968px 992px #FFF , 1965px 1951px #FFF , 180px 1039px #FFF , 437px 1745px #FFF , 1144px 943px #FFF , 1178px 1262px #FFF , 623px 1792px #FFF , 633px 957px #FFF , 727px 911px #FFF , 934px 277px #FFF , 1069px 669px #FFF , 1729px 753px #FFF , 918px 1286px #FFF , 762px 1556px #FFF , 1730px 1128px #FFF , 1104px 799px #FFF , 395px 655px #FFF , 242px 389px #FFF , 1168px 1659px #FFF , 333px 269px #FFF , 881px 1306px #FFF , 1567px 710px #FFF , 1213px 1653px #FFF , 1369px 1234px #FFF , 166px 739px #FFF , 1000px 1182px #FFF , 115px 1231px #FFF , 1702px 1340px #FFF , 1457px 1547px #FFF , 1487px 1687px #FFF , 1352px 48px #FFF , 714px 1779px #FFF , 903px 1498px #FFF , 1471px 1336px #FFF , 62px 73px #FFF , 136px 1491px #FFF , 1732px 1033px #FFF , 479px 1151px #FFF , 475px 1955px #FFF , 891px 772px #FFF , 1633px 29px #FFF , 612px 1257px #FFF , 1475px 1710px #FFF , 1682px 977px #FFF , 127px 160px #FFF , 1490px 795px #FFF , 1700px 1034px #FFF , 423px 1251px #FFF , 102px 52px #FFF , 1588px 826px #FFF , 233px 1320px #FFF , 1978px 1546px #FFF , 1652px 1531px #FFF , 210px 524px #FFF , 1050px 1482px #FFF , 167px 241px #FFF , 1847px 1499px #FFF , 1712px 867px #FFF , 1200px 344px #FFF , 1628px 1060px #FFF , 558px 831px #FFF , 1154px 1832px #FFF , 1631px 963px #FFF , 1539px 859px #FFF , 840px 437px #FFF , 218px 639px #FFF , 317px 1039px #FFF , 648px 744px #FFF , 410px 1590px #FFF , 1371px 557px #FFF , 1715px 164px #FFF , 657px 727px #FFF , 620px 1365px #FFF , 470px 388px #FFF , 442px 341px #FFF , 1770px 660px #FFF , 1016px 557px #FFF , 958px 1492px #FFF , 226px 1100px #FFF , 422px 899px #FFF , 844px 393px #FFF , 184px 1544px #FFF , 1398px 1094px #FFF , 254px 232px #FFF , 1990px 206px #FFF , 624px 1190px #FFF , 723px 1030px #FFF , 223px 1694px #FFF , 504px 1895px #FFF , 374px 1333px #FFF , 1234px 1004px #FFF , 936px 1335px #FFF , 861px 1013px #FFF , 276px 1963px #FFF , 998px 453px #FFF , 1680px 111px #FFF , 1039px 40px #FFF , 564px 1566px #FFF , 27px 1880px #FFF , 1546px 754px #FFF , 976px 1707px #FFF , 1905px 1967px #FFF , 416px 18px #FFF , 1217px 408px #FFF , 948px 293px #FFF , 580px 1300px #FFF , 1656px 798px #FFF , 70px 1516px #FFF , 1263px 1480px #FFF , 1686px 1242px #FFF , 861px 1783px #FFF , 1437px 309px #FFF , 195px 251px #FFF , 1214px 1459px #FFF , 534px 1120px #FFF , 623px 1700px #FFF , 1349px 67px #FFF , 528px 1049px #FFF , 447px 403px #FFF , 63px 1669px #FFF , 1699px 755px #FFF , 1722px 1698px #FFF , 701px 1676px #FFF , 295px 1248px #FFF , 14px 1042px #FFF , 1839px 1085px #FFF , 1984px 1770px #FFF , 890px 1079px #FFF , 300px 1850px #FFF , 197px 1334px #FFF , 34px 1587px #FFF , 499px 1940px #FFF , 368px 1009px #FFF , 1399px 1766px #FFF , 1672px 1438px #FFF , 402px 1800px #FFF , 541px 757px #FFF , 118px 1152px #FFF , 938px 1653px #FFF , 817px 1875px #FFF , 1179px 1682px #FFF , 888px 1801px #FFF , 1786px 1815px #FFF , 1954px 1735px #FFF , 1366px 1326px #FFF , 1120px 636px #FFF , 870px 1913px #FFF , 651px 952px #FFF , 77px 1794px #FFF , 322px 947px #FFF , 2px 1536px #FFF , 714px 960px #FFF , 883px 1445px #FFF , 728px 1438px #FFF , 1498px 20px #FFF , 1436px 441px #FFF , 369px 267px #FFF , 1632px 1972px #FFF , 1508px 655px #FFF , 1042px 1407px #FFF , 925px 315px #FFF , 507px 466px #FFF , 1538px 1452px #FFF , 658px 513px #FFF , 490px 1903px #FFF , 1728px 1331px #FFF , 1346px 1346px #FFF , 570px 1990px #FFF , 1787px 1138px #FFF , 1762px 1347px #FFF , 1800px 1369px #FFF , 700px 1421px #FFF , 1448px 661px #FFF , 923px 317px #FFF , 1601px 444px #FFF , 1000px 512px #FFF , 1479px 1592px #FFF , 1804px 1233px #FFF , 737px 1371px #FFF , 329px 1235px #FFF , 286px 1792px #FFF , 517px 1873px #FFF , 1414px 1950px #FFF , 967px 567px #FFF , 1518px 1650px #FFF , 1720px 752px #FFF , 93px 827px #FFF , 1787px 1355px #FFF , 796px 937px #FFF , 1884px 827px #FFF , 787px 60px #FFF , 1990px 1565px #FFF , 504px 7px #FFF , 1027px 110px #FFF , 1277px 16px #FFF , 962px 1586px #FFF , 909px 285px #FFF , 367px 508px #FFF , 142px 479px #FFF , 793px 752px #FFF , 574px 932px #FFF , 872px 484px #FFF , 1100px 1702px #FFF , 134px 1894px #FFF , 935px 1075px #FFF , 1364px 250px #FFF , 760px 1184px #FFF , 1199px 1735px #FFF , 1163px 972px #FFF , 675px 386px #FFF , 294px 1262px #FFF , 715px 554px #FFF , 967px 1059px #FFF , 513px 1067px #FFF , 1590px 251px #FFF , 1238px 1984px #FFF , 1196px 1625px #FFF , 1942px 960px #FFF , 888px 1733px #FFF , 1381px 290px #FFF , 950px 696px #FFF , 717px 1367px #FFF , 1546px 1498px #FFF , 150px 489px #FFF , 299px 1206px #FFF , 516px 288px #FFF , 734px 582px #FFF , 110px 1710px #FFF , 1269px 127px #FFF , 1705px 350px #FFF , 1104px 525px #FFF , 952px 1015px #FFF , 1825px 1984px #FFF , 1009px 306px #FFF , 1705px 1216px #FFF , 1898px 497px #FFF , 911px 1094px #FFF , 199px 36px #FFF , 1276px 1892px #FFF , 755px 224px #FFF , 662px 92px #FFF , 796px 755px #FFF , 658px 1873px #FFF , 1979px 517px #FFF , 1186px 1537px #FFF , 38px 618px #FFF , 986px 1249px #FFF , 717px 233px #FFF , 927px 1352px #FFF , 639px 618px #FFF , 281px 1641px #FFF , 781px 1054px #FFF , 857px 1846px #FFF , 751px 865px #FFF , 100px 22px #FFF , 92px 1531px #FFF , 852px 1446px #FFF , 1819px 1559px #FFF , 342px 637px #FFF , 1464px 992px #FFF , 50px 1045px #FFF , 1922px 57px #FFF , 1649px 916px #FFF , 608px 225px #FFF , 1758px 403px #FFF , 278px 470px #FFF , 1786px 1533px #FFF , 785px 1330px #FFF , 1724px 181px #FFF , 1796px 659px #FFF , 1769px 967px #FFF , 889px 1092px #FFF , 581px 1956px #FFF , 1820px 469px #FFF , 185px 1112px #FFF , 315px 1801px #FFF , 1334px 992px #FFF , 1283px 1604px #FFF , 1793px 1655px #FFF , 134px 31px #FFF , 497px 617px #FFF , 236px 37px #FFF , 1374px 380px #FFF , 1973px 616px #FFF , 817px 329px #FFF , 157px 1846px #FFF , 1380px 682px #FFF , 419px 597px #FFF , 1937px 827px #FFF , 527px 54px #FFF , 497px 1253px #FFF , 173px 794px #FFF , 626px 1564px #FFF , 1025px 1318px #FFF , 1787px 1763px #FFF , 1381px 706px #FFF , 116px 573px #FFF , 959px 278px #FFF , 1915px 1639px #FFF , 704px 1287px #FFF , 1779px 931px #FFF , 929px 1761px #FFF , 144px 389px #FFF , 1287px 544px #FFF , 176px 140px #FFF , 627px 1043px #FFF , 1580px 760px #FFF , 774px 1411px #FFF , 1856px 372px #FFF , 424px 1369px #FFF , 542px 1527px #FFF , 922px 284px #FFF , 1352px 1587px #FFF , 855px 1652px #FFF , 1155px 151px #FFF , 438px 1081px #FFF , 1511px 1909px #FFF , 807px 41px #FFF , 1325px 1278px #FFF , 114px 1132px #FFF , 1231px 847px #FFF , 1671px 722px #FFF , 1678px 1358px #FFF , 134px 1082px #FFF , 1212px 1819px #FFF , 852px 158px #FFF , 216px 106px #FFF , 1917px 986px #FFF , 21px 1840px #FFF , 779px 1912px #FFF , 856px 594px #FFF , 1138px 230px #FFF , 109px 1289px #FFF , 1544px 303px #FFF , 25px 192px #FFF , 509px 893px #FFF , 8px 1160px #FFF , 916px 69px #FFF , 1741px 382px #FFF , 1729px 370px #FFF , 1766px 891px #FFF , 928px 166px #FFF , 710px 386px #FFF , 1390px 22px #FFF , 1307px 1732px #FFF , 1253px 822px #FFF , 165px 1502px #FFF , 1055px 591px #FFF , 1227px 553px #FFF , 379px 1600px #FFF , 953px 1063px #FFF , 1618px 215px #FFF , 129px 490px #FFF , 262px 1174px #FFF , 1285px 123px #FFF , 205px 1335px #FFF , 1481px 1693px #FFF , 380px 1688px #FFF , 1884px 143px #FFF , 1433px 504px #FFF , 1757px 606px #FFF , 1627px 1208px #FFF , 1819px 37px #FFF , 122px 820px #FFF , 821px 1257px #FFF , 536px 1561px #FFF , 582px 1352px #FFF , 1612px 235px #FFF , 1091px 947px #FFF , 1441px 293px #FFF , 761px 1169px #FFF , 1102px 1903px #FFF , 1607px 1419px #FFF , 1360px 1165px #FFF , 362px 1791px #FFF , 963px 1912px #FFF , 154px 1412px #FFF , 1550px 28px #FFF , 139px 1838px #FFF , 1140px 284px #FFF , 1109px 1171px #FFF , 1630px 1684px #FFF , 700px 38px #FFF , 1000px 878px #FFF , 165px 929px #FFF , 625px 1524px #FFF , 1154px 479px #FFF , 1665px 834px #FFF , 1330px 1417px #FFF , 1078px 842px #FFF , 744px 920px #FFF , 295px 1471px #FFF , 1702px 338px #FFF , 1640px 1399px #FFF , 404px 1019px #FFF , 323px 803px #FFF , 653px 1181px #FFF , 225px 1415px #FFF , 762px 1615px #FFF , 1861px 1688px #FFF , 294px 1302px #FFF , 325px 1274px #FFF , 1073px 1732px #FFF , 985px 1590px #FFF , 1733px 1829px #FFF , 1757px 1415px #FFF , 888px 1918px #FFF , 1977px 583px #FFF , 870px 1166px #FFF , 1457px 1536px #FFF , 1636px 1387px #FFF , 852px 635px #FFF , 204px 394px #FFF , 746px 949px #FFF , 1163px 1942px #FFF , 15px 1789px #FFF , 1731px 1617px #FFF , 1383px 216px #FFF , 546px 947px #FFF , 1066px 1471px #FFF , 931px 494px #FFF , 1704px 211px #FFF , 1175px 366px #FFF , 313px 95px #FFF , 816px 1891px #FFF , 123px 1708px #FFF , 1733px 576px #FFF , 1605px 293px #FFF , 1935px 176px #FFF , 1501px 1306px #FFF , 71px 1104px #FFF , 278px 1209px #FFF , 802px 1853px #FFF , 245px 649px #FFF , 1791px 500px #FFF , 1192px 1388px #FFF , 910px 696px #FFF , 667px 779px #FFF , 1439px 61px #FFF , 55px 1805px #FFF , 1031px 1131px #FFF , 7px 1265px #FFF , 503px 1382px #FFF , 1621px 437px #FFF , 1656px 695px #FFF , 806px 104px #FFF , 410px 1858px #FFF , 336px 414px #FFF , 1463px 669px #FFF , 368px 499px #FFF , 214px 663px #FFF , 1325px 1434px #FFF , 937px 518px #FFF , 1718px 796px #FFF , 1548px 1120px #FFF , 246px 1799px #FFF , 1549px 1434px #FFF , 1271px 921px #FFF , 360px 1390px #FFF , 1991px 1867px #FFF , 1368px 1665px #FFF , 730px 1438px #FFF , 275px 1118px #FFF , 885px 894px #FFF , 805px 1820px #FFF , 386px 951px #FFF , 1676px 346px #FFF , 1529px 1882px #FFF , 1779px 1166px #FFF , 693px 814px #FFF , 1104px 925px #FFF , 1680px 1573px #FFF , 1799px 396px #FFF , 1928px 547px #FFF , 485px 1002px #FFF , 1395px 23px #FFF , 572px 17px #FFF , 1341px 1921px #FFF , 1116px 296px #FFF , 712px 666px #FFF , 3px 1008px #FFF , 646px 648px #FFF , 933px 1675px #FFF , 350px 704px #FFF , 1263px 1922px #FFF , 1430px 630px #FFF , 1864px 1669px #FFF , 426px 45px #FFF , 1915px 326px #FFF , 1283px 1130px #FFF , 947px 1335px #FFF , 1487px 1111px #FFF , 1022px 272px #FFF , 1094px 827px #FFF , 1823px 546px #FFF , 1365px 1560px #FFF , 1373px 1641px #FFF , 1757px 1728px #FFF , 1973px 956px #FFF , 579px 1306px #FFF , 26px 5px #FFF , 1661px 1871px #FFF , 761px 447px #FFF , 1937px 1860px #FFF , 1977px 328px #FFF , 530px 1912px #FFF , 175px 100px #FFF , 1518px 801px #FFF , 1098px 1800px #FFF , 1597px 544px #FFF , 90px 1328px #FFF , 1569px 271px #FFF , 618px 1377px #FFF , 85px 841px #FFF , 905px 1096px #FFF , 1628px 517px #FFF , 226px 214px #FFF , 1511px 1245px #FFF , 346px 925px #FFF , 1711px 469px #FFF , 1622px 570px #FFF , 1732px 1590px #FFF , 1051px 958px #FFF , 768px 1423px #FFF , 1574px 651px #FFF , 965px 1078px #FFF , 3px 19px #FFF , 1076px 1198px #FFF , 1099px 994px #FFF , 505px 788px #FFF , 1665px 1762px #FFF , 685px 666px #FFF , 603px 899px #FFF , 384px 1637px #FFF , 557px 793px #FFF , 1687px 1926px #FFF , 349px 1524px #FFF , 816px 1281px #FFF , 817px 310px #FFF , 708px 1821px #FFF , 628px 1508px #FFF , 1957px 154px #FFF , 1103px 1587px #FFF , 665px 1061px #FFF , 578px 1843px #FFF , 948px 825px #FFF , 1419px 1835px #FFF , 53px 1653px #FFF , 1956px 1196px #FFF , 1245px 801px #FFF , 1777px 1188px #FFF , 641px 375px #FFF , 905px 1705px #FFF , 436px 891px #FFF , 354px 597px #FFF , 39px 1046px #FFF , 1851px 1858px #FFF , 1219px 985px #FFF , 1066px 1569px #FFF , 1405px 1171px #FFF , 1022px 1521px #FFF , 1467px 769px #FFF , 1893px 152px #FFF , 400px 925px #FFF , 1435px 1287px #FFF , 569px 526px #FFF , 1451px 2px #FFF , 1070px 1796px #FFF , 93px 183px #FFF , 296px 1080px #FFF , 1337px 289px #FFF , 1346px 1637px #FFF , 94px 854px #FFF , 51px 1925px #FFF , 59px 373px #FFF , 172px 1394px #FFF , 1889px 1872px #FFF , 1781px 152px #FFF , 1299px 203px #FFF , 959px 1236px #FFF , 162px 1711px #FFF , 1429px 648px #FFF , 1946px 379px #FFF , 1462px 642px #FFF , 57px 729px #FFF , 933px 44px #FFF , 984px 1857px #FFF , 1564px 1993px #FFF , 1886px 631px #FFF , 1149px 713px #FFF , 1917px 1919px #FFF , 1209px 307px #FFF , 1164px 43px #FFF , 1833px 1000px #FFF , 1854px 1636px #FFF , 701px 619px #FFF , 1981px 966px #FFF , 69px 1409px #FFF , 378px 659px #FFF , 1817px 1774px #FFF , 1148px 518px #FFF , 1722px 1750px #FFF , 740px 5px #FFF , 1771px 643px #FFF , 466px 716px #FFF , 1650px 216px #FFF , 1833px 686px #FFF , 932px 1867px #FFF , 5px 1570px #FFF , 914px 471px #FFF , 1733px 1537px #FFF , 862px 1774px #FFF , 820px 746px #FFF , 1094px 635px #FFF , 1039px 1249px #FFF , 1801px 1805px #FFF , 1143px 1071px #FFF , 305px 99px #FFF , 1823px 721px #FFF , 1516px 1918px #FFF , 201px 1199px #FFF , 538px 312px #FFF , 1311px 1558px #FFF , 1181px 223px #FFF , 512px 960px #FFF , 1425px 182px #FFF , 588px 48px #FFF , 1447px 753px #FFF , 1846px 1197px #FFF; +} + +#stars2 { + width: 2px; + height: 2px; + background: transparent; + box-shadow: 1925px 1480px #FFF , 1369px 730px #FFF , 1429px 1496px #FFF , 1026px 95px #FFF , 190px 177px #FFF , 1482px 1483px #FFF , 616px 761px #FFF , 929px 129px #FFF , 551px 992px #FFF , 1379px 253px #FFF , 1294px 1928px #FFF , 1062px 256px #FFF , 1654px 3px #FFF , 1696px 1112px #FFF , 1269px 1907px #FFF , 97px 25px #FFF , 1100px 1062px #FFF , 986px 1520px #FFF , 349px 674px #FFF , 293px 953px #FFF , 560px 971px #FFF , 1505px 1764px #FFF , 580px 1677px #FFF , 1377px 1359px #FFF , 1821px 1582px #FFF , 509px 1687px #FFF , 1353px 417px #FFF , 751px 1892px #FFF , 979px 396px #FFF , 1034px 459px #FFF , 163px 1400px #FFF , 473px 1179px #FFF , 1164px 1034px #FFF , 1308px 1557px #FFF , 1988px 462px #FFF , 138px 878px #FFF , 1099px 1185px #FFF , 1238px 1897px #FFF , 782px 1660px #FFF , 715px 1749px #FFF , 1850px 808px #FFF , 1732px 303px #FFF , 1944px 307px #FFF , 1969px 1444px #FFF , 444px 135px #FFF , 843px 1811px #FFF , 709px 1663px #FFF , 194px 1344px #FFF , 591px 294px #FFF , 53px 25px #FFF , 409px 1897px #FFF , 542px 1557px #FFF , 1389px 1739px #FFF , 34px 287px #FFF , 1810px 170px #FFF , 1213px 1931px #FFF , 819px 636px #FFF , 593px 1764px #FFF , 205px 996px #FFF , 1877px 971px #FFF , 433px 151px #FFF , 614px 841px #FFF , 174px 550px #FFF , 340px 1097px #FFF , 1211px 1973px #FFF , 1522px 1008px #FFF , 1098px 829px #FFF , 1971px 418px #FFF , 448px 409px #FFF , 658px 1036px #FFF , 1037px 1772px #FFF , 1914px 1287px #FFF , 1712px 1857px #FFF , 1800px 383px #FFF , 732px 1594px #FFF , 1684px 1953px #FFF , 1036px 917px #FFF , 805px 805px #FFF , 1649px 357px #FFF , 44px 12px #FFF , 1917px 1251px #FFF , 157px 1166px #FFF , 833px 1678px #FFF , 762px 171px #FFF , 1753px 250px #FFF , 1781px 736px #FFF , 203px 1433px #FFF , 1249px 1130px #FFF , 1152px 970px #FFF , 1083px 1660px #FFF , 327px 227px #FFF , 1362px 1336px #FFF , 456px 1496px #FFF , 1770px 595px #FFF , 1371px 1844px #FFF , 1834px 1685px #FFF , 757px 1625px #FFF , 1735px 146px #FFF , 673px 131px #FFF , 1183px 604px #FFF , 1563px 1456px #FFF , 766px 1040px #FFF , 1201px 398px #FFF , 505px 999px #FFF , 647px 1949px #FFF , 1016px 1771px #FFF , 1648px 1427px #FFF , 676px 1841px #FFF , 760px 1052px #FFF , 494px 1453px #FFF , 184px 260px #FFF , 1441px 947px #FFF , 1314px 1463px #FFF , 1654px 875px #FFF , 1551px 1759px #FFF , 1706px 1972px #FFF , 839px 808px #FFF , 986px 13px #FFF , 1546px 1839px #FFF , 1746px 1092px #FFF , 466px 377px #FFF , 1134px 652px #FFF , 1647px 1789px #FFF , 566px 1795px #FFF , 564px 1747px #FFF , 817px 1455px #FFF , 922px 1112px #FFF , 964px 396px #FFF , 410px 701px #FFF , 870px 381px #FFF , 158px 1778px #FFF , 787px 610px #FFF , 1238px 1390px #FFF , 1903px 1481px #FFF , 1127px 1085px #FFF , 591px 1236px #FFF , 489px 228px #FFF , 429px 278px #FFF , 317px 797px #FFF , 602px 1108px #FFF , 1532px 1138px #FFF , 1524px 462px #FFF , 1753px 1473px #FFF , 555px 294px #FFF , 646px 58px #FFF , 1504px 1265px #FFF , 1661px 98px #FFF , 690px 1997px #FFF , 465px 835px #FFF , 369px 1658px #FFF , 56px 869px #FFF , 1306px 80px #FFF , 846px 149px #FFF , 767px 1011px #FFF , 1450px 58px #FFF , 1415px 1914px #FFF , 854px 24px #FFF , 1319px 1427px #FFF , 223px 1420px #FFF , 105px 1155px #FFF , 1158px 1879px #FFF , 1624px 1289px #FFF , 1635px 1472px #FFF , 272px 891px #FFF , 1099px 1785px #FFF , 1164px 402px #FFF , 1824px 1074px #FFF , 1147px 399px #FFF , 958px 1054px #FFF , 1660px 825px #FFF , 141px 443px #FFF , 1063px 1954px #FFF , 998px 1041px #FFF , 1795px 1594px #FFF , 942px 25px #FFF , 310px 723px #FFF , 598px 1029px #FFF , 1407px 1688px #FFF , 1992px 264px #FFF , 1789px 1963px #FFF , 928px 567px #FFF , 1663px 1492px #FFF , 1941px 942px #FFF , 703px 1703px #FFF , 1808px 486px #FFF , 1792px 1250px #FFF , 740px 1985px #FFF , 85px 317px #FFF , 578px 251px #FFF , 813px 1892px #FFF , 116px 831px #FFF , 1689px 793px #FFF , 1653px 175px #FFF , 501px 1269px #FFF , 1731px 1888px #FFF , 23px 737px #FFF , 1405px 1655px #FFF , 1341px 1047px #FFF , 496px 1774px #FFF , 211px 935px #FFF; + animation: animStar 100s linear infinite; +} + +#stars2:after { + content: " "; + position: absolute; + top: 2000px; + width: 2px; + height: 2px; + background: transparent; + box-shadow: 1925px 1480px #FFF , 1369px 730px #FFF , 1429px 1496px #FFF , 1026px 95px #FFF , 190px 177px #FFF , 1482px 1483px #FFF , 616px 761px #FFF , 929px 129px #FFF , 551px 992px #FFF , 1379px 253px #FFF , 1294px 1928px #FFF , 1062px 256px #FFF , 1654px 3px #FFF , 1696px 1112px #FFF , 1269px 1907px #FFF , 97px 25px #FFF , 1100px 1062px #FFF , 986px 1520px #FFF , 349px 674px #FFF , 293px 953px #FFF , 560px 971px #FFF , 1505px 1764px #FFF , 580px 1677px #FFF , 1377px 1359px #FFF , 1821px 1582px #FFF , 509px 1687px #FFF , 1353px 417px #FFF , 751px 1892px #FFF , 979px 396px #FFF , 1034px 459px #FFF , 163px 1400px #FFF , 473px 1179px #FFF , 1164px 1034px #FFF , 1308px 1557px #FFF , 1988px 462px #FFF , 138px 878px #FFF , 1099px 1185px #FFF , 1238px 1897px #FFF , 782px 1660px #FFF , 715px 1749px #FFF , 1850px 808px #FFF , 1732px 303px #FFF , 1944px 307px #FFF , 1969px 1444px #FFF , 444px 135px #FFF , 843px 1811px #FFF , 709px 1663px #FFF , 194px 1344px #FFF , 591px 294px #FFF , 53px 25px #FFF , 409px 1897px #FFF , 542px 1557px #FFF , 1389px 1739px #FFF , 34px 287px #FFF , 1810px 170px #FFF , 1213px 1931px #FFF , 819px 636px #FFF , 593px 1764px #FFF , 205px 996px #FFF , 1877px 971px #FFF , 433px 151px #FFF , 614px 841px #FFF , 174px 550px #FFF , 340px 1097px #FFF , 1211px 1973px #FFF , 1522px 1008px #FFF , 1098px 829px #FFF , 1971px 418px #FFF , 448px 409px #FFF , 658px 1036px #FFF , 1037px 1772px #FFF , 1914px 1287px #FFF , 1712px 1857px #FFF , 1800px 383px #FFF , 732px 1594px #FFF , 1684px 1953px #FFF , 1036px 917px #FFF , 805px 805px #FFF , 1649px 357px #FFF , 44px 12px #FFF , 1917px 1251px #FFF , 157px 1166px #FFF , 833px 1678px #FFF , 762px 171px #FFF , 1753px 250px #FFF , 1781px 736px #FFF , 203px 1433px #FFF , 1249px 1130px #FFF , 1152px 970px #FFF , 1083px 1660px #FFF , 327px 227px #FFF , 1362px 1336px #FFF , 456px 1496px #FFF , 1770px 595px #FFF , 1371px 1844px #FFF , 1834px 1685px #FFF , 757px 1625px #FFF , 1735px 146px #FFF , 673px 131px #FFF , 1183px 604px #FFF , 1563px 1456px #FFF , 766px 1040px #FFF , 1201px 398px #FFF , 505px 999px #FFF , 647px 1949px #FFF , 1016px 1771px #FFF , 1648px 1427px #FFF , 676px 1841px #FFF , 760px 1052px #FFF , 494px 1453px #FFF , 184px 260px #FFF , 1441px 947px #FFF , 1314px 1463px #FFF , 1654px 875px #FFF , 1551px 1759px #FFF , 1706px 1972px #FFF , 839px 808px #FFF , 986px 13px #FFF , 1546px 1839px #FFF , 1746px 1092px #FFF , 466px 377px #FFF , 1134px 652px #FFF , 1647px 1789px #FFF , 566px 1795px #FFF , 564px 1747px #FFF , 817px 1455px #FFF , 922px 1112px #FFF , 964px 396px #FFF , 410px 701px #FFF , 870px 381px #FFF , 158px 1778px #FFF , 787px 610px #FFF , 1238px 1390px #FFF , 1903px 1481px #FFF , 1127px 1085px #FFF , 591px 1236px #FFF , 489px 228px #FFF , 429px 278px #FFF , 317px 797px #FFF , 602px 1108px #FFF , 1532px 1138px #FFF , 1524px 462px #FFF , 1753px 1473px #FFF , 555px 294px #FFF , 646px 58px #FFF , 1504px 1265px #FFF , 1661px 98px #FFF , 690px 1997px #FFF , 465px 835px #FFF , 369px 1658px #FFF , 56px 869px #FFF , 1306px 80px #FFF , 846px 149px #FFF , 767px 1011px #FFF , 1450px 58px #FFF , 1415px 1914px #FFF , 854px 24px #FFF , 1319px 1427px #FFF , 223px 1420px #FFF , 105px 1155px #FFF , 1158px 1879px #FFF , 1624px 1289px #FFF , 1635px 1472px #FFF , 272px 891px #FFF , 1099px 1785px #FFF , 1164px 402px #FFF , 1824px 1074px #FFF , 1147px 399px #FFF , 958px 1054px #FFF , 1660px 825px #FFF , 141px 443px #FFF , 1063px 1954px #FFF , 998px 1041px #FFF , 1795px 1594px #FFF , 942px 25px #FFF , 310px 723px #FFF , 598px 1029px #FFF , 1407px 1688px #FFF , 1992px 264px #FFF , 1789px 1963px #FFF , 928px 567px #FFF , 1663px 1492px #FFF , 1941px 942px #FFF , 703px 1703px #FFF , 1808px 486px #FFF , 1792px 1250px #FFF , 740px 1985px #FFF , 85px 317px #FFF , 578px 251px #FFF , 813px 1892px #FFF , 116px 831px #FFF , 1689px 793px #FFF , 1653px 175px #FFF , 501px 1269px #FFF , 1731px 1888px #FFF , 23px 737px #FFF , 1405px 1655px #FFF , 1341px 1047px #FFF , 496px 1774px #FFF , 211px 935px #FFF; +} + +#stars3 { + width: 3px; + height: 3px; + background: transparent; + box-shadow: 775px 1382px #FFF , 1892px 676px #FFF , 345px 1274px #FFF , 228px 535px #FFF , 595px 1653px #FFF , 1758px 287px #FFF , 1889px 512px #FFF , 1596px 1524px #FFF , 869px 767px #FFF , 1157px 808px #FFF , 559px 1284px #FFF , 1214px 534px #FFF , 500px 326px #FFF , 104px 790px #FFF , 1804px 1541px #FFF , 1665px 1808px #FFF , 199px 332px #FFF , 960px 1666px #FFF , 995px 1806px #FFF , 1552px 586px #FFF , 1453px 693px #FFF , 1404px 294px #FFF , 1110px 94px #FFF , 1239px 544px #FFF , 1834px 1275px #FFF , 1801px 1661px #FFF , 1628px 1777px #FFF , 1598px 618px #FFF , 1329px 1265px #FFF , 1787px 59px #FFF , 192px 1248px #FFF , 950px 645px #FFF , 1478px 610px #FFF , 704px 1972px #FFF , 1214px 105px #FFF , 276px 1311px #FFF , 1511px 740px #FFF , 52px 1308px #FFF , 1235px 233px #FFF , 980px 1001px #FFF , 1686px 1364px #FFF , 468px 1468px #FFF , 45px 651px #FFF , 827px 1388px #FFF , 748px 496px #FFF , 126px 1039px #FFF , 1473px 1838px #FFF , 495px 1627px #FFF , 1984px 1377px #FFF , 204px 42px #FFF , 1992px 681px #FFF , 1963px 1014px #FFF , 1101px 293px #FFF , 1655px 1784px #FFF , 1983px 1804px #FFF , 1680px 473px #FFF , 1509px 1561px #FFF , 30px 1381px #FFF , 1741px 1773px #FFF , 957px 1224px #FFF , 1111px 1650px #FFF , 178px 1526px #FFF , 1998px 798px #FFF , 184px 191px #FFF , 743px 220px #FFF , 1201px 88px #FFF , 276px 472px #FFF , 1390px 401px #FFF , 1330px 957px #FFF , 857px 129px #FFF , 59px 1973px #FFF , 522px 980px #FFF , 1070px 1164px #FFF , 263px 708px #FFF , 275px 250px #FFF , 155px 1073px #FFF , 310px 1974px #FFF , 1320px 1916px #FFF , 167px 1067px #FFF , 158px 1507px #FFF , 1710px 1767px #FFF , 188px 1504px #FFF , 1845px 948px #FFF , 1278px 1096px #FFF , 179px 312px #FFF , 376px 1598px #FFF , 930px 970px #FFF , 1560px 1829px #FFF , 1063px 626px #FFF , 1662px 1799px #FFF , 663px 1977px #FFF , 1239px 1719px #FFF , 483px 204px #FFF , 795px 1413px #FFF , 248px 1240px #FFF , 1238px 1854px #FFF , 633px 492px #FFF , 1558px 82px #FFF , 1574px 1087px #FFF , 1463px 1839px #FFF; + animation: animStar 150s linear infinite; +} + +#stars3:after { + content: " "; + position: absolute; + top: 2000px; + width: 3px; + height: 3px; + background: transparent; + box-shadow: 775px 1382px #FFF , 1892px 676px #FFF , 345px 1274px #FFF , 228px 535px #FFF , 595px 1653px #FFF , 1758px 287px #FFF , 1889px 512px #FFF , 1596px 1524px #FFF , 869px 767px #FFF , 1157px 808px #FFF , 559px 1284px #FFF , 1214px 534px #FFF , 500px 326px #FFF , 104px 790px #FFF , 1804px 1541px #FFF , 1665px 1808px #FFF , 199px 332px #FFF , 960px 1666px #FFF , 995px 1806px #FFF , 1552px 586px #FFF , 1453px 693px #FFF , 1404px 294px #FFF , 1110px 94px #FFF , 1239px 544px #FFF , 1834px 1275px #FFF , 1801px 1661px #FFF , 1628px 1777px #FFF , 1598px 618px #FFF , 1329px 1265px #FFF , 1787px 59px #FFF , 192px 1248px #FFF , 950px 645px #FFF , 1478px 610px #FFF , 704px 1972px #FFF , 1214px 105px #FFF , 276px 1311px #FFF , 1511px 740px #FFF , 52px 1308px #FFF , 1235px 233px #FFF , 980px 1001px #FFF , 1686px 1364px #FFF , 468px 1468px #FFF , 45px 651px #FFF , 827px 1388px #FFF , 748px 496px #FFF , 126px 1039px #FFF , 1473px 1838px #FFF , 495px 1627px #FFF , 1984px 1377px #FFF , 204px 42px #FFF , 1992px 681px #FFF , 1963px 1014px #FFF , 1101px 293px #FFF , 1655px 1784px #FFF , 1983px 1804px #FFF , 1680px 473px #FFF , 1509px 1561px #FFF , 30px 1381px #FFF , 1741px 1773px #FFF , 957px 1224px #FFF , 1111px 1650px #FFF , 178px 1526px #FFF , 1998px 798px #FFF , 184px 191px #FFF , 743px 220px #FFF , 1201px 88px #FFF , 276px 472px #FFF , 1390px 401px #FFF , 1330px 957px #FFF , 857px 129px #FFF , 59px 1973px #FFF , 522px 980px #FFF , 1070px 1164px #FFF , 263px 708px #FFF , 275px 250px #FFF , 155px 1073px #FFF , 310px 1974px #FFF , 1320px 1916px #FFF , 167px 1067px #FFF , 158px 1507px #FFF , 1710px 1767px #FFF , 188px 1504px #FFF , 1845px 948px #FFF , 1278px 1096px #FFF , 179px 312px #FFF , 376px 1598px #FFF , 930px 970px #FFF , 1560px 1829px #FFF , 1063px 626px #FFF , 1662px 1799px #FFF , 663px 1977px #FFF , 1239px 1719px #FFF , 483px 204px #FFF , 795px 1413px #FFF , 248px 1240px #FFF , 1238px 1854px #FFF , 633px 492px #FFF , 1558px 82px #FFF , 1574px 1087px #FFF , 1463px 1839px #FFF; +} + +#title { + position: absolute; + top: 50%; + left: 0; + right: 0; + color: #FFF; + text-align: center; + font-family: 'lato',sans-serif; + font-weight: 300; + font-size: 50px; + letter-spacing: 10px; + margin-top: -60px; + padding-left: 10px; +} + +#title span { + background: -webkit-linear-gradient(white, #38495a); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +@keyframes animStar { + from { + transform: translateY(0px); + } + to { + transform: translateY(-2000px); + } +} diff --git a/static/css/styles.css b/static/css/styles.css new file mode 100644 index 0000000..58bb6b4 --- /dev/null +++ b/static/css/styles.css @@ -0,0 +1,165 @@ +@font-face { + font-family: 'Intel One Mono Regular'; + font-style: normal; + font-weight: normal; + src: local('Intel One Mono Regular'), url('/res/woff/im.woff2') format('woff2'); +} + +@font-face { + font-family: 'Sans Forgetica Regular'; + font-style: normal; + font-weight: normal; + src: local('Sans Forgetica Regular'), url('/res/woff/sf.woff') format('woff'); +} + +body { + background: #00fcff; + padding: 0px; + margin: 0px; + font-family: 'Intel One Mono Regular'; + color: #ededed; +} + +h1 { + font-family: 'Sans Forgetica Regular'; + font-size: 4em; + color: #00fcff; + text-shadow: #ededed 3px -3px; + margin-top: 2svh; + margin-bottom: 2svh; +} + +span { + display: inline-block; +} + +.vl { + border-left: 1px solid #ededed; + border-right: 1px solid #ededed; + margin-left: 1ch; + margin-right: 1ch; + height: 4rem; +} + +.icon { + width: 4rem; + height: 4rem; +} + +.container { + display: flex; + flex-flow: column; + height: 100svh; +} + +.links { + display: flex +} + +figure { + display: inline-block; + margin: 20px; /* adjust as needed */ +} +figure img { + width: 10vw; + height: auto; + border-radius: 20px; + vertical-align: top; +} +figure figcaption { + width: 10vw; + text-align: center; +} + +.main { + flex: 1 1 auto; + border-radius: 20px; + margin-top: 1svh; + margin-left: 1svh; + margin-right: 1svh; + margin-bottom: 1svh; + padding: 1svh; + /*height: 78svh;*/ + background: #3c3c3c; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +.card { + display: flex; + flex-wrap: wrap; +} + +.article { + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: 1vw; +} + +footer { + flex: 0 1 15svh; + border-radius: 20px; + margin-left: 1svh; + margin-right: 1svh; + margin-bottom: 1svh; + padding: 1svh; + background: #3c3c3c; + display: flex; + /*height: 15svh; + min-height: 32px;*/ + justify-content: center; + align-items: center; + flex-wrap: wrap; + gap: 1em; +} + +a { + color: #ededed; + text-decoration: underline #00fcff; +} + +a:visited { + color: #444; + text-decoration: underline #00fcff; +} + +.fancy { + background-image: linear-gradient( + to right, + #00fcff, + #00fcff 50%, + #ededed 50% + ); + text-decoration: underline #00fcff; + background-size: 200% 100%; + background-position: -100%; + display: inline-block; + padding: 5px 0; + position: relative; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + transition: all 0.3s ease-in-out; +} + +.fancy:before { + content: ''; + background: #00fcff; + display: block; + position: absolute; + bottom: -3px; + left: 0; + width: 0; + height: 3px; + transition: all 0.3s ease-in-out; +} + +.fancy:hover { + background-position: 0; +} + +.fancy:hover::before { + width: 100%; +} diff --git a/static/epstein_bingo.html b/static/epstein_bingo.html new file mode 100644 index 0000000..28aaa8b --- /dev/null +++ b/static/epstein_bingo.html @@ -0,0 +1,137 @@ + + + Epstein Bingo + + + + +

Epstein Bingo

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PEDOS
Bill Clinton
+ + diff --git a/static/img/abc.gif b/static/img/abc.gif new file mode 100644 index 0000000..eabb7d8 Binary files /dev/null and b/static/img/abc.gif differ diff --git a/static/img/adryd.png b/static/img/adryd.png new file mode 100644 index 0000000..efe2ee9 Binary files /dev/null and b/static/img/adryd.png differ diff --git a/static/img/archbtw.png b/static/img/archbtw.png new file mode 100644 index 0000000..8d63605 Binary files /dev/null and b/static/img/archbtw.png differ diff --git a/static/img/blog.svg b/static/img/blog.svg new file mode 100644 index 0000000..809da3f --- /dev/null +++ b/static/img/blog.svg @@ -0,0 +1,46 @@ + + diff --git a/static/img/cbax.gif b/static/img/cbax.gif new file mode 100644 index 0000000..670d647 Binary files /dev/null and b/static/img/cbax.gif differ diff --git a/static/img/eva.gif b/static/img/eva.gif new file mode 100644 index 0000000..9ffbc32 Binary files /dev/null and b/static/img/eva.gif differ diff --git a/static/img/github.svg b/static/img/github.svg new file mode 100644 index 0000000..3eda846 --- /dev/null +++ b/static/img/github.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + diff --git a/static/img/honbra.png b/static/img/honbra.png new file mode 100644 index 0000000..be6f483 Binary files /dev/null and b/static/img/honbra.png differ diff --git a/static/img/kofi.gif b/static/img/kofi.gif new file mode 100644 index 0000000..2f7c01f Binary files /dev/null and b/static/img/kofi.gif differ diff --git a/static/img/mat.png b/static/img/mat.png new file mode 100644 index 0000000..596eaf7 Binary files /dev/null and b/static/img/mat.png differ diff --git a/static/img/neovim.gif b/static/img/neovim.gif new file mode 100644 index 0000000..c3670e2 Binary files /dev/null and b/static/img/neovim.gif differ diff --git a/static/img/notnite.gif b/static/img/notnite.gif new file mode 100644 index 0000000..bcde0d0 Binary files /dev/null and b/static/img/notnite.gif differ diff --git a/static/img/rack-min.jpg b/static/img/rack-min.jpg new file mode 100644 index 0000000..434a3d8 Binary files /dev/null and b/static/img/rack-min.jpg differ diff --git a/static/img/rack.jpg b/static/img/rack.jpg new file mode 100644 index 0000000..b480b94 Binary files /dev/null and b/static/img/rack.jpg differ diff --git a/static/img/shwecky.png b/static/img/shwecky.png new file mode 100644 index 0000000..7d46342 Binary files /dev/null and b/static/img/shwecky.png differ diff --git a/static/img/ssi.gif b/static/img/ssi.gif new file mode 100644 index 0000000..e550a4e Binary files /dev/null and b/static/img/ssi.gif differ diff --git a/static/img/ublockorigin.png b/static/img/ublockorigin.png new file mode 100644 index 0000000..c82555b Binary files /dev/null and b/static/img/ublockorigin.png differ diff --git a/static/js/epstein_bingo.js b/static/js/epstein_bingo.js new file mode 100644 index 0000000..edcbdbf --- /dev/null +++ b/static/js/epstein_bingo.js @@ -0,0 +1,19 @@ +window.addEventListener("load", (event) => { + const names = ["James Gunn", "Ben Affleck", "Bill Cosby", "Hillary Clinton", "Rey Emerito", "Beyonce", "James Franco", "Elon Musk", "Donald Trump", "Bill Gates", "Madonna", "John Travolta", "Charles III", "Eminem", "Bruce Willis", "Joe Biden", "George Clooney", "Quentin Tarantino", "Obama", "Bernie Sanders", "Steven Spielberg", "Tom Hanks", "Justin Roiland", "Justin Trudeau", "Angelina Jolie", "Taylor Swift", "George Lopez", "George Lucas", "Steve Huffman", "Mark Zuckerberg", "R. Kelly", "Stephen Hawking", "Prince Andrew", "Alan Dershowitz"]; + shuffleArray(names); + const tiles = document.getElementsByClassName("tile"); + for(i=0; i 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [array[i], array[j]] = [array[j], array[i]]; + } +} +function selected(item) { + item.style.backgroundColor = '#000'; +} diff --git a/static/sass/starground.sass b/static/sass/starground.sass new file mode 100644 index 0000000..4230883 --- /dev/null +++ b/static/sass/starground.sass @@ -0,0 +1,95 @@ +@import compass + + +// n is number of stars required +@function multiple-box-shadow ($n) + $value: '#{random(2000)}px #{random(2000)}px #FFF' + @for $i from 2 through $n + $value: '#{$value} , #{random(2000)}px #{random(2000)}px #FFF' + + @return unquote($value) + +$shadows-small: multiple-box-shadow(700) +$shadows-medium: multiple-box-shadow(200) +$shadows-big: multiple-box-shadow(100) + +html + height: 100% + background: radial-gradient(ellipse at bottom, #1B2735 0%, #090A0F 100%) + overflow: hidden + +#stars + width: 1px + height: 1px + background: transparent + box-shadow: $shadows-small + animation : animStar 50s linear infinite + + &:after + content: " " + position: absolute + top: 2000px + width: 1px + height: 1px + background: transparent + box-shadow: $shadows-small + +#stars2 + width: 2px + height: 2px + background: transparent + box-shadow: $shadows-medium + animation : animStar 100s linear infinite + + &:after + content: " " + position: absolute + top: 2000px + width: 2px + height: 2px + background: transparent + box-shadow: $shadows-medium + +#stars3 + width: 3px + height: 3px + background: transparent + box-shadow: $shadows-big + animation : animStar 150s linear infinite + + &:after + content: " " + position: absolute + top: 2000px + width: 3px + height: 3px + background: transparent + box-shadow: $shadows-big + +#title + position: absolute + top: 50% + left: 0 + right: 0 + + color: #FFF + text-align: center + font-family: 'lato',sans-serif + font-weight: 300 + font-size: 50px + letter-spacing: 10px + + margin-top: -60px + padding-left: 10px + + span + background: -webkit-linear-gradient(white, #38495a) + -webkit-background-clip: text + -webkit-text-fill-color: transparent + +@keyframes animStar + from + transform: translateY(0px) + to + transform: translateY(-2000px) + \ No newline at end of file diff --git a/static/woff/cfa-b.woff b/static/woff/cfa-b.woff new file mode 100644 index 0000000..15cb1bb Binary files /dev/null and b/static/woff/cfa-b.woff differ diff --git a/static/woff/im.woff2 b/static/woff/im.woff2 new file mode 100644 index 0000000..dd0187e Binary files /dev/null and b/static/woff/im.woff2 differ diff --git a/static/woff/sf.woff b/static/woff/sf.woff new file mode 100644 index 0000000..9dbf511 Binary files /dev/null and b/static/woff/sf.woff differ diff --git a/templates/homelab.html b/templates/homelab.html new file mode 100644 index 0000000..dd3efa8 --- /dev/null +++ b/templates/homelab.html @@ -0,0 +1,128 @@ + + + + + + CBAX dot DEV - Homelab + + + +
+
+
+

Homelab

+
+
+
+ +
click to enlarge
+
+
+
+

The rack consists of the following devices:

+
    +
  • + Dell PowerEdge T610 (Alpine) +
      +
    • RAID Controller
    • +
    • Print Server
    • +
    • RDU1502 Controller
    • +
    • Kubernetes Controller
    • +
    • General Purpose
    • +
    +
  • +
  • + Dell PowerEdge R610 (PFSense/FreeBSD) +
      +
    • PFSense Router
    • +
    +
  • +
  • + Dell PowerEdge R630 (Proxmox/Debian) +
      +
    • Proxmox Host
    • +
    +
  • +
  • + Dell PowerEdge 2850 (Debian) +
      +
    • Space-heater (unused)
    • +
    +
  • +
  • + Shiva LanRover +
      +
    • Dial-In Server
    • +
    +
  • +
  • + Netgear CM1200 +
      +
    • LAGG Connection
    • +
    +
  • +
  • + Obihai OBi508vs +
      +
    • SIP Client
    • +
    +
  • +
  • + Mac Mini PowerPC G3 (ArchLinux) +
      +
    • Certificate Authority
    • +
    • Secure Compute Environment
    • +
    +
  • +
  • + 4x Raspberry Pi +
      +
    • Kubernetes Cluster Member
    • +
    +
  • +
  • + ImageVideo RDU1502 + +
  • +
  • + Cisco 2901 Router +
      +
    • Cellular Failover
    • +
    +
  • +
  • + Cisco Catalyst 3750-X +
      +
    • Main Switch
    • +
    +
  • +
  • + Cisco Catalyst 4948 +
      +
    • Cold Failover
    • +
    +
  • +
  • + APC Smart-UPS 3000 RM XL (3000KVA) +
  • +
+
+
+

Services hosted:

+ +
+
+
+
+
+ + diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..423829f --- /dev/null +++ b/templates/index.html @@ -0,0 +1,51 @@ + + + + + + CBAX dot DEV + + + +
+
+
+ +

cbax ❲. ❳ dev

+
+
+ +
+
+
    +
  • 42U homelab owner See Details
  • +
  • Amateur radio operator
  • +
  • AS202239 - 44net member
  • +
  • Retro-tech enthusiast
  • +
+
+
+ +
+
+
+ +
+ +