From d7b5585666f0031e339b38a2ad2c2ca06db6d0c5 Mon Sep 17 00:00:00 2001 From: Florian Uhlig Date: Wed, 3 Dec 2025 13:14:23 +0100 Subject: [PATCH] with nginx as webbrowser running --- RebuildGitScript.sh | 18 -- compose.yml | 23 +- public/404.html | 160 ----------- public/apple-touch-icon.png | Bin 190 -> 0 bytes public/bundle.min.js | 3 - public/categories/index.html | 170 ------------ public/categories/index.xml | 19 -- public/categories/webdev/index.html | 192 ------------- public/categories/webdev/index.xml | 19 -- public/categories/webdev/page/1/index.html | 10 - ...36b442c1f66f718ff4e8164fa86cf6c61ad641.css | 1 - ...5466d5f7bc2f0bc9abdd98b69385335d7baee4.css | 1 - ...6737007eb5051b157b86fc24487c94f3dc8bbe.css | 1 - ...3e69e849e2200e0002a228d137f236b09ecd75.css | 1 - ...8b19d8950fe78ca29454ea8c2595cf26aad5c0.css | 1 - ...7d0223a38db52e2561dd87966eb5fc7c6bdac6.css | 1 - ...7c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css | 1 - ...f519901124fa5cbb4519b2fb0667a21e9aca39.css | 1 - ...925fc1c581992a4bf57f163e5d69cc1db7d836.css | 1 - ...c05216742d42fc8ecbfbe6b67083412b609bd3.css | 1 - ...05448facf29a53001b57e038828daa466b25c0.css | 1 - ...6fb92427ae41e4649b934ca495991b7852b855.css | 2 - ...802312390d30e4b1d8dc9d814a5b5454d0ac11.css | 1 - public/favicon.png | Bin 190 -> 0 bytes public/fonts/FiraCode-Latin.woff2 | Bin 35496 -> 0 bytes public/fonts/FiraCode-LatinExt.woff2 | Bin 12696 -> 0 bytes public/index.html | 262 ------------------ public/index.xml | 26 -- public/og-image.png | Bin 4595 -> 0 bytes public/page/1/index.html | 10 - public/posts/aboutme/index.html | 193 ------------- public/posts/index.html | 243 ---------------- public/posts/index.xml | 26 -- public/posts/md.template | 6 - public/posts/page/1/index.html | 10 - .../posts/whatimworkingoncurrently/index.html | 236 ---------------- public/sitemap.xml | 29 -- public/tags/blog/index.html | 244 ---------------- public/tags/blog/index.xml | 26 -- public/tags/blog/page/1/index.html | 10 - public/tags/index.html | 180 ------------ public/tags/index.xml | 19 -- ...s_9d7c906d8fe82fddbbd923faebb24419.content | 1 - ....css_9d7c906d8fe82fddbbd923faebb24419.json | 1 - startup.sh | 3 + 45 files changed, 24 insertions(+), 2129 deletions(-) delete mode 100755 RebuildGitScript.sh delete mode 100644 public/404.html delete mode 100644 public/apple-touch-icon.png delete mode 100644 public/bundle.min.js delete mode 100644 public/categories/index.html delete mode 100644 public/categories/index.xml delete mode 100644 public/categories/webdev/index.html delete mode 100644 public/categories/webdev/index.xml delete mode 100644 public/categories/webdev/page/1/index.html delete mode 100644 public/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css delete mode 100644 public/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css delete mode 100644 public/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css delete mode 100644 public/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css delete mode 100644 public/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css delete mode 100644 public/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css delete mode 100644 public/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css delete mode 100644 public/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css delete mode 100644 public/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css delete mode 100644 public/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css delete mode 100644 public/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css delete mode 100644 public/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css delete mode 100644 public/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css delete mode 100644 public/favicon.png delete mode 100644 public/fonts/FiraCode-Latin.woff2 delete mode 100644 public/fonts/FiraCode-LatinExt.woff2 delete mode 100644 public/index.html delete mode 100644 public/index.xml delete mode 100644 public/og-image.png delete mode 100644 public/page/1/index.html delete mode 100644 public/posts/aboutme/index.html delete mode 100644 public/posts/index.html delete mode 100644 public/posts/index.xml delete mode 100644 public/posts/md.template delete mode 100644 public/posts/page/1/index.html delete mode 100644 public/posts/whatimworkingoncurrently/index.html delete mode 100644 public/sitemap.xml delete mode 100644 public/tags/blog/index.html delete mode 100644 public/tags/blog/index.xml delete mode 100644 public/tags/blog/page/1/index.html delete mode 100644 public/tags/index.html delete mode 100644 public/tags/index.xml delete mode 100644 resources/_gen/assets/ananke/css/main.css_9d7c906d8fe82fddbbd923faebb24419.content delete mode 100644 resources/_gen/assets/ananke/css/main.css_9d7c906d8fe82fddbbd923faebb24419.json create mode 100644 startup.sh diff --git a/RebuildGitScript.sh b/RebuildGitScript.sh deleted file mode 100755 index 0232f33..0000000 --- a/RebuildGitScript.sh +++ /dev/null @@ -1,18 +0,0 @@ - -# Pull changes -git pull origin main - -# Rebuild -docker compose exec -it hugo hugo --cleanDestinationDir - -# Add -git add . - -# commit -git commit -m "Rebuild" - -# Push -git push origin main - -# Rebuild -docker compose exec -it hugo hugo --cleanDestinationDir diff --git a/compose.yml b/compose.yml index 703668b..b653cf1 100644 --- a/compose.yml +++ b/compose.yml @@ -2,15 +2,34 @@ services: hugo: image: hugomods/hugo:0.135.0 container_name: hugo - user: 1000:1000 + restart: no volumes: - ./:/src + - static-site:/src/public #ports: #- "1313:1313" - command: server --bind 0.0.0.0 + command: ["hugo", "--cleanDestinationDir", "--baseURL", "https://blog.fuhlig.de/", "--ignoreCache"] + #command: ["hugo"] networks: - net + nginx: + image: nginx:alpine + container_name: blog + #ports: + #- "80:80" + volumes: + - static-site:/usr/share/nginx/html:ro + depends_on: + - hugo + restart: unless-stopped + networks: + - net + +volumes: + static-site: + name: blog.data + networks: net: name: docker_public diff --git a/public/404.html b/public/404.html deleted file mode 100644 index 0e6bd9e..0000000 --- a/public/404.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - 404 Page not found :: TechnicalBlog - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- - - -
- -
- - -
- -
-

404 — Page not found...

- -
- Back to home page → -
- -
- -
- - - - - - - - - - - - - - - - -
- - - diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png deleted file mode 100644 index 0ac2c2772a6d8d5905459c349e848c297c9bd86d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-&H|6fVg?3oVGw3ym^DWND9BhG zGQmYp^O8qeVA>gTe~DWM4f7lb!O diff --git a/public/bundle.min.js b/public/bundle.min.js deleted file mode 100644 index d492253..0000000 --- a/public/bundle.min.js +++ /dev/null @@ -1,3 +0,0 @@ -(()=>{var t=document.querySelector(".container"),e=document.querySelectorAll(".menu");document.body.addEventListener("click",()=>{e.forEach(e=>{e.classList.contains("open")&&e.classList.remove("open")})}),window.addEventListener("resize",()=>{e.forEach(e=>{e.classList.remove("open")})}),e.forEach(n=>{const o=n.querySelector(".menu__trigger"),s=n.querySelector(".menu__dropdown");o.addEventListener("click",o=>{o.stopPropagation(),n.classList.contains("open")?n.classList.remove("open"):(e.forEach(e=>e.classList.remove("open")),n.classList.add("open")),s.getBoundingClientRect().right>t.getBoundingClientRect().right&&(s.style.left="auto",s.style.right=0)}),s.addEventListener("click",e=>e.stopPropagation())})})(),(()=>{var e=document.querySelectorAll(".chroma code[data-lang]");for(const n of e){const s=n.parentElement,o=n.innerText.split(` -`).filter(Boolean).join(` -`),t=document.createElement("div"),i=n.dataset.lang;if(t.classList.add("code-title"),t.innerText=i,navigator.clipboard!==void 0){const e=document.createElement("button");e.classList.add("copy-button"),e.innerText="Copy",e.addEventListener("click",()=>{e.innerText="Copied",setTimeout(()=>{e.innerText="Copy"},1e3),navigator.clipboard.writeText(o)}),t.append(e)}s.closest(".highlight").prepend(t)}})() \ No newline at end of file diff --git a/public/categories/index.html b/public/categories/index.html deleted file mode 100644 index d4690b2..0000000 --- a/public/categories/index.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - Categories :: TechnicalBlog - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- - - -
- -
- - -
- -
-

Categories

- - -
- -
- - - - - - - - - - - - - - - - -
- - - diff --git a/public/categories/index.xml b/public/categories/index.xml deleted file mode 100644 index 1412834..0000000 --- a/public/categories/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Categories on TechnicalBlog - https://blog.fuhlig.de/categories/ - Recent content in Categories on TechnicalBlog - Hugo - en-us - Wed, 03 Dec 2025 00:00:00 +0000 - - - Webdev - https://blog.fuhlig.de/categories/webdev/ - Wed, 03 Dec 2025 00:00:00 +0000 - https://blog.fuhlig.de/categories/webdev/ - - - - diff --git a/public/categories/webdev/index.html b/public/categories/webdev/index.html deleted file mode 100644 index b336e15..0000000 --- a/public/categories/webdev/index.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - Webdev :: TechnicalBlog - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- - - -
- -
- - -
- -

Posts for: #Webdev

- -
- -
-

- Tags -

