Danilo Gómez Gómez пре 4 година
родитељ
комит
a8f85d1742

+ 16 - 4
deploy.sh

@@ -1,5 +1,17 @@
 #!/bin/bash
-python3 sitegen.py || { echo 'fail_generating_the_site'; exit 1; }
-sudo rm -r /var/www/alucho || { echo 'fail_deleting_target_folder'; exit 2; }
-sudo cp -r build /var/www/alucho || { echo 'fail_copying_site'; exit 3; }
-sudo service caddy restart || { echo 'fail_restarting_caddy'; exit 4; }
+python3 sitegen.py || {
+    echo 'fail_generating_the_site'
+    exit 1
+}
+sudo rm -r /var/www/alucho || {
+    echo 'fail_deleting_target_folder'
+    exit 2
+}
+sudo cp -r build /var/www/alucho || {
+    echo 'fail_copying_site'
+    exit 3
+}
+sudo service caddy restart || {
+    echo 'fail_restarting_caddy'
+    exit 4
+}

+ 65 - 31
layout/_base.html

@@ -1,12 +1,13 @@
 <!DOCTYPE html>
 <html lang="en">
+
 <head>
 	<title>{{ 'Alucho Portfolio' | lang }}</title>
 	<!-- Global site tag (gtag.js) - Google Analytics -->
 	<script async src="https://www.googletagmanager.com/gtag/js?id=UA-148161067-1"></script>
 	<script>
 		window.dataLayer = window.dataLayer || [];
-		function gtag(){dataLayer.push(arguments);}
+		function gtag() { dataLayer.push(arguments); }
 		gtag('js', new Date());
 		gtag('config', 'UA-148161067-1');
 	</script>
@@ -25,6 +26,7 @@
 	<meta name="theme-color" content="#ffffff">
 	<script src="{{ 'js/eye.js' | static }}"></script>
 </head>
+
 <body id="body">
 	<header id="mobile-header">
 		<input id="toggle" type="checkbox">
@@ -33,17 +35,30 @@
 		</label>
 		<nav class="nav">
 			<div class="itemize">
-				<a class="nav-item" href="{{ '/work' | cur_lang }}" {% if work_selected %}class="selected"{% endif %}><h1>{{ 'work' | lang }}</h1></a>
+				<a class="nav-item" href="{{ '/work' | cur_lang }}" {% if work_selected %}class="selected" {% endif %}>
+					<h1>{{ 'work' | lang }}</h1>
+				</a>
 				<div class="itemize">
-					<a class="nav-subitem" href="{{ '/work/all' | cur_lang }}" {% if all_selected %}class="selected"{% endif %}>{{ 'all' | lang }}</a>
-					<a class="nav-subitem" href="{{ '/work/poster' | cur_lang }}" {% if poster_selected %}class="selected"{% endif %}>{{ 'poster' | lang }}</a>
-					<a class="nav-subitem" href="{{ '/work/illustration' | cur_lang }}" {% if illustration_selected %}class="selected"{% endif %}>{{ 'illustration' | lang }}</a>
-					<a class="nav-subitem" href="{{ '/work/editorial' | cur_lang }}" {% if editorial_selected %}class="selected"{% endif %}>{{ 'editorial' | lang }}</a>
-					<a class="nav-subitem" href="{{ '/work/branding' | cur_lang }}" {% if branding_selected %}class="selected"{% endif %}>{{ 'branding' | lang }}</a>
-					<a class="nav-subitem" href="{{ '/work/other' | cur_lang }}" class="last{% if other_selected %} selected{% endif %}">{{ 'other' | lang }}</a>
+					<a class="nav-subitem" href="{{ '/work/all' | cur_lang }}" {% if all_selected %}class="selected"
+						{% endif %}>{{ 'all' | lang }}</a>
+					<a class="nav-subitem" href="{{ '/work/poster' | cur_lang }}"
+						{% if poster_selected %}class="selected" {% endif %}>{{ 'poster' | lang }}</a>
+					<a class="nav-subitem" href="{{ '/work/illustration' | cur_lang }}"
+						{% if illustration_selected %}class="selected" {% endif %}>{{ 'illustration' | lang }}</a>
+					<a class="nav-subitem" href="{{ '/work/editorial' | cur_lang }}"
+						{% if editorial_selected %}class="selected" {% endif %}>{{ 'editorial' | lang }}</a>
+					<a class="nav-subitem" href="{{ '/work/branding' | cur_lang }}"
+						{% if branding_selected %}class="selected" {% endif %}>{{ 'branding' | lang }}</a>
+					<a class="nav-subitem" href="{{ '/work/other' | cur_lang }}"
+						class="last{% if other_selected %} selected{% endif %}">{{ 'other' | lang }}</a>
 				</div>
-				<a class="nav-item" href="{{ '/news' | cur_lang }}" {% if news_selected %}class="selected"{% endif %}><h1>{{ 'news' | lang }}</h1></a>
-				<a class="nav-item" href="{{ '/about-and-contact' | cur_lang }}" class="last{% if about_selected %} selected{% endif %}"><h1>{{ 'about & contact' | lang }}</h1></a>
+				<a class="nav-item" href="{{ '/news' | cur_lang }}" {% if news_selected %}class="selected" {% endif %}>
+					<h1>{{ 'news' | lang }}</h1>
+				</a>
+				<a class="nav-item" href="{{ '/about-and-contact' | cur_lang }}"
+					class="last{% if about_selected %} selected{% endif %}">
+					<h1>{{ 'about & contact' | lang }}</h1>
+				</a>
 			</div>
 		</nav>
 	</header>
@@ -51,35 +66,52 @@
 		<div class="header-box">
 			<div class="lbox">
 				<div id="lang-chooser" class="vbox">
-					<a class="first en {% if lang == 'en' %}selected{% endif %}" hreflang="en" href="{{ 'en' | lang_url }}">en</a>
-					<a class="first {% if lang == 'es' %}selected{% endif %}" hreflang="es" href="{{ 'es' | lang_url }}">es</a>
+					<a class="first en {% if lang == 'en' %}selected{% endif %}" hreflang="en"
+						href="{{ 'en' | lang_url }}">en</a>
+					<a class="first {% if lang == 'es' %}selected{% endif %}" hreflang="es"
+						href="{{ 'es' | lang_url }}">es</a>
 				</div>
 				<div id="logo">{{ 'alucho-logo' | svg }}</div>
 				<div class="vbox">
