diff --git a/_config.ts b/_config.ts
index a25244a..1771bc6 100644
--- a/_config.ts
+++ b/_config.ts
@@ -1,13 +1,15 @@
-import lume from "https:/deno.land/x/lume/mod.ts";
-import sass from "https:/deno.land/x/lume/plugins/sass.ts";
-import date from "https:/deno.land/x/lume/plugins/date.ts";
-import jsx from "https:/deno.land/x/lume/plugins/jsx.ts";
-import terser from "https:/deno.land/x/lume/plugins/terser.ts";
-import postcss from "https:/deno.land/x/lume/plugins/postcss.ts";
+import lume from "https://deno.land/x/lume/mod.ts";
+import sass from "https://deno.land/x/lume/plugins/sass.ts";
+import date from "https://deno.land/x/lume/plugins/date.ts";
+import jsx from "https://deno.land/x/lume/plugins/jsx.ts";
+import terser from "https://deno.land/x/lume/plugins/terser.ts";
+import postcss from "https://deno.land/x/lume/plugins/postcss.ts";
const site = lume();
-site.use(sass());
+site.use(sass({
+ includes: ['_includes'],
+}));
site.use(date());
site.use(jsx());
site.use(terser());
diff --git a/_includes/Head.tsx b/_includes/Head.tsx
index b339223..48297c9 100644
--- a/_includes/Head.tsx
+++ b/_includes/Head.tsx
@@ -17,7 +17,7 @@ export default ({
-
+
<>
{(extraStylesheets || [])
diff --git a/_includes/ISOIFrame.tsx b/_includes/ISOIFrame.tsx
new file mode 100644
index 0000000..ffd24ae
--- /dev/null
+++ b/_includes/ISOIFrame.tsx
@@ -0,0 +1,4 @@
+export default () => ;
diff --git a/_includes/layouts/default.tsx b/_includes/layouts/default.tsx
index e1d4d04..a886118 100644
--- a/_includes/layouts/default.tsx
+++ b/_includes/layouts/default.tsx
@@ -3,6 +3,7 @@ import Head from '../Head.tsx';
import Background from '../Background.tsx';
import Homelink from '../Homelink.tsx';
import HakkenDates from '../HakkenDates.tsx';
+import ISOIFrame from '../ISOIFrame.tsx';
export default ({
title,
@@ -14,6 +15,7 @@ export default ({
cacheBust,
showHakkenDates,
+ showISOIFrame,
}) => <>
{showHakkenDates ? : null}
+ {showISOIFrame ? : null}
climate-neutral hosting by Greenbaum Cloud
diff --git a/_includes/styles/background.scss b/_includes/styles/background.scss
new file mode 100644
index 0000000..3cf6b0a
--- /dev/null
+++ b/_includes/styles/background.scss
@@ -0,0 +1,33 @@
+.ps-background {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: flex-start;
+ justify-content: space-between;
+ speak: none;
+
+ &--logo {
+ width: calc(100vw / 9);
+ height: 4rem;
+ margin: 0.1rem;
+
+ @media screen and (orientation: landscape) {
+ width: calc(100vw / 16);
+ }
+ }
+
+ &--1312 {
+ transform: rotate(34deg);
+ transform-origin: center center;
+ color: #eee;
+ position: fixed;
+ z-index: 1;
+ top: -50vh;
+ left: -50vw;
+ font-weight: 900;
+ font-size: 7rem;
+ line-height: 6rem;
+ width: 200vw;
+ height: 200vh;
+ }
+}
+
diff --git a/_includes/styles/footer.scss b/_includes/styles/footer.scss
new file mode 100644
index 0000000..f04c471
--- /dev/null
+++ b/_includes/styles/footer.scss
@@ -0,0 +1,19 @@
+.ps-footer {
+ display: flex;
+ margin-top: auto;
+ z-index: 1;
+
+ &--link {
+ &:hover {
+ text-shadow: 0.2vw 0px 0px var(--accent);
+ }
+
+ @media screen and (min-width: 700px) {
+ font-size: 4rem;
+ }
+
+ @media screen and (min-width: 1000px) {
+ font-size: 2rem;
+ }
+ }
+}
diff --git a/_includes/styles/homelink.scss b/_includes/styles/homelink.scss
new file mode 100644
index 0000000..cd6a1c9
--- /dev/null
+++ b/_includes/styles/homelink.scss
@@ -0,0 +1,30 @@
+.ps-homelink {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 100;
+
+ pointer-events: all;
+ color: var(--foreground);
+ background: white;
+ text-decoration: none;
+ text-align: center;
+ font-weight: 900;
+ font-size: 24px;
+ padding: 8px;
+ line-height: 1em;
+ text-shadow: 0.15vw 0px 0px white;
+ transition: text-shadow 0.1s ease;
+ border: 12px solid black;
+ border-top: 0;
+ border-left: 0;
+
+ &:hover {
+ text-shadow: 0.3vw 0px 0px var(--accent);
+ }
+
+ @media screen and (min-width: 1200px) {
+ font-size: 32px;
+ padding: 12px;
+ }
+}
diff --git a/_includes/styles/iso-iframe.scss b/_includes/styles/iso-iframe.scss
new file mode 100644
index 0000000..6142de1
--- /dev/null
+++ b/_includes/styles/iso-iframe.scss
@@ -0,0 +1,4 @@
+.ps-iso-iframe {
+ width: 100%;
+ aspect-ratio: 16 / 9;
+}
diff --git a/_includes/styles/logo.scss b/_includes/styles/logo.scss
new file mode 100644
index 0000000..65fab19
--- /dev/null
+++ b/_includes/styles/logo.scss
@@ -0,0 +1,45 @@
+.ps-logo {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+ z-index: 1;
+ width: 100px;
+
+ &--base {
+ animation-name: rotate;
+ animation-duration: 0.3s;
+ animation-timing-function: linear;
+ animation-play-state: paused;
+ animation-iteration-count: infinite;
+
+ &:hover {
+ animation-play-state: running;
+ }
+ }
+
+ &:nth-child(2n) &--base { animation-delay: -0.1s; }
+ &:nth-child(3n) &--base { animation-delay: -0.3s; }
+ &:nth-child(5n) &--base { animation-delay: -0.5s; }
+ &:nth-child(7n) &--base { animation-delay: -7s; }
+ &:nth-child(11n) &--base { animation-delay: -0.9s; }
+ &:nth-child(13n) &--base { animation-delay: -1s; }
+
+ &--base::before {
+ position: absolute;
+ display: block;
+ content: '';
+ width: 100%;
+ height: 100%;
+ border-radius: 50%;
+ }
+}
+
+@keyframes rotate {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 100% {
+ transform: rotate(360deg);
+ }
+}
diff --git a/_includes/styles/main.scss b/_includes/styles/main.scss
new file mode 100644
index 0000000..e0f1ba2
--- /dev/null
+++ b/_includes/styles/main.scss
@@ -0,0 +1,27 @@
+.ps-main {
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ justify-content: space-between;
+ height: 100vh;
+ width: 100vw;
+ margin: 0;
+ padding-top: 10vw;
+ padding-bottom: 2vw;
+ overflow: auto;
+ position: relative;
+
+ &--background {
+ position: fixed;
+ top: 0;
+ left: 0;
+ height: 100vh;
+ width: 100vw;
+ overflow: hidden;
+ }
+
+ &--page {
+ color: grey;
+ z-index: 1;
+ }
+}
diff --git a/_includes/styles/page.scss b/_includes/styles/page.scss
new file mode 100644
index 0000000..a7ce0e3
--- /dev/null
+++ b/_includes/styles/page.scss
@@ -0,0 +1,108 @@
+.ps-page {
+ display: flex;
+ width: 100vw;
+ flex-direction: column;
+ align-items: center;
+ justify-content: flex-start;
+ padding: 0;
+
+ @media screen and (min-width: 1000px) {
+ pointer-events: none;
+ }
+
+ @media screen and (min-width: 1200px) {
+ padding: 1vw;
+ flex-direction: row;
+ align-items: flex-start;
+ }
+
+ &_home {
+ flex-direction: row;
+ flex-wrap: wrap;
+ }
+
+ &--section {
+ border: 12px solid black;
+ margin-top: 10vh;
+ margin-bottom: 10vh;
+ padding: 5vw;
+ max-width: 700px;
+ flex-basis: 100%;
+ font-size: 16px;
+ flex-shrink: 1;
+ pointer-events: all;
+ color: var(--foreground);
+ background: white;
+ word-break: break-word;
+
+ @media screen and (min-width: 1200px) {
+ margin: 1vw;
+ }
+
+ a {
+ color: var(--accent);
+ border-bottom: 1px solid white;
+ transition: border-bottom 0.1s ease;
+ text-decoration: none;
+
+ &:hover {
+ border-bottom: 4px solid var(--accent);
+ }
+ }
+
+ img {
+ width: 230px;
+ margin-top: 1rem;
+ }
+ }
+
+ &--section-link {
+ position: sticky;
+ top: 0;
+ background-color: var(--background);
+ padding: 1rem;
+ display: flex;
+ justify-content: flex-end;
+ align-items: center;
+ text-align: right;
+ padding-left: 132px;
+
+ @media screen and (min-width: 1200px) {
+ display: none;
+ border-bottom: 0;
+ }
+
+ &-icon {
+ margin-left: 8px;
+ }
+ }
+
+ &--link {
+ pointer-events: all;
+ color: var(--foreground);
+ background: white;
+ text-decoration: none;
+ text-align: center;
+ font-weight: 900;
+ font-size: 12rem;
+ line-height: 1em;
+ padding: 0.2vw;
+ margin: 2vw;
+ text-shadow: 0.15vw 0px 0px white;
+ transition: text-shadow 0.1s ease;
+ border: 12px solid black;
+
+ &:hover {
+ text-shadow: 0.3vw 0px 0px var(--accent);
+ }
+
+ @media screen and (min-width: 700px) {
+ font-size: 8rem;
+ }
+
+ @media screen and (min-width: 1000px) {
+ font-size: 4rem;
+ }
+ }
+}
+
diff --git a/_includes/styles/style.scss b/_includes/styles/style.scss
new file mode 100644
index 0000000..995bb5d
--- /dev/null
+++ b/_includes/styles/style.scss
@@ -0,0 +1,32 @@
+* {
+ box-sizing: border-box;
+}
+
+html {
+ --accent: #ed1c24;
+ --foreground: #000;
+ --background: #fff;
+
+ font-family: 'Open Sans', Arial, sans-serif;
+ font-weight: 900;
+ background: var(--background);
+ color: var(--foreground);
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ box-sizing: border-box;
+ width: 100vw;
+ height: 100vh;
+ margin: 0;
+ font-size: 1vw;
+}
+
+@import './main';
+@import './page';
+@import './background';
+@import './logo';
+@import './footer';
+@import './homelink';
+@import './iso-iframe.scss';
+
diff --git a/_includes/styles/typography.css b/_includes/styles/typography.css
new file mode 100644
index 0000000..70352ba
--- /dev/null
+++ b/_includes/styles/typography.css
@@ -0,0 +1,962 @@
+/* To regenerate this file, run $ google-font-downloader 'https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,800;1,400;1,800&display=swap' */
+
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0370-03FF;
+}
+/* hebrew */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6FxZCJgg.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0370-03FF;
+}
+/* hebrew */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6FxZCJgg.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0370-03FF;
+}
+/* hebrew */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-mu0SC55I.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0370-03FF;
+}
+/* hebrew */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-mu0SC55I.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0370-03FF;
+}
+/* hebrew */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6FxZCJgg.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0370-03FF;
+}
+/* hebrew */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6FxZCJgg.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0370-03FF;
+}
+/* hebrew */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-mu0SC55I.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0370-03FF;
+}
+/* hebrew */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-mu0SC55I.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0370-03FF;
+}
+/* hebrew */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6FxZCJgg.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0370-03FF;
+}
+/* hebrew */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06FxZCJgvAQ.woff2) format('woff2');
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6FxZCJgg.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0370-03FF;
+}
+/* hebrew */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-mu0SC55I.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0370-03FF;
+}
+/* hebrew */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu0SC55K5gw.woff2) format('woff2');
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-mu0SC55I.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
diff --git a/assets/opensans/v20/mem5YaGs126MiZpBA-UN8rsOUuhp.woff2 b/assets/opensans/v20/mem5YaGs126MiZpBA-UN8rsOUuhp.woff2
deleted file mode 100644
index caa87bf..0000000
Binary files a/assets/opensans/v20/mem5YaGs126MiZpBA-UN8rsOUuhp.woff2 and /dev/null differ
diff --git a/assets/opensans/v20/mem5YaGs126MiZpBA-UN8rsOXOhpOqc.woff2 b/assets/opensans/v20/mem5YaGs126MiZpBA-UN8rsOXOhpOqc.woff2
deleted file mode 100644
index 1476f0f..0000000
Binary files a/assets/opensans/v20/mem5YaGs126MiZpBA-UN8rsOXOhpOqc.woff2 and /dev/null differ
diff --git a/assets/opensans/v20/memnYaGs126MiZpBA-UFUKW-U9hlIqOjjg.woff2 b/assets/opensans/v20/memnYaGs126MiZpBA-UFUKW-U9hlIqOjjg.woff2
deleted file mode 100644
index ec3e64b..0000000
Binary files a/assets/opensans/v20/memnYaGs126MiZpBA-UFUKW-U9hlIqOjjg.woff2 and /dev/null differ
diff --git a/assets/opensans/v20/memnYaGs126MiZpBA-UFUKW-U9hrIqM.woff2 b/assets/opensans/v20/memnYaGs126MiZpBA-UFUKW-U9hrIqM.woff2
deleted file mode 100644
index f2182ac..0000000
Binary files a/assets/opensans/v20/memnYaGs126MiZpBA-UFUKW-U9hrIqM.woff2 and /dev/null differ
diff --git a/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06FxZCJgvAQ.woff2 b/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06FxZCJgvAQ.woff2
new file mode 100644
index 0000000..da853cc
Binary files /dev/null and b/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06FxZCJgvAQ.woff2 differ
diff --git a/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6FxZCJgvAQ.woff2 b/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6FxZCJgvAQ.woff2
new file mode 100644
index 0000000..b5e42fa
Binary files /dev/null and b/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6FxZCJgvAQ.woff2 differ
diff --git a/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6FxZCJgvAQ.woff2 b/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6FxZCJgvAQ.woff2
new file mode 100644
index 0000000..47fc3c8
Binary files /dev/null and b/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6FxZCJgvAQ.woff2 differ
diff --git a/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6FxZCJgvAQ.woff2 b/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6FxZCJgvAQ.woff2
new file mode 100644
index 0000000..0808429
Binary files /dev/null and b/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6FxZCJgvAQ.woff2 differ
diff --git a/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06FxZCJgvAQ.woff2 b/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06FxZCJgvAQ.woff2
new file mode 100644
index 0000000..c76b361
Binary files /dev/null and b/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06FxZCJgvAQ.woff2 differ
diff --git a/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6FxZCJgg.woff2 b/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6FxZCJgg.woff2
new file mode 100644
index 0000000..c57b286
Binary files /dev/null and b/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6FxZCJgg.woff2 differ
diff --git a/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6FxZCJgvAQ.woff2 b/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6FxZCJgvAQ.woff2
new file mode 100644
index 0000000..c793cdc
Binary files /dev/null and b/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6FxZCJgvAQ.woff2 differ
diff --git a/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6FxZCJgvAQ.woff2 b/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6FxZCJgvAQ.woff2
new file mode 100644
index 0000000..a9e226b
Binary files /dev/null and b/fonts/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6FxZCJgvAQ.woff2 differ
diff --git a/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-mu0SC55I.woff2 b/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-mu0SC55I.woff2
new file mode 100644
index 0000000..2773b1d
Binary files /dev/null and b/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-mu0SC55I.woff2 differ
diff --git a/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu0SC55K5gw.woff2 b/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu0SC55K5gw.woff2
new file mode 100644
index 0000000..cfaa264
Binary files /dev/null and b/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu0SC55K5gw.woff2 differ
diff --git a/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu0SC55K5gw.woff2 b/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu0SC55K5gw.woff2
new file mode 100644
index 0000000..f62aecf
Binary files /dev/null and b/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu0SC55K5gw.woff2 differ
diff --git a/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu0SC55K5gw.woff2 b/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu0SC55K5gw.woff2
new file mode 100644
index 0000000..308618a
Binary files /dev/null and b/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu0SC55K5gw.woff2 differ
diff --git a/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu0SC55K5gw.woff2 b/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu0SC55K5gw.woff2
new file mode 100644
index 0000000..ca000cb
Binary files /dev/null and b/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu0SC55K5gw.woff2 differ
diff --git a/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu0SC55K5gw.woff2 b/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu0SC55K5gw.woff2
new file mode 100644
index 0000000..3099f7a
Binary files /dev/null and b/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu0SC55K5gw.woff2 differ
diff --git a/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu0SC55K5gw.woff2 b/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu0SC55K5gw.woff2
new file mode 100644
index 0000000..070b64d
Binary files /dev/null and b/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu0SC55K5gw.woff2 differ
diff --git a/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu0SC55K5gw.woff2 b/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu0SC55K5gw.woff2
new file mode 100644
index 0000000..838df2c
Binary files /dev/null and b/fonts/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu0SC55K5gw.woff2 differ
diff --git a/index.yml b/index.yml
index 3f72803..e1235f1 100644
--- a/index.yml
+++ b/index.yml
@@ -4,7 +4,7 @@ links:
- href: https://en.wikipedia.org/wiki/Free_software
title: Fucking Free
openInNewTab: true
- - href: https://pub.solar/os/
+ - href: /os
title: PubSolarOS
- href: https://chat.pub.solar/
title: Matrix
diff --git a/os.yml b/os.yml
new file mode 100644
index 0000000..02a9017
--- /dev/null
+++ b/os.yml
@@ -0,0 +1,33 @@
+layout: layouts/default.tsx
+
+title: PubSolarOS
+showISOIFrame: true
+
+content:
+ en: |
+ # PubSolarOS is an Operating System
+
+ More specifically, it is a GNU/Linux distro based on NixOS.
+
+ The nerdy part of the pub.solar community is creating it for their personal use. If you're into IT and especially Linux, it might be a fun thing to check out.
+
+ If you're interested in finding out what exactly makes PubSolarOS special and/or reading the code, check out [the Git repository on our gitea instance](https://git.b12f.io/pub-solar/os).
+
+ Since PubSolarOS is still in it's infancy the setup can be quite involved and documentation out of date (lol). Reach out to us via [#hakken in Matrix](https://matrix.to/#/#hakken:pub.solar?via=chat.pub.solar).
+
+ ## Downloads
+
+ **Download the latest ISO build:** [PubSolarOS-latest.iso](https://pub.solar/os/isos/PubSolarOS-latest.iso)
+
+ To verify the checksum download the [sha256 signature file], place it next to the iso, and run a check:
+
+ ```
+ $ sha256sum --check < pubsolaros-latest.iso.sha256
+ ```
+
+ de: |
+ # PubSolarOS ist ein Betriebssystem
+
+ Alles in und um PubSolarOS ist momentan am Englischen angelehnt. Falls du den Englischen Text auf dieser Seite nicht verstehst, macht es wahrscheinlich nicht viel Spaß PubSolarOS zu benutzen.
+
+ Falls du dich trotzdem interessierst, rede gerne mit uns über [#hakken in Matrix](https://matrix.to/#/#hakken:pub.solar?via=chat.pub.solar).
diff --git a/shell.nix b/shell.nix
index bc49814..2579d72 100644
--- a/shell.nix
+++ b/shell.nix
@@ -1,6 +1,17 @@
with (import (fetchTarball https://github.com/nixos/nixpkgs/archive/nixpkgs-unstable.tar.gz) {});
+let
+ google-font-downloader = writeShellScriptBin "google-font-downloader" ''
+ echo "Attempting to fetch $1"
+ ${nodejs}/bin/npx google-font-downloader -- $1
+ rm ./styles/typography.css
+ echo "/* To regenerate this file, run $ google-font-downloader '$1' */" >> ./styles/typography.css
+ echo "" >> ./styles/typography.css
+ cat ./google-fonts-*.css >> ./styles/typography.css
+ '';
+in
mkShell {
buildInputs = [
deno
+ google-font-downloader
];
}
diff --git a/style.css b/style.css
deleted file mode 100644
index d30e2a3..0000000
--- a/style.css
+++ /dev/null
@@ -1,346 +0,0 @@
-/* latin-ext */
-@font-face {
- font-family: 'Open Sans';
- font-style: italic;
- font-weight: 800;
- font-display: swap;
- src: url(/assets/opensans/v20/memnYaGs126MiZpBA-UFUKW-U9hlIqOjjg.woff2) format('woff2');
- unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
- font-family: 'Open Sans';
- font-style: italic;
- font-weight: 800;
- font-display: swap;
- src: url(/assets/opensans/v20/memnYaGs126MiZpBA-UFUKW-U9hrIqM.woff2) format('woff2');
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-/* latin-ext */
-@font-face {
- font-family: 'Open Sans';
- font-style: normal;
- font-weight: 800;
- font-display: swap;
- src: url(/assets/opensans/v20/mem5YaGs126MiZpBA-UN8rsOXOhpOqc.woff2) format('woff2');
- unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
- font-family: 'Open Sans';
- font-style: normal;
- font-weight: 800;
- font-display: swap;
- src: url(/assets/opensans/v20/mem5YaGs126MiZpBA-UN8rsOUuhp.woff2) format('woff2');
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-
-* {
- box-sizing: border-box;
-}
-
-html {
- --accent: #ed1c24;
- --foreground: #000;
- --background: #fff;
-
- font-family: 'Open Sans', Arial, sans-serif;
- font-weight: 900;
- background: var(--background);
- color: var(--foreground);
- -ms-text-size-adjust: 100%;
- -webkit-text-size-adjust: 100%;
- -moz-osx-font-smoothing: grayscale;
- -webkit-font-smoothing: antialiased;
- box-sizing: border-box;
- width: 100vw;
- height: 100vh;
- margin: 0;
- font-size: 1vw;
-}
-
-.ps-main {
- display: flex;
- flex-direction: column;
- align-items: stretch;
- justify-content: space-between;
- height: 100vh;
- width: 100vw;
- margin: 0;
- padding-top: 10vw;
- padding-bottom: 2vw;
- overflow: auto;
- position: relative;
-}
-
-.ps-main--background {
- position: fixed;
- top: 0;
- left: 0;
- height: 100vh;
- width: 100vw;
- overflow: hidden;
-}
-
-.ps-main--page {
- color: grey;
- z-index: 1;
-}
-
-.ps-page {
- display: flex;
- width: 100vw;
- flex-direction: column;
- align-items: center;
- justify-content: flex-start;
- padding: 0;
-}
-
-@media screen and (min-width: 1000px) {
- .ps-page {
- pointer-events: none;
- }
-}
-
-@media screen and (min-width: 1200px) {
- .ps-page {
- padding: 1vw;
- flex-direction: row;
- align-items: flex-start;
- }
-}
-
-.ps-page_home {
- flex-direction: row;
- flex-wrap: wrap;
-}
-
-.ps-page--section {
- border: 12px solid black;
- margin-top: 10vh;
- margin-bottom: 10vh;
- padding: 5vw;
- max-width: 700px;
- flex-basis: 100%;
- font-size: 16px;
- flex-shrink: 1;
- pointer-events: all;
- color: var(--foreground);
- background: white;
- word-break: break-word;
-}
-
-@media screen and (min-width: 1200px) {
- .ps-page--section {
- margin: 1vw;
- }
-}
-
-.ps-page--section a {
- color: var(--accent);
- border-bottom: 1px solid white;
- transition: border-bottom 0.1s ease;
- text-decoration: none;
-}
-
-.ps-page--section a:hover {
- border-bottom: 4px solid var(--accent);
-}
-
-.ps-page--section img {
- width: 230px;
- margin-top: 1rem;
-}
-
-.ps-footer--link,
-.ps-page--link {
- pointer-events: all;
- color: var(--foreground);
- background: white;
- text-decoration: none;
- text-align: center;
- font-weight: 900;
- font-size: 12rem;
- line-height: 1em;
- padding: 0.2vw;
- margin: 2vw;
- text-shadow: 0.15vw 0px 0px white;
- transition: text-shadow 0.1s ease;
- border: 12px solid black;
-}
-
-.ps-page--link:hover {
- text-shadow: 0.3vw 0px 0px var(--accent);
-}
-
-.ps-footer--link {
- font-size: 6rem;
- border: 6px solid black;
-}
-
-.ps-footer--link:hover {
- text-shadow: 0.2vw 0px 0px var(--accent);
-}
-
-@media screen and (min-width: 700px) {
- .ps-footer--link {
- font-size: 4rem;
- }
-
- .ps-page--link {
- font-size: 8rem;
- }
-}
-
-@media screen and (min-width: 1000px) {
- .ps-footer--link {
- font-size: 2rem;
- }
-
- .ps-page--link {
- font-size: 4rem;
- }
-}
-
-.ps-page--section-link {
- position: sticky;
- top: 0;
- background-color: var(--background);
- padding: 1rem;
- display: flex;
- justify-content: flex-end;
- align-items: center;
- text-align: right;
- padding-left: 132px
-}
-
-@media screen and (min-width: 1200px) {
- .ps-page--section-link {
- display: none;
- border-bottom: 0;
- }
-}
-
-.ps-page--section-link-icon {
- margin-left: 8px;
-}
-
-.ps-footer {
- display: flex;
- margin-top: auto;
- z-index: 1;
-}
-
-.ps-background {
- display: flex;
- flex-wrap: wrap;
- align-items: flex-start;
- justify-content: space-between;
- speak: none;
-}
-
-.ps-background--logo {
- width: calc(100vw / 9);
- height: 4rem;
- margin: 0.1rem;
-}
-
-@media screen and (orientation: landscape) {
- .ps-background--logo {
- width: calc(100vw / 16);
- }
-}
-
-.ps-background--1312 {
- transform: rotate(34deg);
- transform-origin: center center;
- color: #eee;
- position: fixed;
- z-index: 1;
- top: -50vh;
- left: -50vw;
- font-weight: 900;
- font-size: 7rem;
- line-height: 6rem;
- width: 200vw;
- height: 200vh;
-}
-
-.ps-logo {
- display: flex;
- align-items: center;
- justify-content: center;
- position: relative;
- z-index: 1;
- width: 100px;
-}
-
-.ps-logo--base {
- animation-name: rotate;
- animation-duration: 0.3s;
- animation-timing-function: linear;
- animation-play-state: paused;
- animation-iteration-count: infinite;
-}
-
-.ps-logo--base:hover {
- animation-play-state: running;
-}
-
-.ps-logo:nth-child(2n) .ps-logo--base { animation-delay: -0.1s; }
-.ps-logo:nth-child(3n) .ps-logo--base { animation-delay: -0.3s; }
-.ps-logo:nth-child(5n) .ps-logo--base { animation-delay: -0.5s; }
-.ps-logo:nth-child(7n) .ps-logo--base { animation-delay: -7s; }
-.ps-logo:nth-child(11n) .ps-logo--base { animation-delay: -0.9s; }
-.ps-logo:nth-child(13n) .ps-logo--base { animation-delay: -1s; }
-
-.ps-logo--base::before {
- position: absolute;
- display: block;
- content: '';
- width: 100%;
- height: 100%;
- border-radius: 50%;
-}
-
-@keyframes rotate {
- 0% {
- transform: rotate(0deg);
- }
- 100% {
- transform: rotate(360deg);
- }
-}
-
-.ps-homelink {
- position: fixed;
- top: 0;
- left: 0;
- z-index: 100;
-
- pointer-events: all;
- color: var(--foreground);
- background: white;
- text-decoration: none;
- text-align: center;
- font-weight: 900;
- font-size: 24px;
- padding: 8px;
- line-height: 1em;
- text-shadow: 0.15vw 0px 0px white;
- transition: text-shadow 0.1s ease;
- border: 12px solid black;
- border-top: 0;
- border-left: 0;
-}
-
-.ps-homelink:hover {
- text-shadow: 0.3vw 0px 0px var(--accent);
-}
-
-@media screen and (min-width: 1200px) {
- .ps-homelink {
- font-size: 32px;
- padding: 12px;
- }
-}
diff --git a/styles.scss b/styles.scss
new file mode 100644
index 0000000..822487d
--- /dev/null
+++ b/styles.scss
@@ -0,0 +1,2 @@
+@import 'styles/style';
+@import 'styles/typography';