- - - - - - - -
- - Here you can find entry quicker thru my tags - -
- - -
- [] -
- -
- - - - -
- -
- - - - - - - - - - - - - - - - -
- - - diff --git a/public/categories/webdev/index.xml b/public/categories/webdev/index.xml deleted file mode 100644 index f3994ff..0000000 --- a/public/categories/webdev/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Webdev on TechnicalBlog - https://blog.fuhlig.de/categories/webdev/ - Recent content in Webdev on TechnicalBlog - Hugo - en-us - Wed, 03 Dec 2025 00:00:00 +0000 - - - Tags - https://blog.fuhlig.de/tags/ - Wed, 03 Dec 2025 00:00:00 +0000 - https://blog.fuhlig.de/tags/ - Here you can find entry quicker thru my tags - - - diff --git a/public/categories/webdev/page/1/index.html b/public/categories/webdev/page/1/index.html deleted file mode 100644 index 07a59a8..0000000 --- a/public/categories/webdev/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - https://blog.fuhlig.de/categories/webdev/ - - - - - - diff --git a/public/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css b/public/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css deleted file mode 100644 index 5359990..0000000 --- a/public/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css +++ /dev/null @@ -1 +0,0 @@ -.button-container{display:table;margin-left:auto;margin-right:auto}button,.button,a.button{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:8px 18px;text-decoration:none;text-align:center;font:inherit;font-weight:700;appearance:none;cursor:pointer;outline:none}button.outline,.button.outline,a.button.outline{background:0 0;box-shadow:none;padding:8px 18px}button.outline :hover,.button.outline :hover,a.button.outline :hover{transform:none;box-shadow:none}button.link,.button.link,a.button.link{background:0 0;font-size:var(--font-size)}button.small,.button.small,a.button.small{font-size:calc(var(--font-size) * .8)}button.wide,.button.wide,a.button.wide{min-width:200px;padding:14px 24px}a.button.inline{background:0 0;color:var(--accent);padding:initial;margin:initial;border:initial;font-weight:initial;text-decoration:none}a.button.inline:active,a.button.inline:hover{background:0 0}a.read-more,a.read-more:hover,a.read-more:active{display:inline-flex;border:none;background:0 0;box-shadow:none;padding:0;max-width:100%;text-decoration:none} \ No newline at end of file diff --git a/public/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css b/public/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css deleted file mode 100644 index de12fb9..0000000 --- a/public/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css +++ /dev/null @@ -1 +0,0 @@ -:root{--code-border:color-mix(in srgb, var(--foreground) 10%, transparent)}pre:not(.chroma){padding:10px}pre.chroma{margin:0;padding:10px 0;color:var(--foreground)}pre code{color:var(--foreground);border:none}code{color:var(--accent);text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;-webkit-text-size-adjust:100%}.highlight{position:relative;margin:20px 0;border:1px solid var(--code-border)}.highlight pre{border:none}.code-title{display:flex;align-items:center;justify-content:space-between;background:color-mix(in srgb,var(--foreground) 5%,transparent);border-bottom:1px solid var(--code-border);color:var(--comment);text-transform:uppercase;font-size:calc(var(--font-size) * .8);padding:6px 10px;line-height:1}.copy-button{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;text-decoration:none;text-align:center;font-size:13px;font-weight:500;border:1px solid color-mix(in srgb,var(--accent) 15%,transparent);appearance:none;cursor:pointer;outline:none}.code-title .copy-button{z-index:1;background:color-mix(in srgb,var(--foreground) 5%,var(--background))}.code-title:hover .copy-button{display:inline-block}.code-title .copy-button:hover{background:color-mix(in srgb,var(--accent) 10%,var(--background))}.collapsable-code{position:relative;width:100%;margin:20px 0;border:1px solid var(--accent);.highlight { margin: 0; }}.collapsable-code__title{display:inline-flex;align-items:center;flex:1;color:var(--accent);padding:3px 10px;font-size:calc(var(--font-size) * .9);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.collapsable-code__language{color:var(--accent);border:1px solid var(--accent);border-bottom:none;text-transform:uppercase;padding:3px 10px}.collapsable-code summary{color:var(--accent);padding:0 10px;cursor:pointer}.collapsable-code summary:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.collapsable-code pre{margin-top:0}.collapsable-code pre::first-line{line-height:0} \ No newline at end of file diff --git a/public/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css b/public/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css deleted file mode 100644 index 937fa55..0000000 --- a/public/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:fira code;font-style:normal;font-weight:300 700;font-display:swap;src:url(../fonts/FiraCode-LatinExt.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:fira code;font-style:normal;font-weight:300 700;font-display:swap;src:url(../fonts/FiraCode-Latin.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD} \ No newline at end of file diff --git a/public/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css b/public/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css deleted file mode 100644 index dddfe01..0000000 --- a/public/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css +++ /dev/null @@ -1 +0,0 @@ -.footer{padding:40px 0;flex-grow:0;opacity:.65}.footer__inner{display:flex;align-items:center;justify-content:space-between;margin:0;max-width:100%}.footer a{color:inherit}.footer .copyright{display:flex;flex-flow:row wrap;flex:1;align-items:center;justify-content:center}.footer .copyright--user{margin:auto;text-align:center}.footer .copyright>*:first-child:not(:only-child){margin-right:10px}.footer .copyright span{white-space:nowrap}@media(max-width:900px){.footer__inner{flex-direction:column}} \ No newline at end of file diff --git a/public/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css b/public/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css deleted file mode 100644 index fe934de..0000000 --- a/public/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css +++ /dev/null @@ -1 +0,0 @@ -body .gist .blob-num,body .gist .blob-code-inner{border:none} \ No newline at end of file diff --git a/public/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css b/public/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css deleted file mode 100644 index b51a56f..0000000 --- a/public/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css +++ /dev/null @@ -1 +0,0 @@ -.header{display:flex;flex-direction:column;position:relative}.header__inner{display:flex;align-items:center;justify-content:space-between}.header__logo{display:flex;flex:1}.header__logo::after{content:"";background:repeating-linear-gradient(90deg,var(--accent),var(--accent) 2px,transparent 0,transparent 10px);display:block;width:100%;right:10px}.header__logo a{flex:none;max-width:100%;text-decoration:none}.logo{display:flex;align-items:center;text-decoration:none;background:var(--accent);color:var(--background);font-weight:700;padding:5px 10px}@media print{.header{display:none}} \ No newline at end of file diff --git a/public/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css b/public/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css deleted file mode 100644 index 81d6f0c..0000000 --- a/public/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css +++ /dev/null @@ -1 +0,0 @@ -:root{--background:#1a170f;--foreground:#eceae5;--accent:#eec35e;--font-size:1rem;--line-height:1.54em;--radius:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit;word-break:break-word}body{margin:0;padding:0;font-family:fira code,Monaco,Consolas,ubuntu mono,monospace;font-size:var(--font-size);line-height:var(--line-height);background-color:var(--background);color:var(--foreground);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch;text-size-adjust:100%}h1{font-size:calc(var(--font-size) * 1.45);letter-spacing:0}h2{font-size:calc(var(--font-size) * 1.35);letter-spacing:0}h3{font-size:calc(var(--font-size) * 1.15);letter-spacing:0}h4,h5,h6{font-size:calc(var(--font-size) * 1);letter-spacing:0}h1,h2,h3,h4,h5,h6,p,ul,ol,img,figure,video,table{margin:25px 0}a{color:var(--accent)}button{position:relative;font:inherit;font-weight:700;text-decoration:none;text-align:center;background:0 0;color:var(--accent);padding:5px 18px;border:4px solid var(--accent);border-radius:var(--radius);transition:background .15s linear;appearance:none;cursor:pointer;outline:none}button:hover{background:color-mix(in srgb,var(--accent) 15%,transparent)}button:focus-visible,a:focus-visible{outline:1px solid var(--accent);outline-offset:2px}fieldset{display:inline-block;border:2px solid var(--foreground);border-radius:calc(var(--radius) * 1.6);padding:10px}fieldset *:first-child{margin-top:0}fieldset input,fieldset select,fieldset textarea,fieldset label,fieldset button{margin-top:calc(var(--line-height) * .5);width:100%}label{display:inline-block}label input{margin-top:0}input,textarea,select{background:0 0;color:var(--foreground);border:1px solid var(--foreground);border-radius:var(--radius);padding:10px;font:inherit;appearance:none}input[type=checkbox]{width:auto}input:focus-visible,input:active,textarea:focus-visible,textarea:active,select:focus-visible,select:active{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:2px}input:active,textarea:active,select:active{box-shadow:none}select{background-image:linear-gradient( 45deg,transparent 50%,var(--foreground) 50% ),linear-gradient(135deg,var(--foreground) 50%,transparent 50%);background-position:calc(100% - 20px),calc(100% - 1em);background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:40px}select option{background:var(--background)}input[type=checkbox]{vertical-align:middle;padding:10px;box-shadow:inset 0 0 0 3px var(--background)}input[type=checkbox]:checked{background:var(--accent)}img{display:block;max-width:100%;border:8px solid var(--accent);border-radius:var(--radius);padding:8px;overflow:hidden}img.left{margin-right:auto}img.center{margin-left:auto;margin-right:auto}img.right{margin-left:auto}figure{width:fit-content}figure.left{margin-right:auto}figure.center{margin-left:auto;margin-right:auto}figure.right{margin-left:auto}figure img,figure video{margin-bottom:0}figure figcaption{background:var(--accent);color:var(--background);text-align:center;font-size:var(--font-size);font-weight:400;margin-top:-8px;padding:0 8px;border-radius:0 0 var(--radius)var(--radius)}figure figcaption p:first-child{margin-top:0}ul,ol{margin-left:4ch;padding:0}ul ul,ul ol,ol ul,ol ol{margin-top:0}li::marker{color:var(--accent)}ul li,ol li{position:relative}code,kbd{font-family:fira code,Monaco,Consolas,ubuntu mono,monospace!important;font-feature-settings:normal;background:color-mix(in srgb,var(--foreground) 5%,transparent);border:1px solid var(--code-border);padding:1px 6px;margin:0 2px;font-size:calc(var(--font-size) * .95)}kbd{border-top:1px solid color-mix(in srgb,var(--accent) 25%,transparent);border-left:1px solid var(--accent);border-right:1px solid var(--accent);border-bottom:4px solid var(--accent);border-radius:4px}code code{background:0 0;padding:0;margin:0}pre{tab-size:4;background:color-mix(in srgb,var(--foreground) 5%,transparent)!important;color:var(--foreground);padding:20px 10px;font-size:calc(var(--font-size) * .95)!important;overflow:auto;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--foreground) 10%,transparent)}pre code{background:0 0!important;margin:0;padding:0;border:none}sup{line-height:0}abbr{position:relative;text-decoration-style:wavy;text-decoration-color:var(--accent);cursor:help}sub{bottom:-.25em}sup{top:-.25em}mark{background:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--foreground)}blockquote{position:relative;border-top:1px solid var(--accent);border-bottom:1px solid var(--accent);margin:0;padding:25px}blockquote::before{content:">";display:block;position:absolute;left:0;color:var(--accent)}blockquote p:first-child{margin-top:0}blockquote p:last-child{margin-bottom:0}table{table-layout:auto;border-collapse:collapse}table,th,td{border:2px solid var(--foreground);padding:10px}th{border-style:solid;color:var(--foreground);text-align:left;text-transform:uppercase;letter-spacing:.04em}hr{width:100%;border:none;background:var(--accent);height:2px}.headings--one-size h1,.headings--one-size h2,.headings--one-size h3,.headings--one-size h4,.headings--one-size h5,.headings--one-size h6{font-size:1.4rem;line-height:1.3;margin:20px 0}.headings--one-size~h1:first-child,.headings--one-size~h2:first-child,.headings--one-size~h3:first-child,.headings--one-size~h4:first-child,.headings--one-size~h5:first-child,.headings--one-size~h6:first-child{margin-top:20px}blockquote.twitter-tweet{position:relative;background:var(--background);font:inherit;color:inherit;border:1px solid var(--accent);padding-top:60px}blockquote.twitter-tweet a{color:var(--accent);text-decoration:underline}blockquote.twitter-tweet::before{content:"> From X:";position:absolute;top:20px;left:20px;color:var(--accent);font-weight:700}.container{display:flex;flex-direction:column;padding:40px;max-width:864px;min-height:100vh;border-right:1px solid color-mix(in srgb,var(--accent) 10%,transparent)}.container.full,.container.center{border:none;margin:0 auto}.container.full{max-width:100%}.content{display:flex;flex-direction:column}.hidden{display:none}.__h_video{position:relative;overflow:visible!important;height:auto!important;padding-bottom:0!important}.__h_video a{position:relative;display:block;width:100%}.__h_video a img{width:100%}.__h_video a .play{position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;width:60px;height:60px}iframe[src*="youtube.com"]{border:8px solid var(--accent)!important;padding:8px!important}@media(max-width:684px){:root{--font-size:0.95rem}.container{padding:20px}}@media print{.container{display:initial}.content{display:initial}} \ No newline at end of file diff --git a/public/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css b/public/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css deleted file mode 100644 index 2ea3ee0..0000000 --- a/public/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css +++ /dev/null @@ -1 +0,0 @@ -.navigation-menu{display:flex;align-items:flex-start;justify-content:space-between;margin:20px 1px}.navigation-menu__inner{display:flex;flex:1;flex-wrap:wrap;list-style:none;margin:0;padding:0}.navigation-menu__inner>li{flex:none;margin-bottom:10px;white-space:nowrap}.navigation-menu__inner>li:not(:last-of-type){margin-right:20px}.navigation-menu .spacer{flex-grow:1!important}.menu{display:flex;flex-direction:column;position:relative;list-style:none;padding:0;margin:0}.menu__trigger{margin-right:0!important;color:var(--accent);user-select:none;cursor:pointer}.menu__dropdown{display:none;flex-direction:column;position:absolute;background:var(--background);box-shadow:0 10px var(--background),-10px 10px var(--background),10px 10px var(--background);color:var(--accent);border:2px solid var(--accent);margin:0;padding:10px;top:10px;left:0;list-style:none;z-index:99}.open .menu__dropdown{display:flex}.menu__dropdown>li{flex:none}.menu__dropdown>li:not(:last-of-type){margin-bottom:10px}.menu__dropdown>li a{display:flex;padding:5px}.menu--mobile .menu__trigger{color:var(--accent);border:2px solid;margin-left:10px;height:100%;padding:3px 8px;margin-bottom:0!important;position:relative;cursor:pointer;display:none}.menu--mobile li{flex:none}.menu--mobile li:not(:last-of-type){margin-bottom:10px}.menu--language-selector .menu__trigger{color:var(--accent);border:2px solid;margin-left:5px;height:100%;padding:3px 8px;margin-bottom:0!important;position:relative;cursor:pointer}.menu--language-selector .menu__dropdown{left:auto;right:0}@media(max-width:684px){.navigation-menu{margin:0}.navigation-menu__inner{flex-direction:column;align-items:flex-start;padding:0}.navigation-menu__inner li{margin:0;padding:5px}.menu--desktop{display:none}.menu--mobile .menu__trigger{display:block}.menu--mobile .menu__dropdown{left:auto;right:0}.menu--language-selector .menu__trigger{display:none}} \ No newline at end of file diff --git a/public/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css b/public/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css deleted file mode 100644 index 7fe5a22..0000000 --- a/public/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css +++ /dev/null @@ -1 +0,0 @@ -.pagination{margin-top:50px}.pagination__title{display:flex;text-align:center;position:relative;margin:100px 0 20px}.pagination__title-h{text-align:center;margin:0 auto;padding:5px 10px;background:var(--background);color:color-mix(in srgb var(--foreground) 30%,transparent);font-size:calc(var(--font-size) * .8);text-transform:uppercase;text-decoration:none;letter-spacing:.1em;z-index:1}.pagination__title hr{position:absolute;left:0;right:0;width:100%;margin-top:15px;z-index:0}.pagination__buttons{display:flex;align-items:center;justify-content:center;flex-flow:row wrap;gap:10px}.pagination__buttons a{display:inline-flex;max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:none}.button{position:relative;display:inline-flex;align-items:center;justify-content:center;font-size:inherit;padding:0;appearance:none}.button a{display:flex;justify-content:center;flex:1;padding:8px 16px}.button__text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.next .button__icon{margin-left:8px}.prev .button__icon{margin-right:8px}@media print{.pagination{display:none}} \ No newline at end of file diff --git a/public/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css b/public/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css deleted file mode 100644 index fd83cca..0000000 --- a/public/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css +++ /dev/null @@ -1 +0,0 @@ -.index-content{margin:25px 0}.framed{border:1px solid var(--accent);padding:20px}.framed *:first-child{margin-top:0}.framed *:last-child{margin-bottom:0}.posts{width:100%}.post{width:100%;text-align:left;padding:30px 0}.post:not(:last-of-type){border-bottom:1px solid color-mix(in srgb,var(--foreground) 10%,transparent)}.post-meta{font-size:inherit;margin-bottom:10px;color:color-mix(in srgb,var(--foreground) 65%,transparent)}.post-meta>*:not(:first-child)::before{content:"::";display:inline-block;margin:0 8px}.post-title{position:relative;color:var(--accent);margin-top:0!important;margin-bottom:15px!important;padding-bottom:15px;border-bottom:3px dotted var(--accent);text-decoration:none!important}.post-title::after{content:"";position:absolute;bottom:2px;display:block;width:100%;border-bottom:3px dotted var(--accent)}.post-title a{text-decoration:none}.post-tags{display:block;margin-bottom:20px;font-size:inherit;color:var(--accent)}.table-of-contents{margin:40px 0}.post-content{margin-top:25px}.post-cover{margin:25px 0}.post ul{list-style:none}.post ul li:not(:empty)::before{content:"-";position:absolute;left:-20px;color:var(--accent)}.post--regulation h1{justify-content:center}.post--regulation h2{justify-content:center;margin-bottom:10px}.post--regulation h2+h2{margin-top:-10px;margin-bottom:20px}.hanchor{position:absolute;color:var(--accent);text-decoration:none;margin-left:10px;visibility:hidden}h1:hover .hanchor,h2:hover .hanchor,h3:hover .hanchor,h4:hover .hanchor,h5:hover .hanchor,h6:hover .hanchor{visibility:visible}.footnotes{color:color-mix(in srgb,var(--foreground) 50%,transparent)}.footnotes hr{background:color-mix(in srgb,var(--foreground) 50%,transparent)}@media(max-width:684px){.post-cover{padding:10px;border-width:10px}} \ No newline at end of file diff --git a/public/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css b/public/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css deleted file mode 100644 index bf67df9..0000000 --- a/public/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css +++ /dev/null @@ -1 +0,0 @@ -:root{--first-tone:var(--accent);--second-tone:color-mix(in srgb, var(--accent) 70%, transparent);--comment:color-mix(in srgb, var(--foreground) 50%, transparent)}.bg{}.chroma{overflow:auto}.chroma .x{}.chroma .err{}.chroma .cl{}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{width:100%;vertical-align:top;padding:0;margin:0;border:0}.chroma .lntd:first-child{width:auto}.chroma .lntd code{display:grid}.chroma .lntable{width:100%;border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:color-mix(in srgb,var(--foreground) 5%,transparent)!important}.chroma .lnt{color:var(--comment);white-space:pre;-webkit-user-select:none;user-select:none;padding:0 10px}.chroma .ln{color:var(--comment);white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.8em;padding:0 .4em 0 0}.chroma .line{display:flex;padding:0 10px}.chroma .k{color:var(--second-tone)}.chroma .kc{color:var(--second-tone)}.chroma .kd{color:var(--second-tone)}.chroma .kn{color:var(--second-tone)}.chroma .kp{color:var(--second-tone)}.chroma .kr{color:var(--second-tone)}.chroma .kt{color:var(--second-tone)}.chroma .n{color:var(--first-tone)}.chroma .na{color:var(--second-tone)}.chroma .nb{color:var(--first-tone)}.chroma .bp{color:var(--first-tone)}.chroma .nc{color:var(--foreground)}.chroma .no{color:var(--first-tone)}.chroma .nd{color:var(--first-tone)}.chroma .ni{color:var(--first-tone)}.chroma .ne{color:var(--first-tone)}.chroma .nf{color:var(--first-tone)}.chroma .fm{color:var(--first-tone)}.chroma .nl{color:var(--first-tone)}.chroma .nn{color:var(--first-tone)}.chroma .nx{color:var(--first-tone)}.chroma .py{color:var(--first-tone)}.chroma .nt{color:var(--first-tone)}.chroma .nv{color:var(--first-tone)}.chroma .vc{color:var(--first-tone)}.chroma .vg{color:var(--first-tone)}.chroma .vi{color:var(--first-tone)}.chroma .vm{color:var(--first-tone)}.chroma .l{}.chroma .ld{}.chroma .s{color:var(--foreground)}.chroma .sa{color:var(--foreground)}.chroma .sb{color:var(--foreground)}.chroma .sc{color:var(--foreground)}.chroma .dl{color:var(--foreground)}.chroma .sd{color:var(--foreground)}.chroma .s2{color:var(--foreground)}.chroma .se{color:var(--foreground)}.chroma .sh{color:var(--foreground)}.chroma .si{color:var(--foreground)}.chroma .sx{color:var(--foreground)}.chroma .sr{color:var(--foreground)}.chroma .s1{color:var(--foreground)}.chroma .ss{color:var(--foreground)}.chroma .m{color:var(--first-tone)}.chroma .mb{color:var(--first-tone)}.chroma .mf{color:var(--first-tone)}.chroma .mh{color:var(--first-tone)}.chroma .mi{color:var(--first-tone)}.chroma .il{color:var(--first-tone)}.chroma .mo{color:var(--first-tone)}.chroma .o{color:var(--foreground)}.chroma .ow{color:var(--foreground)}.chroma .p{color:var(--foreground)}.chroma .c{color:var(--comment)}.chroma .ch{color:var(--comment)}.chroma .cm{color:var(--comment)}.chroma .c1{color:var(--comment)}.chroma .cs{color:var(--comment)}.chroma .cp{color:var(--comment)}.chroma .cpf{color:var(--comment)}.chroma .g{}.chroma .gd{color:var(--first-tone)}.chroma .ge{}.chroma .gr{}.chroma .gh{}.chroma .gi{color:var(--second-tone)}.chroma .go{}.chroma .gp{}.chroma .gs{}.chroma .gu{}.chroma .gt{}.chroma .gl{}.chroma .w{}.chroma .language-php .cp{color:var(--foreground)} \ No newline at end of file diff --git a/public/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css b/public/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css deleted file mode 100644 index 0c7817a..0000000 --- a/public/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css +++ /dev/null @@ -1,2 +0,0 @@ -/* Placeholder file for your custom settings. */ -/* You can get the color scheme variables from https://panr.github.io/terminal-css/ */ diff --git a/public/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css b/public/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css deleted file mode 100644 index a879e58..0000000 --- a/public/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css +++ /dev/null @@ -1 +0,0 @@ -.terms h3{font-size:initial}.terms ul{list-style:none}.terms ul li a{color:var(--accent)}.terms ul li:not(:empty)::before{content:"-";position:absolute;left:-20px;color:var(--accent)} \ No newline at end of file diff --git a/public/favicon.png b/public/favicon.png deleted file mode 100644 index 0ac2c2772a6d8d5905459c349e848c297c9bd86d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-&H|6fVg?3oVGw3ym^DWND9BhG zGQmYp^O8qeVA>gTe~DWM4f7lb!O diff --git a/public/fonts/FiraCode-Latin.woff2 b/public/fonts/FiraCode-Latin.woff2 deleted file mode 100644 index d2925e0c2ed747a76bb2d786946a2d8ef358ac2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35496 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 Af&c&j diff --git a/public/fonts/FiraCode-LatinExt.woff2 b/public/fonts/FiraCode-LatinExt.woff2 deleted file mode 100644 index ce25b6725a2c0caba3c2366a96a28695e9d3d6ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12696 zcmV;JF=x(qPew8T0RR9105O;V6aWAK0A$<%05K*20RR9100000000000000000000 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 - - - - - TechnicalBlog - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/index.xml b/public/index.xml deleted file mode 100644 index e0027da..0000000 --- a/public/index.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - WelcomeToMyTechnicalBlog on TechnicalBlog - https://blog.fuhlig.de/ - Recent content in WelcomeToMyTechnicalBlog on TechnicalBlog - Hugo - en-us - Wed, 03 Dec 2025 00:00:00 +0000 - - - About Me - https://blog.fuhlig.de/posts/aboutme/ - Mon, 01 Dec 2025 00:00:00 +0000 - https://blog.fuhlig.de/posts/aboutme/ - <h2 id="who-am-i">Who am I</h2> <p>My name is Florian and I&rsquo;m 22 years old. I work as an IT Technican mainly with Linux Servers in Frankfurt, Germany. My company is midsized around 50 people working here. I mainly want to post about what I learned, what inspires me.</p> <p>Well I dont really, this just seemed like a great idea to waste some time.</p> - - - What am I currently working on - https://blog.fuhlig.de/posts/whatimworkingoncurrently/ - Wed, 03 Dec 2025 00:00:00 +0000 - https://blog.fuhlig.de/posts/whatimworkingoncurrently/ - <h1 id="building-a-self-sustaining-infrastructure-a-two-server-docker-setup">Building a Self-Sustaining Infrastructure: A Two-Server Docker Setup</h1> <h2 id="overview">Overview</h2> <p>Creating a resilient, self-sustaining infrastructure doesn&rsquo;t require complex enterprise solutions. With two strategically configured servers and a well-thought-out backup strategy, you can achieve both reliability and security for your self-hosted applications.</p> <h2 id="the-architecture">The Architecture</h2> <h3 id="docker-host-server">Docker Host Server</h3> <p>The primary server runs all application workloads using Docker containers. This containerized approach provides:</p> <ul> <li><strong>Isolation</strong>: Each service runs in its own container with defined resources</li> <li><strong>Portability</strong>: Services can be easily migrated or replicated</li> <li><strong>Consistency</strong>: Docker Compose configurations ensure reproducible deployments</li> </ul> <p>The Docker host maintains minimal external exposure, with only essential ports opened to the internet. This reduces the attack surface while still providing necessary services.</p> - - - diff --git a/public/og-image.png b/public/og-image.png deleted file mode 100644 index ba20a41b6b052b6e5485515cd08c7e841ae76913..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4595 zcmeAS@N?(olHy`uVBq!ia0y~yVA;UHz*NS;1{CpksEz?roCO|{#S9GG!XV7ZFl&wk zP>``W$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&di41yh=E{-7;jBjr_3LbJ0V7*Qh3$FKqKlBI3Zq9jK#{)Egp<@>>h~f|i+Rnh>F-naF!DuQN%?LCt z3lbPonZ!WFP39;yM1$aa;imV$Eg2a8oqYUNGTrKN+@{Pv-{PEE$(LnjKf7Uae3@nV zjVH|9z&LI&VH~AKgJ3ijjAn$PQx - - - https://blog.fuhlig.de/ - - - - - - diff --git a/public/posts/aboutme/index.html b/public/posts/aboutme/index.html deleted file mode 100644 index 4637858..0000000 --- a/public/posts/aboutme/index.html +++ /dev/null @@ -1,193 +0,0 @@ - - - - - About Me :: TechnicalBlog - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- - - -
- -
- - -
- -
-