-					<div id="alucho-title" class="hbox"><h1 class="header-title"><a>Alejandro Rodríguez</a></h1></div>
+					<div id="alucho-title" class="hbox">
+						<h1 class="header-title"><a>Alejandro Rodríguez</a></h1>
+					</div>
 					<div id="designer-subtitle" class="hbox"><a>{{ 'graphic designer' | lang }}</a></div>
 				</div>
 			</div>
 			<nav class="rbox">
-					<div class="vbox">
-						<div class="hbox">
-							<h1 class="header-title">
-								<div><a href="{{ '/work' | cur_lang }}" {% if work_selected %}class="selected"{% endif %}>{{ 'work' | lang }}</a></div> /
-								<div><a href="{{ '/news' | cur_lang }}" {% if news_selected %}class="selected"{% endif %}>{{ 'news' | lang }}</a></div> /
-								<div><a href="{{ '/about-and-contact' | cur_lang }}" class="last{% if about_selected %} selected{% endif %}">{{ 'about & contact' | lang }}</a></div>
-							</h1>
-						</div>
-						<div class="hbox">
-							<div class="header-subtitle">
-								<div><a href="{{ '/work/all' | cur_lang }}" {% if all_selected %}class="selected"{% endif %}>{{ 'all' | lang }}</a></div> /
-								<div><a href="{{ '/work/poster' | cur_lang }}" {% if poster_selected %}class="selected"{% endif %}>{{ 'poster' | lang }}</a></div> /
-								<div><a href="{{ '/work/illustration' | cur_lang }}" {% if illustration_selected %}class="selected"{% endif %}>{{ 'illustration' | lang }}</a></div> /
-								<div><a href="{{ '/work/editorial' | cur_lang }}" {% if editorial_selected %}class="selected"{% endif %}>{{ 'editorial' | lang }}</a></div> /
-								<div><a href="{{ '/work/branding' | cur_lang }}" {% if branding_selected %}class="selected"{% endif %}>{{ 'branding' | lang }}</a></div> /
-								<div><a href="{{ '/work/other' | cur_lang }}" class="last{% if other_selected %} selected{% endif %}">{{ 'other' | lang }}</a></div>
+				<div class="vbox">
+					<div class="hbox">
+						<h1 class="header-title">
+							<div><a href="{{ '/work' | cur_lang }}" {% if work_selected %}class="selected"
+									{% endif %}>{{ 'work' | lang }}</a></div> /
+							<div><a href="{{ '/news' | cur_lang }}" {% if news_selected %}class="selected"
+									{% endif %}>{{ 'news' | lang }}</a></div> /
+							<div><a href="{{ '/about-and-contact' | cur_lang }}"
+									class="last{% if about_selected %} selected{% endif %}">{{ 'about & contact' | lang }}</a>
+							</div>
+						</h1>
+					</div>
+					<div class="hbox">
+						<div class="header-subtitle">
+							<div><a href="{{ '/work/all' | cur_lang }}" {% if all_selected %}class="selected"
+									{% endif %}>{{ 'all' | lang }}</a></div> /
+							<div><a href="{{ '/work/poster' | cur_lang }}" {% if poster_selected %}class="selected"
+									{% endif %}>{{ 'poster' | lang }}</a></div> /
+							<div><a href="{{ '/work/illustration' | cur_lang }}"
+									{% if illustration_selected %}class="selected"
+									{% endif %}>{{ 'illustration' | lang }}</a></div> /
+							<div><a href="{{ '/work/editorial' | cur_lang }}"
+									{% if editorial_selected %}class="selected" {% endif %}>{{ 'editorial' | lang }}</a>
+							</div> /
+							<div><a href="{{ '/work/branding' | cur_lang }}" {% if branding_selected %}class="selected"
+									{% endif %}>{{ 'branding' | lang }}</a></div> /
+							<div><a href="{{ '/work/other' | cur_lang }}"
+									class="last{% if other_selected %} selected{% endif %}">{{ 'other' | lang }}</a>
 							</div>
 						</div>
 					</div>
+				</div>
 			</nav>
 		</div>
 	</header>
@@ -94,7 +126,8 @@
 			</div>
 			<div class="hbox social">
 				<a href="https://www.facebook.com/aluchocartel/">{{ 'facebook' | svg }}</a>
-				<a href="https://www.linkedin.com/in/alejandro-rodr%C3%ADguez-forn%C3%A9s-alucho-541700122/">{{ 'linkedin' | svg }}</a>
+				<a
+					href="https://www.linkedin.com/in/alejandro-rodr%C3%ADguez-forn%C3%A9s-alucho-541700122/">{{ 'linkedin' | svg }}</a>
 			</div>
 		</div>
 	</footer>
@@ -114,4 +147,5 @@
 	<script src="{{ 'js/image-modal.js' | static }}"></script>
 	<link rel="stylesheet" href="{{ 'css/image-modal.css' | static }}">
 </body>
-</html>
+
+</html>

+ 1 - 9
layout/about-and-contact.html

@@ -38,11 +38,11 @@
 		flex-direction: row;
 		align-items: flex-start;
 	}
+
 	address {
 		font-style: inherit;
 	}
 </style>
-
 <div class="vbox">
 	<section>
 		<figure class="banner">
@@ -151,12 +151,4 @@
 		</div>
 	</div>
 </div>
-<!-- <figure> -->
-<!-- <img src="/static/image/about-and-contact/banner.jpg" alt="Alucho Rodríguez Photo" width="100%" height="100%"> -->
-<!-- <svg width="3px" height="1px" style="background-color: gray"></svg> -->
-<!-- </figure> -->
-
-<!-- <address> -->
-<!-- contact information HERE -->
-<!-- </address> -->
 {% endblock %}

+ 1 - 1
layout/index.html

@@ -1 +1 @@
-{% extends "work.html"%}
+{% extends "work.html"%}

+ 10 - 10
layout/news.html

