diff --git a/app/main.py b/app/main.py
index 35c9f33..7061c0b 100644
--- a/app/main.py
+++ b/app/main.py
@@ -5,9 +5,9 @@ from fastapi.staticfiles import StaticFiles
from app.controllers.route_to_web import RouteToWeb
from app.services.markdown_processor import MarkdownProcessor
from app.services.metadata_processor import MetadataProcessor
-from app.controllers.dynamic_controller import DynamicController
from app.controllers.category_controller import CategoryController
from fastapi.middleware.gzip import GZipMiddleware
+from app.services.image_controller import ImageHandler
class Application:
@@ -46,11 +46,13 @@ class Application:
route_to_web = RouteToWeb(self.app)
+
self.app.include_router( category_controller.router )
#self.app.include_router( dynamic_controller.router )
self.app.include_router(route_to_web.router)
+
def _include_middelware(self):
self.app.add_middleware( GZipMiddleware, minimum_size = 500 )
diff --git a/app/services/image_controller.py b/app/services/image_controller.py
new file mode 100644
index 0000000..8b4e550
--- /dev/null
+++ b/app/services/image_controller.py
@@ -0,0 +1,72 @@
+import os
+from PIL import Image
+
+class ImageHandler:
+ def __init__(self, base_dir: str):
+ """
+ Initialize the ImageHandler.
+
+ :param base_dir: Base directory for storing and retrieving images.
+ """
+ self.base_dir = base_dir
+
+ def get_image_path(self, filename: str) -> str:
+ """
+ Construct the full path for a given image file.
+
+ :param filename: Relative filename of the image.
+ :return: Full path to the image.
+ """
+ return os.path.join(self.base_dir, filename)
+
+ def get_resized_image_path(self, filename: str, width: int, height: int) -> str:
+ """
+ Construct the path for a resized image.
+
+ :param filename: Original image filename.
+ :param width: Desired width.
+ :param height: Desired height.
+ :return: Path to the resized image.
+ """
+ return os.path.join(self.base_dir, f"resized_{width}x{height}_{filename}")
+
+ def resize_and_save(self, original_path: str, resized_path: str, width: int, height: int):
+ """
+ Resize and save the image if it doesn't already exist.
+
+ :param original_path: Path to the original image file.
+ :param resized_path: Path to save the resized image.
+ :param width: Desired width.
+ :param height: Desired height.
+ """
+ if not os.path.exists(resized_path):
+ with Image.open(original_path) as img:
+ img_resized = img.resize((width, height))
+ img_resized.save(resized_path, format="JPEG")
+
+ def generate_image_tag(self, src: str, width: int, height: int, css_class: str = "", alt: str = "") -> str:
+ """
+ Generate an HTML tag and ensure the image exists with the specified dimensions.
+
+ :param src: Relative path to the original image.
+ :param width: Desired width of the image.
+ :param height: Desired height of the image.
+ :param css_class: Optional CSS class to add to the
tag.
+ :param alt: Alternative text for the image.
+ :return: HTML
tag.
+ """
+ original_path = self.get_image_path(src)
+ if not os.path.isfile(original_path):
+ raise FileNotFoundError(f"Image not found: {src}")
+
+ # Construct resized image path
+ resized_filename = f"resized_{width}x{height}_{os.path.basename(src)}"
+ resized_path = self.get_resized_image_path(src, width, height)
+
+ # Resize and save the image if necessary
+ self.resize_and_save(original_path, resized_path, width, height)
+
+ # Return the
tag
+ class_attr = f' class="{css_class}"' if css_class else ""
+ alt_attr = f' alt="{alt}"' if alt else ""
+ return f'
'
diff --git a/app/services/markdown_render.py b/app/services/markdown_render.py
index 947c562..495364a 100644
--- a/app/services/markdown_render.py
+++ b/app/services/markdown_render.py
@@ -1,6 +1,6 @@
import markdown
from jinja2 import Environment, DictLoader
-
+from .image_controller import ImageHandler
# Define Jinja2 custom functions
def img_left_overlay(src):
"""Render an image with overlay."""
@@ -82,6 +82,8 @@ def slider(options, images):
def create_jinja_environment():
"""Create and configure the Jinja2 environment."""
env = Environment(loader=DictLoader({"base_template": "{{ content | safe }}"}))
+ image_handler = ImageHandler(base_dir="static/images")
+
env.globals.update({
"img_left_overlay": img_left_overlay,
"box": box,
@@ -89,6 +91,8 @@ def create_jinja_environment():
"warning": warning,
"link_to": link_to,
"slider": slider,
+ "image": image_handler.generate_image_tag, # Add image handler function
+
})
return env
@@ -113,11 +117,7 @@ def render_markdown_with_jinja(markdown_content: str):
template = env.get_template("base_template")
final_html = template.render(content=intermediate_html)
- #Step 3: Re-render final_html in Jinja2 for embedded tags like {{ box(...) }}
-
- try:
- final_output = env.from_string(final_html).render()
- except:
- print(final_html)
+ # Step 3: Re-render final_html in Jinja2 for embedded tags like {{ image(...) }}
+ final_output = env.from_string(final_html).render()
return final_output, metadata
diff --git a/data/Kultur/0200_kultur_unikt.md b/data/Kultur/0200_kultur_unikt.md
index 1d76e21..84a7c42 100644
--- a/data/Kultur/0200_kultur_unikt.md
+++ b/data/Kultur/0200_kultur_unikt.md
@@ -69,6 +69,7 @@ Lissabon føles på mange måder som København – med fokus på kultur, kvalit
Samtidig er mange oplevelser billigere end i København, og her er en atmosfære, der er svær at finde nordpå: Lissabon har en unik blanding af tradition og modernitet, som gør den til en by, der bliver ved med at fascinere.
+{{ image("pic11.jpg", 200, 150, "thumbnail", "Example Image") }}
### Lidt billeder
diff --git a/requirements.txt b/requirements.txt
index f4aa05a..cb6032c 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -11,6 +11,7 @@ Markdown==3.7
markdown-it-py==3.0.0
MarkupSafe==3.0.2
mdurl==0.1.2
+pillow==11.0.0
pydantic==2.10.3
pydantic_core==2.27.1
python-dotenv==1.0.1
diff --git a/static/css/main.css b/static/css/main.css
index 43101ef..1a9be3c 100644
--- a/static/css/main.css
+++ b/static/css/main.css
@@ -1,6 +1,7 @@
@charset "UTF-8";
+@import 'open_sans.css';
+@import "roboto-slab.css";
@import 'fontawesome-all.min.css';
-@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,600,400italic,600italic|Roboto+Slab:400,700");
/*
Editorial by HTML5 UP
html5up.net | @ajlkn
diff --git a/static/css/main.css.map b/static/css/main.css.map
index c35227e..438f062 100644
--- a/static/css/main.css.map
+++ b/static/css/main.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["../sass/main.scss","../sass/base/_reset.scss","../sass/base/_page.scss","../sass/libs/_breakpoints.scss","../sass/libs/_vendor.scss","../sass/base/_typography.scss","../sass/components/_row.scss","../sass/libs/_html-grid.scss","../sass/components/_section.scss","../sass/components/_form.scss","../sass/libs/_mixins.scss","../sass/components/_box.scss","../sass/components/_icon.scss","../sass/components/_image.scss","../sass/components/_list.scss","../sass/components/_actions.scss","../sass/components/_icons.scss","../sass/components/_contact.scss","../sass/components/_pagination.scss","../sass/components/_table.scss","../sass/components/_button.scss","../sass/components/_mini-posts.scss","../sass/components/_features.scss","../sass/components/_posts.scss","../sass/components/_modals.scss","../sass/layout/_wrapper.scss","../sass/layout/_main.scss","../sass/layout/_sidebar.scss","../sass/layout/_header.scss","../sass/layout/_banner.scss","../sass/layout/_footer.scss","../sass/layout/_menu.scss"],"names":[],"mappings":";AAMQ;AACA;AAER;AAAA;AAAA;AAAA;AAAA;ACAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAWC;EACA;EACA;EACA;EACA;EACA;;;AAGD;AAAA;EAEC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;AAEA;EAEC;EACA;;;AAIF;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;ACpEF;AAGE;EACC;;AAID;EACC;;;AC2MM;EDtMN;IACC;;;AAMF;EACC;;;AAGD;EACC;;;AAGF;EACC;;AAKE;EE8TO;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;;ACtWX;AAEC;EACC;EACA;EACA;EACA;EACA;;AFkNO;EEvNR;IAQE;;;AF+MM;EEvNR;IAYE;;;AF2MM;EEvNR;IAgBE;;;;AAIF;EDgVU;EAAA;EAAA;EAAA;EC3UT;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;;AAKH;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;;;AAIF;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AF8HO;EE1HP;IACC;;;AFyHM;EEpHP;IACC;;;AFmHM;EE9GP;IACC;IACA;;EAGD;IACC;;;AAIF;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;;AAEA;EACC;;;AAIF;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAkBD;EATC,WAU+B;EAT/B;EACA;EACA;EACA;EACA;;;AASD;EAdC,WAe+B;EAd/B;EACA;EACA;EACA;EACA;;;AAaD;EAlBC,WAmB+B;EAlB/B;EACA;EACA;EACA;EACA;;;AAiBD;EAtBC,WAuB+B;EAtB/B;EACA;EACA;EACA;EACA;;;AAwBD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;;;ACtOF;AAEC;ECkCE;EACA;EACA;EACA;;AAGC;EACC;;AAMC;EACC;;AAMH;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAiBC;EACC;;AAKA;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AAcA;EACC;EACA;;AAEA;EACC;;AAIA;EACC;;AAEA;EACC;;AAbJ;EACC;EACA;;AAEA;EACC;;AAIA;EACC;;AAEA;EACC;;AAbJ;EACC;EACA;;AAEA;EACC;;AAIA;EACC;;AAEA;EACC;;AAbJ;EACC;EACA;;AAEA;EACC;;AAIA;EACC;;AAEA;EACC;;AAbJ;EACC;EACA;;AAEA;EACC;;AAIA;EACC;;AAEA;EACC;;AAbJ;EACC;EACA;;AAEA;EACC;;AAIA;EACC;;AAEA;EACC;;AJgFH;EGlNR;ICkCE;IACA;IACA;IACA;;EAGC;IACC;;EAMC;IACC;;EAMH;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAiBC;IACC;;EAKA;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EAcA;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;;AJgFH;EGlNR;ICkCE;IACA;IACA;IACA;;EAGC;IACC;;EAMC;IACC;;EAMH;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAiBC;IACC;;EAKA;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EAcA;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;;AJgFH;EGlNR;ICkCE;IACA;IACA;IACA;;EAGC;IACC;;EAMC;IACC;;EAMH;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAiBC;IACC;;EAKA;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EAcA;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;;AJgFH;EGlNR;ICkCE;IACA;IACA;IACA;;EAGC;IACC;;EAMC;IACC;;EAMH;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAiBC;IACC;;EAKA;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EAcA;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;;AJgFH;EGlNR;ICkCE;IACA;IACA;IACA;;EAGC;IACC;;EAMC;IACC;;EAMH;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAiBC;IACC;;EAKA;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EAcA;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;;;ACpIZ;AAGE;EACC;;;AAKD;EACC;EACA;EACA;EACA;EACA;EACA;;AAIA;EACC;EACA;EACA;EACC;;AAKF;EACC;;;AC7BJ;AAEC;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ELmVU;EAAA;EAAA;EAAA;EK1UT;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;EACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAIA;EACC;;AAIF;EACC;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOC;;;AAGD;EACC;;;AAGD;AAAA;EL8QU;EAAA;EAAA;EAAA;EK3QT;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EC7FD;ED+FE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ACpGF;AAAA;EAMC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAMC;EACA;;ADkFA;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKD;AAAA;EACC;EACA;EACA;EACA;;AAKD;AAAA;EACC;EACA;;;AAOD;EACC;;;AAOD;EACC;;;AAKH;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AE3KF;AAEC;EACC;EACA;EACA;EACA;;AAEA;AAAA;AAAA;EAGC;;AAGD;EACC;EACA;EACA;;;ACjBH;AAEC;EFFA;EEIC;EACA;;AFHD;EAMC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAUC;EACA;;AEnBD;EACC;;AAGD;EACC;;AAIA;EACC;;AAKD;EACC;;;ACvBJ;AAEC;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;EAEC;;AAEA;EACC;;AAIF;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAEA;EACC;;AAIF;EACC;EACA;EACA;;AAEA;EACC;;;AAKH;EACC;;AAEA;ETuSS;EAAA;EAAA;EAAA;;ASlSR;ETkSQ;EAAA;EAAA;EAAA;;;AUjWX;AAEC;EACC;EACA;EACA;;AAEA;EACC;;;AAIF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;AAEA;EACC;EACA;;AAEA;EACC;EACA;;;AAMJ;EACC;;AAEA;EACC;EACA;EACA;;AAGD;EACC;;;AC/CH;AAEC;EXsWU;EAAA;EAAA;EAAA;EWpWT;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;EXmVS;EAAA;EAAA;EAAA;EWjVR;EACA;;AAGC;EACC;;AAKH;EXuUS;EAAA;EAAA;EAAA;EWrUR;;AAEA;EACC;;AAEA;EACC;;AAKH;EACC;;AAEA;EXuTQ;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EWpTP;;AAEA;EACC;;AAIF;EACC;;;ACrDJ;AAEC;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAEA;EACC;;;ACnBL;AAEC;EACC;EACA;;AAEA;EPND;EOQE;EACA;EACA;EACA;;APTF;EAMC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAUC;EACA;;AObA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAEA;EACC;;AAIF;EACC;;;ACrCJ;AAEC;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAEA;EdqVQ;EAAA;EAAA;EAAA;EchVP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAKH;EACC;;AAGD;EACC;;AfoKK;Ee9JL;IACC;;EAGD;IACC;;;;AC3DL;AAEC;EACC;EACA;;;AAGD;EACC;EACA;;AAGC;EACC;EACA;EACA;;AAEA;EACC;;AAKH;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAIE;EACC;EACA;EACA;;AAEA;EACC;;AAKD;EACC;;AAMJ;EACC;;AAGD;EACC;;;ACvEJ;AAEC;AAAA;AAAA;AAAA;AAAA;EhB+VU;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EgBrVT;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;EACC;;AAIA;AAAA;AAAA;AAAA;AAAA;EACC;;AAIF;AAAA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;EACC;EACA;EACA;;AAGD;AAAA;AAAA;AAAA;AAAA;EACC;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;EACC;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EhBqSQ;EgBlSP;;;AC5EH;AAGE;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;EACA;;;ACrBJ;AAEC;ElBsWU;EAAA;EAAA;EAAA;EAPA;EAAA;EAAA;EAAA;EkB1VT;EACA;;AAEA;ElBuVS;EAAA;EAAA;EAAA;EAOA;EAAA;EAAA;EAAA;EkB3VR;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EAEC;;AAGD;ElBmUQ;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EkBhUP;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;AAGD;ElBkTO;EAAA;EAAA;EAAA;EkBhTN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;ElBmSQ;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EkBhSP;;AAEA;EACC;;AnBgJI;EmBlNR;IAwEE;IACA;;EAEA;IACC;IACA;;EAEA;IACC;;EAGD;IACC;;EAGD;IAEC,eAxFM;;EA2FP;IACC;;EAGD;IACC;IACA;IACA;;EAEA;IACC;;EAGD;IACC;IACA;IACA;;;AnBsGG;EmB/FN;IlB4OQ;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;;EkBxOP;IACC;IACA;IACA;IACA;;EAEA;IACC;;EAGD;IACC;IACA;IACA;;;AnB8EG;EmBrEJ;IACC;;;;AChJN;AAEC;EnBsWU;EAAA;EAAA;EAAA;EAPA;EAAA;EAAA;EAAA;EmB1VT;EACA;;AAEA;EnBuVS;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EmBpVR;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;EACC;EACA;;AAEA;EACC;EACA;;ApBmKI;EoB3JJ;IACC;;EAGD;IACC;;EAIF;IAGC;;EAEA;IACC;;EAGD;IACC;;;ApBwIG;EoBjIN;IACC;;EAEA;IACC,eApFM;;;ApBiNF;EoBrHJ;IACC;;EAGD;IACC;;EAIF;IAEC;;EAEA;IACC;;EAGD;IACC;;;ApBmGG;EoBlNR;IAwHE;IACA;;EAEA;IACC;IACA;;EAEA;IACC;IACA;;EAGD;IACC;IACA;;EAGD;IACC,eApBO;;;ApB4FH;EoBlNR;IAkJE;IACA;;EAEA;IACC;IACA;;EAEA;IACC;;EAGD;IACC;;EAGD;IACC;;EAEA;IACC;;;;ACpKN;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA,OAVa;EAWb;EACA;EACA;;AAEA;AAAA;EACE;EACA;;;AAKJ;EACE;;;AAGF;EACE;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA,YA1CS;EA2CT;EACA;EACA;EACA;EACA,SA7Cc;;;AAiDhB;EACE,kBAjDiB;EAkDjB;EACA;EACA,YAnDqB;EAoDrB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AACA;EACE;;AAKN;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAKJ;EACE;EACA;EACA;EAEA;EACA;;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;;AAKJ;EACE;EACA;;;AAIF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AC5KF;AAEC;ErBsWU;EAAA;EAAA;EAAA;EAPA;EAAA;EAAA;EAAA;EqB5VT;;;ACLF;AAEC;EtB+VU;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EsB5VT;;AAEA;EhB2CD;EgBzCE;EACA;;AAEA;EhBsCF;EgBpCG;;AAEA;EACE;;AvBmMG;EuB7LN;IhB2BF;;EgBxBG;IhBwBH;;;APkKQ;EuBnLN;IhBiBF;;EgBdG;IhBcH;;;APkKQ;EuBzKN;IhBOF;;EgBJG;IhBIH;;;;AiBlDD;AAGE;EjBHD;EiBKE;;AjBHF;EAMC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAMC;EACA;;AiBfA;EvB0VQ;EAAA;EAAA;EAAA;EuBxVP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;;AAKH;EvBmUU;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EuB1TT;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EjBED;EiBAE;EACA;;AAEA;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;;AAIF;EACC;EACA;EACA;EACA,SA1CI;EA2CJ;;AAIF;EjB9ED;ENiWU;EAAA;EAAA;EAAA;EuBhRR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AjB7FF;EAMC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAMC;EACA;;AiB2EA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EACC;;AxBqGM;EwBtLR;IAuFE;;EAEA;IjBrEF;IiBuEG;;EAEA;IACC;IACA,SAVI;IAWJ;;EAIF;IACC;IACA;IACA;IACA;IACA;;EAEA;IACC;;EAIF;IACC;;;AxBqEK;EwBtLR;IAsHE;IACA;IACA;IACA;IACA;IACA;;EAEA;IACC;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IACC;IACA;IACA;IACA;;EAIF;IACC;IACA;;EAEA;IACC;IACA;;EAIF;IACC;;;AxByBK;EwBpBN;IACC;IACA;;EAEA;IACC;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;;ACpNL;AAEC;ExBsWU;EAAA;EAAA;EAAA;EwBpWT;EACA;EACA;;AAEA;ExByVS;EAAA;EAAA;EAAA;EwBvVR;;AAGD;EACC;EACA;EACA;EACA;;AAGD;EACC;;AzB+LM;EyBlNR;IAuBE;;;AzB2LM;EyBlNR;IA2BE;;EAEA;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;;;;ACzCJ;AAEC;EnBgDA;ENsTU;EAAA;EAAA;EAAA;;AyBlWT;EACC;;AAGD;EzBuVS;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EyBpVR;;AAGD;EzBiVS;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EyB9UR;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;A1BpBF;E0BXD;IzB+VU;IAAA;IAAA;IAAA;;EyBxTP;IACC;;EAIF;IzBmTQ;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IyBhTP;;EAGD;IzB6SQ;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IyB1SP;IACA;IACA;IACA;IACA;;;A1ByJK;E0BrJL;IACC;;;;AChEL;AAGE;EACC;EACA;;AAEA;EACC;;;AAKH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;EACA;;;ACzBH;AAGE;E3B8VS;EAAA;EAAA;EAAA;E2B5VR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;E3BuUO;EAAA;EAAA;EAAA;EMjWV;EqB6BI;EACA;;ArB5BJ;EAMC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAMC;EACA;;AqBUE;E3BiUM;EAAA;EAAA;EAAA;E2B5TL;EACA;EACA;EACA;;AAIA;EACC;;AAKD;EACC;;AAGD;E3B2SK;EAAA;EAAA;EAAA;;A2BlSR;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;AAIF;EACC;EACA;EACA","file":"main.css"}
\ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["../sass/main.scss","../sass/base/_reset.scss","../sass/base/_page.scss","../sass/libs/_breakpoints.scss","../sass/libs/_vendor.scss","../sass/base/_typography.scss","../sass/components/_row.scss","../sass/libs/_html-grid.scss","../sass/components/_section.scss","../sass/components/_form.scss","../sass/libs/_mixins.scss","../sass/components/_box.scss","../sass/components/_icon.scss","../sass/components/_image.scss","../sass/components/_list.scss","../sass/components/_actions.scss","../sass/components/_icons.scss","../sass/components/_contact.scss","../sass/components/_pagination.scss","../sass/components/_table.scss","../sass/components/_button.scss","../sass/components/_mini-posts.scss","../sass/components/_features.scss","../sass/components/_posts.scss","../sass/components/_modals.scss","../sass/layout/_wrapper.scss","../sass/layout/_main.scss","../sass/layout/_sidebar.scss","../sass/layout/_header.scss","../sass/layout/_banner.scss","../sass/layout/_footer.scss","../sass/layout/_menu.scss"],"names":[],"mappings":";AAMQ;AACA;AACA;AAIR;AAAA;AAAA;AAAA;AAAA;ACHC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAWC;EACA;EACA;EACA;EACA;EACA;;;AAGD;AAAA;EAEC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;AAEA;EAEC;EACA;;;AAIF;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;ACpEF;AAGE;EACC;;AAID;EACC;;;AC2MM;EDtMN;IACC;;;AAMF;EACC;;;AAGD;EACC;;;AAGF;EACC;;AAKE;EE8TO;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;;ACtWX;AAEC;EACC;EACA;EACA;EACA;EACA;;AFkNO;EEvNR;IAQE;;;AF+MM;EEvNR;IAYE;;;AF2MM;EEvNR;IAgBE;;;;AAIF;EDgVU;EAAA;EAAA;EAAA;EC3UT;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;;AAKH;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;;;AAIF;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AF8HO;EE1HP;IACC;;;AFyHM;EEpHP;IACC;;;AFmHM;EE9GP;IACC;IACA;;EAGD;IACC;;;AAIF;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;;AAEA;EACC;;;AAIF;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAkBD;EATC,WAU+B;EAT/B;EACA;EACA;EACA;EACA;;;AASD;EAdC,WAe+B;EAd/B;EACA;EACA;EACA;EACA;;;AAaD;EAlBC,WAmB+B;EAlB/B;EACA;EACA;EACA;EACA;;;AAiBD;EAtBC,WAuB+B;EAtB/B;EACA;EACA;EACA;EACA;;;AAwBD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;;;ACtOF;AAEC;ECkCE;EACA;EACA;EACA;;AAGC;EACC;;AAMC;EACC;;AAMH;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAiBC;EACC;;AAKA;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AALD;EACC;;AAGD;EACC;;AAcA;EACC;EACA;;AAEA;EACC;;AAIA;EACC;;AAEA;EACC;;AAbJ;EACC;EACA;;AAEA;EACC;;AAIA;EACC;;AAEA;EACC;;AAbJ;EACC;EACA;;AAEA;EACC;;AAIA;EACC;;AAEA;EACC;;AAbJ;EACC;EACA;;AAEA;EACC;;AAIA;EACC;;AAEA;EACC;;AAbJ;EACC;EACA;;AAEA;EACC;;AAIA;EACC;;AAEA;EACC;;AAbJ;EACC;EACA;;AAEA;EACC;;AAIA;EACC;;AAEA;EACC;;AJgFH;EGlNR;ICkCE;IACA;IACA;IACA;;EAGC;IACC;;EAMC;IACC;;EAMH;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAiBC;IACC;;EAKA;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EAcA;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;;AJgFH;EGlNR;ICkCE;IACA;IACA;IACA;;EAGC;IACC;;EAMC;IACC;;EAMH;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAiBC;IACC;;EAKA;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EAcA;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;;AJgFH;EGlNR;ICkCE;IACA;IACA;IACA;;EAGC;IACC;;EAMC;IACC;;EAMH;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAiBC;IACC;;EAKA;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EAcA;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;;AJgFH;EGlNR;ICkCE;IACA;IACA;IACA;;EAGC;IACC;;EAMC;IACC;;EAMH;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAiBC;IACC;;EAKA;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EAcA;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;;AJgFH;EGlNR;ICkCE;IACA;IACA;IACA;;EAGC;IACC;;EAMC;IACC;;EAMH;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAiBC;IACC;;EAKA;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EALD;IACC;;EAGD;IACC;;EAcA;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;EAbJ;IACC;IACA;;EAEA;IACC;;EAIA;IACC;;EAEA;IACC;;;;ACpIZ;AAGE;EACC;;;AAKD;EACC;EACA;EACA;EACA;EACA;EACA;;AAIA;EACC;EACA;EACA;EACC;;AAKF;EACC;;;AC7BJ;AAEC;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ELmVU;EAAA;EAAA;EAAA;EK1UT;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;EACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAIA;EACC;;AAIF;EACC;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOC;;;AAGD;EACC;;;AAGD;AAAA;EL8QU;EAAA;EAAA;EAAA;EK3QT;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EC7FD;ED+FE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ACpGF;AAAA;EAMC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAMC;EACA;;ADkFA;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKD;AAAA;EACC;EACA;EACA;EACA;;AAKD;AAAA;EACC;EACA;;;AAOD;EACC;;;AAOD;EACC;;;AAKH;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AE3KF;AAEC;EACC;EACA;EACA;EACA;;AAEA;AAAA;AAAA;EAGC;;AAGD;EACC;EACA;EACA;;;ACjBH;AAEC;EFFA;EEIC;EACA;;AFHD;EAMC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAUC;EACA;;AEnBD;EACC;;AAGD;EACC;;AAIA;EACC;;AAKD;EACC;;;ACvBJ;AAEC;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;EAEC;;AAEA;EACC;;AAIF;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAEA;EACC;;AAIF;EACC;EACA;EACA;;AAEA;EACC;;;AAKH;EACC;;AAEA;ETuSS;EAAA;EAAA;EAAA;;ASlSR;ETkSQ;EAAA;EAAA;EAAA;;;AUjWX;AAEC;EACC;EACA;EACA;;AAEA;EACC;;;AAIF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;AAEA;EACC;EACA;;AAEA;EACC;EACA;;;AAMJ;EACC;;AAEA;EACC;EACA;EACA;;AAGD;EACC;;;AC/CH;AAEC;EXsWU;EAAA;EAAA;EAAA;EWpWT;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;EXmVS;EAAA;EAAA;EAAA;EWjVR;EACA;;AAGC;EACC;;AAKH;EXuUS;EAAA;EAAA;EAAA;EWrUR;;AAEA;EACC;;AAEA;EACC;;AAKH;EACC;;AAEA;EXuTQ;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EWpTP;;AAEA;EACC;;AAIF;EACC;;;ACrDJ;AAEC;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAEA;EACC;;;ACnBL;AAEC;EACC;EACA;;AAEA;EPND;EOQE;EACA;EACA;EACA;;APTF;EAMC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAUC;EACA;;AObA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAEA;EACC;;AAIF;EACC;;;ACrCJ;AAEC;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAEA;EdqVQ;EAAA;EAAA;EAAA;EchVP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAKH;EACC;;AAGD;EACC;;AfoKK;Ee9JL;IACC;;EAGD;IACC;;;;AC3DL;AAEC;EACC;EACA;;;AAGD;EACC;EACA;;AAGC;EACC;EACA;EACA;;AAEA;EACC;;AAKH;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAIE;EACC;EACA;EACA;;AAEA;EACC;;AAKD;EACC;;AAMJ;EACC;;AAGD;EACC;;;ACvEJ;AAEC;AAAA;AAAA;AAAA;AAAA;EhB+VU;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EgBrVT;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;EACC;;AAIA;AAAA;AAAA;AAAA;AAAA;EACC;;AAIF;AAAA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;EACC;EACA;EACA;;AAGD;AAAA;AAAA;AAAA;AAAA;EACC;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;EACC;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EhBqSQ;EgBlSP;;;AC5EH;AAGE;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;EACA;;;ACrBJ;AAEC;ElBsWU;EAAA;EAAA;EAAA;EAPA;EAAA;EAAA;EAAA;EkB1VT;EACA;;AAEA;ElBuVS;EAAA;EAAA;EAAA;EAOA;EAAA;EAAA;EAAA;EkB3VR;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EAEC;;AAGD;ElBmUQ;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EkBhUP;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;AAGD;ElBkTO;EAAA;EAAA;EAAA;EkBhTN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;ElBmSQ;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EkBhSP;;AAEA;EACC;;AnBgJI;EmBlNR;IAwEE;IACA;;EAEA;IACC;IACA;;EAEA;IACC;;EAGD;IACC;;EAGD;IAEC,eAxFM;;EA2FP;IACC;;EAGD;IACC;IACA;IACA;;EAEA;IACC;;EAGD;IACC;IACA;IACA;;;AnBsGG;EmB/FN;IlB4OQ;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;;EkBxOP;IACC;IACA;IACA;IACA;;EAEA;IACC;;EAGD;IACC;IACA;IACA;;;AnB8EG;EmBrEJ;IACC;;;;AChJN;AAEC;EnBsWU;EAAA;EAAA;EAAA;EAPA;EAAA;EAAA;EAAA;EmB1VT;EACA;;AAEA;EnBuVS;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EmBpVR;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;EACC;EACA;;AAEA;EACC;EACA;;ApBmKI;EoB3JJ;IACC;;EAGD;IACC;;EAIF;IAGC;;EAEA;IACC;;EAGD;IACC;;;ApBwIG;EoBjIN;IACC;;EAEA;IACC,eApFM;;;ApBiNF;EoBrHJ;IACC;;EAGD;IACC;;EAIF;IAEC;;EAEA;IACC;;EAGD;IACC;;;ApBmGG;EoBlNR;IAwHE;IACA;;EAEA;IACC;IACA;;EAEA;IACC;IACA;;EAGD;IACC;IACA;;EAGD;IACC,eApBO;;;ApB4FH;EoBlNR;IAkJE;IACA;;EAEA;IACC;IACA;;EAEA;IACC;;EAGD;IACC;;EAGD;IACC;;EAEA;IACC;;;;ACpKN;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA,OAVa;EAWb;EACA;EACA;;AAEA;AAAA;EACE;EACA;;;AAKJ;EACE;;;AAGF;EACE;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA,YA1CS;EA2CT;EACA;EACA;EACA;EACA,SA7Cc;;;AAiDhB;EACE,kBAjDiB;EAkDjB;EACA;EACA,YAnDqB;EAoDrB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AACA;EACE;;AAKN;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAKJ;EACE;EACA;EACA;EAEA;EACA;;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;;AAKJ;EACE;EACA;;;AAIF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AC5KF;AAEC;ErBsWU;EAAA;EAAA;EAAA;EAPA;EAAA;EAAA;EAAA;EqB5VT;;;ACLF;AAEC;EtB+VU;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EsB5VT;;AAEA;EhB2CD;EgBzCE;EACA;;AAEA;EhBsCF;EgBpCG;;AAEA;EACE;;AvBmMG;EuB7LN;IhB2BF;;EgBxBG;IhBwBH;;;APkKQ;EuBnLN;IhBiBF;;EgBdG;IhBcH;;;APkKQ;EuBzKN;IhBOF;;EgBJG;IhBIH;;;;AiBlDD;AAGE;EjBHD;EiBKE;;AjBHF;EAMC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAMC;EACA;;AiBfA;EvB0VQ;EAAA;EAAA;EAAA;EuBxVP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;;AAKH;EvBmUU;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EuB1TT;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EjBED;EiBAE;EACA;;AAEA;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;;AAIF;EACC;EACA;EACA;EACA,SA1CI;EA2CJ;;AAIF;EjB9ED;ENiWU;EAAA;EAAA;EAAA;EuBhRR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AjB7FF;EAMC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAMC;EACA;;AiB2EA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EACC;;AxBqGM;EwBtLR;IAuFE;;EAEA;IjBrEF;IiBuEG;;EAEA;IACC;IACA,SAVI;IAWJ;;EAIF;IACC;IACA;IACA;IACA;IACA;;EAEA;IACC;;EAIF;IACC;;;AxBqEK;EwBtLR;IAsHE;IACA;IACA;IACA;IACA;IACA;;EAEA;IACC;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IACC;IACA;IACA;IACA;;EAIF;IACC;IACA;;EAEA;IACC;IACA;;EAIF;IACC;;;AxByBK;EwBpBN;IACC;IACA;;EAEA;IACC;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;;ACpNL;AAEC;ExBsWU;EAAA;EAAA;EAAA;EwBpWT;EACA;EACA;;AAEA;ExByVS;EAAA;EAAA;EAAA;EwBvVR;;AAGD;EACC;EACA;EACA;EACA;;AAGD;EACC;;AzB+LM;EyBlNR;IAuBE;;;AzB2LM;EyBlNR;IA2BE;;EAEA;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;;;;ACzCJ;AAEC;EnBgDA;ENsTU;EAAA;EAAA;EAAA;;AyBlWT;EACC;;AAGD;EzBuVS;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EyBpVR;;AAGD;EzBiVS;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EyB9UR;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;A1BpBF;E0BXD;IzB+VU;IAAA;IAAA;IAAA;;EyBxTP;IACC;;EAIF;IzBmTQ;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IyBhTP;;EAGD;IzB6SQ;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IyB1SP;IACA;IACA;IACA;IACA;;;A1ByJK;E0BrJL;IACC;;;;AChEL;AAGE;EACC;EACA;;AAEA;EACC;;;AAKH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;EACA;;;ACzBH;AAGE;E3B8VS;EAAA;EAAA;EAAA;E2B5VR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;E3BuUO;EAAA;EAAA;EAAA;EMjWV;EqB6BI;EACA;;ArB5BJ;EAMC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAMC;EACA;;AqBUE;E3BiUM;EAAA;EAAA;EAAA;E2B5TL;EACA;EACA;EACA;;AAIA;EACC;;AAKD;EACC;;AAGD;E3B2SK;EAAA;EAAA;EAAA;;A2BlSR;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;AAIF;EACC;EACA;EACA","file":"main.css"}
\ No newline at end of file
diff --git a/templates/index.html b/templates/index.html
index e6ecffe..7f85372 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -11,6 +11,7 @@
+