- About Me -

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

Who am I#

-

My name is Florian and I’m 22 years old. -I work as an IT Technican mainly with Linux Servers in Frankfurt, Germany. -My company is midsized around 50 people working here. -I mainly want to post about what I learned, what inspires me.

-

Well I dont really, this just seemed like a great idea to waste some time.

- -
- - - - - - - -
- -
- - - - - - - - - - - - - - - - -
- - - diff --git a/public/posts/index.html b/public/posts/index.html deleted file mode 100644 index edcc089..0000000 --- a/public/posts/index.html +++ /dev/null @@ -1,243 +0,0 @@ - - - - - Posts :: TechnicalBlog - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- - - -
- -
- - -
- - -
- -
-

- About Me -

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

Who am I

-

My name is Florian and I’m 22 years old. -I work as an IT Technican mainly with Linux Servers in Frankfurt, Germany. -My company is midsized around 50 people working here. -I mainly want to post about what I learned, what inspires me.

-

Well I dont really, this just seemed like a great idea to waste some time.

- -
- - -
- [] -
- -
- -
-

- What am I currently working on -

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

Building a Self-Sustaining Infrastructure: A Two-Server Docker Setup

-

Overview

-

Creating a resilient, self-sustaining infrastructure doesn’t require complex enterprise solutions. With two strategically configured servers and a well-thought-out backup strategy, you can achieve both reliability and security for your self-hosted applications.

-

The Architecture

-

Docker Host Server

-

The primary server runs all application workloads using Docker containers. This containerized approach provides:

-
    -
  • Isolation: Each service runs in its own container with defined resources
  • -
  • Portability: Services can be easily migrated or replicated
  • -
  • Consistency: Docker Compose configurations ensure reproducible deployments
  • -
-

The Docker host maintains minimal external exposure, with only essential ports opened to the internet. This reduces the attack surface while still providing necessary services.

- -
- - -
- [] -
- -
- - - - -
- -
- - - - - - - - - - - - - - - - -
- - - diff --git a/public/posts/index.xml b/public/posts/index.xml deleted file mode 100644 index 8782ce6..0000000 --- a/public/posts/index.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - Posts on TechnicalBlog - https://blog.fuhlig.de/posts/ - Recent content in Posts on TechnicalBlog - Hugo - en-us - Wed, 03 Dec 2025 00:00:00 +0000 - - - About Me - https://blog.fuhlig.de/posts/aboutme/ - Mon, 01 Dec 2025 00:00:00 +0000 - https://blog.fuhlig.de/posts/aboutme/ - <h2 id="who-am-i">Who am I</h2> <p>My name is Florian and I&rsquo;m 22 years old. I work as an IT Technican mainly with Linux Servers in Frankfurt, Germany. My company is midsized around 50 people working here. I mainly want to post about what I learned, what inspires me.</p> <p>Well I dont really, this just seemed like a great idea to waste some time.</p> - - - What am I currently working on - https://blog.fuhlig.de/posts/whatimworkingoncurrently/ - Wed, 03 Dec 2025 00:00:00 +0000 - https://blog.fuhlig.de/posts/whatimworkingoncurrently/ - <h1 id="building-a-self-sustaining-infrastructure-a-two-server-docker-setup">Building a Self-Sustaining Infrastructure: A Two-Server Docker Setup</h1> <h2 id="overview">Overview</h2> <p>Creating a resilient, self-sustaining infrastructure doesn&rsquo;t require complex enterprise solutions. With two strategically configured servers and a well-thought-out backup strategy, you can achieve both reliability and security for your self-hosted applications.</p> <h2 id="the-architecture">The Architecture</h2> <h3 id="docker-host-server">Docker Host Server</h3> <p>The primary server runs all application workloads using Docker containers. This containerized approach provides:</p> <ul> <li><strong>Isolation</strong>: Each service runs in its own container with defined resources</li> <li><strong>Portability</strong>: Services can be easily migrated or replicated</li> <li><strong>Consistency</strong>: Docker Compose configurations ensure reproducible deployments</li> </ul> <p>The Docker host maintains minimal external exposure, with only essential ports opened to the internet. This reduces the attack surface while still providing necessary services.</p> - - - diff --git a/public/posts/md.template b/public/posts/md.template deleted file mode 100644 index 1952e17..0000000 --- a/public/posts/md.template +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: "About Me" -date: 2025-12-01 -tags: ["blog"] -draft: false ---- diff --git a/public/posts/page/1/index.html b/public/posts/page/1/index.html deleted file mode 100644 index 7cf7862..0000000 --- a/public/posts/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - https://blog.fuhlig.de/posts/ - - - - - - diff --git a/public/posts/whatimworkingoncurrently/index.html b/public/posts/whatimworkingoncurrently/index.html deleted file mode 100644 index 21e734e..0000000 --- a/public/posts/whatimworkingoncurrently/index.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - What am I currently working on :: TechnicalBlog - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- - - -
- -
- - -
- -
-

- What am I currently working on -

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

Building a Self-Sustaining Infrastructure: A Two-Server Docker Setup#

-

Overview#

-

Creating a resilient, self-sustaining infrastructure doesn’t require complex enterprise solutions. With two strategically configured servers and a well-thought-out backup strategy, you can achieve both reliability and security for your self-hosted applications.

-

The Architecture#

-

Docker Host Server#

-

The primary server runs all application workloads using Docker containers. This containerized approach provides:

-
    -
  • Isolation: Each service runs in its own container with defined resources
  • -
  • Portability: Services can be easily migrated or replicated
  • -
  • Consistency: Docker Compose configurations ensure reproducible deployments
  • -
-

The Docker host maintains minimal external exposure, with only essential ports opened to the internet. This reduces the attack surface while still providing necessary services.

-

Backup Storage Server#

-

The secondary server serves as a dedicated backup repository with substantial storage capacity. This server is:

-
    -
  • Isolated from the internet: No external access is permitted
  • -
  • Secured via iptables: Firewall rules prevent unauthorized connections
  • -
  • Connected via WireGuard VPN: Encrypted tunnel ensures secure communication between servers
  • -
-

Security Through Network Segmentation#

-

The WireGuard VPN creates a secure, encrypted tunnel between the Docker host and backup server. This architecture provides several benefits:

-
    -
  • Private communication channel for backup operations
  • -
  • Zero trust model for the backup server (completely isolated from public internet)
  • -
  • Reduced risk of data exfiltration
  • -
  • Encrypted data transfer between servers
  • -
-

Automated Backup Strategy#

-

Daily automated backups capture the critical components:

-

Database Backups#

-

All databases are exported and stored, ensuring data consistency and point-in-time recovery capabilities.

-

Docker Volume Backups#

-

Persistent data from Docker volumes is systematically backed up, including:

-
    -
  • Application configuration files
  • -
  • User-generated content
  • -
  • Service-specific data stores
  • -
-

This comprehensive approach ensures that the entire infrastructure can be restored from backups, making the system truly self-sustaining.

-

Benefits of This Approach#

-

Resilience: Hardware failure on the Docker host doesn’t result in data loss
-Security: Multi-layered security with network segmentation and minimal exposure
-Maintainability: Containerized services are easy to update and manage
-Scalability: Additional Docker hosts can connect to the same backup server
-Cost-effective: Self-hosted solution with predictable costs

-

Conclusion#

-

This two-server architecture strikes an excellent balance between simplicity and robustness. By combining Docker containerization with a dedicated, secured backup server connected via WireGuard, you achieve enterprise-grade reliability without enterprise-level complexity. Daily automated backups provide peace of mind, while the security-first network design protects your data from external threats.

- -
- - - - - - - -
- -
- - - - - - - - - - - - - - - - -
- - - diff --git a/public/sitemap.xml b/public/sitemap.xml deleted file mode 100644 index 481338e..0000000 --- a/public/sitemap.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - https://blog.fuhlig.de/ - 2025-12-02T00:00:00+00:00 - - https://blog.fuhlig.de/posts/aboutme/ - 2025-12-01T00:00:00+00:00 - - https://blog.fuhlig.de/tags/blog/ - 2025-12-03T00:00:00+00:00 - - https://blog.fuhlig.de/categories/ - 2025-12-03T00:00:00+00:00 - - https://blog.fuhlig.de/posts/ - 2025-12-03T00:00:00+00:00 - - https://blog.fuhlig.de/tags/ - 2025-12-03T00:00:00+00:00 - - https://blog.fuhlig.de/categories/webdev/ - 2025-12-03T00:00:00+00:00 - - https://blog.fuhlig.de/posts/whatimworkingoncurrently/ - 2025-12-03T00:00:00+00:00 - - diff --git a/public/tags/blog/index.html b/public/tags/blog/index.html deleted file mode 100644 index 3ce5256..0000000 --- a/public/tags/blog/index.html +++ /dev/null @@ -1,244 +0,0 @@ - - - - - Blog :: TechnicalBlog - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- - - -
- -
- - -
- -

Posts for: #Blog

- -
- -
-

- About Me -

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

Who am I

-

My name is Florian and I’m 22 years old. -I work as an IT Technican mainly with Linux Servers in Frankfurt, Germany. -My company is midsized around 50 people working here. -I mainly want to post about what I learned, what inspires me.

-

Well I dont really, this just seemed like a great idea to waste some time.

- -
- - -
- [] -
- -
- -
-

- What am I currently working on -

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

Building a Self-Sustaining Infrastructure: A Two-Server Docker Setup

-

Overview

-

Creating a resilient, self-sustaining infrastructure doesn’t require complex enterprise solutions. With two strategically configured servers and a well-thought-out backup strategy, you can achieve both reliability and security for your self-hosted applications.

-

The Architecture

-

Docker Host Server

-

The primary server runs all application workloads using Docker containers. This containerized approach provides:

-
    -
  • Isolation: Each service runs in its own container with defined resources
  • -
  • Portability: Services can be easily migrated or replicated
  • -
  • Consistency: Docker Compose configurations ensure reproducible deployments
  • -
-

The Docker host maintains minimal external exposure, with only essential ports opened to the internet. This reduces the attack surface while still providing necessary services.

- -
- - -
- [] -
- -
- - - - -
- -
- - - - - - - - - - - - - - - - -
- - - diff --git a/public/tags/blog/index.xml b/public/tags/blog/index.xml deleted file mode 100644 index 2efa1a2..0000000 --- a/public/tags/blog/index.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - Blog on TechnicalBlog - https://blog.fuhlig.de/tags/blog/ - Recent content in Blog on TechnicalBlog - Hugo - en-us - Wed, 03 Dec 2025 00:00:00 +0000 - - - About Me - https://blog.fuhlig.de/posts/aboutme/ - Mon, 01 Dec 2025 00:00:00 +0000 - https://blog.fuhlig.de/posts/aboutme/ - <h2 id="who-am-i">Who am I</h2> <p>My name is Florian and I&rsquo;m 22 years old. I work as an IT Technican mainly with Linux Servers in Frankfurt, Germany. My company is midsized around 50 people working here. I mainly want to post about what I learned, what inspires me.</p> <p>Well I dont really, this just seemed like a great idea to waste some time.</p> - - - What am I currently working on - https://blog.fuhlig.de/posts/whatimworkingoncurrently/ - Wed, 03 Dec 2025 00:00:00 +0000 - https://blog.fuhlig.de/posts/whatimworkingoncurrently/ - <h1 id="building-a-self-sustaining-infrastructure-a-two-server-docker-setup">Building a Self-Sustaining Infrastructure: A Two-Server Docker Setup</h1> <h2 id="overview">Overview</h2> <p>Creating a resilient, self-sustaining infrastructure doesn&rsquo;t require complex enterprise solutions. With two strategically configured servers and a well-thought-out backup strategy, you can achieve both reliability and security for your self-hosted applications.</p> <h2 id="the-architecture">The Architecture</h2> <h3 id="docker-host-server">Docker Host Server</h3> <p>The primary server runs all application workloads using Docker containers. This containerized approach provides:</p> <ul> <li><strong>Isolation</strong>: Each service runs in its own container with defined resources</li> <li><strong>Portability</strong>: Services can be easily migrated or replicated</li> <li><strong>Consistency</strong>: Docker Compose configurations ensure reproducible deployments</li> </ul> <p>The Docker host maintains minimal external exposure, with only essential ports opened to the internet. This reduces the attack surface while still providing necessary services.</p> - - - diff --git a/public/tags/blog/page/1/index.html b/public/tags/blog/page/1/index.html deleted file mode 100644 index b170f8c..0000000 --- a/public/tags/blog/page/1/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - https://blog.fuhlig.de/tags/blog/ - - - - - - diff --git a/public/tags/index.html b/public/tags/index.html deleted file mode 100644 index 678999f..0000000 --- a/public/tags/index.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - Tags :: TechnicalBlog - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- - - -
- -
- - -
- -
-

Tags