@@ -9,14 +9,14 @@
 	}
 </style>
 {% for _ in range(15) %}
-	<figure>
-		<svg width="16px" height="9px" style="background-color: gray"></svg>
-		<figcaption class="hbox">
-			<div class="caption">
-				<h1>News Title Here / Date</h1>
-				news
-			</div>
-		</figcaption>
-	</figure>
+<figure>
+	<svg width="16px" height="9px" style="background-color: gray"></svg>
+	<figcaption class="hbox">
+		<div class="caption">
+			<h1>News Title Here / Date</h1>
+			news
+		</div>
+	</figcaption>
+</figure>
 {% endfor %}
-{% endblock %}
+{% endblock %}

+ 13 - 12
layout/work.html

@@ -9,19 +9,20 @@
 
 {% block main %}
 {% for image in (sorted(images(path), reverse=True) if sort_images else images(path)) %}
-	<figure class="{{ 'clickable-fig' if expand_dialog else ''}}">
-		<img class="tile" src="{{ (image.main or image.filenames[0]) | static }}" loading="lazy" alt="{{ image.category }}: {{ image.name }} ({{ image.year }})">
-		<figcaption class="hbox">
-			<div class="caption">
-				<h1>{{ image.name }} / <time>{{ image.year }}</time></h1>
-				{{ image.category | lang }}
-			</div>
-		</figcaption>
-		<datalist>
+<figure class="{{ 'clickable-fig' if expand_dialog else ''}}">
+	<img class="tile" src="{{ (image.main or image.filenames[0]) | static }}" loading="lazy"
+		alt="{{ image.category }}: {{ image.name }} ({{ image.year }})">
+	<figcaption class="hbox">
+		<div class="caption">
+			<h1>{{ image.name }} / <time>{{ image.year }}</time></h1>
+			{{ image.category | lang }}
+		</div>
+	</figcaption>
+	<datalist>
 		{% for variant in image.filenames %}
-			<option value="{{ variant | static }}" label="{{ image.category }}: {{ image.name }} ({{ image.year }})"/>
+		<option value="{{ variant | static }}" label="{{ image.category }}: {{ image.name }} ({{ image.year }})" />
 		{% endfor %}
-		</datalist>
-	</figure>
+	</datalist>
+</figure>
 {% endfor %}
 {% endblock %}

+ 1 - 1
layout/work/all.html

@@ -1 +1 @@
-{% extends "work.html" %}
+{% extends "work.html" %}

+ 1 - 1
layout/work/editorial.html

@@ -3,4 +3,4 @@
 {% set editorial_selected = True %}
 {% set work_path = "editorial" %}
 {% set expand_dialog = True %}
-{% set sort_images = True %}
+{% set sort_images = True %}

+ 1 - 1
layout/work/other.html

@@ -3,4 +3,4 @@
 {% set editorial_selected = True %}
 {% set work_path = "other" %}
 {% set expand_dialog = True %}
-{% set sort_images = True %}
+{% set sort_images = True %}

+ 1 - 1
layout/work/poster.html

@@ -3,4 +3,4 @@
 {% set poster_selected = True %}
 {% set work_path = "poster" %}
 {% set expand_dialog = True %}
-{% set sort_images = True %}
+{% set sort_images = True %}

+ 6 - 3
plugins/alucho_images.py

@@ -30,13 +30,15 @@ Along with the image files which should be called
 
 '''
 
-IMAGE_PATH = 'image' # relative to the static path
+IMAGE_PATH = 'image'  # relative to the static path
 STATIC = ''
 
-Image = namedtuple('Image', ['key', 'name', 'year', 'category', 'description', 'main', 'filenames'])
+Image = namedtuple('Image', ['key', 'name', 'year',
+                             'category', 'description', 'main', 'filenames'])
 
 # Functions
 
+
 def images(section):
     sec_path = Path(STATIC, IMAGE_PATH, section)
     for path in sec_path.iterdir():
@@ -55,7 +57,8 @@ def images(section):
                 metadata.get('year'),
                 metadata.get('category'),
                 metadata.get('description'),
-                img_base.joinpath(normalize('NFC', metadata.get('main'))) if 'main' in metadata else None,
+                img_base.joinpath(normalize('NFC', metadata.get(
+                    'main'))) if 'main' in metadata else None,
                 [img_base.joinpath(normalize('NFC', img_name)) for img_name in metadata.get('images', [])])
             yield img
 

+ 3 - 3
root/browserconfig.xml

@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8" ?>
 <browserconfig>
     <msapplication>
         <tile>
-            <square150x150logo src="/mstile-150x150.png"/>
+            <square150x150logo src="/mstile-150x150.png" />
             <TileColor>#da532c</TileColor>
         </tile>
     </msapplication>
-</browserconfig>
+</browserconfig>

+ 1 - 1
root/site.webmanifest

@@ -16,4 +16,4 @@
     "theme_color": "#ffffff",
     "background_color": "#ffffff",
     "display": "standalone"
-}
+}

+ 22 - 5
sitegen.py

@@ -11,7 +11,7 @@ from traceback import print_exc
 from urllib.parse import quote
 import os
 
-#TODO: load from config file (and watch it too)
+# TODO: load from config file (and watch it too)
 LANGUAGES = 'languages'
 PLUGINS = 'plugins'
 ROOT = 'root'
@@ -19,7 +19,7 @@ STATIC = 'static'
 STATIC_URL = '/static'
 DEFAULT_LANG = 'en'
 OTHER_LANGS = set(['es'])
-WATCH_INTERVAL = 1 # in secs
+WATCH_INTERVAL = 1  # in secs
 
 config = {
     'LANGUAGES': LANGUAGES,
@@ -35,6 +35,7 @@ config = {
 
 ignore_underscores = ignore_patterns('_*')
 
+
 def copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2,
              ignore_dangling_symlinks=False):
     """Recursively copy a directory tree.
@@ -125,15 +126,18 @@ def copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2,
         raise Error(errors)
     return dst
 
+
 def mtimes(target_dir):
     ''''get modification time of files in `target_dir`'''
