commit 651bb88edaa8efebf80bd6ad587c05e6f2bf7d7d
Author: DevMiner
Date: Wed Feb 7 18:16:21 2024 +0100
Publii: update content
diff --git a/404.html b/404.html
new file mode 100644
index 0000000..a6c0e7f
--- /dev/null
+++ b/404.html
@@ -0,0 +1,12 @@
+Error 404 - DevStack
\ No newline at end of file
diff --git a/assets/css/editor.css b/assets/css/editor.css
new file mode 100644
index 0000000..37d7353
--- /dev/null
+++ b/assets/css/editor.css
@@ -0,0 +1,3 @@
+/*
+ * Add your own CSS code for the WYSIWYG editor
+ */
diff --git a/assets/css/main.css b/assets/css/main.css
new file mode 100644
index 0000000..932bc5f
--- /dev/null
+++ b/assets/css/main.css
@@ -0,0 +1,1631 @@
+*,
+*:before,
+*:after {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0;
+ padding: 0;
+}
+
+article,
+aside,
+footer,
+header,
+hgroup,
+main,
+nav,
+section {
+ display: block;
+}
+
+li {
+ list-style: none;
+}
+
+img {
+ height: auto;
+ max-width: 100%;
+ vertical-align: top;
+}
+
+button,
+input,
+select,
+textarea {
+ font: inherit;
+}
+
+address {
+ font-style: normal;
+}
+
+::-moz-selection {
+ background: hsla(var(--accent), var(--alpha, 1));
+ color: hsla(var(--background), var(--alpha, 1));
+}
+
+::selection {
+ background: hsla(var(--accent), var(--alpha, 1));
+ color: hsla(var(--background), var(--alpha, 1));
+}
+
+html {
+ font-size: clamp(1rem, 1rem + 0 * ((100vw - 20rem) / 50), 1rem);
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ scroll-behavior: smooth;
+ scroll-padding-top: calc(var(--baseline) * 5);
+}
+html.no-scroll {
+ overflow: hidden;
+}
+
+body {
+ background: hsla(var(--background), var(--alpha, 1));
+ color: hsla(var(--color), var(--alpha, 1));
+ font-family: var(--body-font);
+ font-variation-settings: "wght" var(--font-weight-normal);
+ letter-spacing: var(--letter-spacing);
+ line-height: var(--line-height);
+ -ms-scroll-chaining: none;
+ overscroll-behavior: none;
+}
+
+a {
+ text-decoration: none;
+}
+a {
+ color: hsla(var(--accent), var(--alpha, 1));
+ -webkit-transition: var(--transition);
+ transition: var(--transition);
+}
+a:hover {
+ color: hsla(var(--color), var(--alpha, 1));
+ text-decoration: underline;
+ text-decoration-thickness: 0.02em;
+ text-underline-offset: 0.15em;
+ -webkit-text-decoration-skip: ink;
+ text-decoration-skip-ink: auto;
+}
+a:active {
+ color: hsla(var(--color), var(--alpha, 1));
+}
+a:focus {
+ outline: none;
+}
+
+.invert {
+ color: hsla(var(--color), var(--alpha, 1));
+ -webkit-transition: var(--transition);
+ transition: var(--transition);
+}
+.invert:hover {
+ color: hsla(var(--accent), var(--alpha, 1));
+ text-decoration: underline;
+ text-decoration-thickness: 0.02em;
+ text-underline-offset: 0.15em;
+ -webkit-text-decoration-skip: ink;
+ text-decoration-skip-ink: auto;
+}
+.invert:active {
+ color: hsla(var(--accent), var(--alpha, 1));
+}
+.invert:focus {
+ outline: none;
+}
+
+p,
+ul,
+ol,
+dl,
+pre {
+ margin-top: calc(var(--baseline) * 5);
+}
+
+blockquote,
+figure,
+hr {
+ margin-top: calc(var(--baseline) * 8);
+ margin-bottom: calc(var(--baseline) * 8);
+}
+
+pre,
+table {
+ margin-top: calc(var(--baseline) * 6);
+ margin-bottom: calc(var(--baseline) * 7);
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ color: hsla(var(--color), var(--alpha, 1));
+ font-family: var(--heading-font);
+ font-variation-settings: "wght" var(--headings-weight);
+ -webkit-hyphens: manual;
+ -ms-hyphens: manual;
+ hyphens: manual;
+ line-height: 1.3;
+ margin-top: calc(var(--baseline) * 12);
+ text-transform: var(--headings-transform);
+}
+
+h1,
+.h1 {
+ font-size: clamp(1.3808408252rem, 1.3808408252rem + 0.0920560555 * ((100vw - 20rem) / 50), 1.4728968807rem);
+}
+
+h2,
+.h2 {
+ font-size: clamp(1.2945382732rem, 1.2945382732rem + 0.086302552 * ((100vw - 20rem) / 50), 1.3808408252rem);
+}
+
+h3,
+.h3 {
+ font-size: clamp(1.2136296308rem, 1.2136296308rem + 0.0809086425 * ((100vw - 20rem) / 50), 1.2945382732rem);
+}
+
+h4,
+.h4 {
+ font-size: clamp(1.1377777785rem, 1.1377777785rem + 0.0758518523 * ((100vw - 20rem) / 50), 1.2136296308rem);
+}
+
+h5,
+.h5 {
+ font-size: clamp(1.066666667rem, 1.066666667rem + 0.0711111115 * ((100vw - 20rem) / 50), 1.1377777785rem);
+}
+
+h6,
+.h6 {
+ font-size: clamp(1rem, 1rem + 0.066666667 * ((100vw - 20rem) / 50), 1.066666667rem);
+}
+
+b,
+strong {
+ font-variation-settings: "wght" var(--font-weight-bold);
+}
+
+blockquote {
+ border-top: 1px solid hsla(var(--accent), var(--alpha, 1));
+ border-bottom: 1px solid hsla(var(--accent), var(--alpha, 1));
+ padding: calc(var(--baseline) * 6);
+ position: relative;
+}
+blockquote::before {
+ content: ">";
+ color: hsla(var(--accent), var(--alpha, 1));
+ display: block;
+ left: 0;
+ position: absolute;
+}
+blockquote > :nth-child(1) {
+ margin-top: 0;
+}
+
+ul,
+ol {
+ margin-left: 2ch;
+}
+ul > li,
+ol > li {
+ list-style: inherit;
+ padding: 0 0 0 0;
+ position: relative;
+}
+ul ul,
+ul ol,
+ol ul,
+ol ol {
+ margin-top: 0;
+}
+
+dl dt {
+ font-variation-settings: "wght" var(--font-weight-bold);
+}
+
+code,
+kbd {
+ font-family: var(--monospace-font);
+ background: hsla(var(--accent), var(--alpha, 0.2));
+ color: hsla(var(--accent), var(--alpha, 1));
+ padding: 1px 6px;
+ margin: 0 2px;
+ font-size: 0.9374999997rem;
+}
+code code,
+code kbd,
+kbd code,
+kbd kbd {
+ background: transparent;
+ padding: 0;
+ margin: 0;
+}
+
+pre {
+ border: 1px solid hsla(var(--color), 0.1);
+ border-radius: var(--border-radius);
+ color: hsla(var(--accent), var(--alpha, 1));
+ font-size: 0.9374999997rem;
+ max-height: var(--pre-height);
+ overflow: auto;
+ padding: calc(var(--baseline) * 5);
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+pre > code {
+ background: transparent;
+ font-size: inherit;
+ padding: 0;
+}
+
+table {
+ border: 1px dashed hsla(var(--accent), var(--alpha, 1));
+ border-collapse: collapse;
+ vertical-align: top;
+ text-align: left;
+ width: 100%;
+}
+table th,
+table td {
+ border: 1px dashed hsla(var(--accent), var(--alpha, 1));
+ padding: calc(var(--baseline) * 2.5) calc(var(--baseline) * 4);
+}
+table th {
+ font-variation-settings: "wght" var(--font-weight-bold);
+ color: hsla(var(--accent), var(--alpha, 1));
+}
+
+figcaption {
+ clear: both;
+ color: var(--gray);
+ font-size: 0.7241964329rem;
+ margin: calc(var(--baseline) * 2.5) 0 0;
+ text-align: center;
+}
+
+sub,
+sup {
+ font-size: 65%;
+}
+
+small {
+ font-size: 0.8789062495rem;
+}
+
+hr,
+.separator {
+ background: none;
+ border: none;
+ height: auto;
+ line-height: 1;
+ max-width: none;
+ position: relative;
+ text-align: center;
+}
+hr::before,
+.separator::before {
+ content: "";
+ font-size: 1.2136296308rem;
+ font-variation-settings: "wght" var(--font-weight-bold);
+ letter-spacing: 1.1377777785rem;
+ padding-left: 1.1377777785rem;
+}
+hr:not(.separator--dots):not(.separator--dot)::after,
+.separator:not(.separator--dots):not(.separator--dot)::after {
+ border-top: 1px solid hsla(var(--color), 0.1);
+ content: "";
+ height: 1px;
+ position: absolute;
+ width: 100%;
+ top: 50%;
+ left: 0;
+}
+
+.separator--dots::before {
+ content: "···";
+ color: hsla(var(--accent), var(--alpha, 1));
+}
+.separator--dot::before {
+ content: "·";
+ color: hsla(var(--accent), var(--alpha, 1));
+}
+
+.button-container {
+ display: table;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.btn, [type=button],
+[type=submit],
+button,
+a.btn {
+ align-items: center;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ background: hsla(var(--accent), var(--alpha, 1));
+ border: 1px solid hsla(var(--accent), var(--alpha, 1));
+ border-radius: 8;
+ color: hsla(var(--background), 1);
+ cursor: pointer;
+ display: inline-flex;
+ flex: 1;
+ font: inherit;
+ font-variation-settings: "wght" var(--font-weight-bold);
+ justify-content: center;
+ margin: 5px 0;
+ outline: none;
+ padding: 8px 18px;
+ position: relative;
+ text-align: center;
+ text-decoration: none;
+ -webkit-transition: var(--transition);
+ transition: var(--transition);
+ /* variants */
+}
+@media all and (min-width: 42.75em) {
+ .btn, [type=button],
+ [type=submit],
+ button,
+ a.btn {
+ flex: 0;
+ }
+}
+.btn:hover, [type=button]:hover,
+[type=submit]:hover,
+button:hover,
+a.btn:hover {
+ --alpha: .8;
+}
+.btn--outline,
+a.btn--outline {
+ background: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ color: hsla(var(--accent), var(--alpha, 1));
+}
+.btn--outline:hover,
+a.btn--outline:hover {
+ -webkit-transform: none;
+ transform: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.btn--link,
+a.btn--link {
+ background: none;
+ border: none;
+ color: hsla(var(--accent), var(--alpha, 1));
+}
+
+a.read-more {
+ display: inline-flex;
+ font-variation-settings: "wght" var(--font-weight-bold);
+ margin: calc(var(--baseline) * 7) 0 calc(var(--baseline) * 5);
+ max-width: 100%;
+}
+
+[type=button],
+[type=submit],
+button {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+}
+
+::-webkit-input-placeholder {
+ color: hsla(var(--accent), var(--alpha, 0.7));
+}
+
+::-moz-placeholder {
+ color: hsla(var(--accent), var(--alpha, 0.7));
+}
+
+:-ms-input-placeholder {
+ color: hsla(var(--accent), var(--alpha, 0.7));
+}
+
+::-ms-input-placeholder {
+ color: hsla(var(--accent), var(--alpha, 0.7));
+}
+
+::placeholder {
+ color: hsla(var(--accent), var(--alpha, 0.7));
+}
+
+input,
+textarea,
+select {
+ background: transparent;
+ color: hsla(var(--accent), var(--alpha, 1));
+ border: 1px solid hsla(var(--accent), var(--alpha, 1));
+ border-radius: 0;
+ padding: 10px;
+ margin: 5px 0;
+ font: inherit;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+}
+input:focus,
+input :active,
+textarea:focus,
+textarea :active,
+select:focus,
+select :active {
+ border-color: hsla(var(--color), var(--alpha, 1));
+ outline: 1px solid hsla(var(--color), var(--alpha, 1));
+}
+input:active,
+textarea:active,
+select:active {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+select {
+ background: hsla(var(--background), var(--alpha, 1));
+}
+select option {
+ background: hsla(var(--background), var(--alpha, 1));
+}
+
+input[type=checkbox], input[type=radio] {
+ vertical-align: middle;
+ padding: 10px;
+ -webkit-box-shadow: inset 0 0 0 3px hsla(var(--background), var(--alpha, 1));
+ box-shadow: inset 0 0 0 3px hsla(var(--background), var(--alpha, 1));
+}
+input[type=checkbox]:checked, input[type=radio]:checked {
+ background: hsla(var(--accent), var(--alpha, 1));
+}
+input[type=radio] {
+ border-radius: 50%;
+}
+
+.header {
+ display: flex;
+}
+@media all and (max-width: 42.6875em) {
+ .header {
+ justify-content: space-between;
+ gap: 10px;
+ }
+}
+@media all and (min-width: 42.75em) {
+ .header {
+ flex-direction: column;
+ position: relative;
+ }
+}
+.header__logo {
+ display: flex;
+ flex: 1;
+ margin-bottom: calc(var(--baseline) * 5);
+}
+.header__logo::after {
+ content: "";
+ background: repeating-linear-gradient(90deg, hsla(var(--accent), var(--alpha, 1)), hsla(var(--accent), var(--alpha, 1)) 2px, transparent 0, transparent 10px);
+ display: block;
+ width: 100%;
+ right: 10px;
+}
+.header__logo a {
+ flex: 0 0 auto;
+ max-width: 100%;
+ text-decoration: none;
+}
+
+.logo {
+ align-items: center;
+ background: hsla(var(--accent), var(--alpha, 1));
+ color: hsla(var(--background), var(--alpha, 1)) !important;
+ display: flex;
+ height: var(--navbar-height);
+ padding: 5px 10px;
+ text-decoration: none;
+}
+.logo > img {
+ height: inherit;
+ -o-object-fit: contain;
+ object-fit: contain;
+ width: auto;
+}
+
+.navbar {
+ position: relative;
+}
+@media all and (min-width: 42.75em) {
+ .navbar {
+ display: flex;
+ align-items: flex-start;
+ justify-content: space-between;
+ margin-bottom: calc(var(--baseline) * 5);
+ }
+}
+.navbar .navbar__menu {
+ display: flex;
+ flex-wrap: wrap;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+@media all and (max-width: 42.6875em) {
+ .navbar .navbar__menu {
+ display: none;
+ }
+}
+.navbar .navbar__menu li {
+ font-family: var(--menu-font);
+ display: block;
+ line-height: var(--line-height);
+ font-variation-settings: "wght" var(--font-weight-normal);
+ margin: 0;
+ padding: 0;
+ position: relative;
+ width: auto;
+}
+.navbar .navbar__menu li a {
+ color: hsla(var(--color), var(--alpha, 1));
+ display: block;
+ -webkit-transition: all 0.24s ease-out;
+ transition: all 0.24s ease-out;
+ text-decoration: underline;
+ text-decoration-thickness: 0.02em;
+ text-underline-offset: 0.15em;
+ -webkit-text-decoration-skip: ink;
+ text-decoration-skip-ink: auto;
+}
+.navbar .navbar__menu li a:active, .navbar .navbar__menu li a:focus, .navbar .navbar__menu li a:hover {
+ color: hsla(var(--accent), var(--alpha, 1));
+}
+.navbar .navbar__menu li span {
+ color: hsla(var(--color), var(--alpha, 1));
+ cursor: default;
+ display: block;
+}
+.navbar .navbar__menu > li {
+ margin: 0 1.25rem calc(var(--baseline) * 2.5) 0;
+}
+.navbar .navbar__menu > li > [aria-haspopup=true]:not(a) {
+ color: hsla(var(--accent), var(--alpha, 1));
+}
+.navbar .navbar__menu > li > [aria-haspopup=true]:not(a)::after {
+ content: "";
+ right: 0.25rem;
+ width: 0;
+ height: 0;
+ border-left: 4px solid transparent;
+ border-right: 4px solid transparent;
+ border-top: 5px solid hsla(var(--accent), var(--alpha, 1));
+ position: absolute;
+ top: 50%;
+ -webkit-transform: translate(0, -50%);
+ transform: translate(0, -50%);
+}
+.navbar .navbar__menu > li > [aria-haspopup=true] {
+ padding: 0 1.25rem 0 0;
+}
+.navbar .navbar__menu > li > [aria-haspopup=true]::after {
+ content: "";
+ right: 0.25rem;
+ width: 0;
+ height: 0;
+ border-left: 4px solid transparent;
+ border-right: 4px solid transparent;
+ border-top: 5px solid hsla(var(--color), var(--alpha, 1));
+ position: absolute;
+ top: 50%;
+ -webkit-transform: translate(0, -50%);
+ transform: translate(0, -50%);
+}
+.navbar .navbar__menu > li:hover > [aria-haspopup=true] {
+ color: hsla(var(--accent), var(--alpha, 1));
+}
+.navbar .navbar__menu > li:hover > [aria-haspopup=true]::after {
+ border-top-color: hsla(var(--accent), var(--alpha, 1));
+}
+.navbar .has-submenu:active > .navbar__submenu,
+.navbar .has-submenu:focus > .navbar__submenu,
+.navbar .has-submenu:hover > .navbar__submenu {
+ left: 0;
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ visibility: visible;
+ margin-top: calc(var(--baseline) * 2);
+}
+.navbar .has-submenu:active > .navbar__submenu:before,
+.navbar .has-submenu:focus > .navbar__submenu:before,
+.navbar .has-submenu:hover > .navbar__submenu:before {
+ content: "";
+ height: calc(var(--baseline) * 3);
+ left: 0;
+ position: absolute;
+ width: 100%;
+ top: calc(var(--baseline) * -3);
+}
+.navbar .has-submenu:active > .navbar__submenu.is-right-submenu,
+.navbar .has-submenu:focus > .navbar__submenu.is-right-submenu,
+.navbar .has-submenu:hover > .navbar__submenu.is-right-submenu {
+ left: auto;
+ right: 0;
+ -webkit-transform-origin: right top;
+ transform-origin: right top;
+}
+.navbar .has-submenu .has-submenu:active > .navbar__submenu,
+.navbar .has-submenu .has-submenu:focus > .navbar__submenu,
+.navbar .has-submenu .has-submenu:hover > .navbar__submenu {
+ top: 0;
+ margin-top: 0;
+}
+.navbar .has-submenu .has-submenu:active > .navbar__submenu.is-right-submenu,
+.navbar .has-submenu .has-submenu:focus > .navbar__submenu.is-right-submenu,
+.navbar .has-submenu .has-submenu:hover > .navbar__submenu.is-right-submenu {
+ top: 0;
+ margin-top: 0;
+}
+.navbar .navbar__submenu {
+ background: hsla(var(--background), var(--alpha, 1));
+ -webkit-box-shadow: 0 10px rgba(34, 33, 41, 0.8), -10px 10px rgba(34, 33, 41, 0.8), 10px 10px rgba(34, 33, 41, 0.8);
+ box-shadow: 0 10px rgba(34, 33, 41, 0.8), -10px 10px rgba(34, 33, 41, 0.8), 10px 10px rgba(34, 33, 41, 0.8);
+ border-radius: var(--border-radius);
+ border: 2px solid;
+ left: -9999px;
+ list-style-type: none;
+ margin: 0;
+ padding: 10px;
+ position: absolute;
+ visibility: hidden;
+ white-space: nowrap;
+ z-index: 1;
+ opacity: 0;
+ -webkit-transform: scale(0.8);
+ transform: scale(0.8);
+ -webkit-transform-origin: 0 top;
+ transform-origin: 0 top;
+ -webkit-transition: opacity 0.15s, -webkit-transform 0.3s cubic-bezier(0.275, 1.375, 0.8, 1);
+ transition: opacity 0.15s, -webkit-transform 0.3s cubic-bezier(0.275, 1.375, 0.8, 1);
+ transition: opacity 0.15s, transform 0.3s cubic-bezier(0.275, 1.375, 0.8, 1);
+ transition: opacity 0.15s, transform 0.3s cubic-bezier(0.275, 1.375, 0.8, 1), -webkit-transform 0.3s cubic-bezier(0.275, 1.375, 0.8, 1);
+}
+.navbar .navbar__submenu__submenu {
+ z-index: 2;
+}
+.navbar .navbar__submenu li a,
+.navbar .navbar__submenu li span[aria-haspopup=true] {
+ padding: calc(var(--baseline) * 2);
+ -webkit-transition: all 0.24s ease;
+ transition: all 0.24s ease;
+}
+.navbar .navbar__submenu li a:active, .navbar .navbar__submenu li a:focus, .navbar .navbar__submenu li a:hover,
+.navbar .navbar__submenu li span[aria-haspopup=true]:active,
+.navbar .navbar__submenu li span[aria-haspopup=true]:focus,
+.navbar .navbar__submenu li span[aria-haspopup=true]:hover {
+ color: hsla(var(--accent), var(--alpha, 1));
+}
+.navbar .navbar__submenu li span {
+ color: hsla(var(--color), var(--alpha, 1));
+ padding: calc(var(--baseline) * 2);
+}
+.navbar .navbar__submenu li:hover > a, .navbar .navbar__submenu li:hover > span[aria-haspopup=true] {
+ color: hsla(var(--accent), var(--alpha, 1));
+}
+.navbar .navbar__toggle {
+ background: hsla(var(--background), var(--alpha, 1));
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border: 2px solid hsla(var(--accent), var(--alpha, 1));
+ border-radius: var(--border-radius);
+ color: hsla(var(--accent), var(--alpha, 1));
+ cursor: pointer;
+ display: block;
+ line-height: 1;
+ margin: 0;
+ overflow: visible;
+ padding: 7px 12px;
+ position: relative;
+ right: 0;
+ text-transform: none;
+ z-index: 2004;
+}
+@media all and (min-width: 42.75em) {
+ .navbar .navbar__toggle {
+ display: none;
+ }
+}
+
+.navbar_mobile_overlay {
+ background: hsla(var(--background), var(--alpha, 1));
+ height: 100vh;
+ left: 0;
+ opacity: 1;
+ overflow: auto;
+ pointer-events: auto;
+ position: fixed;
+ top: 4.4rem;
+ -webkit-transition: all 0.3s cubic-bezier(0, 0, 0.3, 1);
+ transition: all 0.3s cubic-bezier(0, 0, 0.3, 1);
+ width: 100%;
+ z-index: 1001;
+}
+.navbar_mobile_overlay.is-hidden {
+ opacity: 0;
+ pointer-events: none;
+}
+.navbar_mobile_overlay .navbar__menu {
+ margin: 24px;
+}
+.navbar_mobile_overlay .navbar__menu li {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ text-align: center;
+}
+.navbar_mobile_overlay .navbar__menu li a {
+ color: hsla(var(--color), var(--alpha, 1));
+ display: block;
+ padding: 10px 20px 10px 0;
+ position: relative;
+ text-decoration: underline;
+ text-decoration-thickness: 0.02em;
+ text-underline-offset: 0.15em;
+ -webkit-text-decoration-skip: ink;
+ text-decoration-skip-ink: auto;
+}
+.navbar_mobile_overlay .navbar__menu li a:active, .navbar_mobile_overlay .navbar__menu li a:focus, .navbar_mobile_overlay .navbar__menu li a:hover {
+ color: hsla(var(--accent), var(--alpha, 1));
+}
+.navbar_mobile_overlay .navbar__menu li .is-separator {
+ color: hsla(var(--accent), var(--alpha, 1));
+ cursor: default;
+ display: block;
+ position: relative;
+ padding: 10px 20px 10px 0;
+}
+.navbar_mobile_overlay .navbar__menu li [aria-haspopup=true]::after {
+ content: "";
+ width: 0;
+ height: 0;
+ border-style: solid;
+ border-width: 4px 4px 0 4px;
+ border-color: hsla(var(--accent), var(--alpha, 1)) transparent transparent transparent;
+ left: 0.5333333333rem;
+ top: 12px;
+ position: relative;
+}
+.navbar_mobile_overlay .navbar__submenu {
+ margin: 0;
+ padding: 0;
+ visibility: hidden;
+}
+.navbar_mobile_overlay .navbar__submenu[aria-hidden=false] {
+ visibility: visible;
+}
+.navbar_mobile_overlay .navbar__submenu_wrapper {
+ height: 0;
+ opacity: 0;
+ overflow: hidden;
+ -webkit-transition: all 0.3s cubic-bezier(0.275, 1.375, 0.8, 1);
+ transition: all 0.3s cubic-bezier(0.275, 1.375, 0.8, 1);
+}
+.navbar_mobile_overlay .navbar__submenu_wrapper.is-active {
+ height: auto;
+ opacity: 1;
+}
+
+.navbar_mobile_sidebar {
+ background: hsla(var(--background), var(--alpha, 1));
+ -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.25);
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.25);
+ height: 100vh;
+ left: 0;
+ max-width: 400px;
+ overflow: auto;
+ position: fixed;
+ top: 0;
+ -webkit-transition: all 0.3s cubic-bezier(0, 0, 0.3, 1);
+ transition: all 0.3s cubic-bezier(0, 0, 0.3, 1);
+ width: 80%;
+ z-index: 1001;
+}
+.navbar_mobile_sidebar.is-hidden {
+ left: -400px;
+}
+.navbar_mobile_sidebar .navbar__menu {
+ margin: 24px;
+}
+.navbar_mobile_sidebar .navbar__menu li {
+ font-family: var(--menu-font);
+ font-size: 16px;
+ list-style: none;
+ line-height: 1.3;
+ margin: 0;
+ padding: 0;
+}
+.navbar_mobile_sidebar .navbar__menu li a {
+ color: hsla(var(--color), var(--alpha, 1));
+ display: block;
+ padding: 10px 20px 10px 0;
+ position: relative;
+ text-decoration: underline;
+ text-decoration-thickness: 0.02em;
+ text-underline-offset: 0.15em;
+ -webkit-text-decoration-skip: ink;
+ text-decoration-skip-ink: auto;
+}
+.navbar_mobile_sidebar .navbar__menu li a:active, .navbar_mobile_sidebar .navbar__menu li a:focus, .navbar_mobile_sidebar .navbar__menu li a:hover {
+ color: hsla(var(--accent), var(--alpha, 1));
+}
+.navbar_mobile_sidebar .navbar__menu li .is-separator {
+ color: hsla(var(--accent), var(--alpha, 1));
+ cursor: default;
+ display: block;
+ position: relative;
+ padding: 10px 20px 10px 0;
+}
+.navbar_mobile_sidebar .navbar__menu li [aria-haspopup=true]::after {
+ content: "";
+ width: 0;
+ height: 0;
+ border-style: solid;
+ border-width: 4px 4px 0 4px;
+ border-color: hsla(var(--accent), var(--alpha, 1)) transparent transparent transparent;
+ right: 0;
+ top: 18px;
+ position: absolute;
+}
+.navbar_mobile_sidebar .navbar__submenu {
+ margin: 0 0 0 24px;
+ padding: 0;
+ visibility: hidden;
+}
+.navbar_mobile_sidebar .navbar__submenu[aria-hidden=false] {
+ visibility: visible;
+}
+.navbar_mobile_sidebar .navbar__submenu_wrapper {
+ height: 0;
+ opacity: 0;
+ overflow: hidden;
+ -webkit-transition: all 0.3s cubic-bezier(0.275, 1.375, 0.8, 1);
+ transition: all 0.3s cubic-bezier(0.275, 1.375, 0.8, 1);
+}
+.navbar_mobile_sidebar .navbar__submenu_wrapper.is-active {
+ height: auto;
+ opacity: 1;
+}
+.navbar_mobile_sidebar__overlay {
+ background: rgba(0, 0, 0, 0.5);
+ height: 100%;
+ opacity: 1;
+ pointer-events: auto;
+ position: fixed;
+ top: 0;
+ -webkit-transition: all 0.3s cubic-bezier(0, 0, 0.3, 1);
+ transition: all 0.3s cubic-bezier(0, 0, 0.3, 1);
+ width: 100%;
+ z-index: 10;
+}
+.navbar_mobile_sidebar__overlay.is-hidden {
+ opacity: 0;
+ pointer-events: none;
+}
+
+.container {
+ border-right: 1px solid hsla(var(--color), var(--alpha, 0.1));
+ display: flex;
+ flex-direction: column;
+ padding: var(--page-margin);
+ max-width: var(--page-width);
+ min-height: 100vh;
+}
+.container--center {
+ border-left: 1px solid hsla(var(--color), var(--alpha, 0.1));
+ margin: 0 auto;
+}
+
+.content {
+ display: flex;
+ flex-direction: column;
+}
+.content ul:not(.post__toc ul) {
+ list-style: none;
+}
+.content ul:not(.post__toc ul) li:not(:empty):before {
+ content: "-";
+ position: absolute;
+ left: -20px;
+ color: hsla(var(--accent), var(--alpha, 1));
+}
+.content ol:not(.post__toc ul) {
+ list-style: none;
+ counter-reset: li;
+}
+.content ol:not(.post__toc ul) > li {
+ counter-increment: li;
+}
+.content ol:not(.post__toc ul) > li:before {
+ content: counter(li);
+ position: absolute;
+ right: calc(100% + 10px);
+ color: hsla(var(--accent), var(--alpha, 1));
+ display: inline-block;
+ text-align: right;
+}
+.content ol:not(.post__toc ul) > li > ol {
+ margin-left: 2ch;
+}
+.content ol:not(.post__toc ul) > li > ol > li {
+ counter-increment: li;
+}
+.content ol:not(.post__toc ul) > li > ol > li:before {
+ content: counters(li, ".") " ";
+}
+
+.hero {
+ margin-top: calc(var(--baseline) * 5);
+}
+
+.framed {
+ border: 1px solid hsla(var(--accent), var(--alpha, 1));
+ padding: calc(var(--baseline) * 5);
+}
+@media all and (min-width: 42.75em) {
+ .framed {
+ padding: calc(var(--baseline) * 7.5);
+ }
+}
+.framed *:first-child {
+ margin-top: 0;
+}
+.framed *:last-child {
+ margin-bottom: 0;
+}
+
+.posts {
+ width: 100%;
+}
+
+.post {
+ width: 100%;
+ text-align: left;
+ margin: calc(var(--baseline) * 5) auto;
+ padding: calc(var(--baseline) * 5) 0;
+}
+.post:not(:last-of-type) {
+ border-bottom: 1px solid hsla(var(--color), var(--alpha, 0.1));
+}
+.post__content {
+ margin-top: calc(var(--baseline) * 7.5);
+}
+.post__meta {
+ --alpha: .7;
+ margin-bottom: calc(var(--baseline) * 2.5);
+ color: hsla(var(--accent), var(--alpha, 1));
+}
+.post__meta > *:not(:first-child)::before {
+ content: "::";
+ color: hsla(var(--accent), var(--alpha, 1));
+ display: inline-block;
+ margin-right: calc(var(--baseline) * 2);
+}
+.post__title {
+ border-bottom: 3px dotted hsla(var(--accent), var(--alpha, 1));
+ color: hsla(var(--accent), var(--alpha, 1));
+ position: relative;
+ margin: 0 0 calc(var(--baseline) * 4);
+ padding-bottom: calc(var(--baseline) * 4);
+}
+@media all and (min-width: 42.75em) {
+ .post__title {
+ margin-top: calc(var(--baseline) * 10);
+ }
+}
+.post__title:after {
+ content: "";
+ position: absolute;
+ bottom: 2px;
+ display: block;
+ width: 100%;
+ border-bottom: 3px dotted hsla(var(--accent), var(--alpha, 1));
+}
+.post__title a {
+ text-decoration: none;
+}
+.post__tags {
+ --alpha: .5;
+ display: block;
+}
+.post__tags a {
+ text-decoration: none;
+}
+.post__tags a::before {
+ content: "#";
+}
+.post__tags a:hover {
+ --alpha: .7;
+}
+.post__cover {
+ border: 10px solid hsla(var(--accent), var(--alpha, 1));
+ padding: calc(var(--baseline) * 2.5);
+}
+@media all and (min-width: 42.75em) {
+ .post__cover {
+ padding: calc(var(--baseline) * 5);
+ border-width: 20px;
+ }
+}
+.post__image {
+ display: inline-block;
+ background: transparent;
+ margin: calc(var(--baseline) * 10) 0 calc(var(--baseline) * 5);
+}
+.post__image > img {
+ display: inline-block;
+}
+.post__image--left {
+ float: left;
+ margin-top: calc(var(--baseline) * 6);
+ margin-right: calc(var(--baseline) * 6);
+ max-width: 40%;
+}
+.post__image--right {
+ float: right;
+ margin-top: calc(var(--baseline) * 6);
+ margin-left: calc(var(--baseline) * 6);
+ max-width: 40%;
+}
+.post__image--center {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: calc(var(--baseline) * 10);
+ text-align: center;
+}
+.post__image--wide, .post__image--full {
+ display: block;
+}
+@media all and (min-width: 42.75em) {
+ .post__image--wide, .post__image--full {
+ margin-left: calc(-1 * var(--page-margin));
+ margin-right: calc(-1 * var(--page-margin));
+ margin-bottom: calc(var(--baseline) * 10);
+ text-align: center;
+ }
+ .post__image--wide a,
+ .post__image--wide img, .post__image--full a,
+ .post__image--full img {
+ display: block;
+ height: auto;
+ width: 100%;
+ }
+}
+.post__image + .post__entry, .post__image + .post__content {
+ margin-top: calc(var(--baseline) * 5);
+}
+.post__entry {
+ margin-top: calc(var(--baseline) * 7.5);
+}
+.post__entry > :nth-child(1) {
+ margin-top: 0;
+}
+.post__last-updated {
+ color: hsla(var(--color), var(--alpha, 0.5));
+ font-size: 0.8789062495rem;
+ margin-top: calc(var(--baseline) * 5);
+}
+.post__share {
+ display: flex;
+ flex-wrap: wrap;
+ gap: var(--baseline) calc(var(--baseline) * 6);
+ margin-top: calc(var(--baseline) * 10);
+}
+.post__share > a {
+ --alpha: .5;
+ padding: 6px 0;
+}
+.post__share > a span {
+ font-family: var(--menu-font);
+ font-size: 0.8789062495rem;
+ margin-left: 2px;
+}
+.post__share > a svg {
+ --alpha: .7;
+ fill: hsla(var(--accent), var(--alpha, 1));
+ height: 18px;
+ pointer-events: none;
+ width: 18px;
+ vertical-align: middle;
+}
+.post__share > a:hover {
+ --alpha: 1;
+ -webkit-transform: translate3d(0, -2px, 0);
+ transform: translate3d(0, -2px, 0);
+ text-decoration: none;
+}
+.post__comments {
+ overflow: hidden;
+}
+.post__video, .post__iframe {
+ display: block;
+ margin-top: calc(var(--baseline) * 8);
+ margin-bottom: calc(var(--baseline) * 8);
+ overflow: hidden;
+ padding: 0;
+ position: relative;
+ width: 100%;
+}
+.post__video::before, .post__iframe::before {
+ display: block;
+ content: "";
+ padding-top: var(--embed-aspect-ratio);
+}
+.post__video iframe, .post__video video, .post__iframe iframe, .post__iframe video {
+ border: none;
+ height: 100%;
+ left: 0;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ width: 100%;
+}
+.post__toc {
+ margin: calc(var(--baseline) * 5) var(--baseline) calc(var(--baseline) * 8);
+}
+.post__toc h3 {
+ font-size: 1rem;
+ margin: 0;
+}
+.post__toc ul {
+ counter-reset: item;
+ list-style: decimal;
+ margin: calc(var(--baseline) * 3) 0 0 3ch;
+}
+.post__toc ul li {
+ counter-increment: item;
+ padding: 0;
+}
+.post__toc ul ul {
+ margin-top: 0;
+}
+.post__toc ul ul li {
+ display: block;
+}
+.post__toc ul ul li:before {
+ content: counters(item, ".") ". ";
+ margin-left: -3ch;
+}
+
+.list {
+ margin-top: calc(var(--baseline) * 10);
+}
+
+.banner--before-post {
+ margin-top: calc(var(--baseline) * 5);
+}
+.banner--after-post {
+ margin-bottom: calc(var(--baseline) * 10);
+}
+
+.page__title sup {
+ color: hsla(var(--color), var(--alpha, 0.7));
+ font-variation-settings: "wght" var(--font-weight-normal);
+}
+.page--author__header {
+ background-color: hsla(var(--color), var(--alpha, 0.05));
+ padding: calc(var(--baseline) * 5);
+}
+@media all and (min-width: 42.75em) {
+ .page--author__header {
+ padding: calc(var(--baseline) * 7.5);
+ }
+}
+.page--author__top {
+ align-items: center;
+ display: flex;
+ gap: 1rem;
+}
+.page--author__top h1 {
+ margin: 0;
+}
+.page--author__avatar {
+ border-radius: 50%;
+ height: 3rem;
+ width: 3rem;
+}
+.page--author__website {
+ margin-top: calc(var(--baseline) * 5);
+}
+.page--error__title {
+ color: hsla(var(--accent), var(--alpha, 1));
+}
+
+.align-left {
+ text-align: left;
+}
+
+.align-right {
+ text-align: right;
+}
+
+.align-center {
+ text-align: center;
+}
+
+.align-justify {
+ text-align: justify;
+}
+
+.msg {
+ background-color: hsla(var(--color), var(--alpha, 0.05));
+ border-left: 2px solid;
+ font-size: 0.9374999997rem;
+ padding: calc(var(--baseline) * 5);
+ position: relative;
+}
+.msg--highlight {
+ border-left-color: var(--highlight-color);
+}
+.msg--info {
+ border-left-color: var(--info-color);
+}
+.msg--success {
+ border-left-color: var(--success-color);
+}
+.msg--warning {
+ border-left-color: var(--warning-color);
+}
+
+.dropcap:first-letter {
+ color: hsla(var(--accent), var(--alpha, 1));
+ float: left;
+ font-size: 3.6355864383rem;
+ line-height: 0.7;
+ margin-right: 0.5rem;
+ padding: calc(var(--baseline) * 2) calc(var(--baseline) * 2) calc(var(--baseline) * 5) 0;
+}
+
+.pec-wrapper {
+ height: 100%;
+ left: 0;
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+.pec-overlay {
+ align-items: center;
+ border: 1px solid hsla(var(--accent), var(--alpha, 1));
+ font-size: 14px;
+ display: none;
+ height: inherit;
+ justify-content: center;
+ line-height: 1.4;
+ padding: 1rem;
+ position: relative;
+ text-align: center;
+}
+@media all and (min-width: 42.75em) {
+ .pec-overlay {
+ font-size: 16px;
+ line-height: var(--line-height);
+ padding: 1rem 2rem;
+ }
+}
+.pec-overlay.is-active {
+ display: flex;
+}
+.pec-overlay-inner p {
+ margin: 0 0 1rem;
+}
+
+.facebook svg {
+ fill: #0866FF;
+}
+
+.twitter svg {
+ fill: #000000;
+}
+
+.instagram svg {
+ fill: #000000;
+}
+
+.vimeo svg {
+ fill: #1ab7ea;
+}
+
+.pinterest svg {
+ fill: #bd081c;
+}
+
+.youtube svg {
+ fill: #cd201f;
+}
+
+.linkedin svg {
+ fill: #007bb6;
+}
+
+.buffer svg {
+ fill: #333333;
+}
+
+.mix svg {
+ fill: #fd8235;
+}
+
+.whatsapp svg {
+ fill: #25D366;
+}
+
+.pagination {
+ margin-top: calc(var(--baseline) * 12);
+}
+.pagination__title {
+ color: hsla(var(--color), var(--alpha, 0.3));
+ font-size: 0.7724761953rem;
+ letter-spacing: 0.1em;
+ margin: calc(var(--baseline) * 25) 0 calc(var(--baseline) * 6);
+ position: relative;
+ text-align: center;
+ text-transform: uppercase;
+}
+.pagination__title::after {
+ border-top: 1px solid hsla(var(--color), 0.1);
+ content: "";
+ height: 1px;
+ position: absolute;
+ width: 100%;
+ top: 50%;
+ left: 0;
+ z-index: -1;
+}
+.pagination__title > span {
+ background: hsla(var(--background), var(--alpha, 1));
+ padding: 5px 10px;
+}
+.pagination__buttons {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-flow: row wrap;
+ gap: 10px;
+}
+.pagination__buttons a {
+ text-decoration: none;
+}
+.pagination .btn, .pagination [type=button],
+.pagination [type=submit],
+.pagination button {
+ max-width: 100%;
+}
+@media all and (min-width: 42.75em) {
+ .pagination .btn, .pagination [type=button],
+ .pagination [type=submit],
+ .pagination button {
+ max-width: 49%;
+ }
+}
+.pagination .btn__text {
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+}
+.pagination .btn.next .btn__icon, .pagination .next[type=button] .btn__icon,
+.pagination .next[type=submit] .btn__icon,
+.pagination button.next .btn__icon {
+ margin-left: 8px;
+}
+.pagination .btn.previous .btn__icon, .pagination .previous[type=button] .btn__icon,
+.pagination .previous[type=submit] .btn__icon,
+.pagination button.previous .btn__icon {
+ margin-right: 8px;
+}
+
+.footer {
+ color: hsla(var(--color), var(--alpha, 0.5));
+ padding: calc(var(--baseline) * 10) 0;
+ flex-grow: 0;
+}
+.footer a {
+ text-decoration: underline;
+ text-decoration-thickness: 0.02em;
+ text-underline-offset: 0.15em;
+ -webkit-text-decoration-skip: ink;
+ text-decoration-skip-ink: auto;
+}
+.footer a {
+ color: hsla(var(--color), var(--alpha, 0.5));
+ -webkit-transition: var(--transition);
+ transition: var(--transition);
+}
+.footer a:hover {
+ color: hsla(var(--color), var(--alpha, 1));
+ text-decoration: underline;
+ text-decoration-thickness: 0.02em;
+ text-underline-offset: 0.15em;
+ -webkit-text-decoration-skip: ink;
+ text-decoration-skip-ink: auto;
+}
+.footer a:active {
+ color: hsla(var(--color), var(--alpha, 1));
+}
+.footer a:focus {
+ outline: none;
+}
+.footer__inner {
+ align-items: center;
+ display: flex;
+ flex-direction: column;
+ margin: 0;
+ max-width: 100%;
+ text-align: center;
+}
+.footer__copyright > :nth-child(1) {
+ margin-top: 0;
+}
+.footer__social {
+ margin-top: calc(var(--baseline) * 5);
+}
+.footer__social a {
+ text-decoration: none !important;
+}
+.footer__social svg {
+ fill: hsla(var(--color), var(--alpha, 0.5));
+ height: 0.9374999997rem;
+ margin: 0 0.2rem;
+ -webkit-transition: all 0.12s linear 0s;
+ transition: all 0.12s linear 0s;
+ width: 0.9374999997rem;
+}
+.footer__social svg:hover {
+ fill: hsla(var(--accent), var(--alpha, 1));
+}
+
+.gallery {
+ margin: calc(var(--baseline) * 8) calc(var(--gallery-gap) * -1);
+}
+@media all and (min-width: 20em) {
+ .gallery {
+ display: flex;
+ flex-wrap: wrap;
+ }
+}
+@media all and (min-width: 42.75em) {
+ .gallery-wrapper--wide, .gallery-wrapper--full {
+ margin-left: calc(-1 * var(--page-margin));
+ margin-right: calc(-1 * var(--page-margin));
+ }
+ .gallery-wrapper--wide .gallery, .gallery-wrapper--full .gallery {
+ width: calc(100% + var(--gallery-gap) * 2);
+ }
+}
+@media all and (min-width: 20em) {
+ .gallery[data-columns="1"] .gallery__item {
+ flex: 1 0 100%;
+ }
+}
+@media all and (min-width: 30em) {
+ .gallery[data-columns="2"] .gallery__item {
+ flex: 1 0 50%;
+ }
+}
+@media all and (min-width: 42.75em) {
+ .gallery[data-columns="3"] .gallery__item {
+ flex: 1 0 33.333%;
+ }
+}
+@media all and (min-width: 56.25em) {
+ .gallery[data-columns="4"] .gallery__item {
+ flex: 0 1 25%;
+ }
+}
+@media all and (min-width: 56.25em) {
+ .gallery[data-columns="5"] .gallery__item {
+ flex: 0 1 20%;
+ }
+}
+@media all and (min-width: 56.25em) {
+ .gallery[data-columns="6"] .gallery__item {
+ flex: 0 1 16.666%;
+ }
+}
+@media all and (min-width: 56.25em) {
+ .gallery[data-columns="7"] .gallery__item {
+ flex: 1 0 14.285%;
+ }
+}
+@media all and (min-width: 56.25em) {
+ .gallery[data-columns="8"] .gallery__item {
+ flex: 1 0 12.5%;
+ }
+}
+.gallery__item {
+ margin: 0;
+ padding: var(--gallery-gap);
+ position: relative;
+}
+@media all and (min-width: 20em) {
+ .gallery__item {
+ flex: 1 0 50%;
+ }
+}
+@media all and (min-width: 30em) {
+ .gallery__item {
+ flex: 1 0 33.333%;
+ }
+}
+@media all and (min-width: 42.75em) {
+ .gallery__item {
+ flex: 1 0 25%;
+ }
+}
+.gallery__item a {
+ display: block;
+ height: 100%;
+ width: 100%;
+}
+.gallery__item a::after {
+ background: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.4)), to(rgba(0, 0, 0, 0)));
+ background: linear-gradient(to top, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0) 100%);
+ bottom: var(--gallery-gap);
+ content: "";
+ display: block;
+ opacity: 0;
+ left: var(--gallery-gap);
+ height: calc(100% - var(--gallery-gap) * 2);
+ position: absolute;
+ right: var(--gallery-gap);
+ top: var(--gallery-gap);
+ -webkit-transition: all 0.24s ease-out;
+ transition: all 0.24s ease-out;
+ width: calc(100% - var(--gallery-gap) * 2);
+}
+.gallery__item a:hover::after {
+ opacity: 1;
+}
+.gallery__item img {
+ display: block;
+ height: 100%;
+ -o-object-fit: cover;
+ object-fit: cover;
+ width: 100%;
+}
+.gallery__item figcaption {
+ bottom: 1.2rem;
+ color: var(--color);
+ left: 50%;
+ opacity: 0;
+ position: absolute;
+ text-align: center;
+ -webkit-transform: translate(-50%, 1.2rem);
+ transform: translate(-50%, 1.2rem);
+ -webkit-transition: all 0.24s ease-out;
+ transition: all 0.24s ease-out;
+}
+.gallery__item:hover figcaption {
+ opacity: 1;
+ -webkit-transform: translate(-50%, 0);
+ transform: translate(-50%, 0);
+}
+
+.pswp--dark .pswp__bg {
+ background: black;
+}
+.pswp--light .pswp__bg {
+ background: var(--color);
+}
+.pswp--light .pswp__counter {
+ color: hsla(var(--color), var(--alpha, 1));
+}
+.pswp--light .pswp__caption__center {
+ color: hsla(var(--color), var(--alpha, 1));
+}
+.pswp .pswp__button {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ -webkit-transform: none;
+ transform: none;
+}
\ No newline at end of file
diff --git a/assets/css/photoswipe.css b/assets/css/photoswipe.css
new file mode 100644
index 0000000..d922705
--- /dev/null
+++ b/assets/css/photoswipe.css
@@ -0,0 +1 @@
+/*! PhotoSwipe main CSS by Dmitry Semenov | photoswipe.com | MIT license */.pswp,.pswp__bg,.pswp__scroll-wrap{height:100%;width:100%}.pswp__container,.pswp__item,.pswp__zoom-wrap{right:0;bottom:0;top:0;position:absolute;left:0}.pswp,.pswp__bg,.pswp__error-msg,.pswp__img,.pswp__item,.pswp__scroll-wrap,.pswp__zoom-wrap{position:absolute}.pswp__bg,.pswp__share-modal{will-change:opacity}.pswp--touch .pswp__button--arrow--left,.pswp--touch .pswp__button--arrow--right,.pswp__caption--fake{visibility:hidden}.pswp,.pswp__bg,.pswp__container,.pswp__img--placeholder,.pswp__share-modal,.pswp__share-tooltip,.pswp__zoom-wrap{-webkit-backface-visibility:hidden}.pswp{display:none;left:0;top:0;overflow:hidden;-ms-touch-action:none;touch-action:none;z-index:1500;-webkit-text-size-adjust:100%;outline:0}.pswp--open,.pswp--supports-fs .pswp__button--fs,.pswp__button{display:block}.pswp *{-webkit-box-sizing:border-box;box-sizing:border-box}.pswp img{max-width:none}.pswp--animate_opacity{opacity:.001;will-change:opacity;-webkit-transition:opacity 333ms cubic-bezier(.4, 0, .22, 1);transition:opacity 333ms cubic-bezier(.4, 0, .22, 1)}.pswp--zoom-allowed .pswp__img{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.pswp--zoomed-in .pswp__img{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.pswp--dragging .pswp__img{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.pswp__bg{left:0;top:0;opacity:0;-webkit-transform:translateZ(0);transform:translateZ(0)}.pswp__scroll-wrap{left:0;top:0;overflow:hidden}.pswp__container,.pswp__zoom-wrap{-ms-touch-action:none;touch-action:none}.pswp__container,.pswp__img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.pswp__zoom-wrap{width:100%;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transition:-webkit-transform 333ms cubic-bezier(.4, 0, .22, 1);transition:transform 333ms cubic-bezier(.4, 0, .22, 1),-webkit-transform 333ms cubic-bezier(.4, 0, .22, 1)}.pswp__bg{-webkit-transition:opacity 333ms cubic-bezier(.4, 0, .22, 1);transition:opacity 333ms cubic-bezier(.4, 0, .22, 1)}.pswp--animated-in .pswp__bg,.pswp--animated-in .pswp__zoom-wrap{-webkit-transition:none;transition:none}.pswp__item{overflow:hidden}.pswp__img{width:auto;height:auto;top:0;left:0}.pswp__img--placeholder--blank{background:#222}.pswp--ie .pswp__img{width:100%!important;height:auto!important;left:0;top:0}.pswp__error-msg{left:0;top:50%;width:100%;text-align:center;font-size:14px;line-height:16px;margin-top:-8px;color:#ccc}.pswp__error-msg a{color:#ccc;text-decoration:underline}.pswp__share-tooltip a,.pswp__share-tooltip a:hover{text-decoration:none;color:#000}.pswp__button{width:44px;height:44px;position:relative;background:0 0;background-color:transparent!important;cursor:pointer;overflow:visible;-webkit-appearance:none;border:0;padding:0;margin:0;opacity:.75;-webkit-transition:opacity .2s;transition:opacity .2s;-webkit-box-shadow:none;box-shadow:none}.pswp__button:focus,.pswp__button:hover,.pswp__ui--over-close .pswp__button--close{opacity:1}.pswp__button:active{outline:0;opacity:.9}.pswp__button::-moz-focus-inner{padding:0;border:0}.pswp--svg .pswp__button,.pswp--svg .pswp__button--arrow--left:before,.pswp--svg .pswp__button--arrow--right:before{background-size:264px 88px;width:44px;height:44px}.pswp--svg .pswp__button--arrow--left,.pswp--svg .pswp__button--arrow--right{background:0 0!important}.pswp__button--close{background-position:0 -44px!important}.pswp__button--share{background-position:-44px -44px!important}.pswp__button--fs{display:none}.pswp--fs .pswp__button--fs{background-position:-44px 0!important}.pswp__button--zoom{display:none;background-position:-88px 0!important}.pswp--zoom-allowed .pswp__button--zoom{display:block}.pswp--zoomed-in .pswp__button--zoom{background-position:-132px 0!important}.pswp__button--arrow--left,.pswp__button--arrow--right{background:0 0;width:70px;height:100px;position:absolute;top:50%;-webkit-transform:translate(0,-50%);transform:translate(0,-50%)}.pswp__button--arrow--left{left:1rem}.pswp__caption,.pswp__counter,.pswp__share-modal{left:0;position:absolute}.pswp__button--arrow--right{right:1rem}.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{content:'';top:5px;height:30px;width:32px;position:absolute}.pswp__button--arrow--left:before{left:6px;background-position:-138px -44px}.pswp__button--arrow--right:before{right:-6px;background-position:-94px -44px}.pswp__counter,.pswp__share-modal{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pswp__share-modal{display:block;background:rgba(0,0,0,.5);width:100%;height:100%;top:0;padding:10px;z-index:1600;opacity:0;-webkit-transition:opacity .25s ease-out;transition:opacity .25s ease-out}.pswp__share-modal--hidden{display:none}.pswp__share-tooltip{z-index:1620;position:absolute;background:#fff;top:56px;border-radius:2px;display:block;width:auto;right:3rem;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.25);box-shadow:0 2px 5px rgba(0,0,0,.25);-webkit-transform:translateY(6px);transform:translateY(6px);-webkit-transition:-webkit-transform .25s;transition:transform .25s;transition:transform .25s,-webkit-transform .25s;will-change:transform}.pswp__caption--empty,.pswp__ui--one-slide .pswp__button--arrow--left,.pswp__ui--one-slide .pswp__button--arrow--right,.pswp__ui--one-slide .pswp__counter{display:none}.pswp__share-tooltip a{display:block;padding:8px 12px;font-size:14px;line-height:18px}.pswp__share-tooltip a:first-child{border-radius:2px 2px 0 0}.pswp__share-tooltip a:last-child{border-radius:0 0 2px 2px}.pswp__share-modal--fade-in{opacity:1}.pswp__share-modal--fade-in .pswp__share-tooltip{-webkit-transform:translateY(0);transform:translateY(0)}.pswp--touch .pswp__share-tooltip a{padding:16px 12px}a.pswp__share--facebook:before{content:'';display:block;width:0;height:0;position:absolute;top:-12px;right:15px;border:6px solid transparent;border-bottom-color:#fff;-webkit-pointer-events:none;-moz-pointer-events:none;pointer-events:none}a.pswp__share--facebook:hover{background:#3e5c9a;color:#fff}a.pswp__share--facebook:hover:before{border-bottom-color:#3e5c9a}a.pswp__share--twitter:hover{background:#55acee;color:#fff}a.pswp__share--pinterest:hover{background:#ccc;color:#ce272d}a.pswp__share--download:hover{background:#ddd}.pswp__counter{top:0;height:3rem;font-size:13px;line-height:3rem;color:#fff;opacity:.75;padding:0 1rem}.pswp__caption{bottom:2rem;width:100%;min-height:3rem}.pswp__caption small{font-size:11px;color:#bbb}.pswp__caption__center{text-align:center;max-width:calc(38rem + 8%);margin:0 auto;font-size:13px;padding:1rem 4%;line-height:20px;color:#ccc}.pswp--has_mouse .pswp__button--arrow--left,.pswp--has_mouse .pswp__button--arrow--right,.pswp__ui{visibility:visible}.pswp__preloader{width:44px;height:44px;position:absolute;top:0;left:50%;margin-left:-22px;opacity:0;-webkit-transition:opacity .25s ease-out;transition:opacity .25s ease-out;will-change:opacity;direction:ltr}.pswp--css_animation .pswp__preloader--active,.pswp__preloader--active,.pswp__ui{opacity:1}.pswp__preloader__icn{width:20px;height:20px;margin:12px}.pswp__preloader--active .pswp__preloader__icn{background:url(../images/preloader.gif) no-repeat}.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn{-webkit-animation:.5s linear infinite clockwise;animation:.5s linear infinite clockwise}.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut{-webkit-animation:1s cubic-bezier(.4,0,.22,1) infinite donut-rotate;animation:1s cubic-bezier(.4,0,.22,1) infinite donut-rotate}.pswp--css_animation .pswp__preloader__icn{background:0 0;opacity:.75;width:14px;height:14px;position:absolute;left:15px;top:15px;margin:0}.pswp--css_animation .pswp__preloader__cut{position:relative;width:7px;height:14px;overflow:hidden}.pswp--css_animation .pswp__preloader__donut{-webkit-box-sizing:border-box;box-sizing:border-box;width:14px;height:14px;border:2px solid #fff;border-radius:50%;border-left-color:transparent;border-bottom-color:transparent;position:absolute;top:0;left:0;background:0 0;margin:0}@media screen and (max-width:1024px){.pswp__preloader{position:relative;left:auto;top:auto;margin:0;float:right}}@-webkit-keyframes clockwise{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes clockwise{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes donut-rotate{0%,100%{-webkit-transform:rotate(0);transform:rotate(0)}50%{-webkit-transform:rotate(-140deg);transform:rotate(-140deg)}}@keyframes donut-rotate{0%,100%{-webkit-transform:rotate(0);transform:rotate(0)}50%{-webkit-transform:rotate(-140deg);transform:rotate(-140deg)}}.pswp__ui{-webkit-font-smoothing:auto;z-index:1550}.pswp__top-bar{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;position:absolute;padding-right:1rem;left:0;top:0;height:3rem;width:100%}.pswp--has_mouse .pswp__button--arrow--left,.pswp--has_mouse .pswp__button--arrow--right,.pswp__caption,.pswp__top-bar{-webkit-backface-visibility:hidden;will-change:opacity;-webkit-transition:opacity 333ms cubic-bezier(.4, 0, .22, 1);transition:opacity 333ms cubic-bezier(.4, 0, .22, 1)}.pswp__ui--idle .pswp__button--arrow--left,.pswp__ui--idle .pswp__button--arrow--right,.pswp__ui--idle .pswp__top-bar{opacity:0}.pswp__ui--hidden .pswp__button--arrow--left,.pswp__ui--hidden .pswp__button--arrow--right,.pswp__ui--hidden .pswp__caption,.pswp__ui--hidden .pswp__top-bar{opacity:.001}.pswp__element--disabled{display:none!important}
\ No newline at end of file
diff --git a/assets/css/style.css b/assets/css/style.css
new file mode 100644
index 0000000..a78a53a
--- /dev/null
+++ b/assets/css/style.css
@@ -0,0 +1 @@
+@font-face{font-family:'JetBrains Mono';src:url('../dynamic/fonts/jetbrainsmono/jetbrainsmono.woff2') format('woff2 supports variations'),url('../dynamic/fonts/jetbrainsmono/jetbrainsmono.woff2') format('woff2-variations');font-weight:100 800;font-display:swap;font-style:normal}:root{--page-margin:20px;--page-width:864px;--navbar-height:34px;--border-radius:0;--baseline:0.25rem;--gallery-gap:0.25rem;--transition:all 0.24s ease-out;--body-font:'JetBrains Mono',monospace;--heading-font:'JetBrains Mono',monospace;--logo-font:var(--body-font);--menu-font:var(--body-font);--font-weight-normal:400;--font-weight-bold:700;--headings-weight:700;--headings-transform:none;--line-height:1.5;--letter-spacing:-0.02em;--accent:25,100%,71%;--background:248,11%,15%;--color:0,0%,100%;--highlight-color:#FFA96B;--info-color:#A8D8FF;--success-color:#6DD18C;--warning-color:#FF8789}@media all and (min-width:42.75em){:root{--page-margin:40px}}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0}article,aside,footer,header,hgroup,main,nav,section{display:block}li{list-style:none}img{height:auto;max-width:100%;vertical-align:top}button,input,select,textarea{font:inherit}address{font-style:normal}::-moz-selection{background:hsla(var(--accent),var(--alpha,1));color:hsla(var(--background),var(--alpha,1))}::selection{background:hsla(var(--accent),var(--alpha,1));color:hsla(var(--background),var(--alpha,1))}html{font-size:clamp(1rem, 1rem + 0 * ((100vw - 20rem) / 50), 1rem);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;scroll-padding-top:calc(var(--baseline) * 5)}html.no-scroll{overflow:hidden}body{background:hsla(var(--background),var(--alpha,1));color:hsla(var(--color),var(--alpha,1));font-family:var(--body-font);font-variation-settings:"wght" var(--font-weight-normal);letter-spacing:var(--letter-spacing);line-height:var(--line-height);-ms-scroll-chaining:none;overscroll-behavior:none}a{text-decoration:none}a{color:hsla(var(--accent),var(--alpha,1));-webkit-transition:var(--transition);transition:var(--transition)}a:hover{color:hsla(var(--color),var(--alpha,1));text-decoration:underline;text-decoration-thickness:0.02em;text-underline-offset:0.15em;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}a:active{color:hsla(var(--color),var(--alpha,1))}a:focus{outline:0}.invert{color:hsla(var(--color),var(--alpha,1));-webkit-transition:var(--transition);transition:var(--transition)}.invert:hover{color:hsla(var(--accent),var(--alpha,1));text-decoration:underline;text-decoration-thickness:0.02em;text-underline-offset:0.15em;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}.invert:active{color:hsla(var(--accent),var(--alpha,1))}.invert:focus{outline:0}dl,ol,p,pre,ul{margin-top:calc(var(--baseline) * 5)}blockquote,figure,hr{margin-top:calc(var(--baseline) * 8);margin-bottom:calc(var(--baseline) * 8)}pre,table{margin-top:calc(var(--baseline) * 6);margin-bottom:calc(var(--baseline) * 7)}h1,h2,h3,h4,h5,h6{color:hsla(var(--color),var(--alpha,1));font-family:var(--heading-font);font-variation-settings:"wght" var(--headings-weight);-webkit-hyphens:manual;-ms-hyphens:manual;hyphens:manual;line-height:1.3;margin-top:calc(var(--baseline) * 12);text-transform:var(--headings-transform)}.h1,h1{font-size:clamp(1.3808408252rem, 1.3808408252rem + .0920560555 * ((100vw - 20rem) / 50), 1.4728968807rem)}.h2,h2{font-size:clamp(1.2945382732rem, 1.2945382732rem + .086302552 * ((100vw - 20rem) / 50), 1.3808408252rem)}.h3,h3{font-size:clamp(1.2136296308rem, 1.2136296308rem + .0809086425 * ((100vw - 20rem) / 50), 1.2945382732rem)}.h4,h4{font-size:clamp(1.1377777785rem, 1.1377777785rem + .0758518523 * ((100vw - 20rem) / 50), 1.2136296308rem)}.h5,h5{font-size:clamp(1.066666667rem, 1.066666667rem + .0711111115 * ((100vw - 20rem) / 50), 1.1377777785rem)}.h6,h6{font-size:clamp(1rem, 1rem + .066666667 * ((100vw - 20rem) / 50), 1.066666667rem)}b,strong{font-variation-settings:"wght" var(--font-weight-bold)}blockquote{border-top:1px solid hsla(var(--accent),var(--alpha,1));border-bottom:1px solid hsla(var(--accent),var(--alpha,1));padding:calc(var(--baseline) * 6);position:relative}blockquote::before{content:">";color:hsla(var(--accent),var(--alpha,1));display:block;left:0;position:absolute}blockquote>:first-child{margin-top:0}ol,ul{margin-left:2ch}ol>li,ul>li{list-style:inherit;padding:0;position:relative}ol ol,ol ul,ul ol,ul ul{margin-top:0}dl dt{font-variation-settings:"wght" var(--font-weight-bold)}code,kbd{font-family:var(--monospace-font);background:hsla(var(--accent),var(--alpha,.2));color:hsla(var(--accent),var(--alpha,1));padding:1px 6px;margin:0 2px;font-size:.9374999997rem}code code,code kbd,kbd code,kbd kbd{background:0 0;padding:0;margin:0}pre{border:1px solid hsla(var(--color),.1);border-radius:var(--border-radius);color:hsla(var(--accent),var(--alpha,1));font-size:.9374999997rem;max-height:var(--pre-height);overflow:auto;padding:calc(var(--baseline) * 5);white-space:pre-wrap;word-wrap:break-word}pre>code{background:0 0;font-size:inherit;padding:0}table{border:1px dashed hsla(var(--accent),var(--alpha,1));border-collapse:collapse;vertical-align:top;text-align:left;width:100%}table td,table th{border:1px dashed hsla(var(--accent),var(--alpha,1));padding:calc(var(--baseline) * 2.5) calc(var(--baseline) * 4)}table th{font-variation-settings:"wght" var(--font-weight-bold);color:hsla(var(--accent),var(--alpha,1))}figcaption{clear:both;color:var(--gray);font-size:.7241964329rem;margin:calc(var(--baseline) * 2.5) 0 0;text-align:center}sub,sup{font-size:65%}small{font-size:.8789062495rem}.separator,hr{background:0 0;border:none;height:auto;line-height:1;max-width:none;position:relative;text-align:center}.separator::before,hr::before{content:"";font-size:1.2136296308rem;font-variation-settings:"wght" var(--font-weight-bold);letter-spacing:1.1377777785rem;padding-left:1.1377777785rem}.separator:not(.separator--dots):not(.separator--dot)::after,hr:not(.separator--dots):not(.separator--dot)::after{border-top:1px solid hsla(var(--color),.1);content:"";height:1px;position:absolute;width:100%;top:50%;left:0}.separator--dots::before{content:"···";color:hsla(var(--accent),var(--alpha,1))}.separator--dot::before{content:"·";color:hsla(var(--accent),var(--alpha,1))}.button-container{display:table;margin-left:auto;margin-right:auto}.btn,[type=button],[type=submit],a.btn,button{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:hsla(var(--accent),var(--alpha,1));border:1px solid hsla(var(--accent),var(--alpha,1));border-radius:8;color:hsla(var(--background),1);cursor:pointer;display:inline-flex;flex:1;font:inherit;font-variation-settings:"wght" var(--font-weight-bold);justify-content:center;margin:5px 0;outline:0;padding:8px 18px;position:relative;text-align:center;text-decoration:none;-webkit-transition:var(--transition);transition:var(--transition)}@media all and (min-width:42.75em){.btn,[type=button],[type=submit],a.btn,button{flex:0}}.btn:hover,[type=button]:hover,[type=submit]:hover,a.btn:hover,button:hover{--alpha:.8}.btn--outline,a.btn--outline{background:0 0;-webkit-box-shadow:none;box-shadow:none;color:hsla(var(--accent),var(--alpha,1))}.btn--outline:hover,a.btn--outline:hover{-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}.btn--link,a.btn--link{background:0 0;border:none;color:hsla(var(--accent),var(--alpha,1))}a.read-more{display:inline-flex;font-variation-settings:"wght" var(--font-weight-bold);margin:calc(var(--baseline) * 7) 0 calc(var(--baseline) * 5);max-width:100%}[type=button],[type=submit],button{-webkit-appearance:none;-moz-appearance:none}::-webkit-input-placeholder{color:hsla(var(--accent),var(--alpha,.7))}::-moz-placeholder{color:hsla(var(--accent),var(--alpha,.7))}:-ms-input-placeholder{color:hsla(var(--accent),var(--alpha,.7))}::-ms-input-placeholder{color:hsla(var(--accent),var(--alpha,.7))}::placeholder{color:hsla(var(--accent),var(--alpha,.7))}input,select,textarea{background:0 0;color:hsla(var(--accent),var(--alpha,1));border:1px solid hsla(var(--accent),var(--alpha,1));border-radius:0;padding:10px;margin:5px 0;font:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none}input :active,input:focus,select :active,select:focus,textarea :active,textarea:focus{border-color:hsla(var(--color),var(--alpha,1));outline:1px solid hsla(var(--color),var(--alpha,1))}input:active,select:active,textarea:active{-webkit-box-shadow:none;box-shadow:none}select{background:hsla(var(--background),var(--alpha,1))}select option{background:hsla(var(--background),var(--alpha,1))}input[type=checkbox],input[type=radio]{vertical-align:middle;padding:10px;-webkit-box-shadow:inset 0 0 0 3px hsla(var(--background),var(--alpha,1));box-shadow:inset 0 0 0 3px hsla(var(--background),var(--alpha,1))}input[type=checkbox]:checked,input[type=radio]:checked{background:hsla(var(--accent),var(--alpha,1))}input[type=radio]{border-radius:50%}.header{display:flex}@media all and (max-width:42.6875em){.header{justify-content:space-between;gap:10px}}@media all and (min-width:42.75em){.header{flex-direction:column;position:relative}}.header__logo{display:flex;flex:1;margin-bottom:calc(var(--baseline) * 5)}.header__logo::after{content:"";background:repeating-linear-gradient(90deg,hsla(var(--accent),var(--alpha,1)),hsla(var(--accent),var(--alpha,1)) 2px,transparent 0,transparent 10px);display:block;width:100%;right:10px}.header__logo a{flex:0 0 auto;max-width:100%;text-decoration:none}.logo{align-items:center;background:hsla(var(--accent),var(--alpha,1));color:hsla(var(--background),var(--alpha,1))!important;display:flex;height:var(--navbar-height);padding:5px 10px;text-decoration:none}.logo>img{height:inherit;-o-object-fit:contain;object-fit:contain;width:auto}.navbar{position:relative}@media all and (min-width:42.75em){.navbar{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:calc(var(--baseline) * 5)}}.navbar .navbar__menu{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}@media all and (max-width:42.6875em){.navbar .navbar__menu{display:none}}.navbar .navbar__menu li{font-family:var(--menu-font);display:block;line-height:var(--line-height);font-variation-settings:"wght" var(--font-weight-normal);margin:0;padding:0;position:relative;width:auto}.navbar .navbar__menu li a{color:hsla(var(--color),var(--alpha,1));display:block;-webkit-transition:all .24s ease-out;transition:all .24s ease-out;text-decoration:underline;text-decoration-thickness:0.02em;text-underline-offset:0.15em;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}.navbar .navbar__menu li a:active,.navbar .navbar__menu li a:focus,.navbar .navbar__menu li a:hover{color:hsla(var(--accent),var(--alpha,1))}.navbar .navbar__menu li span{color:hsla(var(--color),var(--alpha,1));cursor:default;display:block}.navbar .navbar__menu>li{margin:0 1.25rem calc(var(--baseline) * 2.5) 0}.navbar .navbar__menu>li>[aria-haspopup=true]:not(a){color:hsla(var(--accent),var(--alpha,1))}.navbar .navbar__menu>li>[aria-haspopup=true]:not(a)::after{content:"";right:.25rem;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid hsla(var(--accent),var(--alpha,1));position:absolute;top:50%;-webkit-transform:translate(0,-50%);transform:translate(0,-50%)}.navbar .navbar__menu>li>[aria-haspopup=true]{padding:0 1.25rem 0 0}.navbar .navbar__menu>li>[aria-haspopup=true]::after{content:"";right:.25rem;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid hsla(var(--color),var(--alpha,1));position:absolute;top:50%;-webkit-transform:translate(0,-50%);transform:translate(0,-50%)}.navbar .navbar__menu>li:hover>[aria-haspopup=true]{color:hsla(var(--accent),var(--alpha,1))}.navbar .navbar__menu>li:hover>[aria-haspopup=true]::after{border-top-color:hsla(var(--accent),var(--alpha,1))}.navbar .has-submenu:active>.navbar__submenu,.navbar .has-submenu:focus>.navbar__submenu,.navbar .has-submenu:hover>.navbar__submenu{left:0;opacity:1;-webkit-transform:scale(1);transform:scale(1);visibility:visible;margin-top:calc(var(--baseline) * 2)}.navbar .has-submenu:active>.navbar__submenu:before,.navbar .has-submenu:focus>.navbar__submenu:before,.navbar .has-submenu:hover>.navbar__submenu:before{content:"";height:calc(var(--baseline) * 3);left:0;position:absolute;width:100%;top:calc(var(--baseline) * -3)}.navbar .has-submenu:active>.navbar__submenu.is-right-submenu,.navbar .has-submenu:focus>.navbar__submenu.is-right-submenu,.navbar .has-submenu:hover>.navbar__submenu.is-right-submenu{left:auto;right:0;-webkit-transform-origin:right top;transform-origin:right top}.navbar .has-submenu .has-submenu:active>.navbar__submenu,.navbar .has-submenu .has-submenu:focus>.navbar__submenu,.navbar .has-submenu .has-submenu:hover>.navbar__submenu{top:0;margin-top:0}.navbar .has-submenu .has-submenu:active>.navbar__submenu.is-right-submenu,.navbar .has-submenu .has-submenu:focus>.navbar__submenu.is-right-submenu,.navbar .has-submenu .has-submenu:hover>.navbar__submenu.is-right-submenu{top:0;margin-top:0}.navbar .navbar__submenu{background:hsla(var(--background),var(--alpha,1));-webkit-box-shadow:0 10px rgba(34,33,41,.8),-10px 10px rgba(34,33,41,.8),10px 10px rgba(34,33,41,.8);box-shadow:0 10px rgba(34,33,41,.8),-10px 10px rgba(34,33,41,.8),10px 10px rgba(34,33,41,.8);border-radius:var(--border-radius);border:2px solid;left:-9999px;list-style-type:none;margin:0;padding:10px;position:absolute;visibility:hidden;white-space:nowrap;z-index:1;opacity:0;-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 top;transform-origin:0 top;-webkit-transition:opacity .15s,-webkit-transform .3s cubic-bezier(.275, 1.375, .8, 1);transition:opacity .15s,-webkit-transform .3s cubic-bezier(.275, 1.375, .8, 1);transition:opacity .15s,transform .3s cubic-bezier(.275, 1.375, .8, 1);transition:opacity .15s,transform .3s cubic-bezier(.275, 1.375, .8, 1),-webkit-transform .3s cubic-bezier(.275, 1.375, .8, 1)}.navbar .navbar__submenu__submenu{z-index:2}.navbar .navbar__submenu li a,.navbar .navbar__submenu li span[aria-haspopup=true]{padding:calc(var(--baseline) * 2);-webkit-transition:all .24s ease;transition:all .24s ease}.navbar .navbar__submenu li a:active,.navbar .navbar__submenu li a:focus,.navbar .navbar__submenu li a:hover,.navbar .navbar__submenu li span[aria-haspopup=true]:active,.navbar .navbar__submenu li span[aria-haspopup=true]:focus,.navbar .navbar__submenu li span[aria-haspopup=true]:hover{color:hsla(var(--accent),var(--alpha,1))}.navbar .navbar__submenu li span{color:hsla(var(--color),var(--alpha,1));padding:calc(var(--baseline) * 2)}.navbar .navbar__submenu li:hover>a,.navbar .navbar__submenu li:hover>span[aria-haspopup=true]{color:hsla(var(--accent),var(--alpha,1))}.navbar .navbar__toggle{background:hsla(var(--background),var(--alpha,1));-webkit-box-shadow:none;box-shadow:none;border:2px solid hsla(var(--accent),var(--alpha,1));border-radius:var(--border-radius);color:hsla(var(--accent),var(--alpha,1));cursor:pointer;display:block;line-height:1;margin:0;overflow:visible;padding:7px 12px;position:relative;right:0;text-transform:none;z-index:2004}@media all and (min-width:42.75em){.navbar .navbar__toggle{display:none}}.navbar_mobile_overlay{background:hsla(var(--background),var(--alpha,1));height:100vh;left:0;opacity:1;overflow:auto;pointer-events:auto;position:fixed;top:4.4rem;-webkit-transition:all .3s cubic-bezier(0, 0, .3, 1);transition:all .3s cubic-bezier(0, 0, .3, 1);width:100%;z-index:1001}.navbar_mobile_overlay.is-hidden{opacity:0;pointer-events:none}.navbar_mobile_overlay .navbar__menu{margin:24px}.navbar_mobile_overlay .navbar__menu li{list-style:none;margin:0;padding:0;text-align:center}.navbar_mobile_overlay .navbar__menu li a{color:hsla(var(--color),var(--alpha,1));display:block;padding:10px 20px 10px 0;position:relative;text-decoration:underline;text-decoration-thickness:0.02em;text-underline-offset:0.15em;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}.navbar_mobile_overlay .navbar__menu li a:active,.navbar_mobile_overlay .navbar__menu li a:focus,.navbar_mobile_overlay .navbar__menu li a:hover{color:hsla(var(--accent),var(--alpha,1))}.navbar_mobile_overlay .navbar__menu li .is-separator{color:hsla(var(--accent),var(--alpha,1));cursor:default;display:block;position:relative;padding:10px 20px 10px 0}.navbar_mobile_overlay .navbar__menu li [aria-haspopup=true]::after{content:"";width:0;height:0;border-style:solid;border-width:4px 4px 0 4px;border-color:hsla(var(--accent),var(--alpha,1)) transparent transparent transparent;left:.5333333333rem;top:12px;position:relative}.navbar_mobile_overlay .navbar__submenu{margin:0;padding:0;visibility:hidden}.navbar_mobile_overlay .navbar__submenu[aria-hidden=false]{visibility:visible}.navbar_mobile_overlay .navbar__submenu_wrapper{height:0;opacity:0;overflow:hidden;-webkit-transition:all .3s cubic-bezier(.275, 1.375, .8, 1);transition:all .3s cubic-bezier(.275, 1.375, .8, 1)}.navbar_mobile_overlay .navbar__submenu_wrapper.is-active{height:auto;opacity:1}.navbar_mobile_sidebar{background:hsla(var(--background),var(--alpha,1));-webkit-box-shadow:0 0 5px rgba(0,0,0,.25);box-shadow:0 0 5px rgba(0,0,0,.25);height:100vh;left:0;max-width:400px;overflow:auto;position:fixed;top:0;-webkit-transition:all .3s cubic-bezier(0, 0, .3, 1);transition:all .3s cubic-bezier(0, 0, .3, 1);width:80%;z-index:1001}.navbar_mobile_sidebar.is-hidden{left:-400px}.navbar_mobile_sidebar .navbar__menu{margin:24px}.navbar_mobile_sidebar .navbar__menu li{font-family:var(--menu-font);font-size:16px;list-style:none;line-height:1.3;margin:0;padding:0}.navbar_mobile_sidebar .navbar__menu li a{color:hsla(var(--color),var(--alpha,1));display:block;padding:10px 20px 10px 0;position:relative;text-decoration:underline;text-decoration-thickness:0.02em;text-underline-offset:0.15em;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}.navbar_mobile_sidebar .navbar__menu li a:active,.navbar_mobile_sidebar .navbar__menu li a:focus,.navbar_mobile_sidebar .navbar__menu li a:hover{color:hsla(var(--accent),var(--alpha,1))}.navbar_mobile_sidebar .navbar__menu li .is-separator{color:hsla(var(--accent),var(--alpha,1));cursor:default;display:block;position:relative;padding:10px 20px 10px 0}.navbar_mobile_sidebar .navbar__menu li [aria-haspopup=true]::after{content:"";width:0;height:0;border-style:solid;border-width:4px 4px 0 4px;border-color:hsla(var(--accent),var(--alpha,1)) transparent transparent transparent;right:0;top:18px;position:absolute}.navbar_mobile_sidebar .navbar__submenu{margin:0 0 0 24px;padding:0;visibility:hidden}.navbar_mobile_sidebar .navbar__submenu[aria-hidden=false]{visibility:visible}.navbar_mobile_sidebar .navbar__submenu_wrapper{height:0;opacity:0;overflow:hidden;-webkit-transition:all .3s cubic-bezier(.275, 1.375, .8, 1);transition:all .3s cubic-bezier(.275, 1.375, .8, 1)}.navbar_mobile_sidebar .navbar__submenu_wrapper.is-active{height:auto;opacity:1}.navbar_mobile_sidebar__overlay{background:rgba(0,0,0,.5);height:100%;opacity:1;pointer-events:auto;position:fixed;top:0;-webkit-transition:all .3s cubic-bezier(0, 0, .3, 1);transition:all .3s cubic-bezier(0, 0, .3, 1);width:100%;z-index:10}.navbar_mobile_sidebar__overlay.is-hidden{opacity:0;pointer-events:none}.container{border-right:1px solid hsla(var(--color),var(--alpha,.1));display:flex;flex-direction:column;padding:var(--page-margin);max-width:var(--page-width);min-height:100vh}.container--center{border-left:1px solid hsla(var(--color),var(--alpha,.1));margin:0 auto}.content{display:flex;flex-direction:column}.content ul:not(.post__toc ul){list-style:none}.content ul:not(.post__toc ul) li:not(:empty):before{content:"-";position:absolute;left:-20px;color:hsla(var(--accent),var(--alpha,1))}.content ol:not(.post__toc ul){list-style:none;counter-reset:li}.content ol:not(.post__toc ul)>li{counter-increment:li}.content ol:not(.post__toc ul)>li:before{content:counter(li);position:absolute;right:calc(100% + 10px);color:hsla(var(--accent),var(--alpha,1));display:inline-block;text-align:right}.content ol:not(.post__toc ul)>li>ol{margin-left:2ch}.content ol:not(.post__toc ul)>li>ol>li{counter-increment:li}.content ol:not(.post__toc ul)>li>ol>li:before{content:counters(li, ".") " "}.hero{margin-top:calc(var(--baseline) * 5)}.framed{border:1px solid hsla(var(--accent),var(--alpha,1));padding:calc(var(--baseline) * 5)}@media all and (min-width:42.75em){.framed{padding:calc(var(--baseline) * 7.5)}}.framed :first-child{margin-top:0}.framed :last-child{margin-bottom:0}.posts{width:100%}.post{width:100%;text-align:left;margin:calc(var(--baseline) * 5) auto;padding:calc(var(--baseline) * 5) 0}.post:not(:last-of-type){border-bottom:1px solid hsla(var(--color),var(--alpha,.1))}.post__content{margin-top:calc(var(--baseline) * 7.5)}.post__meta{--alpha:.7;margin-bottom:calc(var(--baseline) * 2.5);color:hsla(var(--accent),var(--alpha,1))}.post__meta>:not(:first-child)::before{content:"::";color:hsla(var(--accent),var(--alpha,1));display:inline-block;margin-right:calc(var(--baseline) * 2)}.post__title{border-bottom:3px dotted hsla(var(--accent),var(--alpha,1));color:hsla(var(--accent),var(--alpha,1));position:relative;margin:0 0 calc(var(--baseline) * 4);padding-bottom:calc(var(--baseline) * 4)}@media all and (min-width:42.75em){.post__title{margin-top:calc(var(--baseline) * 10)}}.post__title:after{content:"";position:absolute;bottom:2px;display:block;width:100%;border-bottom:3px dotted hsla(var(--accent),var(--alpha,1))}.post__title a{text-decoration:none}.post__tags{--alpha:.5;display:block}.post__tags a{text-decoration:none}.post__tags a::before{content:"#"}.post__tags a:hover{--alpha:.7}.post__cover{border:10px solid hsla(var(--accent),var(--alpha,1));padding:calc(var(--baseline) * 2.5)}@media all and (min-width:42.75em){.post__cover{padding:calc(var(--baseline) * 5);border-width:20px}}.post__image{display:inline-block;background:0 0;margin:calc(var(--baseline) * 10) 0 calc(var(--baseline) * 5)}.post__image>img{display:inline-block}.post__image--left{float:left;margin-top:calc(var(--baseline) * 6);margin-right:calc(var(--baseline) * 6);max-width:40%}.post__image--right{float:right;margin-top:calc(var(--baseline) * 6);margin-left:calc(var(--baseline) * 6);max-width:40%}.post__image--center{display:block;margin-left:auto;margin-right:auto;margin-bottom:calc(var(--baseline) * 10);text-align:center}.post__image--full,.post__image--wide{display:block}@media all and (min-width:42.75em){.post__image--full,.post__image--wide{margin-left:calc(-1 * var(--page-margin));margin-right:calc(-1 * var(--page-margin));margin-bottom:calc(var(--baseline) * 10);text-align:center}.post__image--full a,.post__image--full img,.post__image--wide a,.post__image--wide img{display:block;height:auto;width:100%}}.post__image+.post__content,.post__image+.post__entry{margin-top:calc(var(--baseline) * 5)}.post__entry{margin-top:calc(var(--baseline) * 7.5)}.post__entry>:first-child{margin-top:0}.post__last-updated{color:hsla(var(--color),var(--alpha,.5));font-size:.8789062495rem;margin-top:calc(var(--baseline) * 5)}.post__share{display:flex;flex-wrap:wrap;gap:var(--baseline) calc(var(--baseline) * 6);margin-top:calc(var(--baseline) * 10)}.post__share>a{--alpha:.5;padding:6px 0}.post__share>a span{font-family:var(--menu-font);font-size:.8789062495rem;margin-left:2px}.post__share>a svg{--alpha:.7;fill:hsla(var(--accent),var(--alpha,1));height:18px;pointer-events:none;width:18px;vertical-align:middle}.post__share>a:hover{--alpha:1;-webkit-transform:translate3d(0,-2px,0);transform:translate3d(0,-2px,0);text-decoration:none}.post__comments{overflow:hidden}.post__iframe,.post__video{display:block;margin-top:calc(var(--baseline) * 8);margin-bottom:calc(var(--baseline) * 8);overflow:hidden;padding:0;position:relative;width:100%}.post__iframe::before,.post__video::before{display:block;content:"";padding-top:var(--embed-aspect-ratio)}.post__iframe iframe,.post__iframe video,.post__video iframe,.post__video video{border:none;height:100%;left:0;position:absolute;top:0;bottom:0;width:100%}.post__toc{margin:calc(var(--baseline) * 5) var(--baseline) calc(var(--baseline) * 8)}.post__toc h3{font-size:1rem;margin:0}.post__toc ul{counter-reset:item;list-style:decimal;margin:calc(var(--baseline) * 3) 0 0 3ch}.post__toc ul li{counter-increment:item;padding:0}.post__toc ul ul{margin-top:0}.post__toc ul ul li{display:block}.post__toc ul ul li:before{content:counters(item, ".") ". ";margin-left:-3ch}.list{margin-top:calc(var(--baseline) * 10)}.banner--before-post{margin-top:calc(var(--baseline) * 5)}.banner--after-post{margin-bottom:calc(var(--baseline) * 10)}.page__title sup{color:hsla(var(--color),var(--alpha,.7));font-variation-settings:"wght" var(--font-weight-normal)}.page--author__header{background-color:hsla(var(--color),var(--alpha,.05));padding:calc(var(--baseline) * 5)}@media all and (min-width:42.75em){.page--author__header{padding:calc(var(--baseline) * 7.5)}}.page--author__top{align-items:center;display:flex;gap:1rem}.page--author__top h1{margin:0}.page--author__avatar{border-radius:50%;height:3rem;width:3rem}.page--author__website{margin-top:calc(var(--baseline) * 5)}.page--error__title{color:hsla(var(--accent),var(--alpha,1))}.align-left{text-align:left}.align-right{text-align:right}.align-center{text-align:center}.align-justify{text-align:justify}.msg{background-color:hsla(var(--color),var(--alpha,.05));border-left:2px solid;font-size:.9374999997rem;padding:calc(var(--baseline) * 5);position:relative}.msg--highlight{border-left-color:var(--highlight-color)}.msg--info{border-left-color:var(--info-color)}.msg--success{border-left-color:var(--success-color)}.msg--warning{border-left-color:var(--warning-color)}.dropcap:first-letter{color:hsla(var(--accent),var(--alpha,1));float:left;font-size:3.6355864383rem;line-height:.7;margin-right:.5rem;padding:calc(var(--baseline) * 2) calc(var(--baseline) * 2) calc(var(--baseline) * 5) 0}.pec-wrapper{height:100%;left:0;position:absolute;top:0;width:100%}.pec-overlay{align-items:center;border:1px solid hsla(var(--accent),var(--alpha,1));font-size:14px;display:none;height:inherit;justify-content:center;line-height:1.4;padding:1rem;position:relative;text-align:center}@media all and (min-width:42.75em){.pec-overlay{font-size:16px;line-height:var(--line-height);padding:1rem 2rem}}.pec-overlay.is-active{display:flex}.pec-overlay-inner p{margin:0 0 1rem}.facebook svg{fill:#0866FF}.twitter svg{fill:#000000}.instagram svg{fill:#000000}.vimeo svg{fill:#1ab7ea}.pinterest svg{fill:#bd081c}.youtube svg{fill:#cd201f}.linkedin svg{fill:#007bb6}.buffer svg{fill:#333333}.mix svg{fill:#fd8235}.whatsapp svg{fill:#25D366}.pagination{margin-top:calc(var(--baseline) * 12)}.pagination__title{color:hsla(var(--color),var(--alpha,.3));font-size:.7724761953rem;letter-spacing:.1em;margin:calc(var(--baseline) * 25) 0 calc(var(--baseline) * 6);position:relative;text-align:center;text-transform:uppercase}.pagination__title::after{border-top:1px solid hsla(var(--color),.1);content:"";height:1px;position:absolute;width:100%;top:50%;left:0;z-index:-1}.pagination__title>span{background:hsla(var(--background),var(--alpha,1));padding:5px 10px}.pagination__buttons{display:flex;align-items:center;justify-content:center;flex-flow:row wrap;gap:10px}.pagination__buttons a{text-decoration:none}.pagination .btn,.pagination [type=button],.pagination [type=submit],.pagination button{max-width:100%}@media all and (min-width:42.75em){.pagination .btn,.pagination [type=button],.pagination [type=submit],.pagination button{max-width:49%}}.pagination .btn__text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pagination .btn.next .btn__icon,.pagination .next[type=button] .btn__icon,.pagination .next[type=submit] .btn__icon,.pagination button.next .btn__icon{margin-left:8px}.pagination .btn.previous .btn__icon,.pagination .previous[type=button] .btn__icon,.pagination .previous[type=submit] .btn__icon,.pagination button.previous .btn__icon{margin-right:8px}.footer{color:hsla(var(--color),var(--alpha,.5));padding:calc(var(--baseline) * 10) 0;flex-grow:0}.footer a{text-decoration:underline;text-decoration-thickness:0.02em;text-underline-offset:0.15em;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}.footer a{color:hsla(var(--color),var(--alpha,.5));-webkit-transition:var(--transition);transition:var(--transition)}.footer a:hover{color:hsla(var(--color),var(--alpha,1));text-decoration:underline;text-decoration-thickness:0.02em;text-underline-offset:0.15em;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}.footer a:active{color:hsla(var(--color),var(--alpha,1))}.footer a:focus{outline:0}.footer__inner{align-items:center;display:flex;flex-direction:column;margin:0;max-width:100%;text-align:center}.footer__copyright>:first-child{margin-top:0}.footer__social{margin-top:calc(var(--baseline) * 5)}.footer__social a{text-decoration:none!important}.footer__social svg{fill:hsla(var(--color),var(--alpha,0.5));height:.9374999997rem;margin:0 .2rem;-webkit-transition:all .12s linear 0s;transition:all .12s linear 0s;width:.9374999997rem}.footer__social svg:hover{fill:hsla(var(--accent),var(--alpha,1))}.gallery{margin:calc(var(--baseline) * 8) calc(var(--gallery-gap) * -1)}@media all and (min-width:20em){.gallery{display:flex;flex-wrap:wrap}}@media all and (min-width:42.75em){.gallery-wrapper--full,.gallery-wrapper--wide{margin-left:calc(-1 * var(--page-margin));margin-right:calc(-1 * var(--page-margin))}.gallery-wrapper--full .gallery,.gallery-wrapper--wide .gallery{width:calc(100% + var(--gallery-gap) * 2)}}@media all and (min-width:20em){.gallery[data-columns="1"] .gallery__item{flex:1 0 100%}}@media all and (min-width:30em){.gallery[data-columns="2"] .gallery__item{flex:1 0 50%}}@media all and (min-width:42.75em){.gallery[data-columns="3"] .gallery__item{flex:1 0 33.333%}}@media all and (min-width:56.25em){.gallery[data-columns="4"] .gallery__item{flex:0 1 25%}}@media all and (min-width:56.25em){.gallery[data-columns="5"] .gallery__item{flex:0 1 20%}}@media all and (min-width:56.25em){.gallery[data-columns="6"] .gallery__item{flex:0 1 16.666%}}@media all and (min-width:56.25em){.gallery[data-columns="7"] .gallery__item{flex:1 0 14.285%}}@media all and (min-width:56.25em){.gallery[data-columns="8"] .gallery__item{flex:1 0 12.5%}}.gallery__item{margin:0;padding:var(--gallery-gap);position:relative}@media all and (min-width:20em){.gallery__item{flex:1 0 50%}}@media all and (min-width:30em){.gallery__item{flex:1 0 33.333%}}@media all and (min-width:42.75em){.gallery__item{flex:1 0 25%}}.gallery__item a{display:block;height:100%;width:100%}.gallery__item a::after{background:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.4)),to(rgba(0,0,0,0)));background:linear-gradient(to top,rgba(0,0,0,.4) 0,rgba(0,0,0,0) 100%);bottom:var(--gallery-gap);content:"";display:block;opacity:0;left:var(--gallery-gap);height:calc(100% - var(--gallery-gap) * 2);position:absolute;right:var(--gallery-gap);top:var(--gallery-gap);-webkit-transition:all .24s ease-out;transition:all .24s ease-out;width:calc(100% - var(--gallery-gap) * 2)}.gallery__item a:hover::after{opacity:1}.gallery__item img{display:block;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.gallery__item figcaption{bottom:1.2rem;color:var(--color);left:50%;opacity:0;position:absolute;text-align:center;-webkit-transform:translate(-50%,1.2rem);transform:translate(-50%,1.2rem);-webkit-transition:all .24s ease-out;transition:all .24s ease-out}.gallery__item:hover figcaption{opacity:1;-webkit-transform:translate(-50%,0);transform:translate(-50%,0)}.pswp--dark .pswp__bg{background:#000}.pswp--light .pswp__bg{background:var(--color)}.pswp--light .pswp__counter{color:hsla(var(--color),var(--alpha,1))}.pswp--light .pswp__caption__center{color:hsla(var(--color),var(--alpha,1))}.pswp .pswp__button{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;transform:none}img[loading]{opacity:0}img.is-loaded{opacity:1;transition:opacity 1s cubic-bezier(.215, .61, .355, 1)}
\ No newline at end of file
diff --git a/assets/dynamic/fonts/jetbrainsmono/jetbrainsmono.woff2 b/assets/dynamic/fonts/jetbrainsmono/jetbrainsmono.woff2
new file mode 100644
index 0000000..4ace812
Binary files /dev/null and b/assets/dynamic/fonts/jetbrainsmono/jetbrainsmono.woff2 differ
diff --git a/assets/js/photoswipe-ui-default.min.js b/assets/js/photoswipe-ui-default.min.js
new file mode 100644
index 0000000..ab7bedc
--- /dev/null
+++ b/assets/js/photoswipe-ui-default.min.js
@@ -0,0 +1,4 @@
+/*! PhotoSwipe Default UI - 4.1.3 - 2019-01-08
+* http://photoswipe.com
+* Copyright (c) 2019 Dmitry Semenov; */
+!function(a,b){"function"==typeof define&&define.amd?define(b):"object"==typeof exports?module.exports=b():a.PhotoSwipeUI_Default=b()}(this,function(){"use strict";var a=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=this,w=!1,x=!0,y=!0,z={barsSize:{top:44,bottom:"auto"},closeElClasses:["item","caption","zoom-wrap","ui","top-bar"],timeToIdle:4e3,timeToIdleOutside:1e3,loadingIndicatorDelay:1e3,addCaptionHTMLFn:function(a,b){return a.title?(b.children[0].innerHTML=a.title,!0):(b.children[0].innerHTML="",!1)},closeEl:!0,captionEl:!0,fullscreenEl:!0,zoomEl:!0,shareEl:!0,counterEl:!0,arrowEl:!0,preloaderEl:!0,tapToClose:!1,tapToToggleControls:!0,clickToCloseNonZoomable:!0,shareButtons:[{id:"facebook",label:"Share on Facebook",url:"https://www.facebook.com/sharer/sharer.php?u={{url}}"},{id:"twitter",label:"Tweet",url:"https://twitter.com/intent/tweet?text={{text}}&url={{url}}"},{id:"pinterest",label:"Pin it",url:"http://www.pinterest.com/pin/create/button/?url={{url}}&media={{image_url}}&description={{text}}"},{id:"download",label:"Download image",url:"{{raw_image_url}}",download:!0}],getImageURLForShare:function(){return a.currItem.src||""},getPageURLForShare:function(){return window.location.href},getTextForShare:function(){return a.currItem.title||""},indexIndicatorSep:" / ",fitControlsWidth:1200},A=function(a){if(r)return!0;a=a||window.event,q.timeToIdle&&q.mouseUsed&&!k&&K();for(var c,d,e=a.target||a.srcElement,f=e.getAttribute("class")||"",g=0;g-1&&(c.onTap(),d=!0);if(d){a.stopPropagation&&a.stopPropagation(),r=!0;var h=b.features.isOldAndroid?600:30;s=setTimeout(function(){r=!1},h)}},B=function(){return!a.likelyTouchDevice||q.mouseUsed||screen.width>q.fitControlsWidth},C=function(a,c,d){b[(d?"add":"remove")+"Class"](a,"pswp__"+c)},D=function(){var a=1===q.getNumItemsFn();a!==p&&(C(d,"ui--one-slide",a),p=a)},E=function(){C(i,"share-modal--hidden",y)},F=function(){return y=!y,y?(b.removeClass(i,"pswp__share-modal--fade-in"),setTimeout(function(){y&&E()},300)):(E(),setTimeout(function(){y||b.addClass(i,"pswp__share-modal--fade-in")},30)),y||H(),!1},G=function(b){b=b||window.event;var c=b.target||b.srcElement;return a.shout("shareLinkClick",b,c),!!c.href&&(!!c.hasAttribute("download")||(window.open(c.href,"pswp_share","scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=550,height=420,top=100,left="+(window.screen?Math.round(screen.width/2-275):100)),y||F(),!1))},H=function(){for(var a,b,c,d,e,f="",g=0;g"+a.label+"",q.parseShareButtonOut&&(f=q.parseShareButtonOut(a,f));i.children[0].innerHTML=f,i.children[0].onclick=G},I=function(a){for(var c=0;c=.95&&v.showControls()});var a;l("onPinchClose",function(b){x&&b<.9?(v.hideControls(),a=!0):a&&!x&&b>.9&&v.showControls()}),l("zoomGestureEnded",function(){a=!1,a&&!x&&v.showControls()})},S=[{name:"caption",option:"captionEl",onInit:function(a){e=a}},{name:"share-modal",option:"shareEl",onInit:function(a){i=a},onTap:function(){F()}},{name:"button--share",option:"shareEl",onInit:function(a){h=a},onTap:function(){F()}},{name:"button--zoom",option:"zoomEl",onTap:a.toggleDesktopZoom},{name:"counter",option:"counterEl",onInit:function(a){g=a}},{name:"button--close",option:"closeEl",onTap:a.close},{name:"button--arrow--left",option:"arrowEl",onTap:a.prev},{name:"button--arrow--right",option:"arrowEl",onTap:a.next},{name:"button--fs",option:"fullscreenEl",onTap:function(){c.isFullscreen()?c.exit():c.enter()}},{name:"preloader",option:"preloaderEl",onInit:function(a){m=a}}],T=function(){var a,c,e,f=function(d){if(d)for(var f=d.length,g=0;g-1&&(q[e.option]?(b.removeClass(a,"pswp__element--disabled"),e.onInit&&e.onInit(a)):b.addClass(a,"pswp__element--disabled"))}};f(d.children);var g=b.getChildByClass(d,"pswp__top-bar");g&&f(g.children)};v.init=function(){b.extend(a.options,z,!0),q=a.options,d=b.getChildByClass(a.scrollWrap,"pswp__ui"),l=a.listen,R(),l("beforeChange",v.update),l("doubleTap",function(b){var c=a.currItem.initialZoomLevel;a.getZoomLevel()!==c?a.zoomTo(c,b,333):a.zoomTo(q.getDoubleTapZoom(!1,a.currItem),b,333)}),l("preventDragEvent",function(a,b,c){var d=a.target||a.srcElement;d&&d.getAttribute("class")&&a.type.indexOf("mouse")>-1&&(d.getAttribute("class").indexOf("__caption")>0||/(SMALL|STRONG|EM)/i.test(d.tagName))&&(c.prevent=!1)}),l("bindEvents",function(){b.bind(d,"pswpTap click",A),b.bind(a.scrollWrap,"pswpTap",v.onGlobalTap),a.likelyTouchDevice||b.bind(a.scrollWrap,"mouseover",v.onMouseOver)}),l("unbindEvents",function(){y||F(),t&&clearInterval(t),b.unbind(document,"mouseout",L),b.unbind(document,"mousemove",K),b.unbind(d,"pswpTap click",A),b.unbind(a.scrollWrap,"pswpTap",v.onGlobalTap),b.unbind(a.scrollWrap,"mouseover",v.onMouseOver),c&&(b.unbind(document,c.eventK,v.updateFullscreen),c.isFullscreen()&&(q.hideAnimationDuration=0,c.exit()),c=null)}),l("destroy",function(){q.captionEl&&(f&&d.removeChild(f),b.removeClass(e,"pswp__caption--empty")),i&&(i.children[0].onclick=null),b.removeClass(d,"pswp__ui--over-close"),b.addClass(d,"pswp__ui--hidden"),v.setIdle(!1)}),q.showAnimationDuration||b.removeClass(d,"pswp__ui--hidden"),l("initialZoomIn",function(){q.showAnimationDuration&&b.removeClass(d,"pswp__ui--hidden")}),l("initialZoomOut",function(){b.addClass(d,"pswp__ui--hidden")}),l("parseVerticalMargin",P),T(),q.shareEl&&h&&i&&(y=!0),D(),Q(),M(),N()},v.setIdle=function(a){k=a,C(d,"ui--idle",a)},v.update=function(){x&&a.currItem?(v.updateIndexIndicator(),q.captionEl&&(q.addCaptionHTMLFn(a.currItem,e),C(e,"caption--empty",!a.currItem.title)),w=!0):w=!1,y||F(),D()},v.updateFullscreen=function(d){d&&setTimeout(function(){a.setScrollOffset(0,b.getScrollY())},50),b[(c.isFullscreen()?"add":"remove")+"Class"](a.template,"pswp--fs")},v.updateIndexIndicator=function(){q.counterEl&&(g.innerHTML=a.getCurrentIndex()+1+q.indexIndicatorSep+q.getNumItemsFn())},v.onGlobalTap=function(c){c=c||window.event;var d=c.target||c.srcElement;if(!r)if(c.detail&&"mouse"===c.detail.pointerType){if(I(d))return void a.close();b.hasClass(d,"pswp__img")&&(1===a.getZoomLevel()&&a.getZoomLevel()<=a.currItem.fitRatio?q.clickToCloseNonZoomable&&a.close():a.toggleDesktopZoom(c.detail.releasePoint))}else if(q.tapToToggleControls&&(x?v.hideControls():v.showControls()),q.tapToClose&&(b.hasClass(d,"pswp__img")||I(d)))return void a.close()},v.onMouseOver=function(a){a=a||window.event;var b=a.target||a.srcElement;C(d,"ui--over-close",I(b))},v.hideControls=function(){b.addClass(d,"pswp__ui--hidden"),x=!1},v.showControls=function(){x=!0,w||v.update(),b.removeClass(d,"pswp__ui--hidden")},v.supportsFullscreen=function(){var a=document;return!!(a.exitFullscreen||a.mozCancelFullScreen||a.webkitExitFullscreen||a.msExitFullscreen)},v.getFullscreenAPI=function(){var b,c=document.documentElement,d="fullscreenchange";return c.requestFullscreen?b={enterK:"requestFullscreen",exitK:"exitFullscreen",elementK:"fullscreenElement",eventK:d}:c.mozRequestFullScreen?b={enterK:"mozRequestFullScreen",exitK:"mozCancelFullScreen",elementK:"mozFullScreenElement",eventK:"moz"+d}:c.webkitRequestFullscreen?b={enterK:"webkitRequestFullscreen",exitK:"webkitExitFullscreen",elementK:"webkitFullscreenElement",eventK:"webkit"+d}:c.msRequestFullscreen&&(b={enterK:"msRequestFullscreen",exitK:"msExitFullscreen",elementK:"msFullscreenElement",eventK:"MSFullscreenChange"}),b&&(b.enter=function(){return j=q.closeOnScroll,q.closeOnScroll=!1,"webkitRequestFullscreen"!==this.enterK?a.template[this.enterK]():void a.template[this.enterK](Element.ALLOW_KEYBOARD_INPUT)},b.exit=function(){return q.closeOnScroll=j,document[this.exitK]()},b.isFullscreen=function(){return document[this.elementK]}),b}};return a});
\ No newline at end of file
diff --git a/assets/js/photoswipe.min.js b/assets/js/photoswipe.min.js
new file mode 100644
index 0000000..0370861
--- /dev/null
+++ b/assets/js/photoswipe.min.js
@@ -0,0 +1,4 @@
+/*! PhotoSwipe - v4.1.3 - 2019-01-08
+* http://photoswipe.com
+* Copyright (c) 2019 Dmitry Semenov; */
+!function(a,b){"function"==typeof define&&define.amd?define(b):"object"==typeof exports?module.exports=b():a.PhotoSwipe=b()}(this,function(){"use strict";var a=function(a,b,c,d){var e={features:null,bind:function(a,b,c,d){var e=(d?"remove":"add")+"EventListener";b=b.split(" ");for(var f=0;f0&&(g=parseInt(g[1],10),g>=1&&g<8&&(d.isOldIOSPhone=!0))}var h=f.match(/Android\s([0-9\.]*)/),i=h?h[1]:0;i=parseFloat(i),i>=1&&(i<4.4&&(d.isOldAndroid=!0),d.androidVersion=i),d.isMobileOpera=/opera mini|opera mobi/i.test(f)}for(var j,k,l=["transform","perspective","animationName"],m=["","webkit","Moz","ms","O"],n=0;n<4;n++){c=m[n];for(var o=0;o<3;o++)j=l[o],k=c+(c?j.charAt(0).toUpperCase()+j.slice(1):j),!d[j]&&k in b&&(d[j]=k);c&&!d.raf&&(c=c.toLowerCase(),d.raf=window[c+"RequestAnimationFrame"],d.raf&&(d.caf=window[c+"CancelAnimationFrame"]||window[c+"CancelRequestAnimationFrame"]))}if(!d.raf){var p=0;d.raf=function(a){var b=(new Date).getTime(),c=Math.max(0,16-(b-p)),d=window.setTimeout(function(){a(b+c)},c);return p=b+c,d},d.caf=function(a){clearTimeout(a)}}return d.svg=!!document.createElementNS&&!!document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,e.features=d,d}};e.detectFeatures(),e.features.oldIE&&(e.bind=function(a,b,c,d){b=b.split(" ");for(var e,f=(d?"detach":"attach")+"Event",g=function(){c.handleEvent.call(c)},h=0;hb-1?a-b:a<0?b+a:a},Ba={},Ca=function(a,b){return Ba[a]||(Ba[a]=[]),Ba[a].push(b)},Da=function(a){var b=Ba[a];if(b){var c=Array.prototype.slice.call(arguments);c.shift();for(var d=0;df.currItem.fitRatio?ya||(mc(f.currItem,!1,!0),ya=!0):ya&&(mc(f.currItem),ya=!1)),Ga(ea,pa.x,pa.y,s))},Ia=function(a){a.container&&Ga(a.container.style,a.initialPosition.x,a.initialPosition.y,a.initialZoomLevel,a)},Ja=function(a,b){b[E]=u+a+"px, 0px"+v},Ka=function(a,b){if(!i.loop&&b){var c=m+(ta.x*ra-a)/ta.x,d=Math.round(a-tb.x);(c<0&&d>0||c>=ac()-1&&d<0)&&(a=tb.x+d*i.mainScrollEndFriction)}tb.x=a,Ja(a,n)},La=function(a,b){var c=ub[a]-sa[a];return oa[a]+na[a]+c-c*(b/t)},Ma=function(a,b){a.x=b.x,a.y=b.y,b.id&&(a.id=b.id)},Na=function(a){a.x=Math.round(a.x),a.y=Math.round(a.y)},Oa=null,Pa=function(){Oa&&(e.unbind(document,"mousemove",Pa),e.addClass(a,"pswp--has_mouse"),i.mouseUsed=!0,Da("mouseUsed")),Oa=setTimeout(function(){Oa=null},100)},Qa=function(){e.bind(document,"keydown",f),N.transform&&e.bind(f.scrollWrap,"click",f),i.mouseUsed||e.bind(document,"mousemove",Pa),e.bind(window,"resize scroll orientationchange",f),Da("bindEvents")},Ra=function(){e.unbind(window,"resize scroll orientationchange",f),e.unbind(window,"scroll",r.scroll),e.unbind(document,"keydown",f),e.unbind(document,"mousemove",Pa),N.transform&&e.unbind(f.scrollWrap,"click",f),V&&e.unbind(window,p,f),clearTimeout(O),Da("unbindEvents")},Sa=function(a,b){var c=ic(f.currItem,qa,a);return b&&(da=c),c},Ta=function(a){return a||(a=f.currItem),a.initialZoomLevel},Ua=function(a){return a||(a=f.currItem),a.w>0?i.maxSpreadZoom:1},Va=function(a,b,c,d){return d===f.currItem.initialZoomLevel?(c[a]=f.currItem.initialPosition[a],!0):(c[a]=La(a,d),c[a]>b.min[a]?(c[a]=b.min[a],!0):c[a]1?1:a.fitRatio,c=a.container.style,d=b*a.w,e=b*a.h;c.width=d+"px",c.height=e+"px",c.left=a.initialPosition.x+"px",c.top=a.initialPosition.y+"px"},Ha=function(){if(ea){var a=ea,b=f.currItem,c=b.fitRatio>1?1:b.fitRatio,d=c*b.w,e=c*b.h;a.width=d+"px",a.height=e+"px",a.left=pa.x+"px",a.top=pa.y+"px"}}},Xa=function(a){var b="";i.escKey&&27===a.keyCode?b="close":i.arrowKeys&&(37===a.keyCode?b="prev":39===a.keyCode&&(b="next")),b&&(a.ctrlKey||a.altKey||a.shiftKey||a.metaKey||(a.preventDefault?a.preventDefault():a.returnValue=!1,f[b]()))},Ya=function(a){a&&(Y||X||fa||T)&&(a.preventDefault(),a.stopPropagation())},Za=function(){f.setScrollOffset(0,e.getScrollY())},$a={},_a=0,ab=function(a){$a[a]&&($a[a].raf&&I($a[a].raf),_a--,delete $a[a])},bb=function(a){$a[a]&&ab(a),$a[a]||(_a++,$a[a]={})},cb=function(){for(var a in $a)$a.hasOwnProperty(a)&&ab(a)},db=function(a,b,c,d,e,f,g){var h,i=Ea();bb(a);var j=function(){if($a[a]){if(h=Ea()-i,h>=d)return ab(a),f(c),void(g&&g());f((c-b)*e(h/d)+b),$a[a].raf=H(j)}};j()},eb={shout:Da,listen:Ca,viewportSize:qa,options:i,isMainScrollAnimating:function(){return fa},getZoomLevel:function(){return s},getCurrentIndex:function(){return m},isDragging:function(){return V},isZooming:function(){return aa},setScrollOffset:function(a,b){sa.x=a,M=sa.y=b,Da("updateScrollOffset",sa)},applyZoomPan:function(a,b,c,d){pa.x=b,pa.y=c,s=a,Ha(d)},init:function(){if(!j&&!k){var c;f.framework=e,f.template=a,f.bg=e.getChildByClass(a,"pswp__bg"),J=a.className,j=!0,N=e.detectFeatures(),H=N.raf,I=N.caf,E=N.transform,L=N.oldIE,f.scrollWrap=e.getChildByClass(a,"pswp__scroll-wrap"),f.container=e.getChildByClass(f.scrollWrap,"pswp__container"),n=f.container.style,f.itemHolders=y=[{el:f.container.children[0],wrap:0,index:-1},{el:f.container.children[1],wrap:0,index:-1},{el:f.container.children[2],wrap:0,index:-1}],y[0].el.style.display=y[2].el.style.display="none",Wa(),r={resize:f.updateSize,orientationchange:function(){clearTimeout(O),O=setTimeout(function(){qa.x!==f.scrollWrap.clientWidth&&f.updateSize()},500)},scroll:Za,keydown:Xa,click:Ya};var d=N.isOldIOSPhone||N.isOldAndroid||N.isMobileOpera;for(N.animationName&&N.transform&&!d||(i.showAnimationDuration=i.hideAnimationDuration=0),c=0;c=ac())&&(m=0),f.currItem=_b(m),(N.isOldIOSPhone||N.isOldAndroid)&&(va=!1),a.setAttribute("aria-hidden","false"),i.modal&&(va?a.style.position="fixed":(a.style.position="absolute",a.style.top=e.getScrollY()+"px")),void 0===M&&(Da("initialLayout"),M=K=e.getScrollY());var l="pswp--open ";for(i.mainClass&&(l+=i.mainClass+" "),i.showHideOpacity&&(l+="pswp--animate_opacity "),l+=G?"pswp--touch":"pswp--notouch",l+=N.animationName?" pswp--css_animation":"",l+=N.svg?" pswp--svg":"",e.addClass(a,l),f.updateSize(),o=-1,ua=null,c=0;cda.min.x?a=da.min.x:ada.min.y?b=da.min.y:b=h&&(o+=ua+(ua>0?-h:h),c=h);for(var d=0;d0?(b=y.shift(),y[h-1]=b,o++,Ja((o+2)*ta.x,b.el.style),f.setContent(b,m-c+d+1+1)):(b=y.pop(),y.unshift(b),o--,Ja(o*ta.x,b.el.style),f.setContent(b,m+c-d-1-1));if(ea&&1===Math.abs(ua)){var e=_b(z);e.initialZoomLevel!==s&&(ic(e,qa),mc(e),Ia(e))}ua=0,f.updateCurrZoomItem(),z=m,Da("afterChange")}}},updateSize:function(b){if(!va&&i.modal){var c=e.getScrollY();if(M!==c&&(a.style.top=c+"px",M=c),!b&&xa.x===window.innerWidth&&xa.y===window.innerHeight)return;xa.x=window.innerWidth,xa.y=window.innerHeight,a.style.height=xa.y+"px"}if(qa.x=f.scrollWrap.clientWidth,qa.y=f.scrollWrap.clientHeight,Za(),ta.x=qa.x+Math.round(qa.x*i.spacing),ta.y=qa.y,Ka(ta.x*ra),Da("beforeResize"),void 0!==o){for(var d,g,j,k=0;k2&&(j=Aa(j)),g=_b(j),g&&(x||g.needsUpdate||!g.bounds)?(f.cleanSlide(g),f.setContent(d,j),1===k&&(f.currItem=g,f.updateCurrZoomItem(!0)),g.needsUpdate=!1):d.index===-1&&j>=0&&f.setContent(d,j),g&&g.container&&(ic(g,qa),mc(g),Ia(g));x=!1}t=s=f.currItem.initialZoomLevel,da=f.currItem.bounds,da&&(pa.x=da.center.x,pa.y=da.center.y,Ha(!0)),Da("resize")},zoomTo:function(a,b,c,d,f){b&&(t=s,ub.x=Math.abs(b.x)-pa.x,ub.y=Math.abs(b.y)-pa.y,Ma(oa,pa));var g=Sa(a,!1),h={};Va("x",g,h,a),Va("y",g,h,a);var i=s,j={x:pa.x,y:pa.y};Na(h);var k=function(b){1===b?(s=a,pa.x=h.x,pa.y=h.y):(s=(a-i)*b+i,pa.x=(h.x-j.x)*b+j.x,pa.y=(h.y-j.y)*b+j.y),f&&f(b),Ha(1===b)};c?db("customZoomTo",0,1,c,d||e.easing.sine.inOut,k):k(1)}},fb=30,gb=10,hb={},ib={},jb={},kb={},lb={},mb=[],nb={},ob=[],pb={},qb=0,rb=ma(),sb=0,tb=ma(),ub=ma(),vb=ma(),wb=function(a,b){return a.x===b.x&&a.y===b.y},xb=function(a,b){return Math.abs(a.x-b.x)-1)&&(b(a)?a:Cb(a.parentNode,b)))},Db={},Eb=function(a,b){return Db.prevent=!Cb(a.target,i.isClickableElement),Da("preventDragEvent",a,b,Db),Db.prevent},Fb=function(a,b){return b.x=a.pageX,b.y=a.pageY,b.id=a.identifier,b},Gb=function(a,b,c){c.x=.5*(a.x+b.x),c.y=.5*(a.y+b.y)},Hb=function(a,b,c){if(a-Q>50){var d=ob.length>2?ob.shift():{};d.x=b,d.y=c,ob.push(d),Q=a}},Ib=function(){var a=pa.y-f.currItem.initialPosition.y;return 1-Math.abs(a/(qa.y/2))},Jb={},Kb={},Lb=[],Mb=function(a){for(;Lb.length>0;)Lb.pop();return F?(la=0,mb.forEach(function(a){0===la?Lb[0]=a:1===la&&(Lb[1]=a),la++})):a.type.indexOf("touch")>-1?a.touches&&a.touches.length>0&&(Lb[0]=Fb(a.touches[0],Jb),a.touches.length>1&&(Lb[1]=Fb(a.touches[1],Kb))):(Jb.x=a.pageX,Jb.y=a.pageY,Jb.id="",Lb[0]=Jb),Lb},Nb=function(a,b){var c,d,e,g,h=0,j=pa[a]+b[a],k=b[a]>0,l=tb.x+b.x,m=tb.x-nb.x;return c=j>da.min[a]||jda.min[a]&&(c=i.panEndFriction,h=da.min[a]-j,d=da.min[a]-oa[a]),(d<=0||m<0)&&ac()>1?(g=l,m<0&&l>nb.x&&(g=nb.x)):da.min.x!==da.max.x&&(e=j)):(j0)&&ac()>1?(g=l,m>0&&lf.currItem.fitRatio&&(pa[a]+=b[a]*c)):(void 0!==g&&(Ka(g,!0),$=g!==nb.x),da.min.x!==da.max.x&&(void 0!==e?pa.x=e:$||(pa.x+=b.x*c)),void 0!==g)},Ob=function(a){if(!("mousedown"===a.type&&a.button>0)){if($b)return void a.preventDefault();if(!U||"mousedown"!==a.type){if(Eb(a,!0)&&a.preventDefault(),Da("pointerDown"),F){var b=e.arraySearch(mb,a.pointerId,"id");b<0&&(b=mb.length),mb[b]={x:a.pageX,y:a.pageY,id:a.pointerId}}var c=Mb(a),d=c.length;_=null,cb(),V&&1!==d||(V=ha=!0,e.bind(window,p,f),S=ka=ia=T=$=Y=W=X=!1,ga=null,Da("firstTouchStart",c),Ma(oa,pa),na.x=na.y=0,Ma(kb,c[0]),Ma(lb,kb),nb.x=ta.x*ra,ob=[{x:kb.x,y:kb.y}],Q=P=Ea(),Sa(s,!0),zb(),Ab()),!aa&&d>1&&!fa&&!$&&(t=s,X=!1,aa=W=!0,na.y=na.x=0,Ma(oa,pa),Ma(hb,c[0]),Ma(ib,c[1]),Gb(hb,ib,vb),ub.x=Math.abs(vb.x)-pa.x,ub.y=Math.abs(vb.y)-pa.y,ba=ca=yb(hb,ib))}}},Pb=function(a){if(a.preventDefault(),F){var b=e.arraySearch(mb,a.pointerId,"id");if(b>-1){var c=mb[b];c.x=a.pageX,c.y=a.pageY}}if(V){var d=Mb(a);if(ga||Y||aa)_=d;else if(tb.x!==ta.x*ra)ga="h";else{var f=Math.abs(d[0].x-kb.x)-Math.abs(d[0].y-kb.y);Math.abs(f)>=gb&&(ga=f>0?"h":"v",_=d)}}},Qb=function(){if(_){var a=_.length;if(0!==a)if(Ma(hb,_[0]),jb.x=hb.x-kb.x,jb.y=hb.y-kb.y,aa&&a>1){if(kb.x=hb.x,kb.y=hb.y,!jb.x&&!jb.y&&wb(_[1],ib))return;Ma(ib,_[1]),X||(X=!0,Da("zoomGestureStarted"));var b=yb(hb,ib),c=Vb(b);c>f.currItem.initialZoomLevel+f.currItem.initialZoomLevel/15&&(ka=!0);var d=1,e=Ta(),g=Ua();if(c1&&(d=1),c=e-d*(e/3);else c>g&&(d=(c-g)/(6*e),d>1&&(d=1),c=g+d*e);d<0&&(d=0),ba=b,Gb(hb,ib,rb),na.x+=rb.x-vb.x,na.y+=rb.y-vb.y,Ma(vb,rb),pa.x=La("x",c),pa.y=La("y",c),S=c>s,s=c,Ha()}else{if(!ga)return;if(ha&&(ha=!1,Math.abs(jb.x)>=gb&&(jb.x-=_[0].x-lb.x),Math.abs(jb.y)>=gb&&(jb.y-=_[0].y-lb.y)),kb.x=hb.x,kb.y=hb.y,0===jb.x&&0===jb.y)return;if("v"===ga&&i.closeOnVerticalDrag&&!Bb()){na.y+=jb.y,pa.y+=jb.y;var k=Ib();return T=!0,Da("onVerticalDrag",k),Fa(k),void Ha()}Hb(Ea(),hb.x,hb.y),Y=!0,da=f.currItem.bounds;var l=Nb("x",jb);l||(Nb("y",jb),Na(pa),Ha())}}},Rb=function(a){if(N.isOldAndroid){if(U&&"mouseup"===a.type)return;a.type.indexOf("touch")>-1&&(clearTimeout(U),U=setTimeout(function(){U=0},600))}Da("pointerUp"),Eb(a,!1)&&a.preventDefault();var b;if(F){var c=e.arraySearch(mb,a.pointerId,"id");if(c>-1)if(b=mb.splice(c,1)[0],navigator.msPointerEnabled){var d={4:"mouse",2:"touch",3:"pen"};b.type=d[a.pointerType],b.type||(b.type=a.pointerType||"mouse")}else b.type=a.pointerType||"mouse"}var g,h=Mb(a),j=h.length;if("mouseup"===a.type&&(j=0),2===j)return _=null,!0;1===j&&Ma(lb,h[0]),0!==j||ga||fa||(b||("mouseup"===a.type?b={x:a.pageX,y:a.pageY,type:"mouse"}:a.changedTouches&&a.changedTouches[0]&&(b={x:a.changedTouches[0].pageX,y:a.changedTouches[0].pageY,type:"touch"})),Da("touchRelease",a,b));var k=-1;if(0===j&&(V=!1,e.unbind(window,p,f),zb(),aa?k=0:sb!==-1&&(k=Ea()-sb)),sb=1===j?Ea():-1,g=k!==-1&&k<150?"zoom":"swipe",aa&&j<2&&(aa=!1,1===j&&(g="zoomPointerUp"),Da("zoomGestureEnded")),_=null,Y||X||fa||T)if(cb(),R||(R=Sb()),R.calculateSwipeSpeed("x"),T){var l=Ib();if(lf.currItem.fitRatio&&Tb(R))}},Sb=function(){var a,b,c={lastFlickOffset:{},lastFlickDist:{},lastFlickSpeed:{},slowDownRatio:{},slowDownRatioReverse:{},speedDecelerationRatio:{},speedDecelerationRatioAbs:{},distanceOffset:{},backAnimDestination:{},backAnimStarted:{},calculateSwipeSpeed:function(d){ob.length>1?(a=Ea()-Q+50,b=ob[ob.length-2][d]):(a=Ea()-P,b=lb[d]),c.lastFlickOffset[d]=kb[d]-b,c.lastFlickDist[d]=Math.abs(c.lastFlickOffset[d]),c.lastFlickDist[d]>20?c.lastFlickSpeed[d]=c.lastFlickOffset[d]/a:c.lastFlickSpeed[d]=0,Math.abs(c.lastFlickSpeed[d])<.1&&(c.lastFlickSpeed[d]=0),c.slowDownRatio[d]=.95,c.slowDownRatioReverse[d]=1-c.slowDownRatio[d],c.speedDecelerationRatio[d]=1},calculateOverBoundsAnimOffset:function(a,b){c.backAnimStarted[a]||(pa[a]>da.min[a]?c.backAnimDestination[a]=da.min[a]:pa[a]fb&&(h||b.lastFlickOffset.x>20)?d=-1:g<-fb&&(h||b.lastFlickOffset.x<-20)&&(d=1)}var j;d&&(m+=d,m<0?(m=i.loop?ac()-1:0,j=!0):m>=ac()&&(m=i.loop?0:ac()-1,j=!0),j&&!i.loop||(ua+=d,ra-=d,c=!0));var k,l=ta.x*ra,n=Math.abs(l-tb.x);return c||l>tb.x==b.lastFlickSpeed.x>0?(k=Math.abs(b.lastFlickSpeed.x)>0?n/Math.abs(b.lastFlickSpeed.x):333,k=Math.min(k,400),k=Math.max(k,250)):k=333,qb===m&&(c=!1),fa=!0,Da("mainScrollAnimStart"),db("mainScroll",tb.x,l,k,e.easing.cubic.out,Ka,function(){cb(),fa=!1,qb=-1,(c||qb!==m)&&f.updateCurrItem(),Da("mainScrollAnimComplete")}),c&&f.updateCurrItem(!0),c},Vb=function(a){return 1/ca*a*t},Wb=function(){var a=s,b=Ta(),c=Ua();sc&&(a=c);var d,g=1,h=ja;return ia&&!S&&!ka&&s1||navigator.msMaxTouchPoints>1),f.likelyTouchDevice=G,r[A]=Ob,r[B]=Pb,r[C]=Rb,D&&(r[D]=r[C]),N.touch&&(q+=" mousedown",p+=" mousemove mouseup",r.mousedown=r[A],r.mousemove=r[B],r.mouseup=r[C]),G||(i.allowPanToNext=!1)}}});var Xb,Yb,Zb,$b,_b,ac,bc,cc=function(b,c,d,g){Xb&&clearTimeout(Xb),$b=!0,Zb=!0;var h;b.initialLayout?(h=b.initialLayout,b.initialLayout=null):h=i.getThumbBoundsFn&&i.getThumbBoundsFn(m);var j=d?i.hideAnimationDuration:i.showAnimationDuration,k=function(){ab("initialZoom"),d?(f.template.removeAttribute("style"),f.bg.removeAttribute("style")):(Fa(1),c&&(c.style.display="block"),e.addClass(a,"pswp--animated-in"),Da("initialZoom"+(d?"OutEnd":"InEnd"))),g&&g(),$b=!1};if(!j||!h||void 0===h.x)return Da("initialZoom"+(d?"Out":"In")),s=b.initialZoomLevel,Ma(pa,b.initialPosition),Ha(),a.style.opacity=d?0:1,Fa(1),void(j?setTimeout(function(){k()},j):k());var n=function(){var c=l,g=!f.currItem.src||f.currItem.loadError||i.showHideOpacity;b.miniImg&&(b.miniImg.style.webkitBackfaceVisibility="hidden"),d||(s=h.w/b.w,pa.x=h.x,pa.y=h.y-K,f[g?"template":"bg"].style.opacity=.001,Ha()),bb("initialZoom"),d&&!c&&e.removeClass(a,"pswp--animated-in"),g&&(d?e[(c?"remove":"add")+"Class"](a,"pswp--animate_opacity"):setTimeout(function(){e.addClass(a,"pswp--animate_opacity")},30)),Xb=setTimeout(function(){if(Da("initialZoom"+(d?"Out":"In")),d){var f=h.w/b.w,i={x:pa.x,y:pa.y},l=s,m=ja,n=function(b){1===b?(s=f,pa.x=h.x,pa.y=h.y-M):(s=(f-l)*b+l,pa.x=(h.x-i.x)*b+i.x,pa.y=(h.y-M-i.y)*b+i.y),Ha(),g?a.style.opacity=1-b:Fa(m-b*m)};c?db("initialZoom",0,1,j,e.easing.cubic.out,n,k):(n(1),Xb=setTimeout(k,j+20))}else s=b.initialZoomLevel,Ma(pa,b.initialPosition),Ha(),Fa(1),g?a.style.opacity=1:Fa(1),Xb=setTimeout(k,j+20)},d?25:90)};n()},dc={},ec=[],fc={index:0,errorMsg:'',forceProgressiveLoading:!1,preload:[1,1],getNumItemsFn:function(){return Yb.length}},gc=function(){return{center:{x:0,y:0},max:{x:0,y:0},min:{x:0,y:0}}},hc=function(a,b,c){var d=a.bounds;d.center.x=Math.round((dc.x-b)/2),d.center.y=Math.round((dc.y-c)/2)+a.vGap.top,d.max.x=b>dc.x?Math.round(dc.x-b):d.center.x,d.max.y=c>dc.y?Math.round(dc.y-c)+a.vGap.top:d.center.y,d.min.x=b>dc.x?0:d.center.x,d.min.y=c>dc.y?a.vGap.top:d.center.y},ic=function(a,b,c){if(a.src&&!a.loadError){var d=!c;if(d&&(a.vGap||(a.vGap={top:0,bottom:0}),Da("parseVerticalMargin",a)),dc.x=b.x,dc.y=b.y-a.vGap.top-a.vGap.bottom,d){var e=dc.x/a.w,f=dc.y/a.h;a.fitRatio=e1&&(c=1),a.initialZoomLevel=c,a.bounds||(a.bounds=gc())}if(!c)return;return hc(a,a.w*c,a.h*c),d&&c===a.initialZoomLevel&&(a.initialPosition=a.bounds.center),a.bounds}return a.w=a.h=0,a.initialZoomLevel=a.fitRatio=1,a.bounds=gc(),a.initialPosition=a.bounds.center,a.bounds},jc=function(a,b,c,d,e,g){b.loadError||d&&(b.imageAppended=!0,mc(b,d,b===f.currItem&&ya),c.appendChild(d),g&&setTimeout(function(){b&&b.loaded&&b.placeholder&&(b.placeholder.style.display="none",b.placeholder=null)},500))},kc=function(a){a.loading=!0,a.loaded=!1;var b=a.img=e.createEl("pswp__img","img"),c=function(){a.loading=!1,a.loaded=!0,a.loadComplete?a.loadComplete(a):a.img=null,b.onload=b.onerror=null,b=null};return b.onload=c,b.onerror=function(){a.loadError=!0,c()},b.src=a.src,b},lc=function(a,b){if(a.src&&a.loadError&&a.container)return b&&(a.container.innerHTML=""),a.container.innerHTML=i.errorMsg.replace("%url%",a.src),!0},mc=function(a,b,c){if(a.src){b||(b=a.container.lastChild);var d=c?a.w:Math.round(a.w*a.fitRatio),e=c?a.h:Math.round(a.h*a.fitRatio);a.placeholder&&!a.loaded&&(a.placeholder.style.width=d+"px",a.placeholder.style.height=e+"px"),b.style.width=d+"px",b.style.height=e+"px"}},nc=function(){if(ec.length){for(var a,b=0;b=0,e=Math.min(c[0],ac()),g=Math.min(c[1],ac());for(b=1;b<=(d?g:e);b++)f.lazyLoadItem(m+b);for(b=1;b<=(d?e:g);b++)f.lazyLoadItem(m-b)}),Ca("initialLayout",function(){f.currItem.initialLayout=i.getThumbBoundsFn&&i.getThumbBoundsFn(m)}),Ca("mainScrollAnimComplete",nc),Ca("initialZoomInEnd",nc),Ca("destroy",function(){for(var a,b=0;b=0&&(void 0!==Yb[a]&&Yb[a])},allowProgressiveImg:function(){return i.forceProgressiveLoading||!G||i.mouseUsed||screen.width>1200},setContent:function(a,b){i.loop&&(b=Aa(b));var c=f.getItemAt(a.index);c&&(c.container=null);var d,g=f.getItemAt(b);if(!g)return void(a.el.innerHTML="");Da("gettingData",b,g),a.index=b,a.item=g;var h=g.container=e.createEl("pswp__zoom-wrap");if(!g.src&&g.html&&(g.html.tagName?h.appendChild(g.html):h.innerHTML=g.html),lc(g),ic(g,qa),!g.src||g.loadError||g.loaded)g.src&&!g.loadError&&(d=e.createEl("pswp__img","img"),d.style.opacity=1,d.src=g.src,mc(g,d),jc(b,g,h,d,!0));else{if(g.loadComplete=function(c){if(j){if(a&&a.index===b){if(lc(c,!0))return c.loadComplete=c.img=null,ic(c,qa),Ia(c),void(a.index===m&&f.updateCurrZoomItem());c.imageAppended?!$b&&c.placeholder&&(c.placeholder.style.display="none",c.placeholder=null):N.transform&&(fa||$b)?ec.push({item:c,baseDiv:h,img:c.img,index:b,holder:a,clearPlaceholder:!0}):jc(b,c,h,c.img,fa||$b,!0)}c.loadComplete=null,c.img=null,Da("imageLoadComplete",b,c)}},e.features.transform){var k="pswp__img pswp__img--placeholder";k+=g.msrc?"":" pswp__img--placeholder--blank";var l=e.createEl(k,g.msrc?"img":"");g.msrc&&(l.src=g.msrc),mc(g,l),h.appendChild(l),g.placeholder=l}g.loading||kc(g),f.allowProgressiveImg()&&(!Zb&&N.transform?ec.push({item:g,baseDiv:h,img:g.img,index:b,holder:a}):jc(b,g,h,g.img,!0,!0))}Zb||b!==m?Ia(g):(ea=h.style,cc(g,d||g.img)),a.el.innerHTML="",a.el.appendChild(h)},cleanSlide:function(a){a.img&&(a.img.onload=a.img.onerror=null),a.loaded=a.loading=a.img=a.imageAppended=!1}}});var oc,pc={},qc=function(a,b,c){var d=document.createEvent("CustomEvent"),e={origEvent:a,target:a.target,releasePoint:b,pointerType:c||"touch"};d.initCustomEvent("pswpTap",!0,!0,e),a.target.dispatchEvent(d)};za("Tap",{publicMethods:{initTap:function(){Ca("firstTouchStart",f.onTapStart),Ca("touchRelease",f.onTapRelease),Ca("destroy",function(){pc={},oc=null})},onTapStart:function(a){a.length>1&&(clearTimeout(oc),oc=null)},onTapRelease:function(a,b){if(b&&!Y&&!W&&!_a){var c=b;if(oc&&(clearTimeout(oc),oc=null,xb(c,pc)))return void Da("doubleTap",c);if("mouse"===b.type)return void qc(a,b,"mouse");var d=a.target.tagName.toUpperCase();if("BUTTON"===d||e.hasClass(a.target,"pswp__single-tap"))return void qc(a,b);Ma(pc,c),oc=setTimeout(function(){qc(a,b),oc=null},300)}}}});var rc;za("DesktopZoom",{publicMethods:{initDesktopZoom:function(){L||(G?Ca("mouseUsed",function(){f.setupDesktopZoom()}):f.setupDesktopZoom(!0))},setupDesktopZoom:function(b){rc={};var c="wheel mousewheel DOMMouseScroll";Ca("bindEvents",function(){e.bind(a,c,f.handleMouseWheel)}),Ca("unbindEvents",function(){rc&&e.unbind(a,c,f.handleMouseWheel)}),f.mouseZoomedIn=!1;var d,g=function(){f.mouseZoomedIn&&(e.removeClass(a,"pswp--zoomed-in"),f.mouseZoomedIn=!1),s<1?e.addClass(a,"pswp--zoom-allowed"):e.removeClass(a,"pswp--zoom-allowed"),h()},h=function(){d&&(e.removeClass(a,"pswp--dragging"),d=!1)};Ca("resize",g),Ca("afterChange",g),Ca("pointerDown",function(){f.mouseZoomedIn&&(d=!0,e.addClass(a,"pswp--dragging"))}),Ca("pointerUp",h),b||g()},handleMouseWheel:function(a){if(s<=f.currItem.fitRatio)return i.modal&&(!i.closeOnScroll||_a||V?a.preventDefault():E&&Math.abs(a.deltaY)>2&&(l=!0,f.close())),!0;if(a.stopPropagation(),rc.x=0,"deltaX"in a)1===a.deltaMode?(rc.x=18*a.deltaX,rc.y=18*a.deltaY):(rc.x=a.deltaX,rc.y=a.deltaY);else if("wheelDelta"in a)a.wheelDeltaX&&(rc.x=-.16*a.wheelDeltaX),a.wheelDeltaY?rc.y=-.16*a.wheelDeltaY:rc.y=-.16*a.wheelDelta;else{if(!("detail"in a))return;rc.y=a.detail}Sa(s,!0);var b=pa.x-rc.x,c=pa.y-rc.y;(i.modal||b<=da.min.x&&b>=da.max.x&&c<=da.min.y&&c>=da.max.y)&&a.preventDefault(),f.panTo(b,c)},toggleDesktopZoom:function(b){b=b||{x:qa.x/2+sa.x,y:qa.y/2+sa.y};var c=i.getDoubleTapZoom(!0,f.currItem),d=s===c;f.mouseZoomedIn=!d,f.zoomTo(d?f.currItem.initialZoomLevel:c,b,333),e[(d?"remove":"add")+"Class"](a,"pswp--zoomed-in")}}});var sc,tc,uc,vc,wc,xc,yc,zc,Ac,Bc,Cc,Dc,Ec={history:!0,galleryUID:1},Fc=function(){return Cc.hash.substring(1)},Gc=function(){sc&&clearTimeout(sc),uc&&clearTimeout(uc)},Hc=function(){var a=Fc(),b={};if(a.length<5)return b;var c,d=a.split("&");for(c=0;c-1&&(yc=yc.split("&gid=")[0],yc=yc.split("?gid=")[0]),Ca("afterChange",f.updateURL),Ca("unbindEvents",function(){e.unbind(window,"hashchange",f.onHashChange)});var a=function(){xc=!0,Ac||(Bc?history.back():yc?Cc.hash=yc:Dc?history.pushState("",document.title,Cc.pathname+Cc.search):Cc.hash=""),Gc()};Ca("unbindEvents",function(){l&&a()}),Ca("destroy",function(){xc||a()}),Ca("firstUpdate",function(){m=Hc().pid});var b=yc.indexOf("pid=");b>-1&&(yc=yc.substring(0,b),"&"===yc.slice(-1)&&(yc=yc.slice(0,-1))),setTimeout(function(){j&&e.bind(window,"hashchange",f.onHashChange)},40)}},onHashChange:function(){return Fc()===yc?(Ac=!0,void f.close()):void(vc||(wc=!0,f.goTo(Hc().pid),wc=!1))},updateURL:function(){Gc(),wc||(zc?sc=setTimeout(Ic,800):Ic())}}}),e.extend(f,eb)};return a});
\ No newline at end of file
diff --git a/assets/js/scripts.js b/assets/js/scripts.js
new file mode 100644
index 0000000..2132ced
--- /dev/null
+++ b/assets/js/scripts.js
@@ -0,0 +1,528 @@
+// Dropdown menu
+(function (menuConfig) {
+ /**
+ * Merge default config with the theme overrided ones
+ */
+ var defaultConfig = {
+ // behaviour
+ mobileMenuMode: 'overlay',
+ animationSpeed: 300,
+ submenuWidth: 300,
+ doubleClickTime: 500,
+ mobileMenuExpandableSubmenus: false,
+ isHoverMenu: true,
+ // selectors
+ wrapperSelector: '.navbar',
+ buttonSelector: '.navbar__toggle',
+ menuSelector: '.navbar__menu',
+ submenuSelector: '.navbar__submenu',
+ mobileMenuSidebarLogoSelector: null,
+ mobileMenuSidebarLogoUrl: null,
+ relatedContainerForOverlayMenuSelector: null,
+ // attributes
+ ariaButtonAttribute: 'aria-haspopup',
+ // CSS classes
+ separatorItemClass: 'is-separator',
+ parentItemClass: 'has-submenu',
+ submenuLeftPositionClass: 'is-left-submenu',
+ submenuRightPositionClass: 'is-right-submenu',
+ mobileMenuOverlayClass: 'navbar_mobile_overlay',
+ mobileMenuSubmenuWrapperClass: 'navbar__submenu_wrapper',
+ mobileMenuSidebarClass: 'navbar_mobile_sidebar',
+ mobileMenuSidebarOverlayClass: 'navbar_mobile_sidebar__overlay',
+ hiddenElementClass: 'is-hidden',
+ openedMenuClass: 'is-active',
+ noScrollClass: 'no-scroll',
+ relatedContainerForOverlayMenuClass: 'is-visible'
+ };
+
+ var config = {};
+
+ Object.keys(defaultConfig).forEach(function(key) {
+ config[key] = defaultConfig[key];
+ });
+
+ if (typeof menuConfig === 'object') {
+ Object.keys(menuConfig).forEach(function(key) {
+ config[key] = menuConfig[key];
+ });
+ }
+
+ /**
+ * Menu initializer
+ */
+ function init () {
+ if (!document.querySelectorAll(config.wrapperSelector).length) {
+ return;
+ }
+
+ initSubmenuPositions();
+
+ if (config.mobileMenuMode === 'overlay') {
+ initMobileMenuOverlay();
+ } else if (config.mobileMenuMode === 'sidebar') {
+ initMobileMenuSidebar();
+ }
+
+ initClosingMenuOnClickLink();
+
+ if (!config.isHoverMenu) {
+ initAriaAttributes();
+ }
+ };
+
+ /**
+ * Function responsible for the submenu positions
+ */
+ function initSubmenuPositions () {
+ var submenuParents = document.querySelectorAll(config.wrapperSelector + ' .' + config.parentItemClass);
+
+ for (var i = 0; i < submenuParents.length; i++) {
+ var eventTrigger = config.isHoverMenu ? 'mouseenter' : 'click';
+
+ submenuParents[i].addEventListener(eventTrigger, function () {
+ var submenu = this.querySelector(config.submenuSelector);
+ var itemPosition = this.getBoundingClientRect().left;
+ var widthMultiplier = 2;
+
+ if (this.parentNode === document.querySelector(config.menuSelector)) {
+ widthMultiplier = 1;
+ }
+
+ if (config.submenuWidth !== 'auto') {
+ var submenuPotentialPosition = itemPosition + (config.submenuWidth * widthMultiplier);
+
+ if (window.innerWidth < submenuPotentialPosition) {
+ submenu.classList.remove(config.submenuLeftPositionClass);
+ submenu.classList.add(config.submenuRightPositionClass);
+ } else {
+ submenu.classList.remove(config.submenuRightPositionClass);
+ submenu.classList.add(config.submenuLeftPositionClass);
+ }
+ } else {
+ var submenuPotentialPosition = 0;
+ var submenuPosition = 0;
+
+ if (widthMultiplier === 1) {
+ submenuPotentialPosition = itemPosition + submenu.clientWidth;
+ } else {
+ submenuPotentialPosition = itemPosition + this.clientWidth + submenu.clientWidth;
+ }
+
+ if (window.innerWidth < submenuPotentialPosition) {
+ submenu.classList.remove(config.submenuLeftPositionClass);
+ submenu.classList.add(config.submenuRightPositionClass);
+ submenuPosition = -1 * submenu.clientWidth;
+ submenu.removeAttribute('style');
+
+ if (widthMultiplier === 1) {
+ submenuPosition = 0;
+ submenu.style.right = submenuPosition + 'px';
+ } else {
+ submenu.style.right = this.clientWidth + 'px';
+ }
+ } else {
+ submenu.classList.remove(config.submenuRightPositionClass);
+ submenu.classList.add(config.submenuLeftPositionClass);
+ submenuPosition = this.clientWidth;
+
+ if (widthMultiplier === 1) {
+ submenuPosition = 0;
+ }
+
+ submenu.removeAttribute('style');
+ submenu.style.left = submenuPosition + 'px';
+ }
+ }
+
+ submenu.setAttribute('aria-hidden', false);
+ });
+
+ if (config.isHoverMenu) {
+ submenuParents[i].addEventListener('mouseleave', function () {
+ var submenu = this.querySelector(config.submenuSelector);
+ submenu.removeAttribute('style');
+ submenu.setAttribute('aria-hidden', true);
+ });
+ }
+ }
+ }
+
+ /**
+ * Function used to init mobile menu - overlay mode
+ */
+ function initMobileMenuOverlay () {
+ var menuWrapper = document.createElement('div');
+ menuWrapper.classList.add(config.mobileMenuOverlayClass);
+ menuWrapper.classList.add(config.hiddenElementClass);
+ var menuContentHTML = document.querySelector(config.menuSelector).outerHTML;
+ menuWrapper.innerHTML = menuContentHTML;
+ document.body.appendChild(menuWrapper);
+
+ // Init toggle submenus
+ if (config.mobileMenuExpandableSubmenus) {
+ wrapSubmenusIntoContainer(menuWrapper);
+ initToggleSubmenu(menuWrapper);
+ } else {
+ setAriaForSubmenus(menuWrapper);
+ }
+
+ // Init button events
+ var button = document.querySelector(config.buttonSelector);
+
+ button.addEventListener('click', function () {
+ var relatedContainer = document.querySelector(config.relatedContainerForOverlayMenuSelector);
+ menuWrapper.classList.toggle(config.hiddenElementClass);
+ button.classList.toggle(config.openedMenuClass);
+ button.setAttribute(config.ariaButtonAttribute, button.classList.contains(config.openedMenuClass));
+
+ if (button.classList.contains(config.openedMenuClass)) {
+ document.documentElement.classList.add(config.noScrollClass);
+
+ if (relatedContainer) {
+ relatedContainer.classList.add(config.relatedContainerForOverlayMenuClass);
+ }
+ } else {
+ document.documentElement.classList.remove(config.noScrollClass);
+
+ if (relatedContainer) {
+ relatedContainer.classList.remove(config.relatedContainerForOverlayMenuClass);
+ }
+ }
+ });
+ }
+
+ /**
+ * Function used to init mobile menu - sidebar mode
+ */
+ function initMobileMenuSidebar () {
+ // Create menu structure
+ var menuWrapper = document.createElement('div');
+ menuWrapper.classList.add(config.mobileMenuSidebarClass);
+ menuWrapper.classList.add(config.hiddenElementClass);
+ var menuContentHTML = '';
+
+ if (config.mobileMenuSidebarLogoSelector !== null) {
+ menuContentHTML = document.querySelector(config.mobileMenuSidebarLogoSelector).outerHTML;
+ } else if (config.mobileMenuSidebarLogoUrl !== null) {
+ menuContentHTML = ' ';
+ }
+
+ menuContentHTML += document.querySelector(config.menuSelector).outerHTML;
+ menuWrapper.innerHTML = menuContentHTML;
+
+ var menuOverlay = document.createElement('div');
+ menuOverlay.classList.add(config.mobileMenuSidebarOverlayClass);
+ menuOverlay.classList.add(config.hiddenElementClass);
+
+ document.body.appendChild(menuOverlay);
+ document.body.appendChild(menuWrapper);
+
+ // Init toggle submenus
+ if (config.mobileMenuExpandableSubmenus) {
+ wrapSubmenusIntoContainer(menuWrapper);
+ initToggleSubmenu(menuWrapper);
+ } else {
+ setAriaForSubmenus(menuWrapper);
+ }
+
+ // Menu events
+ menuWrapper.addEventListener('click', function (e) {
+ e.stopPropagation();
+ });
+
+ menuOverlay.addEventListener('click', function () {
+ menuWrapper.classList.add(config.hiddenElementClass);
+ menuOverlay.classList.add(config.hiddenElementClass);
+ button.classList.remove(config.openedMenuClass);
+ button.setAttribute(config.ariaButtonAttribute, false);
+ document.documentElement.classList.remove(config.noScrollClass);
+ });
+
+ // Init button events
+ var button = document.querySelector(config.buttonSelector);
+
+ button.addEventListener('click', function () {
+ menuWrapper.classList.toggle(config.hiddenElementClass);
+ menuOverlay.classList.toggle(config.hiddenElementClass);
+ button.classList.toggle(config.openedMenuClass);
+ button.setAttribute(config.ariaButtonAttribute, button.classList.contains(config.openedMenuClass));
+ document.documentElement.classList.toggle(config.noScrollClass);
+ });
+ }
+
+ /**
+ * Set aria-hidden="false" for submenus
+ */
+ function setAriaForSubmenus (menuWrapper) {
+ var submenus = menuWrapper.querySelectorAll(config.submenuSelector);
+
+ for (var i = 0; i < submenus.length; i++) {
+ submenus[i].setAttribute('aria-hidden', false);
+ }
+ }
+
+ /**
+ * Wrap all submenus into div wrappers
+ */
+ function wrapSubmenusIntoContainer (menuWrapper) {
+ var submenus = menuWrapper.querySelectorAll(config.submenuSelector);
+
+ for (var i = 0; i < submenus.length; i++) {
+ var submenuWrapper = document.createElement('div');
+ submenuWrapper.classList.add(config.mobileMenuSubmenuWrapperClass);
+ submenus[i].parentNode.insertBefore(submenuWrapper, submenus[i]);
+ submenuWrapper.appendChild(submenus[i]);
+ }
+ }
+
+ /**
+ * Initialize submenu toggle events
+ */
+ function initToggleSubmenu (menuWrapper) {
+ // Init parent menu item events
+ var parents = menuWrapper.querySelectorAll('.' + config.parentItemClass);
+
+ for (var i = 0; i < parents.length; i++) {
+ // Add toggle events
+ parents[i].addEventListener('click', function (e) {
+ e.stopPropagation();
+ var submenu = this.querySelector('.' + config.mobileMenuSubmenuWrapperClass);
+ var content = submenu.firstElementChild;
+
+ if (submenu.classList.contains(config.openedMenuClass)) {
+ var height = content.clientHeight;
+ submenu.style.height = height + 'px';
+
+ setTimeout(function () {
+ submenu.style.height = '0px';
+ }, 0);
+
+ setTimeout(function () {
+ submenu.removeAttribute('style');
+ submenu.classList.remove(config.openedMenuClass);
+ }, config.animationSpeed);
+
+ content.setAttribute('aria-hidden', true);
+ content.parentNode.firstElementChild.setAttribute('aria-expanded', false);
+ } else {
+ var height = content.clientHeight;
+ submenu.classList.add(config.openedMenuClass);
+ submenu.style.height = '0px';
+
+ setTimeout(function () {
+ submenu.style.height = height + 'px';
+ }, 0);
+
+ setTimeout(function () {
+ submenu.removeAttribute('style');
+ }, config.animationSpeed);
+
+ content.setAttribute('aria-hidden', false);
+ content.parentNode.firstElementChild.setAttribute('aria-expanded', true);
+ }
+ });
+
+ // Block links
+ var childNodes = parents[i].children;
+
+ for (var j = 0; j < childNodes.length; j++) {
+ if (childNodes[j].tagName === 'A') {
+ childNodes[j].addEventListener('click', function (e) {
+ var lastClick = parseInt(this.getAttribute('data-last-click'), 10);
+ var currentTime = +new Date();
+
+ if (isNaN(lastClick)) {
+ e.preventDefault();
+ this.setAttribute('data-last-click', currentTime);
+ } else if (lastClick + config.doubleClickTime <= currentTime) {
+ e.preventDefault();
+ this.setAttribute('data-last-click', currentTime);
+ } else if (lastClick + config.doubleClickTime > currentTime) {
+ e.stopPropagation();
+ closeMenu(this, true);
+ }
+ });
+ }
+ }
+ }
+ }
+
+ /**
+ * Set aria-* attributes according to the current activity state
+ */
+ function initAriaAttributes () {
+ var allAriaElements = document.querySelectorAll(config.wrapperSelector + ' ' + '*[aria-hidden]');
+
+ for (var i = 0; i < allAriaElements.length; i++) {
+ var ariaElement = allAriaElements[i];
+
+ if (
+ ariaElement.parentNode.classList.contains('active') ||
+ ariaElement.parentNode.classList.contains('active-parent')
+ ) {
+ ariaElement.setAttribute('aria-hidden', 'false');
+ ariaElement.parentNode.firstElementChild.setAttribute('aria-expanded', true);
+ } else {
+ ariaElement.setAttribute('aria-hidden', 'true');
+ ariaElement.parentNode.firstElementChild.setAttribute('aria-expanded', false);
+ }
+ }
+ }
+
+ /**
+ * Close menu on click link
+ */
+ function initClosingMenuOnClickLink () {
+ var links = document.querySelectorAll(config.menuSelector + ' a');
+
+ for (var i = 0; i < links.length; i++) {
+ if (links[i].parentNode.classList.contains(config.parentItemClass)) {
+ continue;
+ }
+
+ links[i].addEventListener('click', function (e) {
+ closeMenu(this, false);
+ });
+ }
+ }
+
+ /**
+ * Close menu
+ */
+ function closeMenu (clickedLink, forceClose) {
+ if (forceClose === false) {
+ if (clickedLink.parentNode.classList.contains(config.parentItemClass)) {
+ return;
+ }
+ }
+
+ var relatedContainer = document.querySelector(config.relatedContainerForOverlayMenuSelector);
+ var button = document.querySelector(config.buttonSelector);
+ var menuWrapper = document.querySelector('.' + config.mobileMenuOverlayClass);
+
+ if (!menuWrapper) {
+ menuWrapper = document.querySelector('.' + config.mobileMenuSidebarClass);
+ }
+
+ menuWrapper.classList.add(config.hiddenElementClass);
+ button.classList.remove(config.openedMenuClass);
+ button.setAttribute(config.ariaButtonAttribute, false);
+ document.documentElement.classList.remove(config.noScrollClass);
+
+ if (relatedContainer) {
+ relatedContainer.classList.remove(config.relatedContainerForOverlayMenuClass);
+ }
+
+ var menuOverlay = document.querySelector('.' + config.mobileMenuSidebarOverlayClass);
+
+ if (menuOverlay) {
+ menuOverlay.classList.add(config.hiddenElementClass);
+ }
+ }
+
+ /**
+ * Run menu scripts
+ */
+ init();
+})(window.publiiThemeMenuConfig);
+
+// Share buttons pop-up
+(function () {
+ // share popup
+ let shareButton = document.querySelector('.js-post__share-button');
+ let sharePopup = document.querySelector('.js-post__share-popup');
+
+ if (shareButton) {
+ sharePopup.addEventListener('click', function (e) {
+ e.stopPropagation();
+ });
+
+ shareButton.addEventListener('click', function (e) {
+ e.preventDefault();
+ e.stopPropagation();
+ sharePopup.classList.toggle('is-visible');
+ });
+
+ document.body.addEventListener('click', function () {
+ sharePopup.classList.remove('is-visible');
+ });
+ }
+
+ // link selector and pop-up window size
+ var Config = {
+ Link: ".js-share",
+ Width: 500,
+ Height: 500
+ };
+ // add handler links
+ var slink = document.querySelectorAll(Config.Link);
+ for (var a = 0; a < slink.length; a++) {
+ slink[a].onclick = PopupHandler;
+ }
+ // create popup
+ function PopupHandler(e) {
+ e = (e ? e : window.event);
+ var t = (e.target ? e.target : e.srcElement);
+ // hide share popup
+ if (sharePopup) {
+ sharePopup.classList.remove('is-visible');
+ }
+ // popup position
+ var px = Math.floor(((screen.availWidth || 1024) - Config.Width) / 2),
+ py = Math.floor(((screen.availHeight || 700) - Config.Height) / 2);
+ // open popup
+ var link_href = t.href ? t.href : t.parentNode.href;
+ var popup = window.open(link_href, "social",
+ "width=" + Config.Width + ",height=" + Config.Height +
+ ",left=" + px + ",top=" + py +
+ ",location=0,menubar=0,toolbar=0,status=0,scrollbars=1,resizable=1");
+ if (popup) {
+ popup.focus();
+ if (e.preventDefault) e.preventDefault();
+ e.returnValue = false;
+ }
+
+ return !!popup;
+ }
+})();
+
+// Responsive embeds script
+(function () {
+ let wrappers = document.querySelectorAll('.post__video, .post__iframe');
+
+ for (let i = 0; i < wrappers.length; i++) {
+ let embed = wrappers[i].querySelector('iframe, embed, video, object');
+
+ if (!embed) {
+ continue;
+ }
+
+ if (embed.getAttribute('data-responsive') === 'false') {
+ continue;
+ }
+
+ let w = embed.getAttribute('width');
+ let h = embed.getAttribute('height');
+ let ratio = false;
+
+ if (!w || !h) {
+ continue;
+ }
+
+ if (w.indexOf('%') > -1 && h.indexOf('%') > -1) { // percentage mode
+ w = parseFloat(w.replace('%', ''));
+ h = parseFloat(h.replace('%', ''));
+ ratio = h / w;
+ } else if (w.indexOf('%') === -1 && h.indexOf('%') === -1) { // pixels mode
+ w = parseInt(w, 10);
+ h = parseInt(h, 10);
+ ratio = h / w;
+ }
+
+ if (ratio !== false) {
+ let ratioValue = (ratio * 100) + '%';
+ wrappers[i].setAttribute('style', '--embed-aspect-ratio:' + ratioValue);
+ }
+ }
+})();
\ No newline at end of file
diff --git a/assets/js/scripts.min.js b/assets/js/scripts.min.js
new file mode 100644
index 0000000..0931993
--- /dev/null
+++ b/assets/js/scripts.min.js
@@ -0,0 +1 @@
+!function(e){var t={mobileMenuMode:"overlay",animationSpeed:300,submenuWidth:300,doubleClickTime:500,mobileMenuExpandableSubmenus:!1,isHoverMenu:!0,wrapperSelector:".navbar",buttonSelector:".navbar__toggle",menuSelector:".navbar__menu",submenuSelector:".navbar__submenu",mobileMenuSidebarLogoSelector:null,mobileMenuSidebarLogoUrl:null,relatedContainerForOverlayMenuSelector:null,ariaButtonAttribute:"aria-haspopup",separatorItemClass:"is-separator",parentItemClass:"has-submenu",submenuLeftPositionClass:"is-left-submenu",submenuRightPositionClass:"is-right-submenu",mobileMenuOverlayClass:"navbar_mobile_overlay",mobileMenuSubmenuWrapperClass:"navbar__submenu_wrapper",mobileMenuSidebarClass:"navbar_mobile_sidebar",mobileMenuSidebarOverlayClass:"navbar_mobile_sidebar__overlay",hiddenElementClass:"is-hidden",openedMenuClass:"is-active",noScrollClass:"no-scroll",relatedContainerForOverlayMenuClass:"is-visible"},s={};function i(e){for(var t=e.querySelectorAll(s.submenuSelector),i=0;ii&&(e.stopPropagation(),a(this,!0))})}}function a(e,t){if(!(!1===t&&e.parentNode.classList.contains(s.parentItemClass))){var i=document.querySelector(s.relatedContainerForOverlayMenuSelector),l=document.querySelector(s.buttonSelector),n=document.querySelector("."+s.mobileMenuOverlayClass);n||(n=document.querySelector("."+s.mobileMenuSidebarClass)),n.classList.add(s.hiddenElementClass),l.classList.remove(s.openedMenuClass),l.setAttribute(s.ariaButtonAttribute,!1),document.documentElement.classList.remove(s.noScrollClass),i&&i.classList.remove(s.relatedContainerForOverlayMenuClass);var a=document.querySelector("."+s.mobileMenuSidebarOverlayClass);a&&a.classList.add(s.hiddenElementClass)}}Object.keys(t).forEach(function(e){s[e]=t[e]}),"object"==typeof e&&Object.keys(e).forEach(function(t){s[t]=e[t]}),!function e(){if(document.querySelectorAll(s.wrapperSelector).length){var t,r,o,u,d,c,b;(function e(){for(var t=document.querySelectorAll(s.wrapperSelector+" ."+s.parentItemClass),i=0;i '),d+=document.querySelector(s.menuSelector).outerHTML,u.innerHTML=d,c=document.createElement("div"),c.classList.add(s.mobileMenuSidebarOverlayClass),c.classList.add(s.hiddenElementClass),document.body.appendChild(c),document.body.appendChild(u),s.mobileMenuExpandableSubmenus?(l(u),n(u)):i(u),u.addEventListener("click",function(e){e.stopPropagation()}),c.addEventListener("click",function(){u.classList.add(s.hiddenElementClass),c.classList.add(s.hiddenElementClass),b.classList.remove(s.openedMenuClass),b.setAttribute(s.ariaButtonAttribute,!1),document.documentElement.classList.remove(s.noScrollClass)}),b=document.querySelector(s.buttonSelector),b.addEventListener("click",function(){u.classList.toggle(s.hiddenElementClass),c.classList.toggle(s.hiddenElementClass),b.classList.toggle(s.openedMenuClass),b.setAttribute(s.ariaButtonAttribute,b.classList.contains(s.openedMenuClass)),document.documentElement.classList.toggle(s.noScrollClass)})),function e(){for(var t=document.querySelectorAll(s.menuSelector+" a"),i=0;i-1&&l.indexOf("%")>-1?(i=parseFloat(i.replace("%","")),n=(l=parseFloat(l.replace("%","")))/i):-1===i.indexOf("%")&&-1===l.indexOf("%")&&(i=parseInt(i,10),n=(l=parseInt(l,10))/i),!1!==n)){let a=100*n+"%";e[t].setAttribute("style","--embed-aspect-ratio:"+a)}}}();
\ No newline at end of file
diff --git a/assets/js/svg-fix.js b/assets/js/svg-fix.js
new file mode 100644
index 0000000..7a622a3
--- /dev/null
+++ b/assets/js/svg-fix.js
@@ -0,0 +1,19 @@
+// SVG map fix
+(function() {
+ var allItems = document.querySelectorAll('use');
+
+ for (var i = 0; i < allItems.length; i++) {
+ var item = allItems[i];
+ var anchor = '#' + item.getAttribute('xlink:href').split('#')[1];
+ var itemData = window.publiiSvgFix[anchor];
+
+ if(!itemData) {
+ console.log('ANCHOR', anchor, i);
+ continue;
+ }
+
+ var svgItem = item.parentNode;
+ svgItem.innerHTML = itemData.content;
+ svgItem.setAttribute('viewBox', itemData.viewbox);
+ }
+})();
\ No newline at end of file
diff --git a/assets/js/svg-map.js b/assets/js/svg-map.js
new file mode 100644
index 0000000..6751ed6
--- /dev/null
+++ b/assets/js/svg-map.js
@@ -0,0 +1,47 @@
+window.publiiSvgFix = {
+
+ "#website": {
+ "viewbox": "0 0 24 24",
+ "content": ""
+ },
+ "#facebook": {
+ "viewbox": "0 0 32 32",
+ "content": " "
+ },
+ "#twitter": {
+ "viewbox": "0 0 24 24",
+ "content": " "
+ },
+ "#instagram": {
+ "viewbox": "0 0 32 32",
+ "content": ""
+ },
+ "#linkedin": {
+ "viewbox": "0 0 34.48 32",
+ "content": ""
+ },
+ "#vimeo": {
+ "viewbox": "0 0 24.999 20.159",
+ "content": " "
+ },
+ "#youtube": {
+ "viewbox": "0 0 32 22.507",
+ "content": " "
+ },
+ "#pinterest": {
+ "viewbox": "0 0 32 32",
+ "content": " "
+ },
+ "#mix": {
+ "viewbox": "0 0 32 32",
+ "content": ""
+ },
+ "#buffer": {
+ "viewbox": "0 0 32 32",
+ "content": " "
+ },
+ "#whatsapp": {
+ "viewbox": "0 0 32 32",
+ "content": " "
+ }
+};
diff --git a/assets/svg/gallery-icons-dark.svg b/assets/svg/gallery-icons-dark.svg
new file mode 100644
index 0000000..0ee5eaa
--- /dev/null
+++ b/assets/svg/gallery-icons-dark.svg
@@ -0,0 +1,49 @@
+
+
+
+default-skin 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/svg/gallery-icons-light.svg b/assets/svg/gallery-icons-light.svg
new file mode 100644
index 0000000..166696a
--- /dev/null
+++ b/assets/svg/gallery-icons-light.svg
@@ -0,0 +1,54 @@
+
+
+
+
+default-skin 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/svg/svg-map.svg b/assets/svg/svg-map.svg
new file mode 100644
index 0000000..d113d91
--- /dev/null
+++ b/assets/svg/svg-map.svg
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/authors/anna-devminer/index.html b/authors/anna-devminer/index.html
new file mode 100644
index 0000000..ba798e1
--- /dev/null
+++ b/authors/anna-devminer/index.html
@@ -0,0 +1,12 @@
+Author: Anna. DevMiner - DevStack
\ No newline at end of file
diff --git a/balls/index.html b/balls/index.html
new file mode 100644
index 0000000..331b8f7
--- /dev/null
+++ b/balls/index.html
@@ -0,0 +1,12 @@
+Balls - DevStack
\ No newline at end of file
diff --git a/feed.json b/feed.json
new file mode 100644
index 0000000..8883045
--- /dev/null
+++ b/feed.json
@@ -0,0 +1,27 @@
+{
+ "version": "https://jsonfeed.org/version/1",
+ "title": "DevStack",
+ "description": "",
+ "home_page_url": "https://publii-testing.devminer.xyz",
+ "feed_url": "https://publii-testing.devminer.xyz/feed.json",
+ "user_comment": "",
+ "author": {
+ "name": "Anna. DevMiner"
+ },
+ "items": [
+ {
+ "id": "https://publii-testing.devminer.xyz/balls/",
+ "url": "https://publii-testing.devminer.xyz/balls/",
+ "title": "Balls",
+ "summary": ":YEP: Cock",
+ "content_html": ":YEP: Cock
",
+ "author": {
+ "name": "Anna. DevMiner"
+ },
+ "tags": [
+ ],
+ "date_published": "2024-02-07T18:12:18+01:00",
+ "date_modified": "2024-02-07T18:12:18+01:00"
+ }
+ ]
+}
diff --git a/feed.xml b/feed.xml
new file mode 100644
index 0000000..9154e65
--- /dev/null
+++ b/feed.xml
@@ -0,0 +1,32 @@
+
+
+ DevStack
+
+
+ 2024-02-07T18:12:18+01:00
+
+ Anna. DevMiner
+
+ https://publii-testing.devminer.xyz
+
+
+ Balls
+
+ Anna. DevMiner
+
+
+ https://publii-testing.devminer.xyz/balls/
+
+ 2024-02-07T18:12:18+01:00
+
+
+
+
+ :YEP: Cock
+ ]]>
+
+
+
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..a9c4152
--- /dev/null
+++ b/index.html
@@ -0,0 +1,12 @@
+DevStack
\ No newline at end of file
diff --git a/robots.txt b/robots.txt
new file mode 100644
index 0000000..107eaed
--- /dev/null
+++ b/robots.txt
@@ -0,0 +1,3 @@
+User-agent: *
+Disallow:
+Sitemap: https://publii-testing.devminer.xyz/sitemap.xml
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
new file mode 100644
index 0000000..bc28f9b
--- /dev/null
+++ b/sitemap.xml
@@ -0,0 +1,11 @@
+
+
+
+
+https://publii-testing.devminer.xyz/
+
+
+https://publii-testing.devminer.xyz/balls/
+2024-02-07T18:12:18+01:00
+
+
\ No newline at end of file
diff --git a/sitemap.xsl b/sitemap.xsl
new file mode 100644
index 0000000..c052476
--- /dev/null
+++ b/sitemap.xsl
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+ Sitemap XML
+
+
+
+
+
+
+
+
This sitemap contains URLs.
+
+
+
+ URL
+ Images
+ Last Modified
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tags/index.html b/tags/index.html
new file mode 100644
index 0000000..fa6d4ad
--- /dev/null
+++ b/tags/index.html
@@ -0,0 +1,12 @@
+All tags - DevStack
\ No newline at end of file