- -
- -Here you can find entry quicker thru my tags - -
- - -
- -
- - - - - - - - - - - - - - - - -
- - - diff --git a/public/tags/index.xml b/public/tags/index.xml deleted file mode 100644 index 5f07559..0000000 --- a/public/tags/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Tags on TechnicalBlog - https://blog.fuhlig.de/tags/ - Recent content in Tags on TechnicalBlog - Hugo - en-us - Wed, 03 Dec 2025 00:00:00 +0000 - - - Blog - https://blog.fuhlig.de/tags/blog/ - Wed, 03 Dec 2025 00:00:00 +0000 - https://blog.fuhlig.de/tags/blog/ - - - - diff --git a/resources/_gen/assets/ananke/css/main.css_9d7c906d8fe82fddbbd923faebb24419.content b/resources/_gen/assets/ananke/css/main.css_9d7c906d8fe82fddbbd923faebb24419.content deleted file mode 100644 index 9e16a35..0000000 --- a/resources/_gen/assets/ananke/css/main.css_9d7c906d8fe82fddbbd923faebb24419.content +++ /dev/null @@ -1 +0,0 @@ -/*!TACHYONS v4.9.1 | http://tachyons.io*//*!TACHYONS v4.12.0 | http://tachyons.io*//*!normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css*/html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}.border-box,a,article,aside,blockquote,body,code,dd,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,html,input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url],legend,li,main,nav,ol,p,pre,section,table,td,textarea,th,tr,ul{box-sizing:border-box}.aspect-ratio{height:0;position:relative}.aspect-ratio--16x9{padding-bottom:56.25%}.aspect-ratio--9x16{padding-bottom:177.77%}.aspect-ratio--4x3{padding-bottom:75%}.aspect-ratio--3x4{padding-bottom:133.33%}.aspect-ratio--6x4{padding-bottom:66.6%}.aspect-ratio--4x6{padding-bottom:150%}.aspect-ratio--8x5{padding-bottom:62.5%}.aspect-ratio--5x8{padding-bottom:160%}.aspect-ratio--7x5{padding-bottom:71.42%}.aspect-ratio--5x7{padding-bottom:140%}.aspect-ratio--1x1{padding-bottom:100%}.aspect-ratio--object{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}img{max-width:100%}.cover{background-size:cover!important}.contain{background-size:contain!important}.bg-center{background-position:50%}.bg-center,.bg-top{background-repeat:no-repeat}.bg-top{background-position:top}.bg-right{background-position:100%}.bg-bottom,.bg-right{background-repeat:no-repeat}.bg-bottom{background-position:bottom}.bg-left{background-repeat:no-repeat;background-position:0}.outline{outline:1px solid}.outline-transparent{outline:1px solid transparent}.outline-0{outline:0}.ba{border-style:solid;border-width:1px}.bt{border-top-style:solid;border-top-width:1px}.br{border-right-style:solid;border-right-width:1px}.bb{border-bottom-style:solid;border-bottom-width:1px}.bl{border-left-style:solid;border-left-width:1px}.bn{border-style:none;border-width:0}.b--black{border-color:#000}.b--near-black{border-color:#111}.b--dark-gray{border-color:#333}.b--mid-gray{border-color:#555}.b--gray{border-color:#777}.b--silver{border-color:#999}.b--light-silver{border-color:#aaa}.b--moon-gray{border-color:#ccc}.b--light-gray{border-color:#eee}.b--near-white{border-color:#f4f4f4}.b--white{border-color:#fff}.b--white-90{border-color:rgba(255,255,255,.9)}.b--white-80{border-color:rgba(255,255,255,.8)}.b--white-70{border-color:rgba(255,255,255,.7)}.b--white-60{border-color:rgba(255,255,255,.6)}.b--white-50{border-color:rgba(255,255,255,.5)}.b--white-40{border-color:rgba(255,255,255,.4)}.b--white-30{border-color:rgba(255,255,255,.3)}.b--white-20{border-color:rgba(255,255,255,.2)}.b--white-10{border-color:rgba(255,255,255,.1)}.b--white-05{border-color:rgba(255,255,255,5%)}.b--white-025{border-color:rgba(255,255,255,.025)}.b--white-0125{border-color:rgba(255,255,255,.0125)}.b--black-90{border-color:rgba(0,0,0,.9)}.b--black-80{border-color:rgba(0,0,0,.8)}.b--black-70{border-color:rgba(0,0,0,.7)}.b--black-60{border-color:rgba(0,0,0,.6)}.b--black-50{border-color:rgba(0,0,0,.5)}.b--black-40{border-color:rgba(0,0,0,.4)}.b--black-30{border-color:rgba(0,0,0,.3)}.b--black-20{border-color:rgba(0,0,0,.2)}.b--black-10{border-color:rgba(0,0,0,.1)}.b--black-05{border-color:rgba(0,0,0,5%)}.b--black-025{border-color:rgba(0,0,0,.025)}.b--black-0125{border-color:rgba(0,0,0,.0125)}.b--dark-red{border-color:#e7040f}.b--red{border-color:#ff4136}.b--light-red{border-color:#ff725c}.b--orange{border-color:#ff6300}.b--gold{border-color:#ffb700}.b--yellow{border-color:gold}.b--light-yellow{border-color:#fbf1a9}.b--purple{border-color:#5e2ca5}.b--light-purple{border-color:#a463f2}.b--dark-pink{border-color:#d5008f}.b--hot-pink{border-color:#ff41b4}.b--pink{border-color:#ff80cc}.b--light-pink{border-color:#ffa3d7}.b--dark-green{border-color:#137752}.b--green{border-color:#19a974}.b--light-green{border-color:#9eebcf}.b--navy{border-color:#001b44}.b--dark-blue{border-color:#00449e}.b--blue{border-color:#357edd}.b--light-blue{border-color:#96ccff}.b--lightest-blue{border-color:#cdecff}.b--washed-blue{border-color:#f6fffe}.b--washed-green{border-color:#e8fdf5}.b--washed-yellow{border-color:#fffceb}.b--washed-red{border-color:#ffdfdf}.b--transparent{border-color:transparent}.b--inherit{border-color:inherit}.b--initial{border-color:initial}.b--unset{border-color:unset}.br0{border-radius:0}.br1{border-radius:.125rem}.br2{border-radius:.25rem}.br3{border-radius:.5rem}.br4{border-radius:1rem}.br-100{border-radius:100%}.br-pill{border-radius:9999px}.br--bottom{border-top-left-radius:0;border-top-right-radius:0}.br--top{border-bottom-right-radius:0}.br--right,.br--top{border-bottom-left-radius:0}.br--right{border-top-left-radius:0}.br--left{border-top-right-radius:0;border-bottom-right-radius:0}.br-inherit{border-radius:inherit}.br-initial{border-radius:initial}.br-unset{border-radius:unset}.b--dotted{border-style:dotted}.b--dashed{border-style:dashed}.b--solid{border-style:solid}.b--none{border-style:none}.bw0{border-width:0}.bw1{border-width:.125rem}.bw2{border-width:.25rem}.bw3{border-width:.5rem}.bw4{border-width:1rem}.bw5{border-width:2rem}.bt-0{border-top-width:0}.br-0{border-right-width:0}.bb-0{border-bottom-width:0}.bl-0{border-left-width:0}.shadow-1{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4{box-shadow:2px 2px 8px rgba(0,0,0,.2)}.shadow-5{box-shadow:4px 4px 8px rgba(0,0,0,.2)}.pre{overflow-x:auto;overflow-y:hidden;overflow:scroll}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-1{top:1rem}.right-1{right:1rem}.bottom-1{bottom:1rem}.left-1{left:1rem}.top-2{top:2rem}.right-2{right:2rem}.bottom-2{bottom:2rem}.left-2{left:2rem}.top--1{top:-1rem}.right--1{right:-1rem}.bottom--1{bottom:-1rem}.left--1{left:-1rem}.top--2{top:-2rem}.right--2{right:-2rem}.bottom--2{bottom:-2rem}.left--2{left:-2rem}.absolute--fill{top:0;right:0;bottom:0;left:0}.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}.cf{*zoom:1}.cl{clear:left}.cr{clear:right}.cb{clear:both}.cn{clear:none}.dn{display:none}.di{display:inline}.db{display:block}.dib{display:inline-block}.dit{display:inline-table}.dt{display:table}.dtc{display:table-cell}.dt-row{display:table-row}.dt-row-group{display:table-row-group}.dt-column{display:table-column}.dt-column-group{display:table-column-group}.dt--fixed{table-layout:fixed;width:100%}.flex{display:flex}.inline-flex{display:inline-flex}.flex-auto{flex:auto;min-width:0;min-height:0}.flex-none{flex:none}.flex-column{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-column-reverse{flex-direction:column-reverse}.flex-row-reverse{flex-direction:row-reverse}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-baseline{align-self:baseline}.self-stretch{align-self:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-stretch{align-content:stretch}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-last{order:99999}.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}.fl{float:left}.fl,.fr{_display:inline}.fr{float:right}.fn{float:none}.sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica neue,helvetica,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.serif{font-family:georgia,times,serif}.system-sans-serif{font-family:sans-serif}.system-serif{font-family:serif}.code,code{font-family:Consolas,monaco,monospace}.courier{font-family:Courier Next,courier,monospace}.helvetica{font-family:helvetica neue,helvetica,sans-serif}.avenir{font-family:avenir next,avenir,sans-serif}.athelas{font-family:athelas,georgia,serif}.georgia{font-family:georgia,serif}.times{font-family:times,serif}.bodoni{font-family:Bodoni MT,serif}.calisto{font-family:Calisto MT,serif}.garamond{font-family:garamond,serif}.baskerville{font-family:baskerville,serif}.i{font-style:italic}.fs-normal{font-style:normal}.normal{font-weight:400}.b{font-weight:700}.fw1{font-weight:100}.fw2{font-weight:200}.fw3{font-weight:300}.fw4{font-weight:400}.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}.fw8{font-weight:800}.fw9{font-weight:900}.input-reset{-webkit-appearance:none;-moz-appearance:none}.button-reset::-moz-focus-inner,.input-reset::-moz-focus-inner{border:0;padding:0}.h1{height:1rem}.h2{height:2rem}.h3{height:4rem}.h4{height:8rem}.h5{height:16rem}.h-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.min-h-100{min-height:100%}.vh-25{height:25vh}.vh-50{height:50vh}.vh-75{height:75vh}.vh-100{height:100vh}.min-vh-100{min-height:100vh}.h-auto{height:auto}.h-inherit{height:inherit}.tracked{letter-spacing:.1em}.tracked-tight{letter-spacing:-.05em}.tracked-mega{letter-spacing:.25em}.lh-solid{line-height:1}.lh-title{line-height:1.25}.lh-copy{line-height:1.5}.link{text-decoration:none}.link,.link:active,.link:focus,.link:hover,.link:link,.link:visited{transition:color .15s ease-in}.link:focus{outline:1px dotted currentColor}.list{list-style-type:none}.mw-100{max-width:100%}.mw1{max-width:1rem}.mw2{max-width:2rem}.mw3{max-width:4rem}.mw4{max-width:8rem}.mw5{max-width:16rem}.mw6{max-width:32rem}.mw7{max-width:48rem}.mw8{max-width:64rem}.mw9{max-width:96rem}.mw-none{max-width:none}.w1{width:1rem}.w2{width:2rem}.w3{width:4rem}.w4{width:8rem}.w5{width:16rem}.w-10{width:10%}.w-20{width:20%}.w-25{width:25%}.w-30{width:30%}.w-33{width:33%}.w-34{width:34%}.w-40{width:40%}.w-50{width:50%}.w-60{width:60%}.w-70{width:70%}.w-75{width:75%}.w-80{width:80%}.w-90{width:90%}.w-100{width:100%}.w-third{width:33.33333%}.w-two-thirds{width:66.66667%}.w-auto{width:auto}.overflow-visible{overflow:visible}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-auto{overflow:auto}.overflow-x-visible{overflow-x:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-visible{overflow-y:visible}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-auto{overflow-y:auto}.static{position:static}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.o-100{opacity:1}.o-90{opacity:.9}.o-80{opacity:.8}.o-70{opacity:.7}.o-60{opacity:.6}.o-50{opacity:.5}.o-40{opacity:.4}.o-30{opacity:.3}.o-20{opacity:.2}.o-10{opacity:.1}.o-05{opacity:.05}.o-025{opacity:.025}.o-0{opacity:0}.rotate-45{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.black-90{color:rgba(0,0,0,.9)}.black-80{color:rgba(0,0,0,.8)}.black-70{color:rgba(0,0,0,.7)}.black-60{color:rgba(0,0,0,.6)}.black-50{color:rgba(0,0,0,.5)}.black-40{color:rgba(0,0,0,.4)}.black-30{color:rgba(0,0,0,.3)}.black-20{color:rgba(0,0,0,.2)}.black-10{color:rgba(0,0,0,.1)}.black-05{color:rgba(0,0,0,5%)}.white-90{color:rgba(255,255,255,.9)}.white-80{color:rgba(255,255,255,.8)}.white-70{color:rgba(255,255,255,.7)}.white-60{color:rgba(255,255,255,.6)}.white-50{color:rgba(255,255,255,.5)}.white-40{color:rgba(255,255,255,.4)}.white-30{color:rgba(255,255,255,.3)}.white-20{color:rgba(255,255,255,.2)}.white-10{color:rgba(255,255,255,.1)}.black{color:#000}.near-black{color:#111}.dark-gray{color:#333}.mid-gray{color:#555}.gray{color:#777}.silver{color:#999}.light-silver{color:#aaa}.moon-gray{color:#ccc}.light-gray{color:#eee}.near-white{color:#f4f4f4}.white{color:#fff}.dark-red{color:#e7040f}.red{color:#ff4136}.light-red{color:#ff725c}.orange{color:#ff6300}.gold{color:#ffb700}.yellow{color:gold}.light-yellow{color:#fbf1a9}.purple{color:#5e2ca5}.light-purple{color:#a463f2}.dark-pink{color:#d5008f}.hot-pink{color:#ff41b4}.pink{color:#ff80cc}.light-pink{color:#ffa3d7}.dark-green{color:#137752}.green{color:#19a974}.light-green{color:#9eebcf}.navy{color:#001b44}.dark-blue{color:#00449e}.blue{color:#357edd}.light-blue{color:#96ccff}.lightest-blue{color:#cdecff}.washed-blue{color:#f6fffe}.washed-green{color:#e8fdf5}.washed-yellow{color:#fffceb}.washed-red{color:#ffdfdf}.color-inherit{color:inherit}.bg-black-90{background-color:rgba(0,0,0,.9)}.bg-black-80{background-color:rgba(0,0,0,.8)}.bg-black-70{background-color:rgba(0,0,0,.7)}.bg-black-60{background-color:rgba(0,0,0,.6)}.bg-black-50{background-color:rgba(0,0,0,.5)}.bg-black-40{background-color:rgba(0,0,0,.4)}.bg-black-30{background-color:rgba(0,0,0,.3)}.bg-black-20{background-color:rgba(0,0,0,.2)}.bg-black-10{background-color:rgba(0,0,0,.1)}.bg-black-05{background-color:rgba(0,0,0,5%)}.bg-white-90{background-color:rgba(255,255,255,.9)}.bg-white-80{background-color:rgba(255,255,255,.8)}.bg-white-70{background-color:rgba(255,255,255,.7)}.bg-white-60{background-color:rgba(255,255,255,.6)}.bg-white-50{background-color:rgba(255,255,255,.5)}.bg-white-40{background-color:rgba(255,255,255,.4)}.bg-white-30{background-color:rgba(255,255,255,.3)}.bg-white-20{background-color:rgba(255,255,255,.2)}.bg-white-10{background-color:rgba(255,255,255,.1)}.bg-black{background-color:#000}.bg-near-black{background-color:#111}.bg-dark-gray{background-color:#333}.bg-mid-gray{background-color:#555}.bg-gray{background-color:#777}.bg-silver{background-color:#999}.bg-light-silver{background-color:#aaa}.bg-moon-gray{background-color:#ccc}.bg-light-gray{background-color:#eee}.bg-near-white{background-color:#f4f4f4}.bg-white{background-color:#fff}.bg-transparent{background-color:transparent}.bg-dark-red{background-color:#e7040f}.bg-red{background-color:#ff4136}.bg-light-red{background-color:#ff725c}.bg-orange{background-color:#ff6300}.bg-gold{background-color:#ffb700}.bg-yellow{background-color:gold}.bg-light-yellow{background-color:#fbf1a9}.bg-purple{background-color:#5e2ca5}.bg-light-purple{background-color:#a463f2}.bg-dark-pink{background-color:#d5008f}.bg-hot-pink{background-color:#ff41b4}.bg-pink{background-color:#ff80cc}.bg-light-pink{background-color:#ffa3d7}.bg-dark-green{background-color:#137752}.bg-green{background-color:#19a974}.bg-light-green{background-color:#9eebcf}.bg-navy{background-color:#001b44}.bg-dark-blue{background-color:#00449e}.bg-blue{background-color:#357edd}.bg-light-blue{background-color:#96ccff}.bg-lightest-blue{background-color:#cdecff}.bg-washed-blue{background-color:#f6fffe}.bg-washed-green{background-color:#e8fdf5}.bg-washed-yellow{background-color:#fffceb}.bg-washed-red{background-color:#ffdfdf}.bg-inherit{background-color:inherit}.hover-black:focus,.hover-black:hover{color:#000}.hover-near-black:focus,.hover-near-black:hover{color:#111}.hover-dark-gray:focus,.hover-dark-gray:hover{color:#333}.hover-mid-gray:focus,.hover-mid-gray:hover{color:#555}.hover-gray:focus,.hover-gray:hover{color:#777}.hover-silver:focus,.hover-silver:hover{color:#999}.hover-light-silver:focus,.hover-light-silver:hover{color:#aaa}.hover-moon-gray:focus,.hover-moon-gray:hover{color:#ccc}.hover-light-gray:focus,.hover-light-gray:hover{color:#eee}.hover-near-white:focus,.hover-near-white:hover{color:#f4f4f4}.hover-white:focus,.hover-white:hover{color:#fff}.hover-black-90:focus,.hover-black-90:hover{color:rgba(0,0,0,.9)}.hover-black-80:focus,.hover-black-80:hover{color:rgba(0,0,0,.8)}.hover-black-70:focus,.hover-black-70:hover{color:rgba(0,0,0,.7)}.hover-black-60:focus,.hover-black-60:hover{color:rgba(0,0,0,.6)}.hover-black-50:focus,.hover-black-50:hover{color:rgba(0,0,0,.5)}.hover-black-40:focus,.hover-black-40:hover{color:rgba(0,0,0,.4)}.hover-black-30:focus,.hover-black-30:hover{color:rgba(0,0,0,.3)}.hover-black-20:focus,.hover-black-20:hover{color:rgba(0,0,0,.2)}.hover-black-10:focus,.hover-black-10:hover{color:rgba(0,0,0,.1)}.hover-white-90:focus,.hover-white-90:hover{color:rgba(255,255,255,.9)}.hover-white-80:focus,.hover-white-80:hover{color:rgba(255,255,255,.8)}.hover-white-70:focus,.hover-white-70:hover{color:rgba(255,255,255,.7)}.hover-white-60:focus,.hover-white-60:hover{color:rgba(255,255,255,.6)}.hover-white-50:focus,.hover-white-50:hover{color:rgba(255,255,255,.5)}.hover-white-40:focus,.hover-white-40:hover{color:rgba(255,255,255,.4)}.hover-white-30:focus,.hover-white-30:hover{color:rgba(255,255,255,.3)}.hover-white-20:focus,.hover-white-20:hover{color:rgba(255,255,255,.2)}.hover-white-10:focus,.hover-white-10:hover{color:rgba(255,255,255,.1)}.hover-inherit:focus,.hover-inherit:hover{color:inherit}.hover-bg-black:focus,.hover-bg-black:hover{background-color:#000}.hover-bg-near-black:focus,.hover-bg-near-black:hover{background-color:#111}.hover-bg-dark-gray:focus,.hover-bg-dark-gray:hover{background-color:#333}.hover-bg-mid-gray:focus,.hover-bg-mid-gray:hover{background-color:#555}.hover-bg-gray:focus,.hover-bg-gray:hover{background-color:#777}.hover-bg-silver:focus,.hover-bg-silver:hover{background-color:#999}.hover-bg-light-silver:focus,.hover-bg-light-silver:hover{background-color:#aaa}.hover-bg-moon-gray:focus,.hover-bg-moon-gray:hover{background-color:#ccc}.hover-bg-light-gray:focus,.hover-bg-light-gray:hover{background-color:#eee}.hover-bg-near-white:focus,.hover-bg-near-white:hover{background-color:#f4f4f4}.hover-bg-white:focus,.hover-bg-white:hover{background-color:#fff}.hover-bg-transparent:focus,.hover-bg-transparent:hover{background-color:transparent}.hover-bg-black-90:focus,.hover-bg-black-90:hover{background-color:rgba(0,0,0,.9)}.hover-bg-black-80:focus,.hover-bg-black-80:hover{background-color:rgba(0,0,0,.8)}.hover-bg-black-70:focus,.hover-bg-black-70:hover{background-color:rgba(0,0,0,.7)}.hover-bg-black-60:focus,.hover-bg-black-60:hover{background-color:rgba(0,0,0,.6)}.hover-bg-black-50:focus,.hover-bg-black-50:hover{background-color:rgba(0,0,0,.5)}.hover-bg-black-40:focus,.hover-bg-black-40:hover{background-color:rgba(0,0,0,.4)}.hover-bg-black-30:focus,.hover-bg-black-30:hover{background-color:rgba(0,0,0,.3)}.hover-bg-black-20:focus,.hover-bg-black-20:hover{background-color:rgba(0,0,0,.2)}.hover-bg-black-10:focus,.hover-bg-black-10:hover{background-color:rgba(0,0,0,.1)}.hover-bg-white-90:focus,.hover-bg-white-90:hover{background-color:rgba(255,255,255,.9)}.hover-bg-white-80:focus,.hover-bg-white-80:hover{background-color:rgba(255,255,255,.8)}.hover-bg-white-70:focus,.hover-bg-white-70:hover{background-color:rgba(255,255,255,.7)}.hover-bg-white-60:focus,.hover-bg-white-60:hover{background-color:rgba(255,255,255,.6)}.hover-bg-white-50:focus,.hover-bg-white-50:hover{background-color:rgba(255,255,255,.5)}.hover-bg-white-40:focus,.hover-bg-white-40:hover{background-color:rgba(255,255,255,.4)}.hover-bg-white-30:focus,.hover-bg-white-30:hover{background-color:rgba(255,255,255,.3)}.hover-bg-white-20:focus,.hover-bg-white-20:hover{background-color:rgba(255,255,255,.2)}.hover-bg-white-10:focus,.hover-bg-white-10:hover{background-color:rgba(255,255,255,.1)}.hover-dark-red:focus,.hover-dark-red:hover{color:#e7040f}.hover-red:focus,.hover-red:hover{color:#ff4136}.hover-light-red:focus,.hover-light-red:hover{color:#ff725c}.hover-orange:focus,.hover-orange:hover{color:#ff6300}.hover-gold:focus,.hover-gold:hover{color:#ffb700}.hover-yellow:focus,.hover-yellow:hover{color:gold}.hover-light-yellow:focus,.hover-light-yellow:hover{color:#fbf1a9}.hover-purple:focus,.hover-purple:hover{color:#5e2ca5}.hover-light-purple:focus,.hover-light-purple:hover{color:#a463f2}.hover-dark-pink:focus,.hover-dark-pink:hover{color:#d5008f}.hover-hot-pink:focus,.hover-hot-pink:hover{color:#ff41b4}.hover-pink:focus,.hover-pink:hover{color:#ff80cc}.hover-light-pink:focus,.hover-light-pink:hover{color:#ffa3d7}.hover-dark-green:focus,.hover-dark-green:hover{color:#137752}.hover-green:focus,.hover-green:hover{color:#19a974}.hover-light-green:focus,.hover-light-green:hover{color:#9eebcf}.hover-navy:focus,.hover-navy:hover{color:#001b44}.hover-dark-blue:focus,.hover-dark-blue:hover{color:#00449e}.hover-blue:focus,.hover-blue:hover{color:#357edd}.hover-light-blue:focus,.hover-light-blue:hover{color:#96ccff}.hover-lightest-blue:focus,.hover-lightest-blue:hover{color:#cdecff}.hover-washed-blue:focus,.hover-washed-blue:hover{color:#f6fffe}.hover-washed-green:focus,.hover-washed-green:hover{color:#e8fdf5}.hover-washed-yellow:focus,.hover-washed-yellow:hover{color:#fffceb}.hover-washed-red:focus,.hover-washed-red:hover{color:#ffdfdf}.hover-bg-dark-red:focus,.hover-bg-dark-red:hover{background-color:#e7040f}.hover-bg-red:focus,.hover-bg-red:hover{background-color:#ff4136}.hover-bg-light-red:focus,.hover-bg-light-red:hover{background-color:#ff725c}.hover-bg-orange:focus,.hover-bg-orange:hover{background-color:#ff6300}.hover-bg-gold:focus,.hover-bg-gold:hover{background-color:#ffb700}.hover-bg-yellow:focus,.hover-bg-yellow:hover{background-color:gold}.hover-bg-light-yellow:focus,.hover-bg-light-yellow:hover{background-color:#fbf1a9}.hover-bg-purple:focus,.hover-bg-purple:hover{background-color:#5e2ca5}.hover-bg-light-purple:focus,.hover-bg-light-purple:hover{background-color:#a463f2}.hover-bg-dark-pink:focus,.hover-bg-dark-pink:hover{background-color:#d5008f}.hover-bg-hot-pink:focus,.hover-bg-hot-pink:hover{background-color:#ff41b4}.hover-bg-pink:focus,.hover-bg-pink:hover{background-color:#ff80cc}.hover-bg-light-pink:focus,.hover-bg-light-pink:hover{background-color:#ffa3d7}.hover-bg-dark-green:focus,.hover-bg-dark-green:hover{background-color:#137752}.hover-bg-green:focus,.hover-bg-green:hover{background-color:#19a974}.hover-bg-light-green:focus,.hover-bg-light-green:hover{background-color:#9eebcf}.hover-bg-navy:focus,.hover-bg-navy:hover{background-color:#001b44}.hover-bg-dark-blue:focus,.hover-bg-dark-blue:hover{background-color:#00449e}.hover-bg-blue:focus,.hover-bg-blue:hover{background-color:#357edd}.hover-bg-light-blue:focus,.hover-bg-light-blue:hover{background-color:#96ccff}.hover-bg-lightest-blue:focus,.hover-bg-lightest-blue:hover{background-color:#cdecff}.hover-bg-washed-blue:focus,.hover-bg-washed-blue:hover{background-color:#f6fffe}.hover-bg-washed-green:focus,.hover-bg-washed-green:hover{background-color:#e8fdf5}.hover-bg-washed-yellow:focus,.hover-bg-washed-yellow:hover{background-color:#fffceb}.hover-bg-washed-red:focus,.hover-bg-washed-red:hover{background-color:#ffdfdf}.hover-bg-inherit:focus,.hover-bg-inherit:hover{background-color:inherit}.pa0{padding:0}.pa1{padding:.25rem}.pa2{padding:.5rem}.pa3{padding:1rem}.pa4{padding:2rem}.pa5{padding:4rem}.pa6{padding:8rem}.pa7{padding:16rem}.pl0{padding-left:0}.pl1{padding-left:.25rem}.pl2{padding-left:.5rem}.pl3{padding-left:1rem}.pl4{padding-left:2rem}.pl5{padding-left:4rem}.pl6{padding-left:8rem}.pl7{padding-left:16rem}.pr0{padding-right:0}.pr1{padding-right:.25rem}.pr2{padding-right:.5rem}.pr3{padding-right:1rem}.pr4{padding-right:2rem}.pr5{padding-right:4rem}.pr6{padding-right:8rem}.pr7{padding-right:16rem}.pb0{padding-bottom:0}.pb1{padding-bottom:.25rem}.pb2{padding-bottom:.5rem}.pb3{padding-bottom:1rem}.pb4{padding-bottom:2rem}.pb5{padding-bottom:4rem}.pb6{padding-bottom:8rem}.pb7{padding-bottom:16rem}.pt0{padding-top:0}.pt1{padding-top:.25rem}.pt2{padding-top:.5rem}.pt3{padding-top:1rem}.pt4{padding-top:2rem}.pt5{padding-top:4rem}.pt6{padding-top:8rem}.pt7{padding-top:16rem}.pv0{padding-top:0;padding-bottom:0}.pv1{padding-top:.25rem;padding-bottom:.25rem}.pv2{padding-top:.5rem;padding-bottom:.5rem}.pv3{padding-top:1rem;padding-bottom:1rem}.pv4{padding-top:2rem;padding-bottom:2rem}.pv5{padding-top:4rem;padding-bottom:4rem}.pv6{padding-top:8rem;padding-bottom:8rem}.pv7{padding-top:16rem;padding-bottom:16rem}.ph0{padding-left:0;padding-right:0}.ph1{padding-left:.25rem;padding-right:.25rem}.ph2{padding-left:.5rem;padding-right:.5rem}.ph3{padding-left:1rem;padding-right:1rem}.ph4{padding-left:2rem;padding-right:2rem}.ph5{padding-left:4rem;padding-right:4rem}.ph6{padding-left:8rem;padding-right:8rem}.ph7{padding-left:16rem;padding-right:16rem}.ma0{margin:0}.ma1{margin:.25rem}.ma2{margin:.5rem}.ma3{margin:1rem}.ma4{margin:2rem}.ma5{margin:4rem}.ma6{margin:8rem}.ma7{margin:16rem}.ml0{margin-left:0}.ml1{margin-left:.25rem}.ml2{margin-left:.5rem}.ml3{margin-left:1rem}.ml4{margin-left:2rem}.ml5{margin-left:4rem}.ml6{margin-left:8rem}.ml7{margin-left:16rem}.mr0{margin-right:0}.mr1{margin-right:.25rem}.mr2{margin-right:.5rem}.mr3{margin-right:1rem}.mr4{margin-right:2rem}.mr5{margin-right:4rem}.mr6{margin-right:8rem}.mr7{margin-right:16rem}.mb0{margin-bottom:0}.mb1{margin-bottom:.25rem}.mb2{margin-bottom:.5rem}.mb3{margin-bottom:1rem}.mb4{margin-bottom:2rem}.mb5{margin-bottom:4rem}.mb6{margin-bottom:8rem}.mb7{margin-bottom:16rem}.mt0{margin-top:0}.mt1{margin-top:.25rem}.mt2{margin-top:.5rem}.mt3{margin-top:1rem}.mt4{margin-top:2rem}.mt5{margin-top:4rem}.mt6{margin-top:8rem}.mt7{margin-top:16rem}.mv0{margin-top:0;margin-bottom:0}.mv1{margin-top:.25rem;margin-bottom:.25rem}.mv2{margin-top:.5rem;margin-bottom:.5rem}.mv3{margin-top:1rem;margin-bottom:1rem}.mv4{margin-top:2rem;margin-bottom:2rem}.mv5{margin-top:4rem;margin-bottom:4rem}.mv6{margin-top:8rem;margin-bottom:8rem}.mv7{margin-top:16rem;margin-bottom:16rem}.mh0{margin-left:0;margin-right:0}.mh1{margin-left:.25rem;margin-right:.25rem}.mh2{margin-left:.5rem;margin-right:.5rem}.mh3{margin-left:1rem;margin-right:1rem}.mh4{margin-left:2rem;margin-right:2rem}.mh5{margin-left:4rem;margin-right:4rem}.mh6{margin-left:8rem;margin-right:8rem}.mh7{margin-left:16rem;margin-right:16rem}.na1{margin:-.25rem}.na2{margin:-.5rem}.na3{margin:-1rem}.na4{margin:-2rem}.na5{margin:-4rem}.na6{margin:-8rem}.na7{margin:-16rem}.nl1{margin-left:-.25rem}.nl2{margin-left:-.5rem}.nl3{margin-left:-1rem}.nl4{margin-left:-2rem}.nl5{margin-left:-4rem}.nl6{margin-left:-8rem}.nl7{margin-left:-16rem}.nr1{margin-right:-.25rem}.nr2{margin-right:-.5rem}.nr3{margin-right:-1rem}.nr4{margin-right:-2rem}.nr5{margin-right:-4rem}.nr6{margin-right:-8rem}.nr7{margin-right:-16rem}.nb1{margin-bottom:-.25rem}.nb2{margin-bottom:-.5rem}.nb3{margin-bottom:-1rem}.nb4{margin-bottom:-2rem}.nb5{margin-bottom:-4rem}.nb6{margin-bottom:-8rem}.nb7{margin-bottom:-16rem}.nt1{margin-top:-.25rem}.nt2{margin-top:-.5rem}.nt3{margin-top:-1rem}.nt4{margin-top:-2rem}.nt5{margin-top:-4rem}.nt6{margin-top:-8rem}.nt7{margin-top:-16rem}.collapse{border-collapse:collapse;border-spacing:0}.striped--light-silver:nth-child(odd){background-color:#aaa}.striped--moon-gray:nth-child(odd){background-color:#ccc}.striped--light-gray:nth-child(odd){background-color:#eee}.striped--near-white:nth-child(odd){background-color:#f4f4f4}.stripe-light:nth-child(odd){background-color:rgba(255,255,255,.1)}.stripe-dark:nth-child(odd){background-color:rgba(0,0,0,.1)}.strike{text-decoration:line-through}.underline{text-decoration:underline}.no-underline{text-decoration:none}.tl{text-align:left}.tr{text-align:right}.tc{text-align:center}.tj{text-align:justify}.ttc{text-transform:capitalize}.ttl{text-transform:lowercase}.ttu{text-transform:uppercase}.ttn{text-transform:none}.f-6,.f-headline{font-size:6rem}.f-5,.f-subheadline{font-size:5rem}.f1{font-size:3rem}.f2{font-size:2.25rem}.f3{font-size:1.5rem}.f4{font-size:1.25rem}.f5{font-size:1rem}.f6{font-size:.875rem}.f7{font-size:.75rem}.measure{max-width:30em}.measure-wide{max-width:34em}.measure-narrow{max-width:20em}.indent{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps{font-variant:small-caps}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overflow-container{overflow-y:scroll}.center{margin-left:auto}.center,.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}.clip{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal{white-space:normal}.nowrap{white-space:nowrap}.pre{white-space:pre}.v-base{vertical-align:baseline}.v-mid{vertical-align:middle}.v-top{vertical-align:top}.v-btm{vertical-align:bottom}.dim{opacity:1}.dim,.dim:focus,.dim:hover{transition:opacity .15s ease-in}.dim:focus,.dim:hover{opacity:.5}.dim:active{opacity:.8;transition:opacity .15s ease-out}.glow,.glow:focus,.glow:hover{transition:opacity .15s ease-in}.glow:focus,.glow:hover{opacity:1}.hide-child .child{opacity:0;transition:opacity .15s ease-in}.hide-child:active .child,.hide-child:focus .child,.hide-child:hover .child{opacity:1;transition:opacity .15s ease-in}.underline-hover:focus,.underline-hover:hover{text-decoration:underline}.grow{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.grow:focus,.grow:hover{-webkit-transform:scale(1.05);transform:scale(1.05)}.grow:active{-webkit-transform:scale(.9);transform:scale(.9)}.grow-large{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);transition:-webkit-transform .25s ease-in-out;transition:transform .25s ease-in-out;transition:transform .25s ease-in-out,-webkit-transform .25s ease-in-out}.grow-large:focus,.grow-large:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.grow-large:active{-webkit-transform:scale(.95);transform:scale(.95)}.pointer:hover,.shadow-hover{cursor:pointer}.shadow-hover{position:relative;transition:all .5s cubic-bezier(.165,.84,.44,1)}.shadow-hover:after{content:"";box-shadow:0 0 16px 2px rgba(0,0,0,.2);border-radius:inherit;opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;transition:opacity .5s cubic-bezier(.165,.84,.44,1)}.shadow-hover:focus:after,.shadow-hover:hover:after{opacity:1}.bg-animate,.bg-animate:focus,.bg-animate:hover{transition:background-color .15s ease-in-out}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}.z-4{z-index:4}.z-5{z-index:5}.z-999{z-index:999}.z-9999{z-index:9999}.z-max{z-index:2147483647}.z-inherit{z-index:inherit}.z-initial{z-index:auto}.z-unset{z-index:unset}.nested-copy-line-height ol,.nested-copy-line-height p,.nested-copy-line-height ul{line-height:1.5}.nested-headline-line-height h1,.nested-headline-line-height h2,.nested-headline-line-height h3,.nested-headline-line-height h4,.nested-headline-line-height h5,.nested-headline-line-height h6{line-height:1.25}.nested-list-reset ol,.nested-list-reset ul{padding-left:0;margin-left:0;list-style-type:none}.nested-copy-indent p+p{text-indent:1em;margin-top:0;margin-bottom:0}.nested-copy-separator p+p{margin-top:1.5em}.nested-img img{width:100%;max-width:100%;display:block}.nested-links a{color:#357edd;transition:color .15s ease-in}.nested-links a:focus,.nested-links a:hover{color:#96ccff;transition:color .15s ease-in}.debug *{outline:1px solid gold}.debug-white *{outline:1px solid #fff}.debug-black *{outline:1px solid #000}.debug-grid{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAFElEQVR4AWPAC97/9x0eCsAEPgwAVLshdpENIxcAAAAASUVORK5CYII=)repeat}.debug-grid-16{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMklEQVR4AWOgCLz/b0epAa6UGuBOqQHOQHLUgFEDnAbcBZ4UGwDOkiCnkIhdgNgNxAYAiYlD+8sEuo8AAAAASUVORK5CYII=)repeat}.debug-grid-8-solid{background:#fff url(data:image/gif;base64,R0lGODdhCAAIAPEAAADw/wDx/////wAAACwAAAAACAAIAAACDZQvgaeb/lxbAIKA8y0AOw==)repeat}.debug-grid-16-solid{background:#fff url(data:image/gif;base64,R0lGODdhEAAQAPEAAADw/wDx/xXy/////ywAAAAAEAAQAAACIZyPKckYDQFsb6ZqD85jZ2+BkwiRFKehhqQCQgDHcgwEBQA7)repeat}@media screen and (min-width:30em){.aspect-ratio-ns{height:0;position:relative}.aspect-ratio--16x9-ns{padding-bottom:56.25%}.aspect-ratio--9x16-ns{padding-bottom:177.77%}.aspect-ratio--4x3-ns{padding-bottom:75%}.aspect-ratio--3x4-ns{padding-bottom:133.33%}.aspect-ratio--6x4-ns{padding-bottom:66.6%}.aspect-ratio--4x6-ns{padding-bottom:150%}.aspect-ratio--8x5-ns{padding-bottom:62.5%}.aspect-ratio--5x8-ns{padding-bottom:160%}.aspect-ratio--7x5-ns{padding-bottom:71.42%}.aspect-ratio--5x7-ns{padding-bottom:140%}.aspect-ratio--1x1-ns{padding-bottom:100%}.aspect-ratio--object-ns{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}.cover-ns{background-size:cover!important}.contain-ns{background-size:contain!important}.bg-center-ns{background-position:50%}.bg-center-ns,.bg-top-ns{background-repeat:no-repeat}.bg-top-ns{background-position:top}.bg-right-ns{background-position:100%}.bg-bottom-ns,.bg-right-ns{background-repeat:no-repeat}.bg-bottom-ns{background-position:bottom}.bg-left-ns{background-repeat:no-repeat;background-position:0}.outline-ns{outline:1px solid}.outline-transparent-ns{outline:1px solid transparent}.outline-0-ns{outline:0}.ba-ns{border-style:solid;border-width:1px}.bt-ns{border-top-style:solid;border-top-width:1px}.br-ns{border-right-style:solid;border-right-width:1px}.bb-ns{border-bottom-style:solid;border-bottom-width:1px}.bl-ns{border-left-style:solid;border-left-width:1px}.bn-ns{border-style:none;border-width:0}.br0-ns{border-radius:0}.br1-ns{border-radius:.125rem}.br2-ns{border-radius:.25rem}.br3-ns{border-radius:.5rem}.br4-ns{border-radius:1rem}.br-100-ns{border-radius:100%}.br-pill-ns{border-radius:9999px}.br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.br--top-ns{border-bottom-right-radius:0}.br--right-ns,.br--top-ns{border-bottom-left-radius:0}.br--right-ns{border-top-left-radius:0}.br--left-ns{border-top-right-radius:0;border-bottom-right-radius:0}.br-inherit-ns{border-radius:inherit}.br-initial-ns{border-radius:initial}.br-unset-ns{border-radius:unset}.b--dotted-ns{border-style:dotted}.b--dashed-ns{border-style:dashed}.b--solid-ns{border-style:solid}.b--none-ns{border-style:none}.bw0-ns{border-width:0}.bw1-ns{border-width:.125rem}.bw2-ns{border-width:.25rem}.bw3-ns{border-width:.5rem}.bw4-ns{border-width:1rem}.bw5-ns{border-width:2rem}.bt-0-ns{border-top-width:0}.br-0-ns{border-right-width:0}.bb-0-ns{border-bottom-width:0}.bl-0-ns{border-left-width:0}.shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-ns{box-shadow:2px 2px 8px rgba(0,0,0,.2)}.shadow-5-ns{box-shadow:4px 4px 8px rgba(0,0,0,.2)}.top-0-ns{top:0}.left-0-ns{left:0}.right-0-ns{right:0}.bottom-0-ns{bottom:0}.top-1-ns{top:1rem}.left-1-ns{left:1rem}.right-1-ns{right:1rem}.bottom-1-ns{bottom:1rem}.top-2-ns{top:2rem}.left-2-ns{left:2rem}.right-2-ns{right:2rem}.bottom-2-ns{bottom:2rem}.top--1-ns{top:-1rem}.right--1-ns{right:-1rem}.bottom--1-ns{bottom:-1rem}.left--1-ns{left:-1rem}.top--2-ns{top:-2rem}.right--2-ns{right:-2rem}.bottom--2-ns{bottom:-2rem}.left--2-ns{left:-2rem}.absolute--fill-ns{top:0;right:0;bottom:0;left:0}.cl-ns{clear:left}.cr-ns{clear:right}.cb-ns{clear:both}.cn-ns{clear:none}.dn-ns{display:none}.di-ns{display:inline}.db-ns{display:block}.dib-ns{display:inline-block}.dit-ns{display:inline-table}.dt-ns{display:table}.dtc-ns{display:table-cell}.dt-row-ns{display:table-row}.dt-row-group-ns{display:table-row-group}.dt-column-ns{display:table-column}.dt-column-group-ns{display:table-column-group}.dt--fixed-ns{table-layout:fixed;width:100%}.flex-ns{display:flex}.inline-flex-ns{display:inline-flex}.flex-auto-ns{flex:auto;min-width:0;min-height:0}.flex-none-ns{flex:none}.flex-column-ns{flex-direction:column}.flex-row-ns{flex-direction:row}.flex-wrap-ns{flex-wrap:wrap}.flex-nowrap-ns{flex-wrap:nowrap}.flex-wrap-reverse-ns{flex-wrap:wrap-reverse}.flex-column-reverse-ns{flex-direction:column-reverse}.flex-row-reverse-ns{flex-direction:row-reverse}.items-start-ns{align-items:flex-start}.items-end-ns{align-items:flex-end}.items-center-ns{align-items:center}.items-baseline-ns{align-items:baseline}.items-stretch-ns{align-items:stretch}.self-start-ns{align-self:flex-start}.self-end-ns{align-self:flex-end}.self-center-ns{align-self:center}.self-baseline-ns{align-self:baseline}.self-stretch-ns{align-self:stretch}.justify-start-ns{justify-content:flex-start}.justify-end-ns{justify-content:flex-end}.justify-center-ns{justify-content:center}.justify-between-ns{justify-content:space-between}.justify-around-ns{justify-content:space-around}.content-start-ns{align-content:flex-start}.content-end-ns{align-content:flex-end}.content-center-ns{align-content:center}.content-between-ns{align-content:space-between}.content-around-ns{align-content:space-around}.content-stretch-ns{align-content:stretch}.order-0-ns{order:0}.order-1-ns{order:1}.order-2-ns{order:2}.order-3-ns{order:3}.order-4-ns{order:4}.order-5-ns{order:5}.order-6-ns{order:6}.order-7-ns{order:7}.order-8-ns{order:8}.order-last-ns{order:99999}.flex-grow-0-ns{flex-grow:0}.flex-grow-1-ns{flex-grow:1}.flex-shrink-0-ns{flex-shrink:0}.flex-shrink-1-ns{flex-shrink:1}.fl-ns{float:left}.fl-ns,.fr-ns{_display:inline}.fr-ns{float:right}.fn-ns{float:none}.i-ns{font-style:italic}.fs-normal-ns{font-style:normal}.normal-ns{font-weight:400}.b-ns{font-weight:700}.fw1-ns{font-weight:100}.fw2-ns{font-weight:200}.fw3-ns{font-weight:300}.fw4-ns{font-weight:400}.fw5-ns{font-weight:500}.fw6-ns{font-weight:600}.fw7-ns{font-weight:700}.fw8-ns{font-weight:800}.fw9-ns{font-weight:900}.h1-ns{height:1rem}.h2-ns{height:2rem}.h3-ns{height:4rem}.h4-ns{height:8rem}.h5-ns{height:16rem}.h-25-ns{height:25%}.h-50-ns{height:50%}.h-75-ns{height:75%}.h-100-ns{height:100%}.min-h-100-ns{min-height:100%}.vh-25-ns{height:25vh}.vh-50-ns{height:50vh}.vh-75-ns{height:75vh}.vh-100-ns{height:100vh}.min-vh-100-ns{min-height:100vh}.h-auto-ns{height:auto}.h-inherit-ns{height:inherit}.tracked-ns{letter-spacing:.1em}.tracked-tight-ns{letter-spacing:-.05em}.tracked-mega-ns{letter-spacing:.25em}.lh-solid-ns{line-height:1}.lh-title-ns{line-height:1.25}.lh-copy-ns{line-height:1.5}.mw-100-ns{max-width:100%}.mw1-ns{max-width:1rem}.mw2-ns{max-width:2rem}.mw3-ns{max-width:4rem}.mw4-ns{max-width:8rem}.mw5-ns{max-width:16rem}.mw6-ns{max-width:32rem}.mw7-ns{max-width:48rem}.mw8-ns{max-width:64rem}.mw9-ns{max-width:96rem}.mw-none-ns{max-width:none}.w1-ns{width:1rem}.w2-ns{width:2rem}.w3-ns{width:4rem}.w4-ns{width:8rem}.w5-ns{width:16rem}.w-10-ns{width:10%}.w-20-ns{width:20%}.w-25-ns{width:25%}.w-30-ns{width:30%}.w-33-ns{width:33%}.w-34-ns{width:34%}.w-40-ns{width:40%}.w-50-ns{width:50%}.w-60-ns{width:60%}.w-70-ns{width:70%}.w-75-ns{width:75%}.w-80-ns{width:80%}.w-90-ns{width:90%}.w-100-ns{width:100%}.w-third-ns{width:33.33333%}.w-two-thirds-ns{width:66.66667%}.w-auto-ns{width:auto}.overflow-visible-ns{overflow:visible}.overflow-hidden-ns{overflow:hidden}.overflow-scroll-ns{overflow:scroll}.overflow-auto-ns{overflow:auto}.overflow-x-visible-ns{overflow-x:visible}.overflow-x-hidden-ns{overflow-x:hidden}.overflow-x-scroll-ns{overflow-x:scroll}.overflow-x-auto-ns{overflow-x:auto}.overflow-y-visible-ns{overflow-y:visible}.overflow-y-hidden-ns{overflow-y:hidden}.overflow-y-scroll-ns{overflow-y:scroll}.overflow-y-auto-ns{overflow-y:auto}.static-ns{position:static}.relative-ns{position:relative}.absolute-ns{position:absolute}.fixed-ns{position:fixed}.rotate-45-ns{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-ns{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-ns{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-ns{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-ns{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-ns{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-ns{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-ns{padding:0}.pa1-ns{padding:.25rem}.pa2-ns{padding:.5rem}.pa3-ns{padding:1rem}.pa4-ns{padding:2rem}.pa5-ns{padding:4rem}.pa6-ns{padding:8rem}.pa7-ns{padding:16rem}.pl0-ns{padding-left:0}.pl1-ns{padding-left:.25rem}.pl2-ns{padding-left:.5rem}.pl3-ns{padding-left:1rem}.pl4-ns{padding-left:2rem}.pl5-ns{padding-left:4rem}.pl6-ns{padding-left:8rem}.pl7-ns{padding-left:16rem}.pr0-ns{padding-right:0}.pr1-ns{padding-right:.25rem}.pr2-ns{padding-right:.5rem}.pr3-ns{padding-right:1rem}.pr4-ns{padding-right:2rem}.pr5-ns{padding-right:4rem}.pr6-ns{padding-right:8rem}.pr7-ns{padding-right:16rem}.pb0-ns{padding-bottom:0}.pb1-ns{padding-bottom:.25rem}.pb2-ns{padding-bottom:.5rem}.pb3-ns{padding-bottom:1rem}.pb4-ns{padding-bottom:2rem}.pb5-ns{padding-bottom:4rem}.pb6-ns{padding-bottom:8rem}.pb7-ns{padding-bottom:16rem}.pt0-ns{padding-top:0}.pt1-ns{padding-top:.25rem}.pt2-ns{padding-top:.5rem}.pt3-ns{padding-top:1rem}.pt4-ns{padding-top:2rem}.pt5-ns{padding-top:4rem}.pt6-ns{padding-top:8rem}.pt7-ns{padding-top:16rem}.pv0-ns{padding-top:0;padding-bottom:0}.pv1-ns{padding-top:.25rem;padding-bottom:.25rem}.pv2-ns{padding-top:.5rem;padding-bottom:.5rem}.pv3-ns{padding-top:1rem;padding-bottom:1rem}.pv4-ns{padding-top:2rem;padding-bottom:2rem}.pv5-ns{padding-top:4rem;padding-bottom:4rem}.pv6-ns{padding-top:8rem;padding-bottom:8rem}.pv7-ns{padding-top:16rem;padding-bottom:16rem}.ph0-ns{padding-left:0;padding-right:0}.ph1-ns{padding-left:.25rem;padding-right:.25rem}.ph2-ns{padding-left:.5rem;padding-right:.5rem}.ph3-ns{padding-left:1rem;padding-right:1rem}.ph4-ns{padding-left:2rem;padding-right:2rem}.ph5-ns{padding-left:4rem;padding-right:4rem}.ph6-ns{padding-left:8rem;padding-right:8rem}.ph7-ns{padding-left:16rem;padding-right:16rem}.ma0-ns{margin:0}.ma1-ns{margin:.25rem}.ma2-ns{margin:.5rem}.ma3-ns{margin:1rem}.ma4-ns{margin:2rem}.ma5-ns{margin:4rem}.ma6-ns{margin:8rem}.ma7-ns{margin:16rem}.ml0-ns{margin-left:0}.ml1-ns{margin-left:.25rem}.ml2-ns{margin-left:.5rem}.ml3-ns{margin-left:1rem}.ml4-ns{margin-left:2rem}.ml5-ns{margin-left:4rem}.ml6-ns{margin-left:8rem}.ml7-ns{margin-left:16rem}.mr0-ns{margin-right:0}.mr1-ns{margin-right:.25rem}.mr2-ns{margin-right:.5rem}.mr3-ns{margin-right:1rem}.mr4-ns{margin-right:2rem}.mr5-ns{margin-right:4rem}.mr6-ns{margin-right:8rem}.mr7-ns{margin-right:16rem}.mb0-ns{margin-bottom:0}.mb1-ns{margin-bottom:.25rem}.mb2-ns{margin-bottom:.5rem}.mb3-ns{margin-bottom:1rem}.mb4-ns{margin-bottom:2rem}.mb5-ns{margin-bottom:4rem}.mb6-ns{margin-bottom:8rem}.mb7-ns{margin-bottom:16rem}.mt0-ns{margin-top:0}.mt1-ns{margin-top:.25rem}.mt2-ns{margin-top:.5rem}.mt3-ns{margin-top:1rem}.mt4-ns{margin-top:2rem}.mt5-ns{margin-top:4rem}.mt6-ns{margin-top:8rem}.mt7-ns{margin-top:16rem}.mv0-ns{margin-top:0;margin-bottom:0}.mv1-ns{margin-top:.25rem;margin-bottom:.25rem}.mv2-ns{margin-top:.5rem;margin-bottom:.5rem}.mv3-ns{margin-top:1rem;margin-bottom:1rem}.mv4-ns{margin-top:2rem;margin-bottom:2rem}.mv5-ns{margin-top:4rem;margin-bottom:4rem}.mv6-ns{margin-top:8rem;margin-bottom:8rem}.mv7-ns{margin-top:16rem;margin-bottom:16rem}.mh0-ns{margin-left:0;margin-right:0}.mh1-ns{margin-left:.25rem;margin-right:.25rem}.mh2-ns{margin-left:.5rem;margin-right:.5rem}.mh3-ns{margin-left:1rem;margin-right:1rem}.mh4-ns{margin-left:2rem;margin-right:2rem}.mh5-ns{margin-left:4rem;margin-right:4rem}.mh6-ns{margin-left:8rem;margin-right:8rem}.mh7-ns{margin-left:16rem;margin-right:16rem}.na1-ns{margin:-.25rem}.na2-ns{margin:-.5rem}.na3-ns{margin:-1rem}.na4-ns{margin:-2rem}.na5-ns{margin:-4rem}.na6-ns{margin:-8rem}.na7-ns{margin:-16rem}.nl1-ns{margin-left:-.25rem}.nl2-ns{margin-left:-.5rem}.nl3-ns{margin-left:-1rem}.nl4-ns{margin-left:-2rem}.nl5-ns{margin-left:-4rem}.nl6-ns{margin-left:-8rem}.nl7-ns{margin-left:-16rem}.nr1-ns{margin-right:-.25rem}.nr2-ns{margin-right:-.5rem}.nr3-ns{margin-right:-1rem}.nr4-ns{margin-right:-2rem}.nr5-ns{margin-right:-4rem}.nr6-ns{margin-right:-8rem}.nr7-ns{margin-right:-16rem}.nb1-ns{margin-bottom:-.25rem}.nb2-ns{margin-bottom:-.5rem}.nb3-ns{margin-bottom:-1rem}.nb4-ns{margin-bottom:-2rem}.nb5-ns{margin-bottom:-4rem}.nb6-ns{margin-bottom:-8rem}.nb7-ns{margin-bottom:-16rem}.nt1-ns{margin-top:-.25rem}.nt2-ns{margin-top:-.5rem}.nt3-ns{margin-top:-1rem}.nt4-ns{margin-top:-2rem}.nt5-ns{margin-top:-4rem}.nt6-ns{margin-top:-8rem}.nt7-ns{margin-top:-16rem}.strike-ns{text-decoration:line-through}.underline-ns{text-decoration:underline}.no-underline-ns{text-decoration:none}.tl-ns{text-align:left}.tr-ns{text-align:right}.tc-ns{text-align:center}.tj-ns{text-align:justify}.ttc-ns{text-transform:capitalize}.ttl-ns{text-transform:lowercase}.ttu-ns{text-transform:uppercase}.ttn-ns{text-transform:none}.f-6-ns,.f-headline-ns{font-size:6rem}.f-5-ns,.f-subheadline-ns{font-size:5rem}.f1-ns{font-size:3rem}.f2-ns{font-size:2.25rem}.f3-ns{font-size:1.5rem}.f4-ns{font-size:1.25rem}.f5-ns{font-size:1rem}.f6-ns{font-size:.875rem}.f7-ns{font-size:.75rem}.measure-ns{max-width:30em}.measure-wide-ns{max-width:34em}.measure-narrow-ns{max-width:20em}.indent-ns{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-ns{font-variant:small-caps}.truncate-ns{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.center-ns{margin-left:auto}.center-ns,.mr-auto-ns{margin-right:auto}.ml-auto-ns{margin-left:auto}.clip-ns{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal-ns{white-space:normal}.nowrap-ns{white-space:nowrap}.pre-ns{white-space:pre}.v-base-ns{vertical-align:baseline}.v-mid-ns{vertical-align:middle}.v-top-ns{vertical-align:top}.v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em) and (max-width:60em){.aspect-ratio-m{height:0;position:relative}.aspect-ratio--16x9-m{padding-bottom:56.25%}.aspect-ratio--9x16-m{padding-bottom:177.77%}.aspect-ratio--4x3-m{padding-bottom:75%}.aspect-ratio--3x4-m{padding-bottom:133.33%}.aspect-ratio--6x4-m{padding-bottom:66.6%}.aspect-ratio--4x6-m{padding-bottom:150%}.aspect-ratio--8x5-m{padding-bottom:62.5%}.aspect-ratio--5x8-m{padding-bottom:160%}.aspect-ratio--7x5-m{padding-bottom:71.42%}.aspect-ratio--5x7-m{padding-bottom:140%}.aspect-ratio--1x1-m{padding-bottom:100%}.aspect-ratio--object-m{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}.cover-m{background-size:cover!important}.contain-m{background-size:contain!important}.bg-center-m{background-position:50%}.bg-center-m,.bg-top-m{background-repeat:no-repeat}.bg-top-m{background-position:top}.bg-right-m{background-position:100%}.bg-bottom-m,.bg-right-m{background-repeat:no-repeat}.bg-bottom-m{background-position:bottom}.bg-left-m{background-repeat:no-repeat;background-position:0}.outline-m{outline:1px solid}.outline-transparent-m{outline:1px solid transparent}.outline-0-m{outline:0}.ba-m{border-style:solid;border-width:1px}.bt-m{border-top-style:solid;border-top-width:1px}.br-m{border-right-style:solid;border-right-width:1px}.bb-m{border-bottom-style:solid;border-bottom-width:1px}.bl-m{border-left-style:solid;border-left-width:1px}.bn-m{border-style:none;border-width:0}.br0-m{border-radius:0}.br1-m{border-radius:.125rem}.br2-m{border-radius:.25rem}.br3-m{border-radius:.5rem}.br4-m{border-radius:1rem}.br-100-m{border-radius:100%}.br-pill-m{border-radius:9999px}.br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.br--top-m{border-bottom-right-radius:0}.br--right-m,.br--top-m{border-bottom-left-radius:0}.br--right-m{border-top-left-radius:0}.br--left-m{border-top-right-radius:0;border-bottom-right-radius:0}.br-inherit-m{border-radius:inherit}.br-initial-m{border-radius:initial}.br-unset-m{border-radius:unset}.b--dotted-m{border-style:dotted}.b--dashed-m{border-style:dashed}.b--solid-m{border-style:solid}.b--none-m{border-style:none}.bw0-m{border-width:0}.bw1-m{border-width:.125rem}.bw2-m{border-width:.25rem}.bw3-m{border-width:.5rem}.bw4-m{border-width:1rem}.bw5-m{border-width:2rem}.bt-0-m{border-top-width:0}.br-0-m{border-right-width:0}.bb-0-m{border-bottom-width:0}.bl-0-m{border-left-width:0}.shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-m{box-shadow:2px 2px 8px rgba(0,0,0,.2)}.shadow-5-m{box-shadow:4px 4px 8px rgba(0,0,0,.2)}.top-0-m{top:0}.left-0-m{left:0}.right-0-m{right:0}.bottom-0-m{bottom:0}.top-1-m{top:1rem}.left-1-m{left:1rem}.right-1-m{right:1rem}.bottom-1-m{bottom:1rem}.top-2-m{top:2rem}.left-2-m{left:2rem}.right-2-m{right:2rem}.bottom-2-m{bottom:2rem}.top--1-m{top:-1rem}.right--1-m{right:-1rem}.bottom--1-m{bottom:-1rem}.left--1-m{left:-1rem}.top--2-m{top:-2rem}.right--2-m{right:-2rem}.bottom--2-m{bottom:-2rem}.left--2-m{left:-2rem}.absolute--fill-m{top:0;right:0;bottom:0;left:0}.cl-m{clear:left}.cr-m{clear:right}.cb-m{clear:both}.cn-m{clear:none}.dn-m{display:none}.di-m{display:inline}.db-m{display:block}.dib-m{display:inline-block}.dit-m{display:inline-table}.dt-m{display:table}.dtc-m{display:table-cell}.dt-row-m{display:table-row}.dt-row-group-m{display:table-row-group}.dt-column-m{display:table-column}.dt-column-group-m{display:table-column-group}.dt--fixed-m{table-layout:fixed;width:100%}.flex-m{display:flex}.inline-flex-m{display:inline-flex}.flex-auto-m{flex:auto;min-width:0;min-height:0}.flex-none-m{flex:none}.flex-column-m{flex-direction:column}.flex-row-m{flex-direction:row}.flex-wrap-m{flex-wrap:wrap}.flex-nowrap-m{flex-wrap:nowrap}.flex-wrap-reverse-m{flex-wrap:wrap-reverse}.flex-column-reverse-m{flex-direction:column-reverse}.flex-row-reverse-m{flex-direction:row-reverse}.items-start-m{align-items:flex-start}.items-end-m{align-items:flex-end}.items-center-m{align-items:center}.items-baseline-m{align-items:baseline}.items-stretch-m{align-items:stretch}.self-start-m{align-self:flex-start}.self-end-m{align-self:flex-end}.self-center-m{align-self:center}.self-baseline-m{align-self:baseline}.self-stretch-m{align-self:stretch}.justify-start-m{justify-content:flex-start}.justify-end-m{justify-content:flex-end}.justify-center-m{justify-content:center}.justify-between-m{justify-content:space-between}.justify-around-m{justify-content:space-around}.content-start-m{align-content:flex-start}.content-end-m{align-content:flex-end}.content-center-m{align-content:center}.content-between-m{align-content:space-between}.content-around-m{align-content:space-around}.content-stretch-m{align-content:stretch}.order-0-m{order:0}.order-1-m{order:1}.order-2-m{order:2}.order-3-m{order:3}.order-4-m{order:4}.order-5-m{order:5}.order-6-m{order:6}.order-7-m{order:7}.order-8-m{order:8}.order-last-m{order:99999}.flex-grow-0-m{flex-grow:0}.flex-grow-1-m{flex-grow:1}.flex-shrink-0-m{flex-shrink:0}.flex-shrink-1-m{flex-shrink:1}.fl-m{float:left}.fl-m,.fr-m{_display:inline}.fr-m{float:right}.fn-m{float:none}.i-m{font-style:italic}.fs-normal-m{font-style:normal}.normal-m{font-weight:400}.b-m{font-weight:700}.fw1-m{font-weight:100}.fw2-m{font-weight:200}.fw3-m{font-weight:300}.fw4-m{font-weight:400}.fw5-m{font-weight:500}.fw6-m{font-weight:600}.fw7-m{font-weight:700}.fw8-m{font-weight:800}.fw9-m{font-weight:900}.h1-m{height:1rem}.h2-m{height:2rem}.h3-m{height:4rem}.h4-m{height:8rem}.h5-m{height:16rem}.h-25-m{height:25%}.h-50-m{height:50%}.h-75-m{height:75%}.h-100-m{height:100%}.min-h-100-m{min-height:100%}.vh-25-m{height:25vh}.vh-50-m{height:50vh}.vh-75-m{height:75vh}.vh-100-m{height:100vh}.min-vh-100-m{min-height:100vh}.h-auto-m{height:auto}.h-inherit-m{height:inherit}.tracked-m{letter-spacing:.1em}.tracked-tight-m{letter-spacing:-.05em}.tracked-mega-m{letter-spacing:.25em}.lh-solid-m{line-height:1}.lh-title-m{line-height:1.25}.lh-copy-m{line-height:1.5}.mw-100-m{max-width:100%}.mw1-m{max-width:1rem}.mw2-m{max-width:2rem}.mw3-m{max-width:4rem}.mw4-m{max-width:8rem}.mw5-m{max-width:16rem}.mw6-m{max-width:32rem}.mw7-m{max-width:48rem}.mw8-m{max-width:64rem}.mw9-m{max-width:96rem}.mw-none-m{max-width:none}.w1-m{width:1rem}.w2-m{width:2rem}.w3-m{width:4rem}.w4-m{width:8rem}.w5-m{width:16rem}.w-10-m{width:10%}.w-20-m{width:20%}.w-25-m{width:25%}.w-30-m{width:30%}.w-33-m{width:33%}.w-34-m{width:34%}.w-40-m{width:40%}.w-50-m{width:50%}.w-60-m{width:60%}.w-70-m{width:70%}.w-75-m{width:75%}.w-80-m{width:80%}.w-90-m{width:90%}.w-100-m{width:100%}.w-third-m{width:33.33333%}.w-two-thirds-m{width:66.66667%}.w-auto-m{width:auto}.overflow-visible-m{overflow:visible}.overflow-hidden-m{overflow:hidden}.overflow-scroll-m{overflow:scroll}.overflow-auto-m{overflow:auto}.overflow-x-visible-m{overflow-x:visible}.overflow-x-hidden-m{overflow-x:hidden}.overflow-x-scroll-m{overflow-x:scroll}.overflow-x-auto-m{overflow-x:auto}.overflow-y-visible-m{overflow-y:visible}.overflow-y-hidden-m{overflow-y:hidden}.overflow-y-scroll-m{overflow-y:scroll}.overflow-y-auto-m{overflow-y:auto}.static-m{position:static}.relative-m{position:relative}.absolute-m{position:absolute}.fixed-m{position:fixed}.rotate-45-m{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-m{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-m{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-m{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-m{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-m{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-m{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-m{padding:0}.pa1-m{padding:.25rem}.pa2-m{padding:.5rem}.pa3-m{padding:1rem}.pa4-m{padding:2rem}.pa5-m{padding:4rem}.pa6-m{padding:8rem}.pa7-m{padding:16rem}.pl0-m{padding-left:0}.pl1-m{padding-left:.25rem}.pl2-m{padding-left:.5rem}.pl3-m{padding-left:1rem}.pl4-m{padding-left:2rem}.pl5-m{padding-left:4rem}.pl6-m{padding-left:8rem}.pl7-m{padding-left:16rem}.pr0-m{padding-right:0}.pr1-m{padding-right:.25rem}.pr2-m{padding-right:.5rem}.pr3-m{padding-right:1rem}.pr4-m{padding-right:2rem}.pr5-m{padding-right:4rem}.pr6-m{padding-right:8rem}.pr7-m{padding-right:16rem}.pb0-m{padding-bottom:0}.pb1-m{padding-bottom:.25rem}.pb2-m{padding-bottom:.5rem}.pb3-m{padding-bottom:1rem}.pb4-m{padding-bottom:2rem}.pb5-m{padding-bottom:4rem}.pb6-m{padding-bottom:8rem}.pb7-m{padding-bottom:16rem}.pt0-m{padding-top:0}.pt1-m{padding-top:.25rem}.pt2-m{padding-top:.5rem}.pt3-m{padding-top:1rem}.pt4-m{padding-top:2rem}.pt5-m{padding-top:4rem}.pt6-m{padding-top:8rem}.pt7-m{padding-top:16rem}.pv0-m{padding-top:0;padding-bottom:0}.pv1-m{padding-top:.25rem;padding-bottom:.25rem}.pv2-m{padding-top:.5rem;padding-bottom:.5rem}.pv3-m{padding-top:1rem;padding-bottom:1rem}.pv4-m{padding-top:2rem;padding-bottom:2rem}.pv5-m{padding-top:4rem;padding-bottom:4rem}.pv6-m{padding-top:8rem;padding-bottom:8rem}.pv7-m{padding-top:16rem;padding-bottom:16rem}.ph0-m{padding-left:0;padding-right:0}.ph1-m{padding-left:.25rem;padding-right:.25rem}.ph2-m{padding-left:.5rem;padding-right:.5rem}.ph3-m{padding-left:1rem;padding-right:1rem}.ph4-m{padding-left:2rem;padding-right:2rem}.ph5-m{padding-left:4rem;padding-right:4rem}.ph6-m{padding-left:8rem;padding-right:8rem}.ph7-m{padding-left:16rem;padding-right:16rem}.ma0-m{margin:0}.ma1-m{margin:.25rem}.ma2-m{margin:.5rem}.ma3-m{margin:1rem}.ma4-m{margin:2rem}.ma5-m{margin:4rem}.ma6-m{margin:8rem}.ma7-m{margin:16rem}.ml0-m{margin-left:0}.ml1-m{margin-left:.25rem}.ml2-m{margin-left:.5rem}.ml3-m{margin-left:1rem}.ml4-m{margin-left:2rem}.ml5-m{margin-left:4rem}.ml6-m{margin-left:8rem}.ml7-m{margin-left:16rem}.mr0-m{margin-right:0}.mr1-m{margin-right:.25rem}.mr2-m{margin-right:.5rem}.mr3-m{margin-right:1rem}.mr4-m{margin-right:2rem}.mr5-m{margin-right:4rem}.mr6-m{margin-right:8rem}.mr7-m{margin-right:16rem}.mb0-m{margin-bottom:0}.mb1-m{margin-bottom:.25rem}.mb2-m{margin-bottom:.5rem}.mb3-m{margin-bottom:1rem}.mb4-m{margin-bottom:2rem}.mb5-m{margin-bottom:4rem}.mb6-m{margin-bottom:8rem}.mb7-m{margin-bottom:16rem}.mt0-m{margin-top:0}.mt1-m{margin-top:.25rem}.mt2-m{margin-top:.5rem}.mt3-m{margin-top:1rem}.mt4-m{margin-top:2rem}.mt5-m{margin-top:4rem}.mt6-m{margin-top:8rem}.mt7-m{margin-top:16rem}.mv0-m{margin-top:0;margin-bottom:0}.mv1-m{margin-top:.25rem;margin-bottom:.25rem}.mv2-m{margin-top:.5rem;margin-bottom:.5rem}.mv3-m{margin-top:1rem;margin-bottom:1rem}.mv4-m{margin-top:2rem;margin-bottom:2rem}.mv5-m{margin-top:4rem;margin-bottom:4rem}.mv6-m{margin-top:8rem;margin-bottom:8rem}.mv7-m{margin-top:16rem;margin-bottom:16rem}.mh0-m{margin-left:0;margin-right:0}.mh1-m{margin-left:.25rem;margin-right:.25rem}.mh2-m{margin-left:.5rem;margin-right:.5rem}.mh3-m{margin-left:1rem;margin-right:1rem}.mh4-m{margin-left:2rem;margin-right:2rem}.mh5-m{margin-left:4rem;margin-right:4rem}.mh6-m{margin-left:8rem;margin-right:8rem}.mh7-m{margin-left:16rem;margin-right:16rem}.na1-m{margin:-.25rem}.na2-m{margin:-.5rem}.na3-m{margin:-1rem}.na4-m{margin:-2rem}.na5-m{margin:-4rem}.na6-m{margin:-8rem}.na7-m{margin:-16rem}.nl1-m{margin-left:-.25rem}.nl2-m{margin-left:-.5rem}.nl3-m{margin-left:-1rem}.nl4-m{margin-left:-2rem}.nl5-m{margin-left:-4rem}.nl6-m{margin-left:-8rem}.nl7-m{margin-left:-16rem}.nr1-m{margin-right:-.25rem}.nr2-m{margin-right:-.5rem}.nr3-m{margin-right:-1rem}.nr4-m{margin-right:-2rem}.nr5-m{margin-right:-4rem}.nr6-m{margin-right:-8rem}.nr7-m{margin-right:-16rem}.nb1-m{margin-bottom:-.25rem}.nb2-m{margin-bottom:-.5rem}.nb3-m{margin-bottom:-1rem}.nb4-m{margin-bottom:-2rem}.nb5-m{margin-bottom:-4rem}.nb6-m{margin-bottom:-8rem}.nb7-m{margin-bottom:-16rem}.nt1-m{margin-top:-.25rem}.nt2-m{margin-top:-.5rem}.nt3-m{margin-top:-1rem}.nt4-m{margin-top:-2rem}.nt5-m{margin-top:-4rem}.nt6-m{margin-top:-8rem}.nt7-m{margin-top:-16rem}.strike-m{text-decoration:line-through}.underline-m{text-decoration:underline}.no-underline-m{text-decoration:none}.tl-m{text-align:left}.tr-m{text-align:right}.tc-m{text-align:center}.tj-m{text-align:justify}.ttc-m{text-transform:capitalize}.ttl-m{text-transform:lowercase}.ttu-m{text-transform:uppercase}.ttn-m{text-transform:none}.f-6-m,.f-headline-m{font-size:6rem}.f-5-m,.f-subheadline-m{font-size:5rem}.f1-m{font-size:3rem}.f2-m{font-size:2.25rem}.f3-m{font-size:1.5rem}.f4-m{font-size:1.25rem}.f5-m{font-size:1rem}.f6-m{font-size:.875rem}.f7-m{font-size:.75rem}.measure-m{max-width:30em}.measure-wide-m{max-width:34em}.measure-narrow-m{max-width:20em}.indent-m{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-m{font-variant:small-caps}.truncate-m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.center-m{margin-left:auto}.center-m,.mr-auto-m{margin-right:auto}.ml-auto-m{margin-left:auto}.clip-m{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal-m{white-space:normal}.nowrap-m{white-space:nowrap}.pre-m{white-space:pre}.v-base-m{vertical-align:baseline}.v-mid-m{vertical-align:middle}.v-top-m{vertical-align:top}.v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.aspect-ratio-l{height:0;position:relative}.aspect-ratio--16x9-l{padding-bottom:56.25%}.aspect-ratio--9x16-l{padding-bottom:177.77%}.aspect-ratio--4x3-l{padding-bottom:75%}.aspect-ratio--3x4-l{padding-bottom:133.33%}.aspect-ratio--6x4-l{padding-bottom:66.6%}.aspect-ratio--4x6-l{padding-bottom:150%}.aspect-ratio--8x5-l{padding-bottom:62.5%}.aspect-ratio--5x8-l{padding-bottom:160%}.aspect-ratio--7x5-l{padding-bottom:71.42%}.aspect-ratio--5x7-l{padding-bottom:140%}.aspect-ratio--1x1-l{padding-bottom:100%}.aspect-ratio--object-l{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}.cover-l{background-size:cover!important}.contain-l{background-size:contain!important}.bg-center-l{background-position:50%}.bg-center-l,.bg-top-l{background-repeat:no-repeat}.bg-top-l{background-position:top}.bg-right-l{background-position:100%}.bg-bottom-l,.bg-right-l{background-repeat:no-repeat}.bg-bottom-l{background-position:bottom}.bg-left-l{background-repeat:no-repeat;background-position:0}.outline-l{outline:1px solid}.outline-transparent-l{outline:1px solid transparent}.outline-0-l{outline:0}.ba-l{border-style:solid;border-width:1px}.bt-l{border-top-style:solid;border-top-width:1px}.br-l{border-right-style:solid;border-right-width:1px}.bb-l{border-bottom-style:solid;border-bottom-width:1px}.bl-l{border-left-style:solid;border-left-width:1px}.bn-l{border-style:none;border-width:0}.br0-l{border-radius:0}.br1-l{border-radius:.125rem}.br2-l{border-radius:.25rem}.br3-l{border-radius:.5rem}.br4-l{border-radius:1rem}.br-100-l{border-radius:100%}.br-pill-l{border-radius:9999px}.br--bottom-l{border-top-left-radius:0;border-top-right-radius:0}.br--top-l{border-bottom-right-radius:0}.br--right-l,.br--top-l{border-bottom-left-radius:0}.br--right-l{border-top-left-radius:0}.br--left-l{border-top-right-radius:0;border-bottom-right-radius:0}.br-inherit-l{border-radius:inherit}.br-initial-l{border-radius:initial}.br-unset-l{border-radius:unset}.b--dotted-l{border-style:dotted}.b--dashed-l{border-style:dashed}.b--solid-l{border-style:solid}.b--none-l{border-style:none}.bw0-l{border-width:0}.bw1-l{border-width:.125rem}.bw2-l{border-width:.25rem}.bw3-l{border-width:.5rem}.bw4-l{border-width:1rem}.bw5-l{border-width:2rem}.bt-0-l{border-top-width:0}.br-0-l{border-right-width:0}.bb-0-l{border-bottom-width:0}.bl-0-l{border-left-width:0}.shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-l{box-shadow:2px 2px 8px rgba(0,0,0,.2)}.shadow-5-l{box-shadow:4px 4px 8px rgba(0,0,0,.2)}.top-0-l{top:0}.left-0-l{left:0}.right-0-l{right:0}.bottom-0-l{bottom:0}.top-1-l{top:1rem}.left-1-l{left:1rem}.right-1-l{right:1rem}.bottom-1-l{bottom:1rem}.top-2-l{top:2rem}.left-2-l{left:2rem}.right-2-l{right:2rem}.bottom-2-l{bottom:2rem}.top--1-l{top:-1rem}.right--1-l{right:-1rem}.bottom--1-l{bottom:-1rem}.left--1-l{left:-1rem}.top--2-l{top:-2rem}.right--2-l{right:-2rem}.bottom--2-l{bottom:-2rem}.left--2-l{left:-2rem}.absolute--fill-l{top:0;right:0;bottom:0;left:0}.cl-l{clear:left}.cr-l{clear:right}.cb-l{clear:both}.cn-l{clear:none}.dn-l{display:none}.di-l{display:inline}.db-l{display:block}.dib-l{display:inline-block}.dit-l{display:inline-table}.dt-l{display:table}.dtc-l{display:table-cell}.dt-row-l{display:table-row}.dt-row-group-l{display:table-row-group}.dt-column-l{display:table-column}.dt-column-group-l{display:table-column-group}.dt--fixed-l{table-layout:fixed;width:100%}.flex-l{display:flex}.inline-flex-l{display:inline-flex}.flex-auto-l{flex:auto;min-width:0;min-height:0}.flex-none-l{flex:none}.flex-column-l{flex-direction:column}.flex-row-l{flex-direction:row}.flex-wrap-l{flex-wrap:wrap}.flex-nowrap-l{flex-wrap:nowrap}.flex-wrap-reverse-l{flex-wrap:wrap-reverse}.flex-column-reverse-l{flex-direction:column-reverse}.flex-row-reverse-l{flex-direction:row-reverse}.items-start-l{align-items:flex-start}.items-end-l{align-items:flex-end}.items-center-l{align-items:center}.items-baseline-l{align-items:baseline}.items-stretch-l{align-items:stretch}.self-start-l{align-self:flex-start}.self-end-l{align-self:flex-end}.self-center-l{align-self:center}.self-baseline-l{align-self:baseline}.self-stretch-l{align-self:stretch}.justify-start-l{justify-content:flex-start}.justify-end-l{justify-content:flex-end}.justify-center-l{justify-content:center}.justify-between-l{justify-content:space-between}.justify-around-l{justify-content:space-around}.content-start-l{align-content:flex-start}.content-end-l{align-content:flex-end}.content-center-l{align-content:center}.content-between-l{align-content:space-between}.content-around-l{align-content:space-around}.content-stretch-l{align-content:stretch}.order-0-l{order:0}.order-1-l{order:1}.order-2-l{order:2}.order-3-l{order:3}.order-4-l{order:4}.order-5-l{order:5}.order-6-l{order:6}.order-7-l{order:7}.order-8-l{order:8}.order-last-l{order:99999}.flex-grow-0-l{flex-grow:0}.flex-grow-1-l{flex-grow:1}.flex-shrink-0-l{flex-shrink:0}.flex-shrink-1-l{flex-shrink:1}.fl-l{float:left}.fl-l,.fr-l{_display:inline}.fr-l{float:right}.fn-l{float:none}.i-l{font-style:italic}.fs-normal-l{font-style:normal}.normal-l{font-weight:400}.b-l{font-weight:700}.fw1-l{font-weight:100}.fw2-l{font-weight:200}.fw3-l{font-weight:300}.fw4-l{font-weight:400}.fw5-l{font-weight:500}.fw6-l{font-weight:600}.fw7-l{font-weight:700}.fw8-l{font-weight:800}.fw9-l{font-weight:900}.h1-l{height:1rem}.h2-l{height:2rem}.h3-l{height:4rem}.h4-l{height:8rem}.h5-l{height:16rem}.h-25-l{height:25%}.h-50-l{height:50%}.h-75-l{height:75%}.h-100-l{height:100%}.min-h-100-l{min-height:100%}.vh-25-l{height:25vh}.vh-50-l{height:50vh}.vh-75-l{height:75vh}.vh-100-l{height:100vh}.min-vh-100-l{min-height:100vh}.h-auto-l{height:auto}.h-inherit-l{height:inherit}.tracked-l{letter-spacing:.1em}.tracked-tight-l{letter-spacing:-.05em}.tracked-mega-l{letter-spacing:.25em}.lh-solid-l{line-height:1}.lh-title-l{line-height:1.25}.lh-copy-l{line-height:1.5}.mw-100-l{max-width:100%}.mw1-l{max-width:1rem}.mw2-l{max-width:2rem}.mw3-l{max-width:4rem}.mw4-l{max-width:8rem}.mw5-l{max-width:16rem}.mw6-l{max-width:32rem}.mw7-l{max-width:48rem}.mw8-l{max-width:64rem}.mw9-l{max-width:96rem}.mw-none-l{max-width:none}.w1-l{width:1rem}.w2-l{width:2rem}.w3-l{width:4rem}.w4-l{width:8rem}.w5-l{width:16rem}.w-10-l{width:10%}.w-20-l{width:20%}.w-25-l{width:25%}.w-30-l{width:30%}.w-33-l{width:33%}.w-34-l{width:34%}.w-40-l{width:40%}.w-50-l{width:50%}.w-60-l{width:60%}.w-70-l{width:70%}.w-75-l{width:75%}.w-80-l{width:80%}.w-90-l{width:90%}.w-100-l{width:100%}.w-third-l{width:33.33333%}.w-two-thirds-l{width:66.66667%}.w-auto-l{width:auto}.overflow-visible-l{overflow:visible}.overflow-hidden-l{overflow:hidden}.overflow-scroll-l{overflow:scroll}.overflow-auto-l{overflow:auto}.overflow-x-visible-l{overflow-x:visible}.overflow-x-hidden-l{overflow-x:hidden}.overflow-x-scroll-l{overflow-x:scroll}.overflow-x-auto-l{overflow-x:auto}.overflow-y-visible-l{overflow-y:visible}.overflow-y-hidden-l{overflow-y:hidden}.overflow-y-scroll-l{overflow-y:scroll}.overflow-y-auto-l{overflow-y:auto}.static-l{position:static}.relative-l{position:relative}.absolute-l{position:absolute}.fixed-l{position:fixed}.rotate-45-l{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-l{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-l{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-l{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-l{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-l{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-l{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-l{padding:0}.pa1-l{padding:.25rem}.pa2-l{padding:.5rem}.pa3-l{padding:1rem}.pa4-l{padding:2rem}.pa5-l{padding:4rem}.pa6-l{padding:8rem}.pa7-l{padding:16rem}.pl0-l{padding-left:0}.pl1-l{padding-left:.25rem}.pl2-l{padding-left:.5rem}.pl3-l{padding-left:1rem}.pl4-l{padding-left:2rem}.pl5-l{padding-left:4rem}.pl6-l{padding-left:8rem}.pl7-l{padding-left:16rem}.pr0-l{padding-right:0}.pr1-l{padding-right:.25rem}.pr2-l{padding-right:.5rem}.pr3-l{padding-right:1rem}.pr4-l{padding-right:2rem}.pr5-l{padding-right:4rem}.pr6-l{padding-right:8rem}.pr7-l{padding-right:16rem}.pb0-l{padding-bottom:0}.pb1-l{padding-bottom:.25rem}.pb2-l{padding-bottom:.5rem}.pb3-l{padding-bottom:1rem}.pb4-l{padding-bottom:2rem}.pb5-l{padding-bottom:4rem}.pb6-l{padding-bottom:8rem}.pb7-l{padding-bottom:16rem}.pt0-l{padding-top:0}.pt1-l{padding-top:.25rem}.pt2-l{padding-top:.5rem}.pt3-l{padding-top:1rem}.pt4-l{padding-top:2rem}.pt5-l{padding-top:4rem}.pt6-l{padding-top:8rem}.pt7-l{padding-top:16rem}.pv0-l{padding-top:0;padding-bottom:0}.pv1-l{padding-top:.25rem;padding-bottom:.25rem}.pv2-l{padding-top:.5rem;padding-bottom:.5rem}.pv3-l{padding-top:1rem;padding-bottom:1rem}.pv4-l{padding-top:2rem;padding-bottom:2rem}.pv5-l{padding-top:4rem;padding-bottom:4rem}.pv6-l{padding-top:8rem;padding-bottom:8rem}.pv7-l{padding-top:16rem;padding-bottom:16rem}.ph0-l{padding-left:0;padding-right:0}.ph1-l{padding-left:.25rem;padding-right:.25rem}.ph2-l{padding-left:.5rem;padding-right:.5rem}.ph3-l{padding-left:1rem;padding-right:1rem}.ph4-l{padding-left:2rem;padding-right:2rem}.ph5-l{padding-left:4rem;padding-right:4rem}.ph6-l{padding-left:8rem;padding-right:8rem}.ph7-l{padding-left:16rem;padding-right:16rem}.ma0-l{margin:0}.ma1-l{margin:.25rem}.ma2-l{margin:.5rem}.ma3-l{margin:1rem}.ma4-l{margin:2rem}.ma5-l{margin:4rem}.ma6-l{margin:8rem}.ma7-l{margin:16rem}.ml0-l{margin-left:0}.ml1-l{margin-left:.25rem}.ml2-l{margin-left:.5rem}.ml3-l{margin-left:1rem}.ml4-l{margin-left:2rem}.ml5-l{margin-left:4rem}.ml6-l{margin-left:8rem}.ml7-l{margin-left:16rem}.mr0-l{margin-right:0}.mr1-l{margin-right:.25rem}.mr2-l{margin-right:.5rem}.mr3-l{margin-right:1rem}.mr4-l{margin-right:2rem}.mr5-l{margin-right:4rem}.mr6-l{margin-right:8rem}.mr7-l{margin-right:16rem}.mb0-l{margin-bottom:0}.mb1-l{margin-bottom:.25rem}.mb2-l{margin-bottom:.5rem}.mb3-l{margin-bottom:1rem}.mb4-l{margin-bottom:2rem}.mb5-l{margin-bottom:4rem}.mb6-l{margin-bottom:8rem}.mb7-l{margin-bottom:16rem}.mt0-l{margin-top:0}.mt1-l{margin-top:.25rem}.mt2-l{margin-top:.5rem}.mt3-l{margin-top:1rem}.mt4-l{margin-top:2rem}.mt5-l{margin-top:4rem}.mt6-l{margin-top:8rem}.mt7-l{margin-top:16rem}.mv0-l{margin-top:0;margin-bottom:0}.mv1-l{margin-top:.25rem;margin-bottom:.25rem}.mv2-l{margin-top:.5rem;margin-bottom:.5rem}.mv3-l{margin-top:1rem;margin-bottom:1rem}.mv4-l{margin-top:2rem;margin-bottom:2rem}.mv5-l{margin-top:4rem;margin-bottom:4rem}.mv6-l{margin-top:8rem;margin-bottom:8rem}.mv7-l{margin-top:16rem;margin-bottom:16rem}.mh0-l{margin-left:0;margin-right:0}.mh1-l{margin-left:.25rem;margin-right:.25rem}.mh2-l{margin-left:.5rem;margin-right:.5rem}.mh3-l{margin-left:1rem;margin-right:1rem}.mh4-l{margin-left:2rem;margin-right:2rem}.mh5-l{margin-left:4rem;margin-right:4rem}.mh6-l{margin-left:8rem;margin-right:8rem}.mh7-l{margin-left:16rem;margin-right:16rem}.na1-l{margin:-.25rem}.na2-l{margin:-.5rem}.na3-l{margin:-1rem}.na4-l{margin:-2rem}.na5-l{margin:-4rem}.na6-l{margin:-8rem}.na7-l{margin:-16rem}.nl1-l{margin-left:-.25rem}.nl2-l{margin-left:-.5rem}.nl3-l{margin-left:-1rem}.nl4-l{margin-left:-2rem}.nl5-l{margin-left:-4rem}.nl6-l{margin-left:-8rem}.nl7-l{margin-left:-16rem}.nr1-l{margin-right:-.25rem}.nr2-l{margin-right:-.5rem}.nr3-l{margin-right:-1rem}.nr4-l{margin-right:-2rem}.nr5-l{margin-right:-4rem}.nr6-l{margin-right:-8rem}.nr7-l{margin-right:-16rem}.nb1-l{margin-bottom:-.25rem}.nb2-l{margin-bottom:-.5rem}.nb3-l{margin-bottom:-1rem}.nb4-l{margin-bottom:-2rem}.nb5-l{margin-bottom:-4rem}.nb6-l{margin-bottom:-8rem}.nb7-l{margin-bottom:-16rem}.nt1-l{margin-top:-.25rem}.nt2-l{margin-top:-.5rem}.nt3-l{margin-top:-1rem}.nt4-l{margin-top:-2rem}.nt5-l{margin-top:-4rem}.nt6-l{margin-top:-8rem}.nt7-l{margin-top:-16rem}.strike-l{text-decoration:line-through}.underline-l{text-decoration:underline}.no-underline-l{text-decoration:none}.tl-l{text-align:left}.tr-l{text-align:right}.tc-l{text-align:center}.tj-l{text-align:justify}.ttc-l{text-transform:capitalize}.ttl-l{text-transform:lowercase}.ttu-l{text-transform:uppercase}.ttn-l{text-transform:none}.f-6-l,.f-headline-l{font-size:6rem}.f-5-l,.f-subheadline-l{font-size:5rem}.f1-l{font-size:3rem}.f2-l{font-size:2.25rem}.f3-l{font-size:1.5rem}.f4-l{font-size:1.25rem}.f5-l{font-size:1rem}.f6-l{font-size:.875rem}.f7-l{font-size:.75rem}.measure-l{max-width:30em}.measure-wide-l{max-width:34em}.measure-narrow-l{max-width:20em}.indent-l{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-l{font-variant:small-caps}.truncate-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.center-l{margin-left:auto}.center-l,.mr-auto-l{margin-right:auto}.ml-auto-l{margin-left:auto}.clip-l{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal-l{white-space:normal}.nowrap-l{white-space:nowrap}.pre-l{white-space:pre}.v-base-l{vertical-align:baseline}.v-mid-l{vertical-align:middle}.v-top-l{vertical-align:top}.v-btm-l{vertical-align:bottom}}pre,.pre{overflow-x:auto;overflow-y:hidden;overflow:scroll}pre code{display:block;padding:1.5em;white-space:pre;font-size:.875rem;line-height:2}pre{background-color:#222;color:#ddd;white-space:pre;hyphens:none;position:relative}.pagination{margin:3rem 0}.pagination li{display:inline-block;margin-right:.375rem;font-size:.875rem;margin-bottom:2.5em}[dir=rtl] .pagination li{margin-left:.375rem;margin-right:0}.pagination li a{padding:.5rem .625rem;background-color:#fff;color:#333;border:1px solid #ddd;border-radius:3px;text-decoration:none}.pagination li.disabled{display:none}.pagination li.active a,.pagination li.active a:link,.pagination li.active a:active,.pagination li.active a:visited{background-color:#ddd}#TableOfContents ul li{margin-bottom:1em}.ananke-socials a{display:inline-block;vertical-align:middle;color:#bababa;fill:currentColor}.ananke-socials a .icon svg{width:32px;height:32px}.ananke-socials a:hover{color:#6b7280}.new-window{opacity:0;display:inline-block;vertical-align:top}.link-transition:hover .new-window{opacity:1}#TableOfContents ul li{margin-bottom:1em}.lh-copy blockquote{display:block;font-size:.875em;margin-left:2rem;margin-top:2rem;margin-bottom:2rem;border-left:4px solid #ccc;padding-left:1rem}.nested-links a{overflow-wrap:break-word}/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/resources/_gen/assets/ananke/css/main.css_9d7c906d8fe82fddbbd923faebb24419.json b/resources/_gen/assets/ananke/css/main.css_9d7c906d8fe82fddbbd923faebb24419.json deleted file mode 100644 index 54a1d46..0000000 --- a/resources/_gen/assets/ananke/css/main.css_9d7c906d8fe82fddbbd923faebb24419.json +++ /dev/null @@ -1 +0,0 @@ -{"Target":"/ananke/css/main.min.css","MediaType":"text/css","Data":{}} \ No newline at end of file diff --git a/startup.sh b/startup.sh new file mode 100644 index 0000000..5337f31 --- /dev/null +++ b/startup.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +hugo --cleanDestinationDir
- -
- - -
- - -
- - -
-