-    return { f: f.stat().st_mtime for f in Path(target_dir).rglob('*') }
+    return {f: f.stat().st_mtime for f in Path(target_dir).rglob('*')}
+
 
 def save_dic(lang, dic):
     with open(join(LANGUAGES, lang + '.txt'), 'w') as f:
         for key, value in dic.items():
             f.write(f"{key}:{value}\n")
 
+
 @lru_cache(None)
 def get_lang_dic(lang):
     makedirs(LANGUAGES, exist_ok=True)
@@ -152,6 +156,7 @@ def get_lang_dic(lang):
 
 # Filters
 
+
 def add_lang_prefix(lang, path):
     if lang == DEFAULT_LANG:
         return path
@@ -161,6 +166,7 @@ def add_lang_prefix(lang, path):
 
     return f"/{lang}{path}"
 
+
 @contextfilter
 def lang(ctx, value):
     lang = ctx.environment.globals['lang']
@@ -179,6 +185,7 @@ def lang(ctx, value):
             print(f"Not translated phrase: `{value}`")
             return value
 
+
 @contextfilter
 def lang_url(ctx, lang):
     name, _ = splitext(ctx.name)
@@ -190,27 +197,32 @@ def lang_url(ctx, lang):
 
     return add_lang_prefix(lang, f"/{name}")
 
+
 @contextfilter
 def cur_lang(ctx, path):
     lang = ctx.environment.globals['lang']
     return add_lang_prefix(lang, path)
 
+
 def static(value):
     parts = value.parts if isinstance(value, Path) else value.split('/')
     sub_path = '/'.join(map(lambda s: quote(s), parts))
     return f"{STATIC_URL}/{sub_path}"
 
+
 def svg(resource):
     with Path(STATIC, 'svg', f'{resource}.svg').open() as f:
         f.readline()
         f.readline()
         return f.read()
 
+
 def inline(file_name):
     return Path(file_name).read_text()
 
 # Compiler
 
+
 def compile(env, path, target):
     lang = env.globals['lang']
 
@@ -222,8 +234,6 @@ def compile(env, path, target):
                 # Ignore this files
                 continue
 
-            src = join(base, doc)
-
             if args.with_index and doc != 'index.html':
                 name, _ = splitext(doc)
                 dst = join(cur_base, name, 'index.html')
@@ -244,6 +254,7 @@ def compile(env, path, target):
             with open(dst, 'w') as f:
                 f.write(output)
 
+
 def init_gen(args):
     # Load layout
     file_loader = FileSystemLoader(args.source)
@@ -273,6 +284,7 @@ def init_gen(args):
         rmtree(args.target)
     makedirs(args.target, exist_ok=True)
 
+
 def gen_layout(args):
     env = args.env
     path = Path(args.source)
@@ -286,12 +298,15 @@ def gen_layout(args):
         env.globals['lang'] = other_lang
         compile(env, path, args.target)
 
+
 def gen_root(args):
     copytree(ROOT, args.target, ignore=ignore_underscores)
 
+
 def gen_static(args):
     copytree(STATIC, join(args.target, 'static'), ignore=ignore_underscores)
 
+
 def save_generate(generator, args, msg):
     print(f'* {msg}')
     try:
@@ -304,6 +319,7 @@ def save_generate(generator, args, msg):
 
 # Runtime
 
+
 def run(args):
     print('initial compilation')
     init_gen(args)
@@ -342,6 +358,7 @@ def run(args):
             save_generate(gen_static, args, 'copying static files')
             save_generate(gen_layout, args, 'recompiling layout')
 
+
 if __name__ == '__main__':
     parser = argparse.ArgumentParser("Site generator")
 

+ 73 - 73
static/css/hamburger.css

@@ -1,65 +1,66 @@
-:root{
+:root {
 	--hamburger-size: 20px;
 	--hamburger-padding: 10px;
 	--hamburger-margin: 10px;
 	--hamburger-bgcolor: rgba(0, 0, 0, .1);
 }
+
 /* Basic styles */
+
 #mobile-header {
 	display: -webkit-box;
 	display: -ms-flexbox;
 	display: flex;
 	-webkit-box-align: start;
-	    -ms-flex-align: start;
-	        align-items: flex-start;
+	-ms-flex-align: start;
+	align-items: flex-start;
 	-webkit-box-orient: horizontal;
 	-webkit-box-direction: reverse;
-	    -ms-flex-direction: row-reverse;
-	        flex-direction: row-reverse;
+	-ms-flex-direction: row-reverse;
+	flex-direction: row-reverse;
 	right: 0;
 	position: relative;
 	margin: var(--tile-margin) var(--tile-margin) 0 var(--tile-margin);
 }
 
 /* Toggle functionality */
+
 #toggle {
 	position: absolute;
 	left: -100%;
 	top: -100%;
 }
-#toggle:focus ~ .toggle-container .button-toggle,
-#toggle:checked ~ .toggle-container .button-toggle {
+
+#toggle:focus~.toggle-container .button-toggle, #toggle:checked~.toggle-container .button-toggle {
 	-webkit-box-shadow: 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor);
-					box-shadow: 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor);
+	box-shadow: 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor);
 }
 
-#toggle:checked ~ .toggle-container .button-toggle:hover,
-#toggle:checked:focus ~ .toggle-container .button-toggle {
+#toggle:checked~.toggle-container .button-toggle:hover, #toggle:checked:focus~.toggle-container .button-toggle {
 	-webkit-box-shadow: 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor);
-					box-shadow: 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor);
+	box-shadow: 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor);
 }
 
-#toggle:checked ~ .toggle-container .button-toggle::before {
+#toggle:checked~.toggle-container .button-toggle::before {
 	-webkit-transform: rotate(45deg) scale(1);
-					transform: rotate(45deg) scale(1);
+	transform: rotate(45deg) scale(1);
 }
 
-#toggle:checked ~ .toggle-container .button-toggle::after {
+#toggle:checked~.toggle-container .button-toggle::after {
 	-webkit-transform: rotate(-45deg) scale(1);
-					transform: rotate(-45deg) scale(1);
+	transform: rotate(-45deg) scale(1);
 }
 
