aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--assets/_sass/_layout.scss165
-rw-r--r--assets/_sass/base/_animations.scss46
-rw-r--r--assets/_sass/base/_helpers.scss10
-rw-r--r--assets/_sass/base/_mixins.scss95
-rw-r--r--assets/_sass/base/_reset.scss35
-rw-r--r--assets/_sass/base/_syntax.scss260
-rw-r--r--assets/_sass/base/_vars.scss41
-rw-r--r--assets/_sass/components/_page.scss174
-rw-r--r--assets/_sass/components/_pagination.scss20
-rw-r--r--assets/_sass/components/_post.scss447
-rw-r--r--assets/_sass/main.scss21
-rw-r--r--assets/_sass/pages/_fourofour.scss9
-rw-r--r--assets/_sass/partials/_burger-menu.scss68
-rw-r--r--assets/_sass/partials/_header-separator.scss27
-rw-r--r--assets/css/styles.css1297
-rw-r--r--compile-sass.dart8
-rw-r--r--pubspec.lock573
-rw-r--r--pubspec.yaml7
19 files changed, 3303 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 864e837..fb2e4f7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
/dist-newstyle/
/dist/
/deployment.txt
+/.dart_tool/
diff --git a/assets/_sass/_layout.scss b/assets/_sass/_layout.scss
new file mode 100644
index 0000000..0c2a1b7
--- /dev/null
+++ b/assets/_sass/_layout.scss
@@ -0,0 +1,165 @@
+.site-header {
+ display: grid;
+ @include justify-content();
+ padding: 0 20px;
+ text-align: center;
+
+ .site-header-wrapper {
+ position: relative;
+ overflow: hidden;
+ background: var(--main-color);
+ padding: 10px 25px 20px 25px;
+ border-radius: 0 0 5px 5px;
+ text-decoration: none;
+
+ @include transition(background .2s ease);
+
+ &:before { position: absolute; top: 0; left: -150%; content: ""; width: 50%; height: 100%;
+ background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .3) 100%);
+ background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .3) 100%);
+ @include skew(-45deg, 0);
+ }
+ &:hover {
+ background: var(--main-color-hover);
+ &:before {
+ animation: headerShine .35s;
+ }
+ }
+ .site-logo { display: block; margin: 0 0 10px;
+ img {
+ display: block;
+ }
+ }
+ .site-subtitle {
+ display: block;
+ font-family: 'Bebas Neue', sans-serif;
+ font-size: 11px;
+ line-height: 14px;
+ color: var(--grey-fc);
+ }
+ .site-title {
+ display: block;
+ font-family: 'Bebas Neue', sans-serif;
+ font-size: 26px;
+ line-height: 28px;
+ color: var(--grey-fc);
+ }
+ }
+}
+
+.site-navigation {
+ @include flexbox();
+ @include justify-content();
+ @include align-items();
+ @include flex-flow(row wrap);
+ gap: 10px 40px;
+ max-width: 800px;
+ margin: 30px auto 0;
+ padding: 0 20px;
+ text-align: center;
+
+ a, span {
+ position: relative;
+ text-decoration: none;
+ color: var(--grey-555);
+ padding: 0 0 2px;
+ @include transition(color .2s ease);
+ cursor: pointer;
+
+ &:before {
+ position: absolute;
+ opacity: 0;
+ left: 0;
+ bottom: 0;
+ width: 0%;
+ border-bottom: 2px solid var(--grey-222);
+
+ @include transition(width .18s ease, opacity .18s ease); content: "";
+ }
+
+ &:hover, &.active { color: var(--grey-222);
+ &:before {
+ width: 100%; opacity: 1;
+ }
+ }
+ }
+}
+
+@media screen and (max-width: 800px) {
+ .site-header {
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ z-index: 9;
+ background: var(--body-bg);
+ box-shadow: 0 2px 5px rgba(0, 0, 0, .1);
+
+ .site-header-wrapper {
+ @include flexbox();
+ @include align-items();
+ @include justify-content();
+ @include flex-flow(row wrap);
+ gap: 0 15px;
+ border-radius: 0;
+ padding: 20px;
+ background: transparent;
+
+ &:hover {
+ background: transparent;
+ }
+ .site-logo,
+ .site-subtitle {
+ display: none;
+ }
+ .site-title {
+ font-size: 32px;
+ line-height: 36px;
+ color: var(--main-color);
+ }
+ }
+ }
+
+ .site-navigation {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ @include justify-content(flex-start);
+ @include flex-flow(column nowrap);
+ gap: 20px 0;
+ @include translate(0, -100%);
+ @include transition(transform .25s ease-in-out);
+ padding: 100px 20px 0;
+ background: rgba(255, 255, 255, .9);
+ z-index: 10;
+
+ a, span {
+ color: var(--grey-222);
+ font-size: 30px;
+ line-height: 40px;
+ }
+ }
+}
+
+.wrapper {
+ max-width: 600px;
+ margin: 0 auto;
+ padding: 0 20px 35px;
+ border-bottom: 1px solid var(--grey-eee);
+
+ &.long {
+ max-width: 800px;
+ }
+}
+
+.site-footer {
+ max-width: 800px;
+ margin: 0 auto;
+ padding: 40px 20px;
+ font-size: 14px;
+ line-height: 22px;
+ color: var(--grey-ccc);
+ text-align: center;
+}
diff --git a/assets/_sass/base/_animations.scss b/assets/_sass/base/_animations.scss
new file mode 100644
index 0000000..2885970
--- /dev/null
+++ b/assets/_sass/base/_animations.scss
@@ -0,0 +1,46 @@
+@keyframes headerShine {
+ 100% {
+ left: 150%;
+ }
+}
+
+@keyframes fadeIn {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1;
+ }
+}
+
+@keyframes fadeOut {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ }
+}
+
+@keyframes zoomIn {
+ from {
+ opacity: 0;
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+ to {
+ opacity: 1;
+ }
+}
+
+@keyframes zoomOut {
+ from {
+ opacity: 1;
+ }
+ 50% {
+ opacity: 0;
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+ to {
+ opacity: 0;
+ }
+}
diff --git a/assets/_sass/base/_helpers.scss b/assets/_sass/base/_helpers.scss
new file mode 100644
index 0000000..d461516
--- /dev/null
+++ b/assets/_sass/base/_helpers.scss
@@ -0,0 +1,10 @@
+.hidden {
+ border: 0;
+ clip: rect(0 0 0 0);
+ height: 1px;
+ margin: -1px;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ width: 1px;
+}
diff --git a/assets/_sass/base/_mixins.scss b/assets/_sass/base/_mixins.scss
new file mode 100644
index 0000000..7541d12
--- /dev/null
+++ b/assets/_sass/base/_mixins.scss
@@ -0,0 +1,95 @@
+@mixin transition($transitions...) {
+ transition: $transitions;
+ -moz-transition: $transitions;
+ -webkit-transition: $transitions;
+ -o-transition: $transitions;
+}
+
+@mixin no-select {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+@mixin placeholder {
+ &.placeholder { @content }
+ &:-ms-input-placeholder { @content }
+ &:-moz-placeholder { @content }
+ &::-moz-placeholder { @content }
+ &::-webkit-input-placeholder { @content }
+}
+
+@mixin translate($val1, $val2) {
+ -webkit-transform: translate(#{$val1}, #{$val2});
+ -moz-transform: translate(#{$val1}, #{$val2});
+ -ms-transform: translate(#{$val1}, #{$val2});
+ -o-transform: translate(#{$val1}, #{$val2});
+ transform: translate(#{$val1}, #{$val2});
+}
+
+@mixin skew($x, $y) {
+ -webkit-transform: skew(#{$x}, #{$y});
+ -moz-transform: skew(#{$x}, #{$y});
+ -ms-transform: skew(#{$x}, #{$y});
+ -o-transform: skew(#{$x}, #{$y});
+ transform: skew(#{$x}, #{$y});
+}
+
+@mixin scale($val) {
+ -webkit-transform: scale(#{$val});
+ -moz-transform: scale(#{$val});
+ -ms-transform: scale(#{$val});
+ -o-transform: scale(#{$val});
+ transform: scale(#{$val});
+}
+
+@mixin rotate($deg) {
+ -webkit-transform: rotate(#{$deg});
+ -moz-transform: rotate(#{$deg});
+ -ms-transform: rotate(#{$deg});
+ -o-transform: rotate(#{$deg});
+ transform: rotate(#{$deg});
+}
+
+@mixin flexbox() {
+ display: -webkit-box;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+}
+
+@mixin inline-flex() {
+ display: -webkit-inline-box;
+ display: -webkit-inline-flex;
+ display: -moz-inline-flex;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+}
+
+@mixin flex($grow: 1, $shrink: 1, $basis: auto) {
+ -webkit-flex: $grow $shrink $basis;
+ -moz-flex: $grow $shrink $basis;
+ -ms-flex: $grow $shrink $basis;
+ flex: $grow $shrink $basis;
+}
+
+@mixin flex-flow($values: (row wrap)) {
+ -webkit-flex-flow: $values;
+ -moz-flex-flow: $values;
+ -ms-flex-flow: $values;
+ flex-flow: $values;
+}
+
+@mixin justify-content($pos: center) {
+ -webkit-justify-content: $pos;
+ justify-content: $pos;
+}
+
+@mixin align-items($align: center) {
+ -webkit-align-items: $align;
+ align-items: $align;
+}
diff --git a/assets/_sass/base/_reset.scss b/assets/_sass/base/_reset.scss
new file mode 100644
index 0000000..f896901
--- /dev/null
+++ b/assets/_sass/base/_reset.scss
@@ -0,0 +1,35 @@
+* {
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+}
+
+body {
+ margin: 0;
+ padding: 0;
+ font-family: 'PT Serif', serif;
+ font-size: 18px;
+ line-height: 30px;
+ color: var(--grey-555);
+ background: var(--body-bg);
+}
+
+header,
+nav,
+section,
+main,
+article,
+aside,
+figure,
+footer,
+iframe,
+object,
+svg {
+ display: block;
+ margin: 0;
+}
+
+@media screen and (max-width: 800px) {
+ body {
+ padding: 80px 0 0;
+ }
+}
diff --git a/assets/_sass/base/_syntax.scss b/assets/_sass/base/_syntax.scss
new file mode 100644
index 0000000..8951f90
--- /dev/null
+++ b/assets/_sass/base/_syntax.scss
@@ -0,0 +1,260 @@
+.highlight {
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+ padding: 30px;
+
+ .lineno {
+ padding: 0 15px 0 0;
+ }
+ // Comment
+ .c {
+ color: #998;
+ font-style: italic
+ }
+ // Error
+ .err {
+ color: #a61717;
+ background-color: #e3d2d2
+ }
+ // Keyword
+ .k {
+ font-weight: bold
+ }
+ // Operator
+ .o {
+ font-weight: bold
+ }
+ // Comment.Multiline
+ .cm {
+ color: #998;
+ font-style: italic
+ }
+ // Comment.Preproc
+ .cp {
+ color: #999;
+ font-weight: bold
+ }
+ // Comment.Single
+ .c1 {
+ color: #998;
+ font-style: italic
+ }
+ // Comment.Special
+ .cs {
+ color: #999;
+ font-weight: bold;
+ font-style: italic
+ }
+ // Generic.Deleted
+ .gd {
+ color: #000;
+ background-color: #fdd
+ }
+ // Generic.Deleted.Specific
+ .gd .x {
+ color: #000;
+ background-color: #faa
+ }
+ // Generic.Emph
+ .ge {
+ font-style: italic
+ }
+ // Generic.Error
+ .gr {
+ color: #a00
+ }
+ // Generic.Heading
+ .gh {
+ color: #999
+ }
+ // Generic.Inserted
+ .gi {
+ color: #000;
+ background-color: #dfd
+ }
+ // Generic.Inserted.Specific
+ .gi .x {
+ color: #000;
+ background-color: #afa
+ }
+ // Generic.Output
+ .go {
+ color: #888
+ }
+ // Generic.Prompt
+ .gp {
+ color: #555
+ }
+ // Generic.Strong
+ .gs {
+ font-weight: bold
+ }
+ // Generic.Subheading
+ .gu {
+ color: #aaa
+ }
+ // Generic.Traceback
+ .gt {
+ color: #a00
+ }
+ // Keyword.Constant
+ .kc {
+ font-weight: bold
+ }
+ // Keyword.Declaration
+ .kd {
+ font-weight: bold
+ }
+ // Keyword.Pseudo
+ .kp {
+ font-weight: bold
+ }
+ // Keyword.Reserved
+ .kr {
+ font-weight: bold
+ }
+ // Keyword.Type
+ .kt {
+ color: #458;
+ font-weight: bold
+ }
+ // Literal.Number
+ .m {
+ color: #099
+ }
+ // Literal.String
+ .s {
+ color: #d14
+ }
+ // Name.Attribute
+ .na {
+ color: #008080
+ }
+ // Name.Builtin
+ .nb {
+ color: #0086B3
+ }
+ // Name.Class
+ .nc {
+ color: #458;
+ font-weight: bold
+ }
+ // Name.Constant
+ .no {
+ color: #008080
+ }
+ // Name.Entity
+ .ni {
+ color: #800080
+ }
+ // Name.Exception
+ .ne {
+ color: #900;
+ font-weight: bold
+ }
+ // Name.Function
+ .nf {
+ color: #900;
+ font-weight: bold
+ }
+ // Name.Namespace
+ .nn {
+ color: #555
+ }
+ // Name.Tag
+ .nt {
+ color: #000080
+ }
+ // Name.Variable
+ .nv {
+ color: #008080
+ }
+ // Operator.Word
+ .ow {
+ font-weight: bold
+ }
+ // Text.Whitespace
+ .w {
+ color: #bbb
+ }
+ // Literal.Number.Float
+ .mf {
+ color: #099
+ }
+ // Literal.Number.Hex
+ .mh {
+ color: #099
+ }
+ // Literal.Number.Integer
+ .mi {
+ color: #099
+ }
+ // Literal.Number.Oct
+ .mo {
+ color: #099
+ }
+ // Literal.String.Backtick
+ .sb {
+ color: #d14
+ }
+ // Literal.String.Char
+ .sc {
+ color: #d14
+ }
+ // Literal.String.Doc
+ .sd {
+ color: #d14
+ }
+ // Literal.String.Double
+ .s2 {
+ color: #d14
+ }
+ // Literal.String.Escape
+ .se {
+ color: #d14
+ }
+ // Literal.String.Heredoc
+ .sh {
+ color: #d14
+ }
+ // Literal.String.Interpol
+ .si {
+ color: #d14
+ }
+ // Literal.String.Other
+ .sx {
+ color: #d14
+ }
+ // Literal.String.Regex
+ .sr {
+ color: #009926
+ }
+ // Literal.String.Single
+ .s1 {
+ color: #d14
+ }
+ // Literal.String.Symbol
+ .ss {
+ color: #990073
+ }
+ // Name.Builtin.Pseudo
+ .bp {
+ color: #999
+ }
+ // Name.Variable.Class
+ .vc {
+ color: #008080
+ }
+ // Name.Variable.Global
+ .vg {
+ color: #008080
+ }
+ // Name.Variable.Instance
+ .vi {
+ color: #008080
+ }
+ // Literal.Number.Integer.Long
+ .il {
+ color: #099
+ }
+}
diff --git a/assets/_sass/base/_vars.scss b/assets/_sass/base/_vars.scss
new file mode 100644
index 0000000..25435ff
--- /dev/null
+++ b/assets/_sass/base/_vars.scss
@@ -0,0 +1,41 @@
+:root, [data-theme="light"] {
+ --body-bg: #fafafa;
+
+ --main-color: #639f93;
+ --main-color-hover: #5b9287;
+
+ --form-success-bg: #d0f1cc;
+ --form-success-text: #597755;
+ --form-error-bg: #f1cccc;
+ --form-error-text: #775555;
+
+ --grey-222: #222;
+ --grey-555: #555;
+ --grey-aaa: #aaa;
+ --grey-ccc: #ccc;
+ --grey-ddd: #ddd;
+ --grey-eee: #eee;
+ --grey-fc: #fcfcfc;
+ --grey-fa: #fafafa;
+}
+
+[data-theme="dark"] {
+ --body-bg: #050505;
+
+ --main-color: #639f93;
+ --main-color-hover: #5b9287;
+
+ --form-success-bg: #d0f1cc;
+ --form-success-text: #597755;
+ --form-error-bg: #f1cccc;
+ --form-error-text: #775555;
+
+ --grey-222: #ddd;
+ --grey-555: #ddd;
+ --grey-aaa: #777;
+ --grey-ccc: #666;
+ --grey-ddd: #666;
+ --grey-eee: #222;
+ --grey-fc: #fcfcfc;
+ --grey-fa: #151515;
+}
diff --git a/assets/_sass/components/_page.scss b/assets/_sass/components/_page.scss
new file mode 100644
index 0000000..d4ec79b
--- /dev/null
+++ b/assets/_sass/components/_page.scss
@@ -0,0 +1,174 @@
+.page {
+ .page-title {
+ margin: 0 0 25px;
+ font-family: "PT Sans", sans-serif;
+ font-size: 32px;
+ line-height: 42px;
+ font-weight: 700;
+ color: var(--grey-222);
+ }
+ .page-content {
+ abbr {
+ border-bottom: 1px dotted var(--grey-555);
+ text-decoration: none;
+ cursor: help;
+ }
+ code,
+ kbd,
+ pre {
+ margin: 0;
+ font-family: monospace;
+ word-wrap: break-word;
+ word-break: break-word;
+ white-space: pre-wrap;
+ }
+ address,
+ cite,
+ var {
+ font-style: italic;
+ }
+ blockquote {
+ margin: 40px 0;
+ padding: 0 0 0 20px;
+ border-left: 3px solid var(--grey-555);
+ color: var(--grey-222);
+ font-weight: 700;
+ }
+ em,
+ strong {
+ color: var(--grey-222);
+ }
+
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6 {
+ font-family: "PT Sans", sans-serif;
+ margin: 40px 0 25px 0;
+ color: var(--grey-222);
+ }
+ h4,
+ h5,
+ h6 {
+ margin: 25px 0;
+ }
+ h1 {
+ font-size: 28px;
+ }
+ h2 {
+ font-size: 26px;
+ }
+ h3 {
+ font-size: 22px;
+ }
+ h4 {
+ font-size: 20px;
+ }
+ h5 {
+ font-size: 18px;
+ }
+ h6 {
+ font-size: 16px;
+ }
+
+ a {
+ color: var(--main-color);
+ &:hover {
+ text-decoration: none;
+ }
+ }
+
+ img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+ }
+
+ ul {
+ list-style-type: disc;
+ list-style-position: inside;
+ }
+
+ ul,
+ ol {
+ margin: 15px 0;
+ padding: 0 0 0 20px;
+ ul,
+ ol {
+ padding: 0 0 0 20px;
+ }
+ li {
+ margin: 5px 0;
+ & > code {
+ font-size: 14px;
+ padding: 3px 6px;
+ margin: 0 4px;
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+ }
+ }
+ }
+
+ dl {
+ margin: 40px 0;
+ dt {
+ margin: 10px 0 0;
+ font-weight: 700;
+ }
+ dd {
+ margin: 5px 0;
+ & > code {
+ font-size: 14px;
+ padding: 3px 6px;
+ margin: 0 4px;
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+ }
+ }
+ }
+
+ p {
+ margin: 15px 0;
+ & > code {
+ font-size: 14px;
+ padding: 3px 6px;
+ margin: 0 4px;
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+ }
+ }
+
+ .alignleft {
+ float: left;
+ margin: 20px 30px 10px 0;
+ }
+ .alignright {
+ float: right;
+ margin: 20px 0 10px 20px;
+ }
+ .aligncenter {
+ clear: both;
+ margin: 0 auto 20px;
+ }
+
+ figcaption {
+ font-size: 13px;
+ font-style: italic;
+ padding-top: 10px;
+ }
+
+ .iframe-wrapper {
+ position: relative;
+ padding-top: 56.25%;
+ & > iframe {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ }
+ }
+ }
+}
diff --git a/assets/_sass/components/_pagination.scss b/assets/_sass/components/_pagination.scss
new file mode 100644
index 0000000..fcb1b23
--- /dev/null
+++ b/assets/_sass/components/_pagination.scss
@@ -0,0 +1,20 @@
+.pagination {
+ display: grid;
+ grid-template-columns: 100px 1fr 100px;
+ margin: 50px 0 0;
+ font-size: 16px;
+
+ .previous,
+ .next {
+ text-decoration: none;
+ color: var(--grey-555);
+
+ &:hover {
+ text-decoration: underline;
+ }
+ }
+ .page_number {
+ text-align: center;
+ color: var(--grey-ccc);
+ }
+}
diff --git a/assets/_sass/components/_post.scss b/assets/_sass/components/_post.scss
new file mode 100644
index 0000000..5eed7cb
--- /dev/null
+++ b/assets/_sass/components/_post.scss
@@ -0,0 +1,447 @@
+.post-lists-title {
+ font-family: 'PT Sans', sans-serif;
+ font-size: 24px;
+ line-height: 42px;
+ font-weight: 700;
+ color: var(--grey-aaa);
+ margin: 0 0 40px;
+ text-align: center;
+
+ span {
+ color: var(--grey-222);
+ }
+}
+
+.post-list {
+ display: grid;
+ gap: 100px 0;
+}
+
+.post {
+ position: relative;
+
+ .post-title {
+ margin: 0 0 25px;
+ font-family: 'PT Sans', sans-serif;
+ font-size: 32px;
+ line-height: 42px;
+ font-weight: 700;
+ color: var(--grey-222);
+
+ a {
+ color: var(--grey-222);
+ text-decoration: none;
+
+ &:hover {
+ text-decoration: underline;
+ }
+ }
+ }
+
+ .post-author {
+ position: absolute;
+ top: 10px;
+ left: -200px;
+ width: 150px;
+ text-align: right;
+
+ .author-avatar {
+ display: inline-block;
+ width: 50px;
+ height: 50px;
+ border-radius: 50%;
+ fill: currentColor;
+ color: var(--grey-ddd);
+ }
+ .author-info {
+ .author-name {
+ display: block;
+ margin: 10px 0 4px;
+ font-family: 'PT Sans', sans-serif;
+ font-size: 16px;
+ line-height: 20px;
+ font-weight: 700;
+ color: var(--grey-222);
+ text-transform: uppercase;
+ }
+ .author-title {
+ display: block;
+ font-size: 12px;
+ line-height: 16px;
+ font-style: italic;
+ color: var(--grey-aaa);
+ }
+ }
+
+ .post-meta {
+ position: relative;
+ margin: 15px 0 0;
+ padding: 15px 0 0;
+ line-height: 20px;
+ font-size: 14px;
+ color: var(--grey-aaa);
+
+ &:before {
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 30px;
+ height: 1px;
+ background: var(--grey-ddd);
+ content: "";
+ }
+
+ .post-date {
+ position: relative;
+ margin: 0 5px 0 0;
+ padding: 0 10px 0 0;
+
+ &:after {
+ position: absolute;
+ top: 50%;
+ right: 0;
+ width: 3px;
+ height: 3px;
+ border-radius: 50%;
+ background: var(--grey-ccc);
+ content: "";
+ }
+ }
+ .post-categories {
+ position: relative;
+ @include flexbox();
+ @include justify-content(flex-end);
+ gap: 5px;
+ margin: 8px 0 0;
+
+ a {
+ color: var(--main-color);
+ text-decoration: none;
+
+ &:hover {
+ text-decoration: underline;
+ }
+ }
+ }
+ }
+}
+
+.post-content {
+ abbr {
+ border-bottom: 1px dotted var(--grey-555);
+ text-decoration: none;
+ cursor: help;
+ }
+ code, kbd, pre {
+ margin: 0;
+ font-family: monospace;
+ word-wrap: break-word;
+ word-break: break-word;
+ white-space: pre-wrap;
+ }
+ address, cite, var {
+ font-style: italic;
+ }
+ blockquote {
+ margin: 40px 0;
+ padding: 0 0 0 20px;
+ border-left: 3px solid var(--grey-555);
+ color: var(--grey-222);
+ font-weight: 700;
+ }
+ em, strong {
+ color: var(--grey-222);
+ }
+
+ h1, h2, h3, h4, h5, h6 {
+ font-family: 'PT Sans', sans-serif;
+ margin: 40px 0 25px 0;
+ color: var(--grey-222);
+ }
+ h4, h5, h6 {
+ margin: 25px 0;
+ }
+ h1 {
+ font-size: 28px;
+ }
+ h2 {
+ font-size: 26px;
+ }
+ h3 {
+ font-size: 22px;
+ }
+ h4 {
+ font-size: 20px;
+ }
+ h5 {
+ font-size: 18px;
+ }
+ h6 {
+ font-size: 16px;
+ }
+
+ a {
+ color: var(--main-color);
+
+ &:hover {
+ text-decoration: none;
+ }
+ }
+ img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+ }
+
+ ul {
+ list-style-type: disc;
+ list-style-position: inside;
+ }
+
+ ul, ol {
+ margin: 15px 0;
+ padding: 0 0 0 20px;
+
+ ul, ol {
+ padding: 0 0 0 20px;
+ }
+ li {
+ margin: 5px 0;
+
+ & > code {
+ font-size: 14px;
+ padding: 3px 6px;
+ margin: 0 4px;
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+ }
+ }
+ }
+
+ dl {
+ margin: 40px 0;
+
+ dt {
+ margin: 10px 0 0;
+ font-weight: 700;
+ }
+ dd {
+ margin: 5px 0;
+
+ & > code {
+ font-size: 14px;
+ padding: 3px 6px;
+ margin: 0 4px;
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+ }
+ }
+ }
+
+ p {
+ margin: 15px 0;
+
+ & > code {
+ font-size: 14px;
+ padding: 3px 6px;
+ margin: 0 4px;
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+ }
+ }
+
+ .alignleft {
+ float: left;
+ margin: 20px 30px 10px 0;
+ }
+ .alignright {
+ float: right;
+ margin: 20px 0 10px 20px;
+ }
+ .aligncenter {
+ clear: both;
+ margin: 0 auto 20px;
+ }
+
+ figcaption {
+ font-size: 13px;
+ font-style: italic;
+ padding-top: 10px;
+ }
+
+ .iframe-wrapper {
+ position: relative;
+ padding-top: 56.25%;
+
+ & > iframe {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ }
+ }
+
+ .read-more-button {
+ font-size: 16px;
+ color: var(--grey-555);
+ }
+}
+
+.post-footer {
+ @include flexbox();
+ @include justify-content(space-between);
+ @include align-items(flex-start);
+ gap: 0 20px;
+ margin: 50px 0 0;
+
+ .post-tags {
+ @include flexbox();
+ @include flex-flow(row wrap);
+ @include flex(9, 1, auto);
+ gap: 0 20px;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+
+ li {
+ a {
+ font-size: 14px;
+ font-family: 'PT Sans', sans-serif;
+ color: var(--grey-ccc);
+ text-decoration: none;
+ @include transition(all .15s ease);
+ &:hover {
+ color: var(--grey-555);
+ }
+ }
+ }
+ }
+ .post-share {
+ position: relative;
+ @include flex(0, 0, auto);
+ border: 1px solid var(--grey-ddd);
+ overflow: hidden;
+
+ &:hover {
+ & > span {
+ margin-left: -100%;
+ }
+ & > ul {
+ left: 0;
+ }
+ }
+ span {
+ display: block;
+ width: 100%;
+ padding: 0 15px;
+ font-family: 'PT Sans', sans-serif;
+ font-size: 12px;
+ text-transform: uppercase;
+ text-align: center;
+ letter-spacing: .1em;
+ color: var(--grey-aaa);
+ cursor: pointer;
+ @include transition(margin .2s ease);
+ }
+ ul {
+ position: absolute;
+ top: 0;
+ left: 100%;
+ width: 100%;
+ height: 100%;
+ @include flexbox();
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ @include transition(left .2s ease);
+
+ li {
+ @include flex(1, 0, auto);
+ cursor: pointer;
+
+ &:last-child {
+ border-left: 1px solid var(--grey-ddd);
+ }
+ a {
+ @include flexbox();
+ @include align-items();
+ @include justify-content();
+ height: 100%;
+ color: var(--grey-ccc);
+ &:hover {
+ background: var(--grey-eee);
+ }
+ svg {
+ fill: currentColor;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ .post-comments {
+ position: relative;
+ margin: 40px 0 0;
+ padding: 20px 0 0;
+ border-top: 1px solid var(--grey-ddd);
+ }
+}
+
+
+@media screen and (max-width: 960px) {
+ .post {
+ .post-title {
+ margin: 0 0 15px;
+ }
+ .post-author {
+ @include flexbox();
+ @include align-items();
+ @include flex-flow(row wrap);
+ gap: 15px;
+ position: static;
+ width: 100%;
+ margin: 0 0 20px;
+ text-align: left;
+ .author-avatar {
+ width: 36px;
+ height: 36px;
+ }
+ .author-info {
+ .author-name {
+ margin: 0;
+ color: var(--grey-555);
+ text-transform: initial;
+ }
+ .author-title { display: none; }
+ }
+ .post-meta {
+ @include flexbox();
+ @include flex-flow(row wrap);
+ margin: 0;
+ margin-left: auto;
+ padding: 0;
+
+ &:before {
+ content: none;
+ }
+ .post-categories {
+ margin: 0 0 0 5px;
+ padding: 0 0 0 10px;
+
+ &:before {
+ position: absolute;
+ top: 50%;
+ left: 0;
+ width: 3px;
+ height: 3px;
+ border-radius: 50%;
+ background: var(--grey-ccc);
+ content: "";
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/assets/_sass/main.scss b/assets/_sass/main.scss
new file mode 100644
index 0000000..a20dba4
--- /dev/null
+++ b/assets/_sass/main.scss
@@ -0,0 +1,21 @@
+@import 'base/vars';
+@import 'base/mixins';
+@import 'base/reset';
+@import 'base/syntax';
+@import 'base/animations';
+@import 'base/helpers';
+
+//Layout
+@import 'layout';
+
+//Pages
+@import 'pages/fourofour';
+
+//Components
+@import 'components/post';
+@import 'components/page';
+@import 'components/pagination';
+
+//Partials
+@import 'partials/header-separator';
+@import 'partials/burger-menu';
diff --git a/assets/_sass/pages/_fourofour.scss b/assets/_sass/pages/_fourofour.scss
new file mode 100644
index 0000000..5257ff1
--- /dev/null
+++ b/assets/_sass/pages/_fourofour.scss
@@ -0,0 +1,9 @@
+.page-not-found {
+ text-align: center;
+
+ svg {
+ fill: currentColor;
+ color: var(--grey-ddd);
+ margin: 0 auto;
+ }
+}
diff --git a/assets/_sass/partials/_burger-menu.scss b/assets/_sass/partials/_burger-menu.scss
new file mode 100644
index 0000000..2bea84c
--- /dev/null
+++ b/assets/_sass/partials/_burger-menu.scss
@@ -0,0 +1,68 @@
+.toggleBurger {
+ display: none;
+
+ &:checked {
+ & ~ .site-navigation {
+ @include translate(0, 0);
+ }
+ & ~ .toggleBurgerWrapper {
+ span {
+ background: transparent;
+ &:before {
+ top: 0;
+ @include rotate(135deg);
+ }
+ &:after {
+ top: 0;
+ @include rotate(-135deg);
+ }
+ }
+ }
+ }
+}
+
+.toggleBurgerWrapper {
+ display: none;
+ position: fixed;
+ top: 20px;
+ left: 20px;
+ width: 25px;
+ height: 30px;
+ cursor: pointer;
+ z-index: 100;
+ @include no-select();
+
+ span {
+ position: absolute;
+ top: 50%;
+ height: 2px;
+ width: 100%;
+ background: var(--grey-222);
+
+ @include transition(all .3s ease);
+ @include translate(0, -50%);
+
+ &:before,
+ &:after {
+ position: absolute;
+ height: 2px;
+ width: 100%;
+ background: var(--grey-222);
+ content: "";
+
+ @include transition(all .3s ease);
+ }
+ &:before {
+ top: -6px;
+ }
+ &:after {
+ top: 6px;
+ }
+ }
+}
+
+@media screen and (max-width: 800px) {
+ .toggleBurgerWrapper {
+ display: block;
+ }
+}
diff --git a/assets/_sass/partials/_header-separator.scss b/assets/_sass/partials/_header-separator.scss
new file mode 100644
index 0000000..4c264df
--- /dev/null
+++ b/assets/_sass/partials/_header-separator.scss
@@ -0,0 +1,27 @@
+.header-content-separator {
+ position: relative;
+ margin: 40px auto;
+ width: 4px;
+ height: 4px;
+ border-radius: 50%;
+ background: var(--grey-ccc);
+
+ &:before {
+ position: absolute;
+ left: -8px;
+ width: 4px;
+ height: 4px;
+ border-radius: 50%;
+ background: var(--grey-ccc);
+ content: "";
+ }
+ &:after {
+ position: absolute;
+ left: 8px;
+ width: 4px;
+ height: 4px;
+ border-radius: 50%;
+ background: var(--grey-ccc);
+ content: "";
+ }
+}
diff --git a/assets/css/styles.css b/assets/css/styles.css
index 7b985e2..258be18 100644
--- a/assets/css/styles.css
+++ b/assets/css/styles.css
@@ -1 +1,1296 @@
-:root,[data-theme="light"]{--body-bg: #fafafa;--main-color: #639f93;--main-color-hover: #5b9287;--form-success-bg: #d0f1cc;--form-success-text: #597755;--form-error-bg: #f1cccc;--form-error-text: #775555;--grey-222: #222;--grey-555: #555;--grey-aaa: #aaa;--grey-ccc: #ccc;--grey-ddd: #ddd;--grey-eee: #eee;--grey-fc: #fcfcfc;--grey-fa: #fafafa}[data-theme="dark"]{--body-bg: #050505;--main-color: #639f93;--main-color-hover: #5b9287;--form-success-bg: #d0f1cc;--form-success-text: #597755;--form-error-bg: #f1cccc;--form-error-text: #775555;--grey-222: #ddd;--grey-555: #ddd;--grey-aaa: #777;--grey-ccc: #666;--grey-ddd: #666;--grey-eee: #222;--grey-fc: #fcfcfc;--grey-fa: #151515}*{box-sizing:border-box;-moz-box-sizing:border-box}body{margin:0;padding:0;font-family:'PT Serif', serif;font-size:18px;line-height:30px;color:var(--grey-555);background:var(--body-bg)}header,nav,section,main,article,aside,figure,footer,iframe,object,svg{display:block;margin:0}@media screen and (max-width: 800px){body{padding:80px 0 0}}.highlight{background:var(--grey-fa);border:1px solid var(--grey-ccc);padding:30px}.highlight .lineno{padding:0 15px 0 0}.highlight .c{color:#998;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .k{font-weight:bold}.highlight .o{font-weight:bold}.highlight .cm{color:#998;font-style:italic}.highlight .cp{color:#999;font-weight:bold}.highlight .c1{color:#998;font-style:italic}.highlight .cs{color:#999;font-weight:bold;font-style:italic}.highlight .gd{color:#000;background-color:#fdd}.highlight .gd .x{color:#000;background-color:#faa}.highlight .ge{font-style:italic}.highlight .gr{color:#a00}.highlight .gh{color:#999}.highlight .gi{color:#000;background-color:#dfd}.highlight .gi .x{color:#000;background-color:#afa}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gs{font-weight:bold}.highlight .gu{color:#aaa}.highlight .gt{color:#a00}.highlight .kc{font-weight:bold}.highlight .kd{font-weight:bold}.highlight .kp{font-weight:bold}.highlight .kr{font-weight:bold}.highlight .kt{color:#458;font-weight:bold}.highlight .m{color:#099}.highlight .s{color:#d14}.highlight .na{color:#008080}.highlight .nb{color:#0086B3}.highlight .nc{color:#458;font-weight:bold}.highlight .no{color:#008080}.highlight .ni{color:#800080}.highlight .ne{color:#900;font-weight:bold}.highlight .nf{color:#900;font-weight:bold}.highlight .nn{color:#555}.highlight .nt{color:#000080}.highlight .nv{color:#008080}.highlight .ow{font-weight:bold}.highlight .w{color:#bbb}.highlight .mf{color:#099}.highlight .mh{color:#099}.highlight .mi{color:#099}.highlight .mo{color:#099}.highlight .sb{color:#d14}.highlight .sc{color:#d14}.highlight .sd{color:#d14}.highlight .s2{color:#d14}.highlight .se{color:#d14}.highlight .sh{color:#d14}.highlight .si{color:#d14}.highlight .sx{color:#d14}.highlight .sr{color:#009926}.highlight .s1{color:#d14}.highlight .ss{color:#990073}.highlight .bp{color:#999}.highlight .vc{color:#008080}.highlight .vg{color:#008080}.highlight .vi{color:#008080}.highlight .il{color:#099}@keyframes headerShine{100%{left:150%}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes zoomIn{from{opacity:0;transform:scale3d(0.3, 0.3, 0.3)}to{opacity:1}}@keyframes zoomOut{from{opacity:1}50%{opacity:0;transform:scale3d(0.3, 0.3, 0.3)}to{opacity:0}}.hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wrapper{max-width:600px;margin:0 auto;padding:0 20px 35px;border-bottom:1px solid var(--grey-eee)}.wrapper.long{max-width:800px}.site-header{display:grid;-webkit-justify-content:center;justify-content:center;padding:0 20px;text-align:center}.site-header .site-header-wrapper{position:relative;overflow:hidden;background:var(--main-color);padding:10px 25px 20px 25px;border-radius:0 0 5px 5px;text-decoration:none;transition:background 0.2s ease;-moz-transition:background 0.2s ease;-webkit-transition:background 0.2s ease;-o-transition:background 0.2s ease}.site-header .site-header-wrapper:before{position:absolute;top:0;left:-150%;content:"";width:50%;height:100%;background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.3) 100%);background:linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.3) 100%);-webkit-transform:skew(-45deg, 0);-moz-transform:skew(-45deg, 0);-ms-transform:skew(-45deg, 0);-o-transform:skew(-45deg, 0);transform:skew(-45deg, 0)}.site-header .site-header-wrapper:hover{background:var(--main-color-hover)}.site-header .site-header-wrapper:hover:before{animation:headerShine .35s}.site-header .site-header-wrapper .site-logo{display:block;margin:0 0 10px}.site-header .site-header-wrapper .site-logo img{display:block}.site-header .site-header-wrapper .site-subtitle{display:block;font-family:'Bebas Neue', sans-serif;font-size:11px;line-height:14px;color:var(--grey-fc)}.site-header .site-header-wrapper .site-title{display:block;font-family:'Bebas Neue', sans-serif;font-size:26px;line-height:28px;color:var(--grey-fc)}@media screen and (max-width: 800px){.site-header{position:fixed;left:0;top:0;width:100%;z-index:9;background:var(--body-bg);box-shadow:0 2px 5px rgba(0,0,0,0.1)}.site-header .site-header-wrapper{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-flow:row wrap;-moz-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;gap:0 15px;border-radius:0;padding:20px;background:transparent}.site-header .site-header-wrapper:hover{background:transparent}.site-header .site-header-wrapper .site-logo,.site-header .site-header-wrapper .site-subtitle{display:none}.site-header .site-header-wrapper .site-title{font-size:32px;line-height:36px;color:var(--main-color)}}.site-navigation{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;align-items:center;-webkit-flex-flow:row wrap;-moz-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;gap:10px 40px;max-width:800px;margin:30px auto 0;padding:0 20px;text-align:center}.site-navigation a,.site-navigation span{position:relative;text-decoration:none;color:var(--grey-555);padding:0 0 2px;transition:color 0.2s ease;-moz-transition:color 0.2s ease;-webkit-transition:color 0.2s ease;-o-transition:color 0.2s ease;cursor:pointer}.site-navigation a:before,.site-navigation span:before{position:absolute;opacity:0;left:0;bottom:0;width:0%;border-bottom:2px solid var(--grey-222);transition:width 0.18s ease,opacity 0.18s ease;-moz-transition:width 0.18s ease,opacity 0.18s ease;-webkit-transition:width 0.18s ease,opacity 0.18s ease;-o-transition:width 0.18s ease,opacity 0.18s ease;content:""}.site-navigation a:hover,.site-navigation a.active,.site-navigation span:hover,.site-navigation span.active{color:var(--grey-222)}.site-navigation a:hover:before,.site-navigation a.active:before,.site-navigation span:hover:before,.site-navigation span.active:before{width:100%;opacity:1}@media screen and (max-width: 800px){.site-navigation{position:fixed;bottom:0;left:0;width:100%;height:100%;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-flow:column nowrap;-moz-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap;gap:20px 0;-webkit-transform:translate(0, -100%);-moz-transform:translate(0, -100%);-ms-transform:translate(0, -100%);-o-transform:translate(0, -100%);transform:translate(0, -100%);transition:transform 0.25s ease-in-out;-moz-transition:transform 0.25s ease-in-out;-webkit-transition:transform 0.25s ease-in-out;-o-transition:transform 0.25s ease-in-out;padding:100px 20px 0;background:rgba(255,255,255,0.9);z-index:10}.site-navigation a,.site-navigation span{color:var(--grey-222);font-size:30px;line-height:40px}}.site-footer{max-width:800px;margin:0 auto;padding:40px 20px;font-size:14px;line-height:22px;color:var(--grey-ccc);text-align:center}.page-work .projects-list{display:grid;gap:40px 20px;grid-template-columns:repeat(auto-fit, minmax(240px, 1fr))}.page-work .projects-list .project{text-align:center}.page-work .projects-list .project .project-cover{display:block;margin:0 0 15px;transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-webkit-transition:transform 0.2s ease;-o-transition:transform 0.2s ease}.page-work .projects-list .project .project-cover:hover{-webkit-transform:scale(1.08);-moz-transform:scale(1.08);-ms-transform:scale(1.08);-o-transform:scale(1.08);transform:scale(1.08)}.page-work .projects-list .project .project-cover img{display:block;width:100%;height:auto}.page-work .projects-list .project .project-title{font-size:18px;margin:0 0 5px}.page-work .projects-list .project .project-title a{color:var(--grey-222);text-decoration:none}.page-work .projects-list .project .project-title a:hover{text-decoration:underline}.page-work .projects-list .project .project-category{display:block;font-family:'PT Sans', sans-serif;font-size:12px;line-height:16px;color:var(--grey-aaa);text-transform:uppercase;letter-spacing:.1em}.page-project{display:grid;gap:50px;grid-template-columns:7fr 3fr;grid-template-rows:auto;grid-template-areas:"carousel carousel" "content sidebar"}.page-project .section-title{display:block;font-family:'PT Sans', sans-serif;font-size:13px;color:var(--grey-222);text-transform:uppercase;letter-spacing:.1em}.page-project .project-gallery{grid-area:carousel;position:relative;overflow:hidden}.page-project .project-gallery .slides{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;transition:transform 0.5s ease;-moz-transition:transform 0.5s ease;-webkit-transition:transform 0.5s ease;-o-transition:transform 0.5s ease}.page-project .project-gallery .slides .slide{position:relative;width:100%;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex:1 0 auto;-moz-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;padding:50% 0 0}.page-project .project-gallery .slides .slide figure a{display:block}.page-project .project-gallery .slides .slide figure a img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.page-project .project-gallery .gallery-nav{display:grid;gap:0 5px;grid-auto-flow:column;position:absolute;bottom:20px;right:20px;z-index:1}.page-project .project-gallery .gallery-nav label{width:12px;height:12px;background:transparent;border:2px solid var(--grey-222);display:block;border-radius:50%;transition:background 0.1s ease;-moz-transition:background 0.1s ease;-webkit-transition:background 0.1s ease;-o-transition:background 0.1s ease;cursor:pointer}.page-project .project-gallery .gallery-nav label.active,.page-project .project-gallery .gallery-nav label:hover{background:var(--grey-222)}.page-project .project-overview{grid-area:content}.page-project .project-overview .project-title{margin:0 0 20px;font-size:40px;line-height:44px;color:var(--grey-222)}.page-project .project-overview a{color:var(--main-color)}.page-project .project-overview a:hover{text-decoration:none}.page-project .project-overview abbr{border-bottom:1px dotted var(--grey-555);text-decoration:none;cursor:help}.page-project .project-overview code,.page-project .project-overview kbd,.page-project .project-overview pre{margin:0;font-family:monospace;word-wrap:break-word;word-break:break-word;white-space:pre-wrap}.page-project .project-overview address,.page-project .project-overview cite,.page-project .project-overview var{font-style:italic}.page-project .project-overview blockquote{margin:40px 0;padding:0 0 0 20px;border-left:3px solid var(--grey-555);color:var(--grey-222);font-weight:700}.page-project .project-overview em,.page-project .project-overview strong{color:var(--grey-222)}.page-project .project-overview p{margin:15px 0}.page-project .project-overview p>code{font-size:14px;padding:3px 6px;margin:0 4px;background:var(--grey-fa);border:1px solid var(--grey-ccc)}.page-project .project-overview img{display:block;max-width:100%;height:auto}.page-project .project-overview ul{list-style-type:disc;list-style-position:inside}.page-project .project-overview ul,.page-project .project-overview ol{margin:15px 0;padding:0 0 0 20px}.page-project .project-overview ul ul,.page-project .project-overview ul ol,.page-project .project-overview ol ul,.page-project .project-overview ol ol{padding:0 0 0 20px}.page-project .project-overview ul li,.page-project .project-overview ol li{margin:5px 0}.page-project .project-overview ul li>code,.page-project .project-overview ol li>code{font-size:14px;padding:3px 6px;margin:0 4px;background:var(--grey-fa);border:1px solid var(--grey-ccc)}.page-project .project-meta{grid-area:sidebar}.page-project .project-meta>div{position:sticky;top:0;display:grid;gap:30px;justify-items:start;align-items:start;align-content:start;font-size:16px}.page-project .project-meta>div .button{display:inline-block;background:var(--main-color);padding:10px 30px;text-transform:uppercase;color:var(--grey-fc);border-radius:5px;font-family:'PT Sans', sans-serif;font-size:14px;font-weight:700;border:none;cursor:pointer;transition:background 0.1s ease;-moz-transition:background 0.1s ease;-webkit-transition:background 0.1s ease;-o-transition:background 0.1s ease;text-decoration:none;text-align:center}.page-project .project-meta>div .button:hover{background:var(--main-color-hover)}.page-project .project-meta>div .button:active,.page-project .project-meta>div .button:focus{outline:none}@media screen and (max-width: 640px){.page-project{grid-template-areas:"carousel carousel" "content content" "sidebar sidebar";grid-template-columns:1fr 1fr}.page-project .project-meta>div{position:static;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-flow:row wrap;-moz-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.page-project .project-meta>div>div{-webkit-flex:1 0 auto;-moz-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}}.page-about .profile{float:right;margin:20px 20px 20px 50px}.page-about .profile img{display:block;max-width:100%;height:auto}.page-about .profile ul{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-flow:row wrap;-moz-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;list-style:none;margin:20px 0 0;padding:0;border-right:1px solid var(--grey-ddd);border-bottom:1px solid var(--grey-ddd)}.page-about .profile ul li{flex:1}.page-about .profile ul li a{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;padding:15px;border-left:1px solid var(--grey-ddd);border-top:1px solid var(--grey-ddd);transition:background 0.15s ease;-moz-transition:background 0.15s ease;-webkit-transition:background 0.15s ease;-o-transition:background 0.15s ease;color:var(--grey-aaa)}.page-about .profile ul li a:hover{background:var(--main-color)}.page-about .profile ul li a:hover svg{fill:var(--grey-fc)}.page-about .profile ul li a svg{fill:currentColor}.page-about h1{font-size:48px;line-height:52px;color:var(--grey-222);margin:0 0 30px}.page-about .intro-paragraph{font-size:20px;line-height:32px;color:var(--grey-222)}@media screen and (max-width: 640px){.page-about .profile{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-flex-flow:column nowrap;-moz-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap;float:none;margin:0 0 30px}}.page-not-found{text-align:center}.page-not-found svg{fill:currentColor;color:var(--grey-ddd);margin:0 auto}.post-lists-title{font-family:'PT Sans', sans-serif;font-size:24px;line-height:42px;font-weight:700;color:var(--grey-aaa);margin:0 0 40px;text-align:center}.post-lists-title span{color:var(--grey-222)}.post-list{display:grid;gap:100px 0}.post{position:relative}.post .post-title{margin:0 0 25px;font-family:'PT Sans', sans-serif;font-size:32px;line-height:42px;font-weight:700;color:var(--grey-222)}.post .post-title a{color:var(--grey-222);text-decoration:none}.post .post-title a:hover{text-decoration:underline}.post .post-author{position:absolute;top:10px;left:-200px;width:150px;text-align:right}.post .post-author .author-avatar{display:inline-block;width:50px;height:50px;border-radius:50%;fill:currentColor;color:var(--grey-ddd)}.post .post-author .author-info .author-name{display:block;margin:10px 0 4px;font-family:'PT Sans', sans-serif;font-size:16px;line-height:20px;font-weight:700;color:var(--grey-222);text-transform:uppercase}.post .post-author .author-info .author-title{display:block;font-size:12px;line-height:16px;font-style:italic;color:var(--grey-aaa)}.post .post-author .post-meta{position:relative;margin:15px 0 0;padding:15px 0 0;line-height:20px;font-size:14px;color:var(--grey-aaa)}.post .post-author .post-meta:before{position:absolute;top:0;right:0;width:30px;height:1px;background:var(--grey-ddd);content:""}.post .post-author .post-meta .post-date{position:relative;margin:0 5px 0 0;padding:0 10px 0 0}.post .post-author .post-meta .post-date:after{position:absolute;top:50%;right:0;width:3px;height:3px;border-radius:50%;background:var(--grey-ccc);content:""}.post .post-author .post-meta .post-categories{position:relative;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-justify-content:flex-end;justify-content:flex-end;gap:5px;margin:8px 0 0}.post .post-author .post-meta .post-categories a{color:var(--main-color);text-decoration:none}.post .post-author .post-meta .post-categories a:hover{text-decoration:underline}.post .post-content abbr{border-bottom:1px dotted var(--grey-555);text-decoration:none;cursor:help}.post .post-content code,.post .post-content kbd,.post .post-content pre{margin:0;font-family:monospace;word-wrap:break-word;word-break:break-word;white-space:pre-wrap}.post .post-content address,.post .post-content cite,.post .post-content var{font-style:italic}.post .post-content blockquote{margin:40px 0;padding:0 0 0 20px;border-left:3px solid var(--grey-555);color:var(--grey-222);font-weight:700}.post .post-content em,.post .post-content strong{color:var(--grey-222)}.post .post-content h1,.post .post-content h2,.post .post-content h3,.post .post-content h4,.post .post-content h5,.post .post-content h6{font-family:'PT Sans', sans-serif;margin:40px 0 25px 0;color:var(--grey-222)}.post .post-content h4,.post .post-content h5,.post .post-content h6{margin:25px 0}.post .post-content h1{font-size:28px}.post .post-content h2{font-size:26px}.post .post-content h3{font-size:22px}.post .post-content h4{font-size:20px}.post .post-content h5{font-size:18px}.post .post-content h6{font-size:16px}.post .post-content a{color:var(--main-color)}.post .post-content a:hover{text-decoration:none}.post .post-content img{display:block;max-width:100%;height:auto}.post .post-content ul{list-style-type:disc;list-style-position:inside}.post .post-content ul,.post .post-content ol{margin:15px 0;padding:0 0 0 20px}.post .post-content ul ul,.post .post-content ul ol,.post .post-content ol ul,.post .post-content ol ol{padding:0 0 0 20px}.post .post-content ul li,.post .post-content ol li{margin:5px 0}.post .post-content ul li>code,.post .post-content ol li>code{font-size:14px;padding:3px 6px;margin:0 4px;background:var(--grey-fa);border:1px solid var(--grey-ccc)}.post .post-content dl{margin:40px 0}.post .post-content dl dt{margin:10px 0 0;font-weight:700}.post .post-content dl dd{margin:5px 0}.post .post-content dl dd>code{font-size:14px;padding:3px 6px;margin:0 4px;background:var(--grey-fa);border:1px solid var(--grey-ccc)}.post .post-content p{margin:15px 0}.post .post-content p>code{font-size:14px;padding:3px 6px;margin:0 4px;background:var(--grey-fa);border:1px solid var(--grey-ccc)}.post .post-content .alignleft{float:left;margin:20px 30px 10px 0}.post .post-content .alignright{float:right;margin:20px 0 10px 20px}.post .post-content .aligncenter{clear:both;margin:0 auto 20px}.post .post-content figcaption{font-size:13px;font-style:italic;padding-top:10px}.post .post-content .iframe-wrapper{position:relative;padding-top:56.25%}.post .post-content .iframe-wrapper>iframe{position:absolute;top:0;left:0;width:100%;height:100%}.post .post-content .read-more-button{font-size:16px;color:var(--grey-555)}.post .post-footer{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:flex-start;align-items:flex-start;gap:0 20px;margin:50px 0 0}.post .post-footer .post-tags{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-flow:row wrap;-moz-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-flex:9 1 auto;-moz-flex:9 1 auto;-ms-flex:9 1 auto;flex:9 1 auto;gap:0 20px;list-style:none;margin:0;padding:0}.post .post-footer .post-tags li a{font-size:14px;font-family:'PT Sans', sans-serif;color:var(--grey-ccc);text-decoration:none;transition:all 0.15s ease;-moz-transition:all 0.15s ease;-webkit-transition:all 0.15s ease;-o-transition:all 0.15s ease}.post .post-footer .post-tags li a:hover{color:var(--grey-555)}.post .post-footer .post-share{position:relative;-webkit-flex:0 0 auto;-moz-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;border:1px solid var(--grey-ddd);overflow:hidden}.post .post-footer .post-share:hover>span{margin-left:-100%}.post .post-footer .post-share:hover>ul{left:0}.post .post-footer .post-share span{display:block;width:100%;padding:0 15px;font-family:'PT Sans', sans-serif;font-size:12px;text-transform:uppercase;text-align:center;letter-spacing:.1em;color:var(--grey-aaa);cursor:pointer;transition:margin 0.2s ease;-moz-transition:margin 0.2s ease;-webkit-transition:margin 0.2s ease;-o-transition:margin 0.2s ease}.post .post-footer .post-share ul{position:absolute;top:0;left:100%;width:100%;height:100%;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;list-style:none;margin:0;padding:0;transition:left 0.2s ease;-moz-transition:left 0.2s ease;-webkit-transition:left 0.2s ease;-o-transition:left 0.2s ease}.post .post-footer .post-share ul li{-webkit-flex:1 0 auto;-moz-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;cursor:pointer}.post .post-footer .post-share ul li:last-child{border-left:1px solid var(--grey-ddd)}.post .post-footer .post-share ul li a{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;height:100%;color:var(--grey-ccc)}.post .post-footer .post-share ul li a:hover{background:var(--grey-eee)}.post .post-footer .post-share ul li a svg{fill:currentColor}.post .post-comments{position:relative;margin:40px 0 0;padding:20px 0 0;border-top:1px solid var(--grey-ddd)}@media screen and (max-width: 960px){.post .post-title{margin:0 0 15px}.post .post-author{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-flex-flow:row wrap;-moz-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;gap:15px;position:static;width:100%;margin:0 0 20px;text-align:left}.post .post-author .author-avatar{width:36px;height:36px}.post .post-author .author-info .author-name{margin:0;color:var(--grey-555);text-transform:initial}.post .post-author .author-info .author-title{display:none}.post .post-author .post-meta{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-flow:row wrap;-moz-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;margin:0;margin-left:auto;padding:0}.post .post-author .post-meta:before{content:none}.post .post-author .post-meta .post-categories{margin:0 0 0 5px;padding:0 0 0 10px}.post .post-author .post-meta .post-categories:before{position:absolute;top:50%;left:0;width:3px;height:3px;border-radius:50%;background:var(--grey-ccc);content:""}}.page .page-title{margin:0 0 25px;font-family:'PT Sans', sans-serif;font-size:32px;line-height:42px;font-weight:700;color:var(--grey-222)}.page .page-content abbr{border-bottom:1px dotted var(--grey-555);text-decoration:none;cursor:help}.page .page-content code,.page .page-content kbd,.page .page-content pre{margin:0;font-family:monospace;word-wrap:break-word;word-break:break-word;white-space:pre-wrap}.page .page-content address,.page .page-content cite,.page .page-content var{font-style:italic}.page .page-content blockquote{margin:40px 0;padding:0 0 0 20px;border-left:3px solid var(--grey-555);color:var(--grey-222);font-weight:700}.page .page-content em,.page .page-content strong{color:var(--grey-222)}.page .page-content h1,.page .page-content h2,.page .page-content h3,.page .page-content h4,.page .page-content h5,.page .page-content h6{font-family:'PT Sans', sans-serif;margin:40px 0 25px 0;color:var(--grey-222)}.page .page-content h4,.page .page-content h5,.page .page-content h6{margin:25px 0}.page .page-content h1{font-size:28px}.page .page-content h2{font-size:26px}.page .page-content h3{font-size:22px}.page .page-content h4{font-size:20px}.page .page-content h5{font-size:18px}.page .page-content h6{font-size:16px}.page .page-content a{color:var(--main-color)}.page .page-content a:hover{text-decoration:none}.page .page-content img{display:block;max-width:100%;height:auto}.page .page-content ul{list-style-type:disc;list-style-position:inside}.page .page-content ul,.page .page-content ol{margin:15px 0;padding:0 0 0 20px}.page .page-content ul ul,.page .page-content ul ol,.page .page-content ol ul,.page .page-content ol ol{padding:0 0 0 20px}.page .page-content ul li,.page .page-content ol li{margin:5px 0}.page .page-content ul li>code,.page .page-content ol li>code{font-size:14px;padding:3px 6px;margin:0 4px;background:var(--grey-fa);border:1px solid var(--grey-ccc)}.page .page-content dl{margin:40px 0}.page .page-content dl dt{margin:10px 0 0;font-weight:700}.page .page-content dl dd{margin:5px 0}.page .page-content dl dd>code{font-size:14px;padding:3px 6px;margin:0 4px;background:var(--grey-fa);border:1px solid var(--grey-ccc)}.page .page-content p{margin:15px 0}.page .page-content p>code{font-size:14px;padding:3px 6px;margin:0 4px;background:var(--grey-fa);border:1px solid var(--grey-ccc)}.page .page-content .alignleft{float:left;margin:20px 30px 10px 0}.page .page-content .alignright{float:right;margin:20px 0 10px 20px}.page .page-content .aligncenter{clear:both;margin:0 auto 20px}.page .page-content figcaption{font-size:13px;font-style:italic;padding-top:10px}.page .page-content .iframe-wrapper{position:relative;padding-top:56.25%}.page .page-content .iframe-wrapper>iframe{position:absolute;top:0;left:0;width:100%;height:100%}.site-search{position:relative;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-flex-flow:column wrap;-moz-flex-flow:column wrap;-ms-flex-flow:column wrap;flex-flow:column wrap;max-width:600px;margin:30px auto 0;padding:0 20px}.site-search>div{display:inline-grid;max-width:400px}.site-search>div:after{content:attr(data-value);visibility:hidden;white-space:pre-wrap;height:0}.site-search>div #site-search-input{max-width:400px;height:30px;font-family:'PT Serif', serif;font-style:italic;color:var(--grey-222);font-size:18px;background:transparent;border:none;outline:none}.site-search>div #site-search-input.placeholder{color:var(--grey-ccc);font-family:'PT Serif', serif;font-style:italic;font-size:18px}.site-search>div #site-search-input:-ms-input-placeholder{color:var(--grey-ccc);font-family:'PT Serif', serif;font-style:italic;font-size:18px}.site-search>div #site-search-input:-moz-placeholder{color:var(--grey-ccc);font-family:'PT Serif', serif;font-style:italic;font-size:18px}.site-search>div #site-search-input::-moz-placeholder{color:var(--grey-ccc);font-family:'PT Serif', serif;font-style:italic;font-size:18px}.site-search>div #site-search-input::-webkit-input-placeholder{color:var(--grey-ccc);font-family:'PT Serif', serif;font-style:italic;font-size:18px}.site-search #site-search-results-container{position:absolute;width:90%;background:var(--grey-fa);top:40px;margin:0;padding:0;list-style:none;box-shadow:0 10px 200px rgba(0,0,0,0.15);z-index:1;border-radius:5px}.site-search #site-search-results-container:empty{display:none}.site-search #site-search-results-container .no-results{padding:10px 15px;text-align:center}.site-search #site-search-results-container li{border-top:1px solid var(--grey-ddd)}.site-search #site-search-results-container li:first-of-type{border-top:none}.site-search #site-search-results-container li:first-of-type a{border-radius:5px 5px 0 0}.site-search #site-search-results-container li:last-of-type a{border-radius:0 0 5px 5px}.site-search #site-search-results-container li a{display:block;padding:10px 15px;text-decoration:none;color:var(--grey-555);background:transparent;transition:background 0.1s ease;-moz-transition:background 0.1s ease;-webkit-transition:background 0.1s ease;-o-transition:background 0.1s ease}.site-search #site-search-results-container li a:hover{background:var(--grey-eee)}.pagination{display:grid;grid-template-columns:100px 1fr 100px;margin:50px 0 0;font-size:16px}.pagination .previous,.pagination .next{text-decoration:none;color:var(--grey-555)}.pagination .previous:hover,.pagination .next:hover{text-decoration:underline}.pagination .page_number{text-align:center;color:var(--grey-ccc)}.modal-container{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;position:fixed;width:100%;height:100%;bottom:0;right:0;background:rgba(0,0,0,0.7);opacity:0;pointer-events:none;z-index:9999}.modal-container .modal{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-flow:column wrap;-moz-flex-flow:column wrap;-ms-flex-flow:column wrap;flex-flow:column wrap;width:100%;max-width:450px;margin:0 20px;background:var(--grey-fa);border-radius:5px}.modal-container .modal.zoomIn{animation-name:zoomIn;animation-duration:.4s;animation-fill-mode:both}.modal-container .modal.zoomOut{animation-name:zoomOut;animation-duration:.4s;animation-fill-mode:both}.modal-container .modal .modal-header{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;background:var(--main-color);padding:18px 20px;border-radius:5px 5px 0 0;font-family:'PT Sans', sans-serif;font-size:20px;font-weight:700;color:var(--grey-fc)}.modal-container .modal .modal-header svg{width:16px;height:16px;transition:all 0.1s ease;-moz-transition:all 0.1s ease;-webkit-transition:all 0.1s ease;-o-transition:all 0.1s ease;fill:currentColor;opacity:.5;cursor:pointer;transition:opacity 0.15s ease;-moz-transition:opacity 0.15s ease;-webkit-transition:opacity 0.15s ease;-o-transition:opacity 0.15s ease}.modal-container .modal .modal-header svg:hover{opacity:1}.modal-container .modal .modal-body{padding:20px}.modal-container .modal .modal-body .form-message{display:none;margin-top:0;text-align:center;padding:10px 15px}.modal-container .modal .modal-body .form-message.success{display:block;background:var(--form-success-bg);color:var(--form-success-text)}.modal-container .modal .modal-body .form-message.error{display:block;background:var(--form-error-bg);color:var(--form-error-text)}.modal-container .modal .modal-body form{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-flex-flow:column wrap;-moz-flex-flow:column wrap;-ms-flex-flow:column wrap;flex-flow:column wrap;gap:10px}.modal-container .modal .modal-body form label{display:block;width:100%}.modal-container .modal .modal-body form .input,.modal-container .modal .modal-body form .textarea{width:100%;height:40px;padding:10px;background:transparent;border:1px solid var(--grey-ddd);border-radius:5px;font-family:'PT Sans', sans-serif;font-size:16px;color:var(--grey-555);outline:none}.modal-container .modal .modal-body form .input.placeholder,.modal-container .modal .modal-body form .textarea.placeholder{color:var(--grey-ccc);font-family:'PT Sans', serif;font-size:16px}.modal-container .modal .modal-body form .input:-ms-input-placeholder,.modal-container .modal .modal-body form .textarea:-ms-input-placeholder{color:var(--grey-ccc);font-family:'PT Sans', serif;font-size:16px}.modal-container .modal .modal-body form .input:-moz-placeholder,.modal-container .modal .modal-body form .textarea:-moz-placeholder{color:var(--grey-ccc);font-family:'PT Sans', serif;font-size:16px}.modal-container .modal .modal-body form .input::-moz-placeholder,.modal-container .modal .modal-body form .textarea::-moz-placeholder{color:var(--grey-ccc);font-family:'PT Sans', serif;font-size:16px}.modal-container .modal .modal-body form .input::-webkit-input-placeholder,.modal-container .modal .modal-body form .textarea::-webkit-input-placeholder{color:var(--grey-ccc);font-family:'PT Sans', serif;font-size:16px}.modal-container .modal .modal-body form .textarea{height:auto;min-height:200px}.modal-container .modal .modal-body form .button{display:inline-block;background:var(--main-color);padding:14px 30px;text-transform:uppercase;color:var(--grey-fc);border-radius:5px;font-family:'PT Sans', sans-serif;font-size:14px;font-weight:700;border:none;cursor:pointer;transition:background 0.1s ease;-moz-transition:background 0.1s ease;-webkit-transition:background 0.1s ease;-o-transition:background 0.1s ease}.modal-container .modal .modal-body form .button:hover{background:var(--main-color-hover)}.modal-container .modal .modal-body form .button:active,.modal-container .modal .modal-body form .button:focus{outline:none}.modal-container.fadeIn{pointer-events:auto;animation-name:fadeIn;animation-duration:.4s;animation-fill-mode:both}.modal-container.fadeOut{animation-name:fadeOut;animation-duration:.4s;animation-fill-mode:both}.custom-lightbox{position:fixed;visibility:hidden;opacity:0;transition:opacity 0.2s ease;-moz-transition:opacity 0.2s ease;-webkit-transition:opacity 0.2s ease;-o-transition:opacity 0.2s ease;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;top:0;left:0;bottom:0;right:0;background:rgba(0,0,0,0.7);z-index:9000}.custom-lightbox.active{visibility:visible;opacity:1}.custom-lightbox .lightbox-content{position:relative;display:grid;grid-template-columns:1fr 8fr 1fr;gap:40px;-webkit-align-items:center;align-items:center;justify-items:center;width:100%;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.custom-lightbox .prev-image,.custom-lightbox .next-image,.custom-lightbox .lightbox-close{cursor:pointer;opacity:.5;transition:opacity 0.1s ease;-moz-transition:opacity 0.1s ease;-webkit-transition:opacity 0.1s ease;-o-transition:opacity 0.1s ease;color:var(--grey-fa)}.custom-lightbox .prev-image:hover,.custom-lightbox .next-image:hover,.custom-lightbox .lightbox-close:hover{opacity:.9}.custom-lightbox .prev-image svg,.custom-lightbox .next-image svg,.custom-lightbox .lightbox-close svg{width:32px;height:32px;fill:currentColor}.custom-lightbox .prev-image svg{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.custom-lightbox .current-image img{width:100%;max-width:100%;height:auto}.custom-lightbox .lightbox-close{position:fixed;top:30px;right:30px;width:24px;height:24px;padding:0;background:none;border:0;outline:none}@media screen and (max-width: 960px){.custom-lightbox .lightbox-content{grid-template-columns:1fr}.custom-lightbox .lightbox-content .prev-image,.custom-lightbox .lightbox-content .next-image{position:absolute;opacity:.8}.custom-lightbox .lightbox-content .prev-image svg,.custom-lightbox .lightbox-content .next-image svg{width:40px;height:40px}.custom-lightbox .lightbox-content .prev-image{left:20px}.custom-lightbox .lightbox-content .next-image{right:20px}}.cookie-banner{display:none;position:fixed;width:100%;max-width:1200px;left:50%;bottom:15px;padding:20px 30px;-webkit-transform:translate(-50%, 0);-moz-transform:translate(-50%, 0);-ms-transform:translate(-50%, 0);-o-transform:translate(-50%, 0);transform:translate(-50%, 0);-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;background:var(--grey-fa);box-shadow:0 0 100px rgba(0,0,0,0.2);border-radius:10px}.cookie-banner.active{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.cookie-banner div{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center}.cookie-banner div svg{fill:currentColor;color:var(--grey-666);-webkit-flex:1 0 auto;-moz-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.cookie-banner div p{max-width:980px;padding:0 30px}.cookie-banner .button{display:inline-block;background:var(--main-color);padding:10px 30px;text-transform:uppercase;color:var(--grey-fc);border-radius:5px;font-family:'PT Sans', sans-serif;font-size:14px;font-weight:700;border:none;cursor:pointer;transition:background 0.1s ease;-moz-transition:background 0.1s ease;-webkit-transition:background 0.1s ease;-o-transition:background 0.1s ease;text-decoration:none;text-align:center}.cookie-banner .button:hover{background:var(--main-color-hover)}.cookie-banner .button:active,.cookie-banner .button:focus{outline:none}@media screen and (max-width: 640px){.cookie-banner{-webkit-flex-flow:column nowrap;-moz-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}}@media screen and (max-width: 468px){.cookie-banner div{-webkit-flex-flow:column nowrap;-moz-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}}.reading-progress-bar{position:fixed;top:0;left:0;min-width:100%;height:5px;z-index:9;transition:width 0.05s ease;-moz-transition:width 0.05s ease;-webkit-transition:width 0.05s ease;-o-transition:width 0.05s ease}.reading-progress-bar:before{position:absolute;top:0;left:0;content:"";height:5px;background:var(--main-color);width:inherit}.changeTheme{position:fixed;top:20px;right:20px;overflow:hidden;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;align-items:center;background:transparent;width:25px;height:30px;cursor:pointer;z-index:10}.changeTheme .modeIcon{position:relative;width:20px;height:20px;border-radius:50%;background:var(--grey-ccc);transition:transform 0.35s ease;-moz-transition:transform 0.35s ease;-webkit-transition:transform 0.35s ease;-o-transition:transform 0.35s ease}.changeTheme .modeIcon:before{position:absolute;width:6px;height:6px;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);-o-transform:translate(-50%, -50%);transform:translate(-50%, -50%);transition:box-shadow 0.3s ease;-moz-transition:box-shadow 0.3s ease;-webkit-transition:box-shadow 0.3s ease;-o-transition:box-shadow 0.3s ease;border-radius:50%;opacity:0;content:""}.changeTheme .modeIcon:after{position:absolute;width:100%;height:100%;top:-30%;left:30%;transition:transform 0.35s ease;-moz-transition:transform 0.35s ease;-webkit-transition:transform 0.35s ease;-o-transition:transform 0.35s ease;border-radius:50%;background:var(--body-bg);content:""}[data-theme="dark"] .changeTheme .modeIcon{background:var(--grey-fc);-webkit-transform:scale(.5);-moz-transform:scale(.5);-ms-transform:scale(.5);-o-transform:scale(.5);transform:scale(.5)}[data-theme="dark"] .changeTheme .modeIcon:before{opacity:1;box-shadow:0 -20px 0 0 var(--grey-fc),0 20px 0 0 var(--grey-fc),-20px 0 0 0 var(--grey-fc),20px 0 0 0 var(--grey-fc),15px 15px 0 0 var(--grey-fc),15px -15px 0 0 var(--grey-fc),-15px 15px 0 0 var(--grey-fc),-15px -15px 0 0 var(--grey-fc)}[data-theme="dark"] .changeTheme .modeIcon:after{opacity:0;-webkit-transform:translate(50%, -50%);-moz-transform:translate(50%, -50%);-ms-transform:translate(50%, -50%);-o-transform:translate(50%, -50%);transform:translate(50%, -50%)}.header-content-separator{position:relative;margin:40px auto;width:4px;height:4px;border-radius:50%;background:var(--grey-ccc)}.header-content-separator:before{position:absolute;left:-8px;width:4px;height:4px;border-radius:50%;background:var(--grey-ccc);content:""}.header-content-separator:after{position:absolute;left:8px;width:4px;height:4px;border-radius:50%;background:var(--grey-ccc);content:""}.toggleBurger{display:none}.toggleBurger:checked~.site-navigation{-webkit-transform:translate(0, 0);-moz-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.toggleBurger:checked~.toggleBurgerWrapper span{background:transparent}.toggleBurger:checked~.toggleBurgerWrapper span:before{top:0;-webkit-transform:rotate(135deg);-moz-transform:rotate(135deg);-ms-transform:rotate(135deg);-o-transform:rotate(135deg);transform:rotate(135deg)}.toggleBurger:checked~.toggleBurgerWrapper span:after{top:0;-webkit-transform:rotate(-135deg);-moz-transform:rotate(-135deg);-ms-transform:rotate(-135deg);-o-transform:rotate(-135deg);transform:rotate(-135deg)}.toggleBurgerWrapper{display:none;position:fixed;top:20px;left:20px;width:25px;height:30px;cursor:pointer;z-index:100;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.toggleBurgerWrapper span{position:absolute;top:50%;height:2px;width:100%;background:var(--grey-222);transition:all 0.3s ease;-moz-transition:all 0.3s ease;-webkit-transition:all 0.3s ease;-o-transition:all 0.3s ease;-webkit-transform:translate(0, -50%);-moz-transform:translate(0, -50%);-ms-transform:translate(0, -50%);-o-transform:translate(0, -50%);transform:translate(0, -50%)}.toggleBurgerWrapper span:before,.toggleBurgerWrapper span:after{position:absolute;height:2px;width:100%;background:var(--grey-222);content:"";transition:all 0.3s ease;-moz-transition:all 0.3s ease;-webkit-transition:all 0.3s ease;-o-transition:all 0.3s ease}.toggleBurgerWrapper span:before{top:-6px}.toggleBurgerWrapper span:after{top:6px}@media screen and (max-width: 800px){.toggleBurgerWrapper{display:block}}
+:root, [data-theme=light] {
+ --body-bg: #fafafa;
+ --main-color: #639f93;
+ --main-color-hover: #5b9287;
+ --form-success-bg: #d0f1cc;
+ --form-success-text: #597755;
+ --form-error-bg: #f1cccc;
+ --form-error-text: #775555;
+ --grey-222: #222;
+ --grey-555: #555;
+ --grey-aaa: #aaa;
+ --grey-ccc: #ccc;
+ --grey-ddd: #ddd;
+ --grey-eee: #eee;
+ --grey-fc: #fcfcfc;
+ --grey-fa: #fafafa;
+}
+
+[data-theme=dark] {
+ --body-bg: #050505;
+ --main-color: #639f93;
+ --main-color-hover: #5b9287;
+ --form-success-bg: #d0f1cc;
+ --form-success-text: #597755;
+ --form-error-bg: #f1cccc;
+ --form-error-text: #775555;
+ --grey-222: #ddd;
+ --grey-555: #ddd;
+ --grey-aaa: #777;
+ --grey-ccc: #666;
+ --grey-ddd: #666;
+ --grey-eee: #222;
+ --grey-fc: #fcfcfc;
+ --grey-fa: #151515;
+}
+
+* {
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+}
+
+body {
+ margin: 0;
+ padding: 0;
+ font-family: "PT Serif", serif;
+ font-size: 18px;
+ line-height: 30px;
+ color: var(--grey-555);
+ background: var(--body-bg);
+}
+
+header,
+nav,
+section,
+main,
+article,
+aside,
+figure,
+footer,
+iframe,
+object,
+svg {
+ display: block;
+ margin: 0;
+}
+
+@media screen and (max-width: 800px) {
+ body {
+ padding: 80px 0 0;
+ }
+}
+.highlight {
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+ padding: 30px;
+}
+.highlight .lineno {
+ padding: 0 15px 0 0;
+}
+.highlight .c {
+ color: #998;
+ font-style: italic;
+}
+.highlight .err {
+ color: #a61717;
+ background-color: #e3d2d2;
+}
+.highlight .k {
+ font-weight: bold;
+}
+.highlight .o {
+ font-weight: bold;
+}
+.highlight .cm {
+ color: #998;
+ font-style: italic;
+}
+.highlight .cp {
+ color: #999;
+ font-weight: bold;
+}
+.highlight .c1 {
+ color: #998;
+ font-style: italic;
+}
+.highlight .cs {
+ color: #999;
+ font-weight: bold;
+ font-style: italic;
+}
+.highlight .gd {
+ color: #000;
+ background-color: #fdd;
+}
+.highlight .gd .x {
+ color: #000;
+ background-color: #faa;
+}
+.highlight .ge {
+ font-style: italic;
+}
+.highlight .gr {
+ color: #a00;
+}
+.highlight .gh {
+ color: #999;
+}
+.highlight .gi {
+ color: #000;
+ background-color: #dfd;
+}
+.highlight .gi .x {
+ color: #000;
+ background-color: #afa;
+}
+.highlight .go {
+ color: #888;
+}
+.highlight .gp {
+ color: #555;
+}
+.highlight .gs {
+ font-weight: bold;
+}
+.highlight .gu {
+ color: #aaa;
+}
+.highlight .gt {
+ color: #a00;
+}
+.highlight .kc {
+ font-weight: bold;
+}
+.highlight .kd {
+ font-weight: bold;
+}
+.highlight .kp {
+ font-weight: bold;
+}
+.highlight .kr {
+ font-weight: bold;
+}
+.highlight .kt {
+ color: #458;
+ font-weight: bold;
+}
+.highlight .m {
+ color: #099;
+}
+.highlight .s {
+ color: #d14;
+}
+.highlight .na {
+ color: #008080;
+}
+.highlight .nb {
+ color: #0086B3;
+}
+.highlight .nc {
+ color: #458;
+ font-weight: bold;
+}
+.highlight .no {
+ color: #008080;
+}
+.highlight .ni {
+ color: #800080;
+}
+.highlight .ne {
+ color: #900;
+ font-weight: bold;
+}
+.highlight .nf {
+ color: #900;
+ font-weight: bold;
+}
+.highlight .nn {
+ color: #555;
+}
+.highlight .nt {
+ color: #000080;
+}
+.highlight .nv {
+ color: #008080;
+}
+.highlight .ow {
+ font-weight: bold;
+}
+.highlight .w {
+ color: #bbb;
+}
+.highlight .mf {
+ color: #099;
+}
+.highlight .mh {
+ color: #099;
+}
+.highlight .mi {
+ color: #099;
+}
+.highlight .mo {
+ color: #099;
+}
+.highlight .sb {
+ color: #d14;
+}
+.highlight .sc {
+ color: #d14;
+}
+.highlight .sd {
+ color: #d14;
+}
+.highlight .s2 {
+ color: #d14;
+}
+.highlight .se {
+ color: #d14;
+}
+.highlight .sh {
+ color: #d14;
+}
+.highlight .si {
+ color: #d14;
+}
+.highlight .sx {
+ color: #d14;
+}
+.highlight .sr {
+ color: #009926;
+}
+.highlight .s1 {
+ color: #d14;
+}
+.highlight .ss {
+ color: #990073;
+}
+.highlight .bp {
+ color: #999;
+}
+.highlight .vc {
+ color: #008080;
+}
+.highlight .vg {
+ color: #008080;
+}
+.highlight .vi {
+ color: #008080;
+}
+.highlight .il {
+ color: #099;
+}
+
+@keyframes headerShine {
+ 100% {
+ left: 150%;
+ }
+}
+@keyframes fadeIn {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1;
+ }
+}
+@keyframes fadeOut {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ }
+}
+@keyframes zoomIn {
+ from {
+ opacity: 0;
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+ to {
+ opacity: 1;
+ }
+}
+@keyframes zoomOut {
+ from {
+ opacity: 1;
+ }
+ 50% {
+ opacity: 0;
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+ to {
+ opacity: 0;
+ }
+}
+.hidden {
+ border: 0;
+ clip: rect(0 0 0 0);
+ height: 1px;
+ margin: -1px;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ width: 1px;
+}
+
+.site-header {
+ display: grid;
+ -webkit-justify-content: center;
+ justify-content: center;
+ padding: 0 20px;
+ text-align: center;
+}
+.site-header .site-header-wrapper {
+ position: relative;
+ overflow: hidden;
+ background: var(--main-color);
+ padding: 10px 25px 20px 25px;
+ border-radius: 0 0 5px 5px;
+ text-decoration: none;
+ transition: background 0.2s ease;
+ -moz-transition: background 0.2s ease;
+ -webkit-transition: background 0.2s ease;
+ -o-transition: background 0.2s ease;
+}
+.site-header .site-header-wrapper:before {
+ position: absolute;
+ top: 0;
+ left: -150%;
+ content: "";
+ width: 50%;
+ height: 100%;
+ background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);
+ background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);
+ -webkit-transform: skew(-45deg, 0);
+ -moz-transform: skew(-45deg, 0);
+ -ms-transform: skew(-45deg, 0);
+ -o-transform: skew(-45deg, 0);
+ transform: skew(-45deg, 0);
+}
+.site-header .site-header-wrapper:hover {
+ background: var(--main-color-hover);
+}
+.site-header .site-header-wrapper:hover:before {
+ animation: headerShine 0.35s;
+}
+.site-header .site-header-wrapper .site-logo {
+ display: block;
+ margin: 0 0 10px;
+}
+.site-header .site-header-wrapper .site-logo img {
+ display: block;
+}
+.site-header .site-header-wrapper .site-subtitle {
+ display: block;
+ font-family: "Bebas Neue", sans-serif;
+ font-size: 11px;
+ line-height: 14px;
+ color: var(--grey-fc);
+}
+.site-header .site-header-wrapper .site-title {
+ display: block;
+ font-family: "Bebas Neue", sans-serif;
+ font-size: 26px;
+ line-height: 28px;
+ color: var(--grey-fc);
+}
+
+.site-navigation {
+ display: -webkit-box;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-justify-content: center;
+ justify-content: center;
+ -webkit-align-items: center;
+ align-items: center;
+ -webkit-flex-flow: row wrap;
+ -moz-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ gap: 10px 40px;
+ max-width: 800px;
+ margin: 30px auto 0;
+ padding: 0 20px;
+ text-align: center;
+}
+.site-navigation a, .site-navigation span {
+ position: relative;
+ text-decoration: none;
+ color: var(--grey-555);
+ padding: 0 0 2px;
+ transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ -webkit-transition: color 0.2s ease;
+ -o-transition: color 0.2s ease;
+ cursor: pointer;
+}
+.site-navigation a:before, .site-navigation span:before {
+ position: absolute;
+ opacity: 0;
+ left: 0;
+ bottom: 0;
+ width: 0%;
+ border-bottom: 2px solid var(--grey-222);
+ transition: width 0.18s ease, opacity 0.18s ease;
+ -moz-transition: width 0.18s ease, opacity 0.18s ease;
+ -webkit-transition: width 0.18s ease, opacity 0.18s ease;
+ -o-transition: width 0.18s ease, opacity 0.18s ease;
+ content: "";
+}
+.site-navigation a:hover, .site-navigation a.active, .site-navigation span:hover, .site-navigation span.active {
+ color: var(--grey-222);
+}
+.site-navigation a:hover:before, .site-navigation a.active:before, .site-navigation span:hover:before, .site-navigation span.active:before {
+ width: 100%;
+ opacity: 1;
+}
+
+@media screen and (max-width: 800px) {
+ .site-header {
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ z-index: 9;
+ background: var(--body-bg);
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
+ }
+ .site-header .site-header-wrapper {
+ display: -webkit-box;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-align-items: center;
+ align-items: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+ -webkit-flex-flow: row wrap;
+ -moz-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ gap: 0 15px;
+ border-radius: 0;
+ padding: 20px;
+ background: transparent;
+ }
+ .site-header .site-header-wrapper:hover {
+ background: transparent;
+ }
+ .site-header .site-header-wrapper .site-logo,
+ .site-header .site-header-wrapper .site-subtitle {
+ display: none;
+ }
+ .site-header .site-header-wrapper .site-title {
+ font-size: 32px;
+ line-height: 36px;
+ color: var(--main-color);
+ }
+ .site-navigation {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ -webkit-justify-content: flex-start;
+ justify-content: flex-start;
+ -webkit-flex-flow: column nowrap;
+ -moz-flex-flow: column nowrap;
+ -ms-flex-flow: column nowrap;
+ flex-flow: column nowrap;
+ gap: 20px 0;
+ -webkit-transform: translate(0, -100%);
+ -moz-transform: translate(0, -100%);
+ -ms-transform: translate(0, -100%);
+ -o-transform: translate(0, -100%);
+ transform: translate(0, -100%);
+ transition: transform 0.25s ease-in-out;
+ -moz-transition: transform 0.25s ease-in-out;
+ -webkit-transition: transform 0.25s ease-in-out;
+ -o-transition: transform 0.25s ease-in-out;
+ padding: 100px 20px 0;
+ background: rgba(255, 255, 255, 0.9);
+ z-index: 10;
+ }
+ .site-navigation a, .site-navigation span {
+ color: var(--grey-222);
+ font-size: 30px;
+ line-height: 40px;
+ }
+}
+.wrapper {
+ max-width: 600px;
+ margin: 0 auto;
+ padding: 0 20px 35px;
+ border-bottom: 1px solid var(--grey-eee);
+}
+.wrapper.long {
+ max-width: 800px;
+}
+
+.site-footer {
+ max-width: 800px;
+ margin: 0 auto;
+ padding: 40px 20px;
+ font-size: 14px;
+ line-height: 22px;
+ color: var(--grey-ccc);
+ text-align: center;
+}
+
+.page-not-found {
+ text-align: center;
+}
+.page-not-found svg {
+ fill: currentColor;
+ color: var(--grey-ddd);
+ margin: 0 auto;
+}
+
+.post-lists-title {
+ font-family: "PT Sans", sans-serif;
+ font-size: 24px;
+ line-height: 42px;
+ font-weight: 700;
+ color: var(--grey-aaa);
+ margin: 0 0 40px;
+ text-align: center;
+}
+.post-lists-title span {
+ color: var(--grey-222);
+}
+
+.post-list {
+ display: grid;
+ gap: 100px 0;
+}
+
+.post {
+ position: relative;
+}
+.post .post-title {
+ margin: 0 0 25px;
+ font-family: "PT Sans", sans-serif;
+ font-size: 32px;
+ line-height: 42px;
+ font-weight: 700;
+ color: var(--grey-222);
+}
+.post .post-title a {
+ color: var(--grey-222);
+ text-decoration: none;
+}
+.post .post-title a:hover {
+ text-decoration: underline;
+}
+.post .post-author {
+ position: absolute;
+ top: 10px;
+ left: -200px;
+ width: 150px;
+ text-align: right;
+}
+.post .post-author .author-avatar {
+ display: inline-block;
+ width: 50px;
+ height: 50px;
+ border-radius: 50%;
+ fill: currentColor;
+ color: var(--grey-ddd);
+}
+.post .post-author .author-info .author-name {
+ display: block;
+ margin: 10px 0 4px;
+ font-family: "PT Sans", sans-serif;
+ font-size: 16px;
+ line-height: 20px;
+ font-weight: 700;
+ color: var(--grey-222);
+ text-transform: uppercase;
+}
+.post .post-author .author-info .author-title {
+ display: block;
+ font-size: 12px;
+ line-height: 16px;
+ font-style: italic;
+ color: var(--grey-aaa);
+}
+.post .post-author .post-meta {
+ position: relative;
+ margin: 15px 0 0;
+ padding: 15px 0 0;
+ line-height: 20px;
+ font-size: 14px;
+ color: var(--grey-aaa);
+}
+.post .post-author .post-meta:before {
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 30px;
+ height: 1px;
+ background: var(--grey-ddd);
+ content: "";
+}
+.post .post-author .post-meta .post-date {
+ position: relative;
+ margin: 0 5px 0 0;
+ padding: 0 10px 0 0;
+}
+.post .post-author .post-meta .post-date:after {
+ position: absolute;
+ top: 50%;
+ right: 0;
+ width: 3px;
+ height: 3px;
+ border-radius: 50%;
+ background: var(--grey-ccc);
+ content: "";
+}
+.post .post-author .post-meta .post-categories {
+ position: relative;
+ display: -webkit-box;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-justify-content: flex-end;
+ justify-content: flex-end;
+ gap: 5px;
+ margin: 8px 0 0;
+}
+.post .post-author .post-meta .post-categories a {
+ color: var(--main-color);
+ text-decoration: none;
+}
+.post .post-author .post-meta .post-categories a:hover {
+ text-decoration: underline;
+}
+.post .post-content abbr {
+ border-bottom: 1px dotted var(--grey-555);
+ text-decoration: none;
+ cursor: help;
+}
+.post .post-content code, .post .post-content kbd, .post .post-content pre {
+ margin: 0;
+ font-family: monospace;
+ word-wrap: break-word;
+ word-break: break-word;
+ white-space: pre-wrap;
+}
+.post .post-content address, .post .post-content cite, .post .post-content var {
+ font-style: italic;
+}
+.post .post-content blockquote {
+ margin: 40px 0;
+ padding: 0 0 0 20px;
+ border-left: 3px solid var(--grey-555);
+ color: var(--grey-222);
+ font-weight: 700;
+}
+.post .post-content em, .post .post-content strong {
+ color: var(--grey-222);
+}
+.post .post-content h1, .post .post-content h2, .post .post-content h3, .post .post-content h4, .post .post-content h5, .post .post-content h6 {
+ font-family: "PT Sans", sans-serif;
+ margin: 40px 0 25px 0;
+ color: var(--grey-222);
+}
+.post .post-content h4, .post .post-content h5, .post .post-content h6 {
+ margin: 25px 0;
+}
+.post .post-content h1 {
+ font-size: 28px;
+}
+.post .post-content h2 {
+ font-size: 26px;
+}
+.post .post-content h3 {
+ font-size: 22px;
+}
+.post .post-content h4 {
+ font-size: 20px;
+}
+.post .post-content h5 {
+ font-size: 18px;
+}
+.post .post-content h6 {
+ font-size: 16px;
+}
+.post .post-content a {
+ color: var(--main-color);
+}
+.post .post-content a:hover {
+ text-decoration: none;
+}
+.post .post-content img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+.post .post-content ul {
+ list-style-type: disc;
+ list-style-position: inside;
+}
+.post .post-content ul, .post .post-content ol {
+ margin: 15px 0;
+ padding: 0 0 0 20px;
+}
+.post .post-content ul ul, .post .post-content ul ol, .post .post-content ol ul, .post .post-content ol ol {
+ padding: 0 0 0 20px;
+}
+.post .post-content ul li, .post .post-content ol li {
+ margin: 5px 0;
+}
+.post .post-content ul li > code, .post .post-content ol li > code {
+ font-size: 14px;
+ padding: 3px 6px;
+ margin: 0 4px;
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+}
+.post .post-content dl {
+ margin: 40px 0;
+}
+.post .post-content dl dt {
+ margin: 10px 0 0;
+ font-weight: 700;
+}
+.post .post-content dl dd {
+ margin: 5px 0;
+}
+.post .post-content dl dd > code {
+ font-size: 14px;
+ padding: 3px 6px;
+ margin: 0 4px;
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+}
+.post .post-content p {
+ margin: 15px 0;
+}
+.post .post-content p > code {
+ font-size: 14px;
+ padding: 3px 6px;
+ margin: 0 4px;
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+}
+.post .post-content .alignleft {
+ float: left;
+ margin: 20px 30px 10px 0;
+}
+.post .post-content .alignright {
+ float: right;
+ margin: 20px 0 10px 20px;
+}
+.post .post-content .aligncenter {
+ clear: both;
+ margin: 0 auto 20px;
+}
+.post .post-content figcaption {
+ font-size: 13px;
+ font-style: italic;
+ padding-top: 10px;
+}
+.post .post-content .iframe-wrapper {
+ position: relative;
+ padding-top: 56.25%;
+}
+.post .post-content .iframe-wrapper > iframe {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+.post .post-content .read-more-button {
+ font-size: 16px;
+ color: var(--grey-555);
+}
+.post .post-footer {
+ display: -webkit-box;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-justify-content: space-between;
+ justify-content: space-between;
+ -webkit-align-items: flex-start;
+ align-items: flex-start;
+ gap: 0 20px;
+ margin: 50px 0 0;
+}
+.post .post-footer .post-tags {
+ display: -webkit-box;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-flex-flow: row wrap;
+ -moz-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ -webkit-flex: 9 1 auto;
+ -moz-flex: 9 1 auto;
+ -ms-flex: 9 1 auto;
+ flex: 9 1 auto;
+ gap: 0 20px;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+.post .post-footer .post-tags li a {
+ font-size: 14px;
+ font-family: "PT Sans", sans-serif;
+ color: var(--grey-ccc);
+ text-decoration: none;
+ transition: all 0.15s ease;
+ -moz-transition: all 0.15s ease;
+ -webkit-transition: all 0.15s ease;
+ -o-transition: all 0.15s ease;
+}
+.post .post-footer .post-tags li a:hover {
+ color: var(--grey-555);
+}
+.post .post-footer .post-share {
+ position: relative;
+ -webkit-flex: 0 0 auto;
+ -moz-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto;
+ border: 1px solid var(--grey-ddd);
+ overflow: hidden;
+}
+.post .post-footer .post-share:hover > span {
+ margin-left: -100%;
+}
+.post .post-footer .post-share:hover > ul {
+ left: 0;
+}
+.post .post-footer .post-share span {
+ display: block;
+ width: 100%;
+ padding: 0 15px;
+ font-family: "PT Sans", sans-serif;
+ font-size: 12px;
+ text-transform: uppercase;
+ text-align: center;
+ letter-spacing: 0.1em;
+ color: var(--grey-aaa);
+ cursor: pointer;
+ transition: margin 0.2s ease;
+ -moz-transition: margin 0.2s ease;
+ -webkit-transition: margin 0.2s ease;
+ -o-transition: margin 0.2s ease;
+}
+.post .post-footer .post-share ul {
+ position: absolute;
+ top: 0;
+ left: 100%;
+ width: 100%;
+ height: 100%;
+ display: -webkit-box;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ transition: left 0.2s ease;
+ -moz-transition: left 0.2s ease;
+ -webkit-transition: left 0.2s ease;
+ -o-transition: left 0.2s ease;
+}
+.post .post-footer .post-share ul li {
+ -webkit-flex: 1 0 auto;
+ -moz-flex: 1 0 auto;
+ -ms-flex: 1 0 auto;
+ flex: 1 0 auto;
+ cursor: pointer;
+}
+.post .post-footer .post-share ul li:last-child {
+ border-left: 1px solid var(--grey-ddd);
+}
+.post .post-footer .post-share ul li a {
+ display: -webkit-box;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-align-items: center;
+ align-items: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+ height: 100%;
+ color: var(--grey-ccc);
+}
+.post .post-footer .post-share ul li a:hover {
+ background: var(--grey-eee);
+}
+.post .post-footer .post-share ul li a svg {
+ fill: currentColor;
+}
+.post .post-comments {
+ position: relative;
+ margin: 40px 0 0;
+ padding: 20px 0 0;
+ border-top: 1px solid var(--grey-ddd);
+}
+
+@media screen and (max-width: 960px) {
+ .post .post-title {
+ margin: 0 0 15px;
+ }
+ .post .post-author {
+ display: -webkit-box;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-align-items: center;
+ align-items: center;
+ -webkit-flex-flow: row wrap;
+ -moz-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ gap: 15px;
+ position: static;
+ width: 100%;
+ margin: 0 0 20px;
+ text-align: left;
+ }
+ .post .post-author .author-avatar {
+ width: 36px;
+ height: 36px;
+ }
+ .post .post-author .author-info .author-name {
+ margin: 0;
+ color: var(--grey-555);
+ text-transform: initial;
+ }
+ .post .post-author .author-info .author-title {
+ display: none;
+ }
+ .post .post-author .post-meta {
+ display: -webkit-box;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-flex-flow: row wrap;
+ -moz-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ margin: 0;
+ margin-left: auto;
+ padding: 0;
+ }
+ .post .post-author .post-meta:before {
+ content: none;
+ }
+ .post .post-author .post-meta .post-categories {
+ margin: 0 0 0 5px;
+ padding: 0 0 0 10px;
+ }
+ .post .post-author .post-meta .post-categories:before {
+ position: absolute;
+ top: 50%;
+ left: 0;
+ width: 3px;
+ height: 3px;
+ border-radius: 50%;
+ background: var(--grey-ccc);
+ content: "";
+ }
+}
+.page .page-title {
+ margin: 0 0 25px;
+ font-family: "PT Sans", sans-serif;
+ font-size: 32px;
+ line-height: 42px;
+ font-weight: 700;
+ color: var(--grey-222);
+}
+.page .page-content abbr {
+ border-bottom: 1px dotted var(--grey-555);
+ text-decoration: none;
+ cursor: help;
+}
+.page .page-content code,
+.page .page-content kbd,
+.page .page-content pre {
+ margin: 0;
+ font-family: monospace;
+ word-wrap: break-word;
+ word-break: break-word;
+ white-space: pre-wrap;
+}
+.page .page-content address,
+.page .page-content cite,
+.page .page-content var {
+ font-style: italic;
+}
+.page .page-content blockquote {
+ margin: 40px 0;
+ padding: 0 0 0 20px;
+ border-left: 3px solid var(--grey-555);
+ color: var(--grey-222);
+ font-weight: 700;
+}
+.page .page-content em,
+.page .page-content strong {
+ color: var(--grey-222);
+}
+.page .page-content h1,
+.page .page-content h2,
+.page .page-content h3,
+.page .page-content h4,
+.page .page-content h5,
+.page .page-content h6 {
+ font-family: "PT Sans", sans-serif;
+ margin: 40px 0 25px 0;
+ color: var(--grey-222);
+}
+.page .page-content h4,
+.page .page-content h5,
+.page .page-content h6 {
+ margin: 25px 0;
+}
+.page .page-content h1 {
+ font-size: 28px;
+}
+.page .page-content h2 {
+ font-size: 26px;
+}
+.page .page-content h3 {
+ font-size: 22px;
+}
+.page .page-content h4 {
+ font-size: 20px;
+}
+.page .page-content h5 {
+ font-size: 18px;
+}
+.page .page-content h6 {
+ font-size: 16px;
+}
+.page .page-content a {
+ color: var(--main-color);
+}
+.page .page-content a:hover {
+ text-decoration: none;
+}
+.page .page-content img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+.page .page-content ul {
+ list-style-type: disc;
+ list-style-position: inside;
+}
+.page .page-content ul,
+.page .page-content ol {
+ margin: 15px 0;
+ padding: 0 0 0 20px;
+}
+.page .page-content ul ul,
+.page .page-content ul ol,
+.page .page-content ol ul,
+.page .page-content ol ol {
+ padding: 0 0 0 20px;
+}
+.page .page-content ul li,
+.page .page-content ol li {
+ margin: 5px 0;
+}
+.page .page-content ul li > code,
+.page .page-content ol li > code {
+ font-size: 14px;
+ padding: 3px 6px;
+ margin: 0 4px;
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+}
+.page .page-content dl {
+ margin: 40px 0;
+}
+.page .page-content dl dt {
+ margin: 10px 0 0;
+ font-weight: 700;
+}
+.page .page-content dl dd {
+ margin: 5px 0;
+}
+.page .page-content dl dd > code {
+ font-size: 14px;
+ padding: 3px 6px;
+ margin: 0 4px;
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+}
+.page .page-content p {
+ margin: 15px 0;
+}
+.page .page-content p > code {
+ font-size: 14px;
+ padding: 3px 6px;
+ margin: 0 4px;
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+}
+.page .page-content .alignleft {
+ float: left;
+ margin: 20px 30px 10px 0;
+}
+.page .page-content .alignright {
+ float: right;
+ margin: 20px 0 10px 20px;
+}
+.page .page-content .aligncenter {
+ clear: both;
+ margin: 0 auto 20px;
+}
+.page .page-content figcaption {
+ font-size: 13px;
+ font-style: italic;
+ padding-top: 10px;
+}
+.page .page-content .iframe-wrapper {
+ position: relative;
+ padding-top: 56.25%;
+}
+.page .page-content .iframe-wrapper > iframe {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.pagination {
+ display: grid;
+ grid-template-columns: 100px 1fr 100px;
+ margin: 50px 0 0;
+ font-size: 16px;
+}
+.pagination .previous,
+.pagination .next {
+ text-decoration: none;
+ color: var(--grey-555);
+}
+.pagination .previous:hover,
+.pagination .next:hover {
+ text-decoration: underline;
+}
+.pagination .page_number {
+ text-align: center;
+ color: var(--grey-ccc);
+}
+
+.header-content-separator {
+ position: relative;
+ margin: 40px auto;
+ width: 4px;
+ height: 4px;
+ border-radius: 50%;
+ background: var(--grey-ccc);
+}
+.header-content-separator:before {
+ position: absolute;
+ left: -8px;
+ width: 4px;
+ height: 4px;
+ border-radius: 50%;
+ background: var(--grey-ccc);
+ content: "";
+}
+.header-content-separator:after {
+ position: absolute;
+ left: 8px;
+ width: 4px;
+ height: 4px;
+ border-radius: 50%;
+ background: var(--grey-ccc);
+ content: "";
+}
+
+.toggleBurger {
+ display: none;
+}
+.toggleBurger:checked ~ .site-navigation {
+ -webkit-transform: translate(0, 0);
+ -moz-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ -o-transform: translate(0, 0);
+ transform: translate(0, 0);
+}
+.toggleBurger:checked ~ .toggleBurgerWrapper span {
+ background: transparent;
+}
+.toggleBurger:checked ~ .toggleBurgerWrapper span:before {
+ top: 0;
+ -webkit-transform: rotate(135deg);
+ -moz-transform: rotate(135deg);
+ -ms-transform: rotate(135deg);
+ -o-transform: rotate(135deg);
+ transform: rotate(135deg);
+}
+.toggleBurger:checked ~ .toggleBurgerWrapper span:after {
+ top: 0;
+ -webkit-transform: rotate(-135deg);
+ -moz-transform: rotate(-135deg);
+ -ms-transform: rotate(-135deg);
+ -o-transform: rotate(-135deg);
+ transform: rotate(-135deg);
+}
+
+.toggleBurgerWrapper {
+ display: none;
+ position: fixed;
+ top: 20px;
+ left: 20px;
+ width: 25px;
+ height: 30px;
+ cursor: pointer;
+ z-index: 100;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.toggleBurgerWrapper span {
+ position: absolute;
+ top: 50%;
+ height: 2px;
+ width: 100%;
+ background: var(--grey-222);
+ transition: all 0.3s ease;
+ -moz-transition: all 0.3s ease;
+ -webkit-transition: all 0.3s ease;
+ -o-transition: all 0.3s ease;
+ -webkit-transform: translate(0, -50%);
+ -moz-transform: translate(0, -50%);
+ -ms-transform: translate(0, -50%);
+ -o-transform: translate(0, -50%);
+ transform: translate(0, -50%);
+}
+.toggleBurgerWrapper span:before, .toggleBurgerWrapper span:after {
+ position: absolute;
+ height: 2px;
+ width: 100%;
+ background: var(--grey-222);
+ content: "";
+ transition: all 0.3s ease;
+ -moz-transition: all 0.3s ease;
+ -webkit-transition: all 0.3s ease;
+ -o-transition: all 0.3s ease;
+}
+.toggleBurgerWrapper span:before {
+ top: -6px;
+}
+.toggleBurgerWrapper span:after {
+ top: 6px;
+}
+
+@media screen and (max-width: 800px) {
+ .toggleBurgerWrapper {
+ display: block;
+ }
+} \ No newline at end of file
diff --git a/compile-sass.dart b/compile-sass.dart
new file mode 100644
index 0000000..f86799a
--- /dev/null
+++ b/compile-sass.dart
@@ -0,0 +1,8 @@
+import 'dart:io';
+import 'package:sass/sass.dart' as sass;
+
+void main(List<String> arguments) {
+ final result = sass.compileToResult('assets/_sass/main.scss');
+
+ new File('assets/css/styles.css').writeAsStringSync(result.css);
+}
diff --git a/pubspec.lock b/pubspec.lock
new file mode 100644
index 0000000..613aa06
--- /dev/null
+++ b/pubspec.lock
@@ -0,0 +1,573 @@
+# Generated by pub
+# See https://dart.dev/tools/pub/glossary#lockfile
+packages:
+ _fe_analyzer_shared:
+ dependency: transitive
+ description:
+ name: _fe_analyzer_shared
+ sha256: f6526c100095fd63a916824e3da344bbbd50c25c8f56bcd52d13c59d35bbe422
+ url: "https://pub.dev"
+ source: hosted
+ version: "104.0.0"
+ analyzer:
+ dependency: transitive
+ description:
+ name: analyzer
+ sha256: "6c6d751533496152e78f71c46ad001260c5e74e0f9ec1f1cbc165a0467c086d6"
+ url: "https://pub.dev"
+ source: hosted
+ version: "14.0.0"
+ archive:
+ dependency: transitive
+ description:
+ name: archive
+ sha256: a96e8b390886ee8abb49b7bd3ac8df6f451c621619f52a26e815fdcf568959ff
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.0.9"
+ args:
+ dependency: transitive
+ description:
+ name: args
+ sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.7.0"
+ async:
+ dependency: transitive
+ description:
+ name: async
+ sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.13.1"
+ boolean_selector:
+ dependency: transitive
+ description:
+ name: boolean_selector
+ sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.2"
+ charcode:
+ dependency: transitive
+ description:
+ name: charcode
+ sha256: fb0f1107cac15a5ea6ef0a6ef71a807b9e4267c713bb93e00e92d737cc8dbd8a
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.4.0"
+ checked_yaml:
+ dependency: transitive
+ description:
+ name: checked_yaml
+ sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.0.4"
+ cli_config:
+ dependency: transitive
+ description:
+ name: cli_config
+ sha256: ac20a183a07002b700f0c25e61b7ee46b23c309d76ab7b7640a028f18e4d99ec
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.2.0"
+ cli_pkg:
+ dependency: transitive
+ description:
+ name: cli_pkg
+ sha256: "1b3915a8924e8a495ec24b8ee076c182211d0bd563699a2c8ed9af33bf296af8"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.15.2"
+ cli_repl:
+ dependency: transitive
+ description:
+ name: cli_repl
+ sha256: a2ee06d98f211cb960c777519cb3d14e882acd90fe5e078668e3ab4baab0ddd4
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.2.3"
+ cli_util:
+ dependency: transitive
+ description:
+ name: cli_util
+ sha256: "5909d2c6b66817222779e1eedc19e0e28b76d1df7bd9856a4792ccb9881df358"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.5.1"
+ collection:
+ dependency: transitive
+ description:
+ name: collection
+ sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.19.1"
+ convert:
+ dependency: transitive
+ description:
+ name: convert
+ sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.1.2"
+ coverage:
+ dependency: transitive
+ description:
+ name: coverage
+ sha256: "956a3de0725ca232ad353565a8290d3357592bf4250f6f298a185e2d949c5d3d"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.15.1"
+ crypto:
+ dependency: transitive
+ description:
+ name: crypto
+ sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.7"
+ ffi:
+ dependency: transitive
+ description:
+ name: ffi
+ sha256: "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.2.0"
+ file:
+ dependency: transitive
+ description:
+ name: file
+ sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
+ url: "https://pub.dev"
+ source: hosted
+ version: "7.0.1"
+ fixnum:
+ dependency: transitive
+ description:
+ name: fixnum
+ sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.1.1"
+ frontend_server_client:
+ dependency: transitive
+ description:
+ name: frontend_server_client
+ sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.0.0"
+ glob:
+ dependency: transitive
+ description:
+ name: glob
+ sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.3"
+ grinder:
+ dependency: transitive
+ description:
+ name: grinder
+ sha256: "8c65fc6c0c0748c2d9080c1fb603d7a9640bf5a5eda29f35099bd351cc45093f"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.10.0"
+ http:
+ dependency: transitive
+ description:
+ name: http
+ sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.6.0"
+ http_multi_server:
+ dependency: transitive
+ description:
+ name: http_multi_server
+ sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.2.2"
+ http_parser:
+ dependency: transitive
+ description:
+ name: http_parser
+ sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571"
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.1.2"
+ io:
+ dependency: transitive
+ description:
+ name: io
+ sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.5"
+ js:
+ dependency: transitive
+ description:
+ name: js
+ sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.6.7"
+ json_annotation:
+ dependency: transitive
+ description:
+ name: json_annotation
+ sha256: "2a743920d81b7910627f68ee2c9ac1fc0bfee32b9fc3403587d7c6791ca12f80"
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.12.0"
+ logging:
+ dependency: transitive
+ description:
+ name: logging
+ sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.3.0"
+ matcher:
+ dependency: transitive
+ description:
+ name: matcher
+ sha256: "31bd099b47c10cd1aeb55146a2d46ce0277630ecef3f7dae54ad7873f36696cd"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.12.20"
+ meta:
+ dependency: transitive
+ description:
+ name: meta
+ sha256: "307249ce4ff29d58a18e97f6345f539382eb9c9c29ecda628900f31de0443dd9"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.19.0"
+ mime:
+ dependency: transitive
+ description:
+ name: mime
+ sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.0.0"
+ native_stack_traces:
+ dependency: transitive
+ description:
+ name: native_stack_traces
+ sha256: d34cf916db87b14d39465b3e3b4b4a8ee1f304bde6ed7605571e34802e3d6a11
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.6.1"
+ native_synchronization:
+ dependency: transitive
+ description:
+ name: native_synchronization
+ sha256: "047fa3665d611e178edc167e56166714f125750f064d20216892f1cca69d9d1d"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.3.1"
+ node_interop:
+ dependency: transitive
+ description:
+ name: node_interop
+ sha256: "4848ac408c0cdd0f70136b755df816a8e4c96c244e5377a3fb3b8f8950666150"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.2.0"
+ node_preamble:
+ dependency: transitive
+ description:
+ name: node_preamble
+ sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.0.2"
+ package_config:
+ dependency: transitive
+ description:
+ name: package_config
+ sha256: ffcf4cf3d6c0b74ac43708d9f56625506e8a68aa935abe9d267a7330f320eb5d
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.0"
+ path:
+ dependency: transitive
+ description:
+ name: path
+ sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.9.1"
+ petitparser:
+ dependency: transitive
+ description:
+ name: petitparser
+ sha256: "91bd59303e9f769f108f8df05e371341b15d59e995e6806aefab827b58336675"
+ url: "https://pub.dev"
+ source: hosted
+ version: "7.0.2"
+ pool:
+ dependency: transitive
+ description:
+ name: pool
+ sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.5.2"
+ posix:
+ dependency: transitive
+ description:
+ name: posix
+ sha256: "185ef7606574f789b40f289c233efa52e96dead518aed988e040a10737febb07"
+ url: "https://pub.dev"
+ source: hosted
+ version: "6.5.0"
+ protobuf:
+ dependency: transitive
+ description:
+ name: protobuf
+ sha256: "75ec242d22e950bdcc79ee38dd520ce4ee0bc491d7fadc4ea47694604d22bf06"
+ url: "https://pub.dev"
+ source: hosted
+ version: "6.0.0"
+ pub_semver:
+ dependency: transitive
+ description:
+ name: pub_semver
+ sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.2.0"
+ pubspec_parse:
+ dependency: transitive
+ description:
+ name: pubspec_parse
+ sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.5.0"
+ retry:
+ dependency: transitive
+ description:
+ name: retry
+ sha256: "822e118d5b3aafed083109c72d5f484c6dc66707885e07c0fbcb8b986bba7efc"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.1.2"
+ sass:
+ dependency: "direct dev"
+ description:
+ name: sass
+ sha256: b1a3e2c2e5d3cdb24d49fc1ec781e111298b44fbf0e8e34f2bdcc294841782e1
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.101.2"
+ shelf:
+ dependency: transitive
+ description:
+ name: shelf
+ sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.4.2"
+ shelf_packages_handler:
+ dependency: transitive
+ description:
+ name: shelf_packages_handler
+ sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.2"
+ shelf_static:
+ dependency: transitive
+ description:
+ name: shelf_static
+ sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.1.3"
+ shelf_web_socket:
+ dependency: transitive
+ description:
+ name: shelf_web_socket
+ sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.0"
+ source_map_stack_trace:
+ dependency: transitive
+ description:
+ name: source_map_stack_trace
+ sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.2"
+ source_maps:
+ dependency: transitive
+ description:
+ name: source_maps
+ sha256: "190222579a448b03896e0ca6eca5998fa810fda630c1d65e2f78b3f638f54812"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.10.13"
+ source_span:
+ dependency: transitive
+ description:
+ name: source_span
+ sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.10.2"
+ stack_trace:
+ dependency: transitive
+ description:
+ name: stack_trace
+ sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.12.1"
+ stream_channel:
+ dependency: transitive
+ description:
+ name: stream_channel
+ sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.4"
+ stream_transform:
+ dependency: transitive
+ description:
+ name: stream_transform
+ sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.1"
+ string_scanner:
+ dependency: transitive
+ description:
+ name: string_scanner
+ sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.4.1"
+ term_glyph:
+ dependency: transitive
+ description:
+ name: term_glyph
+ sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.2.2"
+ test:
+ dependency: transitive
+ description:
+ name: test
+ sha256: "0d5ba5602ec3baa28c8ce365e1efc5575969c765f45c554a3e167dc7945b9c30"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.31.2"
+ test_api:
+ dependency: transitive
+ description:
+ name: test_api
+ sha256: "475610b2aa23c19687cce2961e44b0cc57cafe220f67c2b80201231b2a07fbe7"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.7.13"
+ test_core:
+ dependency: transitive
+ description:
+ name: test_core
+ sha256: a39c204a4fc7a7ccb04a2b985e359fda3cc37e45e0b8ac61c3fb1a05aa832132
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.6.19"
+ test_process:
+ dependency: transitive
+ description:
+ name: test_process
+ sha256: ea79c090deffc87d8276a5d28bb498d080a9873be6b1074d9dcfb82eb87e138e
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.1"
+ typed_data:
+ dependency: transitive
+ description:
+ name: typed_data
+ sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.4.0"
+ vm_service:
+ dependency: transitive
+ description:
+ name: vm_service
+ sha256: "0016aef94fc66495ac78af5859181e3f3bf2026bd8eecc72b9565601e19ab360"
+ url: "https://pub.dev"
+ source: hosted
+ version: "15.2.0"
+ watcher:
+ dependency: transitive
+ description:
+ name: watcher
+ sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.2.1"
+ web:
+ dependency: transitive
+ description:
+ name: web
+ sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.1.1"
+ web_socket:
+ dependency: transitive
+ description:
+ name: web_socket
+ sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.1"
+ web_socket_channel:
+ dependency: transitive
+ description:
+ name: web_socket_channel
+ sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.3"
+ webkit_inspection_protocol:
+ dependency: transitive
+ description:
+ name: webkit_inspection_protocol
+ sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.2.1"
+ xml:
+ dependency: transitive
+ description:
+ name: xml
+ sha256: "67f0aff7be013d107995e9b75bf4e7f2c3ef2dfdb2c8e68024bba0a7fd5756a4"
+ url: "https://pub.dev"
+ source: hosted
+ version: "7.0.1"
+ yaml:
+ dependency: transitive
+ description:
+ name: yaml
+ sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.1.3"
+sdks:
+ dart: ">=3.11.0 <4.0.0"
diff --git a/pubspec.yaml b/pubspec.yaml
new file mode 100644
index 0000000..552afcd
--- /dev/null
+++ b/pubspec.yaml
@@ -0,0 +1,7 @@
+name: flevum
+
+environment:
+ sdk: ^3.6.0
+
+dev_dependencies:
+ sass: ^1.101.0