diff --git a/Dockerfile b/Dockerfile
index 950af6f..aa7aee9 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -26,7 +26,7 @@ FROM node:20-alpine
# Getrennte RUNs halten einzelne Registry-Layer klein genug fuer Proxy-Limits.
RUN apk add --no-cache docker-cli
-RUN apk add --no-cache imagemagick
+RUN apk add --no-cache imagemagick libjpeg-turbo libpng libwebp
RUN apk add --no-cache sqlite-libs
WORKDIR /app
diff --git a/admin.html b/admin.html
index 9ce97d4..459cdad 100644
--- a/admin.html
+++ b/admin.html
@@ -7,8 +7,6 @@
@@ -65,13 +71,17 @@
diff --git a/assets/css/custom.min.css b/assets/css/custom.min.css
index da65d16..e4d3435 100644
--- a/assets/css/custom.min.css
+++ b/assets/css/custom.min.css
@@ -1 +1 @@
-.text-fg{color:#a0a0a1}#footer .presentify{margin:0 0 1.4em 0;display:grid;grid-template-columns:auto 1fr;column-gap:1rem;align-items:center}#footer .presentify .presentify-logo{display:flex;align-items:center;justify-content:center}#footer .presentify .presentify-logo a{display:flex;align-items:center;justify-content:center;border:0}#footer .presentify .presentify-logo img{width:72px;height:72px;display:block}#footer .presentify .presentify-text{margin:0}
\ No newline at end of file
+.text-fg{color:#a0a0a1}#selection-toolbar{position:fixed;top:0;left:0;width:100%;background:rgba(31,34,36,.95);padding:.75em 1.5em;display:flex;align-items:center;gap:1em;z-index:10003;transform:translateY(-100%);transition:transform .3s ease;box-sizing:border-box}#selection-toolbar.visible{transform:translateY(0)}#selection-toolbar #sel-count{color:#fff;font-weight:400;margin-right:auto;white-space:nowrap}#selection-toolbar button{white-space:nowrap}body.selection-mode #main .thumb{cursor:pointer;position:relative}body.selection-mode #main .thumb::before{content:"";position:absolute;bottom:.6em;right:.6em;width:1.6em;height:1.6em;border:2px solid rgba(255,255,255,.8);border-radius:4px;background:rgba(0,0,0,.5);z-index:2;transition:all .2s ease;pointer-events:none}body.selection-mode #main .thumb .image{opacity:.85;transition:opacity .2s ease}body.selection-mode #main .thumb:active .image{opacity:.6}body.selection-mode #main .thumb.selected::before{background:#34a58e;border-color:#34a58e}body.selection-mode #main .thumb.selected .image{opacity:1;outline:3px solid #34a58e;outline-offset:-3px}@media screen and (max-width: 736px){#selection-toolbar{top:4em;padding:.6em 1em;gap:.6em}#selection-toolbar #sel-count{font-size:.9em}#selection-toolbar button{font-size:.85em;padding:.5em 1em}body.selection-mode #main .thumb::before{bottom:.3em;right:.3em;width:2em;height:2em;border-width:2.5px}body.selection-mode #main .thumb.selected .image{outline-width:4px}}#footer .presentify{margin:0 0 1.4em 0;display:grid;grid-template-columns:auto 1fr;column-gap:1rem;align-items:center}#footer .presentify .presentify-logo{display:flex;align-items:center;justify-content:center}#footer .presentify .presentify-logo a{display:flex;align-items:center;justify-content:center;border:0}#footer .presentify .presentify-logo img{width:72px;height:72px;display:block}#footer .presentify .presentify-text{margin:0}
\ No newline at end of file
diff --git a/assets/css/light.min.css b/assets/css/light.min.css
index 6aeff09..70f0ab7 100644
--- a/assets/css/light.min.css
+++ b/assets/css/light.min.css
@@ -1 +1 @@
-@-moz-keyframes spinner{0%{-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes spinner{0%{-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes spinner{0%{-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spinner{0%{-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}body{-webkit-text-size-adjust:none}mark{background-color:rgba(0,0,0,0);color:inherit}input::-moz-focus-inner{border:0;padding:0}input,select,textarea{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none}@-ms-viewport{width:device-width}body{-ms-overflow-style:scrollbar}@media screen and (max-width: 480px){html,body{min-width:320px}}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body{background:#f9f6f0}body.is-preload *,body.is-preload *:before,body.is-preload *:after{-moz-animation:none !important;-webkit-animation:none !important;-ms-animation:none !important;animation:none !important;-moz-transition:none !important;-webkit-transition:none !important;-ms-transition:none !important;transition:none !important}body.is-resizing *,body.is-resizing *:before,body.is-resizing *:after{-moz-animation:none !important;-webkit-animation:none !important;-ms-animation:none !important;animation:none !important;-moz-transition:none !important;-webkit-transition:none !important;-ms-transition:none !important;transition:none !important}body,input,select,textarea{color:#5c554e;font-family:"Source Sans Pro",Helvetica,sans-serif;font-size:15pt;font-weight:300;letter-spacing:.025em;line-height:1.65}@media screen and (max-width: 1680px){body,input,select,textarea{font-size:11pt}}a{-moz-transition:color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;-webkit-transition:color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;-ms-transition:color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;transition:color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;border-bottom:dotted 1px;color:#e48c71;text-decoration:none}a:hover{border-bottom-color:rgba(0,0,0,0);color:#e48c71 !important}strong,b{color:#38332f;font-weight:300}em,i{font-style:italic}p{margin:0 0 2em 0}h1,h2,h3,h4,h5,h6{color:#38332f;font-weight:300;letter-spacing:.1em;line-height:1.5;margin:0 0 1em 0;text-transform:uppercase}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit;text-decoration:none}h1{font-size:2em}h2{font-size:1.25em}h3{font-size:1.1em}h4{font-size:1em}h5{font-size:.9em}h6{font-size:.7em}@media screen and (max-width: 736px){h2{font-size:1em}h3{font-size:.9em}h4{font-size:.8em}h5{font-size:.7em}h6{font-size:.7em}}sub{font-size:.8em;position:relative;top:.5em}sup{font-size:.8em;position:relative;top:-0.5em}blockquote{border-left:4px #e6dccc;font-style:italic;margin:0 0 2em 0;padding:.5em 0 .5em 2em}code{background:#f0e5d6;border:solid 1px #e6dccc;font-family:"Courier New",monospace;font-size:.9em;margin:0 .25em;padding:.25em .65em}pre{-webkit-overflow-scrolling:touch;font-family:"Courier New",monospace;font-size:.9em;margin:0 0 2em 0}pre code{display:block;line-height:1.75;padding:1em 1.5em;overflow-x:auto}hr{border:0;border-bottom:solid 1px #e6dccc;margin:2em 0}hr.major{margin:3em 0}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}input[type=submit],input[type=reset],input[type=button],button,.button{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;-moz-transition:background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;-webkit-transition:background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;-ms-transition:background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;transition:background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;background-color:rgba(0,0,0,0);border:0;border-radius:0;box-shadow:inset 0 0 0 2px #e6dccc;color:#38332f !important;cursor:pointer;display:inline-block;font-size:.9em;font-weight:300;height:3.0555555556em;letter-spacing:.1em;line-height:3.0555555556em;padding:0 2.5em;text-align:center;text-decoration:none;text-transform:uppercase;white-space:nowrap}input[type=submit]:hover,input[type=reset]:hover,input[type=button]:hover,button:hover,.button:hover{box-shadow:inset 0 0 0 2px #e48c71;color:#e48c71 !important}input[type=submit]:hover:active,input[type=reset]:hover:active,input[type=button]:hover:active,button:hover:active,.button:hover:active{background-color:rgba(228,140,113,.15);color:#e48c71 !important}input[type=submit].icon,input[type=reset].icon,input[type=button].icon,button.icon,.button.icon{padding-left:1.35em}input[type=submit].icon:before,input[type=reset].icon:before,input[type=button].icon:before,button.icon:before,.button.icon:before{margin-right:.5em}input[type=submit].fit,input[type=reset].fit,input[type=button].fit,button.fit,.button.fit{width:100%}input[type=submit].small,input[type=reset].small,input[type=button].small,button.small,.button.small{font-size:.8em}input[type=submit].large,input[type=reset].large,input[type=button].large,button.large,.button.large{font-size:1.35em}input[type=submit].primary,input[type=reset].primary,input[type=button].primary,button.primary,.button.primary{background-color:#e48c71;box-shadow:none}input[type=submit].primary:hover,input[type=reset].primary:hover,input[type=button].primary:hover,button.primary:hover,.button.primary:hover{background-color:#ecaf9c;color:#38332f !important}input[type=submit].primary:hover:active,input[type=reset].primary:hover:active,input[type=button].primary:hover:active,button.primary:hover:active,.button.primary:hover:active{background-color:#dc6946}input[type=submit].disabled,input[type=submit]:disabled,input[type=reset].disabled,input[type=reset]:disabled,input[type=button].disabled,input[type=button]:disabled,button.disabled,button:disabled,.button.disabled,.button:disabled{pointer-events:none;opacity:.35}form{margin:0 0 2em 0}form>:last-child{margin-bottom:0}form>.fields{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;-moz-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:calc(100% + 3em);margin:-1.5em 0 2em -1.5em}form>.fields>.field{-moz-flex-grow:0;-webkit-flex-grow:0;-ms-flex-grow:0;flex-grow:0;-moz-flex-shrink:0;-webkit-flex-shrink:0;-ms-flex-shrink:0;flex-shrink:0;padding:1.5em 0 0 1.5em;width:calc(100% - 1.5em)}form>.fields>.field.half{width:calc(50% - 0.75em)}form>.fields>.field.third{width:calc(100%/3 - 0.5em)}form>.fields>.field.quarter{width:calc(25% - 0.375em)}@media screen and (max-width: 736px){form>.fields{width:calc(100% + 3em);margin:-1.5em 0 2em -1.5em}form>.fields>.field{padding:1.5em 0 0 1.5em;width:calc(100% - 1.5em)}form>.fields>.field.half{width:calc(100% - 1.5em)}form>.fields>.field.third{width:calc(100% - 1.5em)}form>.fields>.field.quarter{width:calc(100% - 1.5em)}}label{color:#38332f;display:block;font-size:.9em;font-weight:300;margin:0 0 1em 0}input[type=text],input[type=password],input[type=email],input[type=tel],input[type=search],input[type=url],select,textarea{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;background:#f0e5d6;border:0;border-radius:0;color:#5c554e;display:block;outline:0;padding:0 1em;text-decoration:none;width:100%}input[type=text]:invalid,input[type=password]:invalid,input[type=email]:invalid,input[type=tel]:invalid,input[type=search]:invalid,input[type=url]:invalid,select:invalid,textarea:invalid{box-shadow:none}input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=tel]:focus,input[type=search]:focus,input[type=url]:focus,select:focus,textarea:focus{box-shadow:inset 0 0 0 2px #e48c71}select{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'%3E%3Cpath d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='%23e6dccc' /%3E%3C/svg%3E");background-size:1.25rem;background-repeat:no-repeat;background-position:calc(100% - 1rem) center;height:2.75em;padding-right:2.75em;text-overflow:ellipsis}select option{color:#38332f;background:#f9f6f0}select:focus::-ms-value{background-color:rgba(0,0,0,0)}select::-ms-expand{display:none}input[type=text],input[type=password],input[type=email],input[type=tel],input[type=search],input[type=url],select{height:2.75em}textarea{padding:.75em 1em}input[type=checkbox],input[type=radio]{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;display:block;float:left;margin-right:-2em;opacity:0;width:1em;z-index:-1}input[type=checkbox]+label,input[type=radio]+label{text-decoration:none;color:#5c554e;cursor:pointer;display:inline-block;font-size:1em;font-weight:300;padding-left:2.4em;padding-right:.75em;position:relative}input[type=checkbox]+label:before,input[type=radio]+label:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none !important;font-family:"Font Awesome 5 Free";font-weight:900}input[type=checkbox]+label:before,input[type=radio]+label:before{background:#f0e5d6;content:"";display:inline-block;font-size:.8em;height:2.0625em;left:0;line-height:2.0625em;position:absolute;text-align:center;top:0;width:2.0625em}input[type=checkbox]:checked+label:before,input[type=radio]:checked+label:before{background:#e48c71;border-color:#e48c71;color:#38332f;content:""}input[type=checkbox]:focus+label:before,input[type=radio]:focus+label:before{box-shadow:0 0 0 2px #e48c71}input[type=radio]+label:before{border-radius:100%}::-webkit-input-placeholder{color:#7a746e !important;opacity:1}:-moz-placeholder{color:#7a746e !important;opacity:1}::-moz-placeholder{color:#7a746e !important;opacity:1}:-ms-input-placeholder{color:#7a746e !important;opacity:1}.icon{text-decoration:none;border-bottom:none;position:relative}.icon:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none !important;font-family:"Font Awesome 5 Free";font-weight:400}.icon>.label{display:none}.icon:before{line-height:inherit}.icon.solid:before{font-weight:900}.icon.brands:before{font-family:"Font Awesome 5 Brands"}ol{list-style:decimal;margin:0 0 2em 0;padding-left:1.25em}ol li{padding-left:.25em}ul{list-style:disc;margin:0 0 2em 0;padding-left:1em}ul li{padding-left:.5em}ul.alt{list-style:none;padding-left:0}ul.alt li{border-top:solid 1px #e6dccc;padding:.5em 0}ul.alt li:first-child{border-top:0;padding-top:0}dl{margin:0 0 2em 0}dl dt{display:block;font-weight:300;margin:0 0 1em 0}dl dd{margin-left:2em}ul.actions{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;cursor:default;list-style:none;margin-left:-1em;padding-left:0}ul.actions li{padding:0 0 0 1em;vertical-align:middle}ul.actions.special{-moz-justify-content:center;-webkit-justify-content:center;-ms-justify-content:center;justify-content:center;width:100%;margin-left:0}ul.actions.special li:first-child{padding-left:0}ul.actions.stacked{-moz-flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-left:0}ul.actions.stacked li{padding:1.3em 0 0 0}ul.actions.stacked li:first-child{padding-top:0}ul.actions.fit{width:calc(100% + 1em)}ul.actions.fit li{-moz-flex-grow:1;-webkit-flex-grow:1;-ms-flex-grow:1;flex-grow:1;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;width:100%}ul.actions.fit li>*{width:100%}ul.actions.fit.stacked{width:100%}@media screen and (max-width: 480px){ul.actions:not(.fixed){-moz-flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-left:0;width:100% !important}ul.actions:not(.fixed) li{-moz-flex-grow:1;-webkit-flex-grow:1;-ms-flex-grow:1;flex-grow:1;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;padding:1em 0 0 0;text-align:center;width:100%}ul.actions:not(.fixed) li>*{width:100%}ul.actions:not(.fixed) li:first-child{padding-top:0}ul.actions:not(.fixed) li input[type=submit],ul.actions:not(.fixed) li input[type=reset],ul.actions:not(.fixed) li input[type=button],ul.actions:not(.fixed) li button,ul.actions:not(.fixed) li .button{width:100%}ul.actions:not(.fixed) li input[type=submit].icon:before,ul.actions:not(.fixed) li input[type=reset].icon:before,ul.actions:not(.fixed) li input[type=button].icon:before,ul.actions:not(.fixed) li button.icon:before,ul.actions:not(.fixed) li .button.icon:before{margin-left:-0.5rem}}ul.icons{cursor:default;list-style:none;padding-left:0}ul.icons li{display:inline-block;padding:0 1em 0 0}ul.icons li:last-child{padding-right:0}ul.icons li .icon{color:#9e9790}ul.icons li .icon:before{font-size:1.5em}.table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}table{margin:0 0 2em 0;width:100%}table tbody tr{border:solid 1px #e6dccc;border-left:0;border-right:0}table tbody tr:nth-child(2n+1){background-color:#f0e5d6}table td{padding:.75em .75em}table th{color:#38332f;font-size:.9em;font-weight:300;padding:0 .75em .75em .75em;text-align:left}table thead{border-bottom:solid 2px #e6dccc}table tfoot{border-top:solid 2px #e6dccc}table.alt{border-collapse:separate}table.alt tbody tr td{border:solid 1px #e6dccc;border-left-width:0;border-top-width:0}table.alt tbody tr td:first-child{border-left-width:1px}table.alt tbody tr:first-child td{border-top-width:1px}table.alt thead{border-bottom:0}table.alt tfoot{border-top:0}.panel{padding:4em 4em 2em 4em;-moz-transform:translateY(100vh);-webkit-transform:translateY(100vh);-ms-transform:translateY(100vh);transform:translateY(100vh);-moz-transition:-moz-transform 0.5s ease;-webkit-transition:-webkit-transform 0.5s ease;-ms-transition:-ms-transform 0.5s ease;transition:transform 0.5s ease;-webkit-overflow-scrolling:touch;background:rgba(249,246,240,.975);bottom:4em;left:0;max-height:calc(80vh - 4em);overflow-y:auto;position:fixed;width:100%;z-index:10001}.panel.active{-moz-transform:translateY(1px);-webkit-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px)}.panel>.inner{margin:0 auto;max-width:100%;width:75em}.panel>.inner.split{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex}.panel>.inner.split>div{margin-left:4em;width:50%}.panel>.inner.split>:first-child{margin-left:0}.panel>.closer{-moz-transition:opacity 0.2s ease-in-out;-webkit-transition:opacity 0.2s ease-in-out;-ms-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out;background-image:url("images/close.svg");background-position:center;background-repeat:no-repeat;background-size:3em;cursor:pointer;height:5em;opacity:.25;position:absolute;right:0;top:0;width:5em;z-index:2}.panel>.closer:hover{opacity:1}@media screen and (max-width: 1280px){.panel{padding:3em 3em 1em 3em}.panel>.inner.split>div{margin-left:3em}.panel>.closer{background-size:2.5em;background-position:75% 25%}}@media screen and (max-width: 980px){.panel>.inner.split{-moz-flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.panel>.inner.split>div{margin-left:0;width:100%}}@media screen and (max-width: 736px){.panel{-moz-transform:translateY(-100vh);-webkit-transform:translateY(-100vh);-ms-transform:translateY(-100vh);transform:translateY(-100vh);padding:4em 2em 2em 2em;bottom:auto;top:calc(4em - 1px)}.panel.active{-moz-transform:translateY(0);-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.poptrox-overlay{-webkit-tap-highlight-color:rgba(255,255,255,0)}.poptrox-popup{background:rgba(238,232,221,.925);box-shadow:0 1em 3em .5em rgba(0,0,0,.25);cursor:default}.poptrox-popup:before{-moz-transition:opacity 0.2s ease-in-out;-webkit-transition:opacity 0.2s ease-in-out;-ms-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out;background-image:-moz-linear-gradient(to left, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0)), -moz-linear-gradient(to right, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0));background-image:-webkit-linear-gradient(to left, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0)), -webkit-linear-gradient(to right, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0));background-image:-ms-linear-gradient(to left, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0)), -ms-linear-gradient(to right, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0));background-image:linear-gradient(to left, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0)), linear-gradient(to right, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0));content:"";display:block;height:100%;left:0;position:absolute;top:0;width:100%;z-index:1;opacity:1}.poptrox-popup .closer{-moz-transition:opacity 0.2s ease-in-out;-webkit-transition:opacity 0.2s ease-in-out;-ms-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out;background-image:url("images/close.svg");background-position:center;background-repeat:no-repeat;background-size:3em;height:5em;opacity:0;position:absolute;right:0;top:0;width:5em;z-index:2}.poptrox-popup .nav-previous,.poptrox-popup .nav-next{-moz-transition:opacity 0.2s ease-in-out;-webkit-transition:opacity 0.2s ease-in-out;-ms-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out;background-image:url("images/arrow.svg");background-position:center;background-repeat:no-repeat;background-size:5em;cursor:pointer;height:8em;margin-top:-4em;opacity:0;position:absolute;top:50%;width:6em;z-index:2}.poptrox-popup .nav-previous{-moz-transform:scaleX(-1);-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1);left:0}.poptrox-popup .nav-next{right:0}.poptrox-popup .caption{padding:2em 2em .1em 2em;background:rgba(246,240,228,.95);bottom:0;cursor:default;left:0;position:absolute;text-align:left;width:100%;z-index:2}.poptrox-popup .caption h2,.poptrox-popup .caption h3,.poptrox-popup .caption h4,.poptrox-popup .caption h5,.poptrox-popup .caption h6{margin:0 0 .5em 0;color:#4a4a4a !important}.poptrox-popup .caption p,.poptrox-popup .caption span,.poptrox-popup .caption i,.poptrox-popup .caption strong,.poptrox-popup .caption em{color:#5c554e !important}.poptrox-popup .loader{-moz-animation:spinner 1s infinite linear !important;-webkit-animation:spinner 1s infinite linear !important;-ms-animation:spinner 1s infinite linear !important;animation:spinner 1s infinite linear !important;background-image:url("images/spinner.svg");background-position:center;background-repeat:no-repeat;background-size:contain;display:block;font-size:2em;height:2em;left:50%;line-height:2em;margin:-1em 0 0 -1em;opacity:.25;position:absolute;text-align:center;top:50%;width:2em}.poptrox-popup:hover .closer,.poptrox-popup:hover .nav-previous,.poptrox-popup:hover .nav-next{opacity:.5}.poptrox-popup:hover .closer:hover,.poptrox-popup:hover .nav-previous:hover,.poptrox-popup:hover .nav-next:hover{opacity:1}.poptrox-popup.loading:before{opacity:0}body.touch .poptrox-popup .closer,body.touch .poptrox-popup .nav-previous,body.touch .poptrox-popup .nav-next{opacity:1 !important}@media screen and (max-width: 980px){.poptrox-popup .closer{background-size:3em}.poptrox-popup .nav-previous,.poptrox-popup .nav-next{background-size:4em}}@media screen and (max-width: 736px){.poptrox-popup:before{display:none}.poptrox-popup .caption{display:none !important}.poptrox-popup .closer,.poptrox-popup .nav-previous,.poptrox-popup .nav-next{display:none !important}}#wrapper{-moz-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -moz-filter 0.5s ease;-webkit-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -webkit-filter 0.5s ease;-ms-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -ms-filter 0.5s ease;transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, filter 0.5s ease;position:relative}#wrapper:after{pointer-events:none;-moz-transition:opacity 0.5s ease, visibility 0.5s;-webkit-transition:opacity 0.5s ease, visibility 0.5s;-ms-transition:opacity 0.5s ease, visibility 0.5s;transition:opacity 0.5s ease, visibility 0.5s;background:rgba(249,246,240,.95);content:"";display:block;height:100%;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:1}body.ie #wrapper:after{background:rgba(249,246,240,.95)}body.modal-active #wrapper{-moz-filter:blur(8px);-webkit-filter:blur(8px);-ms-filter:blur(8px);filter:blur(8px)}body.modal-active #wrapper:after{pointer-events:auto;opacity:1;visibility:visible;z-index:10003}#wrapper:before{-moz-animation:spinner 1s infinite linear !important;-webkit-animation:spinner 1s infinite linear !important;-ms-animation:spinner 1s infinite linear !important;animation:spinner 1s infinite linear !important;pointer-events:none;-moz-transition:top 0.75s ease-in-out, opacity 0.35s ease-out, visibility 0.35s;-webkit-transition:top 0.75s ease-in-out, opacity 0.35s ease-out, visibility 0.35s;-ms-transition:top 0.75s ease-in-out, opacity 0.35s ease-out, visibility 0.35s;transition:top 0.75s ease-in-out, opacity 0.35s ease-out, visibility 0.35s;background-image:url("images/spinner.svg");background-position:center;background-repeat:no-repeat;background-size:contain;content:"";display:block;font-size:2em;height:2em;left:50%;line-height:2em;margin:-1em 0 0 -1em;opacity:0;position:fixed;text-align:center;top:75%;visibility:hidden;width:2em}body.is-preload #wrapper:before{-moz-transition:opacity 1s ease-out !important;-webkit-transition:opacity 1s ease-out !important;-ms-transition:opacity 1s ease-out !important;transition:opacity 1s ease-out !important;-moz-transition-delay:0.5s !important;-webkit-transition-delay:0.5s !important;-ms-transition-delay:0.5s !important;transition-delay:0.5s !important;opacity:.25;top:50%;visibility:visible}body{padding:0 0 4em 0}#header{-moz-transform:translateY(0);-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-moz-transition:-moz-transform 1s ease;-webkit-transition:-webkit-transform 1s ease;-ms-transition:-ms-transform 1s ease;transition:transform 1s ease;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;background:#eee8dd;bottom:-1em;height:5em;left:0;line-height:4em;padding:0 1.5em;position:fixed;user-select:none;width:100%;z-index:10002}body.is-preload #header{-moz-transform:translateY(4em);-webkit-transform:translateY(4em);-ms-transform:translateY(4em);transform:translateY(4em)}#header h1{color:#5c554e;display:inline-block;font-size:1em;line-height:1;margin:0;vertical-align:middle}#header h1 a{border:0;color:inherit}#header h1 a:hover{color:inherit !important}#header nav{position:absolute;right:0;top:0}#header nav>ul{list-style:none;margin:0;padding:0}#header nav>ul>li{display:inline-block;padding:0}#header nav>ul>li a{-moz-transition:background-color 0.5s ease;-webkit-transition:background-color 0.5s ease;-ms-transition:background-color 0.5s ease;transition:background-color 0.5s ease;border:0;color:#38332f;display:inline-block;letter-spacing:.1em;padding:0 1.65em;text-transform:uppercase}#header nav>ul>li a.icon:before{color:#9e9790;float:right;margin-left:.75em}#header nav>ul>li a:hover{color:#38332f !important}#header nav>ul>li a.active{background-color:#f9f6f0}@media screen and (max-width: 736px){body{padding:4em 0 0 0}#header{-moz-transform:translateY(0);-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);bottom:auto;height:4em;padding:0 1em;top:0}body.is-preload #header{-moz-transform:translateY(-3.4em);-webkit-transform:translateY(-3.4em);-ms-transform:translateY(-3.4em);transform:translateY(-3.4em)}#header h1{font-size:.9em}#header nav>ul>li a{font-size:.9em;padding:0 1.15em}}#main{-moz-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -moz-filter 0.5s ease;-webkit-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -webkit-filter 0.5s ease;-ms-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -ms-filter 0.5s ease;transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, filter 0.5s ease;display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;-moz-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-tap-highlight-color:rgba(255,255,255,0)}#main .thumb{-moz-transition:opacity 1.25s ease-in-out;-webkit-transition:opacity 1.25s ease-in-out;-ms-transition:opacity 1.25s ease-in-out;transition:opacity 1.25s ease-in-out;pointer-events:auto;-webkit-tap-highlight-color:rgba(255,255,255,0);opacity:1;overflow:hidden;position:relative}#main .thumb:after{background-image:-moz-linear-gradient(to top, rgba(10,17,25,0.35) 5%, rgba(10,17,25,0) 35%);background-image:-webkit-linear-gradient(to top, rgba(10,17,25,0.35) 5%, rgba(10,17,25,0) 35%);background-image:-ms-linear-gradient(to top, rgba(10,17,25,0.35) 5%, rgba(10,17,25,0) 35%);background-image:linear-gradient(to top, rgba(10,17,25,0.35) 5%, rgba(10,17,25,0) 35%);pointer-events:none;background-size:cover;content:"";display:block;height:100%;left:0;position:absolute;top:0;width:100%}#main .thumb>.image{-webkit-tap-highlight-color:rgba(255,255,255,0);background-position:center;background-repeat:no-repeat;background-size:cover;border:0;height:100%;left:0;position:absolute;top:0;width:100%}#main .thumb>h2{pointer-events:none;bottom:1.875em;font-size:.8em;left:2.1875em;margin:0;position:absolute;z-index:1}#main .thumb>p{display:none}#main:after{pointer-events:none;-moz-transition:opacity 0.5s ease, visibility 0.5s;-webkit-transition:opacity 0.5s ease, visibility 0.5s;-ms-transition:opacity 0.5s ease, visibility 0.5s;transition:opacity 0.5s ease, visibility 0.5s;background:rgba(249,246,240,.85);content:"";display:block;height:100%;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:1}body.ie #main:after{background:rgba(249,246,240,.9)}body.content-active #main{-moz-filter:blur(6px);-webkit-filter:blur(6px);-ms-filter:blur(6px);filter:blur(6px)}body.content-active #main:after{pointer-events:auto;opacity:1;visibility:visible}body.is-preload #main .thumb{pointer-events:none;opacity:0}#main .thumb{-moz-transition-delay:2.525s;-webkit-transition-delay:2.525s;-ms-transition-delay:2.525s;transition-delay:2.525s;height:calc(40vh - 2em);min-height:20em;width:25%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}#main .thumb:nth-child(4){-moz-transition-delay:1.1s;-webkit-transition-delay:1.1s;-ms-transition-delay:1.1s;transition-delay:1.1s}#main .thumb:nth-child(5){-moz-transition-delay:1.25s;-webkit-transition-delay:1.25s;-ms-transition-delay:1.25s;transition-delay:1.25s}#main .thumb:nth-child(6){-moz-transition-delay:1.4s;-webkit-transition-delay:1.4s;-ms-transition-delay:1.4s;transition-delay:1.4s}#main .thumb:nth-child(7){-moz-transition-delay:1.55s;-webkit-transition-delay:1.55s;-ms-transition-delay:1.55s;transition-delay:1.55s}#main .thumb:nth-child(8){-moz-transition-delay:1.7s;-webkit-transition-delay:1.7s;-ms-transition-delay:1.7s;transition-delay:1.7s}#main .thumb:nth-child(9){-moz-transition-delay:1.85s;-webkit-transition-delay:1.85s;-ms-transition-delay:1.85s;transition-delay:1.85s}#main .thumb:nth-child(10){-moz-transition-delay:2s;-webkit-transition-delay:2s;-ms-transition-delay:2s;transition-delay:2s}#main .thumb:nth-child(11){-moz-transition-delay:2.15s;-webkit-transition-delay:2.15s;-ms-transition-delay:2.15s;transition-delay:2.15s}#main .thumb:nth-child(12){-moz-transition-delay:2.3s;-webkit-transition-delay:2.3s;-ms-transition-delay:2.3s;transition-delay:2.3s}@media screen and (max-width: 1680px){#main .thumb{-moz-transition-delay:2.075s;-webkit-transition-delay:2.075s;-ms-transition-delay:2.075s;transition-delay:2.075s;height:calc(40vh - 2em);min-height:20em;width:33.3333333333%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}#main .thumb:nth-child(4){-moz-transition-delay:1.1s;-webkit-transition-delay:1.1s;-ms-transition-delay:1.1s;transition-delay:1.1s}#main .thumb:nth-child(5){-moz-transition-delay:1.25s;-webkit-transition-delay:1.25s;-ms-transition-delay:1.25s;transition-delay:1.25s}#main .thumb:nth-child(6){-moz-transition-delay:1.4s;-webkit-transition-delay:1.4s;-ms-transition-delay:1.4s;transition-delay:1.4s}#main .thumb:nth-child(7){-moz-transition-delay:1.55s;-webkit-transition-delay:1.55s;-ms-transition-delay:1.55s;transition-delay:1.55s}#main .thumb:nth-child(8){-moz-transition-delay:1.7s;-webkit-transition-delay:1.7s;-ms-transition-delay:1.7s;transition-delay:1.7s}#main .thumb:nth-child(9){-moz-transition-delay:1.85s;-webkit-transition-delay:1.85s;-ms-transition-delay:1.85s;transition-delay:1.85s}}@media screen and (max-width: 1280px){#main .thumb{-moz-transition-delay:1.625s;-webkit-transition-delay:1.625s;-ms-transition-delay:1.625s;transition-delay:1.625s;height:calc(40vh - 2em);min-height:20em;width:50%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}#main .thumb:nth-child(4){-moz-transition-delay:1.1s;-webkit-transition-delay:1.1s;-ms-transition-delay:1.1s;transition-delay:1.1s}#main .thumb:nth-child(5){-moz-transition-delay:1.25s;-webkit-transition-delay:1.25s;-ms-transition-delay:1.25s;transition-delay:1.25s}#main .thumb:nth-child(6){-moz-transition-delay:1.4s;-webkit-transition-delay:1.4s;-ms-transition-delay:1.4s;transition-delay:1.4s}}@media screen and (max-width: 980px){#main .thumb{-moz-transition-delay:2.075s;-webkit-transition-delay:2.075s;-ms-transition-delay:2.075s;transition-delay:2.075s;height:calc(28.5714285714vh - 1.3333333333em);min-height:18em;width:50%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}#main .thumb:nth-child(4){-moz-transition-delay:1.1s;-webkit-transition-delay:1.1s;-ms-transition-delay:1.1s;transition-delay:1.1s}#main .thumb:nth-child(5){-moz-transition-delay:1.25s;-webkit-transition-delay:1.25s;-ms-transition-delay:1.25s;transition-delay:1.25s}#main .thumb:nth-child(6){-moz-transition-delay:1.4s;-webkit-transition-delay:1.4s;-ms-transition-delay:1.4s;transition-delay:1.4s}#main .thumb:nth-child(7){-moz-transition-delay:1.55s;-webkit-transition-delay:1.55s;-ms-transition-delay:1.55s;transition-delay:1.55s}#main .thumb:nth-child(8){-moz-transition-delay:1.7s;-webkit-transition-delay:1.7s;-ms-transition-delay:1.7s;transition-delay:1.7s}#main .thumb:nth-child(9){-moz-transition-delay:1.85s;-webkit-transition-delay:1.85s;-ms-transition-delay:1.85s;transition-delay:1.85s}}@media screen and (max-width: 480px){#main .thumb{-moz-transition-delay:1.175s;-webkit-transition-delay:1.175s;-ms-transition-delay:1.175s;transition-delay:1.175s;height:calc(40vh - 2em);min-height:18em;width:100%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}}#footer .copyright{color:#9e9790;font-size:.9em}#footer .copyright a{color:inherit}.text-fg{color:#a0a0a1}#footer .presentify{margin:0 0 1.4em 0;display:grid;grid-template-columns:auto 1fr;column-gap:1rem;align-items:center}#footer .presentify .presentify-logo{display:flex;align-items:center;justify-content:center}#footer .presentify .presentify-logo a{display:flex;align-items:center;justify-content:center;border:0}#footer .presentify .presentify-logo img{width:72px;height:72px;display:block}#footer .presentify .presentify-text{margin:0}
\ No newline at end of file
+@-moz-keyframes spinner{0%{-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes spinner{0%{-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes spinner{0%{-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spinner{0%{-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}body{-webkit-text-size-adjust:none}mark{background-color:rgba(0,0,0,0);color:inherit}input::-moz-focus-inner{border:0;padding:0}input,select,textarea{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none}@-ms-viewport{width:device-width}body{-ms-overflow-style:scrollbar}@media screen and (max-width: 480px){html,body{min-width:320px}}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body{background:#f9f6f0}body.is-preload *,body.is-preload *:before,body.is-preload *:after{-moz-animation:none !important;-webkit-animation:none !important;-ms-animation:none !important;animation:none !important;-moz-transition:none !important;-webkit-transition:none !important;-ms-transition:none !important;transition:none !important}body.is-resizing *,body.is-resizing *:before,body.is-resizing *:after{-moz-animation:none !important;-webkit-animation:none !important;-ms-animation:none !important;animation:none !important;-moz-transition:none !important;-webkit-transition:none !important;-ms-transition:none !important;transition:none !important}body,input,select,textarea{color:#5c554e;font-family:"Source Sans Pro",Helvetica,sans-serif;font-size:15pt;font-weight:300;letter-spacing:.025em;line-height:1.65}@media screen and (max-width: 1680px){body,input,select,textarea{font-size:11pt}}a{-moz-transition:color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;-webkit-transition:color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;-ms-transition:color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;transition:color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;border-bottom:dotted 1px;color:#e48c71;text-decoration:none}a:hover{border-bottom-color:rgba(0,0,0,0);color:#e48c71 !important}strong,b{color:#38332f;font-weight:300}em,i{font-style:italic}p{margin:0 0 2em 0}h1,h2,h3,h4,h5,h6{color:#38332f;font-weight:300;letter-spacing:.1em;line-height:1.5;margin:0 0 1em 0;text-transform:uppercase}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit;text-decoration:none}h1{font-size:2em}h2{font-size:1.25em}h3{font-size:1.1em}h4{font-size:1em}h5{font-size:.9em}h6{font-size:.7em}@media screen and (max-width: 736px){h2{font-size:1em}h3{font-size:.9em}h4{font-size:.8em}h5{font-size:.7em}h6{font-size:.7em}}sub{font-size:.8em;position:relative;top:.5em}sup{font-size:.8em;position:relative;top:-0.5em}blockquote{border-left:4px #e6dccc;font-style:italic;margin:0 0 2em 0;padding:.5em 0 .5em 2em}code{background:#f0e5d6;border:solid 1px #e6dccc;font-family:"Courier New",monospace;font-size:.9em;margin:0 .25em;padding:.25em .65em}pre{-webkit-overflow-scrolling:touch;font-family:"Courier New",monospace;font-size:.9em;margin:0 0 2em 0}pre code{display:block;line-height:1.75;padding:1em 1.5em;overflow-x:auto}hr{border:0;border-bottom:solid 1px #e6dccc;margin:2em 0}hr.major{margin:3em 0}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}input[type=submit],input[type=reset],input[type=button],button,.button{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;-moz-transition:background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;-webkit-transition:background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;-ms-transition:background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;transition:background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;background-color:rgba(0,0,0,0);border:0;border-radius:0;box-shadow:inset 0 0 0 2px #e6dccc;color:#38332f !important;cursor:pointer;display:inline-block;font-size:.9em;font-weight:300;height:3.0555555556em;letter-spacing:.1em;line-height:3.0555555556em;padding:0 2.5em;text-align:center;text-decoration:none;text-transform:uppercase;white-space:nowrap}input[type=submit]:hover,input[type=reset]:hover,input[type=button]:hover,button:hover,.button:hover{box-shadow:inset 0 0 0 2px #e48c71;color:#e48c71 !important}input[type=submit]:hover:active,input[type=reset]:hover:active,input[type=button]:hover:active,button:hover:active,.button:hover:active{background-color:rgba(228,140,113,.15);color:#e48c71 !important}input[type=submit].icon,input[type=reset].icon,input[type=button].icon,button.icon,.button.icon{padding-left:1.35em}input[type=submit].icon:before,input[type=reset].icon:before,input[type=button].icon:before,button.icon:before,.button.icon:before{margin-right:.5em}input[type=submit].fit,input[type=reset].fit,input[type=button].fit,button.fit,.button.fit{width:100%}input[type=submit].small,input[type=reset].small,input[type=button].small,button.small,.button.small{font-size:.8em}input[type=submit].large,input[type=reset].large,input[type=button].large,button.large,.button.large{font-size:1.35em}input[type=submit].primary,input[type=reset].primary,input[type=button].primary,button.primary,.button.primary{background-color:#e48c71;box-shadow:none}input[type=submit].primary:hover,input[type=reset].primary:hover,input[type=button].primary:hover,button.primary:hover,.button.primary:hover{background-color:#ecaf9c;color:#38332f !important}input[type=submit].primary:hover:active,input[type=reset].primary:hover:active,input[type=button].primary:hover:active,button.primary:hover:active,.button.primary:hover:active{background-color:#dc6946}input[type=submit].disabled,input[type=submit]:disabled,input[type=reset].disabled,input[type=reset]:disabled,input[type=button].disabled,input[type=button]:disabled,button.disabled,button:disabled,.button.disabled,.button:disabled{pointer-events:none;opacity:.35}form{margin:0 0 2em 0}form>:last-child{margin-bottom:0}form>.fields{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;-moz-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:calc(100% + 3em);margin:-1.5em 0 2em -1.5em}form>.fields>.field{-moz-flex-grow:0;-webkit-flex-grow:0;-ms-flex-grow:0;flex-grow:0;-moz-flex-shrink:0;-webkit-flex-shrink:0;-ms-flex-shrink:0;flex-shrink:0;padding:1.5em 0 0 1.5em;width:calc(100% - 1.5em)}form>.fields>.field.half{width:calc(50% - 0.75em)}form>.fields>.field.third{width:calc(100%/3 - 0.5em)}form>.fields>.field.quarter{width:calc(25% - 0.375em)}@media screen and (max-width: 736px){form>.fields{width:calc(100% + 3em);margin:-1.5em 0 2em -1.5em}form>.fields>.field{padding:1.5em 0 0 1.5em;width:calc(100% - 1.5em)}form>.fields>.field.half{width:calc(100% - 1.5em)}form>.fields>.field.third{width:calc(100% - 1.5em)}form>.fields>.field.quarter{width:calc(100% - 1.5em)}}label{color:#38332f;display:block;font-size:.9em;font-weight:300;margin:0 0 1em 0}input[type=text],input[type=password],input[type=email],input[type=tel],input[type=search],input[type=url],select,textarea{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;background:#f0e5d6;border:0;border-radius:0;color:#5c554e;display:block;outline:0;padding:0 1em;text-decoration:none;width:100%}input[type=text]:invalid,input[type=password]:invalid,input[type=email]:invalid,input[type=tel]:invalid,input[type=search]:invalid,input[type=url]:invalid,select:invalid,textarea:invalid{box-shadow:none}input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=tel]:focus,input[type=search]:focus,input[type=url]:focus,select:focus,textarea:focus{box-shadow:inset 0 0 0 2px #e48c71}select{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'%3E%3Cpath d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='%23e6dccc' /%3E%3C/svg%3E");background-size:1.25rem;background-repeat:no-repeat;background-position:calc(100% - 1rem) center;height:2.75em;padding-right:2.75em;text-overflow:ellipsis}select option{color:#38332f;background:#f9f6f0}select:focus::-ms-value{background-color:rgba(0,0,0,0)}select::-ms-expand{display:none}input[type=text],input[type=password],input[type=email],input[type=tel],input[type=search],input[type=url],select{height:2.75em}textarea{padding:.75em 1em}input[type=checkbox],input[type=radio]{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;display:block;float:left;margin-right:-2em;opacity:0;width:1em;z-index:-1}input[type=checkbox]+label,input[type=radio]+label{text-decoration:none;color:#5c554e;cursor:pointer;display:inline-block;font-size:1em;font-weight:300;padding-left:2.4em;padding-right:.75em;position:relative}input[type=checkbox]+label:before,input[type=radio]+label:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none !important;font-family:"Font Awesome 5 Free";font-weight:900}input[type=checkbox]+label:before,input[type=radio]+label:before{background:#f0e5d6;content:"";display:inline-block;font-size:.8em;height:2.0625em;left:0;line-height:2.0625em;position:absolute;text-align:center;top:0;width:2.0625em}input[type=checkbox]:checked+label:before,input[type=radio]:checked+label:before{background:#e48c71;border-color:#e48c71;color:#38332f;content:""}input[type=checkbox]:focus+label:before,input[type=radio]:focus+label:before{box-shadow:0 0 0 2px #e48c71}input[type=radio]+label:before{border-radius:100%}::-webkit-input-placeholder{color:#7a746e !important;opacity:1}:-moz-placeholder{color:#7a746e !important;opacity:1}::-moz-placeholder{color:#7a746e !important;opacity:1}:-ms-input-placeholder{color:#7a746e !important;opacity:1}.icon{text-decoration:none;border-bottom:none;position:relative}.icon:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none !important;font-family:"Font Awesome 5 Free";font-weight:400}.icon>.label{display:none}.icon:before{line-height:inherit}.icon.solid:before{font-weight:900}.icon.brands:before{font-family:"Font Awesome 5 Brands"}ol{list-style:decimal;margin:0 0 2em 0;padding-left:1.25em}ol li{padding-left:.25em}ul{list-style:disc;margin:0 0 2em 0;padding-left:1em}ul li{padding-left:.5em}ul.alt{list-style:none;padding-left:0}ul.alt li{border-top:solid 1px #e6dccc;padding:.5em 0}ul.alt li:first-child{border-top:0;padding-top:0}dl{margin:0 0 2em 0}dl dt{display:block;font-weight:300;margin:0 0 1em 0}dl dd{margin-left:2em}ul.actions{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;cursor:default;list-style:none;margin-left:-1em;padding-left:0}ul.actions li{padding:0 0 0 1em;vertical-align:middle}ul.actions.special{-moz-justify-content:center;-webkit-justify-content:center;-ms-justify-content:center;justify-content:center;width:100%;margin-left:0}ul.actions.special li:first-child{padding-left:0}ul.actions.stacked{-moz-flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-left:0}ul.actions.stacked li{padding:1.3em 0 0 0}ul.actions.stacked li:first-child{padding-top:0}ul.actions.fit{width:calc(100% + 1em)}ul.actions.fit li{-moz-flex-grow:1;-webkit-flex-grow:1;-ms-flex-grow:1;flex-grow:1;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;width:100%}ul.actions.fit li>*{width:100%}ul.actions.fit.stacked{width:100%}@media screen and (max-width: 480px){ul.actions:not(.fixed){-moz-flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-left:0;width:100% !important}ul.actions:not(.fixed) li{-moz-flex-grow:1;-webkit-flex-grow:1;-ms-flex-grow:1;flex-grow:1;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;padding:1em 0 0 0;text-align:center;width:100%}ul.actions:not(.fixed) li>*{width:100%}ul.actions:not(.fixed) li:first-child{padding-top:0}ul.actions:not(.fixed) li input[type=submit],ul.actions:not(.fixed) li input[type=reset],ul.actions:not(.fixed) li input[type=button],ul.actions:not(.fixed) li button,ul.actions:not(.fixed) li .button{width:100%}ul.actions:not(.fixed) li input[type=submit].icon:before,ul.actions:not(.fixed) li input[type=reset].icon:before,ul.actions:not(.fixed) li input[type=button].icon:before,ul.actions:not(.fixed) li button.icon:before,ul.actions:not(.fixed) li .button.icon:before{margin-left:-0.5rem}}ul.icons{cursor:default;list-style:none;padding-left:0}ul.icons li{display:inline-block;padding:0 1em 0 0}ul.icons li:last-child{padding-right:0}ul.icons li .icon{color:#9e9790}ul.icons li .icon:before{font-size:1.5em}.table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}table{margin:0 0 2em 0;width:100%}table tbody tr{border:solid 1px #e6dccc;border-left:0;border-right:0}table tbody tr:nth-child(2n+1){background-color:#f0e5d6}table td{padding:.75em .75em}table th{color:#38332f;font-size:.9em;font-weight:300;padding:0 .75em .75em .75em;text-align:left}table thead{border-bottom:solid 2px #e6dccc}table tfoot{border-top:solid 2px #e6dccc}table.alt{border-collapse:separate}table.alt tbody tr td{border:solid 1px #e6dccc;border-left-width:0;border-top-width:0}table.alt tbody tr td:first-child{border-left-width:1px}table.alt tbody tr:first-child td{border-top-width:1px}table.alt thead{border-bottom:0}table.alt tfoot{border-top:0}.panel{padding:4em 4em 2em 4em;-moz-transform:translateY(100vh);-webkit-transform:translateY(100vh);-ms-transform:translateY(100vh);transform:translateY(100vh);-moz-transition:-moz-transform 0.5s ease;-webkit-transition:-webkit-transform 0.5s ease;-ms-transition:-ms-transform 0.5s ease;transition:transform 0.5s ease;-webkit-overflow-scrolling:touch;background:rgba(249,246,240,.975);bottom:4em;left:0;max-height:calc(80vh - 4em);overflow-y:auto;position:fixed;width:100%;z-index:10001}.panel.active{-moz-transform:translateY(1px);-webkit-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px)}.panel>.inner{margin:0 auto;max-width:100%;width:75em}.panel>.inner.split{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex}.panel>.inner.split>div{margin-left:4em;width:50%}.panel>.inner.split>:first-child{margin-left:0}.panel>.closer{-moz-transition:opacity 0.2s ease-in-out;-webkit-transition:opacity 0.2s ease-in-out;-ms-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out;background-image:url("images/close.svg");background-position:center;background-repeat:no-repeat;background-size:3em;cursor:pointer;height:5em;opacity:.25;position:absolute;right:0;top:0;width:5em;z-index:2}.panel>.closer:hover{opacity:1}@media screen and (max-width: 1280px){.panel{padding:3em 3em 1em 3em}.panel>.inner.split>div{margin-left:3em}.panel>.closer{background-size:2.5em;background-position:75% 25%}}@media screen and (max-width: 980px){.panel>.inner.split{-moz-flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.panel>.inner.split>div{margin-left:0;width:100%}}@media screen and (max-width: 736px){.panel{-moz-transform:translateY(-100vh);-webkit-transform:translateY(-100vh);-ms-transform:translateY(-100vh);transform:translateY(-100vh);padding:4em 2em 2em 2em;bottom:auto;top:calc(4em - 1px)}.panel.active{-moz-transform:translateY(0);-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.poptrox-overlay{-webkit-tap-highlight-color:rgba(255,255,255,0)}.poptrox-popup{background:rgba(238,232,221,.925);box-shadow:0 1em 3em .5em rgba(0,0,0,.25);cursor:default}.poptrox-popup:before{-moz-transition:opacity 0.2s ease-in-out;-webkit-transition:opacity 0.2s ease-in-out;-ms-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out;background-image:-moz-linear-gradient(to left, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0)), -moz-linear-gradient(to right, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0));background-image:-webkit-linear-gradient(to left, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0)), -webkit-linear-gradient(to right, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0));background-image:-ms-linear-gradient(to left, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0)), -ms-linear-gradient(to right, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0));background-image:linear-gradient(to left, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0)), linear-gradient(to right, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0));content:"";display:block;height:100%;left:0;position:absolute;top:0;width:100%;z-index:1;opacity:1}.poptrox-popup .closer{-moz-transition:opacity 0.2s ease-in-out;-webkit-transition:opacity 0.2s ease-in-out;-ms-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out;background-image:url("images/close.svg");background-position:center;background-repeat:no-repeat;background-size:3em;height:5em;opacity:0;position:absolute;right:0;top:0;width:5em;z-index:2}.poptrox-popup .nav-previous,.poptrox-popup .nav-next{-moz-transition:opacity 0.2s ease-in-out;-webkit-transition:opacity 0.2s ease-in-out;-ms-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out;background-image:url("images/arrow.svg");background-position:center;background-repeat:no-repeat;background-size:5em;cursor:pointer;height:8em;margin-top:-4em;opacity:0;position:absolute;top:50%;width:6em;z-index:2}.poptrox-popup .nav-previous{-moz-transform:scaleX(-1);-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1);left:0}.poptrox-popup .nav-next{right:0}.poptrox-popup .caption{padding:2em 2em .1em 2em;background:rgba(246,240,228,.95);bottom:0;cursor:default;left:0;position:absolute;text-align:left;width:100%;z-index:2}.poptrox-popup .caption h2,.poptrox-popup .caption h3,.poptrox-popup .caption h4,.poptrox-popup .caption h5,.poptrox-popup .caption h6{margin:0 0 .5em 0;color:#4a4a4a !important}.poptrox-popup .caption p,.poptrox-popup .caption span,.poptrox-popup .caption i,.poptrox-popup .caption strong,.poptrox-popup .caption em{color:#5c554e !important}.poptrox-popup .loader{-moz-animation:spinner 1s infinite linear !important;-webkit-animation:spinner 1s infinite linear !important;-ms-animation:spinner 1s infinite linear !important;animation:spinner 1s infinite linear !important;background-image:url("images/spinner.svg");background-position:center;background-repeat:no-repeat;background-size:contain;display:block;font-size:2em;height:2em;left:50%;line-height:2em;margin:-1em 0 0 -1em;opacity:.25;position:absolute;text-align:center;top:50%;width:2em}.poptrox-popup:hover .closer,.poptrox-popup:hover .nav-previous,.poptrox-popup:hover .nav-next{opacity:.5}.poptrox-popup:hover .closer:hover,.poptrox-popup:hover .nav-previous:hover,.poptrox-popup:hover .nav-next:hover{opacity:1}.poptrox-popup.loading:before{opacity:0}body.touch .poptrox-popup .closer,body.touch .poptrox-popup .nav-previous,body.touch .poptrox-popup .nav-next{opacity:1 !important}@media screen and (max-width: 980px){.poptrox-popup .closer{background-size:3em}.poptrox-popup .nav-previous,.poptrox-popup .nav-next{background-size:4em}}@media screen and (max-width: 736px){.poptrox-popup:before{display:none}.poptrox-popup .caption{display:none !important}.poptrox-popup .closer,.poptrox-popup .nav-previous,.poptrox-popup .nav-next{display:none !important}}#wrapper{-moz-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -moz-filter 0.5s ease;-webkit-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -webkit-filter 0.5s ease;-ms-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -ms-filter 0.5s ease;transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, filter 0.5s ease;position:relative}#wrapper:after{pointer-events:none;-moz-transition:opacity 0.5s ease, visibility 0.5s;-webkit-transition:opacity 0.5s ease, visibility 0.5s;-ms-transition:opacity 0.5s ease, visibility 0.5s;transition:opacity 0.5s ease, visibility 0.5s;background:rgba(249,246,240,.95);content:"";display:block;height:100%;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:1}body.ie #wrapper:after{background:rgba(249,246,240,.95)}body.modal-active #wrapper{-moz-filter:blur(8px);-webkit-filter:blur(8px);-ms-filter:blur(8px);filter:blur(8px)}body.modal-active #wrapper:after{pointer-events:auto;opacity:1;visibility:visible;z-index:10003}#wrapper:before{-moz-animation:spinner 1s infinite linear !important;-webkit-animation:spinner 1s infinite linear !important;-ms-animation:spinner 1s infinite linear !important;animation:spinner 1s infinite linear !important;pointer-events:none;-moz-transition:top 0.75s ease-in-out, opacity 0.35s ease-out, visibility 0.35s;-webkit-transition:top 0.75s ease-in-out, opacity 0.35s ease-out, visibility 0.35s;-ms-transition:top 0.75s ease-in-out, opacity 0.35s ease-out, visibility 0.35s;transition:top 0.75s ease-in-out, opacity 0.35s ease-out, visibility 0.35s;background-image:url("images/spinner.svg");background-position:center;background-repeat:no-repeat;background-size:contain;content:"";display:block;font-size:2em;height:2em;left:50%;line-height:2em;margin:-1em 0 0 -1em;opacity:0;position:fixed;text-align:center;top:75%;visibility:hidden;width:2em}body.is-preload #wrapper:before{-moz-transition:opacity 1s ease-out !important;-webkit-transition:opacity 1s ease-out !important;-ms-transition:opacity 1s ease-out !important;transition:opacity 1s ease-out !important;-moz-transition-delay:0.5s !important;-webkit-transition-delay:0.5s !important;-ms-transition-delay:0.5s !important;transition-delay:0.5s !important;opacity:.25;top:50%;visibility:visible}body{padding:0 0 4em 0}#header{-moz-transform:translateY(0);-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-moz-transition:-moz-transform 1s ease;-webkit-transition:-webkit-transform 1s ease;-ms-transition:-ms-transform 1s ease;transition:transform 1s ease;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;background:#eee8dd;bottom:-1em;height:5em;left:0;line-height:4em;padding:0 1.5em;position:fixed;user-select:none;width:100%;z-index:10002}body.is-preload #header{-moz-transform:translateY(4em);-webkit-transform:translateY(4em);-ms-transform:translateY(4em);transform:translateY(4em)}#header h1{color:#5c554e;display:inline-block;font-size:1em;line-height:1;margin:0;vertical-align:middle}#header h1 a{border:0;color:inherit}#header h1 a:hover{color:inherit !important}#header nav{position:absolute;right:0;top:0}#header nav>ul{list-style:none;margin:0;padding:0}#header nav>ul>li{display:inline-block;padding:0}#header nav>ul>li a{-moz-transition:background-color 0.5s ease;-webkit-transition:background-color 0.5s ease;-ms-transition:background-color 0.5s ease;transition:background-color 0.5s ease;border:0;color:#38332f;display:inline-block;letter-spacing:.1em;padding:0 1.65em;text-transform:uppercase}#header nav>ul>li a.icon:before{color:#9e9790;float:right;margin-left:.75em}#header nav>ul>li a:hover{color:#38332f !important}#header nav>ul>li a.active{background-color:#f9f6f0}@media screen and (max-width: 736px){body{padding:4em 0 0 0}#header{-moz-transform:translateY(0);-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);bottom:auto;height:4em;padding:0 1em;top:0}body.is-preload #header{-moz-transform:translateY(-3.4em);-webkit-transform:translateY(-3.4em);-ms-transform:translateY(-3.4em);transform:translateY(-3.4em)}#header h1{font-size:.8em;max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#header nav>ul>li a{font-size:0;padding:0 .9em;line-height:4em}#header nav>ul>li a i{font-size:1.3rem;vertical-align:middle}}#main{-moz-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -moz-filter 0.5s ease;-webkit-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -webkit-filter 0.5s ease;-ms-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -ms-filter 0.5s ease;transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, filter 0.5s ease;display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;-moz-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-tap-highlight-color:rgba(255,255,255,0)}#main .thumb{-moz-transition:opacity 1.25s ease-in-out;-webkit-transition:opacity 1.25s ease-in-out;-ms-transition:opacity 1.25s ease-in-out;transition:opacity 1.25s ease-in-out;pointer-events:auto;-webkit-tap-highlight-color:rgba(255,255,255,0);opacity:1;overflow:hidden;position:relative}#main .thumb:after{background-image:-moz-linear-gradient(to top, rgba(10,17,25,0.35) 5%, rgba(10,17,25,0) 35%);background-image:-webkit-linear-gradient(to top, rgba(10,17,25,0.35) 5%, rgba(10,17,25,0) 35%);background-image:-ms-linear-gradient(to top, rgba(10,17,25,0.35) 5%, rgba(10,17,25,0) 35%);background-image:linear-gradient(to top, rgba(10,17,25,0.35) 5%, rgba(10,17,25,0) 35%);pointer-events:none;background-size:cover;content:"";display:block;height:100%;left:0;position:absolute;top:0;width:100%}#main .thumb>.image{-webkit-tap-highlight-color:rgba(255,255,255,0);background-position:center;background-repeat:no-repeat;background-size:cover;border:0;height:100%;left:0;position:absolute;top:0;width:100%}#main .thumb>h2{pointer-events:none;bottom:1.875em;font-size:.8em;left:2.1875em;margin:0;position:absolute;z-index:1}#main .thumb>p{display:none}#main:after{pointer-events:none;-moz-transition:opacity 0.5s ease, visibility 0.5s;-webkit-transition:opacity 0.5s ease, visibility 0.5s;-ms-transition:opacity 0.5s ease, visibility 0.5s;transition:opacity 0.5s ease, visibility 0.5s;background:rgba(249,246,240,.85);content:"";display:block;height:100%;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:1}body.ie #main:after{background:rgba(249,246,240,.9)}body.content-active #main{-moz-filter:blur(6px);-webkit-filter:blur(6px);-ms-filter:blur(6px);filter:blur(6px)}body.content-active #main:after{pointer-events:auto;opacity:1;visibility:visible}body.is-preload #main .thumb{pointer-events:none;opacity:0}#main .thumb{-moz-transition-delay:2.525s;-webkit-transition-delay:2.525s;-ms-transition-delay:2.525s;transition-delay:2.525s;height:calc(40vh - 2em);min-height:20em;width:25%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}#main .thumb:nth-child(4){-moz-transition-delay:1.1s;-webkit-transition-delay:1.1s;-ms-transition-delay:1.1s;transition-delay:1.1s}#main .thumb:nth-child(5){-moz-transition-delay:1.25s;-webkit-transition-delay:1.25s;-ms-transition-delay:1.25s;transition-delay:1.25s}#main .thumb:nth-child(6){-moz-transition-delay:1.4s;-webkit-transition-delay:1.4s;-ms-transition-delay:1.4s;transition-delay:1.4s}#main .thumb:nth-child(7){-moz-transition-delay:1.55s;-webkit-transition-delay:1.55s;-ms-transition-delay:1.55s;transition-delay:1.55s}#main .thumb:nth-child(8){-moz-transition-delay:1.7s;-webkit-transition-delay:1.7s;-ms-transition-delay:1.7s;transition-delay:1.7s}#main .thumb:nth-child(9){-moz-transition-delay:1.85s;-webkit-transition-delay:1.85s;-ms-transition-delay:1.85s;transition-delay:1.85s}#main .thumb:nth-child(10){-moz-transition-delay:2s;-webkit-transition-delay:2s;-ms-transition-delay:2s;transition-delay:2s}#main .thumb:nth-child(11){-moz-transition-delay:2.15s;-webkit-transition-delay:2.15s;-ms-transition-delay:2.15s;transition-delay:2.15s}#main .thumb:nth-child(12){-moz-transition-delay:2.3s;-webkit-transition-delay:2.3s;-ms-transition-delay:2.3s;transition-delay:2.3s}@media screen and (max-width: 1680px){#main .thumb{-moz-transition-delay:2.075s;-webkit-transition-delay:2.075s;-ms-transition-delay:2.075s;transition-delay:2.075s;height:calc(40vh - 2em);min-height:20em;width:33.3333333333%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}#main .thumb:nth-child(4){-moz-transition-delay:1.1s;-webkit-transition-delay:1.1s;-ms-transition-delay:1.1s;transition-delay:1.1s}#main .thumb:nth-child(5){-moz-transition-delay:1.25s;-webkit-transition-delay:1.25s;-ms-transition-delay:1.25s;transition-delay:1.25s}#main .thumb:nth-child(6){-moz-transition-delay:1.4s;-webkit-transition-delay:1.4s;-ms-transition-delay:1.4s;transition-delay:1.4s}#main .thumb:nth-child(7){-moz-transition-delay:1.55s;-webkit-transition-delay:1.55s;-ms-transition-delay:1.55s;transition-delay:1.55s}#main .thumb:nth-child(8){-moz-transition-delay:1.7s;-webkit-transition-delay:1.7s;-ms-transition-delay:1.7s;transition-delay:1.7s}#main .thumb:nth-child(9){-moz-transition-delay:1.85s;-webkit-transition-delay:1.85s;-ms-transition-delay:1.85s;transition-delay:1.85s}}@media screen and (max-width: 1280px){#main .thumb{-moz-transition-delay:1.625s;-webkit-transition-delay:1.625s;-ms-transition-delay:1.625s;transition-delay:1.625s;height:calc(40vh - 2em);min-height:20em;width:50%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}#main .thumb:nth-child(4){-moz-transition-delay:1.1s;-webkit-transition-delay:1.1s;-ms-transition-delay:1.1s;transition-delay:1.1s}#main .thumb:nth-child(5){-moz-transition-delay:1.25s;-webkit-transition-delay:1.25s;-ms-transition-delay:1.25s;transition-delay:1.25s}#main .thumb:nth-child(6){-moz-transition-delay:1.4s;-webkit-transition-delay:1.4s;-ms-transition-delay:1.4s;transition-delay:1.4s}}@media screen and (max-width: 980px){#main .thumb{-moz-transition-delay:2.075s;-webkit-transition-delay:2.075s;-ms-transition-delay:2.075s;transition-delay:2.075s;height:calc(28.5714285714vh - 1.3333333333em);min-height:18em;width:50%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}#main .thumb:nth-child(4){-moz-transition-delay:1.1s;-webkit-transition-delay:1.1s;-ms-transition-delay:1.1s;transition-delay:1.1s}#main .thumb:nth-child(5){-moz-transition-delay:1.25s;-webkit-transition-delay:1.25s;-ms-transition-delay:1.25s;transition-delay:1.25s}#main .thumb:nth-child(6){-moz-transition-delay:1.4s;-webkit-transition-delay:1.4s;-ms-transition-delay:1.4s;transition-delay:1.4s}#main .thumb:nth-child(7){-moz-transition-delay:1.55s;-webkit-transition-delay:1.55s;-ms-transition-delay:1.55s;transition-delay:1.55s}#main .thumb:nth-child(8){-moz-transition-delay:1.7s;-webkit-transition-delay:1.7s;-ms-transition-delay:1.7s;transition-delay:1.7s}#main .thumb:nth-child(9){-moz-transition-delay:1.85s;-webkit-transition-delay:1.85s;-ms-transition-delay:1.85s;transition-delay:1.85s}}@media screen and (max-width: 480px){#main .thumb{-moz-transition-delay:2.075s;-webkit-transition-delay:2.075s;-ms-transition-delay:2.075s;transition-delay:2.075s;height:calc(28.5714285714vh - 1.3333333333em);min-height:12em;width:50%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}#main .thumb:nth-child(4){-moz-transition-delay:1.1s;-webkit-transition-delay:1.1s;-ms-transition-delay:1.1s;transition-delay:1.1s}#main .thumb:nth-child(5){-moz-transition-delay:1.25s;-webkit-transition-delay:1.25s;-ms-transition-delay:1.25s;transition-delay:1.25s}#main .thumb:nth-child(6){-moz-transition-delay:1.4s;-webkit-transition-delay:1.4s;-ms-transition-delay:1.4s;transition-delay:1.4s}#main .thumb:nth-child(7){-moz-transition-delay:1.55s;-webkit-transition-delay:1.55s;-ms-transition-delay:1.55s;transition-delay:1.55s}#main .thumb:nth-child(8){-moz-transition-delay:1.7s;-webkit-transition-delay:1.7s;-ms-transition-delay:1.7s;transition-delay:1.7s}#main .thumb:nth-child(9){-moz-transition-delay:1.85s;-webkit-transition-delay:1.85s;-ms-transition-delay:1.85s;transition-delay:1.85s}}#footer .copyright{color:#9e9790;font-size:.9em}#footer .copyright a{color:inherit}.text-fg{color:#a0a0a1}#selection-toolbar{position:fixed;top:0;left:0;width:100%;background:rgba(31,34,36,.95);padding:.75em 1.5em;display:flex;align-items:center;gap:1em;z-index:10003;transform:translateY(-100%);transition:transform .3s ease;box-sizing:border-box}#selection-toolbar.visible{transform:translateY(0)}#selection-toolbar #sel-count{color:#fff;font-weight:400;margin-right:auto;white-space:nowrap}#selection-toolbar button{white-space:nowrap}body.selection-mode #main .thumb{cursor:pointer;position:relative}body.selection-mode #main .thumb::before{content:"";position:absolute;bottom:.6em;right:.6em;width:1.6em;height:1.6em;border:2px solid rgba(255,255,255,.8);border-radius:4px;background:rgba(0,0,0,.5);z-index:2;transition:all .2s ease;pointer-events:none}body.selection-mode #main .thumb .image{opacity:.85;transition:opacity .2s ease}body.selection-mode #main .thumb:active .image{opacity:.6}body.selection-mode #main .thumb.selected::before{background:#34a58e;border-color:#34a58e}body.selection-mode #main .thumb.selected .image{opacity:1;outline:3px solid #34a58e;outline-offset:-3px}@media screen and (max-width: 736px){#selection-toolbar{top:4em;padding:.6em 1em;gap:.6em}#selection-toolbar #sel-count{font-size:.9em}#selection-toolbar button{font-size:.85em;padding:.5em 1em}body.selection-mode #main .thumb::before{bottom:.3em;right:.3em;width:2em;height:2em;border-width:2.5px}body.selection-mode #main .thumb.selected .image{outline-width:4px}}#footer .presentify{margin:0 0 1.4em 0;display:grid;grid-template-columns:auto 1fr;column-gap:1rem;align-items:center}#footer .presentify .presentify-logo{display:flex;align-items:center;justify-content:center}#footer .presentify .presentify-logo a{display:flex;align-items:center;justify-content:center;border:0}#footer .presentify .presentify-logo img{width:72px;height:72px;display:block}#footer .presentify .presentify-text{margin:0}
\ No newline at end of file
diff --git a/assets/css/main.min.css b/assets/css/main.min.css
index cc94d1c..970a6cd 100644
--- a/assets/css/main.min.css
+++ b/assets/css/main.min.css
@@ -1 +1 @@
-@-moz-keyframes spinner{0%{-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes spinner{0%{-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes spinner{0%{-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spinner{0%{-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}body{-webkit-text-size-adjust:none}mark{background-color:rgba(0,0,0,0);color:inherit}input::-moz-focus-inner{border:0;padding:0}input,select,textarea{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none}@-ms-viewport{width:device-width}body{-ms-overflow-style:scrollbar}@media screen and (max-width: 480px){html,body{min-width:320px}}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body{background:#242629}body.is-preload *,body.is-preload *:before,body.is-preload *:after{-moz-animation:none !important;-webkit-animation:none !important;-ms-animation:none !important;animation:none !important;-moz-transition:none !important;-webkit-transition:none !important;-ms-transition:none !important;transition:none !important}body.is-resizing *,body.is-resizing *:before,body.is-resizing *:after{-moz-animation:none !important;-webkit-animation:none !important;-ms-animation:none !important;animation:none !important;-moz-transition:none !important;-webkit-transition:none !important;-ms-transition:none !important;transition:none !important}body,input,select,textarea{color:#a0a0a1;font-family:"Source Sans Pro",Helvetica,sans-serif;font-size:15pt;font-weight:300;letter-spacing:.025em;line-height:1.65}@media screen and (max-width: 1680px){body,input,select,textarea{font-size:11pt}}a{-moz-transition:color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;-webkit-transition:color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;-ms-transition:color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;transition:color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;border-bottom:dotted 1px;color:#34a58e;text-decoration:none}a:hover{border-bottom-color:rgba(0,0,0,0);color:#34a58e !important}strong,b{color:#fff;font-weight:300}em,i{font-style:italic}p{margin:0 0 2em 0}h1,h2,h3,h4,h5,h6{color:#fff;font-weight:300;letter-spacing:.1em;line-height:1.5;margin:0 0 1em 0;text-transform:uppercase}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit;text-decoration:none}h1{font-size:2em}h2{font-size:1.25em}h3{font-size:1.1em}h4{font-size:1em}h5{font-size:.9em}h6{font-size:.7em}@media screen and (max-width: 736px){h2{font-size:1em}h3{font-size:.9em}h4{font-size:.8em}h5{font-size:.7em}h6{font-size:.7em}}sub{font-size:.8em;position:relative;top:.5em}sup{font-size:.8em;position:relative;top:-0.5em}blockquote{border-left:4px #36383c;font-style:italic;margin:0 0 2em 0;padding:.5em 0 .5em 2em}code{background:#34363b;border:solid 1px #36383c;font-family:"Courier New",monospace;font-size:.9em;margin:0 .25em;padding:.25em .65em}pre{-webkit-overflow-scrolling:touch;font-family:"Courier New",monospace;font-size:.9em;margin:0 0 2em 0}pre code{display:block;line-height:1.75;padding:1em 1.5em;overflow-x:auto}hr{border:0;border-bottom:solid 1px #36383c;margin:2em 0}hr.major{margin:3em 0}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}input[type=submit],input[type=reset],input[type=button],button,.button{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;-moz-transition:background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;-webkit-transition:background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;-ms-transition:background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;transition:background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;background-color:rgba(0,0,0,0);border:0;border-radius:0;box-shadow:inset 0 0 0 2px #36383c;color:#fff !important;cursor:pointer;display:inline-block;font-size:.9em;font-weight:300;height:3.0555555556em;letter-spacing:.1em;line-height:3.0555555556em;padding:0 2.5em;text-align:center;text-decoration:none;text-transform:uppercase;white-space:nowrap}input[type=submit]:hover,input[type=reset]:hover,input[type=button]:hover,button:hover,.button:hover{box-shadow:inset 0 0 0 2px #34a58e;color:#34a58e !important}input[type=submit]:hover:active,input[type=reset]:hover:active,input[type=button]:hover:active,button:hover:active,.button:hover:active{background-color:rgba(52,165,142,.15);color:#34a58e !important}input[type=submit].icon,input[type=reset].icon,input[type=button].icon,button.icon,.button.icon{padding-left:1.35em}input[type=submit].icon:before,input[type=reset].icon:before,input[type=button].icon:before,button.icon:before,.button.icon:before{margin-right:.5em}input[type=submit].fit,input[type=reset].fit,input[type=button].fit,button.fit,.button.fit{width:100%}input[type=submit].small,input[type=reset].small,input[type=button].small,button.small,.button.small{font-size:.8em}input[type=submit].large,input[type=reset].large,input[type=button].large,button.large,.button.large{font-size:1.35em}input[type=submit].primary,input[type=reset].primary,input[type=button].primary,button.primary,.button.primary{background-color:#34a58e;box-shadow:none}input[type=submit].primary:hover,input[type=reset].primary:hover,input[type=button].primary:hover,button.primary:hover,.button.primary:hover{background-color:#47c5ab;color:#fff !important}input[type=submit].primary:hover:active,input[type=reset].primary:hover:active,input[type=button].primary:hover:active,button.primary:hover:active,.button.primary:hover:active{background-color:#287e6d}input[type=submit].disabled,input[type=submit]:disabled,input[type=reset].disabled,input[type=reset]:disabled,input[type=button].disabled,input[type=button]:disabled,button.disabled,button:disabled,.button.disabled,.button:disabled{pointer-events:none;opacity:.35}form{margin:0 0 2em 0}form>:last-child{margin-bottom:0}form>.fields{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;-moz-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:calc(100% + 3em);margin:-1.5em 0 2em -1.5em}form>.fields>.field{-moz-flex-grow:0;-webkit-flex-grow:0;-ms-flex-grow:0;flex-grow:0;-moz-flex-shrink:0;-webkit-flex-shrink:0;-ms-flex-shrink:0;flex-shrink:0;padding:1.5em 0 0 1.5em;width:calc(100% - 1.5em)}form>.fields>.field.half{width:calc(50% - 0.75em)}form>.fields>.field.third{width:calc(100%/3 - 0.5em)}form>.fields>.field.quarter{width:calc(25% - 0.375em)}@media screen and (max-width: 736px){form>.fields{width:calc(100% + 3em);margin:-1.5em 0 2em -1.5em}form>.fields>.field{padding:1.5em 0 0 1.5em;width:calc(100% - 1.5em)}form>.fields>.field.half{width:calc(100% - 1.5em)}form>.fields>.field.third{width:calc(100% - 1.5em)}form>.fields>.field.quarter{width:calc(100% - 1.5em)}}label{color:#fff;display:block;font-size:.9em;font-weight:300;margin:0 0 1em 0}input[type=text],input[type=password],input[type=email],input[type=tel],input[type=search],input[type=url],select,textarea{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;background:#34363b;border:0;border-radius:0;color:#a0a0a1;display:block;outline:0;padding:0 1em;text-decoration:none;width:100%}input[type=text]:invalid,input[type=password]:invalid,input[type=email]:invalid,input[type=tel]:invalid,input[type=search]:invalid,input[type=url]:invalid,select:invalid,textarea:invalid{box-shadow:none}input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=tel]:focus,input[type=search]:focus,input[type=url]:focus,select:focus,textarea:focus{box-shadow:inset 0 0 0 2px #34a58e}select{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'%3E%3Cpath d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='%2336383c' /%3E%3C/svg%3E");background-size:1.25rem;background-repeat:no-repeat;background-position:calc(100% - 1rem) center;height:2.75em;padding-right:2.75em;text-overflow:ellipsis}select option{color:#fff;background:#242629}select:focus::-ms-value{background-color:rgba(0,0,0,0)}select::-ms-expand{display:none}input[type=text],input[type=password],input[type=email],input[type=tel],input[type=search],input[type=url],select{height:2.75em}textarea{padding:.75em 1em}input[type=checkbox],input[type=radio]{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;display:block;float:left;margin-right:-2em;opacity:0;width:1em;z-index:-1}input[type=checkbox]+label,input[type=radio]+label{text-decoration:none;color:#a0a0a1;cursor:pointer;display:inline-block;font-size:1em;font-weight:300;padding-left:2.4em;padding-right:.75em;position:relative}input[type=checkbox]+label:before,input[type=radio]+label:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none !important;font-family:"Font Awesome 5 Free";font-weight:900}input[type=checkbox]+label:before,input[type=radio]+label:before{background:#34363b;content:"";display:inline-block;font-size:.8em;height:2.0625em;left:0;line-height:2.0625em;position:absolute;text-align:center;top:0;width:2.0625em}input[type=checkbox]:checked+label:before,input[type=radio]:checked+label:before{background:#34a58e;border-color:#34a58e;color:#fff;content:""}input[type=checkbox]:focus+label:before,input[type=radio]:focus+label:before{box-shadow:0 0 0 2px #34a58e}input[type=radio]+label:before{border-radius:100%}::-webkit-input-placeholder{color:#707071 !important;opacity:1}:-moz-placeholder{color:#707071 !important;opacity:1}::-moz-placeholder{color:#707071 !important;opacity:1}:-ms-input-placeholder{color:#707071 !important;opacity:1}.icon{text-decoration:none;border-bottom:none;position:relative}.icon:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none !important;font-family:"Font Awesome 5 Free";font-weight:400}.icon>.label{display:none}.icon:before{line-height:inherit}.icon.solid:before{font-weight:900}.icon.brands:before{font-family:"Font Awesome 5 Brands"}ol{list-style:decimal;margin:0 0 2em 0;padding-left:1.25em}ol li{padding-left:.25em}ul{list-style:disc;margin:0 0 2em 0;padding-left:1em}ul li{padding-left:.5em}ul.alt{list-style:none;padding-left:0}ul.alt li{border-top:solid 1px #36383c;padding:.5em 0}ul.alt li:first-child{border-top:0;padding-top:0}dl{margin:0 0 2em 0}dl dt{display:block;font-weight:300;margin:0 0 1em 0}dl dd{margin-left:2em}ul.actions{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;cursor:default;list-style:none;margin-left:-1em;padding-left:0}ul.actions li{padding:0 0 0 1em;vertical-align:middle}ul.actions.special{-moz-justify-content:center;-webkit-justify-content:center;-ms-justify-content:center;justify-content:center;width:100%;margin-left:0}ul.actions.special li:first-child{padding-left:0}ul.actions.stacked{-moz-flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-left:0}ul.actions.stacked li{padding:1.3em 0 0 0}ul.actions.stacked li:first-child{padding-top:0}ul.actions.fit{width:calc(100% + 1em)}ul.actions.fit li{-moz-flex-grow:1;-webkit-flex-grow:1;-ms-flex-grow:1;flex-grow:1;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;width:100%}ul.actions.fit li>*{width:100%}ul.actions.fit.stacked{width:100%}@media screen and (max-width: 480px){ul.actions:not(.fixed){-moz-flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-left:0;width:100% !important}ul.actions:not(.fixed) li{-moz-flex-grow:1;-webkit-flex-grow:1;-ms-flex-grow:1;flex-grow:1;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;padding:1em 0 0 0;text-align:center;width:100%}ul.actions:not(.fixed) li>*{width:100%}ul.actions:not(.fixed) li:first-child{padding-top:0}ul.actions:not(.fixed) li input[type=submit],ul.actions:not(.fixed) li input[type=reset],ul.actions:not(.fixed) li input[type=button],ul.actions:not(.fixed) li button,ul.actions:not(.fixed) li .button{width:100%}ul.actions:not(.fixed) li input[type=submit].icon:before,ul.actions:not(.fixed) li input[type=reset].icon:before,ul.actions:not(.fixed) li input[type=button].icon:before,ul.actions:not(.fixed) li button.icon:before,ul.actions:not(.fixed) li .button.icon:before{margin-left:-0.5rem}}ul.icons{cursor:default;list-style:none;padding-left:0}ul.icons li{display:inline-block;padding:0 1em 0 0}ul.icons li:last-child{padding-right:0}ul.icons li .icon{color:#505051}ul.icons li .icon:before{font-size:1.5em}.table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}table{margin:0 0 2em 0;width:100%}table tbody tr{border:solid 1px #36383c;border-left:0;border-right:0}table tbody tr:nth-child(2n+1){background-color:#34363b}table td{padding:.75em .75em}table th{color:#fff;font-size:.9em;font-weight:300;padding:0 .75em .75em .75em;text-align:left}table thead{border-bottom:solid 2px #36383c}table tfoot{border-top:solid 2px #36383c}table.alt{border-collapse:separate}table.alt tbody tr td{border:solid 1px #36383c;border-left-width:0;border-top-width:0}table.alt tbody tr td:first-child{border-left-width:1px}table.alt tbody tr:first-child td{border-top-width:1px}table.alt thead{border-bottom:0}table.alt tfoot{border-top:0}.panel{padding:4em 4em 2em 4em;-moz-transform:translateY(100vh);-webkit-transform:translateY(100vh);-ms-transform:translateY(100vh);transform:translateY(100vh);-moz-transition:-moz-transform 0.5s ease;-webkit-transition:-webkit-transform 0.5s ease;-ms-transition:-ms-transform 0.5s ease;transition:transform 0.5s ease;-webkit-overflow-scrolling:touch;background:rgba(36,38,41,.975);bottom:4em;left:0;max-height:calc(80vh - 4em);overflow-y:auto;position:fixed;width:100%;z-index:10001}.panel.active{-moz-transform:translateY(1px);-webkit-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px)}.panel>.inner{margin:0 auto;max-width:100%;width:75em}.panel>.inner.split{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex}.panel>.inner.split>div{margin-left:4em;width:50%}.panel>.inner.split>:first-child{margin-left:0}.panel>.closer{-moz-transition:opacity 0.2s ease-in-out;-webkit-transition:opacity 0.2s ease-in-out;-ms-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out;background-image:url("images/close.svg");background-position:center;background-repeat:no-repeat;background-size:3em;cursor:pointer;height:5em;opacity:.25;position:absolute;right:0;top:0;width:5em;z-index:2}.panel>.closer:hover{opacity:1}@media screen and (max-width: 1280px){.panel{padding:3em 3em 1em 3em}.panel>.inner.split>div{margin-left:3em}.panel>.closer{background-size:2.5em;background-position:75% 25%}}@media screen and (max-width: 980px){.panel>.inner.split{-moz-flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.panel>.inner.split>div{margin-left:0;width:100%}}@media screen and (max-width: 736px){.panel{-moz-transform:translateY(-100vh);-webkit-transform:translateY(-100vh);-ms-transform:translateY(-100vh);transform:translateY(-100vh);padding:4em 2em 2em 2em;bottom:auto;top:calc(4em - 1px)}.panel.active{-moz-transform:translateY(0);-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.poptrox-overlay{-webkit-tap-highlight-color:rgba(255,255,255,0)}.poptrox-popup{background:rgba(31,34,36,.925);box-shadow:0 1em 3em .5em rgba(0,0,0,.25);cursor:default}.poptrox-popup:before{-moz-transition:opacity 0.2s ease-in-out;-webkit-transition:opacity 0.2s ease-in-out;-ms-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out;background-image:-moz-linear-gradient(to left, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0)), -moz-linear-gradient(to right, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0));background-image:-webkit-linear-gradient(to left, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0)), -webkit-linear-gradient(to right, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0));background-image:-ms-linear-gradient(to left, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0)), -ms-linear-gradient(to right, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0));background-image:linear-gradient(to left, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0)), linear-gradient(to right, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0));content:"";display:block;height:100%;left:0;position:absolute;top:0;width:100%;z-index:1;opacity:1}.poptrox-popup .closer{-moz-transition:opacity 0.2s ease-in-out;-webkit-transition:opacity 0.2s ease-in-out;-ms-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out;background-image:url("images/close.svg");background-position:center;background-repeat:no-repeat;background-size:3em;height:5em;opacity:0;position:absolute;right:0;top:0;width:5em;z-index:2}.poptrox-popup .nav-previous,.poptrox-popup .nav-next{-moz-transition:opacity 0.2s ease-in-out;-webkit-transition:opacity 0.2s ease-in-out;-ms-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out;background-image:url("images/arrow.svg");background-position:center;background-repeat:no-repeat;background-size:5em;cursor:pointer;height:8em;margin-top:-4em;opacity:0;position:absolute;top:50%;width:6em;z-index:2}.poptrox-popup .nav-previous{-moz-transform:scaleX(-1);-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1);left:0}.poptrox-popup .nav-next{right:0}.poptrox-popup .caption{padding:2em 2em .1em 2em;background:rgba(246,240,228,.95);bottom:0;cursor:default;left:0;position:absolute;text-align:left;width:100%;z-index:2}.poptrox-popup .caption h2,.poptrox-popup .caption h3,.poptrox-popup .caption h4,.poptrox-popup .caption h5,.poptrox-popup .caption h6{margin:0 0 .5em 0;color:#4a4a4a !important}.poptrox-popup .caption p,.poptrox-popup .caption span,.poptrox-popup .caption i,.poptrox-popup .caption strong,.poptrox-popup .caption em{color:#5c554e !important}.poptrox-popup .loader{-moz-animation:spinner 1s infinite linear !important;-webkit-animation:spinner 1s infinite linear !important;-ms-animation:spinner 1s infinite linear !important;animation:spinner 1s infinite linear !important;background-image:url("images/spinner.svg");background-position:center;background-repeat:no-repeat;background-size:contain;display:block;font-size:2em;height:2em;left:50%;line-height:2em;margin:-1em 0 0 -1em;opacity:.25;position:absolute;text-align:center;top:50%;width:2em}.poptrox-popup:hover .closer,.poptrox-popup:hover .nav-previous,.poptrox-popup:hover .nav-next{opacity:.5}.poptrox-popup:hover .closer:hover,.poptrox-popup:hover .nav-previous:hover,.poptrox-popup:hover .nav-next:hover{opacity:1}.poptrox-popup.loading:before{opacity:0}body.touch .poptrox-popup .closer,body.touch .poptrox-popup .nav-previous,body.touch .poptrox-popup .nav-next{opacity:1 !important}@media screen and (max-width: 980px){.poptrox-popup .closer{background-size:3em}.poptrox-popup .nav-previous,.poptrox-popup .nav-next{background-size:4em}}@media screen and (max-width: 736px){.poptrox-popup:before{display:none}.poptrox-popup .caption{display:none !important}.poptrox-popup .closer,.poptrox-popup .nav-previous,.poptrox-popup .nav-next{display:none !important}}#wrapper{-moz-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -moz-filter 0.5s ease;-webkit-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -webkit-filter 0.5s ease;-ms-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -ms-filter 0.5s ease;transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, filter 0.5s ease;position:relative}#wrapper:after{pointer-events:none;-moz-transition:opacity 0.5s ease, visibility 0.5s;-webkit-transition:opacity 0.5s ease, visibility 0.5s;-ms-transition:opacity 0.5s ease, visibility 0.5s;transition:opacity 0.5s ease, visibility 0.5s;background:rgba(36,38,41,.5);content:"";display:block;height:100%;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:1}body.ie #wrapper:after{background:rgba(36,38,41,.8)}body.modal-active #wrapper{-moz-filter:blur(8px);-webkit-filter:blur(8px);-ms-filter:blur(8px);filter:blur(8px)}body.modal-active #wrapper:after{pointer-events:auto;opacity:1;visibility:visible;z-index:10003}#wrapper:before{-moz-animation:spinner 1s infinite linear !important;-webkit-animation:spinner 1s infinite linear !important;-ms-animation:spinner 1s infinite linear !important;animation:spinner 1s infinite linear !important;pointer-events:none;-moz-transition:top 0.75s ease-in-out, opacity 0.35s ease-out, visibility 0.35s;-webkit-transition:top 0.75s ease-in-out, opacity 0.35s ease-out, visibility 0.35s;-ms-transition:top 0.75s ease-in-out, opacity 0.35s ease-out, visibility 0.35s;transition:top 0.75s ease-in-out, opacity 0.35s ease-out, visibility 0.35s;background-image:url("images/spinner.svg");background-position:center;background-repeat:no-repeat;background-size:contain;content:"";display:block;font-size:2em;height:2em;left:50%;line-height:2em;margin:-1em 0 0 -1em;opacity:0;position:fixed;text-align:center;top:75%;visibility:hidden;width:2em}body.is-preload #wrapper:before{-moz-transition:opacity 1s ease-out !important;-webkit-transition:opacity 1s ease-out !important;-ms-transition:opacity 1s ease-out !important;transition:opacity 1s ease-out !important;-moz-transition-delay:0.5s !important;-webkit-transition-delay:0.5s !important;-ms-transition-delay:0.5s !important;transition-delay:0.5s !important;opacity:.25;top:50%;visibility:visible}body{padding:0 0 4em 0}#header{-moz-transform:translateY(0);-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-moz-transition:-moz-transform 1s ease;-webkit-transition:-webkit-transform 1s ease;-ms-transition:-ms-transform 1s ease;transition:transform 1s ease;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;background:#1f2224;bottom:-1em;height:5em;left:0;line-height:4em;padding:0 1.5em;position:fixed;user-select:none;width:100%;z-index:10002}body.is-preload #header{-moz-transform:translateY(4em);-webkit-transform:translateY(4em);-ms-transform:translateY(4em);transform:translateY(4em)}#header h1{color:#a0a0a1;display:inline-block;font-size:1em;line-height:1;margin:0;vertical-align:middle}#header h1 a{border:0;color:inherit}#header h1 a:hover{color:inherit !important}#header nav{position:absolute;right:0;top:0}#header nav>ul{list-style:none;margin:0;padding:0}#header nav>ul>li{display:inline-block;padding:0}#header nav>ul>li a{-moz-transition:background-color 0.5s ease;-webkit-transition:background-color 0.5s ease;-ms-transition:background-color 0.5s ease;transition:background-color 0.5s ease;border:0;color:#fff;display:inline-block;letter-spacing:.1em;padding:0 1.65em;text-transform:uppercase}#header nav>ul>li a.icon:before{color:#505051;float:right;margin-left:.75em}#header nav>ul>li a:hover{color:#fff !important}#header nav>ul>li a.active{background-color:#242629}@media screen and (max-width: 736px){body{padding:4em 0 0 0}#header{-moz-transform:translateY(0);-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);bottom:auto;height:4em;padding:0 1em;top:0}body.is-preload #header{-moz-transform:translateY(-3.4em);-webkit-transform:translateY(-3.4em);-ms-transform:translateY(-3.4em);transform:translateY(-3.4em)}#header h1{font-size:.9em}#header nav>ul>li a{font-size:.9em;padding:0 1.15em}}#main{-moz-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -moz-filter 0.5s ease;-webkit-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -webkit-filter 0.5s ease;-ms-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -ms-filter 0.5s ease;transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, filter 0.5s ease;display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;-moz-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-tap-highlight-color:rgba(255,255,255,0)}#main .thumb{-moz-transition:opacity 1.25s ease-in-out;-webkit-transition:opacity 1.25s ease-in-out;-ms-transition:opacity 1.25s ease-in-out;transition:opacity 1.25s ease-in-out;pointer-events:auto;-webkit-tap-highlight-color:rgba(255,255,255,0);opacity:1;overflow:hidden;position:relative}#main .thumb:after{background-image:-moz-linear-gradient(to top, rgba(10,17,25,0.35) 5%, rgba(10,17,25,0) 35%);background-image:-webkit-linear-gradient(to top, rgba(10,17,25,0.35) 5%, rgba(10,17,25,0) 35%);background-image:-ms-linear-gradient(to top, rgba(10,17,25,0.35) 5%, rgba(10,17,25,0) 35%);background-image:linear-gradient(to top, rgba(10,17,25,0.35) 5%, rgba(10,17,25,0) 35%);pointer-events:none;background-size:cover;content:"";display:block;height:100%;left:0;position:absolute;top:0;width:100%}#main .thumb>.image{-webkit-tap-highlight-color:rgba(255,255,255,0);background-position:center;background-repeat:no-repeat;background-size:cover;border:0;height:100%;left:0;position:absolute;top:0;width:100%}#main .thumb>h2{pointer-events:none;bottom:1.875em;font-size:.8em;left:2.1875em;margin:0;position:absolute;z-index:1}#main .thumb>p{display:none}#main:after{pointer-events:none;-moz-transition:opacity 0.5s ease, visibility 0.5s;-webkit-transition:opacity 0.5s ease, visibility 0.5s;-ms-transition:opacity 0.5s ease, visibility 0.5s;transition:opacity 0.5s ease, visibility 0.5s;background:rgba(36,38,41,.25);content:"";display:block;height:100%;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:1}body.ie #main:after{background:rgba(36,38,41,.55)}body.content-active #main{-moz-filter:blur(6px);-webkit-filter:blur(6px);-ms-filter:blur(6px);filter:blur(6px)}body.content-active #main:after{pointer-events:auto;opacity:1;visibility:visible}body.is-preload #main .thumb{pointer-events:none;opacity:0}#main .thumb{-moz-transition-delay:2.525s;-webkit-transition-delay:2.525s;-ms-transition-delay:2.525s;transition-delay:2.525s;height:calc(40vh - 2em);min-height:20em;width:25%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}#main .thumb:nth-child(4){-moz-transition-delay:1.1s;-webkit-transition-delay:1.1s;-ms-transition-delay:1.1s;transition-delay:1.1s}#main .thumb:nth-child(5){-moz-transition-delay:1.25s;-webkit-transition-delay:1.25s;-ms-transition-delay:1.25s;transition-delay:1.25s}#main .thumb:nth-child(6){-moz-transition-delay:1.4s;-webkit-transition-delay:1.4s;-ms-transition-delay:1.4s;transition-delay:1.4s}#main .thumb:nth-child(7){-moz-transition-delay:1.55s;-webkit-transition-delay:1.55s;-ms-transition-delay:1.55s;transition-delay:1.55s}#main .thumb:nth-child(8){-moz-transition-delay:1.7s;-webkit-transition-delay:1.7s;-ms-transition-delay:1.7s;transition-delay:1.7s}#main .thumb:nth-child(9){-moz-transition-delay:1.85s;-webkit-transition-delay:1.85s;-ms-transition-delay:1.85s;transition-delay:1.85s}#main .thumb:nth-child(10){-moz-transition-delay:2s;-webkit-transition-delay:2s;-ms-transition-delay:2s;transition-delay:2s}#main .thumb:nth-child(11){-moz-transition-delay:2.15s;-webkit-transition-delay:2.15s;-ms-transition-delay:2.15s;transition-delay:2.15s}#main .thumb:nth-child(12){-moz-transition-delay:2.3s;-webkit-transition-delay:2.3s;-ms-transition-delay:2.3s;transition-delay:2.3s}@media screen and (max-width: 1680px){#main .thumb{-moz-transition-delay:2.075s;-webkit-transition-delay:2.075s;-ms-transition-delay:2.075s;transition-delay:2.075s;height:calc(40vh - 2em);min-height:20em;width:33.3333333333%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}#main .thumb:nth-child(4){-moz-transition-delay:1.1s;-webkit-transition-delay:1.1s;-ms-transition-delay:1.1s;transition-delay:1.1s}#main .thumb:nth-child(5){-moz-transition-delay:1.25s;-webkit-transition-delay:1.25s;-ms-transition-delay:1.25s;transition-delay:1.25s}#main .thumb:nth-child(6){-moz-transition-delay:1.4s;-webkit-transition-delay:1.4s;-ms-transition-delay:1.4s;transition-delay:1.4s}#main .thumb:nth-child(7){-moz-transition-delay:1.55s;-webkit-transition-delay:1.55s;-ms-transition-delay:1.55s;transition-delay:1.55s}#main .thumb:nth-child(8){-moz-transition-delay:1.7s;-webkit-transition-delay:1.7s;-ms-transition-delay:1.7s;transition-delay:1.7s}#main .thumb:nth-child(9){-moz-transition-delay:1.85s;-webkit-transition-delay:1.85s;-ms-transition-delay:1.85s;transition-delay:1.85s}}@media screen and (max-width: 1280px){#main .thumb{-moz-transition-delay:1.625s;-webkit-transition-delay:1.625s;-ms-transition-delay:1.625s;transition-delay:1.625s;height:calc(40vh - 2em);min-height:20em;width:50%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}#main .thumb:nth-child(4){-moz-transition-delay:1.1s;-webkit-transition-delay:1.1s;-ms-transition-delay:1.1s;transition-delay:1.1s}#main .thumb:nth-child(5){-moz-transition-delay:1.25s;-webkit-transition-delay:1.25s;-ms-transition-delay:1.25s;transition-delay:1.25s}#main .thumb:nth-child(6){-moz-transition-delay:1.4s;-webkit-transition-delay:1.4s;-ms-transition-delay:1.4s;transition-delay:1.4s}}@media screen and (max-width: 980px){#main .thumb{-moz-transition-delay:2.075s;-webkit-transition-delay:2.075s;-ms-transition-delay:2.075s;transition-delay:2.075s;height:calc(28.5714285714vh - 1.3333333333em);min-height:18em;width:50%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}#main .thumb:nth-child(4){-moz-transition-delay:1.1s;-webkit-transition-delay:1.1s;-ms-transition-delay:1.1s;transition-delay:1.1s}#main .thumb:nth-child(5){-moz-transition-delay:1.25s;-webkit-transition-delay:1.25s;-ms-transition-delay:1.25s;transition-delay:1.25s}#main .thumb:nth-child(6){-moz-transition-delay:1.4s;-webkit-transition-delay:1.4s;-ms-transition-delay:1.4s;transition-delay:1.4s}#main .thumb:nth-child(7){-moz-transition-delay:1.55s;-webkit-transition-delay:1.55s;-ms-transition-delay:1.55s;transition-delay:1.55s}#main .thumb:nth-child(8){-moz-transition-delay:1.7s;-webkit-transition-delay:1.7s;-ms-transition-delay:1.7s;transition-delay:1.7s}#main .thumb:nth-child(9){-moz-transition-delay:1.85s;-webkit-transition-delay:1.85s;-ms-transition-delay:1.85s;transition-delay:1.85s}}@media screen and (max-width: 480px){#main .thumb{-moz-transition-delay:1.175s;-webkit-transition-delay:1.175s;-ms-transition-delay:1.175s;transition-delay:1.175s;height:calc(40vh - 2em);min-height:18em;width:100%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}}#footer .copyright{color:#505051;font-size:.9em}#footer .copyright a{color:inherit}.text-fg{color:#a0a0a1}#footer .presentify{margin:0 0 1.4em 0;display:grid;grid-template-columns:auto 1fr;column-gap:1rem;align-items:center}#footer .presentify .presentify-logo{display:flex;align-items:center;justify-content:center}#footer .presentify .presentify-logo a{display:flex;align-items:center;justify-content:center;border:0}#footer .presentify .presentify-logo img{width:72px;height:72px;display:block}#footer .presentify .presentify-text{margin:0}
\ No newline at end of file
+@-moz-keyframes spinner{0%{-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes spinner{0%{-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes spinner{0%{-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spinner{0%{-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}body{-webkit-text-size-adjust:none}mark{background-color:rgba(0,0,0,0);color:inherit}input::-moz-focus-inner{border:0;padding:0}input,select,textarea{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none}@-ms-viewport{width:device-width}body{-ms-overflow-style:scrollbar}@media screen and (max-width: 480px){html,body{min-width:320px}}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body{background:#242629}body.is-preload *,body.is-preload *:before,body.is-preload *:after{-moz-animation:none !important;-webkit-animation:none !important;-ms-animation:none !important;animation:none !important;-moz-transition:none !important;-webkit-transition:none !important;-ms-transition:none !important;transition:none !important}body.is-resizing *,body.is-resizing *:before,body.is-resizing *:after{-moz-animation:none !important;-webkit-animation:none !important;-ms-animation:none !important;animation:none !important;-moz-transition:none !important;-webkit-transition:none !important;-ms-transition:none !important;transition:none !important}body,input,select,textarea{color:#a0a0a1;font-family:"Source Sans Pro",Helvetica,sans-serif;font-size:15pt;font-weight:300;letter-spacing:.025em;line-height:1.65}@media screen and (max-width: 1680px){body,input,select,textarea{font-size:11pt}}a{-moz-transition:color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;-webkit-transition:color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;-ms-transition:color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;transition:color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;border-bottom:dotted 1px;color:#34a58e;text-decoration:none}a:hover{border-bottom-color:rgba(0,0,0,0);color:#34a58e !important}strong,b{color:#fff;font-weight:300}em,i{font-style:italic}p{margin:0 0 2em 0}h1,h2,h3,h4,h5,h6{color:#fff;font-weight:300;letter-spacing:.1em;line-height:1.5;margin:0 0 1em 0;text-transform:uppercase}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit;text-decoration:none}h1{font-size:2em}h2{font-size:1.25em}h3{font-size:1.1em}h4{font-size:1em}h5{font-size:.9em}h6{font-size:.7em}@media screen and (max-width: 736px){h2{font-size:1em}h3{font-size:.9em}h4{font-size:.8em}h5{font-size:.7em}h6{font-size:.7em}}sub{font-size:.8em;position:relative;top:.5em}sup{font-size:.8em;position:relative;top:-0.5em}blockquote{border-left:4px #36383c;font-style:italic;margin:0 0 2em 0;padding:.5em 0 .5em 2em}code{background:#34363b;border:solid 1px #36383c;font-family:"Courier New",monospace;font-size:.9em;margin:0 .25em;padding:.25em .65em}pre{-webkit-overflow-scrolling:touch;font-family:"Courier New",monospace;font-size:.9em;margin:0 0 2em 0}pre code{display:block;line-height:1.75;padding:1em 1.5em;overflow-x:auto}hr{border:0;border-bottom:solid 1px #36383c;margin:2em 0}hr.major{margin:3em 0}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}input[type=submit],input[type=reset],input[type=button],button,.button{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;-moz-transition:background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;-webkit-transition:background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;-ms-transition:background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;transition:background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;background-color:rgba(0,0,0,0);border:0;border-radius:0;box-shadow:inset 0 0 0 2px #36383c;color:#fff !important;cursor:pointer;display:inline-block;font-size:.9em;font-weight:300;height:3.0555555556em;letter-spacing:.1em;line-height:3.0555555556em;padding:0 2.5em;text-align:center;text-decoration:none;text-transform:uppercase;white-space:nowrap}input[type=submit]:hover,input[type=reset]:hover,input[type=button]:hover,button:hover,.button:hover{box-shadow:inset 0 0 0 2px #34a58e;color:#34a58e !important}input[type=submit]:hover:active,input[type=reset]:hover:active,input[type=button]:hover:active,button:hover:active,.button:hover:active{background-color:rgba(52,165,142,.15);color:#34a58e !important}input[type=submit].icon,input[type=reset].icon,input[type=button].icon,button.icon,.button.icon{padding-left:1.35em}input[type=submit].icon:before,input[type=reset].icon:before,input[type=button].icon:before,button.icon:before,.button.icon:before{margin-right:.5em}input[type=submit].fit,input[type=reset].fit,input[type=button].fit,button.fit,.button.fit{width:100%}input[type=submit].small,input[type=reset].small,input[type=button].small,button.small,.button.small{font-size:.8em}input[type=submit].large,input[type=reset].large,input[type=button].large,button.large,.button.large{font-size:1.35em}input[type=submit].primary,input[type=reset].primary,input[type=button].primary,button.primary,.button.primary{background-color:#34a58e;box-shadow:none}input[type=submit].primary:hover,input[type=reset].primary:hover,input[type=button].primary:hover,button.primary:hover,.button.primary:hover{background-color:#47c5ab;color:#fff !important}input[type=submit].primary:hover:active,input[type=reset].primary:hover:active,input[type=button].primary:hover:active,button.primary:hover:active,.button.primary:hover:active{background-color:#287e6d}input[type=submit].disabled,input[type=submit]:disabled,input[type=reset].disabled,input[type=reset]:disabled,input[type=button].disabled,input[type=button]:disabled,button.disabled,button:disabled,.button.disabled,.button:disabled{pointer-events:none;opacity:.35}form{margin:0 0 2em 0}form>:last-child{margin-bottom:0}form>.fields{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;-moz-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:calc(100% + 3em);margin:-1.5em 0 2em -1.5em}form>.fields>.field{-moz-flex-grow:0;-webkit-flex-grow:0;-ms-flex-grow:0;flex-grow:0;-moz-flex-shrink:0;-webkit-flex-shrink:0;-ms-flex-shrink:0;flex-shrink:0;padding:1.5em 0 0 1.5em;width:calc(100% - 1.5em)}form>.fields>.field.half{width:calc(50% - 0.75em)}form>.fields>.field.third{width:calc(100%/3 - 0.5em)}form>.fields>.field.quarter{width:calc(25% - 0.375em)}@media screen and (max-width: 736px){form>.fields{width:calc(100% + 3em);margin:-1.5em 0 2em -1.5em}form>.fields>.field{padding:1.5em 0 0 1.5em;width:calc(100% - 1.5em)}form>.fields>.field.half{width:calc(100% - 1.5em)}form>.fields>.field.third{width:calc(100% - 1.5em)}form>.fields>.field.quarter{width:calc(100% - 1.5em)}}label{color:#fff;display:block;font-size:.9em;font-weight:300;margin:0 0 1em 0}input[type=text],input[type=password],input[type=email],input[type=tel],input[type=search],input[type=url],select,textarea{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;background:#34363b;border:0;border-radius:0;color:#a0a0a1;display:block;outline:0;padding:0 1em;text-decoration:none;width:100%}input[type=text]:invalid,input[type=password]:invalid,input[type=email]:invalid,input[type=tel]:invalid,input[type=search]:invalid,input[type=url]:invalid,select:invalid,textarea:invalid{box-shadow:none}input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=tel]:focus,input[type=search]:focus,input[type=url]:focus,select:focus,textarea:focus{box-shadow:inset 0 0 0 2px #34a58e}select{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'%3E%3Cpath d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='%2336383c' /%3E%3C/svg%3E");background-size:1.25rem;background-repeat:no-repeat;background-position:calc(100% - 1rem) center;height:2.75em;padding-right:2.75em;text-overflow:ellipsis}select option{color:#fff;background:#242629}select:focus::-ms-value{background-color:rgba(0,0,0,0)}select::-ms-expand{display:none}input[type=text],input[type=password],input[type=email],input[type=tel],input[type=search],input[type=url],select{height:2.75em}textarea{padding:.75em 1em}input[type=checkbox],input[type=radio]{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;display:block;float:left;margin-right:-2em;opacity:0;width:1em;z-index:-1}input[type=checkbox]+label,input[type=radio]+label{text-decoration:none;color:#a0a0a1;cursor:pointer;display:inline-block;font-size:1em;font-weight:300;padding-left:2.4em;padding-right:.75em;position:relative}input[type=checkbox]+label:before,input[type=radio]+label:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none !important;font-family:"Font Awesome 5 Free";font-weight:900}input[type=checkbox]+label:before,input[type=radio]+label:before{background:#34363b;content:"";display:inline-block;font-size:.8em;height:2.0625em;left:0;line-height:2.0625em;position:absolute;text-align:center;top:0;width:2.0625em}input[type=checkbox]:checked+label:before,input[type=radio]:checked+label:before{background:#34a58e;border-color:#34a58e;color:#fff;content:""}input[type=checkbox]:focus+label:before,input[type=radio]:focus+label:before{box-shadow:0 0 0 2px #34a58e}input[type=radio]+label:before{border-radius:100%}::-webkit-input-placeholder{color:#707071 !important;opacity:1}:-moz-placeholder{color:#707071 !important;opacity:1}::-moz-placeholder{color:#707071 !important;opacity:1}:-ms-input-placeholder{color:#707071 !important;opacity:1}.icon{text-decoration:none;border-bottom:none;position:relative}.icon:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none !important;font-family:"Font Awesome 5 Free";font-weight:400}.icon>.label{display:none}.icon:before{line-height:inherit}.icon.solid:before{font-weight:900}.icon.brands:before{font-family:"Font Awesome 5 Brands"}ol{list-style:decimal;margin:0 0 2em 0;padding-left:1.25em}ol li{padding-left:.25em}ul{list-style:disc;margin:0 0 2em 0;padding-left:1em}ul li{padding-left:.5em}ul.alt{list-style:none;padding-left:0}ul.alt li{border-top:solid 1px #36383c;padding:.5em 0}ul.alt li:first-child{border-top:0;padding-top:0}dl{margin:0 0 2em 0}dl dt{display:block;font-weight:300;margin:0 0 1em 0}dl dd{margin-left:2em}ul.actions{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;cursor:default;list-style:none;margin-left:-1em;padding-left:0}ul.actions li{padding:0 0 0 1em;vertical-align:middle}ul.actions.special{-moz-justify-content:center;-webkit-justify-content:center;-ms-justify-content:center;justify-content:center;width:100%;margin-left:0}ul.actions.special li:first-child{padding-left:0}ul.actions.stacked{-moz-flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-left:0}ul.actions.stacked li{padding:1.3em 0 0 0}ul.actions.stacked li:first-child{padding-top:0}ul.actions.fit{width:calc(100% + 1em)}ul.actions.fit li{-moz-flex-grow:1;-webkit-flex-grow:1;-ms-flex-grow:1;flex-grow:1;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;width:100%}ul.actions.fit li>*{width:100%}ul.actions.fit.stacked{width:100%}@media screen and (max-width: 480px){ul.actions:not(.fixed){-moz-flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-left:0;width:100% !important}ul.actions:not(.fixed) li{-moz-flex-grow:1;-webkit-flex-grow:1;-ms-flex-grow:1;flex-grow:1;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;padding:1em 0 0 0;text-align:center;width:100%}ul.actions:not(.fixed) li>*{width:100%}ul.actions:not(.fixed) li:first-child{padding-top:0}ul.actions:not(.fixed) li input[type=submit],ul.actions:not(.fixed) li input[type=reset],ul.actions:not(.fixed) li input[type=button],ul.actions:not(.fixed) li button,ul.actions:not(.fixed) li .button{width:100%}ul.actions:not(.fixed) li input[type=submit].icon:before,ul.actions:not(.fixed) li input[type=reset].icon:before,ul.actions:not(.fixed) li input[type=button].icon:before,ul.actions:not(.fixed) li button.icon:before,ul.actions:not(.fixed) li .button.icon:before{margin-left:-0.5rem}}ul.icons{cursor:default;list-style:none;padding-left:0}ul.icons li{display:inline-block;padding:0 1em 0 0}ul.icons li:last-child{padding-right:0}ul.icons li .icon{color:#505051}ul.icons li .icon:before{font-size:1.5em}.table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}table{margin:0 0 2em 0;width:100%}table tbody tr{border:solid 1px #36383c;border-left:0;border-right:0}table tbody tr:nth-child(2n+1){background-color:#34363b}table td{padding:.75em .75em}table th{color:#fff;font-size:.9em;font-weight:300;padding:0 .75em .75em .75em;text-align:left}table thead{border-bottom:solid 2px #36383c}table tfoot{border-top:solid 2px #36383c}table.alt{border-collapse:separate}table.alt tbody tr td{border:solid 1px #36383c;border-left-width:0;border-top-width:0}table.alt tbody tr td:first-child{border-left-width:1px}table.alt tbody tr:first-child td{border-top-width:1px}table.alt thead{border-bottom:0}table.alt tfoot{border-top:0}.panel{padding:4em 4em 2em 4em;-moz-transform:translateY(100vh);-webkit-transform:translateY(100vh);-ms-transform:translateY(100vh);transform:translateY(100vh);-moz-transition:-moz-transform 0.5s ease;-webkit-transition:-webkit-transform 0.5s ease;-ms-transition:-ms-transform 0.5s ease;transition:transform 0.5s ease;-webkit-overflow-scrolling:touch;background:rgba(36,38,41,.975);bottom:4em;left:0;max-height:calc(80vh - 4em);overflow-y:auto;position:fixed;width:100%;z-index:10001}.panel.active{-moz-transform:translateY(1px);-webkit-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px)}.panel>.inner{margin:0 auto;max-width:100%;width:75em}.panel>.inner.split{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex}.panel>.inner.split>div{margin-left:4em;width:50%}.panel>.inner.split>:first-child{margin-left:0}.panel>.closer{-moz-transition:opacity 0.2s ease-in-out;-webkit-transition:opacity 0.2s ease-in-out;-ms-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out;background-image:url("images/close.svg");background-position:center;background-repeat:no-repeat;background-size:3em;cursor:pointer;height:5em;opacity:.25;position:absolute;right:0;top:0;width:5em;z-index:2}.panel>.closer:hover{opacity:1}@media screen and (max-width: 1280px){.panel{padding:3em 3em 1em 3em}.panel>.inner.split>div{margin-left:3em}.panel>.closer{background-size:2.5em;background-position:75% 25%}}@media screen and (max-width: 980px){.panel>.inner.split{-moz-flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.panel>.inner.split>div{margin-left:0;width:100%}}@media screen and (max-width: 736px){.panel{-moz-transform:translateY(-100vh);-webkit-transform:translateY(-100vh);-ms-transform:translateY(-100vh);transform:translateY(-100vh);padding:4em 2em 2em 2em;bottom:auto;top:calc(4em - 1px)}.panel.active{-moz-transform:translateY(0);-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.poptrox-overlay{-webkit-tap-highlight-color:rgba(255,255,255,0)}.poptrox-popup{background:rgba(31,34,36,.925);box-shadow:0 1em 3em .5em rgba(0,0,0,.25);cursor:default}.poptrox-popup:before{-moz-transition:opacity 0.2s ease-in-out;-webkit-transition:opacity 0.2s ease-in-out;-ms-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out;background-image:-moz-linear-gradient(to left, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0)), -moz-linear-gradient(to right, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0));background-image:-webkit-linear-gradient(to left, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0)), -webkit-linear-gradient(to right, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0));background-image:-ms-linear-gradient(to left, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0)), -ms-linear-gradient(to right, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0));background-image:linear-gradient(to left, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0)), linear-gradient(to right, rgba(31,34,36,0.35), rgba(31,34,36,0) 10em, rgba(31,34,36,0));content:"";display:block;height:100%;left:0;position:absolute;top:0;width:100%;z-index:1;opacity:1}.poptrox-popup .closer{-moz-transition:opacity 0.2s ease-in-out;-webkit-transition:opacity 0.2s ease-in-out;-ms-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out;background-image:url("images/close.svg");background-position:center;background-repeat:no-repeat;background-size:3em;height:5em;opacity:0;position:absolute;right:0;top:0;width:5em;z-index:2}.poptrox-popup .nav-previous,.poptrox-popup .nav-next{-moz-transition:opacity 0.2s ease-in-out;-webkit-transition:opacity 0.2s ease-in-out;-ms-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out;background-image:url("images/arrow.svg");background-position:center;background-repeat:no-repeat;background-size:5em;cursor:pointer;height:8em;margin-top:-4em;opacity:0;position:absolute;top:50%;width:6em;z-index:2}.poptrox-popup .nav-previous{-moz-transform:scaleX(-1);-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1);left:0}.poptrox-popup .nav-next{right:0}.poptrox-popup .caption{padding:2em 2em .1em 2em;background:rgba(246,240,228,.95);bottom:0;cursor:default;left:0;position:absolute;text-align:left;width:100%;z-index:2}.poptrox-popup .caption h2,.poptrox-popup .caption h3,.poptrox-popup .caption h4,.poptrox-popup .caption h5,.poptrox-popup .caption h6{margin:0 0 .5em 0;color:#4a4a4a !important}.poptrox-popup .caption p,.poptrox-popup .caption span,.poptrox-popup .caption i,.poptrox-popup .caption strong,.poptrox-popup .caption em{color:#5c554e !important}.poptrox-popup .loader{-moz-animation:spinner 1s infinite linear !important;-webkit-animation:spinner 1s infinite linear !important;-ms-animation:spinner 1s infinite linear !important;animation:spinner 1s infinite linear !important;background-image:url("images/spinner.svg");background-position:center;background-repeat:no-repeat;background-size:contain;display:block;font-size:2em;height:2em;left:50%;line-height:2em;margin:-1em 0 0 -1em;opacity:.25;position:absolute;text-align:center;top:50%;width:2em}.poptrox-popup:hover .closer,.poptrox-popup:hover .nav-previous,.poptrox-popup:hover .nav-next{opacity:.5}.poptrox-popup:hover .closer:hover,.poptrox-popup:hover .nav-previous:hover,.poptrox-popup:hover .nav-next:hover{opacity:1}.poptrox-popup.loading:before{opacity:0}body.touch .poptrox-popup .closer,body.touch .poptrox-popup .nav-previous,body.touch .poptrox-popup .nav-next{opacity:1 !important}@media screen and (max-width: 980px){.poptrox-popup .closer{background-size:3em}.poptrox-popup .nav-previous,.poptrox-popup .nav-next{background-size:4em}}@media screen and (max-width: 736px){.poptrox-popup:before{display:none}.poptrox-popup .caption{display:none !important}.poptrox-popup .closer,.poptrox-popup .nav-previous,.poptrox-popup .nav-next{display:none !important}}#wrapper{-moz-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -moz-filter 0.5s ease;-webkit-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -webkit-filter 0.5s ease;-ms-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -ms-filter 0.5s ease;transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, filter 0.5s ease;position:relative}#wrapper:after{pointer-events:none;-moz-transition:opacity 0.5s ease, visibility 0.5s;-webkit-transition:opacity 0.5s ease, visibility 0.5s;-ms-transition:opacity 0.5s ease, visibility 0.5s;transition:opacity 0.5s ease, visibility 0.5s;background:rgba(36,38,41,.5);content:"";display:block;height:100%;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:1}body.ie #wrapper:after{background:rgba(36,38,41,.8)}body.modal-active #wrapper{-moz-filter:blur(8px);-webkit-filter:blur(8px);-ms-filter:blur(8px);filter:blur(8px)}body.modal-active #wrapper:after{pointer-events:auto;opacity:1;visibility:visible;z-index:10003}#wrapper:before{-moz-animation:spinner 1s infinite linear !important;-webkit-animation:spinner 1s infinite linear !important;-ms-animation:spinner 1s infinite linear !important;animation:spinner 1s infinite linear !important;pointer-events:none;-moz-transition:top 0.75s ease-in-out, opacity 0.35s ease-out, visibility 0.35s;-webkit-transition:top 0.75s ease-in-out, opacity 0.35s ease-out, visibility 0.35s;-ms-transition:top 0.75s ease-in-out, opacity 0.35s ease-out, visibility 0.35s;transition:top 0.75s ease-in-out, opacity 0.35s ease-out, visibility 0.35s;background-image:url("images/spinner.svg");background-position:center;background-repeat:no-repeat;background-size:contain;content:"";display:block;font-size:2em;height:2em;left:50%;line-height:2em;margin:-1em 0 0 -1em;opacity:0;position:fixed;text-align:center;top:75%;visibility:hidden;width:2em}body.is-preload #wrapper:before{-moz-transition:opacity 1s ease-out !important;-webkit-transition:opacity 1s ease-out !important;-ms-transition:opacity 1s ease-out !important;transition:opacity 1s ease-out !important;-moz-transition-delay:0.5s !important;-webkit-transition-delay:0.5s !important;-ms-transition-delay:0.5s !important;transition-delay:0.5s !important;opacity:.25;top:50%;visibility:visible}body{padding:0 0 4em 0}#header{-moz-transform:translateY(0);-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-moz-transition:-moz-transform 1s ease;-webkit-transition:-webkit-transform 1s ease;-ms-transition:-ms-transform 1s ease;transition:transform 1s ease;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;background:#1f2224;bottom:-1em;height:5em;left:0;line-height:4em;padding:0 1.5em;position:fixed;user-select:none;width:100%;z-index:10002}body.is-preload #header{-moz-transform:translateY(4em);-webkit-transform:translateY(4em);-ms-transform:translateY(4em);transform:translateY(4em)}#header h1{color:#a0a0a1;display:inline-block;font-size:1em;line-height:1;margin:0;vertical-align:middle}#header h1 a{border:0;color:inherit}#header h1 a:hover{color:inherit !important}#header nav{position:absolute;right:0;top:0}#header nav>ul{list-style:none;margin:0;padding:0}#header nav>ul>li{display:inline-block;padding:0}#header nav>ul>li a{-moz-transition:background-color 0.5s ease;-webkit-transition:background-color 0.5s ease;-ms-transition:background-color 0.5s ease;transition:background-color 0.5s ease;border:0;color:#fff;display:inline-block;letter-spacing:.1em;padding:0 1.65em;text-transform:uppercase}#header nav>ul>li a.icon:before{color:#505051;float:right;margin-left:.75em}#header nav>ul>li a:hover{color:#fff !important}#header nav>ul>li a.active{background-color:#242629}@media screen and (max-width: 736px){body{padding:4em 0 0 0}#header{-moz-transform:translateY(0);-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);bottom:auto;height:4em;padding:0 1em;top:0}body.is-preload #header{-moz-transform:translateY(-3.4em);-webkit-transform:translateY(-3.4em);-ms-transform:translateY(-3.4em);transform:translateY(-3.4em)}#header h1{font-size:.8em;max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#header nav>ul>li a{font-size:0;padding:0 .9em;line-height:4em}#header nav>ul>li a i{font-size:1.3rem;vertical-align:middle}}#main{-moz-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -moz-filter 0.5s ease;-webkit-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -webkit-filter 0.5s ease;-ms-transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, -ms-filter 0.5s ease;transition:-moz-filter 0.5s ease, -webkit-filter 0.5s ease, -ms-filter 0.5s ease, filter 0.5s ease;display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;-moz-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-tap-highlight-color:rgba(255,255,255,0)}#main .thumb{-moz-transition:opacity 1.25s ease-in-out;-webkit-transition:opacity 1.25s ease-in-out;-ms-transition:opacity 1.25s ease-in-out;transition:opacity 1.25s ease-in-out;pointer-events:auto;-webkit-tap-highlight-color:rgba(255,255,255,0);opacity:1;overflow:hidden;position:relative}#main .thumb:after{background-image:-moz-linear-gradient(to top, rgba(10,17,25,0.35) 5%, rgba(10,17,25,0) 35%);background-image:-webkit-linear-gradient(to top, rgba(10,17,25,0.35) 5%, rgba(10,17,25,0) 35%);background-image:-ms-linear-gradient(to top, rgba(10,17,25,0.35) 5%, rgba(10,17,25,0) 35%);background-image:linear-gradient(to top, rgba(10,17,25,0.35) 5%, rgba(10,17,25,0) 35%);pointer-events:none;background-size:cover;content:"";display:block;height:100%;left:0;position:absolute;top:0;width:100%}#main .thumb>.image{-webkit-tap-highlight-color:rgba(255,255,255,0);background-position:center;background-repeat:no-repeat;background-size:cover;border:0;height:100%;left:0;position:absolute;top:0;width:100%}#main .thumb>h2{pointer-events:none;bottom:1.875em;font-size:.8em;left:2.1875em;margin:0;position:absolute;z-index:1}#main .thumb>p{display:none}#main:after{pointer-events:none;-moz-transition:opacity 0.5s ease, visibility 0.5s;-webkit-transition:opacity 0.5s ease, visibility 0.5s;-ms-transition:opacity 0.5s ease, visibility 0.5s;transition:opacity 0.5s ease, visibility 0.5s;background:rgba(36,38,41,.25);content:"";display:block;height:100%;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:1}body.ie #main:after{background:rgba(36,38,41,.55)}body.content-active #main{-moz-filter:blur(6px);-webkit-filter:blur(6px);-ms-filter:blur(6px);filter:blur(6px)}body.content-active #main:after{pointer-events:auto;opacity:1;visibility:visible}body.is-preload #main .thumb{pointer-events:none;opacity:0}#main .thumb{-moz-transition-delay:2.525s;-webkit-transition-delay:2.525s;-ms-transition-delay:2.525s;transition-delay:2.525s;height:calc(40vh - 2em);min-height:20em;width:25%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}#main .thumb:nth-child(4){-moz-transition-delay:1.1s;-webkit-transition-delay:1.1s;-ms-transition-delay:1.1s;transition-delay:1.1s}#main .thumb:nth-child(5){-moz-transition-delay:1.25s;-webkit-transition-delay:1.25s;-ms-transition-delay:1.25s;transition-delay:1.25s}#main .thumb:nth-child(6){-moz-transition-delay:1.4s;-webkit-transition-delay:1.4s;-ms-transition-delay:1.4s;transition-delay:1.4s}#main .thumb:nth-child(7){-moz-transition-delay:1.55s;-webkit-transition-delay:1.55s;-ms-transition-delay:1.55s;transition-delay:1.55s}#main .thumb:nth-child(8){-moz-transition-delay:1.7s;-webkit-transition-delay:1.7s;-ms-transition-delay:1.7s;transition-delay:1.7s}#main .thumb:nth-child(9){-moz-transition-delay:1.85s;-webkit-transition-delay:1.85s;-ms-transition-delay:1.85s;transition-delay:1.85s}#main .thumb:nth-child(10){-moz-transition-delay:2s;-webkit-transition-delay:2s;-ms-transition-delay:2s;transition-delay:2s}#main .thumb:nth-child(11){-moz-transition-delay:2.15s;-webkit-transition-delay:2.15s;-ms-transition-delay:2.15s;transition-delay:2.15s}#main .thumb:nth-child(12){-moz-transition-delay:2.3s;-webkit-transition-delay:2.3s;-ms-transition-delay:2.3s;transition-delay:2.3s}@media screen and (max-width: 1680px){#main .thumb{-moz-transition-delay:2.075s;-webkit-transition-delay:2.075s;-ms-transition-delay:2.075s;transition-delay:2.075s;height:calc(40vh - 2em);min-height:20em;width:33.3333333333%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}#main .thumb:nth-child(4){-moz-transition-delay:1.1s;-webkit-transition-delay:1.1s;-ms-transition-delay:1.1s;transition-delay:1.1s}#main .thumb:nth-child(5){-moz-transition-delay:1.25s;-webkit-transition-delay:1.25s;-ms-transition-delay:1.25s;transition-delay:1.25s}#main .thumb:nth-child(6){-moz-transition-delay:1.4s;-webkit-transition-delay:1.4s;-ms-transition-delay:1.4s;transition-delay:1.4s}#main .thumb:nth-child(7){-moz-transition-delay:1.55s;-webkit-transition-delay:1.55s;-ms-transition-delay:1.55s;transition-delay:1.55s}#main .thumb:nth-child(8){-moz-transition-delay:1.7s;-webkit-transition-delay:1.7s;-ms-transition-delay:1.7s;transition-delay:1.7s}#main .thumb:nth-child(9){-moz-transition-delay:1.85s;-webkit-transition-delay:1.85s;-ms-transition-delay:1.85s;transition-delay:1.85s}}@media screen and (max-width: 1280px){#main .thumb{-moz-transition-delay:1.625s;-webkit-transition-delay:1.625s;-ms-transition-delay:1.625s;transition-delay:1.625s;height:calc(40vh - 2em);min-height:20em;width:50%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}#main .thumb:nth-child(4){-moz-transition-delay:1.1s;-webkit-transition-delay:1.1s;-ms-transition-delay:1.1s;transition-delay:1.1s}#main .thumb:nth-child(5){-moz-transition-delay:1.25s;-webkit-transition-delay:1.25s;-ms-transition-delay:1.25s;transition-delay:1.25s}#main .thumb:nth-child(6){-moz-transition-delay:1.4s;-webkit-transition-delay:1.4s;-ms-transition-delay:1.4s;transition-delay:1.4s}}@media screen and (max-width: 980px){#main .thumb{-moz-transition-delay:2.075s;-webkit-transition-delay:2.075s;-ms-transition-delay:2.075s;transition-delay:2.075s;height:calc(28.5714285714vh - 1.3333333333em);min-height:18em;width:50%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}#main .thumb:nth-child(4){-moz-transition-delay:1.1s;-webkit-transition-delay:1.1s;-ms-transition-delay:1.1s;transition-delay:1.1s}#main .thumb:nth-child(5){-moz-transition-delay:1.25s;-webkit-transition-delay:1.25s;-ms-transition-delay:1.25s;transition-delay:1.25s}#main .thumb:nth-child(6){-moz-transition-delay:1.4s;-webkit-transition-delay:1.4s;-ms-transition-delay:1.4s;transition-delay:1.4s}#main .thumb:nth-child(7){-moz-transition-delay:1.55s;-webkit-transition-delay:1.55s;-ms-transition-delay:1.55s;transition-delay:1.55s}#main .thumb:nth-child(8){-moz-transition-delay:1.7s;-webkit-transition-delay:1.7s;-ms-transition-delay:1.7s;transition-delay:1.7s}#main .thumb:nth-child(9){-moz-transition-delay:1.85s;-webkit-transition-delay:1.85s;-ms-transition-delay:1.85s;transition-delay:1.85s}}@media screen and (max-width: 480px){#main .thumb{-moz-transition-delay:2.075s;-webkit-transition-delay:2.075s;-ms-transition-delay:2.075s;transition-delay:2.075s;height:calc(28.5714285714vh - 1.3333333333em);min-height:12em;width:50%}#main .thumb:nth-child(1){-moz-transition-delay:0.65s;-webkit-transition-delay:0.65s;-ms-transition-delay:0.65s;transition-delay:0.65s}#main .thumb:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-ms-transition-delay:0.8s;transition-delay:0.8s}#main .thumb:nth-child(3){-moz-transition-delay:0.95s;-webkit-transition-delay:0.95s;-ms-transition-delay:0.95s;transition-delay:0.95s}#main .thumb:nth-child(4){-moz-transition-delay:1.1s;-webkit-transition-delay:1.1s;-ms-transition-delay:1.1s;transition-delay:1.1s}#main .thumb:nth-child(5){-moz-transition-delay:1.25s;-webkit-transition-delay:1.25s;-ms-transition-delay:1.25s;transition-delay:1.25s}#main .thumb:nth-child(6){-moz-transition-delay:1.4s;-webkit-transition-delay:1.4s;-ms-transition-delay:1.4s;transition-delay:1.4s}#main .thumb:nth-child(7){-moz-transition-delay:1.55s;-webkit-transition-delay:1.55s;-ms-transition-delay:1.55s;transition-delay:1.55s}#main .thumb:nth-child(8){-moz-transition-delay:1.7s;-webkit-transition-delay:1.7s;-ms-transition-delay:1.7s;transition-delay:1.7s}#main .thumb:nth-child(9){-moz-transition-delay:1.85s;-webkit-transition-delay:1.85s;-ms-transition-delay:1.85s;transition-delay:1.85s}}#footer .copyright{color:#505051;font-size:.9em}#footer .copyright a{color:inherit}.text-fg{color:#a0a0a1}#selection-toolbar{position:fixed;top:0;left:0;width:100%;background:rgba(31,34,36,.95);padding:.75em 1.5em;display:flex;align-items:center;gap:1em;z-index:10003;transform:translateY(-100%);transition:transform .3s ease;box-sizing:border-box}#selection-toolbar.visible{transform:translateY(0)}#selection-toolbar #sel-count{color:#fff;font-weight:400;margin-right:auto;white-space:nowrap}#selection-toolbar button{white-space:nowrap}body.selection-mode #main .thumb{cursor:pointer;position:relative}body.selection-mode #main .thumb::before{content:"";position:absolute;bottom:.6em;right:.6em;width:1.6em;height:1.6em;border:2px solid rgba(255,255,255,.8);border-radius:4px;background:rgba(0,0,0,.5);z-index:2;transition:all .2s ease;pointer-events:none}body.selection-mode #main .thumb .image{opacity:.85;transition:opacity .2s ease}body.selection-mode #main .thumb:active .image{opacity:.6}body.selection-mode #main .thumb.selected::before{background:#34a58e;border-color:#34a58e}body.selection-mode #main .thumb.selected .image{opacity:1;outline:3px solid #34a58e;outline-offset:-3px}@media screen and (max-width: 736px){#selection-toolbar{top:4em;padding:.6em 1em;gap:.6em}#selection-toolbar #sel-count{font-size:.9em}#selection-toolbar button{font-size:.85em;padding:.5em 1em}body.selection-mode #main .thumb::before{bottom:.3em;right:.3em;width:2em;height:2em;border-width:2.5px}body.selection-mode #main .thumb.selected .image{outline-width:4px}}#footer .presentify{margin:0 0 1.4em 0;display:grid;grid-template-columns:auto 1fr;column-gap:1rem;align-items:center}#footer .presentify .presentify-logo{display:flex;align-items:center;justify-content:center}#footer .presentify .presentify-logo a{display:flex;align-items:center;justify-content:center;border:0}#footer .presentify .presentify-logo img{width:72px;height:72px;display:block}#footer .presentify .presentify-text{margin:0}
\ No newline at end of file
diff --git a/assets/js/admin.js b/assets/js/admin.js
index f3516c5..a5c80ab 100644
--- a/assets/js/admin.js
+++ b/assets/js/admin.js
@@ -26,12 +26,18 @@ $(document).ready(function() {
$('#users-tbody').empty();
$('#user-select').html('
');
+ if (!users || users.length === 0) {
+ $('#users-tbody').html('
| Keine Nutzer gefunden |
');
+ return;
+ }
+
users.forEach(function(u) {
- var badge = $('
').addClass('badge badge-' + u.role).text(u.role);
+ var role = u.role || 'unbekannt';
+ var badge = $('
').addClass('badge badge-' + role).text(role);
var created = u.created_at ? new Date(u.created_at).toLocaleDateString('de-DE') : '-';
var info = created;
- if (u.role === 'client' && u.expires_at) {
+ if (role === 'client' && u.expires_at) {
var expDate = new Date(u.expires_at).toLocaleDateString('de-DE');
if (u.expired) {
badge = $('
').addClass('badge badge-expired').text('abgelaufen');
@@ -55,32 +61,47 @@ $(document).ready(function() {
row.append($('
| ').text(u.id));
row.append(userCell);
- row.append($('
| ').text(u.role));
+ row.append($('
| ').text(role));
row.append($('
| ').text(info));
row.append(actions);
$('#users-tbody').append(row);
// Dropdown fuer Ordner-Zuweisung (nur non-admin)
- if (u.role !== 'admin') {
- $('#user-select').append($('
').val(u.id).text(u.username + ' (' + u.role + ')'));
+ if (role !== 'admin') {
+ $('#user-select').append($('
').val(u.id).text(u.username + ' (' + role + ')'));
}
});
+ }).fail(function(xhr) {
+ var msg = 'HTTP ' + xhr.status + ': ' + xhr.statusText;
+ $('#users-tbody').html('
| Fehler beim Laden: ' + msg + ' |
');
});
}
// Nutzer erstellen
$('#create-user-form').submit(function(e) {
e.preventDefault();
- $.post('/api/admin/users', {
- username: $('#new-username').val(),
- password: $('#new-password').val(),
- role: $('#new-role').val()
- }).done(function() {
+ var username = $('#new-username').val().trim();
+ var password = $('#new-password').val();
+ var role = $('#new-role').val();
+ if (!username || !password) {
+ alert('Bitte Username und Passwort eingeben.');
+ return;
+ }
+ $.ajax({
+ url: '/api/admin/users',
+ type: 'POST',
+ contentType: 'application/json',
+ data: JSON.stringify({ username: username, password: password, role: role })
+ }).done(function(data) {
+ alert('Nutzer "' + username + '" erfolgreich erstellt!');
$('#new-username').val('');
$('#new-password').val('');
loadUsers();
- }).fail(function(err) {
- alert('Fehler: ' + (err.responseJSON ? err.responseJSON.error : 'Unbekannt'));
+ }).fail(function(xhr) {
+ var msg = 'Unbekannter Fehler';
+ if (xhr.responseJSON && xhr.responseJSON.error) msg = xhr.responseJSON.error;
+ else if (xhr.status) msg = 'HTTP ' + xhr.status + ': ' + xhr.statusText;
+ alert('Fehler beim Erstellen: ' + msg);
});
});
@@ -119,54 +140,89 @@ $(document).ready(function() {
// ==================== ORDNER-ZUWEISUNG ====================
+ var allFolders = [];
+ var assignedFolders = [];
+
function loadFolders() {
$.get('/api/admin/folders').done(function(folders) {
- $('#folder-checkboxes').empty();
- if (folders.length === 0) {
- $('#folder-checkboxes').html('
Keine Unterordner in Websitebilder gefunden. Erstelle Ordner in Nextcloud.
');
- return;
- }
- folders.forEach(function(f) {
- var wrapper = $('
');
- var label = $('
');
- $('
').val(f).appendTo(label);
- label.append(' ');
- $('
').appendTo(label);
- label.append(' ' + f);
- wrapper.append(label);
- $('#folder-checkboxes').append(wrapper);
- });
+ allFolders = folders || [];
+ renderFolderTable();
});
}
- // Bei User-Auswahl: zugewiesene Ordner laden
+ function renderFolderTable() {
+ var $tbody = $('#folder-tbody');
+ $tbody.empty();
+ if (allFolders.length === 0) {
+ $tbody.html('
| Keine Unterordner gefunden. Erstelle Ordner in Nextcloud. |
');
+ return;
+ }
+ allFolders.forEach(function(f) {
+ var isAssigned = assignedFolders.indexOf(f) !== -1;
+ var cls = isAssigned ? 'folder-row assigned' : 'folder-row';
+ var statusCls = isAssigned ? 'folder-status yes' : 'folder-status no';
+ var statusText = isAssigned ? 'Zugewiesen' : '—';
+ $tbody.append(
+ '
' +
+ '| ' + f + ' | ' +
+ '' + statusText + ' | ' +
+ '
'
+ );
+ });
+ }
+
+ // Bei User-Auswahl: zugewiesene Ordner laden und Tabelle anzeigen
$('#user-select').change(function() {
var uid = $(this).val();
- $('.folder-cb').prop('checked', false);
- if (!uid) return;
- $.get('/api/admin/assign?user_id=' + uid).done(function(assignedFolders) {
- assignedFolders.forEach(function(f) {
- $('.folder-cb').filter(function() {
- return $(this).val() === f;
- }).prop('checked', true);
+ if (!uid) {
+ $('#folder-table-wrap').hide();
+ assignedFolders = [];
+ return;
+ }
+ // Ordner neu laden falls noch leer, dann Zuweisung anzeigen
+ var showTable = function() {
+ $.get('/api/admin/assign?user_id=' + uid).done(function(folders) {
+ assignedFolders = folders || [];
+ renderFolderTable();
+ $('#folder-table-wrap').show();
+ }).fail(function() {
+ assignedFolders = [];
+ renderFolderTable();
+ $('#folder-table-wrap').show();
});
- });
+ };
+ if (allFolders.length === 0) {
+ $.get('/api/admin/folders').done(function(folders) {
+ allFolders = folders || [];
+ showTable();
+ }).fail(function() {
+ allFolders = [];
+ showTable();
+ });
+ } else {
+ showTable();
+ }
});
- // Zuweisung speichern
- $('#save-assignments').click(function() {
+ // Klick auf Ordner-Zeile: Toggle + sofort speichern
+ $(document).on('click', '.folder-row', function() {
var uid = $('#user-select').val();
- if (!uid) return alert('Bitte Nutzer waehlen');
- var selected = [];
- $('.folder-cb:checked').each(function() { selected.push($(this).val()); });
-
+ if (!uid) return;
+ var folder = $(this).data('folder');
+ var idx = assignedFolders.indexOf(folder);
+ if (idx !== -1) {
+ assignedFolders.splice(idx, 1);
+ } else {
+ assignedFolders.push(folder);
+ }
+ renderFolderTable();
$.ajax({
url: '/api/admin/assign',
type: 'POST',
contentType: 'application/json',
- data: JSON.stringify({ user_id: uid, folders: selected })
+ data: JSON.stringify({ user_id: uid, folders: assignedFolders })
}).done(function() {
- $('#assign-status').text('Gespeichert!').fadeIn().delay(2000).fadeOut();
+ $('#assign-status').text('Gespeichert!').show().delay(1500).fadeOut();
}).fail(function() {
alert('Fehler beim Speichern');
});
diff --git a/assets/js/admin.min.js b/assets/js/admin.min.js
index 4a0f3a9..2c4e91e 100644
--- a/assets/js/admin.min.js
+++ b/assets/js/admin.min.js
@@ -1 +1 @@
-$(document).ready(function(){function e(){$.get("/api/admin/users").done(function(e){$("#users-tbody").empty(),$("#user-select").html('
'),e.forEach(function(e){var n='
'+e.role+"",a=e.created_at?new Date(e.created_at).toLocaleDateString("de-DE"):"-";if("client"===e.role&&e.expires_at){var t=new Date(e.expires_at).toLocaleDateString("de-DE");e.expired?(n='
abgelaufen',a="Abgelaufen: "+t):a="Bis: "+t}var r='
";r+='
",$("#users-tbody").append("
| "+e.id+" | "+e.username+" "+n+" | "+e.role+" | "+a+" | "+r+" |
"),"admin"!==e.role&&$("#user-select").append('
")})})}$.get("/api/auth/me").done(function(n){"admin"!==n.role?(alert("Kein Zugriff!"),window.location.href="/"):(e(),$.get("/api/admin/folders").done(function(e){$("#folder-checkboxes").empty(),0!==e.length?e.forEach(function(e){$("#folder-checkboxes").append('
")}):$("#folder-checkboxes").html("
Keine Unterordner in Websitebilder gefunden. Erstelle Ordner in Nextcloud.
")}),$("body").removeClass("is-preload"))}).fail(function(){window.location.href="/"}),$("#logout-btn").click(function(e){e.preventDefault(),$.post("/api/auth/logout").done(function(){window.location.href="/"})}),$("#create-user-form").submit(function(n){n.preventDefault(),$.post("/api/admin/users",{username:$("#new-username").val(),password:$("#new-password").val(),role:$("#new-role").val()}).done(function(){$("#new-username").val(""),$("#new-password").val(""),e()}).fail(function(e){alert("Fehler: "+(e.responseJSON?e.responseJSON.error:"Unbekannt"))})}),window.deleteUser=function(n,a){confirm('Nutzer "'+a+'" wirklich loeschen?')&&$.ajax({url:"/api/admin/users/"+n,type:"DELETE"}).done(e).fail(function(e){alert(e.responseJSON?e.responseJSON.error:"Fehler")})},window.changePassword=function(e,n){var a=prompt('Neues Passwort fuer "'+n+'":');a&&$.ajax({url:"/api/admin/users/"+e+"/password",type:"PUT",contentType:"application/json",data:JSON.stringify({new_password:a})}).done(function(){alert("Passwort geaendert!")}).fail(function(e){alert(e.responseJSON?e.responseJSON.error:"Fehler")})},$("#user-select").change(function(){var e=$(this).val();$(".folder-cb").prop("checked",!1),e&&$.get("/api/admin/assign?user_id="+e).done(function(e){e.forEach(function(e){$('.folder-cb[value="'+e+'"]').prop("checked",!0)})})}),$("#save-assignments").click(function(){var e=$("#user-select").val();if(!e)return alert("Bitte Nutzer waehlen");var n=[];$(".folder-cb:checked").each(function(){n.push($(this).val())}),$.ajax({url:"/api/admin/assign",type:"POST",contentType:"application/json",data:JSON.stringify({user_id:e,folders:n})}).done(function(){$("#assign-status").text("Gespeichert!").fadeIn().delay(2e3).fadeOut()}).fail(function(){alert("Fehler beim Speichern")})}),$("#admin-pw-form").submit(function(e){e.preventDefault(),$.post("/api/auth/change-password",{old_password:$("#admin-pw-old").val(),new_password:$("#admin-pw-new").val()}).done(function(){alert("Passwort geaendert!"),$("#admin-pw-old, #admin-pw-new").val("")}).fail(function(e){alert(e.responseJSON?e.responseJSON.error:"Fehler")})})});
\ No newline at end of file
+$(document).ready(function(){function e(){$.get("/api/admin/users").done(function(e){$("#users-tbody").empty(),$("#user-select").html('
'),e&&0!==e.length?e.forEach(function(e){var t=e.role||"unbekannt",n='
'+t+"",a=e.created_at?new Date(e.created_at).toLocaleDateString("de-DE"):"-";if("client"===t&&e.expires_at){var r=new Date(e.expires_at).toLocaleDateString("de-DE");e.expired?(n='
abgelaufen',a="Abgelaufen: "+r):a="Bis: "+r}var o='
";o+='
",$("#users-tbody").append("
| "+e.id+" | "+e.username+" "+n+" | "+t+" | "+a+" | "+o+" |
"),"admin"!==t&&$("#user-select").append('
")}):$("#users-tbody").html('
| Keine Nutzer gefunden |
')}).fail(function(e){var t="HTTP "+e.status+": "+e.statusText;$("#users-tbody").html('
| Fehler beim Laden: '+t+" |
")})}$.get("/api/auth/me").done(function(n){"admin"!==n.role?(alert("Kein Zugriff!"),window.location.href="/"):(e(),$.get("/api/admin/folders").done(function(e){t=e}),$("body").removeClass("is-preload"))}).fail(function(){window.location.href="/"}),$("#logout-btn").click(function(e){e.preventDefault(),$.post("/api/auth/logout").done(function(){window.location.href="/"})}),$("#create-user-form").submit(function(t){t.preventDefault();var n=$("#new-username").val().trim(),a=$("#new-password").val(),r=$("#new-role").val();n&&a?$.ajax({url:"/api/admin/users",type:"POST",contentType:"application/json",data:JSON.stringify({username:n,password:a,role:r})}).done(function(t){alert('Nutzer "'+n+'" erfolgreich erstellt!'),$("#new-username").val(""),$("#new-password").val(""),e()}).fail(function(e){var t="Unbekannter Fehler";e.responseJSON&&e.responseJSON.error?t=e.responseJSON.error:e.status&&(t="HTTP "+e.status+": "+e.statusText),alert("Fehler beim Erstellen: "+t)}):alert("Bitte Username und Passwort eingeben.")}),window.deleteUser=function(t,n){confirm('Nutzer "'+n+'" wirklich loeschen?')&&$.ajax({url:"/api/admin/users/"+t,type:"DELETE"}).done(e).fail(function(e){alert(e.responseJSON?e.responseJSON.error:"Fehler")})},window.changePassword=function(e,t){var n=prompt('Neues Passwort fuer "'+t+'":');n&&$.ajax({url:"/api/admin/users/"+e+"/password",type:"PUT",contentType:"application/json",data:JSON.stringify({new_password:n})}).done(function(){alert("Passwort geaendert!")}).fail(function(e){alert(e.responseJSON?e.responseJSON.error:"Fehler")})};var t=[],n=[];function a(){var e=$("#folder-tbody");e.empty(),0!==t.length?t.forEach(function(t){var a=-1!==n.indexOf(t),r=a?"folder-row assigned":"folder-row",o=a?"folder-status yes":"folder-status no",s=a?"Zugewiesen":"—";e.append('
| '+t+' | '+s+" |
")}):e.html('
| Keine Unterordner gefunden. Erstelle Ordner in Nextcloud. |
')}$("#user-select").change(function(){var e=$(this).val();if(!e)return $("#folder-table-wrap").hide(),void(n=[]);var r=function(){$.get("/api/admin/assign?user_id="+e).done(function(e){n=e||[],a(),$("#folder-table-wrap").show()}).fail(function(){n=[],a(),$("#folder-table-wrap").show()})};0===t.length?$.get("/api/admin/folders").done(function(e){t=e||[],r()}).fail(function(){t=[],r()}):r()}),$(document).on("click",".folder-row",function(){var e=$("#user-select").val();if(e){var t=$(this).data("folder"),r=n.indexOf(t);-1!==r?n.splice(r,1):n.push(t),a(),$.ajax({url:"/api/admin/assign",type:"POST",contentType:"application/json",data:JSON.stringify({user_id:e,folders:n})}).done(function(){$("#assign-status").text("Gespeichert!").show().delay(1500).fadeOut()}).fail(function(){alert("Fehler beim Speichern")})}}),$("#admin-pw-form").submit(function(e){e.preventDefault(),$.post("/api/auth/change-password",{old_password:$("#admin-pw-old").val(),new_password:$("#admin-pw-new").val()}).done(function(){alert("Passwort geaendert!"),$("#admin-pw-old, #admin-pw-new").val("")}).fail(function(e){alert(e.responseJSON?e.responseJSON.error:"Fehler")})})});
\ No newline at end of file
diff --git a/assets/js/main.js b/assets/js/main.js
index b9f2ba1..a6bc30f 100644
--- a/assets/js/main.js
+++ b/assets/js/main.js
@@ -182,6 +182,8 @@
images.forEach(function(file) {
var article = $('
');
+ article.attr('data-name', file.name);
+ if (file.folder) article.attr('data-folder', file.folder);
var prefix = file.folder ? encodeURIComponent(file.folder) + '/' : '';
var fullPath = '/images/fulls/' + prefix + encodeURIComponent(file.name);
var thumbPath = '/images/thumbs/' + prefix + encodeURIComponent(file.name);
@@ -193,6 +195,7 @@
});
initThumbs();
+ initSelectionMode(images);
initPoptrox();
},
error: function() {
@@ -214,6 +217,14 @@
if ((x = $image_img.data("position"))) $image.css("background-position", x);
$image_img.hide();
+ // Fallback: Wenn Thumbnail fehlt, Vollbild als Vorschau nutzen
+ $image_img[0].addEventListener("error", function() {
+ var fullUrl = $image.attr("href");
+ if (fullUrl) {
+ $image.css("background-image", "url('" + fullUrl + "')");
+ }
+ });
+
$image_img[0].addEventListener("load", function() {
EXIF.getData($image_img[0], function () {
exifDatas[$image_img.data('name')] = getExifDataMarkup(this);
@@ -282,6 +293,194 @@
return template;
}
+ // ==================== SELECTION MODE ====================
+
+ function initSelectionMode(allImages) {
+ var selectedImages = [];
+ var selectionActive = false;
+
+ // Toolbar erstellen (versteckt)
+ var $toolbar = $('
');
+ $toolbar.html(
+ '
0 ausgewaehlt' +
+ '
' +
+ '
'
+ );
+ $('body').append($toolbar);
+
+ // Selection-Toggle Button im Header
+ var $selectToggle = $('
' +
+ '');
+ $('#header nav > ul').prepend($selectToggle);
+
+ // Ordner-Download Buttons (nur wenn Ordner-Bilder vorhanden)
+ var folders = [];
+ allImages.forEach(function(img) {
+ if (img.folder && folders.indexOf(img.folder) === -1) {
+ folders.push(img.folder);
+ }
+ });
+ if (folders.length > 0) {
+ folders.forEach(function(folder) {
+ var $folderBtn = $('
' +
+ '');
+ $('#header nav > ul').prepend($folderBtn);
+ });
+ }
+
+ // Selection-Mode toggle
+ $(document).on('click', '#select-mode-toggle', function(e) {
+ e.preventDefault();
+ e.stopPropagation();
+ selectionActive = !selectionActive;
+ $('body').toggleClass('selection-mode', selectionActive);
+ if (!selectionActive) clearSelection();
+ $toolbar.toggleClass('visible', selectionActive);
+ });
+
+ // Klick auf Thumbnail im Selection-Mode
+ // Capture-Phase auf document: faengt JEDEN Klick ab bevor Poptrox ihn sieht
+ document.addEventListener('click', function(e) {
+ if (!selectionActive) return;
+ var thumb = e.target.closest('#main .thumb');
+ if (!thumb) return;
+
+ e.preventDefault();
+ e.stopImmediatePropagation();
+
+ var $thumb = $(thumb);
+ var imgName = $thumb.attr('data-name');
+ var folder = $thumb.attr('data-folder') || null;
+
+ var idx = -1;
+ for (var i = 0; i < selectedImages.length; i++) {
+ if (selectedImages[i].name === imgName && selectedImages[i].folder === folder) {
+ idx = i; break;
+ }
+ }
+
+ if (idx !== -1) {
+ selectedImages.splice(idx, 1);
+ $thumb.removeClass('selected');
+ } else {
+ selectedImages.push({ name: imgName, folder: folder });
+ $thumb.addClass('selected');
+ }
+ updateToolbar();
+ }, true);
+
+ function updateToolbar() {
+ var count = selectedImages.length;
+ $('#sel-count').text(count + ' ausgewaehlt');
+ $('#sel-download').prop('disabled', count === 0);
+ if (count > 3) {
+ $('#sel-download').html('
Als ZIP (' + count + ')');
+ } else if (count > 0) {
+ $('#sel-download').html('
Herunterladen (' + count + ')');
+ } else {
+ $('#sel-download').html('
Herunterladen');
+ }
+ }
+
+ function clearSelection() {
+ selectedImages = [];
+ $('.thumb').removeClass('selected');
+ updateToolbar();
+ }
+
+ // Download-Button (direkt gebunden, nicht delegiert)
+ $toolbar.on('click', '#sel-download', function() {
+ if (selectedImages.length === 0) return;
+ var payload = JSON.stringify({ images: selectedImages });
+
+ if (selectedImages.length <= 3) {
+ // 1-3 Bilder: normales AJAX, Server gibt JSON mit URLs
+ $.ajax({
+ url: '/api/download/selected',
+ type: 'POST',
+ contentType: 'application/json',
+ data: payload,
+ success: function(resp) {
+ if (resp.mode === 'individual') {
+ resp.urls.forEach(function(url, i) {
+ setTimeout(function() {
+ var a = document.createElement('a');
+ a.href = url;
+ a.download = url.split('/').pop();
+ document.body.appendChild(a);
+ a.click();
+ document.body.removeChild(a);
+ }, i * 500);
+ });
+ }
+ },
+ error: function(xhr) {
+ var msg = (xhr.responseJSON && xhr.responseJSON.error) || 'Download fehlgeschlagen';
+ alert(msg);
+ }
+ });
+ } else {
+ // 4+ Bilder: Blob-Download fuer ZIP
+ var xhr = new XMLHttpRequest();
+ xhr.open('POST', '/api/download/selected', true);
+ xhr.setRequestHeader('Content-Type', 'application/json');
+ xhr.responseType = 'blob';
+ xhr.onload = function() {
+ if (xhr.status === 200) {
+ var url = window.URL.createObjectURL(xhr.response);
+ var a = document.createElement('a');
+ a.href = url;
+ a.download = 'mischkomposition-auswahl.zip';
+ document.body.appendChild(a);
+ a.click();
+ window.URL.revokeObjectURL(url);
+ document.body.removeChild(a);
+ } else {
+ // Fehler-Blob als Text lesen
+ var reader = new FileReader();
+ reader.onload = function() {
+ try {
+ var resp = JSON.parse(this.result);
+ alert(resp.error || 'Download fehlgeschlagen');
+ } catch(e) {
+ alert('Download fehlgeschlagen (Status ' + xhr.status + ')');
+ }
+ };
+ reader.readAsText(xhr.response);
+ }
+ };
+ xhr.onerror = function() {
+ alert('Netzwerkfehler beim Download');
+ };
+ xhr.send(payload);
+ }
+ });
+
+ // Abbrechen-Button (direkt gebunden)
+ $toolbar.on('click', '#sel-cancel', function() {
+ selectionActive = false;
+ $('body').removeClass('selection-mode');
+ $toolbar.removeClass('visible');
+ clearSelection();
+ });
+
+ // Ordner-Download
+ $(document).on('click', '.folder-download-btn', function(e) {
+ e.preventDefault();
+ e.stopPropagation();
+ var folder = $(this).data('folder');
+ var a = document.createElement('a');
+ a.href = '/api/download/folder/' + encodeURIComponent(folder);
+ a.download = folder + '.zip';
+ document.body.appendChild(a);
+ a.click();
+ document.body.removeChild(a);
+ });
+ }
+
// Galerie laden
loadGallery();
diff --git a/assets/js/main.min.js b/assets/js/main.min.js
index a46089f..1d77919 100644
--- a/assets/js/main.min.js
+++ b/assets/js/main.min.js
@@ -1 +1 @@
-!function(e){var n,o=e(window),a=e("body");e("#wrapper");(breakpoints({xlarge:["1281px","1680px"],large:["981px","1280px"],medium:["737px","980px"],small:["481px","736px"],xsmall:[null,"480px"]}),"ie"==browser.name&&a.addClass("ie"),browser.mobile&&a.addClass("touch"),browser.canUse("transition"))&&(o.on("load",function(){window.setTimeout(function(){a.removeClass("is-preload")},100)}),o.on("resize",function(){window.clearTimeout(n),a.addClass("is-resizing"),n=window.setTimeout(function(){a.removeClass("is-resizing")},100)}));o.scrollTop(0);var t=e(".panel");t.each(function(){var n=e(this),o=e('[href="#'+n.attr("id")+'"]');e('
').appendTo(n).on("click",function(e){n.trigger("---hide")}),n.on("click",function(e){e.stopPropagation()}).on("---toggle",function(){n.hasClass("active")?n.triggerHandler("---hide"):n.triggerHandler("---show")}).on("---show",function(){a.hasClass("content-active")&&t.trigger("---hide"),n.addClass("active"),o.addClass("active"),a.addClass("content-active")}).on("---hide",function(){n.removeClass("active"),o.removeClass("active"),a.removeClass("content-active")}),o.removeAttr("href").css("cursor","pointer").on("click",function(e){e.preventDefault(),e.stopPropagation(),n.trigger("---toggle")})}),a.on("click",function(e){a.hasClass("content-active")&&(e.preventDefault(),e.stopPropagation(),t.trigger("---hide"))}),o.on("keyup",function(e){27==e.keyCode&&a.hasClass("content-active")&&(e.preventDefault(),e.stopPropagation(),t.trigger("---hide"))}),e("#header").find("a").each(function(){var n=e(this),o=n.attr("href");o&&"#"!=o.charAt(0)&&n.removeAttr("href").css("cursor","pointer").on("click",function(e){e.preventDefault(),e.stopPropagation(),window.location.href=o})}),e("#footer").find(".copyright").each(function(){var n=e(this),o=n.parent(),a=o.parent().children().last();breakpoints.on("<=medium",function(){n.appendTo(a)}),breakpoints.on(">medium",function(){n.appendTo(o)})});var i=e("#main"),r={},s=["jpg","jpeg","png","gif","webp"];function l(n){var o=e("#main").data("exif"),a="";for(var t in o){var i=o[t],r=EXIF.getTag(n,i.tag);void 0!==r&&(a+='
'+r+" ")}return a}e.ajax({url:"/images/fulls/",dataType:"json",cache:!1,success:function(n){if(0!==n.length){var o=n.filter(function(e){if("file"!==e.type)return!1;var n=e.name.split(".").pop().toLowerCase();return-1!==s.indexOf(n)});0!==o.length?(o.sort(function(e,n){return e.name.localeCompare(n.name)}),o.forEach(function(n){var o=e('
'),a=n.folder?encodeURIComponent(n.folder)+"/":"",t="/images/fulls/"+a+encodeURIComponent(n.name),r="/images/thumbs/"+a+encodeURIComponent(n.name),s=e('
'),l=e('

');s.append(l),o.append(s),i.append(o)}),i.children(".thumb").each(function(){var n,o=e(this),a=o.find(".image"),t=a.children("img");0!=a.length&&(a.css("background-image","url('"+t.attr("src")+"')"),(n=t.data("position"))&&a.css("background-position",n),t.hide(),t[0].addEventListener("load",function(){EXIF.getData(t[0],function(){r[t.data("name")]=l(this)})}))}),i.poptrox({baseZIndex:2e4,caption:function(e){var n=e.children("img"),o=r[n.data("name")];void 0===o&&EXIF.getData(n[0],function(){o=r[n.data("name")]=l(this)});var a='
Bild Speichern ';return void 0!==o?"
"+o+a+"
":"
"+a+"
"},fadeSpeed:300,onPopupClose:function(){a.removeClass("modal-active")},onPopupOpen:function(){a.addClass("modal-active")},overlayOpacity:0,popupCloserText:"",popupHeight:150,popupLoaderText:"",popupSpeed:300,popupWidth:150,selector:".thumb > a.image",usePopupCaption:!0,usePopupCloser:!0,usePopupDefaultStyling:!1,usePopupForceClose:!0,usePopupLoader:!0,usePopupNav:!0,windowMargin:50}),breakpoints.on("<=xsmall",function(){i[0]._poptrox.windowMargin=0}),breakpoints.on(">xsmall",function(){i[0]._poptrox.windowMargin=50})):i.html('
Es wurden noch keine passenden Bilder für diesen Account hochgeladen oder zugewiesen.
')}else i.html('
Noch keine Bilder vorhanden.
')},error:function(){i.html('
Keine Bilder gefunden. Lade Bilder in deinen Nextcloud-Ordner hoch.
')}});var c=localStorage.getItem("mischkomposition_theme")||"main";function p(n){"light"===n?e("#theme-toggle i").removeClass("fa-sun").addClass("fa-moon"):e("#theme-toggle i").removeClass("fa-moon").addClass("fa-sun")}p(c),e("#theme-toggle").click(function(n){n.preventDefault(),c="main"===c?"light":"main",localStorage.setItem("mischkomposition_theme",c),e("#theme-style").attr("href","assets/css/"+c+".min.css"),p(c)}),e.get("/api/auth/me").done(function(n){e("#login-username, #login-password, #login-submit").hide(),e("#logout-btn").show().css("display","inline-block"),e("#pw-change-section").show(),"admin"===n.role&&e("#admin-link").html('
Admin-Dashboard'),e("#login-nav").html('Account
')}),e("#login-form").submit(function(n){n.preventDefault(),e.post("/api/auth/login",{username:e("#login-username").val(),password:e("#login-password").val()}).done(function(){window.location.reload()}).fail(function(e){var n="Login fehlgeschlagen.";e.responseJSON&&"Account abgelaufen"===e.responseJSON.error&&(n="Dein Account ist abgelaufen. Bitte kontaktiere den Administrator."),alert(n)})}),e("#logout-btn").click(function(n){n.preventDefault(),e.post("/api/auth/logout").done(function(){window.location.reload()})}),e("#pw-change-form").submit(function(n){n.preventDefault();var o=e("#pw-new").val();o===e("#pw-confirm").val()?e.post("/api/auth/change-password",{old_password:e("#pw-old").val(),new_password:o}).done(function(){alert("Passwort geaendert!"),e("#pw-old, #pw-new, #pw-confirm").val("")}).fail(function(e){alert(e.responseJSON?e.responseJSON.error:"Fehler")}):alert("Passwoerter stimmen nicht ueberein.")})}(jQuery);
\ No newline at end of file
+!function(e){var n,o=e(window),a=e("body");e("#wrapper");(breakpoints({xlarge:["1281px","1680px"],large:["981px","1280px"],medium:["737px","980px"],small:["481px","736px"],xsmall:[null,"480px"]}),"ie"==browser.name&&a.addClass("ie"),browser.mobile&&a.addClass("touch"),browser.canUse("transition"))&&(o.on("load",function(){window.setTimeout(function(){a.removeClass("is-preload")},100)}),o.on("resize",function(){window.clearTimeout(n),a.addClass("is-resizing"),n=window.setTimeout(function(){a.removeClass("is-resizing")},100)}));o.scrollTop(0);var t=e(".panel");t.each(function(){var n=e(this),o=e('[href="#'+n.attr("id")+'"]');e('
').appendTo(n).on("click",function(e){n.trigger("---hide")}),n.on("click",function(e){e.stopPropagation()}).on("---toggle",function(){n.hasClass("active")?n.triggerHandler("---hide"):n.triggerHandler("---show")}).on("---show",function(){a.hasClass("content-active")&&t.trigger("---hide"),n.addClass("active"),o.addClass("active"),a.addClass("content-active")}).on("---hide",function(){n.removeClass("active"),o.removeClass("active"),a.removeClass("content-active")}),o.removeAttr("href").css("cursor","pointer").on("click",function(e){e.preventDefault(),e.stopPropagation(),n.trigger("---toggle")})}),a.on("click",function(e){a.hasClass("content-active")&&(e.preventDefault(),e.stopPropagation(),t.trigger("---hide"))}),o.on("keyup",function(e){27==e.keyCode&&a.hasClass("content-active")&&(e.preventDefault(),e.stopPropagation(),t.trigger("---hide"))}),e("#header").find("a").each(function(){var n=e(this),o=n.attr("href");o&&"#"!=o.charAt(0)&&n.removeAttr("href").css("cursor","pointer").on("click",function(e){e.preventDefault(),e.stopPropagation(),window.location.href=o})}),e("#footer").find(".copyright").each(function(){var n=e(this),o=n.parent(),a=o.parent().children().last();breakpoints.on("<=medium",function(){n.appendTo(a)}),breakpoints.on(">medium",function(){n.appendTo(o)})});var i=e("#main"),l={},r=["jpg","jpeg","png","gif","webp"];function s(n){var o=e("#main").data("exif"),a="";for(var t in o){var i=o[t],l=EXIF.getTag(n,i.tag);void 0!==l&&(a+='
'+l+" ")}return a}e.ajax({url:"/images/fulls/",dataType:"json",cache:!1,success:function(n){if(0!==n.length){var o=n.filter(function(e){if("file"!==e.type)return!1;var n=e.name.split(".").pop().toLowerCase();return-1!==r.indexOf(n)});0!==o.length?(o.sort(function(e,n){return e.name.localeCompare(n.name)}),o.forEach(function(n){var o=e('
');o.attr("data-name",n.name),n.folder&&o.attr("data-folder",n.folder);var a=n.folder?encodeURIComponent(n.folder)+"/":"",t="/images/fulls/"+a+encodeURIComponent(n.name),l="/images/thumbs/"+a+encodeURIComponent(n.name),r=e('
'),s=e('

');r.append(s),o.append(r),i.append(o)}),i.children(".thumb").each(function(){var n,o=e(this),a=o.find(".image"),t=a.children("img");0!=a.length&&(a.css("background-image","url('"+t.attr("src")+"')"),(n=t.data("position"))&&a.css("background-position",n),t.hide(),t[0].addEventListener("error",function(){var e=a.attr("href");e&&a.css("background-image","url('"+e+"')")}),t[0].addEventListener("load",function(){EXIF.getData(t[0],function(){l[t.data("name")]=s(this)})}))}),function(n){var o=[],a=!1,t=e('
');t.html('
0 ausgewaehlt'),e("body").append(t);var i=e('
');e("#header nav > ul").prepend(i);var l=[];function r(){var n=o.length;e("#sel-count").text(n+" ausgewaehlt"),e("#sel-download").prop("disabled",0===n),n>3?e("#sel-download").html('
Als ZIP ('+n+")"):n>0?e("#sel-download").html('
Herunterladen ('+n+")"):e("#sel-download").html('
Herunterladen')}function s(){o=[],e(".thumb").removeClass("selected"),r()}n.forEach(function(e){e.folder&&-1===l.indexOf(e.folder)&&l.push(e.folder)}),l.length>0&&l.forEach(function(n){var o=e('
');e("#header nav > ul").prepend(o)}),e(document).on("click","#select-mode-toggle",function(n){n.preventDefault(),n.stopPropagation(),a=!a,e("body").toggleClass("selection-mode",a),a||s(),t.toggleClass("visible",a)}),document.addEventListener("click",function(n){if(a){var t=n.target.closest("#main .thumb");if(t){n.preventDefault(),n.stopImmediatePropagation();for(var i=e(t),l=i.attr("data-name"),s=i.attr("data-folder")||null,d=-1,c=0;c
Bild Speichern ';return void 0!==o?""+o+a+"
":""+a+"
"},fadeSpeed:300,onPopupClose:function(){a.removeClass("modal-active")},onPopupOpen:function(){a.addClass("modal-active")},overlayOpacity:0,popupCloserText:"",popupHeight:150,popupLoaderText:"",popupSpeed:300,popupWidth:150,selector:".thumb > a.image",usePopupCaption:!0,usePopupCloser:!0,usePopupDefaultStyling:!1,usePopupForceClose:!0,usePopupLoader:!0,usePopupNav:!0,windowMargin:50}),breakpoints.on("<=xsmall",function(){i[0]._poptrox.windowMargin=0}),breakpoints.on(">xsmall",function(){i[0]._poptrox.windowMargin=50})):i.html('Es wurden noch keine passenden Bilder für diesen Account hochgeladen oder zugewiesen.
')}else i.html('Noch keine Bilder vorhanden.
')},error:function(){i.html('Keine Bilder gefunden. Lade Bilder in deinen Nextcloud-Ordner hoch.
')}});var d=localStorage.getItem("mischkomposition_theme")||"main";function c(n){"light"===n?e("#theme-toggle i").removeClass("fa-sun").addClass("fa-moon"):e("#theme-toggle i").removeClass("fa-moon").addClass("fa-sun")}c(d),e("#theme-toggle").click(function(n){n.preventDefault(),d="main"===d?"light":"main",localStorage.setItem("mischkomposition_theme",d),e("#theme-style").attr("href","assets/css/"+d+".min.css"),c(d)}),e.get("/api/auth/me").done(function(n){e("#login-username, #login-password, #login-submit").hide(),e("#logout-btn").show().css("display","inline-block"),e("#pw-change-section").show(),"admin"===n.role&&e("#admin-link").html('Admin-Dashboard'),e("#login-nav").html('Account ')}),e("#login-form").submit(function(n){n.preventDefault(),e.post("/api/auth/login",{username:e("#login-username").val(),password:e("#login-password").val()}).done(function(){window.location.reload()}).fail(function(e){var n="Login fehlgeschlagen.";e.responseJSON&&"Account abgelaufen"===e.responseJSON.error&&(n="Dein Account ist abgelaufen. Bitte kontaktiere den Administrator."),alert(n)})}),e("#logout-btn").click(function(n){n.preventDefault(),e.post("/api/auth/logout").done(function(){window.location.reload()})}),e("#pw-change-form").submit(function(n){n.preventDefault();var o=e("#pw-new").val();o===e("#pw-confirm").val()?e.post("/api/auth/change-password",{old_password:e("#pw-old").val(),new_password:o}).done(function(){alert("Passwort geaendert!"),e("#pw-old, #pw-new, #pw-confirm").val("")}).fail(function(e){alert(e.responseJSON?e.responseJSON.error:"Fehler")}):alert("Passwoerter stimmen nicht ueberein.")})}(jQuery);
\ No newline at end of file
diff --git a/assets/sass/custom.scss b/assets/sass/custom.scss
index 4834f85..9836f19 100644
--- a/assets/sass/custom.scss
+++ b/assets/sass/custom.scss
@@ -6,6 +6,116 @@
color: _palette(fg);
}
+/* ==================== Selection Mode ==================== */
+
+#selection-toolbar {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ background: rgba(31, 34, 36, 0.95);
+ padding: 0.75em 1.5em;
+ display: flex;
+ align-items: center;
+ gap: 1em;
+ z-index: _misc(z-index-base) + 3;
+ transform: translateY(-100%);
+ transition: transform 0.3s ease;
+ box-sizing: border-box;
+
+ &.visible {
+ transform: translateY(0);
+ }
+
+ #sel-count {
+ color: _palette(fg-bold);
+ font-weight: _font(weight-extrabold);
+ margin-right: auto;
+ white-space: nowrap;
+ }
+
+ button {
+ white-space: nowrap;
+ }
+}
+
+body.selection-mode {
+ #main .thumb {
+ cursor: pointer;
+ position: relative;
+
+ // Checkbox unten-rechts (wird nicht von Toolbar ueberlagert)
+ &::before {
+ content: '';
+ position: absolute;
+ bottom: 0.6em;
+ right: 0.6em;
+ width: 1.6em;
+ height: 1.6em;
+ border: 2px solid rgba(255, 255, 255, 0.8);
+ border-radius: 4px;
+ background: rgba(0, 0, 0, 0.5);
+ z-index: 2;
+ transition: all 0.2s ease;
+ pointer-events: none;
+ }
+
+ // Leichtes Overlay damit klar ist: gesamtes Bild anklickbar
+ .image {
+ opacity: 0.85;
+ transition: opacity 0.2s ease;
+ }
+
+ &:active .image {
+ opacity: 0.6;
+ }
+
+ &.selected {
+ &::before {
+ background: _palette(accent1);
+ border-color: _palette(accent1);
+ }
+
+ .image {
+ opacity: 1;
+ outline: 3px solid _palette(accent1);
+ outline-offset: -3px;
+ }
+ }
+ }
+}
+
+@media screen and (max-width: 736px) {
+ #selection-toolbar {
+ top: _size(header);
+ padding: 0.6em 1em;
+ gap: 0.6em;
+
+ #sel-count {
+ font-size: 0.9em;
+ }
+
+ button {
+ font-size: 0.85em;
+ padding: 0.5em 1em;
+ }
+ }
+
+ body.selection-mode #main .thumb {
+ &::before {
+ bottom: 0.3em;
+ right: 0.3em;
+ width: 2em;
+ height: 2em;
+ border-width: 2.5px;
+ }
+
+ &.selected .image {
+ outline-width: 4px;
+ }
+ }
+}
+
/* Footer */
#footer {
.presentify {
diff --git a/assets/sass/layout/_header.scss b/assets/sass/layout/_header.scss
index 0a1ccd7..00174e6 100644
--- a/assets/sass/layout/_header.scss
+++ b/assets/sass/layout/_header.scss
@@ -110,15 +110,25 @@
}
h1 {
- font-size: 0.9em;
+ font-size: 0.8em;
+ max-width: 40%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
}
nav {
> ul {
> li {
a {
- font-size: 0.9em;
- padding: 0 1.15em;
+ font-size: 0;
+ padding: 0 0.9em;
+ line-height: _size(header);
+
+ i {
+ font-size: 1.3rem;
+ vertical-align: middle;
+ }
}
}
}
diff --git a/assets/sass/libs/_vars.scss b/assets/sass/libs/_vars.scss
index 86f5a2e..3c05693 100644
--- a/assets/sass/libs/_vars.scss
+++ b/assets/sass/libs/_vars.scss
@@ -27,10 +27,10 @@
minHeight: 18em
),
xsmall: (
- rows: 2,
- columns: 1,
+ rows: 3,
+ columns: 2,
pad: 0.5,
- minHeight: 18em
+ minHeight: 12em
)
)
);
diff --git a/backend/database.js b/backend/database.js
index ad1b9a2..c373f9e 100644
--- a/backend/database.js
+++ b/backend/database.js
@@ -17,7 +17,15 @@ db.serialize(() => {
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
)`);
- // Migration: created_at hinzufuegen falls Tabelle schon existiert
+ // Migration: Spalten hinzufuegen falls Tabelle schon existiert (alte DB ohne role/created_at)
+ db.run(`ALTER TABLE users ADD COLUMN role TEXT NOT NULL DEFAULT 'client'`, (err) => {
+ // Ignoriere Fehler wenn Spalte schon existiert
+ if (!err) {
+ // Alte Admins (die einzigen User vor dem Update) als admin markieren
+ db.run(`UPDATE users SET role = 'admin' WHERE id = 1`);
+ console.log('Migration: role-Spalte hinzugefuegt, User ID 1 als admin gesetzt');
+ }
+ });
db.run(`ALTER TABLE users ADD COLUMN created_at DATETIME DEFAULT CURRENT_TIMESTAMP`, (err) => {
// Ignoriere Fehler wenn Spalte schon existiert
});
diff --git a/backend/server.js b/backend/server.js
index 1d24d50..376ac43 100644
--- a/backend/server.js
+++ b/backend/server.js
@@ -5,6 +5,7 @@ const bcrypt = require('bcryptjs');
const fs = require('fs');
const path = require('path');
const { execFile } = require('child_process');
+const archiver = require('archiver');
const db = require('./database');
const app = express();
@@ -19,7 +20,7 @@ const DEV_FULLS_DIR = path.join(__dirname, '../images/fulls');
const DEV_THUMBS_DIR = path.join(__dirname, '../images/thumbs');
const FULLS_DIR = process.env.FULLS_DIR || (fs.existsSync(DEFAULT_FULLS_DIR) ? DEFAULT_FULLS_DIR : DEV_FULLS_DIR);
const THUMBS_DIR = process.env.THUMBS_DIR || (fs.existsSync(DEFAULT_THUMBS_DIR) ? DEFAULT_THUMBS_DIR : DEV_THUMBS_DIR);
-const SYNC_IMAGE = process.env.SYNC_IMAGE || 'ghcr.io/kroonk/photography:latest';
+const SYNC_IMAGE = process.env.SYNC_IMAGE || 'git.mischlabs.de/mrdiderot/photography:latest';
const SYNC_CONTAINER = process.env.SYNC_CONTAINER || 'photography-website';
const IMAGE_RE = /\.(jpg|jpeg|png|gif|webp)$/i;
let syncInProgress = false;
@@ -235,7 +236,14 @@ app.get('/images/fulls/', (req, res) => {
app.get('/api/admin/users', requireAdmin, (req, res) => {
db.all('SELECT id, username, role, created_at FROM users', (err, rows) => {
- if (err) return res.json([]);
+ if (err) {
+ console.error('User-Abfrage fehlgeschlagen:', err.message);
+ // Fallback: einfache Abfrage ohne neue Spalten
+ return db.all('SELECT * FROM users', (err2, rows2) => {
+ if (err2) return res.status(500).json({ error: 'DB Error: ' + err2.message });
+ res.json(rows2.map(u => ({ id: u.id, username: u.username, role: u.role || 'client', created_at: u.created_at || null })));
+ });
+ }
// Ablaufdatum berechnen fuer Clients
const result = rows.map(u => {
const out = { ...u };
@@ -354,6 +362,121 @@ app.post('/api/admin/sync', requireAdmin, (req, res) => {
});
});
+// ==================== DOWNLOAD API ====================
+
+function isValidName(name) {
+ return name && !name.includes('/') && !name.includes('\\') && !name.includes('..');
+}
+
+app.post('/api/download/selected', (req, res) => {
+ const { images } = req.body;
+ if (!Array.isArray(images) || images.length === 0) {
+ return res.status(400).json({ error: 'Keine Bilder ausgewaehlt' });
+ }
+
+ // Alle Bilder validieren und Zugriff pruefen
+ let pending = images.length;
+ const verified = [];
+ let responded = false;
+
+ images.forEach((img, idx) => {
+ if (responded) return;
+ const name = img.name;
+ const folder = img.folder || null;
+
+ // Dateiname + Ordnername validieren
+ if (!isValidName(name) || !IMAGE_RE.test(name) || (folder && !isValidName(folder))) {
+ responded = true;
+ return res.status(400).json({ error: 'Ungueltiger Dateiname' });
+ }
+
+ const checkAccess = (ok) => {
+ if (responded) return;
+ if (!ok) {
+ responded = true;
+ return res.status(403).json({ error: 'Kein Zugriff auf: ' + name });
+ }
+ verified[idx] = img;
+ pending--;
+ if (pending === 0) sendFiles();
+ };
+
+ if (!folder) {
+ // Root-Bild: fuer alle zugaenglich
+ const filePath = path.join(FULLS_DIR, name);
+ checkAccess(fs.existsSync(filePath));
+ } else {
+ // Ordner-Bild: nur wenn User den Ordner zugewiesen hat
+ if (!req.user) return checkAccess(false);
+ db.get('SELECT 1 FROM user_folders WHERE user_id = ? AND folder_name = ?',
+ [req.user.id, folder], (err, row) => {
+ if (err || !row) return checkAccess(false);
+ const filePath = path.join(FULLS_DIR, folder, name);
+ checkAccess(fs.existsSync(filePath));
+ });
+ }
+ });
+
+ function sendFiles() {
+ if (verified.length <= 3) {
+ // Einzelne Downloads: URLs zurueckgeben
+ const urls = verified.map(img => {
+ const prefix = img.folder ? encodeURIComponent(img.folder) + '/' : '';
+ return '/images/fulls/' + prefix + encodeURIComponent(img.name);
+ });
+ return res.json({ mode: 'individual', urls });
+ }
+
+ // 4+ Bilder: ZIP streamen
+ res.setHeader('Content-Type', 'application/zip');
+ res.setHeader('Content-Disposition', 'attachment; filename="mischkomposition-auswahl.zip"');
+ const archive = archiver('zip', { zlib: { level: 5 } });
+ archive.on('error', () => {
+ if (!res.headersSent) res.status(500).json({ error: 'ZIP-Fehler' });
+ });
+ archive.pipe(res);
+ verified.forEach(img => {
+ const filePath = img.folder
+ ? path.join(FULLS_DIR, img.folder, img.name)
+ : path.join(FULLS_DIR, img.name);
+ archive.file(filePath, { name: img.name });
+ });
+ archive.finalize();
+ }
+});
+
+app.get('/api/download/folder/:folderName', (req, res) => {
+ const folderName = req.params.folderName;
+ if (!isValidName(folderName)) {
+ return res.status(400).json({ error: 'Ungueltiger Ordnername' });
+ }
+ if (!req.user) {
+ return res.status(401).json({ error: 'Nicht eingeloggt' });
+ }
+ db.get('SELECT 1 FROM user_folders WHERE user_id = ? AND folder_name = ?',
+ [req.user.id, folderName], (err, row) => {
+ if (err || !row) {
+ return res.status(403).json({ error: 'Kein Zugriff auf diesen Ordner' });
+ }
+ const folderPath = path.join(FULLS_DIR, folderName);
+ const images = listImagesInDir(folderPath);
+ if (images.length === 0) {
+ return res.status(404).json({ error: 'Keine Bilder im Ordner' });
+ }
+ res.setHeader('Content-Type', 'application/zip');
+ res.setHeader('Content-Disposition', 'attachment; filename="' + encodeURIComponent(folderName) + '.zip"');
+ const archive = archiver('zip', { zlib: { level: 5 } });
+ archive.on('error', () => {
+ if (!res.headersSent) res.status(500).json({ error: 'ZIP-Fehler' });
+ });
+ archive.pipe(res);
+ images.forEach(name => {
+ archive.file(path.join(folderPath, name), { name });
+ });
+ archive.finalize();
+ });
+});
+
// ==================== STATIC FILES ====================
app.get(/^\/images\/(fulls|thumbs)\/(.+)$/, serveProtectedImage);
diff --git a/entrypoint.sh b/entrypoint.sh
index f1f5621..c0dcf50 100644
--- a/entrypoint.sh
+++ b/entrypoint.sh
@@ -3,10 +3,21 @@
FULLS_DIR="/app/public/images/fulls"
THUMBS_DIR="/app/public/images/thumbs"
+# ImageMagick 7 (Alpine) nutzt "magick" statt "convert"
+if command -v magick >/dev/null 2>&1; then
+ IM_CMD="magick"
+elif command -v convert >/dev/null 2>&1; then
+ IM_CMD="convert"
+else
+ echo "FEHLER: Weder magick noch convert gefunden! Thumbnails koennen nicht erzeugt werden."
+ IM_CMD=""
+fi
+
# Thumbnails fuer einen Quell- und Zielordner generieren
generate_thumbs_for_dir() {
src_dir="$1"
dst_dir="$2"
+ [ -z "$IM_CMD" ] && return
mkdir -p "$dst_dir"
for img in "$src_dir"/*; do
[ -f "$img" ] || continue
@@ -21,7 +32,10 @@ generate_thumbs_for_dir() {
if [ ! -f "$dst_dir/$filename" ] || [ "$img" -nt "$dst_dir/$filename" ]; then
echo "Thumbnail erstellen: $dst_dir/$filename"
- convert "$img" -resize 512x512 -quality 80 "$dst_dir/$filename" 2>/dev/null
+ $IM_CMD "$img" -resize 512x512 -quality 80 "$dst_dir/$filename"
+ if [ $? -ne 0 ]; then
+ echo "WARNUNG: Thumbnail fehlgeschlagen fuer $filename"
+ fi
fi
done
}
diff --git a/index.html b/index.html
index 6e33c78..6ce9fba 100644
--- a/index.html
+++ b/index.html
@@ -11,7 +11,6 @@ layout: default