-#toggle:checked ~ .nav {
+#toggle:checked~.nav {
 	margin-top: 0;
 	margin-bottom: calc(var(--hamburger-size) + 2*var(--hamburger-padding) + 3*var(--hamburger-margin));
 	width: 25%;
 	pointer-events: auto;
 	-webkit-transform: translate(calc(var(--hamburger-padding) + var(--hamburger-size)), calc(var(--hamburger-size) + 2*(var(--hamburger-padding) + var(--hamburger-margin))));
-					transform: translate(calc(var(--hamburger-padding) + var(--hamburger-size)), calc(var(--hamburger-size) + 2*(var(--hamburger-padding) + var(--hamburger-margin))));
+	transform: translate(calc(var(--hamburger-padding) + var(--hamburger-size)), calc(var(--hamburger-size) + 2*(var(--hamburger-padding) + var(--hamburger-margin))));
 }
 
-#toggle:checked ~ .nav .nav-item,
-#toggle:checked ~ .nav .nav-subitem {
+#toggle:checked~.nav .nav-item, #toggle:checked~.nav .nav-subitem {
 	font-family: 'akrobat-regular';
 	color: black;
 	width: auto;
@@ -69,43 +70,38 @@
 	margin: 0;
 	opacity: 1;
 	-webkit-transform: scaleY(1);
-					transform: scaleY(1);
+	transform: scaleY(1);
 	-webkit-transition: .5s, opacity .1s;
-					transition: .5s, opacity .1s;
+	transition: .5s, opacity .1s;
 }
 
-#toggle:checked ~ .nav .nav-item:nth-child(1),
-#toggle:checked ~ .nav .nav-item:nth-child(1)::before {
+#toggle:checked~.nav .nav-item:nth-child(1), #toggle:checked~.nav .nav-item:nth-child(1)::before {
 	-webkit-transition-delay: .15s;
-					transition-delay: .15s;
+	transition-delay: .15s;
 }
 
-#toggle:checked ~ .nav .nav-subitem,
-#toggle:checked ~ .nav .nav-subitem::before {
+#toggle:checked~.nav .nav-subitem, #toggle:checked~.nav .nav-subitem::before {
 	-webkit-transition-delay: .01s;
-					transition-delay: .01s;
+	transition-delay: .01s;
 	right: 1em;
 }
 
-
-#toggle:checked ~ .nav .nav-item:nth-child(3),
-#toggle:checked ~ .nav .nav-item:nth-child(3)::before {
+#toggle:checked~.nav .nav-item:nth-child(3), #toggle:checked~.nav .nav-item:nth-child(3)::before {
 	-webkit-transition-delay: .05s;
-					transition-delay: .05s;
+	transition-delay: .05s;
 }
 
-#toggle:checked ~ .nav .nav-item:nth-child(4),
-#toggle:checked ~ .nav .nav-item:nth-child(4)::before {
+#toggle:checked~.nav .nav-item:nth-child(4), #toggle:checked~.nav .nav-item:nth-child(4)::before {
 	-webkit-transition-delay: 0s;
-					transition-delay: 0s;
+	transition-delay: 0s;
 }
 
-#toggle:checked ~ .nav .nav-item::before,
-#toggle:checked ~ .nav .nav-subitem::before {
+#toggle:checked~.nav .nav-item::before, #toggle:checked~.nav .nav-subitem::before {
 	opacity: 0;
 }
 
 /* Toggle button */
+
 .button-toggle {
 	position: relative;
 	display: inline-block;
@@ -113,15 +109,17 @@
 	width: var(--hamburger-size);
 	height: var(--hamburger-size);
 	margin: calc(var(--hamburger-margin) + var(--hamburger-padding)) var(--hamburger-padding);
-	-webkit-box-shadow: 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor);	
-					box-shadow: 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor);	
+	-webkit-box-shadow: 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor);
+	box-shadow: 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor);
 	border: none;
 	cursor: pointer;
 	border-radius: 100%;
 	-webkit-transition: .6s;
-					transition: .6s;
+	transition: .6s;
 }
+
 /* button X container (toggled) */
+
 .button-toggle::before, .button-toggle::after {
 	position: absolute;
 	content: '';
@@ -133,57 +131,64 @@
 	background-color: black;
 	border-radius: 5px;
 	-webkit-transition: .5s;
-					transition: .5s;
+	transition: .5s;
 }
+
 /* button \ container  */
+
 .button-toggle::before {
 	-webkit-transform: rotate(45deg) scale(0);
-					transform: rotate(45deg) scale(0);
+	transform: rotate(45deg) scale(0);
 }
+
 /* button / container  */
+
 .button-toggle::after {
 	-webkit-transform: rotate(-45deg) scale(0);
-					transform: rotate(-45deg) scale(0);
+	transform: rotate(-45deg) scale(0);
 }
 
 /* Menu */
+
 .nav {
 	display: block;
 	-webkit-transform: translateX(calc(var(--hamburger-size) + var(--hamburger-padding)));
-	        transform: translateX(calc(var(--hamburger-size) + var(--hamburger-padding)));
+	transform: translateX(calc(var(--hamburger-size) + var(--hamburger-padding)));
 	margin: calc(var(--hamburger-margin) + var(--hamburger-padding)) 0;
 	width: var(--hamburger-size);
 	pointer-events: none;
 	-webkit-transition: .5s;
-					transition: .5s;
+	transition: .5s;
 }
+
 .nav .itemize {
 	display: -webkit-box;
 	display: -ms-flexbox;
 	display: flex;
 	-webkit-box-align: end;
-	    -ms-flex-align: end;
-	        align-items: flex-end;
+	-ms-flex-align: end;
+	align-items: flex-end;
 	-webkit-box-orient: vertical;
 	-webkit-box-direction: normal;
-	    -ms-flex-direction: column;
-	        flex-direction: column;
+	-ms-flex-direction: column;
+	flex-direction: column;
 	padding: 0;
 	margin: 0;
 }
+
 /* menu entries initial state */