WelcomeToMyTechnicalBlog

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

- About Me -

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

Who am I

-

My name is Florian and I’m 22 years old. -I work as an IT Technican mainly with Linux Servers in Frankfurt, Germany. -My company is midsized around 50 people working here. -I mainly want to post about what I learned, what inspires me.

-

Well I dont really, this just seemed like a great idea to waste some time.

- -
- - -
- [] -
- -
- -
-

- What am I currently working on -

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

Building a Self-Sustaining Infrastructure: A Two-Server Docker Setup

-

Overview

-

Creating a resilient, self-sustaining infrastructure doesn’t require complex enterprise solutions. With two strategically configured servers and a well-thought-out backup strategy, you can achieve both reliability and security for your self-hosted applications.

-

The Architecture

-

Docker Host Server

-

The primary server runs all application workloads using Docker containers. This containerized approach provides:

-
    -
  • Isolation: Each service runs in its own container with defined resources
  • -
  • Portability: Services can be easily migrated or replicated
  • -
  • Consistency: Docker Compose configurations ensure reproducible deployments
  • -
-

The Docker host maintains minimal external exposure, with only essential ports opened to the internet. This reduces the attack surface while still providing necessary services.

- -
- - -
- [] -
- -
- - - - -
- -
- - - - - - - - - - - - - - - - -