-.nav-item,
-.nav-subitem {
+
+.nav-item, .nav-subitem {
 	display: -webkit-box;
 	display: -ms-flexbox;
 	display: flex;
 	-webkit-box-orient: horizontal;
 	-webkit-box-direction: reverse;
-	    -ms-flex-direction: row-reverse;
-	        flex-direction: row-reverse;
+	-ms-flex-direction: row-reverse;
+	flex-direction: row-reverse;
 	-webkit-box-align: end;
-	    -ms-flex-align: end;
-	        align-items: flex-end;
+	-ms-flex-align: end;
+	align-items: flex-end;
 	margin: 0;
 	width: 100%;
 	position: relative;
@@ -193,39 +198,34 @@
 	line-height: 7px;
 	white-space: nowrap;
 	-webkit-transform: scaleY(.2);
-					transform: scaleY(.2);
+	transform: scaleY(.2);
 	-webkit-transition: .5s, opacity .1s;
-					transition: .5s, opacity .1s;
+	transition: .5s, opacity .1s;
 }
 
-.nav-item:nth-child(1),
-.nav-item:nth-child(1)::before {
+.nav-item:nth-child(1), .nav-item:nth-child(1)::before {
 	-webkit-transition-delay: 0s;
-					transition-delay: 0s;
+	transition-delay: 0s;
 }
 
-.nav-subitem,
-.nav-subitem::before {
+.nav-subitem, .nav-subitem::before {
 	opacity: 0;
 	height: 0;
 	-webkit-transition-delay: .05s;
-					transition-delay: .05s;
+	transition-delay: .05s;
 }
 
-.nav-item:nth-child(3),
-.nav-item:nth-child(3)::before {
+.nav-item:nth-child(3), .nav-item:nth-child(3)::before {
 	-webkit-transition-delay: .1s;
-					transition-delay: .1s;
+	transition-delay: .1s;
 }
 
-.nav-item:nth-child(4),
-.nav-item:nth-child(4)::before {
+.nav-item:nth-child(4), .nav-item:nth-child(4)::before {
 	-webkit-transition-delay: .15s;
-					transition-delay: .15s;
+	transition-delay: .15s;
 }
 
-.nav-item::before,
-.nav-subitem::before {
+.nav-item::before, .nav-subitem::before {
 	position: absolute;
 	content: '';
 	top: 50%;
@@ -234,7 +234,7 @@
 	height: 2px;
 	background-color: black;
 	-webkit-transform: scaleY(5);
-					transform: scaleY(5);
+	transform: scaleY(5);
 	-webkit-transition: .5s;
-					transition: .5s;
-}
+	transition: .5s;
+}

+ 16 - 9
static/css/image-modal.css

@@ -7,40 +7,47 @@
 	border: 0;
 	padding: 0;
 }
-#dialog-image-modal::backdrop,
-#dialog-image-modal::-webkit-backdrop {
+
+#dialog-image-modal::backdrop, #dialog-image-modal::-webkit-backdrop {
 	background: #ffffff00;
 }
+
 #modal-image-container {
 	margin-top: var(--header-space);
 }
+
 #modal-image {
 	-o-object-fit: cover;
-		 object-fit: cover;
+	object-fit: cover;
 	height: calc(100vh - var(--header-space) - var(--body-margin) - var(--tile-margin));
 }
+
 #img-prev {
 	margin-right: calc(2 * var(--tile-margin))
 }
+
 #img-next {
 	margin-left: calc(2 * var(--tile-margin))
 }
+
 #img-prev, #img-next {
 	width: var(--tile-margin);
 }
+
 #close-modal {
 	position: absolute;
 	-ms-flex-item-align: end;
-	    align-self: flex-end;
+	align-self: flex-end;
 	width: calc(2.5 * var(--tile-margin));
 	-webkit-transform: translate(50%, -50%);
-					transform: translate(50%, -50%);
+	transform: translate(50%, -50%);
 	-webkit-transition: .3s ease;
-					transition: .3s ease;
+	transition: .3s ease;
 }
+
 #close-modal:hover {
 	-webkit-transform: translate(50%, -50%) rotate(45deg);
-					transform: translate(50%, -50%) rotate(45deg);
+	transform: translate(50%, -50%) rotate(45deg);
 	-webkit-transition: .3s ease;
-					transition: .3s ease;
-}
+	transition: .3s ease;
+}

+ 153 - 81
static/css/main.css

@@ -1,4 +1,5 @@
 /* Variables */
+
 :root {
 	--tile-margin: .9vw;
 	--caption-hmargin: calc(2*var(--tile-margin));
@@ -9,38 +10,63 @@
 	--header-inner-space: calc(8*var(--tile-margin));
 	--header-space: calc(10*var(--tile-margin) - 10px + var(--tile-margin));
 }
+
 /* Columns */
+
 @media (min-width: 1501px) {
-	:root { --columns: 5; }
+	:root {
+		--columns: 5;
+	}
 }
+
 @media (max-width: 1500px) {
-	:root { --columns: 5; }
+	:root {
+		--columns: 5;
+	}
 }
+
 @media (max-width: 1000px) {
-	:root { --columns: 4; }
+	:root {
+		--columns: 4;
+	}
 }
+
 @media (max-width: 700px) {
-	:root { --columns: 3; }
+	:root {
+		--columns: 3;
+	}
 }
+
 @media (max-width: 500px) {
-	:root { --columns: 2; }
+	:root {
+		--columns: 2;
+	}
 }
+
 @media (max-width: 400px) {
-	:root { --columns: 2; }
+	:root {
+		--columns: 2;
+	}
 }
+
 /* Font Size */
+
 :root {
 	font-size: 1.2vw;
 	font-weight: 100;
 }
+
 /* Margins */
+
 /* @media (max-width: 1080px) {
 	:root {
 		--tile-margin: 12.75px;
 		--body-margin: 33px;
 	}
 } */
+
 /* Header */
+
 @media (max-width: 600px) {
 	/* Mobile view */
 	#wide-header {
@@ -52,6 +78,7 @@
 		font-size: 2.5vw;
 	}
 }
+
 @media (min-width: 601px) {
 	/* Non mobile view */
 	#mobile-header {
@@ -59,36 +86,46 @@
 		visibility: hidden;
 	}
 }
+
 #logo {
 	width: 10vw;
 	margin: 0 .7vw -.9vw .5vw;
 }
+
 /* Typographies */
+
 @font-face {
 	font-family: 'akrobat-regular';
 	src: url('/static/font/Akrobat-Regular.otf') format('opentype');
 }
+
 @font-face {
 	font-family: 'akrobat-bold';
 	src: url('/static/font/Akrobat-Bold.otf') format('opentype');
 }
+
 /* Rules */
+
 :root {
 	font-family: 'akrobat-regular';
 	letter-spacing: .07rem;
 }
+
 .sec-div {
 	font-weight: bold;
 	font-family: 'akrobat-regular';
 }
+
 a {
 	color: black;
 	margin: .05rem .3rem;
 	text-decoration: none;
 }
+
 a.en {
 	margin-bottom: .3em;
 }
+
 h1 {
 	font-size: 1.1em;
 	letter-spacing: .05rem;
@@ -98,29 +135,35 @@ h1 {
 	text-transform: uppercase;
 	margin: .2em 0;
 }
+
 h2 {
 	font-size: .9em;
 	font-family: 'akrobat-bold';
 	text-decoration: none;
 	text-transform: uppercase;
 }
+
 a.selected, a[href]:hover {
 	color: var(--theme-color);
 }
+
 div {
 	display: -webkit-box;
 	display: -ms-flexbox;
 	display: flex;
 }
+
 body {
 	width: calc(100% - 2*var(--body-margin));
 	margin: 0 var(--body-margin);
 	position: absolute;
 	background-color: var(--bgcolor);
 }
+
 #logo #background {
 	fill: var(--bgcolor) !important;
 }
+
 #wide-header {
 	width: calc(100% - 2*(var(--body-margin)));
 	margin: 0;
@@ -129,17 +172,18 @@ body {
 	display: flex;
 	-webkit-box-orient: vertical;
 	-webkit-box-direction: normal;
-	    -ms-flex-direction: column;
-	        flex-direction: column;
+	-ms-flex-direction: column;
+	flex-direction: column;
 	-webkit-box-pack: end;
-	    -ms-flex-pack: end;
-	        justify-content: flex-end;
+	-ms-flex-pack: end;
+	justify-content: flex-end;
 	position: fixed;
 	background-color: var(--bgcolor);
 	height: var(--header-space);
 	position: fixed;
 	z-index: 1;
 }
+
 .header-box {
 	padding-bottom: calc(2*var(--tile-margin));
 	overflow: hidden;
@@ -148,146 +192,160 @@ body {
 	display: flex;
 	-webkit-box-orient: horizontal;
 	-webkit-box-direction: normal;
-	    -ms-flex-direction: row;
-	        flex-direction: row;
+	-ms-flex-direction: row;
+	flex-direction: row;
 	-webkit-box-align: end;
-	    -ms-flex-align: end;
-	        align-items: flex-end;
+	-ms-flex-align: end;
+	align-items: flex-end;
 	-webkit-box-pack: justify;
-	    -ms-flex-pack: justify;
-	        justify-content: space-between;
+	-ms-flex-pack: justify;
+	justify-content: space-between;
 	-ms-flex-wrap: wrap;
-	    flex-wrap: wrap;
+	flex-wrap: wrap;
 	height: var(--header-inner-space);
 }
+
 .vbox {
 	display: -webkit-box;
 	display: -ms-flexbox;
 	display: flex;
 	-webkit-box-orient: vertical;
 	-webkit-box-direction: normal;
-	    -ms-flex-direction: column;
-	        flex-direction: column;
+	-ms-flex-direction: column;
+	flex-direction: column;
 	-webkit-box-align: center;
-	    -ms-flex-align: center;
-	        align-items: center;
+	-ms-flex-align: center;
+	align-items: center;
 }
+
 .rbox .vbox {
 	-webkit-box-align: end;
-	    -ms-flex-align: end;
-	        align-items: flex-end;
+	-ms-flex-align: end;
+	align-items: flex-end;
 }
+
 .lbox .vbox {
 	-webkit-box-align: start;
-	    -ms-flex-align: start;
-	        align-items: flex-start;
+	-ms-flex-align: start;
+	align-items: flex-start;
 }
+
 .hbox {
 	display: -webkit-box;
 	display: -ms-flexbox;
 	display: flex;
 	-webkit-box-orient: horizontal;
 	-webkit-box-direction: normal;
-	    -ms-flex-direction: row;
-	        flex-direction: row;
+	-ms-flex-direction: row;
+	flex-direction: row;
 	-webkit-box-align: center;
-	    -ms-flex-align: center;
-	        align-items: center;
+	-ms-flex-align: center;
+	align-items: center;
 }
+
 .lbox {
 	display: -webkit-box;
 	display: -ms-flexbox;
 	display: flex;
 	-webkit-box-orient: horizontal;
 	-webkit-box-direction: normal;
-	    -ms-flex-direction: row;
-	        flex-direction: row;
+	-ms-flex-direction: row;
+	flex-direction: row;
 	-webkit-box-align: end;
-	    -ms-flex-align: end;
-	        align-items: flex-end;
+	-ms-flex-align: end;
+	align-items: flex-end;
 	-webkit-box-pack: start;
-	    -ms-flex-pack: start;
-	        justify-content: flex-start;
+	-ms-flex-pack: start;
+	justify-content: flex-start;
 }
+
 .rbox {
 	display: -webkit-box;
 	display: -ms-flexbox;
 	display: flex;
 	-webkit-box-orient: horizontal;
 	-webkit-box-direction: normal;
-	    -ms-flex-direction: row;
-	        flex-direction: row;
+	-ms-flex-direction: row;
+	flex-direction: row;
 	-webkit-box-align: center;
-	    -ms-flex-align: center;
-	        align-items: center;
+	-ms-flex-align: center;
+	align-items: center;
 	-webkit-box-pack: end;
-	    -ms-flex-pack: end;
-	        justify-content: flex-end;
+	-ms-flex-pack: end;
+	justify-content: flex-end;
 }
+
 .header-subtitle {
 	display: -webkit-box;
 	display: -ms-flexbox;
 	display: flex;
 	-webkit-box-orient: horizontal;
 	-webkit-box-direction: normal;
-	    -ms-flex-direction: row;
-	        flex-direction: row;
+	-ms-flex-direction: row;
+	flex-direction: row;
 	-ms-flex-wrap: wrap;
-	    flex-wrap: wrap;
+	flex-wrap: wrap;
 	-webkit-box-pack: end;
-	    -ms-flex-pack: end;
-	        justify-content: flex-end;
+	-ms-flex-pack: end;
+	justify-content: flex-end;
 	-webkit-box-align: center;
-	    -ms-flex-align: center;
-	        align-items: center;
+	-ms-flex-align: center;
+	align-items: center;
 	margin-top: 0;
 }
+
 #alucho-title, #designer-subtitle {
 	-ms-flex-wrap: wrap;
-	    flex-wrap: wrap;
+	flex-wrap: wrap;
 }
+
 .no-bottom {
 	margin-bottom: 0;
 }
+
 .header-title {
 	display: -webkit-box;
 	display: -ms-flexbox;
 	display: flex;
 	-webkit-box-orient: horizontal;
 	-webkit-box-direction: normal;
-	    -ms-flex-direction: row;
-	        flex-direction: row;
+	-ms-flex-direction: row;
+	flex-direction: row;
 	-ms-flex-wrap: wrap;
-	    flex-wrap: wrap;
+	flex-wrap: wrap;
 	-webkit-box-pack: end;
-	    -ms-flex-pack: end;
-	        justify-content: flex-end;
+	-ms-flex-pack: end;
+	justify-content: flex-end;
 	-webkit-box-align: center;
-	    -ms-flex-align: center;
-	        align-items: center;
+	-ms-flex-align: center;
+	align-items: center;
 }
+
 a.first {
 	margin-left: var(--tile-margin);
 }
+
 a.last {
 	margin-right: var(--tile-margin);
 }
+
 main {
 	display: -webkit-box;
 	display: -ms-flexbox;
 	display: flex;
 	-webkit-box-orient: horizontal;
 	-webkit-box-direction: normal;
-	    -ms-flex-direction: row;
-	        flex-direction: row;
+	-ms-flex-direction: row;
+	flex-direction: row;
 	-ms-flex-wrap: wrap;
-	    flex-wrap: wrap;
+	flex-wrap: wrap;
 	-webkit-box-pack: start;
-	    -ms-flex-pack: start;
-	        justify-content: flex-start;
+	-ms-flex-pack: start;
+	justify-content: flex-start;
 	margin-top: calc(var(--header-space) - var(--tile-margin));
 	position: static;
 }
+
 figure {
 	position: relative;
 	display: -webkit-box;
@@ -297,6 +355,7 @@ figure {
 	margin: var(--tile-margin);
 	overflow: hidden;
 }
+
 figure img.tile, svg {
 	display: -webkit-box;
 	display: -ms-flexbox;
@@ -305,6 +364,7 @@ figure img.tile, svg {
 	height: 100%;
 	cursor: pointer;
 }
+
 figure figcaption {
 	font-size: .7em;
 	padding: var(--caption-vmargin) var(--caption-hmargin);
@@ -313,56 +373,62 @@ figure figcaption {
 	display: flex;
 	-webkit-box-orient: vertical;
 	-webkit-box-direction: normal;
-	    -ms-flex-direction: column;
-	        flex-direction: column;
+	-ms-flex-direction: column;
+	flex-direction: column;
 	position: absolute;
 	background-color: var(--bgcolor);
 	bottom: 0;
 	width: calc(100% - 2*var(--caption-hmargin));
 	-webkit-transform: translateY(100%);
-					transform: translateY(100%);
+	transform: translateY(100%);
 	-webkit-transition: .3s ease;
-					transition: .3s ease;
+	transition: .3s ease;
 }
+
 figure:hover figcaption {
 	-webkit-transform: translateY(0);
-					transform: translateY(0);
+	transform: translateY(0);
 	-webkit-transition: .3s ease;
-					transition: .3s ease;
+	transition: .3s ease;
 }
+
 figcaption h1 {
 	margin: 0;
 }
+
 .caption {
 	display: -webkit-box;
 	display: -ms-flexbox;
 	display: flex;
 	-webkit-box-orient: vertical;
 	-webkit-box-direction: normal;
-	    -ms-flex-direction: column;
-	        flex-direction: column;
+	-ms-flex-direction: column;
+	flex-direction: column;
 	-webkit-box-align: start;
-	    -ms-flex-align: start;
-	        align-items: flex-start;
+	-ms-flex-align: start;
+	align-items: flex-start;
 }
+
 footer {
 	display: -webkit-box;
 	display: -ms-flexbox;
 	display: flex;
 	-webkit-box-orient: vertical;
 	-webkit-box-direction: normal;
-	    -ms-flex-direction: column;
-	        flex-direction: column;
+	-ms-flex-direction: column;
+	flex-direction: column;
 	margin: 0 var(--tile-margin);
 	height: var(--body-margin);
 	font-size: .7em;
 	font-weight: 900;
 }
+
 footer::after {
 	content: "";
 	height: var(--tile-margin);
 	bottom: 0;
 }
+
 .footer-content {
 	height: calc(var(--body-margin) - var(--tile-margin));
 	display: -webkit-box;
@@ -370,33 +436,39 @@ footer::after {
 	display: flex;
 	-webkit-box-orient: horizontal;
 	-webkit-box-direction: normal;
-	    -ms-flex-direction: row;
-	        flex-direction: row;
+	-ms-flex-direction: row;
+	flex-direction: row;
 	-ms-flex-wrap: wrap;
-	    flex-wrap: wrap;
+	flex-wrap: wrap;
 	-webkit-box-pack: justify;
-	    -ms-flex-pack: justify;
-	        justify-content: space-between;
+	-ms-flex-pack: justify;
+	justify-content: space-between;
 }
+
 footer .copyright, footer .social {
 	-webkit-box-align: center;
-	    -ms-flex-align: center;
-	        align-items: center;
+	-ms-flex-align: center;
+	align-items: center;
 }
+
 footer a.first {
 	margin-left: 0;
 }
+
 footer a.last {
 	margin-right: 0;
 }
+
 footer svg {
 	width: auto;
 	height: 1.5em;
 	margin-left: .75em;
 }
+
 .social a {
 	margin: 0;
 }
+
 .hidden {
 	visibility: hidden;
-}
+}