diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..6bbcedc --- /dev/null +++ b/Makefile @@ -0,0 +1,67 @@ +LEKTOR_SERVER_FLAGS=-h 127.0.0.1 + +all: build + +sass: + sassc ./assets/sass/main.scss ./assets/css/main.css + sassc ./assets/sass/ie9.scss ./assets/css/ie9.css + rm ./assets/css/main.min.css + rm ./assets/css/ie9.min.css + python3 ./deployment/cssminify.py -o ./assets/css/main.min.css ./assets/css/main.css + python3 ./deployment/cssminify.py -o ./assets/css/ie9.min.css ./assets/css/ie9.css + +install: + pip install lektor + +build: sass + lektor build + +server: + lektor server $(LEKTOR_SERVER_FLAGS) + +## Docker stuff +IMAGE_TAG:=v1.2.0 +IMAGE:=toolboxbodensee/lektor:$(IMAGE_TAG) + +PWD:=$(shell pwd) + +CACHE:=$(HOME)/.cache +PWD:=$(shell pwd) + +LEKTOR_CACHE:=$(CACHE)/lektor +CACHE_VOL:=-v $(CACHE)/lektor:/home/lektor/.cache/lektor +SOURCE_VOL:=-v $(PWD):/opt/lektor + +EXPORTED_PORTS=-p 5000:5000 + +DOCKER:=docker + +# On linux... +ifeq ($(shell uname),Linux) + # When user is not in docker group + ifneq ($(findstring docker,$(shell groups)),docker) + # And the user is not root + ifneq ($(shell whoami),root) + # Run docker client inside docker group + DOCKER:=sudo -E -g docker docker + endif + endif +endif + +RUN:=run --rm -it $(SOURCE_VOL) $(CACHE_VOL) + +$(LEKTOR_CACHE): + mkdir -p $(LEKTOR_CACHE) + +docker-pull: + $(DOCKER) pull $(IMAGE) + +docker-build: docker-pull $(LEKTOR_CACHE) + $(DOCKER) $(RUN) $(IMAGE) make build + +docker-shell: $(LEKTOR_CACHE) docker-pull + $(DOCKER) $(RUN) $(EXPORTED_PORTS) $(IMAGE) /bin/sh + +docker-server: $(LEKTOR_CACHE) docker-pull + $(DOCKER) $(RUN) $(EXPORTED_PORTS) $(IMAGE) make sass + $(DOCKER) $(RUN) $(EXPORTED_PORTS) $(IMAGE) lektor server -h 0.0.0.0 diff --git a/assets/.htaccess b/assets/.htaccess new file mode 100644 index 0000000..e29580d --- /dev/null +++ b/assets/.htaccess @@ -0,0 +1,45 @@ + + RewriteEngine On + + RewriteRule ^projekte.xml https://toolbox-bodensee.de/feed_projekte.xml + RewriteRule ^f33d.xml https://toolbox-bodensee.de/feed_projekte.xml + RewriteRule ^feed.xml https://toolbox-bodensee.de/feed_blog.xml + + ### Redirect certain domains to ffbsee.net + RewriteCond %{HTTP_HOST} ^toolbox\.cyber\.yt [NC,OR] + RewriteCond %{HTTP_HOST} ^www\.toolbox-bodensee\.de [NC] + RewriteRule (.*) https://toolbox-bodensee.de/$1 [R=301,L] + + +# COMPRESSION WITH MOD_DEFLATE + + AddOutputFilterByType DEFLATE image/svg+xml + AddOutputFilterByType DEFLATE text/plain + AddOutputFilterByType DEFLATE text/html + AddOutputFilterByType DEFLATE text/xml + AddOutputFilterByType DEFLATE text/css + AddOutputFilterByType DEFLATE text/javascript + AddOutputFilterByType DEFLATE application/xml + AddOutputFilterByType DEFLATE application/xhtml+xml + AddOutputFilterByType DEFLATE application/rss+xml + AddOutputFilterByType DEFLATE application/atom_xml + AddOutputFilterByType DEFLATE application/javascript + AddOutputFilterByType DEFLATE application/x-javascript + AddOutputFilterByType DEFLATE application/x-shockwave-flash + + +# CACHE-DURATIONS +# turns cache on for 1 month + + ExpiresActive On + ExpiresByType text/css "access plus 1 month" + ExpiresByType text/javascript "access plus 1 month" + ExpiresByType text/html "access plus 1 hour" + ExpiresByType application/javascript "access plus 1 month" + ExpiresByType image/gif "access plus 1 month" + ExpiresByType image/jpeg "access plus 1 month" + ExpiresByType image/png "access plus 1 month" + ExpiresByType image/svg+xml "access plus 1 month" + ExpiresByType image/x-icon "access plus 1 month" + ExpiresByType application/x-font-woff "access plus 1 month" + diff --git a/assets/css/font-awesome.min.css b/assets/css/font-awesome.min.css index a74835e..897ff54 100644 --- a/assets/css/font-awesome.min.css +++ b/assets/css/font-awesome.min.css @@ -1 +1 @@ -.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} \ No newline at end of file +.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} diff --git a/assets/css/font.css b/assets/css/font.css deleted file mode 100644 index 8e80fb0..0000000 --- a/assets/css/font.css +++ /dev/null @@ -1,36 +0,0 @@ -@font-face { - font-family: 'Raleway'; - font-style: normal; - font-weight: 200; - src: local('Raleway ExtraLight'), local('Raleway-ExtraLight'), url(/fonts/Raleway-ExtraLight.ttf) format('truetype'); -} -@font-face { - font-family: 'Raleway'; - font-style: normal; - font-weight: 700; - src: local('Raleway Bold'), local('Raleway-Bold'), url(/fonts/Raleway-Bold.ttf) format('truetype'); -} -@font-face { - font-family: 'Source Sans Pro'; - font-style: italic; - font-weight: 300; - src: local('Source Sans Pro Light Italic'), local('SourceSansPro-LightItalic'), url(/fonts/SourceSansPro-LightItalic.ttf) format('truetype'); -} -@font-face { - font-family: 'Source Sans Pro'; - font-style: italic; - font-weight: 600; - src: local('Source Sans Pro SemiBold Italic'), local('SourceSansPro-SemiBoldItalic'), url(/fonts/SourceSansPro-SemiBoldItalic.ttf) format('truetype'); -} -@font-face { - font-family: 'Source Sans Pro'; - font-style: normal; - font-weight: 300; - src: local('Source Sans Pro Light'), local('SourceSansPro-Light'), url(/fonts/SourceSansPro-Light.ttf) format('truetype'); -} -@font-face { - font-family: 'Source Sans Pro'; - font-style: normal; - font-weight: 600; - src: local('Source Sans Pro SemiBold'), local('SourceSansPro-SemiBold'), url(/fonts/SourceSansPro-SemiBold.ttf) format('truetype'); -} diff --git a/assets/css/ie8.css b/assets/css/ie8.css deleted file mode 100644 index 2ebd742..0000000 --- a/assets/css/ie8.css +++ /dev/null @@ -1,116 +0,0 @@ -/* - Solid State by HTML5 UP - html5up.net | @ajlkn - Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -*/ -/* Basic */ -body { - -ms-behavior: url("assets/js/backgroundsize.min.htc"); } - -/* Type */ -h1.major, h2.major, h3.major, h4.major, h5.major, h6.major { - border-bottom: solid 2px #ffffff; } - -blockquote { - border-left: solid 4px #ffffff; } - -code { - border: solid 2px #ffffff; } - -hr { - border-bottom: solid 2px #ffffff; } - -/* Button */ -input[type="submit"], -input[type="reset"], -input[type="button"], -button, -.button { - position: relative; - -ms-behavior: url("assets/js/ie/PIE.htc"); - border: solid 2px #ffffff; } - input[type="submit"].special, - input[type="reset"].special, - input[type="button"].special, - button.special, - .button.special { - border: 0; } - -/* Form */ -input[type="text"], -input[type="password"], -input[type="email"], -input[type="tel"], -select, -textarea { - position: relative; - -ms-behavior: url("assets/js/ie/PIE.htc"); - background: transparent; - border: solid 2px #ffffff; } - -/* Table */ -table tbody tr { - border: solid 1px #ffffff; - border-left: 0; - border-right: 0; } - -table.alt tbody tr td { - border: solid 1px #ffffff; - 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; } - -/* Features */ -.features article { - -ms-behavior: url("assets/js/ie/PIE.htc"); - position: relative; - width: 44%; } - .features article .image { - margin-top: 0; - margin-left: 0; - width: 100%; } - -/* Menu */ -#menu { - background: #2e3141; } - #menu h2 { - border-bottom: solid 2px #ffffff; } - -/* Header */ -#header { - background-color: #353849; } - -/* Wrapper */ -.wrapper { - margin: 0; } - .wrapper:before, .wrapper:after { - display: none; } - .wrapper.spotlight .image { - -ms-behavior: url("assets/js/ie/PIE.htc"); } - .wrapper.spotlight .image img { - position: relative; - -ms-behavior: url("assets/js/ie/PIE.htc"); } - -/* Banner */ -#banner .logo .icon { - border: solid 2px #ffffff; - -ms-behavior: url("assets/js/ie/PIE.htc"); } - -#banner h2 { - border-bottom: solid 2px #ffffff; } - -/* Footer */ -#footer .inner .copyright { - border-top: solid 2px #ffffff; } - #footer .inner .copyright li { - border-left: solid 2px #ffffff; } diff --git a/assets/css/ie9.css b/assets/css/ie9.css index 7fb1949..dd9f1e5 100644 --- a/assets/css/ie9.css +++ b/assets/css/ie9.css @@ -1,65 +1,23 @@ -/* - Solid State by HTML5 UP - html5up.net | @ajlkn - Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) +/* +Landed by HTML5 UP +html5up.net | @ajlkn +Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) */ -/* Basic */ -body { - background-color: #2e3141; - background-image: url("../../images/bg.jpg"); - background-size: cover; - background-attachment: fixed; - background-position: center; } - body:before { - background: rgba(46, 49, 65, 0.8); - content: ''; - display: block; - height: 100%; - left: 0; - position: fixed; - top: 0; - width: 100%; } - body > * { - position: relative; - z-index: 1; } +/* Loader */ +body.landing::before, body.landing::after { + display: none !important; } -/* Features */ -.features article { - display: inline-block; - width: 45%; } +/* Icon */ +.icon.alt { + color: inherit !important; } -/* Menu */ -#menu .inner { - margin: 4em auto; } - -/* Wrapper */ -#wrapper > header { - background: none !important; } - -.wrapper.spotlight .inner { - text-align: left !important; } - -.wrapper.spotlight .image { - display: inline-block; - margin: 0 3em 2em 0 !important; - vertical-align: middle; - width: 24%; } - -.wrapper.spotlight .content { - display: inline-block; - vertical-align: middle; - width: 70%; } +.icon.major.alt::before { + color: #ffffff !important; } /* Banner */ -#banner { - background: none !important; } +#banner::after { + background-color: rgba(23, 24, 32, 0.95); } /* Footer */ -#footer { - background: none !important; } - #footer .inner form { - display: inline-block; - width: 45%; } - #footer .inner .contact { - display: inline-block; - width: 45%; } +#footer .icons .icon.alt::before { + color: #ffffff !important; } diff --git a/assets/css/ie9.min.css b/assets/css/ie9.min.css new file mode 100644 index 0000000..93ff660 --- /dev/null +++ b/assets/css/ie9.min.css @@ -0,0 +1 @@ +body.landing::before,body.landing::after{display:none !important}.icon.alt{color:inherit !important}.icon.major.alt::before{color:#fff !important}#banner::after{background-color:rgba(23, 24, 32, 0.95)}#footer .icons .icon.alt::before{color:#fff !important} \ No newline at end of file diff --git a/assets/css/images/arrow.svg b/assets/css/images/arrow.svg new file mode 100644 index 0000000..78f3ab3 --- /dev/null +++ b/assets/css/images/arrow.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/assets/css/images/close.svg b/assets/css/images/close.svg deleted file mode 100644 index 7c35469..0000000 --- a/assets/css/images/close.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/assets/css/images/ie/banner-overlay.png b/assets/css/images/ie/banner-overlay.png new file mode 100644 index 0000000..e5d2492 --- /dev/null +++ b/assets/css/images/ie/banner-overlay.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe8e42238c5513cbb9f6eb93710da48809854341a34f33b2d23691311c8f7bbe +size 113 diff --git a/assets/css/images/layers-2x.png b/assets/css/images/layers-2x.png new file mode 100644 index 0000000..d3cf7e5 --- /dev/null +++ b/assets/css/images/layers-2x.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:066daca850d8ffbef007af00b06eac0015728dee279c51f3cb6c716df7c42edf +size 1259 diff --git a/assets/css/images/layers.png b/assets/css/images/layers.png new file mode 100644 index 0000000..7b44754 --- /dev/null +++ b/assets/css/images/layers.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1dbbe9d028e292f36fcba8f8b3a28d5e8932754fc2215b9ac69e4cdecf5107c6 +size 696 diff --git a/assets/css/images/marker-icon-2x.png b/assets/css/images/marker-icon-2x.png new file mode 100644 index 0000000..09e8445 --- /dev/null +++ b/assets/css/images/marker-icon-2x.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00179c4c1ee830d3a108412ae0d294f55776cfeb085c60129a39aa6fc4ae2528 +size 2464 diff --git a/assets/css/images/marker-icon.png b/assets/css/images/marker-icon.png new file mode 100644 index 0000000..b1789c7 --- /dev/null +++ b/assets/css/images/marker-icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:574c3a5cca85f4114085b6841596d62f00d7c892c7b03f28cbfa301deb1dc437 +size 1466 diff --git a/assets/css/images/marker-shadow.png b/assets/css/images/marker-shadow.png new file mode 100644 index 0000000..dc11121 --- /dev/null +++ b/assets/css/images/marker-shadow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:264f5c640339f042dd729062cfc04c17f8ea0f29882b538e3848ed8f10edb4da +size 618 diff --git a/assets/css/lightgallery.css b/assets/css/lightgallery.css new file mode 100644 index 0000000..5bea576 --- /dev/null +++ b/assets/css/lightgallery.css @@ -0,0 +1,985 @@ +/*! lightgallery - v1.6.11 - 2018-05-22 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2018 Sachin N; Licensed GPLv3 */ +@font-face { + font-family: 'lg'; + src: url("../fonts/lg.eot?n1z373"); + src: url("../fonts/lg.eot?#iefixn1z373") format("embedded-opentype"), url("../fonts/lg.woff?n1z373") format("woff"), url("../fonts/lg.ttf?n1z373") format("truetype"), url("../fonts/lg.svg?n1z373#lg") format("svg"); + font-weight: normal; + font-style: normal; +} +.lg-icon { + font-family: 'lg'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.lg-actions .lg-next, .lg-actions .lg-prev { + background-color: rgba(0, 0, 0, 0.45); + border-radius: 2px; + color: #999; + cursor: pointer; + display: block; + font-size: 22px; + margin-top: -10px; + padding: 8px 10px 9px; + position: absolute; + top: 50%; + z-index: 5080; + border: none; + outline: none; +} +.lg-actions .lg-next.disabled, .lg-actions .lg-prev.disabled { + pointer-events: none; + opacity: 0.5; +} +.lg-actions .lg-next:hover, .lg-actions .lg-prev:hover { + color: #FFF; +} +.lg-actions .lg-next { + right: 20px; +} +.lg-actions .lg-next:before { + content: "\e095"; +} +.lg-actions .lg-prev { + left: 20px; +} +.lg-actions .lg-prev:after { + content: "\e094"; +} + +@-webkit-keyframes lg-right-end { + 0% { + left: 0; + } + 50% { + left: -30px; + } + 100% { + left: 0; + } +} +@-moz-keyframes lg-right-end { + 0% { + left: 0; + } + 50% { + left: -30px; + } + 100% { + left: 0; + } +} +@-ms-keyframes lg-right-end { + 0% { + left: 0; + } + 50% { + left: -30px; + } + 100% { + left: 0; + } +} +@keyframes lg-right-end { + 0% { + left: 0; + } + 50% { + left: -30px; + } + 100% { + left: 0; + } +} +@-webkit-keyframes lg-left-end { + 0% { + left: 0; + } + 50% { + left: 30px; + } + 100% { + left: 0; + } +} +@-moz-keyframes lg-left-end { + 0% { + left: 0; + } + 50% { + left: 30px; + } + 100% { + left: 0; + } +} +@-ms-keyframes lg-left-end { + 0% { + left: 0; + } + 50% { + left: 30px; + } + 100% { + left: 0; + } +} +@keyframes lg-left-end { + 0% { + left: 0; + } + 50% { + left: 30px; + } + 100% { + left: 0; + } +} +.lg-outer.lg-right-end .lg-object { + -webkit-animation: lg-right-end 0.3s; + -o-animation: lg-right-end 0.3s; + animation: lg-right-end 0.3s; + position: relative; +} +.lg-outer.lg-left-end .lg-object { + -webkit-animation: lg-left-end 0.3s; + -o-animation: lg-left-end 0.3s; + animation: lg-left-end 0.3s; + position: relative; +} + +.lg-toolbar { + z-index: 5082; + left: 0; + position: absolute; + top: 0; + width: 100%; + background-color: rgba(0, 0, 0, 0.45); +} +.lg-toolbar .lg-icon { + color: #999; + cursor: pointer; + float: right; + font-size: 24px; + height: 47px; + line-height: 27px; + padding: 10px 0; + text-align: center; + width: 50px; + text-decoration: none !important; + outline: medium none; + -webkit-transition: color 0.2s linear; + -o-transition: color 0.2s linear; + transition: color 0.2s linear; +} +.lg-toolbar .lg-icon:hover { + color: #FFF; +} +.lg-toolbar .lg-close:after { + content: "\e070"; +} +.lg-toolbar .lg-download:after { + content: "\e0f2"; +} + +.lg-sub-html { + background-color: rgba(0, 0, 0, 0.45); + bottom: 0; + color: #EEE; + font-size: 16px; + left: 0; + padding: 10px 40px; + position: fixed; + right: 0; + text-align: center; + z-index: 5080; +} +.lg-sub-html h4 { + margin: 0; + font-size: 13px; + font-weight: bold; +} +.lg-sub-html p { + font-size: 12px; + margin: 5px 0 0; +} + +#lg-counter { + color: #999; + display: inline-block; + font-size: 16px; + padding-left: 20px; + padding-top: 12px; + vertical-align: middle; +} + +.lg-toolbar, .lg-prev, .lg-next { + opacity: 1; + -webkit-transition: -webkit-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear; + -moz-transition: -moz-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear; + -o-transition: -o-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear; + transition: transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear; +} + +.lg-hide-items .lg-prev { + opacity: 0; + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); +} +.lg-hide-items .lg-next { + opacity: 0; + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); +} +.lg-hide-items .lg-toolbar { + opacity: 0; + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); +} + +body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-object { + -webkit-transform: scale3d(0.5, 0.5, 0.5); + transform: scale3d(0.5, 0.5, 0.5); + opacity: 0; + -webkit-transition: -webkit-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important; + -moz-transition: -moz-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important; + -o-transition: -o-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important; + transition: transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important; + -webkit-transform-origin: 50% 50%; + -moz-transform-origin: 50% 50%; + -ms-transform-origin: 50% 50%; + transform-origin: 50% 50%; +} +body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item.lg-complete .lg-object { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + opacity: 1; +} + +.lg-outer .lg-thumb-outer { + background-color: #0D0A0A; + bottom: 0; + position: absolute; + width: 100%; + z-index: 5080; + max-height: 350px; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s; + -moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s; + -o-transition: -o-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s; + transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s; +} +.lg-outer .lg-thumb-outer.lg-grab .lg-thumb-item { + cursor: -webkit-grab; + cursor: -moz-grab; + cursor: -o-grab; + cursor: -ms-grab; + cursor: grab; +} +.lg-outer .lg-thumb-outer.lg-grabbing .lg-thumb-item { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + cursor: -o-grabbing; + cursor: -ms-grabbing; + cursor: grabbing; +} +.lg-outer .lg-thumb-outer.lg-dragging .lg-thumb { + -webkit-transition-duration: 0s !important; + transition-duration: 0s !important; +} +.lg-outer.lg-thumb-open .lg-thumb-outer { + -webkit-transform: translate3d(0, 0%, 0); + transform: translate3d(0, 0%, 0); +} +.lg-outer .lg-thumb { + padding: 10px 0; + height: 100%; + margin-bottom: -5px; +} +.lg-outer .lg-thumb-item { + border-radius: 5px; + cursor: pointer; + float: left; + overflow: hidden; + height: 100%; + border: 2px solid #FFF; + border-radius: 4px; + margin-bottom: 5px; +} +@media (min-width: 1025px) { + .lg-outer .lg-thumb-item { + -webkit-transition: border-color 0.25s ease; + -o-transition: border-color 0.25s ease; + transition: border-color 0.25s ease; + } +} +.lg-outer .lg-thumb-item.active, .lg-outer .lg-thumb-item:hover { + border-color: #a90707; +} +.lg-outer .lg-thumb-item img { + width: 100%; + height: 100%; + object-fit: cover; +} +.lg-outer.lg-has-thumb .lg-item { + padding-bottom: 120px; +} +.lg-outer.lg-can-toggle .lg-item { + padding-bottom: 0; +} +.lg-outer.lg-pull-caption-up .lg-sub-html { + -webkit-transition: bottom 0.25s ease; + -o-transition: bottom 0.25s ease; + transition: bottom 0.25s ease; +} +.lg-outer.lg-pull-caption-up.lg-thumb-open .lg-sub-html { + bottom: 100px; +} +.lg-outer .lg-toogle-thumb { + background-color: #0D0A0A; + border-radius: 2px 2px 0 0; + color: #999; + cursor: pointer; + font-size: 24px; + height: 39px; + line-height: 27px; + padding: 5px 0; + position: absolute; + right: 20px; + text-align: center; + top: -39px; + width: 50px; +} +.lg-outer .lg-toogle-thumb:after { + content: "\e1ff"; +} +.lg-outer .lg-toogle-thumb:hover { + color: #FFF; +} + +.lg-outer .lg-video-cont { + display: inline-block; + vertical-align: middle; + max-width: 1140px; + max-height: 100%; + width: 100%; + padding: 0 5px; +} +.lg-outer .lg-video { + width: 100%; + height: 0; + padding-bottom: 56.25%; + overflow: hidden; + position: relative; +} +.lg-outer .lg-video .lg-object { + display: inline-block; + position: absolute; + top: 0; + left: 0; + width: 100% !important; + height: 100% !important; +} +.lg-outer .lg-video .lg-video-play { + width: 84px; + height: 59px; + position: absolute; + left: 50%; + top: 50%; + margin-left: -42px; + margin-top: -30px; + z-index: 5080; + cursor: pointer; +} +.lg-outer .lg-has-iframe .lg-video { + -webkit-overflow-scrolling: touch; + overflow: auto; +} +.lg-outer .lg-has-vimeo .lg-video-play { + background: url("../img/vimeo-play.png") no-repeat scroll 0 0 transparent; +} +.lg-outer .lg-has-vimeo:hover .lg-video-play { + background: url("../img/vimeo-play.png") no-repeat scroll 0 -58px transparent; +} +.lg-outer .lg-has-html5 .lg-video-play { + background: transparent url("../img/video-play.png") no-repeat scroll 0 0; + height: 64px; + margin-left: -32px; + margin-top: -32px; + width: 64px; + opacity: 0.8; +} +.lg-outer .lg-has-html5:hover .lg-video-play { + opacity: 1; +} +.lg-outer .lg-has-youtube .lg-video-play { + background: url("../img/youtube-play.png") no-repeat scroll 0 0 transparent; +} +.lg-outer .lg-has-youtube:hover .lg-video-play { + background: url("../img/youtube-play.png") no-repeat scroll 0 -60px transparent; +} +.lg-outer .lg-video-object { + width: 100% !important; + height: 100% !important; + position: absolute; + top: 0; + left: 0; +} +.lg-outer .lg-has-video .lg-video-object { + visibility: hidden; +} +.lg-outer .lg-has-video.lg-video-playing .lg-object, .lg-outer .lg-has-video.lg-video-playing .lg-video-play { + display: none; +} +.lg-outer .lg-has-video.lg-video-playing .lg-video-object { + visibility: visible; +} + +.lg-progress-bar { + background-color: #333; + height: 5px; + left: 0; + position: absolute; + top: 0; + width: 100%; + z-index: 5083; + opacity: 0; + -webkit-transition: opacity 0.08s ease 0s; + -moz-transition: opacity 0.08s ease 0s; + -o-transition: opacity 0.08s ease 0s; + transition: opacity 0.08s ease 0s; +} +.lg-progress-bar .lg-progress { + background-color: #a90707; + height: 5px; + width: 0; +} +.lg-progress-bar.lg-start .lg-progress { + width: 100%; +} +.lg-show-autoplay .lg-progress-bar { + opacity: 1; +} + +.lg-autoplay-button:after { + content: "\e01d"; +} +.lg-show-autoplay .lg-autoplay-button:after { + content: "\e01a"; +} + +.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-img-wrap, .lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-image { + -webkit-transition-duration: 0s; + transition-duration: 0s; +} +.lg-outer.lg-use-transition-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap { + -webkit-transition: -webkit-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s; + -moz-transition: -moz-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s; + -o-transition: -o-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s; + transition: transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s; +} +.lg-outer.lg-use-left-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap { + -webkit-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s; + -moz-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s; + -o-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s; + transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s; +} +.lg-outer .lg-item.lg-complete.lg-zoomable .lg-img-wrap { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + backface-visibility: hidden; +} +.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + -webkit-transition: -webkit-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important; + -moz-transition: -moz-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important; + -o-transition: -o-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important; + transition: transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important; + -webkit-transform-origin: 0 0; + -moz-transform-origin: 0 0; + -ms-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + backface-visibility: hidden; +} + +#lg-zoom-in:after { + content: "\e311"; +} + +#lg-actual-size { + font-size: 20px; +} +#lg-actual-size:after { + content: "\e033"; +} + +#lg-zoom-out { + opacity: 0.5; + pointer-events: none; +} +#lg-zoom-out:after { + content: "\e312"; +} +.lg-zoomed #lg-zoom-out { + opacity: 1; + pointer-events: auto; +} + +.lg-outer .lg-pager-outer { + bottom: 60px; + left: 0; + position: absolute; + right: 0; + text-align: center; + z-index: 5080; + height: 10px; +} +.lg-outer .lg-pager-outer.lg-pager-hover .lg-pager-cont { + overflow: visible; +} +.lg-outer .lg-pager-cont { + cursor: pointer; + display: inline-block; + overflow: hidden; + position: relative; + vertical-align: top; + margin: 0 5px; +} +.lg-outer .lg-pager-cont:hover .lg-pager-thumb-cont { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} +.lg-outer .lg-pager-cont.lg-pager-active .lg-pager { + box-shadow: 0 0 0 2px white inset; +} +.lg-outer .lg-pager-thumb-cont { + background-color: #fff; + color: #FFF; + bottom: 100%; + height: 83px; + left: 0; + margin-bottom: 20px; + margin-left: -60px; + opacity: 0; + padding: 5px; + position: absolute; + width: 120px; + border-radius: 3px; + -webkit-transition: opacity 0.15s ease 0s, -webkit-transform 0.15s ease 0s; + -moz-transition: opacity 0.15s ease 0s, -moz-transform 0.15s ease 0s; + -o-transition: opacity 0.15s ease 0s, -o-transform 0.15s ease 0s; + transition: opacity 0.15s ease 0s, transform 0.15s ease 0s; + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); +} +.lg-outer .lg-pager-thumb-cont img { + width: 100%; + height: 100%; +} +.lg-outer .lg-pager { + background-color: rgba(255, 255, 255, 0.5); + border-radius: 50%; + box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.7) inset; + display: block; + height: 12px; + -webkit-transition: box-shadow 0.3s ease 0s; + -o-transition: box-shadow 0.3s ease 0s; + transition: box-shadow 0.3s ease 0s; + width: 12px; +} +.lg-outer .lg-pager:hover, .lg-outer .lg-pager:focus { + box-shadow: 0 0 0 8px white inset; +} +.lg-outer .lg-caret { + border-left: 10px solid transparent; + border-right: 10px solid transparent; + border-top: 10px dashed; + bottom: -10px; + display: inline-block; + height: 0; + left: 50%; + margin-left: -5px; + position: absolute; + vertical-align: middle; + width: 0; +} + +.lg-fullscreen:after { + content: "\e20c"; +} +.lg-fullscreen-on .lg-fullscreen:after { + content: "\e20d"; +} + +.lg-outer #lg-dropdown-overlay { + background-color: rgba(0, 0, 0, 0.25); + bottom: 0; + cursor: default; + left: 0; + position: fixed; + right: 0; + top: 0; + z-index: 5081; + opacity: 0; + visibility: hidden; + -webkit-transition: visibility 0s linear 0.18s, opacity 0.18s linear 0s; + -o-transition: visibility 0s linear 0.18s, opacity 0.18s linear 0s; + transition: visibility 0s linear 0.18s, opacity 0.18s linear 0s; +} +.lg-outer.lg-dropdown-active .lg-dropdown, .lg-outer.lg-dropdown-active #lg-dropdown-overlay { + -webkit-transition-delay: 0s; + transition-delay: 0s; + -moz-transform: translate3d(0, 0px, 0); + -o-transform: translate3d(0, 0px, 0); + -ms-transform: translate3d(0, 0px, 0); + -webkit-transform: translate3d(0, 0px, 0); + transform: translate3d(0, 0px, 0); + opacity: 1; + visibility: visible; +} +.lg-outer.lg-dropdown-active { + color: #FFF; +} + +#lg-share { display: none; } + +.lg-outer .lg-dropdown { + background-color: #fff; + border-radius: 2px; + font-size: 14px; + list-style-type: none; + margin: 0; + padding: 10px 0; + position: absolute; + right: 0; + text-align: left; + top: 50px; + opacity: 0; + visibility: hidden; + -moz-transform: translate3d(0, 5px, 0); + -o-transform: translate3d(0, 5px, 0); + -ms-transform: translate3d(0, 5px, 0); + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + -webkit-transition: -webkit-transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s; + -moz-transition: -moz-transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s; + -o-transition: -o-transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s; + transition: transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s; +} +.lg-outer .lg-dropdown:after { + content: ""; + display: block; + height: 0; + width: 0; + position: absolute; + border: 8px solid transparent; + border-bottom-color: #FFF; + right: 16px; + top: -16px; +} +.lg-outer .lg-dropdown > li:last-child { + margin-bottom: 0px; +} +.lg-outer .lg-dropdown > li:hover a, .lg-outer .lg-dropdown > li:hover .lg-icon { + color: #333; +} +.lg-outer .lg-dropdown a { + color: #333; + display: block; + white-space: pre; + padding: 4px 12px; + font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif; + font-size: 12px; +} +.lg-outer .lg-dropdown a:hover { + background-color: rgba(0, 0, 0, 0.07); +} +.lg-outer .lg-dropdown .lg-dropdown-text { + display: inline-block; + line-height: 1; + margin-top: -3px; + vertical-align: middle; +} +.lg-outer .lg-dropdown .lg-icon { + color: #333; + display: inline-block; + float: none; + font-size: 20px; + height: auto; + line-height: 1; + margin-right: 8px; + padding: 0; + vertical-align: middle; + width: auto; +} +.lg-outer #lg-share { + position: relative; +} +.lg-outer #lg-share:after { + content: "\e80d"; +} +.lg-outer #lg-share-facebook .lg-icon { + color: #3b5998; +} +.lg-outer #lg-share-facebook .lg-icon:after { + content: "\e901"; +} +.lg-outer #lg-share-twitter .lg-icon { + color: #00aced; +} +.lg-outer #lg-share-twitter .lg-icon:after { + content: "\e904"; +} +.lg-outer #lg-share-googleplus .lg-icon { + color: #dd4b39; +} +.lg-outer #lg-share-googleplus .lg-icon:after { + content: "\e902"; +} +.lg-outer #lg-share-pinterest .lg-icon { + color: #cb2027; +} +.lg-outer #lg-share-pinterest .lg-icon:after { + content: "\e903"; +} + +.lg-group:after { + content: ""; + display: table; + clear: both; +} + +.lg-outer { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + z-index: 5050; + text-align: left; + opacity: 0; + -webkit-transition: opacity 0.15s ease 0s; + -o-transition: opacity 0.15s ease 0s; + transition: opacity 0.15s ease 0s; +} +.lg-outer * { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.lg-outer.lg-visible { + opacity: 1; +} +.lg-outer.lg-css3 .lg-item.lg-prev-slide, .lg-outer.lg-css3 .lg-item.lg-next-slide, .lg-outer.lg-css3 .lg-item.lg-current { + -webkit-transition-duration: inherit !important; + transition-duration: inherit !important; + -webkit-transition-timing-function: inherit !important; + transition-timing-function: inherit !important; +} +.lg-outer.lg-css3.lg-dragging .lg-item.lg-prev-slide, .lg-outer.lg-css3.lg-dragging .lg-item.lg-next-slide, .lg-outer.lg-css3.lg-dragging .lg-item.lg-current { + -webkit-transition-duration: 0s !important; + transition-duration: 0s !important; + opacity: 1; +} +.lg-outer.lg-grab img.lg-object { + cursor: -webkit-grab; + cursor: -moz-grab; + cursor: -o-grab; + cursor: -ms-grab; + cursor: grab; +} +.lg-outer.lg-grabbing img.lg-object { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + cursor: -o-grabbing; + cursor: -ms-grabbing; + cursor: grabbing; +} +.lg-outer .lg { + height: 100%; + width: 100%; + position: relative; + overflow: hidden; + margin-left: auto; + margin-right: auto; + max-width: 100%; + max-height: 100%; +} +.lg-outer .lg-inner { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + white-space: nowrap; +} +.lg-outer .lg-item { + background: url("../img/loading.gif") no-repeat scroll center center transparent; + display: none !important; +} +.lg-outer.lg-css3 .lg-prev-slide, .lg-outer.lg-css3 .lg-current, .lg-outer.lg-css3 .lg-next-slide { + display: inline-block !important; +} +.lg-outer.lg-css .lg-current { + display: inline-block !important; +} +.lg-outer .lg-item, .lg-outer .lg-img-wrap { + display: inline-block; + text-align: center; + position: absolute; + width: 100%; + height: 100%; +} +.lg-outer .lg-item:before, .lg-outer .lg-img-wrap:before { + content: ""; + display: inline-block; + height: 50%; + width: 1px; + margin-right: -1px; +} +.lg-outer .lg-img-wrap { + position: absolute; + padding: 0 5px; + left: 0; + right: 0; + top: 0; + bottom: 0; +} +.lg-outer .lg-item.lg-complete { + background-image: none; +} +.lg-outer .lg-item.lg-current { + z-index: 5060; +} +.lg-outer .lg-image { + display: inline-block; + vertical-align: middle; + max-width: 100%; + max-height: 100%; + width: auto !important; + height: auto !important; +} +.lg-outer.lg-show-after-load .lg-item .lg-object, .lg-outer.lg-show-after-load .lg-item .lg-video-play { + opacity: 0; + -webkit-transition: opacity 0.15s ease 0s; + -o-transition: opacity 0.15s ease 0s; + transition: opacity 0.15s ease 0s; +} +.lg-outer.lg-show-after-load .lg-item.lg-complete .lg-object, .lg-outer.lg-show-after-load .lg-item.lg-complete .lg-video-play { + opacity: 1; +} +.lg-outer .lg-empty-html { + display: none; +} +.lg-outer.lg-hide-download #lg-download { + display: none; +} + +.lg-backdrop { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 5040; + background-color: #000; + opacity: 0; + -webkit-transition: opacity 0.15s ease 0s; + -o-transition: opacity 0.15s ease 0s; + transition: opacity 0.15s ease 0s; +} +.lg-backdrop.in { + opacity: 1; +} + +.lg-css3.lg-no-trans .lg-prev-slide, .lg-css3.lg-no-trans .lg-next-slide, .lg-css3.lg-no-trans .lg-current { + -webkit-transition: none 0s ease 0s !important; + -moz-transition: none 0s ease 0s !important; + -o-transition: none 0s ease 0s !important; + transition: none 0s ease 0s !important; +} +.lg-css3.lg-use-css3 .lg-item { + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + backface-visibility: hidden; +} +.lg-css3.lg-use-left .lg-item { + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + backface-visibility: hidden; +} +.lg-css3.lg-fade .lg-item { + opacity: 0; +} +.lg-css3.lg-fade .lg-item.lg-current { + opacity: 1; +} +.lg-css3.lg-fade .lg-item.lg-prev-slide, .lg-css3.lg-fade .lg-item.lg-next-slide, .lg-css3.lg-fade .lg-item.lg-current { + -webkit-transition: opacity 0.1s ease 0s; + -moz-transition: opacity 0.1s ease 0s; + -o-transition: opacity 0.1s ease 0s; + transition: opacity 0.1s ease 0s; +} +.lg-css3.lg-slide.lg-use-css3 .lg-item { + opacity: 0; +} +.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); +} +.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); +} +.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; +} +.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; +} +.lg-css3.lg-slide.lg-use-left .lg-item { + opacity: 0; + position: absolute; + left: 0; +} +.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide { + left: -100%; +} +.lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide { + left: 100%; +} +.lg-css3.lg-slide.lg-use-left .lg-item.lg-current { + left: 0; + opacity: 1; +} +.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide, .lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide, .lg-css3.lg-slide.lg-use-left .lg-item.lg-current { + -webkit-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; +} + +/*# sourceMappingURL=lightgallery.css.map */ diff --git a/assets/css/main.css b/assets/css/main.css index f018606..3980934 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -1,9 +1,14 @@ -@import url(font-awesome.min.css); -@import url(font.css); -/* - Solid State by HTML5 UP - html5up.net | @ajlkn - Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) +@import url("../css/font-awesome.min.css"); +@import url("../fonts/roboto.css"); +@import url("https://toolbox-bodensee.de/css/spacestatus.css"); +#scroll-1 { + background-image: url(../images/home/abschnitt1.jpeg); } + +/* +Landed by HTML5 UP +html5up.net | @ajlkn +Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) +Modified by Toolbox Bodensee e.V. */ /* Reset */ 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 { @@ -26,7 +31,7 @@ ol, ul { blockquote, q { quotes: none; } -blockquote:before, blockquote:after, q:before, q:after { +blockquote::before, blockquote::after, q::before, q::after { content: ''; content: none; } @@ -38,11 +43,104 @@ body { -webkit-text-size-adjust: none; } /* Box Model */ -*, *:before, *:after { +*, *::before, +*::after { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } +/* Containers */ +.container { + margin-left: auto; + margin-right: auto; } + +.container.\31 25\25 { + width: 100%; + max-width: 87.5em; + min-width: 70em; } + +.container.\37 5\25 { + width: 52.5em; } + +.container.\35 0\25 { + width: 35em; } + +.container.\32 5\25 { + width: 17.5em; } + +.container { + width: 70em; } + +@media screen and (max-width: 1680px) { + .container.\31 25\25 { + width: 100%; + max-width: 87.5em; + min-width: 70em; } + .container.\37 5\25 { + width: 52.5em; } + .container.\35 0\25 { + width: 35em; } + .container.\32 5\25 { + width: 17.5em; } + .container { + width: 70em; } } + +@media screen and (max-width: 1280px) { + .container.\31 25\25 { + width: 100%; + max-width: 112.5%; + min-width: 90%; } + .container.\37 5\25 { + width: 67.5%; } + .container.\35 0\25 { + width: 45%; } + .container.\32 5\25 { + width: 22.5%; } + .container { + width: 90%; } } + +@media screen and (max-width: 980px) { + .container.\31 25\25 { + width: 100%; + max-width: 125%; + min-width: 100%; } + .container.\37 5\25 { + width: 75%; } + .container.\35 0\25 { + width: 50%; } + .container.\32 5\25 { + width: 25%; } + .container { + width: 100% !important; } } + +@media screen and (max-width: 933px) { + .container.\31 25\25 { + width: 100%; + max-width: 125%; + min-width: 100%; } + .container.\37 5\25 { + width: 75%; } + .container.\35 0\25 { + width: 50%; } + .container.\32 5\25 { + width: 25%; } + .container { + width: 100% !important; } } + +@media screen and (max-width: 480px) { + .container.\31 25\25 { + width: 100%; + max-width: 125%; + min-width: 100%; } + .container.\37 5\25 { + width: 75%; } + .container.\35 0\25 { + width: 50%; } + .container.\32 5\25 { + width: 25%; } + .container { + width: 100% !important; } } + /* Grid */ .row { border-bottom: solid 1px transparent; @@ -56,7 +154,8 @@ body { -webkit-box-sizing: border-box; box-sizing: border-box; } -.row:after, .row:before { +.row::after, +.row::before { content: ''; display: block; clear: both; @@ -81,64 +180,64 @@ body { margin: 0em 0 -1px 0em; } .row > * { - padding: 0 0 0 1.75em; } + padding: 0 0 0 2.5em; } .row { - margin: 0 0 -1px -1.75em; } + margin: 0 0 -1px -2.5em; } .row.uniform > * { - padding: 1.75em 0 0 1.75em; } + padding: 2.5em 0 0 2.5em; } .row.uniform { - margin: -1.75em 0 -1px -1.75em; } + margin: -2.5em 0 -1px -2.5em; } .row.\32 00\25 > * { - padding: 0 0 0 3.5em; } + padding: 0 0 0 5em; } .row.\32 00\25 { - margin: 0 0 -1px -3.5em; } + margin: 0 0 -1px -5em; } .row.uniform.\32 00\25 > * { - padding: 3.5em 0 0 3.5em; } + padding: 5em 0 0 5em; } .row.uniform.\32 00\25 { - margin: -3.5em 0 -1px -3.5em; } + margin: -5em 0 -1px -5em; } .row.\31 50\25 > * { - padding: 0 0 0 2.625em; } + padding: 0 0 0 3.75em; } .row.\31 50\25 { - margin: 0 0 -1px -2.625em; } + margin: 0 0 -1px -3.75em; } .row.uniform.\31 50\25 > * { - padding: 2.625em 0 0 2.625em; } + padding: 3.75em 0 0 3.75em; } .row.uniform.\31 50\25 { - margin: -2.625em 0 -1px -2.625em; } + margin: -3.75em 0 -1px -3.75em; } .row.\35 0\25 > * { - padding: 0 0 0 0.875em; } + padding: 0 0 0 1.25em; } .row.\35 0\25 { - margin: 0 0 -1px -0.875em; } + margin: 0 0 -1px -1.25em; } .row.uniform.\35 0\25 > * { - padding: 0.875em 0 0 0.875em; } + padding: 1.25em 0 0 1.25em; } .row.uniform.\35 0\25 { - margin: -0.875em 0 -1px -0.875em; } + margin: -1.25em 0 -1px -1.25em; } .row.\32 5\25 > * { - padding: 0 0 0 0.4375em; } + padding: 0 0 0 0.625em; } .row.\32 5\25 { - margin: 0 0 -1px -0.4375em; } + margin: 0 0 -1px -0.625em; } .row.uniform.\32 5\25 > * { - padding: 0.4375em 0 0 0.4375em; } + padding: 0.625em 0 0 0.625em; } .row.uniform.\32 5\25 { - margin: -0.4375em 0 -1px -0.4375em; } + margin: -0.625em 0 -1px -0.625em; } .\31 2u, .\31 2u\24 { width: 100%; @@ -249,45 +348,45 @@ body { @media screen and (max-width: 1680px) { .row > * { - padding: 0 0 0 1.75em; } + padding: 0 0 0 2.5em; } .row { - margin: 0 0 -1px -1.75em; } + margin: 0 0 -1px -2.5em; } .row.uniform > * { - padding: 1.75em 0 0 1.75em; } + padding: 2.5em 0 0 2.5em; } .row.uniform { - margin: -1.75em 0 -1px -1.75em; } + margin: -2.5em 0 -1px -2.5em; } .row.\32 00\25 > * { - padding: 0 0 0 3.5em; } + padding: 0 0 0 5em; } .row.\32 00\25 { - margin: 0 0 -1px -3.5em; } + margin: 0 0 -1px -5em; } .row.uniform.\32 00\25 > * { - padding: 3.5em 0 0 3.5em; } + padding: 5em 0 0 5em; } .row.uniform.\32 00\25 { - margin: -3.5em 0 -1px -3.5em; } + margin: -5em 0 -1px -5em; } .row.\31 50\25 > * { - padding: 0 0 0 2.625em; } + padding: 0 0 0 3.75em; } .row.\31 50\25 { - margin: 0 0 -1px -2.625em; } + margin: 0 0 -1px -3.75em; } .row.uniform.\31 50\25 > * { - padding: 2.625em 0 0 2.625em; } + padding: 3.75em 0 0 3.75em; } .row.uniform.\31 50\25 { - margin: -2.625em 0 -1px -2.625em; } + margin: -3.75em 0 -1px -3.75em; } .row.\35 0\25 > * { - padding: 0 0 0 0.875em; } + padding: 0 0 0 1.25em; } .row.\35 0\25 { - margin: 0 0 -1px -0.875em; } + margin: 0 0 -1px -1.25em; } .row.uniform.\35 0\25 > * { - padding: 0.875em 0 0 0.875em; } + padding: 1.25em 0 0 1.25em; } .row.uniform.\35 0\25 { - margin: -0.875em 0 -1px -0.875em; } + margin: -1.25em 0 -1px -1.25em; } .row.\32 5\25 > * { - padding: 0 0 0 0.4375em; } + padding: 0 0 0 0.625em; } .row.\32 5\25 { - margin: 0 0 -1px -0.4375em; } + margin: 0 0 -1px -0.625em; } .row.uniform.\32 5\25 > * { - padding: 0.4375em 0 0 0.4375em; } + padding: 0.625em 0 0 0.625em; } .row.uniform.\32 5\25 { - margin: -0.4375em 0 -1px -0.4375em; } + margin: -0.625em 0 -1px -0.625em; } .\31 2u\28xlarge\29, .\31 2u\24\28xlarge\29 { width: 100%; clear: none; @@ -374,45 +473,45 @@ body { @media screen and (max-width: 1280px) { .row > * { - padding: 0 0 0 1.75em; } + padding: 0 0 0 2.5em; } .row { - margin: 0 0 -1px -1.75em; } + margin: 0 0 -1px -2.5em; } .row.uniform > * { - padding: 1.75em 0 0 1.75em; } + padding: 2.5em 0 0 2.5em; } .row.uniform { - margin: -1.75em 0 -1px -1.75em; } + margin: -2.5em 0 -1px -2.5em; } .row.\32 00\25 > * { - padding: 0 0 0 3.5em; } + padding: 0 0 0 5em; } .row.\32 00\25 { - margin: 0 0 -1px -3.5em; } + margin: 0 0 -1px -5em; } .row.uniform.\32 00\25 > * { - padding: 3.5em 0 0 3.5em; } + padding: 5em 0 0 5em; } .row.uniform.\32 00\25 { - margin: -3.5em 0 -1px -3.5em; } + margin: -5em 0 -1px -5em; } .row.\31 50\25 > * { - padding: 0 0 0 2.625em; } + padding: 0 0 0 3.75em; } .row.\31 50\25 { - margin: 0 0 -1px -2.625em; } + margin: 0 0 -1px -3.75em; } .row.uniform.\31 50\25 > * { - padding: 2.625em 0 0 2.625em; } + padding: 3.75em 0 0 3.75em; } .row.uniform.\31 50\25 { - margin: -2.625em 0 -1px -2.625em; } + margin: -3.75em 0 -1px -3.75em; } .row.\35 0\25 > * { - padding: 0 0 0 0.875em; } + padding: 0 0 0 1.25em; } .row.\35 0\25 { - margin: 0 0 -1px -0.875em; } + margin: 0 0 -1px -1.25em; } .row.uniform.\35 0\25 > * { - padding: 0.875em 0 0 0.875em; } + padding: 1.25em 0 0 1.25em; } .row.uniform.\35 0\25 { - margin: -0.875em 0 -1px -0.875em; } + margin: -1.25em 0 -1px -1.25em; } .row.\32 5\25 > * { - padding: 0 0 0 0.4375em; } + padding: 0 0 0 0.625em; } .row.\32 5\25 { - margin: 0 0 -1px -0.4375em; } + margin: 0 0 -1px -0.625em; } .row.uniform.\32 5\25 > * { - padding: 0.4375em 0 0 0.4375em; } + padding: 0.625em 0 0 0.625em; } .row.uniform.\32 5\25 { - margin: -0.4375em 0 -1px -0.4375em; } + margin: -0.625em 0 -1px -0.625em; } .\31 2u\28large\29, .\31 2u\24\28large\29 { width: 100%; clear: none; @@ -499,45 +598,45 @@ body { @media screen and (max-width: 980px) { .row > * { - padding: 0 0 0 1.75em; } + padding: 0 0 0 2.5em; } .row { - margin: 0 0 -1px -1.75em; } + margin: 0 0 -1px -2.5em; } .row.uniform > * { - padding: 1.75em 0 0 1.75em; } + padding: 2.5em 0 0 2.5em; } .row.uniform { - margin: -1.75em 0 -1px -1.75em; } + margin: -2.5em 0 -1px -2.5em; } .row.\32 00\25 > * { - padding: 0 0 0 3.5em; } + padding: 0 0 0 5em; } .row.\32 00\25 { - margin: 0 0 -1px -3.5em; } + margin: 0 0 -1px -5em; } .row.uniform.\32 00\25 > * { - padding: 3.5em 0 0 3.5em; } + padding: 5em 0 0 5em; } .row.uniform.\32 00\25 { - margin: -3.5em 0 -1px -3.5em; } + margin: -5em 0 -1px -5em; } .row.\31 50\25 > * { - padding: 0 0 0 2.625em; } + padding: 0 0 0 3.75em; } .row.\31 50\25 { - margin: 0 0 -1px -2.625em; } + margin: 0 0 -1px -3.75em; } .row.uniform.\31 50\25 > * { - padding: 2.625em 0 0 2.625em; } + padding: 3.75em 0 0 3.75em; } .row.uniform.\31 50\25 { - margin: -2.625em 0 -1px -2.625em; } + margin: -3.75em 0 -1px -3.75em; } .row.\35 0\25 > * { - padding: 0 0 0 0.875em; } + padding: 0 0 0 1.25em; } .row.\35 0\25 { - margin: 0 0 -1px -0.875em; } + margin: 0 0 -1px -1.25em; } .row.uniform.\35 0\25 > * { - padding: 0.875em 0 0 0.875em; } + padding: 1.25em 0 0 1.25em; } .row.uniform.\35 0\25 { - margin: -0.875em 0 -1px -0.875em; } + margin: -1.25em 0 -1px -1.25em; } .row.\32 5\25 > * { - padding: 0 0 0 0.4375em; } + padding: 0 0 0 0.625em; } .row.\32 5\25 { - margin: 0 0 -1px -0.4375em; } + margin: 0 0 -1px -0.625em; } .row.uniform.\32 5\25 > * { - padding: 0.4375em 0 0 0.4375em; } + padding: 0.625em 0 0 0.625em; } .row.uniform.\32 5\25 { - margin: -0.4375em 0 -1px -0.4375em; } + margin: -0.625em 0 -1px -0.625em; } .\31 2u\28medium\29, .\31 2u\24\28medium\29 { width: 100%; clear: none; @@ -622,47 +721,47 @@ body { .\-1u\28medium\29 { margin-left: 8.3333333333%; } } -@media screen and (max-width: 736px) { +@media screen and (max-width: 933px) { .row > * { - padding: 0 0 0 1.25em; } - .row { - margin: 0 0 -1px -1.25em; } - .row.uniform > * { - padding: 1.25em 0 0 1.25em; } - .row.uniform { - margin: -1.25em 0 -1px -1.25em; } - .row.\32 00\25 > * { padding: 0 0 0 2.5em; } - .row.\32 00\25 { + .row { margin: 0 0 -1px -2.5em; } - .row.uniform.\32 00\25 > * { + .row.uniform > * { padding: 2.5em 0 0 2.5em; } - .row.uniform.\32 00\25 { + .row.uniform { margin: -2.5em 0 -1px -2.5em; } + .row.\32 00\25 > * { + padding: 0 0 0 5em; } + .row.\32 00\25 { + margin: 0 0 -1px -5em; } + .row.uniform.\32 00\25 > * { + padding: 5em 0 0 5em; } + .row.uniform.\32 00\25 { + margin: -5em 0 -1px -5em; } .row.\31 50\25 > * { - padding: 0 0 0 1.875em; } + padding: 0 0 0 3.75em; } .row.\31 50\25 { - margin: 0 0 -1px -1.875em; } + margin: 0 0 -1px -3.75em; } .row.uniform.\31 50\25 > * { - padding: 1.875em 0 0 1.875em; } + padding: 3.75em 0 0 3.75em; } .row.uniform.\31 50\25 { - margin: -1.875em 0 -1px -1.875em; } + margin: -3.75em 0 -1px -3.75em; } .row.\35 0\25 > * { - padding: 0 0 0 0.625em; } + padding: 0 0 0 1.25em; } .row.\35 0\25 { - margin: 0 0 -1px -0.625em; } + margin: 0 0 -1px -1.25em; } .row.uniform.\35 0\25 > * { - padding: 0.625em 0 0 0.625em; } + padding: 1.25em 0 0 1.25em; } .row.uniform.\35 0\25 { - margin: -0.625em 0 -1px -0.625em; } + margin: -1.25em 0 -1px -1.25em; } .row.\32 5\25 > * { - padding: 0 0 0 0.3125em; } + padding: 0 0 0 0.625em; } .row.\32 5\25 { - margin: 0 0 -1px -0.3125em; } + margin: 0 0 -1px -0.625em; } .row.uniform.\32 5\25 > * { - padding: 0.3125em 0 0 0.3125em; } + padding: 0.625em 0 0 0.625em; } .row.uniform.\32 5\25 { - margin: -0.3125em 0 -1px -0.3125em; } + margin: -0.625em 0 -1px -0.625em; } .\31 2u\28small\29, .\31 2u\24\28small\29 { width: 100%; clear: none; @@ -747,47 +846,47 @@ body { .\-1u\28small\29 { margin-left: 8.3333333333%; } } -@media screen and (max-width: 640px) { +@media screen and (max-width: 480px) { .row > * { - padding: 0 0 0 1.25em; } - .row { - margin: 0 0 -1px -1.25em; } - .row.uniform > * { - padding: 1.25em 0 0 1.25em; } - .row.uniform { - margin: -1.25em 0 -1px -1.25em; } - .row.\32 00\25 > * { padding: 0 0 0 2.5em; } - .row.\32 00\25 { + .row { margin: 0 0 -1px -2.5em; } - .row.uniform.\32 00\25 > * { + .row.uniform > * { padding: 2.5em 0 0 2.5em; } - .row.uniform.\32 00\25 { + .row.uniform { margin: -2.5em 0 -1px -2.5em; } + .row.\32 00\25 > * { + padding: 0 0 0 5em; } + .row.\32 00\25 { + margin: 0 0 -1px -5em; } + .row.uniform.\32 00\25 > * { + padding: 5em 0 0 5em; } + .row.uniform.\32 00\25 { + margin: -5em 0 -1px -5em; } .row.\31 50\25 > * { - padding: 0 0 0 1.875em; } + padding: 0 0 0 3.75em; } .row.\31 50\25 { - margin: 0 0 -1px -1.875em; } + margin: 0 0 -1px -3.75em; } .row.uniform.\31 50\25 > * { - padding: 1.875em 0 0 1.875em; } + padding: 3.75em 0 0 3.75em; } .row.uniform.\31 50\25 { - margin: -1.875em 0 -1px -1.875em; } + margin: -3.75em 0 -1px -3.75em; } .row.\35 0\25 > * { - padding: 0 0 0 0.625em; } + padding: 0 0 0 1.25em; } .row.\35 0\25 { - margin: 0 0 -1px -0.625em; } + margin: 0 0 -1px -1.25em; } .row.uniform.\35 0\25 > * { - padding: 0.625em 0 0 0.625em; } + padding: 1.25em 0 0 1.25em; } .row.uniform.\35 0\25 { - margin: -0.625em 0 -1px -0.625em; } + margin: -1.25em 0 -1px -1.25em; } .row.\32 5\25 > * { - padding: 0 0 0 0.3125em; } + padding: 0 0 0 0.625em; } .row.\32 5\25 { - margin: 0 0 -1px -0.3125em; } + margin: 0 0 -1px -0.625em; } .row.uniform.\32 5\25 > * { - padding: 0.3125em 0 0 0.3125em; } + padding: 0.625em 0 0 0.625em; } .row.uniform.\32 5\25 { - margin: -0.3125em 0 -1px -0.3125em; } + margin: -0.625em 0 -1px -0.625em; } .\31 2u\28xsmall\29, .\31 2u\24\28xsmall\29 { width: 100%; clear: none; @@ -872,274 +971,159 @@ body { .\-1u\28xsmall\29 { margin-left: 8.3333333333%; } } -@media screen and (max-width: 360px) { - .row > * { - padding: 0 0 0 1.25em; } - .row { - margin: 0 0 -1px -1.25em; } - .row.uniform > * { - padding: 1.25em 0 0 1.25em; } - .row.uniform { - margin: -1.25em 0 -1px -1.25em; } - .row.\32 00\25 > * { - padding: 0 0 0 2.5em; } - .row.\32 00\25 { - margin: 0 0 -1px -2.5em; } - .row.uniform.\32 00\25 > * { - padding: 2.5em 0 0 2.5em; } - .row.uniform.\32 00\25 { - margin: -2.5em 0 -1px -2.5em; } - .row.\31 50\25 > * { - padding: 0 0 0 1.875em; } - .row.\31 50\25 { - margin: 0 0 -1px -1.875em; } - .row.uniform.\31 50\25 > * { - padding: 1.875em 0 0 1.875em; } - .row.uniform.\31 50\25 { - margin: -1.875em 0 -1px -1.875em; } - .row.\35 0\25 > * { - padding: 0 0 0 0.625em; } - .row.\35 0\25 { - margin: 0 0 -1px -0.625em; } - .row.uniform.\35 0\25 > * { - padding: 0.625em 0 0 0.625em; } - .row.uniform.\35 0\25 { - margin: -0.625em 0 -1px -0.625em; } - .row.\32 5\25 > * { - padding: 0 0 0 0.3125em; } - .row.\32 5\25 { - margin: 0 0 -1px -0.3125em; } - .row.uniform.\32 5\25 > * { - padding: 0.3125em 0 0 0.3125em; } - .row.uniform.\32 5\25 { - margin: -0.3125em 0 -1px -0.3125em; } - .\31 2u\28xxsmall\29, .\31 2u\24\28xxsmall\29 { - width: 100%; - clear: none; - margin-left: 0; } - .\31 1u\28xxsmall\29, .\31 1u\24\28xxsmall\29 { - width: 91.6666666667%; - clear: none; - margin-left: 0; } - .\31 0u\28xxsmall\29, .\31 0u\24\28xxsmall\29 { - width: 83.3333333333%; - clear: none; - margin-left: 0; } - .\39 u\28xxsmall\29, .\39 u\24\28xxsmall\29 { - width: 75%; - clear: none; - margin-left: 0; } - .\38 u\28xxsmall\29, .\38 u\24\28xxsmall\29 { - width: 66.6666666667%; - clear: none; - margin-left: 0; } - .\37 u\28xxsmall\29, .\37 u\24\28xxsmall\29 { - width: 58.3333333333%; - clear: none; - margin-left: 0; } - .\36 u\28xxsmall\29, .\36 u\24\28xxsmall\29 { - width: 50%; - clear: none; - margin-left: 0; } - .\35 u\28xxsmall\29, .\35 u\24\28xxsmall\29 { - width: 41.6666666667%; - clear: none; - margin-left: 0; } - .\34 u\28xxsmall\29, .\34 u\24\28xxsmall\29 { - width: 33.3333333333%; - clear: none; - margin-left: 0; } - .\33 u\28xxsmall\29, .\33 u\24\28xxsmall\29 { - width: 25%; - clear: none; - margin-left: 0; } - .\32 u\28xxsmall\29, .\32 u\24\28xxsmall\29 { - width: 16.6666666667%; - clear: none; - margin-left: 0; } - .\31 u\28xxsmall\29, .\31 u\24\28xxsmall\29 { - width: 8.3333333333%; - clear: none; - margin-left: 0; } - .\31 2u\24\28xxsmall\29 + *, - .\31 1u\24\28xxsmall\29 + *, - .\31 0u\24\28xxsmall\29 + *, - .\39 u\24\28xxsmall\29 + *, - .\38 u\24\28xxsmall\29 + *, - .\37 u\24\28xxsmall\29 + *, - .\36 u\24\28xxsmall\29 + *, - .\35 u\24\28xxsmall\29 + *, - .\34 u\24\28xxsmall\29 + *, - .\33 u\24\28xxsmall\29 + *, - .\32 u\24\28xxsmall\29 + *, - .\31 u\24\28xxsmall\29 + * { - clear: left; } - .\-11u\28xxsmall\29 { - margin-left: 91.6666666667%; } - .\-10u\28xxsmall\29 { - margin-left: 83.3333333333%; } - .\-9u\28xxsmall\29 { - margin-left: 75%; } - .\-8u\28xxsmall\29 { - margin-left: 66.6666666667%; } - .\-7u\28xxsmall\29 { - margin-left: 58.3333333333%; } - .\-6u\28xxsmall\29 { - margin-left: 50%; } - .\-5u\28xxsmall\29 { - margin-left: 41.6666666667%; } - .\-4u\28xxsmall\29 { - margin-left: 33.3333333333%; } - .\-3u\28xxsmall\29 { - margin-left: 25%; } - .\-2u\28xxsmall\29 { - margin-left: 16.6666666667%; } - .\-1u\28xxsmall\29 { - margin-left: 8.3333333333%; } } - /* Basic */ -@-ms-viewport { - width: device-width; } - +html, body { - -ms-overflow-style: scrollbar; } + background: #1c1d26; } + @media (max-width: 933px) { + html, + body { + overflow-x: hidden; } } + @media (max-width: 480px) { + html, + body { + min-width: 320px; } } -@media screen and (max-width: 640px) { - html, body { - min-width: 320px; } } +body.is-loading *, +body.is-loading *::before, +body.is-loading *::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 { - background-color: #2e3141; - background-image: linear-gradient(to top, rgba(46, 49, 65, 0.8), rgba(46, 49, 65, 0.8)), url("../../images/bg.jpg"); - background-size: auto, cover; - background-attachment: fixed, fixed; - background-position: center, center; } - body.is-loading *, body.is-loading *:before, body.is-loading *: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; } +@media (max-width: 933px) { + body.navPanel-visible #page-wrapper { + -moz-transform: translateX(275px); + -webkit-transform: translateX(275px); + -ms-transform: translateX(275px); + transform: translateX(275px); } + body.navPanel-visible #titleBar { + -moz-transform: translateX(275px); + -webkit-transform: translateX(275px); + -ms-transform: translateX(275px); + transform: translateX(275px); } + body.navPanel-visible #navPanel { + -moz-transform: translateX(0); + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); } } -/* Type */ -body, input, select, textarea { - color: #ffffff; - font-family: "Source Sans Pro", Helvetica, sans-serif; - font-size: 16.5pt; +body, +input, +select, +textarea { + color: rgba(255, 255, 255, 0.75); + font-family: "Roboto", Helvetica, sans-serif; + font-size: 15pt; font-weight: 300; - line-height: 1.65; } - @media screen and (max-width: 1680px) { - body, input, select, textarea { + line-height: 1.75em; } + @media (max-width: 1680px) { + body, + input, + select, + textarea { font-size: 13pt; } } - @media screen and (max-width: 1280px) { - body, input, select, textarea { + @media (max-width: 1280px) { + body, + input, + select, + textarea { font-size: 12pt; } } - @media screen and (max-width: 980px) { - body, input, select, textarea { + @media (max-width: 980px) { + body, + input, + select, + textarea { font-size: 12pt; } } - @media screen and (max-width: 736px) { - body, input, select, textarea { + @media (max-width: 933px) { + body, + input, + select, + textarea { font-size: 12pt; } } - @media screen and (max-width: 640px) { - body, input, select, textarea { + @media (max-width: 480px) { + body, + input, + select, + textarea { font-size: 12pt; } } 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 rgba(255, 255, 255, 0.35); - color: #ffffff; + -moz-transition: border-color 0.2s ease-in-out, color 0.2s ease-in-out; + -webkit-transition: border-color 0.2s ease-in-out, color 0.2s ease-in-out; + -ms-transition: border-color 0.2s ease-in-out, color 0.2s ease-in-out; + transition: border-color 0.2s ease-in-out, color 0.2s ease-in-out; + color: rgba(200, 200, 255, 0.75); text-decoration: none; } a:hover { - border-bottom-color: transparent; - color: #ffffff !important; } - a.special:not(.button) { - text-decoration: none; - border-bottom: 0; - display: block; - font-family: Raleway, Helvetica, sans-serif; - font-size: 0.8em; - font-weight: 700; - letter-spacing: 0.1em; - margin: 0 0 2em 0; - text-transform: uppercase; } - a.special:not(.button):before { - font-family: "Font Awesome 5 Free"; - font-weight: 400; - } - a.special:not(.button):before { - -moz-transition: background-color 0.2s ease-in-out; - -webkit-transition: background-color 0.2s ease-in-out; - -ms-transition: background-color 0.2s ease-in-out; - transition: background-color 0.2s ease-in-out; - border-radius: 100%; - border: solid 2px rgba(255, 255, 255, 0.125); - content: '\f105'; - display: inline-block; - font-size: 1.25em; - height: 2em; - line-height: 1.65em; - margin-right: 0.85em; - text-align: center; - text-indent: 0.15em; - vertical-align: middle; - width: 2em; } - a.special:not(.button):hover:before { - background-color: rgba(255, 255, 255, 0.025); } - a.special:not(.button):active:before { - background-color: rgba(255, 255, 255, 0.075); } + color: #E64F2D !important; + border-bottom-color: transparent; } -strong, b { +strong, +b { color: #ffffff; - font-weight: 600; } + font-weight: 400; } -em, i { +em, +i { font-style: italic; } p { margin: 0 0 2em 0; } -h1, h2, h3, h4, h5, h6 { +h1, +h2, +h3, +h4, +h5, +h6 { color: #ffffff; - font-family: Raleway, Helvetica, sans-serif; - font-weight: 700; - letter-spacing: 0.1em; - margin: 0 0 1em 0; - text-transform: uppercase; } - h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { + font-weight: 400; + line-height: 1em; + margin: 0 0 1em 0; } + h1 a, + h2 a, + h3 a, + h4 a, + h5 a, + h6 a { color: inherit; - text-decoration: none; } - h1 span, h2 span, h3 span, h4 span, h5 span, h6 span { - font-weight: 200; } - h1.major, h2.major, h3.major, h4.major, h5.major, h6.major { - padding-bottom: 1em; - border-bottom: solid 2px rgba(255, 255, 255, 0.125); } + border: 0; } h2 { - font-size: 1.2em; } + font-size: 2em; + line-height: 1.5em; + letter-spacing: -0.025em; } + @media (max-width: 933px) { + h2 { + font-size: 1.5em; } } h3 { - font-size: 0.9em; } + font-size: 1.35em; + line-height: 1.5em; } + @media (max-width: 933px) { + h3 { + font-size: 1.2em; } } h4 { - font-size: 0.7em; } + font-size: 1.1em; + line-height: 1.5em; } + @media (max-width: 933px) { + h4 { + font-size: 1em; } } h5 { - font-size: 0.7em; } + font-size: 0.9em; + line-height: 1.5em; } h6 { - font-size: 0.7em; } - -@media screen and (max-width: 736px) { - h2 { - font-size: 1em; } - h3 { - font-size: 0.8em; } } + font-size: 0.7em; + line-height: 1.5em; } sub { font-size: 0.8em; @@ -1151,16 +1135,22 @@ sup { position: relative; top: -0.5em; } +hr { + border: 0; + border-bottom: solid 1px rgba(255, 255, 255, 0.3); + margin: 3em 0; } + hr.major { + margin: 4em 0; } + blockquote { - border-left: solid 4px rgba(255, 255, 255, 0.125); + border-left: solid 4px rgba(255, 255, 255, 0.3); font-style: italic; margin: 0 0 2em 0; padding: 0.5em 0 0.5em 2em; } code { - background: rgba(255, 255, 255, 0.025); - border-radius: 5px; - border: solid 2px rgba(255, 255, 255, 0.125); + background: rgba(255, 255, 255, 0.075); + border-radius: 4px; font-family: "Courier New", monospace; font-size: 0.9em; margin: 0 0.25em; @@ -1177,13 +1167,6 @@ pre { padding: 1em 1.5em; overflow-x: auto; } -hr { - border: 0; - border-bottom: solid 2px rgba(255, 255, 255, 0.125); - margin: 2.5em 0; } - hr.major { - margin: 4em 0; } - .align-left { text-align: left; } @@ -1193,46 +1176,381 @@ hr { .align-right { text-align: right; } +/* Loader */ +@-moz-keyframes spinner-show { + 0% { + opacity: 0; } + 100% { + opacity: 1; } } + +@-webkit-keyframes spinner-show { + 0% { + opacity: 0; } + 100% { + opacity: 1; } } + +@-ms-keyframes spinner-show { + 0% { + opacity: 0; } + 100% { + opacity: 1; } } + +@keyframes spinner-show { + 0% { + opacity: 0; } + 100% { + opacity: 1; } } + +@-moz-keyframes spinner-hide { + 0% { + color: rgba(255, 255, 255, 0.15); + z-index: 100001; + -moz-transform: scale(1) rotate(0deg); + -webkit-transform: scale(1) rotate(0deg); + -ms-transform: scale(1) rotate(0deg); + transform: scale(1) rotate(0deg); } + 99% { + color: #1c1d26; + z-index: 100001; + -moz-transform: scale(0.5) rotate(360deg); + -webkit-transform: scale(0.5) rotate(360deg); + -ms-transform: scale(0.5) rotate(360deg); + transform: scale(0.5) rotate(360deg); } + 100% { + color: #1c1d26; + z-index: -1; + -moz-transform: scale(0.5) rotate(360deg); + -webkit-transform: scale(0.5) rotate(360deg); + -ms-transform: scale(0.5) rotate(360deg); + transform: scale(0.5) rotate(360deg); } } + +@-webkit-keyframes spinner-hide { + 0% { + color: rgba(255, 255, 255, 0.15); + z-index: 100001; + -moz-transform: scale(1) rotate(0deg); + -webkit-transform: scale(1) rotate(0deg); + -ms-transform: scale(1) rotate(0deg); + transform: scale(1) rotate(0deg); } + 99% { + color: #1c1d26; + z-index: 100001; + -moz-transform: scale(0.5) rotate(360deg); + -webkit-transform: scale(0.5) rotate(360deg); + -ms-transform: scale(0.5) rotate(360deg); + transform: scale(0.5) rotate(360deg); } + 100% { + color: #1c1d26; + z-index: -1; + -moz-transform: scale(0.5) rotate(360deg); + -webkit-transform: scale(0.5) rotate(360deg); + -ms-transform: scale(0.5) rotate(360deg); + transform: scale(0.5) rotate(360deg); } } + +@-ms-keyframes spinner-hide { + 0% { + color: rgba(255, 255, 255, 0.15); + z-index: 100001; + -moz-transform: scale(1) rotate(0deg); + -webkit-transform: scale(1) rotate(0deg); + -ms-transform: scale(1) rotate(0deg); + transform: scale(1) rotate(0deg); } + 99% { + color: #1c1d26; + z-index: 100001; + -moz-transform: scale(0.5) rotate(360deg); + -webkit-transform: scale(0.5) rotate(360deg); + -ms-transform: scale(0.5) rotate(360deg); + transform: scale(0.5) rotate(360deg); } + 100% { + color: #1c1d26; + z-index: -1; + -moz-transform: scale(0.5) rotate(360deg); + -webkit-transform: scale(0.5) rotate(360deg); + -ms-transform: scale(0.5) rotate(360deg); + transform: scale(0.5) rotate(360deg); } } + +@keyframes spinner-hide { + 0% { + color: rgba(255, 255, 255, 0.15); + z-index: 100001; + -moz-transform: scale(1) rotate(0deg); + -webkit-transform: scale(1) rotate(0deg); + -ms-transform: scale(1) rotate(0deg); + transform: scale(1) rotate(0deg); } + 99% { + color: #1c1d26; + z-index: 100001; + -moz-transform: scale(0.5) rotate(360deg); + -webkit-transform: scale(0.5) rotate(360deg); + -ms-transform: scale(0.5) rotate(360deg); + transform: scale(0.5) rotate(360deg); } + 100% { + color: #1c1d26; + z-index: -1; + -moz-transform: scale(0.5) rotate(360deg); + -webkit-transform: scale(0.5) rotate(360deg); + -ms-transform: scale(0.5) rotate(360deg); + transform: scale(0.5) rotate(360deg); } } + +@-moz-keyframes spinner-rotate { + 0% { + -moz-transform: scale(1) rotate(0deg); + -webkit-transform: scale(1) rotate(0deg); + -ms-transform: scale(1) rotate(0deg); + transform: scale(1) rotate(0deg); } + 100% { + -moz-transform: scale(1) rotate(360deg); + -webkit-transform: scale(1) rotate(360deg); + -ms-transform: scale(1) rotate(360deg); + transform: scale(1) rotate(360deg); } } + +@-webkit-keyframes spinner-rotate { + 0% { + -moz-transform: scale(1) rotate(0deg); + -webkit-transform: scale(1) rotate(0deg); + -ms-transform: scale(1) rotate(0deg); + transform: scale(1) rotate(0deg); } + 100% { + -moz-transform: scale(1) rotate(360deg); + -webkit-transform: scale(1) rotate(360deg); + -ms-transform: scale(1) rotate(360deg); + transform: scale(1) rotate(360deg); } } + +@-ms-keyframes spinner-rotate { + 0% { + -moz-transform: scale(1) rotate(0deg); + -webkit-transform: scale(1) rotate(0deg); + -ms-transform: scale(1) rotate(0deg); + transform: scale(1) rotate(0deg); } + 100% { + -moz-transform: scale(1) rotate(360deg); + -webkit-transform: scale(1) rotate(360deg); + -ms-transform: scale(1) rotate(360deg); + transform: scale(1) rotate(360deg); } } + +@keyframes spinner-rotate { + 0% { + -moz-transform: scale(1) rotate(0deg); + -webkit-transform: scale(1) rotate(0deg); + -ms-transform: scale(1) rotate(0deg); + transform: scale(1) rotate(0deg); } + 100% { + -moz-transform: scale(1) rotate(360deg); + -webkit-transform: scale(1) rotate(360deg); + -ms-transform: scale(1) rotate(360deg); + transform: scale(1) rotate(360deg); } } + +@-moz-keyframes overlay-hide { + 0% { + opacity: 1; + z-index: 100000; } + 15% { + opacity: 1; + z-index: 100000; } + 99% { + opacity: 0; + z-index: 100000; } + 100% { + opacity: 0; + z-index: -1; } } + +@-webkit-keyframes overlay-hide { + 0% { + opacity: 1; + z-index: 100000; } + 15% { + opacity: 1; + z-index: 100000; } + 99% { + opacity: 0; + z-index: 100000; } + 100% { + opacity: 0; + z-index: -1; } } + +@-ms-keyframes overlay-hide { + 0% { + opacity: 1; + z-index: 100000; } + 15% { + opacity: 1; + z-index: 100000; } + 99% { + opacity: 0; + z-index: 100000; } + 100% { + opacity: 0; + z-index: -1; } } + +@keyframes overlay-hide { + 0% { + opacity: 1; + z-index: 100000; } + 15% { + opacity: 1; + z-index: 100000; } + 99% { + opacity: 0; + z-index: 100000; } + 100% { + opacity: 0; + z-index: -1; } } + +body.landing { + text-decoration: none; } + body.landing:before { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + text-transform: none !important; } + body.landing::before { + -moz-animation: spinner-show 1.5s 1 0.25s ease forwards, spinner-hide 0.25s ease-in-out forwards !important; + -webkit-animation: spinner-show 1.5s 1 0.25s ease forwards, spinner-hide 0.25s ease-in-out forwards !important; + -ms-animation: spinner-show 1.5s 1 0.25s ease forwards, spinner-hide 0.25s ease-in-out forwards !important; + animation: spinner-show 1.5s 1 0.25s ease forwards, spinner-hide 0.25s ease-in-out forwards !important; + -moz-transform-origin: 50% 50%; + -webkit-transform-origin: 50% 50%; + -ms-transform-origin: 50% 50%; + transform-origin: 50% 50%; + color: rgba(255, 255, 255, 0.15); + content: '\f1ce'; + cursor: default; + display: block; + font-family: "Font Awesome 5 Free"; + font-size: 2em; + font-weight: 900; + height: 2em; + left: 50%; + line-height: 2em; + margin: -1em 0 0 -1em; + opacity: 0; + position: fixed; + text-align: center; + top: 50%; + width: 2em; + z-index: -1; } + body.landing::after { + -moz-animation: overlay-hide 0.5s ease-in forwards !important; + -webkit-animation: overlay-hide 0.5s ease-in forwards !important; + -ms-animation: overlay-hide 0.5s ease-in forwards !important; + animation: overlay-hide 0.5s ease-in forwards !important; + background: #1c1d26; + content: ''; + display: block; + height: 100%; + left: 0; + opacity: 0; + position: fixed; + top: 0; + width: 100%; + z-index: -1; } + body.landing.is-loading::before { + -moz-animation: spinner-show 1.5s 1 0.25s ease forwards, spinner-rotate 0.75s infinite linear !important; + -webkit-animation: spinner-show 1.5s 1 0.25s ease forwards, spinner-rotate 0.75s infinite linear !important; + -ms-animation: spinner-show 1.5s 1 0.25s ease forwards, spinner-rotate 0.75s infinite linear !important; + animation: spinner-show 1.5s 1 0.25s ease forwards, spinner-rotate 0.75s infinite linear !important; + z-index: 100001; } + body.landing.is-loading::after { + -moz-animation: none !important; + -webkit-animation: none !important; + -ms-animation: none !important; + animation: none !important; + opacity: 1; + z-index: 100000; } + +@media (-webkit-min-device-pixel-ratio: 2) { + body.landing::before { + line-height: 2.025em; } } + /* Section/Article */ -section.special, article.special { +section.special, +article.special { text-align: center; } +header p { + color: #ffffff; + position: relative; + margin: 0 0 1.5em 0; } + @media (max-width: 933px) { + header p br { + display: none; } } + +header h2 + p { + font-size: 1.25em; + margin-top: -1em; + line-height: 1.75em; } + @media (max-width: 933px) { + header h2 + p { + font-size: 1em; } } + +header h3 + p { + font-size: 1.1em; + margin-top: -0.8em; + line-height: 1.75em; } + @media (max-width: 933px) { + header h3 + p { + font-size: 1em; } } + +header h4 + p, +header h5 + p, +header h6 + p { + font-size: 0.9em; + margin-top: -0.6em; + line-height: 1.5em; } + @media (max-width: 933px) { + header h4 + p, + header h5 + p, + header h6 + p { + font-size: 0.9em; } } + +header.major { + margin: 0 0 4em 0; + position: relative; + text-align: center; } + @media (max-width: 933px) { + header.major { + margin: 0 0 2em 0; } } + header.major::after { + background: #E64F2D; + content: ''; + display: inline-block; + height: 0.2em; + max-width: 20em; + width: 75%; } + +footer.major { + margin: 4em 0 0 0; } + /* Form */ form { margin: 0 0 2em 0; } - form .field { - margin: 0 0 2em 0; } - form .field label { - margin-top: -1.5em; } - form .field:first-child label { - margin-top: 0; } - form > :last-child { - margin-bottom: 0; } label { color: #ffffff; display: block; - font-family: Raleway, Helvetica, sans-serif; - font-size: 0.8em; - font-weight: 700; - letter-spacing: 0.1em; - margin: 0 0 0.7em 0; - text-transform: uppercase; } + font-size: 0.9em; + font-weight: 400; + margin: 0 0 1em 0; } input[type="text"], input[type="password"], input[type="email"], -input[type="tel"], select, textarea { -moz-appearance: none; -webkit-appearance: none; -ms-appearance: none; appearance: none; - background: rgba(255, 255, 255, 0.025); - border-radius: 5px; - border: none; - border: solid 2px rgba(255, 255, 255, 0.125); + -moz-transition: border-color 0.2s ease-in-out; + -webkit-transition: border-color 0.2s ease-in-out; + -ms-transition: border-color 0.2s ease-in-out; + transition: border-color 0.2s ease-in-out; + background: transparent; + border-radius: 4px; + border: solid 1px rgba(255, 255, 255, 0.3); color: inherit; display: block; outline: 0; @@ -1242,62 +1560,58 @@ textarea { input[type="text"]:invalid, input[type="password"]:invalid, input[type="email"]:invalid, - input[type="tel"]:invalid, select:invalid, textarea:invalid { box-shadow: none; } input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus, - input[type="tel"]:focus, select:focus, textarea:focus { - border-color: #5b6ba6; } + border-color: #E64F2D; } .select-wrapper { text-decoration: none; display: block; position: relative; } .select-wrapper:before { - font-family: "Font Awesome 5 Free"; - /* updated font-family */ - font-weight: 400; - /* regular style/weight */ - -moz-osx-font-smoothing: grayscale; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; -webkit-font-smoothing: antialiased; - /* font-family: "Font Awesome 5 Free"; - font-style: normal; - font-weight: normal; -*/ text-transform: none !important; } - .select-wrapper:before { - color: rgba(255, 255, 255, 0.125); + .select-wrapper::before { + color: rgba(255, 255, 255, 0.3); content: '\f078'; display: block; - height: 2.75em; - line-height: 2.75em; + height: 2.4em; + line-height: 2.4em; pointer-events: none; position: absolute; right: 0; text-align: center; top: 0; - width: 2.75em; } + width: 2.4em; } .select-wrapper select::-ms-expand { display: none; } -select option { - color: #ffffff; - background: #2e3141; } - input[type="text"], input[type="password"], input[type="email"], select { - height: 2.75em; } + height: 2.4em; } textarea { padding: 0.75em 1em; } +select option { + background-color: #1c1d26; + color: #ffffff; } + +select:focus::-ms-value { + background: transparent; } + input[type="checkbox"], input[type="radio"] { -moz-appearance: none; @@ -1313,84 +1627,74 @@ input[type="radio"] { input[type="checkbox"] + label, input[type="radio"] + label { text-decoration: none; - color: #ffffff; + color: rgba(255, 255, 255, 0.75); cursor: pointer; display: inline-block; font-size: 1em; - font-family: "Source Sans Pro", Helvetica, sans-serif; - text-transform: none; - letter-spacing: 0; font-weight: 300; - padding-left: 2.4em; + padding-left: 2.19em; padding-right: 0.75em; position: relative; } input[type="checkbox"] + label:before, input[type="radio"] + label:before { - font-family: "Font Awesome 5 Free"; - /* updated font-family */ - font-weight: 400; - /* regular style/weight */ - -moz-osx-font-smoothing: grayscale; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; -webkit-font-smoothing: antialiased; - /* font-family: "Font Awesome 5 Free"; - font-style: normal; - font-weight: normal; -*/ text-transform: none !important; } - input[type="checkbox"] + label:before, - input[type="radio"] + label:before { - background: rgba(255, 255, 255, 0.025); - border-radius: 5px; - border: solid 2px rgba(255, 255, 255, 0.125); + input[type="checkbox"] + label::before, + input[type="radio"] + label::before { + border-radius: 4px; + border: solid 1px rgba(255, 255, 255, 0.3); content: ''; display: inline-block; - height: 1.65em; + height: 1.44em; left: 0; - line-height: 1.58125em; + line-height: 1.38em; position: absolute; text-align: center; top: 0; - width: 1.65em; } - input[type="checkbox"]:checked + label:before, - input[type="radio"]:checked + label:before { - background: #ffffff; - border-color: #ffffff; - content: '\f00c'; - color: #2e3141; } - input[type="checkbox"]:focus + label:before, - input[type="radio"]:focus + label:before { - border-color: #4c5c96; } + width: 1.44em; } + input[type="checkbox"]:checked + label::before, + input[type="radio"]:checked + label::before { + background: rgba(255, 255, 255, 0.25); + color: #ffffff; + content: '\f00c'; } + input[type="checkbox"]:focus + label::before, + input[type="radio"]:focus + label::before { + border-color: #E64F2D; } -input[type="checkbox"] + label:before { - border-radius: 5px; } +input[type="checkbox"] + label::before { + border-radius: 4px; } -input[type="radio"] + label:before { +input[type="radio"] + label::before { border-radius: 100%; } ::-webkit-input-placeholder { - color: rgba(255, 255, 255, 0.35) !important; - opacity: 1.0; } + color: rgba(255, 255, 255, 0.5) !important; + opacity: 1; } :-moz-placeholder { - color: rgba(255, 255, 255, 0.35) !important; - opacity: 1.0; } + color: rgba(255, 255, 255, 0.5) !important; + opacity: 1; } ::-moz-placeholder { - color: rgba(255, 255, 255, 0.35) !important; - opacity: 1.0; } + color: rgba(255, 255, 255, 0.5) !important; + opacity: 1; } :-ms-input-placeholder { - color: rgba(255, 255, 255, 0.35) !important; - opacity: 1.0; } + color: rgba(255, 255, 255, 0.5) !important; + opacity: 1; } -.polyfill-placeholder { - color: rgba(255, 255, 255, 0.35) !important; - opacity: 1.0; } +.formerize-placeholder { + color: rgba(255, 255, 255, 0.5) !important; + opacity: 1; } /* Box */ .box { - border-radius: 5px; - border: solid 2px rgba(255, 255, 255, 0.125); + border-radius: 4px; + border: solid 1px rgba(255, 255, 255, 0.3); margin-bottom: 2em; padding: 1.5em; } .box > :last-child, @@ -1408,53 +1712,111 @@ input[type="radio"] + label:before { border-bottom: none; position: relative; } .icon:before { - font-family: "Font Awesome 5 Free"; - /* updated font-family */ - font-weight: 400; - /* regular style/weight */ - -moz-osx-font-smoothing: grayscale; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; -webkit-font-smoothing: antialiased; - /* font-family: "Font Awesome 5 Free"; - font-style: normal; - font-weight: normal; -*/ text-transform: none !important; } .icon > .label { display: none; } + .icon.alt { + text-decoration: none; } + .icon.alt:before { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + text-transform: none !important; } + .icon.alt::before { + color: #1c1d26 !important; + text-shadow: 1px 0 0 #ffffff, -1px 0 0 #ffffff, 0 1px 0 #ffffff, 0 -1px 0 #ffffff; } + .icon.major { + background: #272833; + border-radius: 100%; + cursor: default; + display: inline-block; + height: 6em; + line-height: 6em; + margin: 0 0 2em 0; + text-align: center; + width: 6em; } + .icon.major::before { + font-size: 2.25em; } + .icon.major.alt { + text-decoration: none; } + .icon.major.alt:before { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + text-transform: none !important; } + .icon.major.alt::before { + color: #272833 !important; + text-shadow: 1px 0 0 #ffffff, -1px 0 0 #ffffff, 0 1px 0 #ffffff, 0 -1px 0 #ffffff; } + +.iconshiftdown { + line-height: 2; } + +.iconshift-right-5 { + margin-left: 5px; } + +.iconshift-right-6 { + margin-left: 6px; } + +.iconshift-right-7 { + margin-left: 7px; } + +.iconshift-right-8 { + margin-left: 8px; } + +.iconshift-right-9 { + margin-left: 9px; } + +.iconshift-right-10 { + margin-left: 10px; } /* Image */ .image { - border-radius: 5px; + border-radius: 4px; border: 0; display: inline-block; - position: relative; } + position: relative; + overflow: hidden; } + .image::before { + content: ''; + display: block; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: 1; } .image img { - border-radius: 5px; + border-radius: 4px; display: block; } + .image.left { + float: left; + margin: 0 1.5em 1em 0; + top: 0.25em; } + .image.right { + float: right; + margin: 0 0 1em 1.5em; + top: 0.25em; } .image.left, .image.right { max-width: 40%; } .image.left img, .image.right img { width: 100%; } - .image.left { - float: left; - padding: 0 1.5em 1em 0; - top: 0.25em; } - .image.right { - float: right; - padding: 0 0 1em 1.5em; - top: 0.25em; } .image.fit { display: block; margin: 0 0 2em 0; width: 100%; } .image.fit img { width: 100%; } - .image.main { - display: block; - margin: 0 0 3em 0; - width: 100%; } - .image.main img { - width: 100%; } + .image.mapid { + height: 70vh; } /* List */ ol { @@ -1474,7 +1836,7 @@ ul { list-style: none; padding-left: 0; } ul.alt li { - border-top: solid 1px rgba(255, 255, 255, 0.125); + border-top: solid 1px rgba(255, 255, 255, 0.3); padding: 0.5em 0; } ul.alt li:first-child { border-top: 0; @@ -1485,23 +1847,44 @@ ul { 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:before { - font-size: 1.25em; } + height: 2.5em; + line-height: 2.5em; + padding: 0 0.5em; } + ul.icons li .icon { + font-size: 0.8em; } + ul.icons li .icon::before { + font-size: 2em; } ul.actions { cursor: default; list-style: none; padding-left: 0; } + @media (max-width: 480px) { + ul.actions { + margin: 0 0 2em 0; } } ul.actions li { display: inline-block; padding: 0 1em 0 0; vertical-align: middle; } + @media (max-width: 480px) { + ul.actions li { + display: block; + padding: 1em 0 0 0; + text-align: center; + width: 100%; } + ul.actions li:first-child { + padding-top: 0; } + ul.actions li > * { + margin: 0 !important; + width: 100%; } } ul.actions li:last-child { padding-right: 0; } ul.actions.small li { padding: 0 0.5em 0 0; } + @media (max-width: 480px) { + ul.actions.small li { + padding: 0.5em 0 0 0; } + ul.actions.small li:first-child { + padding-top: 0; } } ul.actions.vertical li { display: block; padding: 1em 0 0 0; } @@ -1529,112 +1912,9 @@ ul { width: calc(100% + 0.5em); } ul.actions.fit.small li { padding: 0 0 0 0.5em; } - @media screen and (max-width: 640px) { - ul.actions { - margin: 0 0 2em 0; } - ul.actions li { - padding: 1em 0 0 0; - display: block; - text-align: center; - width: 100%; } - ul.actions li:first-child { - padding-top: 0; } - ul.actions li > * { - width: 100%; - margin: 0 !important; } - ul.actions.small li { - padding: 0.5em 0 0 0; } - ul.actions.small li:first-child { - padding-top: 0; } } - ul.contact { - list-style: none; - padding: 0; } - ul.contact li { - text-decoration: none; - margin: 2.5em 0 0 0; - padding: 0 0 0 3.25em; - position: relative; } - ul.contact li:before { - font-family: "Font Awesome 5 Free"; - /* updated font-family */ - font-weight: 400; - /* regular style/weight */ - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - /* font-family: "Font Awesome 5 Free"; - font-style: normal; - font-weight: normal; -*/ - text-transform: none !important; } - ul.contact li:before { - border-radius: 100%; - border: solid 2px rgba(255, 255, 255, 0.125); - display: inline-block; - font-size: 0.8em; - height: 2.5em; - left: 0; - line-height: 2.35em; - position: absolute; - text-align: center; - top: 0; - width: 2.5em; } - ul.contact li:first-child { - margin-top: 0; } - @media screen and (max-width: 736px) { - ul.contact li { - margin: 1.5em 0 0 0; } } - ul.pagination { - cursor: default; - list-style: none; - padding-left: 0; } - ul.pagination li { - display: inline-block; - padding-left: 0; - vertical-align: middle; } - ul.pagination li > .page { - -moz-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; - -webkit-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; - -ms-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; - transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; - border-bottom: 0; - border-radius: 5px; - display: inline-block; - height: 1.5em; - line-height: 1.5em; - margin: 0 0.125em; - min-width: 1.5em; - padding: 0 0.5em; - text-align: center; } - ul.pagination li > .page:hover { - background-color: rgba(255, 255, 255, 0.025); } - ul.pagination li > .page.active { - background-color: #4c5c96; } - ul.pagination li:first-child { - padding-right: 0.75em; } - ul.pagination li:last-child { - padding-left: 0.75em; } - @media screen and (max-width: 640px) { - ul.pagination li:nth-child(n+2):nth-last-child(n+2) { - display: none; } - ul.pagination li .button { - width: 100%; } - ul.pagination li:first-child { - width: calc(50% - 2px); - text-align: left; - padding-right: 0.325em; } - ul.pagination li:last-child { - width: calc(50% - 2px); - text-align: right; - padding-left: 0.325em; } } dl { margin: 0 0 2em 0; } - dl dt { - display: block; - font-weight: 600; - margin: 0 0 1em 0; } - dl dd { - margin-left: 2em; } /* Table */ .table-wrapper { @@ -1645,27 +1925,27 @@ table { margin: 0 0 2em 0; width: 100%; } table tbody tr { - border: solid 1px rgba(255, 255, 255, 0.125); + border: solid 1px rgba(255, 255, 255, 0.3); border-left: 0; border-right: 0; } table tbody tr:nth-child(2n + 1) { - background-color: rgba(255, 255, 255, 0.025); } + background-color: rgba(255, 255, 255, 0.075); } table td { padding: 0.75em 0.75em; } table th { color: #ffffff; font-size: 0.9em; - font-weight: 600; + font-weight: 400; padding: 0 0.75em 0.75em 0.75em; text-align: left; } table thead { - border-bottom: solid 2px rgba(255, 255, 255, 0.125); } + border-bottom: solid 1px rgba(255, 255, 255, 0.3); } table tfoot { - border-top: solid 2px rgba(255, 255, 255, 0.125); } + border-top: solid 1px rgba(255, 255, 255, 0.3); } table.alt { border-collapse: separate; } table.alt tbody tr td { - border: solid 1px rgba(255, 255, 255, 0.125); + border: solid 1px rgba(255, 255, 255, 0.3); border-left-width: 0; border-top-width: 0; } table.alt tbody tr td:first-child { @@ -1681,82 +1961,57 @@ table { 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; - -webkit-transition: background-color 0.2s ease-in-out; - -ms-transition: background-color 0.2s ease-in-out; - transition: background-color 0.2s ease-in-out; + -moz-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, box-shadow 0.2s ease-in-out; + -webkit-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, box-shadow 0.2s ease-in-out; + -ms-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, box-shadow 0.2s ease-in-out; + transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, box-shadow 0.2s ease-in-out; background-color: transparent; - border-radius: 5px; + border-radius: 4px; border: 0; - box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.125); + box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.3); color: #ffffff !important; cursor: pointer; display: inline-block; - font-family: Raleway, Helvetica, sans-serif; - font-size: 0.8em; - font-weight: 700; - height: 3.75em; - letter-spacing: 0.1em; - line-height: 3.75em; + font-weight: 400; + height: 2.4em; + line-height: 2.4em; padding: 0 2.25em; text-align: center; text-decoration: none; - text-transform: uppercase; white-space: nowrap; } - input[type="submit"]:hover, + @media (max-width: 480px) { + input[type="submit"], + input[type="reset"], + input[type="button"], + .button { + padding: 0; } } + input[type="submit"]:hover, input[type="submit"]:active, input[type="reset"]:hover, + input[type="reset"]:active, input[type="button"]:hover, - button:hover, - .button:hover { - background-color: rgba(255, 255, 255, 0.025); } + input[type="button"]:active, + .button:hover, + .button:active { + box-shadow: inset 0 0 0 1px #E64F2D; + color: #E64F2D !important; } input[type="submit"]:active, input[type="reset"]:active, input[type="button"]:active, - button:active, .button:active { - background-color: rgba(255, 255, 255, 0.075); } - input[type="submit"].icon:before, - input[type="reset"].icon:before, - input[type="button"].icon:before, - button.icon:before, - .button.icon:before { - margin-right: 0.5em; - color: rgba(255, 255, 255, 0.35); } - input[type="submit"].special, - input[type="reset"].special, - input[type="button"].special, - button.special, - .button.special { - background-color: #4c5c96; - box-shadow: none; } - input[type="submit"].special:hover, - input[type="reset"].special:hover, - input[type="button"].special:hover, - button.special:hover, - .button.special:hover { - background-color: #53639e; } - input[type="submit"].special:active, - input[type="reset"].special:active, - input[type="button"].special:active, - button.special:active, - .button.special:active { - background-color: #45558d; } - input[type="submit"].special.icon:before, - input[type="reset"].special.icon:before, - input[type="button"].special.icon:before, - button.special.icon:before, - .button.special.icon:before { - color: #7985b0; } + background-color: rgba(230, 79, 45, 0.15); } + input[type="submit"].icon::before, + input[type="reset"].icon::before, + input[type="button"].icon::before, + .button.icon::before { + margin-right: 0.5em; } input[type="submit"].fit, input[type="reset"].fit, input[type="button"].fit, - button.fit, .button.fit { display: block; margin: 0 0 1em 0; @@ -1764,801 +2019,869 @@ button, input[type="submit"].small, input[type="reset"].small, input[type="button"].small, - button.small, .button.small { - font-size: 0.6em; } + font-size: 0.8em; } input[type="submit"].big, input[type="reset"].big, input[type="button"].big, - button.big, .button.big { - font-size: 1em; } + font-size: 1.35em; } + input[type="submit"].special, + input[type="reset"].special, + input[type="button"].special, + .button.special { + background-color: #E64F2D; + box-shadow: none; + color: #ffffff !important; } + input[type="submit"].special:hover, + input[type="reset"].special:hover, + input[type="button"].special:hover, + .button.special:hover { + background-color: #e96244; } + input[type="submit"].special:active, + input[type="reset"].special:active, + input[type="button"].special:active, + .button.special:active { + background-color: #df3f1b; } 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 { + background-color: rgba(255, 255, 255, 0.3) !important; + box-shadow: none !important; + color: #ffffff !important; + cursor: default; opacity: 0.25; } - @media screen and (max-width: 640px) { - input[type="submit"], - input[type="reset"], - input[type="button"], - button, - .button { - padding: 0; } } + input[type="submit"].tb-opened, + input[type="reset"].tb-opened, + input[type="button"].tb-opened, + .button.tb-opened { + background-color: LimeGreen !important; } + input[type="submit"].tb-opened.navbar, + input[type="reset"].tb-opened.navbar, + input[type="button"].tb-opened.navbar, + .button.tb-opened.navbar { + margin-left: -15px; } -/* Features */ -.features { - 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; - margin: 0 0 2em 0; } - .features article { - padding: 1.75em 1.75em 0.1em 1.75em ; - background-color: #353849; - border-radius: 5px; - margin: 1.5em 3em 1.5em 0; - width: calc(50% - 1.5em); } - .features article:nth-child(2n) { - margin-right: 0; } - .features article .image { - border-radius: 5px 5px 0 0; +.tb-closed { + color: #d23128ff; } + +.tooltip { + position: relative; + display: inline-block; + border-bottom: 1px dotted black; } + +.tooltip .tooltiptext { + visibility: hidden; + position: absolute; + width: 230px; + margin-left: -100px; + font-size: 0.9em; + background-color: #555; + line-height: normal; + color: #fff; + text-align: center; + padding: 15px 0; + border-radius: 6px; + z-index: 1; + opacity: 0; + transition: opacity 0.3s; + top: 100%; + left: 50%; } + +.tooltip .tooltiptext::after { + content: ""; + position: absolute; + bottom: 100%; + left: 50%; + margin-left: -5px; + border-width: 5px; + border-style: solid; + border-color: transparent transparent #555 transparent; } + +.tooltip:hover .tooltiptext { + visibility: visible; + opacity: 1; } + +/* Goto Next */ +.goto-next { + border: 0; + bottom: 0; + display: block; + height: 5em; + left: 50%; + margin: 0 0 0 -5em; + overflow: hidden; + position: absolute; + text-indent: 10em; + white-space: nowrap; + width: 10em; + z-index: 1; } + .goto-next::before { + background-image: url("images/arrow.svg"); + background-position: center center; + background-repeat: no-repeat; + background-size: contain; + content: ''; + display: block; + height: 1.5em; + left: 50%; + margin: -0.75em 0 0 -1em; + position: absolute; + top: 50%; + width: 2em; + z-index: 1; } + @media (max-width: 933px) { + .goto-next::before { + height: 0.8em; + margin: -0.4em 0 0 -0.6em; + width: 1.2em; } } + +/* Spotlight */ +.spotlight { + background-attachment: fixed; + background-position: center center; + background-size: cover; + box-shadow: 0 0.25em 0.5em 0 rgba(0, 0, 0, 0.25); + background-image: none; + min-height: 42em; + height: 100vh; + overflow: hidden; + position: relative; } + @media (max-width: 980px) { + .spotlight { + background-attachment: scroll; + height: auto; + min-height: auto; } } + @media (max-width: 933px) { + .spotlight { + box-shadow: 0 0.125em 0.5em 0 rgba(0, 0, 0, 0.25); } } + .spotlight:nth-last-of-type(1) { + z-index: 1; } + .spotlight:nth-last-of-type(2) { + z-index: 2; } + .spotlight:nth-last-of-type(3) { + z-index: 3; } + .spotlight:nth-last-of-type(4) { + z-index: 4; } + .spotlight:nth-last-of-type(5) { + z-index: 5; } + .spotlight:nth-last-of-type(6) { + z-index: 6; } + .spotlight:nth-last-of-type(7) { + z-index: 7; } + .spotlight:nth-last-of-type(8) { + z-index: 8; } + .spotlight:nth-last-of-type(9) { + z-index: 9; } + .spotlight:nth-last-of-type(10) { + z-index: 10; } + .spotlight:nth-last-of-type(11) { + z-index: 11; } + .spotlight:nth-last-of-type(12) { + z-index: 12; } + .spotlight:nth-last-of-type(13) { + z-index: 13; } + .spotlight:nth-last-of-type(14) { + z-index: 14; } + .spotlight:nth-last-of-type(15) { + z-index: 15; } + .spotlight:nth-last-of-type(16) { + z-index: 16; } + .spotlight:nth-last-of-type(17) { + z-index: 17; } + .spotlight:nth-last-of-type(18) { + z-index: 18; } + .spotlight:nth-last-of-type(19) { + z-index: 19; } + .spotlight:nth-last-of-type(20) { + z-index: 20; } + .spotlight::before { + content: ''; + display: block; + height: 100%; + left: 0; + top: 0; + width: 100%; } + .spotlight .image.main { + display: block; } + @media (max-width: 980px) { + .spotlight .image.main { + display: block; + margin: 0; + max-height: 40vh; + overflow: hidden; } } + @media (max-width: 933px) { + .spotlight .image.main { + max-height: 60vh; } } + @media (max-width: 480px) { + .spotlight .image.main { + max-height: 50vh; } } + .spotlight .image.main img { + position: relative; } + .spotlight .content { + -moz-transform: translate(0,0); + -webkit-transform: translate(0,0); + -ms-transform: translate(0,0); + transform: translate(0,0); + -moz-transition: -moz-transform 1s ease, opacity 1s ease; + -webkit-transition: -webkit-transform 1s ease, opacity 1s ease; + -ms-transition: -ms-transform 1s ease, opacity 1s ease; + transition: transform 1s ease, opacity 1s ease; + background: rgba(23, 24, 32, 0.9); + border-style: solid; + opacity: 1; + position: absolute; } + @media (max-width: 980px) { + .spotlight .content { + background-color: rgba(23, 24, 32, 0.9); + border-width: 0 !important; + border-top-width: 0.35em !important; + bottom: auto !important; + left: auto !important; + padding: 6em 3em 4em 3em !important; + position: relative; + right: auto !important; + text-align: center; + top: auto !important; + width: 100% !important; } } + @media (max-width: 933px) { + .spotlight .content { + border-top-width: 0.2em !important; + padding: 6em 3em 4em 3em !important; } } + @media (max-width: 480px) { + .spotlight .content { + padding: 6em 3em 4em 3em !important; } } + .spotlight .goto-next { + -moz-transform: translate(0,0); + -webkit-transform: translate(0,0); + -ms-transform: translate(0,0); + transform: translate(0,0); + -moz-transition: -moz-transform 0.75s ease, opacity 1s ease-in; + -webkit-transition: -webkit-transform 0.75s ease, opacity 1s ease-in; + -ms-transition: -ms-transform 0.75s ease, opacity 1s ease-in; + transition: transform 0.75s ease, opacity 1s ease-in; + -moz-transition-delay: 0.5s; + -webkit-transition-delay: 0.5s; + -ms-transition-delay: 0.5s; + transition-delay: 0.5s; + opacity: 1; } + @media (max-width: 980px) { + .spotlight .goto-next { + display: none; } } + .spotlight.top .content, .spotlight.bottom .content { + left: 0; + padding: 5.1em 0 3.1em 0; + width: 100%; } + .spotlight.top .content { + border-bottom-width: 0.35em; + top: 0; } + @media (max-width: 1280px) { + .spotlight.top .content { + padding: 5.1em 0 3.1em 0; } } + .spotlight.bottom .content { + border-top-width: 0.35em; + bottom: 0; } + @media (max-width: 1280px) { + .spotlight.bottom .content { + padding: 5.1em 0 4.6em 0; } } + .spotlight.left .content, .spotlight.right .content { + height: 101%; + padding: 6em 3em; + top: 0; + width: 28em; + min-width: 25%; } + @media (max-width: 1280px) { + .spotlight.left .content, .spotlight.right .content { + padding: 6em 3em; + width: 25em; } } + .spotlight.left .content { + border-right-width: 0.35em; + left: 0; } + .spotlight.right .content { + border-left-width: 0.35em; + right: 0; } + .spotlight.style2 .content { + border-color: #E64F2D; } + .spotlight.style3 .content { + border-color: #D74126; } + .spotlight.inactive .content { + opacity: 0; } + .spotlight.inactive .goto-next { + -moz-transform: translate(0,1.5em); + -webkit-transform: translate(0,1.5em); + -ms-transform: translate(0,1.5em); + transform: translate(0,1.5em); + opacity: 0; } + .spotlight.inactive.top .content { + -moz-transform: translate(0,-5em); + -webkit-transform: translate(0,-5em); + -ms-transform: translate(0,-5em); + transform: translate(0,-5em); } + .spotlight.inactive.bottom .content { + -moz-transform: translate(0,5em); + -webkit-transform: translate(0,5em); + -ms-transform: translate(0,5em); + transform: translate(0,5em); } + .spotlight.inactive.left .content { + -moz-transform: translate(-5em,0); + -webkit-transform: translate(-5em,0); + -ms-transform: translate(-5em,0); + transform: translate(-5em,0); } + .spotlight.inactive.right .content { + -moz-transform: translate(5em,0); + -webkit-transform: translate(5em,0); + -ms-transform: translate(5em,0); + transform: translate(5em,0); } + +body.is-touch .spotlight { + background-attachment: scroll; } + +/* Wrapper */ +.wrapper { + padding: 6em 0 4em 0; } + @media (max-width: 1280px) { + .wrapper { + padding: 6em 0 4em 0; } } + @media (max-width: 980px) { + .wrapper { + padding: 6em 3em 4em 3em; } } + @media (max-width: 933px) { + .wrapper { + padding: 6em 3em 4em 3em; } } + @media (max-width: 480px) { + .wrapper { + padding: 6em 3em 4em 3em; } } + .wrapper.style2 { + background: #E64F2D; } + .wrapper.style2 input[type="text"]:focus, + .wrapper.style2 input[type="password"]:focus, + .wrapper.style2 input[type="email"]:focus, + .wrapper.style2 select:focus, + .wrapper.style2 textarea:focus { + border-color: rgba(255, 255, 255, 0.5); } + .wrapper.style2 input[type="submit"]:hover, .wrapper.style2 input[type="submit"]:active, + .wrapper.style2 input[type="reset"]:hover, + .wrapper.style2 input[type="reset"]:active, + .wrapper.style2 input[type="button"]:hover, + .wrapper.style2 input[type="button"]:active, + .wrapper.style2 .button:hover, + .wrapper.style2 .button:active { + background-color: rgba(255, 255, 255, 0.075) !important; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.5) !important; + color: #ffffff !important; } + .wrapper.style2 input[type="submit"]:active, + .wrapper.style2 input[type="reset"]:active, + .wrapper.style2 input[type="button"]:active, + .wrapper.style2 .button:active { + background-color: rgba(255, 255, 255, 0.25) !important; } + .wrapper.style2 input[type="submit"].special, + .wrapper.style2 input[type="reset"].special, + .wrapper.style2 input[type="button"].special, + .wrapper.style2 .button.special { + background-color: #ffffff; + color: #E64F2D !important; } + .wrapper.style2 input[type="submit"].special:hover, .wrapper.style2 input[type="submit"].special:active, + .wrapper.style2 input[type="reset"].special:hover, + .wrapper.style2 input[type="reset"].special:active, + .wrapper.style2 input[type="button"].special:hover, + .wrapper.style2 input[type="button"].special:active, + .wrapper.style2 .button.special:hover, + .wrapper.style2 .button.special:active { + background-color: rgba(255, 255, 255, 0.075) !important; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.5) !important; + color: #ffffff !important; } + .wrapper.style2 input[type="submit"].special:active, + .wrapper.style2 input[type="reset"].special:active, + .wrapper.style2 input[type="button"].special:active, + .wrapper.style2 .button.special:active { + background-color: rgba(255, 255, 255, 0.25) !important; } + .wrapper.fade-down > .container { + -moz-transform: translate(0,0); + -webkit-transform: translate(0,0); + -ms-transform: translate(0,0); + transform: translate(0,0); + -moz-transition: -moz-transform 1s ease, opacity 1s ease; + -webkit-transition: -webkit-transform 1s ease, opacity 1s ease; + -ms-transition: -ms-transform 1s ease, opacity 1s ease; + transition: transform 1s ease, opacity 1s ease; + opacity: 1; } + .wrapper.fade-down.inactive > .container { + -moz-transform: translate(0,-1em); + -webkit-transform: translate(0,-1em); + -ms-transform: translate(0,-1em); + transform: translate(0,-1em); + opacity: 0; } + .wrapper.fade-up > .container { + -moz-transform: translate(0,0); + -webkit-transform: translate(0,0); + -ms-transform: translate(0,0); + transform: translate(0,0); + -moz-transition: -moz-transform 1s ease, opacity 1s ease; + -webkit-transition: -webkit-transform 1s ease, opacity 1s ease; + -ms-transition: -ms-transform 1s ease, opacity 1s ease; + transition: transform 1s ease, opacity 1s ease; + opacity: 1; } + .wrapper.fade-up.inactive > .container { + -moz-transform: translate(0,1em); + -webkit-transform: translate(0,1em); + -ms-transform: translate(0,1em); + transform: translate(0,1em); + opacity: 0; } + .wrapper.fade > .container { + -moz-transition: opacity 1s ease; + -webkit-transition: opacity 1s ease; + -ms-transition: opacity 1s ease; + transition: opacity 1s ease; + opacity: 1; } + .wrapper.fade.inactive > .container { + opacity: 0; } + +/* Dropotron */ +.dropotron { + background: rgba(39, 40, 51, 0.965); + border-radius: 4px; + box-shadow: 0 0.075em 0.35em 0 rgba(0, 0, 0, 0.125); + list-style: none; + margin-top: calc(-0.25em + 1px); + min-width: 12em; + padding: 0.25em 0; } + .dropotron > li { + border-top: solid 1px rgba(255, 255, 255, 0.035); + padding: 0; } + .dropotron > li a, + .dropotron > li span { + border: 0; + color: rgba(255, 255, 255, 0.75); display: block; - margin-bottom: 1.75em; - margin-left: -1.75em; - margin-top: -1.75em; - position: relative; - width: calc(100% + 3.5em); } - .features article .image img { - border-radius: 5px 5px 0 0; - width: 100%; } - @media screen and (max-width: 980px) { - .features article { - margin: 1em 2em 1em 0; - width: calc(50% - 1em); } } - @media screen and (max-width: 736px) { - .features article { - padding: 1.5em 1.5em 0.1em 1.5em ; - margin: 0.875em 1.75em 0.875em 0; - width: calc(50% - 0.875em - 1px); } - .features article .image { - margin-bottom: 1.5em; - margin-left: -1.5em; - margin-top: -1.5em; - width: calc(100% + 3em); } } - @media screen and (max-width: 640px) { - .features { - display: block; } - .features article { - width: 100%; - margin: 0 0 2em 0 !important; } } + padding: 0.1em 1em; + text-decoration: none; } + .dropotron > li:first-child { + border-top: 0; } + .dropotron > li.active > a, + .dropotron > li.active > span { + color: #E64F2D; } + .dropotron.level-0 { + font-size: 0.8em; + margin-top: 1em; } + @media (max-width: 1280px) { + .dropotron.level-0 { + font-size: 1em; } } + .dropotron.level-0::before { + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + background: #272833; + content: ''; + display: block; + height: 1em; + position: absolute; + right: 1.5em; + top: -0.5em; + width: 1em; } + +body.landing .dropotron.level-0 { + margin-top: 0; } /* Header */ +#navPanel, +#titleBar { + display: none; } + +@media (max-width: 933px) { + #titleBar { + -moz-backface-visibility: hidden; + -webkit-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; + -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; + display: block; + height: 44px; + left: 0; + position: fixed; + top: 0; + width: 100%; + z-index: 10001; + background: #272833; + box-shadow: 0 0.125em 0.125em 0 rgba(0, 0, 0, 0.125); } + #titleBar .title { + color: #ffffff; + display: block; + font-weight: 400; + height: 44px; + line-height: 44px; + text-align: center; } + #titleBar .title a { + color: inherit; + border: 0; } + #titleBar .toggle { + text-decoration: none; + height: 60px; + left: 0; + position: absolute; + top: 0; + width: 90px; + outline: 0; + border: 0; } + #titleBar .toggle:before { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + text-transform: none !important; } + #titleBar .toggle::before { + background: #9B160F; + color: rgba(255, 255, 255, 0.5); + display: block; + font-size: 18px; + height: 44px; + left: 0; + line-height: 44px; + position: absolute; + text-align: center; + top: 0; + width: 54px; } } + +@media (max-width: 933px) { + #navPanel { + -moz-backface-visibility: hidden; + -webkit-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; + -moz-transform: translateX(-275px); + -webkit-transform: translateX(-275px); + -ms-transform: translateX(-275px); + transform: translateX(-275px); + -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; + display: block; + height: 100%; + left: 0; + overflow-y: auto; + position: fixed; + top: 0; + width: 275px; + z-index: 10002; + background: #181920; + padding: 0.75em 1.25em; } + #navPanel .link { + border: 0; + border-top: solid 1px rgba(255, 255, 255, 0.05); + color: rgba(255, 255, 255, 0.75); + display: block; + height: 3em; + line-height: 3em; + text-decoration: none; } + #navPanel .link:hover { + color: inherit !important; } + #navPanel .link:first-child { + border-top: 0; } + #navPanel .link.depth-0 { + color: #ffffff; + font-weight: 400; } + #navPanel .link .indent-1 { + display: inline-block; + width: 1.25em; } + #navPanel .link .indent-2 { + display: inline-block; + width: 2.5em; } + #navPanel .link .indent-3 { + display: inline-block; + width: 3.75em; } + #navPanel .link .indent-4 { + display: inline-block; + width: 5em; } + #navPanel .link .indent-5 { + display: inline-block; + width: 6.25em; } } + +#page-wrapper { + padding-top: 3.5em; } + @media (max-width: 933px) { + #page-wrapper { + -moz-backface-visibility: hidden; + -webkit-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; + -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; + padding-bottom: 1px; + padding-top: 44px !important; } } + #header { - -moz-transition: background-color 0.2s ease-in-out; - -webkit-transition: background-color 0.2s ease-in-out; - -ms-transition: background-color 0.2s ease-in-out; - transition: background-color 0.2s ease-in-out; - background-color: rgba(53, 56, 73, 0.95); + background: rgba(39, 40, 51, 0.965); + box-shadow: 0 0 0.25em 0 rgba(0, 0, 0, 0.25); + cursor: default; height: 3.5em; left: 0; line-height: 3.5em; - padding: 0 1.25em; position: fixed; top: 0; width: 100%; - z-index: 10000; } - #header h1 { - -moz-transition: opacity 0.2s ease-in-out, visibility 0.2s; - -webkit-transition: opacity 0.2s ease-in-out, visibility 0.2s; - -ms-transition: opacity 0.2s ease-in-out, visibility 0.2s; - transition: opacity 0.2s ease-in-out, visibility 0.2s; - border-bottom: 0; - font-size: 0.8em; - margin-bottom: 0; - opacity: 1; - visibility: visible; } - #header h1 a { - border: 0; } - #header nav { - font-family: Raleway, Helvetica, sans-serif; - font-size: 0.8em; - font-weight: 700; - height: 3em; - letter-spacing: 0.1em; - line-height: 3em; - position: absolute; - right: 0.7em; - text-transform: uppercase; - top: 0.7em; } - #header nav a { - border: 0; - display: inline-block; - padding: 0 1em; } - #header nav a:before { - float: right; - margin-left: 0.75em; } - #header nav a[href="#menu"] { - text-decoration: none; - -moz-transition: background-color 0.2s ease-in-out; - -webkit-transition: background-color 0.2s ease-in-out; - -ms-transition: background-color 0.2s ease-in-out; - transition: background-color 0.2s ease-in-out; - border-radius: 5px; - box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.125); - padding: 0 1.35em; } - #header nav a[href="#menu"]:before { - font-family: "Font Awesome 5 Free"; - /* updated font-family */ - font-weight: 400; - /* regular style/weight */ - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - /* font-family: "Font Awesome 5 Free"; - font-style: normal; - font-weight: normal; -*/ - text-transform: none !important; } - #header nav a[href="#menu"]:before { - content: '\f0c9'; } - #header nav a[href="#menu"]:hover { - background-color: rgba(255, 255, 255, 0.025); } - #header nav a[href="#menu"]:active { - background-color: rgba(255, 255, 255, 0.075); } - #header.alt { - background-color: transparent; } - #header.alt h1 { - opacity: 0; - visibility: hidden; } - @media screen and (max-width: 736px) { + z-index: 5000; } + @media (max-width: 933px) { #header { - height: 2.75em; - line-height: 2.75em; } - #header nav { - top: 0; - right: 0; - height: inherit; - line-height: inherit; } - #header nav a { - height: inherit; - line-height: inherit; } - #header nav a[href="#menu"] { - box-shadow: none; - padding: 0 1em; - border-radius: 0; } - #header nav a[href="#menu"]:hover, #header nav a[href="#menu"]:active { - background-color: inherit; } } - @media screen and (max-width: 640px) { - #header nav a[href="#menu"] { - width: 4em; - white-space: nowrap; - text-indent: 4em; - position: relative; } - #header nav a[href="#menu"]:before { - width: inherit; - position: absolute; - top: 0; - left: 0; - text-indent: 0; - text-align: right; - margin-left: 0; - padding-right: 1.25em; } } - -/* Menu */ -#page-wrapper { - -moz-transition: -moz-filter 0.25s ease; - -webkit-transition: -webkit-filter 0.25s ease; - -ms-transition: -ms-filter 0.25s ease; - transition: filter 0.25s ease; } - -#menu { - -moz-align-items: center; - -webkit-align-items: center; - -ms-align-items: center; - align-items: center; - display: -moz-flex; - display: -webkit-flex; - display: -ms-flex; - display: flex; - -moz-justify-content: center; - -webkit-justify-content: center; - -ms-justify-content: center; - justify-content: center; - -moz-pointer-events: none; - -webkit-pointer-events: none; - -ms-pointer-events: none; - pointer-events: none; - -moz-transition: opacity 0.35s ease, visibility 0.35s; - -webkit-transition: opacity 0.35s ease, visibility 0.35s; - -ms-transition: opacity 0.35s ease, visibility 0.35s; - transition: opacity 0.35s ease, visibility 0.35s; - -moz-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - background: rgba(46, 49, 65, 0.8); - cursor: default; - height: 100%; - left: 0; - opacity: 0; - position: fixed; - text-align: center; - top: 0; - visibility: hidden; - width: 100%; } - #menu .inner { - padding: 2.5em 1.5em 0.5em 1.5em ; - -moz-transform: translateY(0.5em); - -webkit-transform: translateY(0.5em); - -ms-transform: translateY(0.5em); - transform: translateY(0.5em); - -moz-transition: opacity 0.35s ease, -moz-transform 0.35s ease; - -webkit-transition: opacity 0.35s ease, -webkit-transform 0.35s ease; - -ms-transition: opacity 0.35s ease, -ms-transform 0.35s ease; - transition: opacity 0.35s ease, transform 0.35s ease; - -webkit-overflow-scrolling: touch; - background: #4c5c96; - border-radius: 5px; - display: block; - max-width: 100%; - opacity: 0; - position: relative; - width: 18em; } - #menu h2 { - border-bottom: solid 2px rgba(255, 255, 255, 0.125); - padding-bottom: 1em; } - #menu .close { - background-image: url("images/close.svg"); - background-position: 75% 25%; - background-repeat: no-repeat; - background-size: 2em 2em; - border: 0; - content: ''; - display: block; - height: 4em; - overflow: hidden; + display: none; } } + #header h1 { + height: inherit; + left: 1.25em; + line-height: inherit; + margin: 0; position: absolute; - right: 0; - text-align: center; - text-indent: 4em; - top: 0; - width: 4em; } - #menu .links { + top: 0; } + #header nav ul { list-style: none; - margin-bottom: 1.5em; + position: relative; + float: right; + margin: 0; padding: 0; } - #menu .links li { - padding: 0; } - #menu .links li a { - border-radius: 5px; - border: 0; + #header nav ul li { + position: relative; + float: left; + margin: 0; + padding: 0; + color: inherit; + height: inherit; + line-height: inherit; } + #header nav ul li a, + #header nav ul li span { display: block; - font-family: Raleway, Helvetica, sans-serif; - font-size: 0.8em; - font-weight: 200; - letter-spacing: 0.1em; - line-height: 1.85em; - padding: 0.75em 0; - text-transform: uppercase; } - #menu .links li a:hover { - background: #45558d; } - @media screen and (max-width: 736px) { - #menu .inner { - max-height: 100%; - overflow-y: auto; - overflow-x: hidden; } - #menu .inner .close { - background-size: 1.5em 1.5em; } } + color: inherit; + text-decoration: none; + line-height: inherit; + padding: 0 1em; } + #header nav ul li.active > a, + #header nav ul li.active > span { + color: #E64F2D; } + #header nav ul li.last { + padding-right: 1.8em; } + #header nav ul ul { + display: none; + position: absolute; + top: 100%; + left: 0; + border-bottom: 2px solid rgba(255, 255, 255, 0.075); + background: rgba(39, 40, 51, 0.965); + padding: 0; } + #header nav ul ul li { + float: none; + width: 11em; + overflow: hidden; } + #header nav ul ul.last li { + width: 8em; } + #header nav ul ul a { + line-height: 100%; + padding: 10px 15px; + border-top: 2px solid rgba(255, 255, 255, 0.075); } + #header nav ul ul ul { + top: 0; + left: 100%; } + #header nav ul li:hover > ul { + display: block; } -body.is-menu-visible #page-wrapper { - -moz-filter: blur(1.5px); - -webkit-filter: blur(1.5px); - -ms-filter: blur(1.5px); - filter: blur(1.5px); } - -body.is-menu-visible #menu { - -moz-pointer-events: auto; - -webkit-pointer-events: auto; - -ms-pointer-events: auto; - pointer-events: auto; - opacity: 1; - visibility: visible; } - body.is-menu-visible #menu .inner { - -moz-transform: translateY(0); - -webkit-transform: translateY(0); - -ms-transform: translateY(0); - transform: translateY(0); - opacity: 1; } +body.landing #page-wrapper { + padding-top: 0; } /* Banner */ #banner { - padding: 10em 0 4.75em 0 ; } - #banner .inner { - margin: 0 auto; - width: 55em; } - #banner .logo { - -moz-transition: opacity 2s ease, -moz-transform 1s ease; - -webkit-transition: opacity 2s ease, -webkit-transform 1s ease; - -ms-transition: opacity 2s ease, -ms-transform 1s ease; - transition: opacity 2s ease, transform 1s ease; - -moz-transform: translateY(0); - -webkit-transform: translateY(0); - -ms-transform: translateY(0); - transform: translateY(0); - opacity: 1; - margin: 0 0 1.3em 0; } - #banner .logo .icon { - border-radius: 100%; - border: solid 2px rgba(255, 255, 255, 0.125); - cursor: default; - display: inline-block; - font-size: 2em; - height: 2.25em; - line-height: 2.25em; - text-align: center; - width: 2.25em; } - #banner h2 { - -moz-transition: opacity 0.5s ease, -moz-transform 0.5s ease, -moz-filter 0.25s ease; - -webkit-transition: opacity 0.5s ease, -webkit-transform 0.5s ease, -webkit-filter 0.25s ease; - -ms-transition: opacity 0.5s ease, -ms-transform 0.5s ease, -ms-filter 0.25s ease; - transition: opacity 0.5s ease, transform 0.5s ease, filter 0.25s ease; - -moz-transform: translateX(0); - -webkit-transform: translateX(0); - -ms-transform: translateX(0); - transform: translateX(0); - -moz-transition-delay: 0.65s; - -webkit-transition-delay: 0.65s; - -ms-transition-delay: 0.65s; - transition-delay: 0.65s; - -moz-filter: blur(0); - -webkit-filter: blur(0); - -ms-filter: blur(0); - filter: blur(0); - opacity: 1; - border-bottom: solid 2px rgba(255, 255, 255, 0.125); - font-size: 2.25em; - margin-bottom: 0.8em; - padding-bottom: 0.4em; } - #banner p { - -moz-transition: opacity 0.5s ease, -moz-transform 0.5s ease, -moz-filter 0.25s ease; - -webkit-transition: opacity 0.5s ease, -webkit-transform 0.5s ease, -webkit-filter 0.25s ease; - -ms-transition: opacity 0.5s ease, -ms-transform 0.5s ease, -ms-filter 0.25s ease; - transition: opacity 0.5s ease, transform 0.5s ease, filter 0.25s ease; - -moz-transform: translateX(0); - -webkit-transform: translateX(0); - -ms-transform: translateX(0); - transform: translateX(0); - -moz-transition-delay: 0.8s; - -webkit-transition-delay: 0.8s; - -ms-transition-delay: 0.8s; - transition-delay: 0.8s; - -moz-filter: blur(0); - -webkit-filter: blur(0); - -ms-filter: blur(0); - filter: blur(0); - opacity: 1; - font-family: Raleway, Helvetica, sans-serif; - font-size: 1em; - font-weight: 200; - letter-spacing: 0.1em; - line-height: 2; - text-transform: uppercase; } - @media screen and (max-width: 1280px) { + background-attachment: fixed; + background-color: #272833; + background-image: url("../../images/banner.jpg"); + background-position: center center; + background-size: cover; + box-shadow: 0 0.25em 0.5em 0 rgba(0, 0, 0, 0.25); + min-height: 100vh; + position: relative; + text-align: center; + z-index: 21; } + @media (max-width: 980px) { #banner { - padding: 7em 0 8.25em 0 ; - background-color: #2e3141; - background-image: linear-gradient(to top, rgba(46, 49, 65, 0.8), rgba(46, 49, 65, 0.8)), url("../../images/bg.jpg"); - background-size: auto, cover; - background-position: center, center; - margin-bottom: -6.5em; } } - @media screen and (max-width: 980px) { + background-attachment: scroll; } + #banner .goto-next { + height: 7em; } } + @media (max-width: 933px) { #banner { - padding: 12em 3em 12.375em 3em ; - margin-bottom: -4.75em; } - #banner .inner { - width: 100%; } } - @media screen and (max-width: 736px) { - #banner { - padding: 5em 2em 4.25em 2em ; - margin-bottom: -2.5em; } - #banner .logo { - margin: 0 0 1em 0; } - #banner .logo .icon { - font-size: 1.5em; } - #banner h2 { - font-size: 1.5em; } - #banner p { - font-size: 0.8em; } } - body.is-loading #banner .logo { - -moz-transform: translateY(0.5em); - -webkit-transform: translateY(0.5em); - -ms-transform: translateY(0.5em); - transform: translateY(0.5em); - opacity: 0; } - body.is-loading #banner h2 { - opacity: 0; - -moz-transform: translateX(0.25em); - -webkit-transform: translateX(0.25em); - -ms-transform: translateX(0.25em); - transform: translateX(0.25em); - -moz-filter: blur(2px); - -webkit-filter: blur(2px); - -ms-filter: blur(2px); - filter: blur(2px); } - body.is-loading #banner p { - opacity: 0; - -moz-transform: translateX(0.5em); - -webkit-transform: translateX(0.5em); - -ms-transform: translateX(0.5em); - transform: translateX(0.5em); - -moz-filter: blur(2px); - -webkit-filter: blur(2px); - -ms-filter: blur(2px); - filter: blur(2px); } - -/* Wrapper */ -#wrapper > header { - padding: 11em 0 2.25em 0 ; } - #wrapper > header .inner { - margin: 0 auto; - width: 55em; } - #wrapper > header h2 { - border-bottom: solid 2px rgba(255, 255, 255, 0.125); - font-size: 2em; - margin-bottom: 0.8em; - padding-bottom: 0.4em; } - #wrapper > header p { - font-family: Raleway, Helvetica, sans-serif; - font-size: 1em; - font-weight: 200; - letter-spacing: 0.1em; - line-height: 2; - text-transform: uppercase; } - -@media screen and (max-width: 1280px) { - #wrapper > header { - padding: 9em 0 6.25em 0 ; - background-color: #2e3141; - background-image: linear-gradient(to top, rgba(46, 49, 65, 0.8), rgba(46, 49, 65, 0.8)), url("../../images/bg.jpg"); - background-size: auto, cover; - background-position: center, 0% 30%; - margin-bottom: -6.5em; } } - -@media screen and (max-width: 980px) { - #wrapper > header { - padding: 11em 3em 7.375em 3em ; - background-size: auto, cover; - background-position: center, 0% 0%; - margin-bottom: -4.75em; } - #wrapper > header .inner { - width: 100%; } } - -@media screen and (max-width: 736px) { - #wrapper > header { - padding: 6.5em 2em 3em 2em ; - background-size: auto, 125%; - margin-bottom: -2.5em; } - #wrapper > header h2 { - font-size: 1.25em; } - #wrapper > header p { - font-size: 0.8em; } } - -.wrapper { - background-color: #2e3141; - margin: 6.5em 0; - position: relative; } - .wrapper:before, .wrapper:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%232e3141%3B' /%3E%3C/svg%3E"); } - .wrapper:before { - box-shadow: inset 0 -1px 0 0 #2e3141, 0 1px 0 0 #2e3141; } - .wrapper:after { - box-shadow: inset 0 -1px 0 0 #2e3141, 0 1px 0 0 #2e3141; } - .wrapper:before, .wrapper:after { - background-repeat: no-repeat; - background-size: 100% 100%; + box-shadow: 0 0.125em 0.5em 0 rgba(0, 0, 0, 0.25); + min-height: calc(100vh - 44px); } } + #banner::before { + content: ''; + display: inline-block; + height: 100vh; + vertical-align: middle; + width: 1%; } + @media (max-width: 933px) { + #banner::before { + height: calc(100vh - 44px); } } + #banner::after { content: ''; display: block; - height: 6.5em; - position: absolute; - width: 100%; } - .wrapper:before { + height: 100%; left: 0; - top: -6.5em; } - .wrapper:after { - -moz-transform: scaleY(-1); - -webkit-transform: scaleY(-1); - -ms-transform: scaleY(-1); - transform: scaleY(-1); - bottom: -6.5em; - left: 0; } - .wrapper.alt:before { - -moz-transform: scaleX(-1); - -webkit-transform: scaleX(-1); - -ms-transform: scaleX(-1); - transform: scaleX(-1); } - .wrapper.alt:after { - -moz-transform: scaleY(-1) scaleX(-1); - -webkit-transform: scaleY(-1) scaleX(-1); - -ms-transform: scaleY(-1) scaleX(-1); - transform: scaleY(-1) scaleX(-1); } - .wrapper .inner { - padding: 3em 0 1em 0 ; - margin: 0 auto; - width: 55em; } - .wrapper.style2 { - background-color: #353849; } - .wrapper.style2:before, .wrapper.style2:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%23353849%3B' /%3E%3C/svg%3E"); } - .wrapper.style2:before { - box-shadow: inset 0 -1px 0 0 #353849, 0 1px 0 0 #353849; } - .wrapper.style2:after { - box-shadow: inset 0 -1px 0 0 #353849, 0 1px 0 0 #353849; } - .wrapper.style3 { - background-color: #3d4051; } - .wrapper.style3:before, .wrapper.style3:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%233d4051%3B' /%3E%3C/svg%3E"); } - .wrapper.style3:before { - box-shadow: inset 0 -1px 0 0 #3d4051, 0 1px 0 0 #3d4051; } - .wrapper.style3:after { - box-shadow: inset 0 -1px 0 0 #3d4051, 0 1px 0 0 #3d4051; } - .wrapper.style4 { - background-color: #454858; } - .wrapper.style4:before, .wrapper.style4:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%23454858%3B' /%3E%3C/svg%3E"); } - .wrapper.style4:before { - box-shadow: inset 0 -1px 0 0 #454858, 0 1px 0 0 #454858; } - .wrapper.style4:after { - box-shadow: inset 0 -1px 0 0 #454858, 0 1px 0 0 #454858; } - .wrapper.style5 { - background-color: #4d5060; } - .wrapper.style5:before, .wrapper.style5:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%234d5060%3B' /%3E%3C/svg%3E"); } - .wrapper.style5:before { - box-shadow: inset 0 -1px 0 0 #4d5060, 0 1px 0 0 #4d5060; } - .wrapper.style5:after { - box-shadow: inset 0 -1px 0 0 #4d5060, 0 1px 0 0 #4d5060; } - .wrapper.style6 { - background-color: #555867; } - .wrapper.style6:before, .wrapper.style6:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%23555867%3B' /%3E%3C/svg%3E"); } - .wrapper.style6:before { - box-shadow: inset 0 -1px 0 0 #555867, 0 1px 0 0 #555867; } - .wrapper.style6:after { - box-shadow: inset 0 -1px 0 0 #555867, 0 1px 0 0 #555867; } - .wrapper.spotlight { - background-color: #4c5c96; } - .wrapper.spotlight:before, .wrapper.spotlight:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%234c5c96%3B' /%3E%3C/svg%3E"); } - .wrapper.spotlight:before { - box-shadow: inset 0 -1px 0 0 #4c5c96, 0 1px 0 0 #4c5c96; } - .wrapper.spotlight:after { - box-shadow: inset 0 -1px 0 0 #4c5c96, 0 1px 0 0 #4c5c96; } - .wrapper.spotlight .inner { - display: -moz-flex; - display: -webkit-flex; - display: -ms-flex; - display: flex; - -moz-align-items: center; - -webkit-align-items: center; - -ms-align-items: center; - align-items: center; - -moz-flex-direction: row; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; } - .wrapper.spotlight .image { - border-radius: 100%; - margin: 0 3em 2em 0; - width: 22em; - overflow: hidden; - -ms-flex: 1; } - .wrapper.spotlight .image img { - border-radius: 100%; + position: absolute; + top: 0; + width: 100%; } + #banner .content { + display: inline-block; + margin-right: 1%; + max-width: 95%; + padding: 6em; + position: relative; + text-align: right; + vertical-align: middle; + z-index: 1; } + @media (max-width: 1280px) { + #banner .content { + padding: 6em; } } + @media (max-width: 980px) { + #banner .content { + padding: 12em 0; + text-align: center; } } + @media (max-width: 933px) { + #banner .content { + padding: 7.5em 3em 9em 3em; } } + @media (max-width: 480px) { + #banner .content { + padding: 6em 3.75em 10.5em 3.75em; } } + #banner .content header { + display: inline-block; + vertical-align: middle; } + @media (max-width: 980px) { + #banner .content header { + display: block; + margin: 0 0 2em 0; + text-align: center; } } + #banner .content header h2 { + font-size: 2.5em; + margin: 0; } + @media (max-width: 933px) { + #banner .content header h2 { + font-size: 1.5em; } } + #banner .content header p { + margin: 0.5em 0 0 0; + top: 0; } + #banner .content .image { + border-radius: 0; + display: inline-block; + height: 19em; + margin-left: 3em; + margin-top: 2em; + vertical-align: middle; + width: 19em; } + @media (max-width: 980px) { + #banner .content .image { + margin: 0; } } + @media (max-width: 933px) { + #banner .content .image { + height: 9em; + width: 9em; } } + #banner .content .image img { + border-radius: 0; + display: block; width: 100%; } - .wrapper.spotlight .content { - width: 100%; - -ms-flex: 2; } - .wrapper.spotlight:nth-child(2n - 1) .inner { - -moz-flex-direction: row-reverse; - -webkit-flex-direction: row-reverse; - -ms-flex-direction: row-reverse; - flex-direction: row-reverse; - text-align: right; } - .wrapper.spotlight:nth-child(2n - 1) .image { - margin: 0 0 2em 3em; } - .wrapper.spotlight.style2 { - background-color: #45558d; } - .wrapper.spotlight.style2:before, .wrapper.spotlight.style2:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%2345558d%3B' /%3E%3C/svg%3E"); } - .wrapper.spotlight.style2:before { - box-shadow: inset 0 -1px 0 0 #45558d, 0 1px 0 0 #45558d; } - .wrapper.spotlight.style2:after { - box-shadow: inset 0 -1px 0 0 #45558d, 0 1px 0 0 #45558d; } - .wrapper.spotlight.style3 { - background-color: #3f4e85; } - .wrapper.spotlight.style3:before, .wrapper.spotlight.style3:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%233f4e85%3B' /%3E%3C/svg%3E"); } - .wrapper.spotlight.style3:before { - box-shadow: inset 0 -1px 0 0 #3f4e85, 0 1px 0 0 #3f4e85; } - .wrapper.spotlight.style3:after { - box-shadow: inset 0 -1px 0 0 #3f4e85, 0 1px 0 0 #3f4e85; } - .wrapper.spotlight.style4 { - background-color: #39477c; } - .wrapper.spotlight.style4:before, .wrapper.spotlight.style4:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%2339477c%3B' /%3E%3C/svg%3E"); } - .wrapper.spotlight.style4:before { - box-shadow: inset 0 -1px 0 0 #39477c, 0 1px 0 0 #39477c; } - .wrapper.spotlight.style4:after { - box-shadow: inset 0 -1px 0 0 #39477c, 0 1px 0 0 #39477c; } - .wrapper.spotlight.style5 { - background-color: #324072; } - .wrapper.spotlight.style5:before, .wrapper.spotlight.style5:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%23324072%3B' /%3E%3C/svg%3E"); } - .wrapper.spotlight.style5:before { - box-shadow: inset 0 -1px 0 0 #324072, 0 1px 0 0 #324072; } - .wrapper.spotlight.style5:after { - box-shadow: inset 0 -1px 0 0 #324072, 0 1px 0 0 #324072; } - .wrapper.spotlight.style6 { - background-color: #2d3a69; } - .wrapper.spotlight.style6:before, .wrapper.spotlight.style6:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%232d3a69%3B' /%3E%3C/svg%3E"); } - .wrapper.spotlight.style6:before { - box-shadow: inset 0 -1px 0 0 #2d3a69, 0 1px 0 0 #2d3a69; } - .wrapper.spotlight.style6:after { - box-shadow: inset 0 -1px 0 0 #2d3a69, 0 1px 0 0 #2d3a69; } - @media screen and (max-width: 980px) { - .wrapper { - margin: 4.75em 0; } - .wrapper:before, .wrapper:after { - height: 4.75em; } - .wrapper:before { - top: -4.75em; } - .wrapper:after { - bottom: -4.75em; - left: 0; } - .wrapper .inner { - padding: 3em 3em 1em 3em ; - width: 100%; } - .wrapper.spotlight .image { - margin: 0 2em 2em 0; - width: 32em; } - .wrapper.spotlight:nth-child(2n - 1) .image { - margin: 0 0 2em 2em; } } - @media screen and (max-width: 736px) { - .wrapper { - margin: 2.5em 0; } - .wrapper:before, .wrapper:after { - height: 2.5em; } - .wrapper:before { - top: -2.5em; } - .wrapper:after { - bottom: -2.5em; - left: 0; } - .wrapper .inner { - padding: 2em 2em 0.1em 2em ; } - .wrapper.spotlight .inner { - -moz-align-items: -moz-flex-start; - -webkit-align-items: -webkit-flex-start; - -ms-align-items: -ms-flex-start; - align-items: flex-start; } - .wrapper.spotlight .image { - width: 19em; - margin: 0 1.75em 2em 0; } - .wrapper.spotlight:nth-child(2n - 1) .image { - margin: 0 0 2em 1.75em; } } - @media screen and (max-width: 640px) { - .wrapper.spotlight .inner { - display: block; } - .wrapper.spotlight .image { - margin: 0 0 1em 0 !important; - max-width: 85%; - width: 12em; } } - @media screen and (max-width: 360px) { - .wrapper .inner { - padding: 2em 1.5em 0.1em 1.5em ; } } + +body.is-touch #banner { + background-attachment: scroll; } /* Footer */ -#footer .inner { - padding: 5em 0 3em 0 ; - display: -moz-flex; - display: -webkit-flex; - display: -ms-flex; - display: flex; - -moz-flex-direction: row; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -moz-flex-wrap: wrap; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - margin: 0 auto; - width: 55em; } - #footer .inner > * { - width: 100%; } - #footer .inner form { - margin: 0 3em 0 0; - width: calc(50% - 1.5em); } - #footer .inner .contact { - width: calc(50% - 1.5em); } - #footer .inner .copyright { - border-top: solid 2px rgba(255, 255, 255, 0.125); - list-style: none; - margin: 4em 0 2em 0; - padding: 2em 0 0 0; - width: 100%; } - #footer .inner .copyright li { - border-left: solid 2px rgba(255, 255, 255, 0.125); - color: rgba(255, 255, 255, 0.35); +#footer { + background: #272833; + padding: 6em 0; + text-align: center; } + @media (max-width: 1280px) { + #footer { + padding: 6em 0; } } + @media (max-width: 980px) { + #footer { + padding: 6em 0; } } + @media (max-width: 933px) { + #footer { + padding: 6em 3em; } } + @media (max-width: 480px) { + #footer { + padding: 6em 3em; } } + #footer .icons .icon.alt { + text-decoration: none; } + #footer .icons .icon.alt:before { display: inline-block; - font-size: 0.9em; - line-height: 1; - margin-left: 1em; - padding: 0; - padding-left: 1em; } - #footer .inner .copyright li:first-child { + font-style: normal; + font-variant: normal; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + text-transform: none !important; } + #footer .icons .icon.alt::before { + color: #272833 !important; + text-shadow: 1px 0 0 rgba(255, 255, 255, 0.5), -1px 0 0 rgba(255, 255, 255, 0.5), 0 1px 0 rgba(255, 255, 255, 0.5), 0 -1px 0 rgba(255, 255, 255, 0.5); } + #footer .copyright { + color: rgba(255, 255, 255, 0.5); + font-size: 0.8em; + line-height: 1em; + margin: 2em 0 0 0; + padding: 0; + text-align: center; } + @media (max-width: 480px) { + #footer .copyright { + line-height: inherit; } } + #footer .copyright li { + border-left: solid 1px rgba(255, 255, 255, 0.3); + display: inline-block; + list-style: none; + margin-left: 1.5em; + padding-left: 1.5em; } + @media (max-width: 480px) { + #footer .copyright li { + border-left: 0; + display: block; + margin: 0; + padding: 0; } } + #footer .copyright li:first-child { border-left: 0; margin-left: 0; padding-left: 0; } - #footer .inner .copyright li a { + #footer .copyright li a { color: inherit; } -@media screen and (max-width: 1280px) { - #footer { - background-color: #2e3141; - background-image: linear-gradient(to top, rgba(46, 49, 65, 0.8), rgba(46, 49, 65, 0.8)), url("../../images/bg.jpg"); - background-size: auto, cover; - background-position: center, center; - margin-top: -6.5em; - padding-top: 6.5em; } } +.project { + height: 600px; } -@media screen and (max-width: 980px) { - #footer { - margin-top: -4.75em; - padding-top: 4.75em; } - #footer .inner { - padding: 3em 3em 1em 3em ; - display: block; - width: 100%; } - #footer .inner form { - width: 100%; - margin: 0 0 4em 0; } - #footer .inner .contact { - width: 100%; - margin: 0 0 4em 0; } - #footer .inner .copyright { - margin: 4em 0 2em 0; } } +.teaser { + height: 300px; } -@media screen and (max-width: 736px) { - #footer { - margin-top: -2.5em; - padding-top: 2.5em; } - #footer .inner { - padding: 2em 2em 0.1em 2em ; } - #footer .inner form { - margin: 0 0 3em 0; } - #footer .inner .contact { - margin: 0 0 3em 0; } } +.project-creator { + border-bottom: none; } -@media screen and (max-width: 640px) { - #footer .inner .copyright li { - border-left: 0; - display: block; - margin: 1em 0 0 0; - padding-left: 0; } - #footer .inner .copyright li:first-child { - margin-top: 0; } } +/* Columns */ +.col-2 { + column-count: 2; + column-gap: 1vw; } + .col-2 > .button { + padding: 0; } -@media screen and (max-width: 360px) { - #footer .inner { - padding: 2em 1.5em 0.1em 1.5em ; } } +.col-3 { + column-count: 3; + column-gap: 1vw; } + .col-3 > .button { + padding: 0; } + +.col-4 { + column-count: 4; + column-gap: 1vw; } + .col-4 > .button { + padding: 0; } + +.col-5 { + column-count: 5; + column-gap: 1vw; } + .col-5 > .button { + padding: 0; } diff --git a/assets/css/main.min.css b/assets/css/main.min.css new file mode 100644 index 0000000..895ebc9 --- /dev/null +++ b/assets/css/main.min.css @@ -0,0 +1 @@ +@import url(../css/font-awesome.min.css); @import url(../fonts/roboto.css); @import url(https://toolbox-bodensee.de/css/spacestatus.css); #scroll-1{background-image:url(../images/home/abschnitt1.jpeg)}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:none}table{border-collapse:collapse;border-spacing:0}body{-webkit-text-size-adjust:none}*,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.container{margin-left:auto;margin-right:auto}.container.\31 25\25{width:100%;max-width:87.5em;min-width:70em}.container.\37 5\25{width:52.5em}.container.\35 0\25{width:35em}.container.\32 5\25{width:17.5em}.container{width:70em}@media screen and (max-width: 1680px){.container.\31 25\25 { width:100%;max-width:87.5em;min-width:70em}.container.\37 5\25{width:52.5em}.container.\35 0\25{width:35em}.container.\32 5\25{width:17.5em}.container{width:70em}} @media screen and (max-width: 1280px){.container.\31 25\25 { width:100%;max-width:112.5%;min-width:90%}.container.\37 5\25{width:67.5%}.container.\35 0\25{width:45%}.container.\32 5\25{width:22.5%}.container{width:90%}} @media screen and (max-width: 980px){.container.\31 25\25 { width:100%;max-width:125%;min-width:100%}.container.\37 5\25{width:75%}.container.\35 0\25{width:50%}.container.\32 5\25{width:25%}.container{width:100% !important}} @media screen and (max-width: 933px){.container.\31 25\25 { width:100%;max-width:125%;min-width:100%}.container.\37 5\25{width:75%}.container.\35 0\25{width:50%}.container.\32 5\25{width:25%}.container{width:100% !important}} @media screen and (max-width: 480px){.container.\31 25\25 { width:100%;max-width:125%;min-width:100%}.container.\37 5\25{width:75%}.container.\35 0\25{width:50%}.container.\32 5\25{width:25%}.container{width:100% !important}} .row{border-bottom:solid 1px transparent;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.row>*{float:left;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.row::after,.row::before{content:'';display:block;clear:both;height:0}.row.uniform>*>:first-child{margin-top:0}.row.uniform>*>:last-child{margin-bottom:0}.row.\30 \25>*{padding:0 0 0 0em}.row.\30 \25{margin:0 0 -1px 0em}.row.uniform.\30 \25>*{padding:0em 0 0 0em}.row.uniform.\30 \25{margin:0em 0 -1px 0em}.row>*{padding:0 0 0 2.5em}.row{margin:0 0 -1px -2.5em}.row.uniform>*{padding:2.5em 0 0 2.5em}.row.uniform{margin:-2.5em 0 -1px -2.5em}.row.\32 00\25>*{padding:0 0 0 5em}.row.\32 00\25{margin:0 0 -1px -5em}.row.uniform.\32 00\25>*{padding:5em 0 0 5em}.row.uniform.\32 00\25{margin:-5em 0 -1px -5em}.row.\31 50\25>*{padding:0 0 0 3.75em}.row.\31 50\25{margin:0 0 -1px -3.75em}.row.uniform.\31 50\25>*{padding:3.75em 0 0 3.75em}.row.uniform.\31 50\25{margin:-3.75em 0 -1px -3.75em}.row.\35 0\25>*{padding:0 0 0 1.25em}.row.\35 0\25{margin:0 0 -1px -1.25em}.row.uniform.\35 0\25>*{padding:1.25em 0 0 1.25em}.row.uniform.\35 0\25{margin:-1.25em 0 -1px -1.25em}.row.\32 5\25>*{padding:0 0 0 0.625em}.row.\32 5\25{margin:0 0 -1px -0.625em}.row.uniform.\32 5\25>*{padding:0.625em 0 0 0.625em}.row.uniform.\32 5\25{margin:-0.625em 0 -1px -0.625em}.\31 2u,.\31 2u\24{width:100%;clear:none;margin-left:0}.\31 1u,.\31 1u\24{width:91.6666666667%;clear:none;margin-left:0}.\31 0u,.\31 0u\24{width:83.3333333333%;clear:none;margin-left:0}.\39 u,.\39 u\24{width:75%;clear:none;margin-left:0}.\38 u,.\38 u\24{width:66.6666666667%;clear:none;margin-left:0}.\37 u,.\37 u\24{width:58.3333333333%;clear:none;margin-left:0}.\36 u,.\36 u\24{width:50%;clear:none;margin-left:0}.\35 u,.\35 u\24{width:41.6666666667%;clear:none;margin-left:0}.\34 u,.\34 u\24{width:33.3333333333%;clear:none;margin-left:0}.\33 u,.\33 u\24{width:25%;clear:none;margin-left:0}.\32 u,.\32 u\24{width:16.6666666667%;clear:none;margin-left:0}.\31 u,.\31 u\24{width:8.3333333333%;clear:none;margin-left:0}.\31 2u\24+*,.\31 1u\24+*,.\31 0u\24+*,.\39 u\24+*,.\38 u\24+*,.\37 u\24+*,.\36 u\24+*,.\35 u\24+*,.\34 u\24+*,.\33 u\24+*,.\32 u\24+*,.\31 u\24+*{clear:left}.\-11u{margin-left:91.6666666667%}.\-10u{margin-left:83.3333333333%}.\-9u{margin-left:75%}.\-8u{margin-left:66.6666666667%}.\-7u{margin-left:58.3333333333%}.\-6u{margin-left:50%}.\-5u{margin-left:41.6666666667%}.\-4u{margin-left:33.3333333333%}.\-3u{margin-left:25%}.\-2u{margin-left:16.6666666667%}.\-1u{margin-left:8.3333333333%}@media screen and (max-width: 1680px){.row > * { padding:0 0 0 2.5em}.row{margin:0 0 -1px -2.5em}.row.uniform>*{padding:2.5em 0 0 2.5em}.row.uniform{margin:-2.5em 0 -1px -2.5em}.row.\32 00\25>*{padding:0 0 0 5em}.row.\32 00\25{margin:0 0 -1px -5em}.row.uniform.\32 00\25>*{padding:5em 0 0 5em}.row.uniform.\32 00\25{margin:-5em 0 -1px -5em}.row.\31 50\25>*{padding:0 0 0 3.75em}.row.\31 50\25{margin:0 0 -1px -3.75em}.row.uniform.\31 50\25>*{padding:3.75em 0 0 3.75em}.row.uniform.\31 50\25{margin:-3.75em 0 -1px -3.75em}.row.\35 0\25>*{padding:0 0 0 1.25em}.row.\35 0\25{margin:0 0 -1px -1.25em}.row.uniform.\35 0\25>*{padding:1.25em 0 0 1.25em}.row.uniform.\35 0\25{margin:-1.25em 0 -1px -1.25em}.row.\32 5\25>*{padding:0 0 0 0.625em}.row.\32 5\25{margin:0 0 -1px -0.625em}.row.uniform.\32 5\25>*{padding:0.625em 0 0 0.625em}.row.uniform.\32 5\25{margin:-0.625em 0 -1px -0.625em}.\31 2u\28xlarge\29,.\31 2u\24\28xlarge\29{width:100%;clear:none;margin-left:0}.\31 1u\28xlarge\29,.\31 1u\24\28xlarge\29{width:91.6666666667%;clear:none;margin-left:0}.\31 0u\28xlarge\29,.\31 0u\24\28xlarge\29{width:83.3333333333%;clear:none;margin-left:0}.\39 u\28xlarge\29,.\39 u\24\28xlarge\29{width:75%;clear:none;margin-left:0}.\38 u\28xlarge\29,.\38 u\24\28xlarge\29{width:66.6666666667%;clear:none;margin-left:0}.\37 u\28xlarge\29,.\37 u\24\28xlarge\29{width:58.3333333333%;clear:none;margin-left:0}.\36 u\28xlarge\29,.\36 u\24\28xlarge\29{width:50%;clear:none;margin-left:0}.\35 u\28xlarge\29,.\35 u\24\28xlarge\29{width:41.6666666667%;clear:none;margin-left:0}.\34 u\28xlarge\29,.\34 u\24\28xlarge\29{width:33.3333333333%;clear:none;margin-left:0}.\33 u\28xlarge\29,.\33 u\24\28xlarge\29{width:25%;clear:none;margin-left:0}.\32 u\28xlarge\29,.\32 u\24\28xlarge\29{width:16.6666666667%;clear:none;margin-left:0}.\31 u\28xlarge\29,.\31 u\24\28xlarge\29{width:8.3333333333%;clear:none;margin-left:0}.\31 2u\24\28xlarge\29+*,.\31 1u\24\28xlarge\29+*,.\31 0u\24\28xlarge\29+*,.\39 u\24\28xlarge\29+*,.\38 u\24\28xlarge\29+*,.\37 u\24\28xlarge\29+*,.\36 u\24\28xlarge\29+*,.\35 u\24\28xlarge\29+*,.\34 u\24\28xlarge\29+*,.\33 u\24\28xlarge\29+*,.\32 u\24\28xlarge\29+*,.\31 u\24\28xlarge\29+*{clear:left}.\-11u\28xlarge\29{margin-left:91.6666666667%}.\-10u\28xlarge\29{margin-left:83.3333333333%}.\-9u\28xlarge\29{margin-left:75%}.\-8u\28xlarge\29{margin-left:66.6666666667%}.\-7u\28xlarge\29{margin-left:58.3333333333%}.\-6u\28xlarge\29{margin-left:50%}.\-5u\28xlarge\29{margin-left:41.6666666667%}.\-4u\28xlarge\29{margin-left:33.3333333333%}.\-3u\28xlarge\29{margin-left:25%}.\-2u\28xlarge\29{margin-left:16.6666666667%}.\-1u\28xlarge\29{margin-left:8.3333333333%}} @media screen and (max-width: 1280px){.row > * { padding:0 0 0 2.5em}.row{margin:0 0 -1px -2.5em}.row.uniform>*{padding:2.5em 0 0 2.5em}.row.uniform{margin:-2.5em 0 -1px -2.5em}.row.\32 00\25>*{padding:0 0 0 5em}.row.\32 00\25{margin:0 0 -1px -5em}.row.uniform.\32 00\25>*{padding:5em 0 0 5em}.row.uniform.\32 00\25{margin:-5em 0 -1px -5em}.row.\31 50\25>*{padding:0 0 0 3.75em}.row.\31 50\25{margin:0 0 -1px -3.75em}.row.uniform.\31 50\25>*{padding:3.75em 0 0 3.75em}.row.uniform.\31 50\25{margin:-3.75em 0 -1px -3.75em}.row.\35 0\25>*{padding:0 0 0 1.25em}.row.\35 0\25{margin:0 0 -1px -1.25em}.row.uniform.\35 0\25>*{padding:1.25em 0 0 1.25em}.row.uniform.\35 0\25{margin:-1.25em 0 -1px -1.25em}.row.\32 5\25>*{padding:0 0 0 0.625em}.row.\32 5\25{margin:0 0 -1px -0.625em}.row.uniform.\32 5\25>*{padding:0.625em 0 0 0.625em}.row.uniform.\32 5\25{margin:-0.625em 0 -1px -0.625em}.\31 2u\28large\29,.\31 2u\24\28large\29{width:100%;clear:none;margin-left:0}.\31 1u\28large\29,.\31 1u\24\28large\29{width:91.6666666667%;clear:none;margin-left:0}.\31 0u\28large\29,.\31 0u\24\28large\29{width:83.3333333333%;clear:none;margin-left:0}.\39 u\28large\29,.\39 u\24\28large\29{width:75%;clear:none;margin-left:0}.\38 u\28large\29,.\38 u\24\28large\29{width:66.6666666667%;clear:none;margin-left:0}.\37 u\28large\29,.\37 u\24\28large\29{width:58.3333333333%;clear:none;margin-left:0}.\36 u\28large\29,.\36 u\24\28large\29{width:50%;clear:none;margin-left:0}.\35 u\28large\29,.\35 u\24\28large\29{width:41.6666666667%;clear:none;margin-left:0}.\34 u\28large\29,.\34 u\24\28large\29{width:33.3333333333%;clear:none;margin-left:0}.\33 u\28large\29,.\33 u\24\28large\29{width:25%;clear:none;margin-left:0}.\32 u\28large\29,.\32 u\24\28large\29{width:16.6666666667%;clear:none;margin-left:0}.\31 u\28large\29,.\31 u\24\28large\29{width:8.3333333333%;clear:none;margin-left:0}.\31 2u\24\28large\29+*,.\31 1u\24\28large\29+*,.\31 0u\24\28large\29+*,.\39 u\24\28large\29+*,.\38 u\24\28large\29+*,.\37 u\24\28large\29+*,.\36 u\24\28large\29+*,.\35 u\24\28large\29+*,.\34 u\24\28large\29+*,.\33 u\24\28large\29+*,.\32 u\24\28large\29+*,.\31 u\24\28large\29+*{clear:left}.\-11u\28large\29{margin-left:91.6666666667%}.\-10u\28large\29{margin-left:83.3333333333%}.\-9u\28large\29{margin-left:75%}.\-8u\28large\29{margin-left:66.6666666667%}.\-7u\28large\29{margin-left:58.3333333333%}.\-6u\28large\29{margin-left:50%}.\-5u\28large\29{margin-left:41.6666666667%}.\-4u\28large\29{margin-left:33.3333333333%}.\-3u\28large\29{margin-left:25%}.\-2u\28large\29{margin-left:16.6666666667%}.\-1u\28large\29{margin-left:8.3333333333%}} @media screen and (max-width: 980px){.row > * { padding:0 0 0 2.5em}.row{margin:0 0 -1px -2.5em}.row.uniform>*{padding:2.5em 0 0 2.5em}.row.uniform{margin:-2.5em 0 -1px -2.5em}.row.\32 00\25>*{padding:0 0 0 5em}.row.\32 00\25{margin:0 0 -1px -5em}.row.uniform.\32 00\25>*{padding:5em 0 0 5em}.row.uniform.\32 00\25{margin:-5em 0 -1px -5em}.row.\31 50\25>*{padding:0 0 0 3.75em}.row.\31 50\25{margin:0 0 -1px -3.75em}.row.uniform.\31 50\25>*{padding:3.75em 0 0 3.75em}.row.uniform.\31 50\25{margin:-3.75em 0 -1px -3.75em}.row.\35 0\25>*{padding:0 0 0 1.25em}.row.\35 0\25{margin:0 0 -1px -1.25em}.row.uniform.\35 0\25>*{padding:1.25em 0 0 1.25em}.row.uniform.\35 0\25{margin:-1.25em 0 -1px -1.25em}.row.\32 5\25>*{padding:0 0 0 0.625em}.row.\32 5\25{margin:0 0 -1px -0.625em}.row.uniform.\32 5\25>*{padding:0.625em 0 0 0.625em}.row.uniform.\32 5\25{margin:-0.625em 0 -1px -0.625em}.\31 2u\28medium\29,.\31 2u\24\28medium\29{width:100%;clear:none;margin-left:0}.\31 1u\28medium\29,.\31 1u\24\28medium\29{width:91.6666666667%;clear:none;margin-left:0}.\31 0u\28medium\29,.\31 0u\24\28medium\29{width:83.3333333333%;clear:none;margin-left:0}.\39 u\28medium\29,.\39 u\24\28medium\29{width:75%;clear:none;margin-left:0}.\38 u\28medium\29,.\38 u\24\28medium\29{width:66.6666666667%;clear:none;margin-left:0}.\37 u\28medium\29,.\37 u\24\28medium\29{width:58.3333333333%;clear:none;margin-left:0}.\36 u\28medium\29,.\36 u\24\28medium\29{width:50%;clear:none;margin-left:0}.\35 u\28medium\29,.\35 u\24\28medium\29{width:41.6666666667%;clear:none;margin-left:0}.\34 u\28medium\29,.\34 u\24\28medium\29{width:33.3333333333%;clear:none;margin-left:0}.\33 u\28medium\29,.\33 u\24\28medium\29{width:25%;clear:none;margin-left:0}.\32 u\28medium\29,.\32 u\24\28medium\29{width:16.6666666667%;clear:none;margin-left:0}.\31 u\28medium\29,.\31 u\24\28medium\29{width:8.3333333333%;clear:none;margin-left:0}.\31 2u\24\28medium\29+*,.\31 1u\24\28medium\29+*,.\31 0u\24\28medium\29+*,.\39 u\24\28medium\29+*,.\38 u\24\28medium\29+*,.\37 u\24\28medium\29+*,.\36 u\24\28medium\29+*,.\35 u\24\28medium\29+*,.\34 u\24\28medium\29+*,.\33 u\24\28medium\29+*,.\32 u\24\28medium\29+*,.\31 u\24\28medium\29+*{clear:left}.\-11u\28medium\29{margin-left:91.6666666667%}.\-10u\28medium\29{margin-left:83.3333333333%}.\-9u\28medium\29{margin-left:75%}.\-8u\28medium\29{margin-left:66.6666666667%}.\-7u\28medium\29{margin-left:58.3333333333%}.\-6u\28medium\29{margin-left:50%}.\-5u\28medium\29{margin-left:41.6666666667%}.\-4u\28medium\29{margin-left:33.3333333333%}.\-3u\28medium\29{margin-left:25%}.\-2u\28medium\29{margin-left:16.6666666667%}.\-1u\28medium\29{margin-left:8.3333333333%}} @media screen and (max-width: 933px){.row > * { padding:0 0 0 2.5em}.row{margin:0 0 -1px -2.5em}.row.uniform>*{padding:2.5em 0 0 2.5em}.row.uniform{margin:-2.5em 0 -1px -2.5em}.row.\32 00\25>*{padding:0 0 0 5em}.row.\32 00\25{margin:0 0 -1px -5em}.row.uniform.\32 00\25>*{padding:5em 0 0 5em}.row.uniform.\32 00\25{margin:-5em 0 -1px -5em}.row.\31 50\25>*{padding:0 0 0 3.75em}.row.\31 50\25{margin:0 0 -1px -3.75em}.row.uniform.\31 50\25>*{padding:3.75em 0 0 3.75em}.row.uniform.\31 50\25{margin:-3.75em 0 -1px -3.75em}.row.\35 0\25>*{padding:0 0 0 1.25em}.row.\35 0\25{margin:0 0 -1px -1.25em}.row.uniform.\35 0\25>*{padding:1.25em 0 0 1.25em}.row.uniform.\35 0\25{margin:-1.25em 0 -1px -1.25em}.row.\32 5\25>*{padding:0 0 0 0.625em}.row.\32 5\25{margin:0 0 -1px -0.625em}.row.uniform.\32 5\25>*{padding:0.625em 0 0 0.625em}.row.uniform.\32 5\25{margin:-0.625em 0 -1px -0.625em}.\31 2u\28small\29,.\31 2u\24\28small\29{width:100%;clear:none;margin-left:0}.\31 1u\28small\29,.\31 1u\24\28small\29{width:91.6666666667%;clear:none;margin-left:0}.\31 0u\28small\29,.\31 0u\24\28small\29{width:83.3333333333%;clear:none;margin-left:0}.\39 u\28small\29,.\39 u\24\28small\29{width:75%;clear:none;margin-left:0}.\38 u\28small\29,.\38 u\24\28small\29{width:66.6666666667%;clear:none;margin-left:0}.\37 u\28small\29,.\37 u\24\28small\29{width:58.3333333333%;clear:none;margin-left:0}.\36 u\28small\29,.\36 u\24\28small\29{width:50%;clear:none;margin-left:0}.\35 u\28small\29,.\35 u\24\28small\29{width:41.6666666667%;clear:none;margin-left:0}.\34 u\28small\29,.\34 u\24\28small\29{width:33.3333333333%;clear:none;margin-left:0}.\33 u\28small\29,.\33 u\24\28small\29{width:25%;clear:none;margin-left:0}.\32 u\28small\29,.\32 u\24\28small\29{width:16.6666666667%;clear:none;margin-left:0}.\31 u\28small\29,.\31 u\24\28small\29{width:8.3333333333%;clear:none;margin-left:0}.\31 2u\24\28small\29+*,.\31 1u\24\28small\29+*,.\31 0u\24\28small\29+*,.\39 u\24\28small\29+*,.\38 u\24\28small\29+*,.\37 u\24\28small\29+*,.\36 u\24\28small\29+*,.\35 u\24\28small\29+*,.\34 u\24\28small\29+*,.\33 u\24\28small\29+*,.\32 u\24\28small\29+*,.\31 u\24\28small\29+*{clear:left}.\-11u\28small\29{margin-left:91.6666666667%}.\-10u\28small\29{margin-left:83.3333333333%}.\-9u\28small\29{margin-left:75%}.\-8u\28small\29{margin-left:66.6666666667%}.\-7u\28small\29{margin-left:58.3333333333%}.\-6u\28small\29{margin-left:50%}.\-5u\28small\29{margin-left:41.6666666667%}.\-4u\28small\29{margin-left:33.3333333333%}.\-3u\28small\29{margin-left:25%}.\-2u\28small\29{margin-left:16.6666666667%}.\-1u\28small\29{margin-left:8.3333333333%}} @media screen and (max-width: 480px){.row > * { padding:0 0 0 2.5em}.row{margin:0 0 -1px -2.5em}.row.uniform>*{padding:2.5em 0 0 2.5em}.row.uniform{margin:-2.5em 0 -1px -2.5em}.row.\32 00\25>*{padding:0 0 0 5em}.row.\32 00\25{margin:0 0 -1px -5em}.row.uniform.\32 00\25>*{padding:5em 0 0 5em}.row.uniform.\32 00\25{margin:-5em 0 -1px -5em}.row.\31 50\25>*{padding:0 0 0 3.75em}.row.\31 50\25{margin:0 0 -1px -3.75em}.row.uniform.\31 50\25>*{padding:3.75em 0 0 3.75em}.row.uniform.\31 50\25{margin:-3.75em 0 -1px -3.75em}.row.\35 0\25>*{padding:0 0 0 1.25em}.row.\35 0\25{margin:0 0 -1px -1.25em}.row.uniform.\35 0\25>*{padding:1.25em 0 0 1.25em}.row.uniform.\35 0\25{margin:-1.25em 0 -1px -1.25em}.row.\32 5\25>*{padding:0 0 0 0.625em}.row.\32 5\25{margin:0 0 -1px -0.625em}.row.uniform.\32 5\25>*{padding:0.625em 0 0 0.625em}.row.uniform.\32 5\25{margin:-0.625em 0 -1px -0.625em}.\31 2u\28xsmall\29,.\31 2u\24\28xsmall\29{width:100%;clear:none;margin-left:0}.\31 1u\28xsmall\29,.\31 1u\24\28xsmall\29{width:91.6666666667%;clear:none;margin-left:0}.\31 0u\28xsmall\29,.\31 0u\24\28xsmall\29{width:83.3333333333%;clear:none;margin-left:0}.\39 u\28xsmall\29,.\39 u\24\28xsmall\29{width:75%;clear:none;margin-left:0}.\38 u\28xsmall\29,.\38 u\24\28xsmall\29{width:66.6666666667%;clear:none;margin-left:0}.\37 u\28xsmall\29,.\37 u\24\28xsmall\29{width:58.3333333333%;clear:none;margin-left:0}.\36 u\28xsmall\29,.\36 u\24\28xsmall\29{width:50%;clear:none;margin-left:0}.\35 u\28xsmall\29,.\35 u\24\28xsmall\29{width:41.6666666667%;clear:none;margin-left:0}.\34 u\28xsmall\29,.\34 u\24\28xsmall\29{width:33.3333333333%;clear:none;margin-left:0}.\33 u\28xsmall\29,.\33 u\24\28xsmall\29{width:25%;clear:none;margin-left:0}.\32 u\28xsmall\29,.\32 u\24\28xsmall\29{width:16.6666666667%;clear:none;margin-left:0}.\31 u\28xsmall\29,.\31 u\24\28xsmall\29{width:8.3333333333%;clear:none;margin-left:0}.\31 2u\24\28xsmall\29+*,.\31 1u\24\28xsmall\29+*,.\31 0u\24\28xsmall\29+*,.\39 u\24\28xsmall\29+*,.\38 u\24\28xsmall\29+*,.\37 u\24\28xsmall\29+*,.\36 u\24\28xsmall\29+*,.\35 u\24\28xsmall\29+*,.\34 u\24\28xsmall\29+*,.\33 u\24\28xsmall\29+*,.\32 u\24\28xsmall\29+*,.\31 u\24\28xsmall\29+*{clear:left}.\-11u\28xsmall\29{margin-left:91.6666666667%}.\-10u\28xsmall\29{margin-left:83.3333333333%}.\-9u\28xsmall\29{margin-left:75%}.\-8u\28xsmall\29{margin-left:66.6666666667%}.\-7u\28xsmall\29{margin-left:58.3333333333%}.\-6u\28xsmall\29{margin-left:50%}.\-5u\28xsmall\29{margin-left:41.6666666667%}.\-4u\28xsmall\29{margin-left:33.3333333333%}.\-3u\28xsmall\29{margin-left:25%}.\-2u\28xsmall\29{margin-left:16.6666666667%}.\-1u\28xsmall\29{margin-left:8.3333333333%}} html,body{background:#1c1d26}@media (max-width: 933px){html, body { overflow-x:hidden}} @media (max-width: 480px){html, body { min-width:320px}} body.is-loading*,body.is-loading*::before,body.is-loading*::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}@media (max-width: 933px){body.navpanel-visible #page-wrapper { -moz-transform:translateX(275px);-webkit-transform:translateX(275px);-ms-transform:translateX(275px);transform:translateX(275px)}body.navPanel-visible #titleBar{-moz-transform:translateX(275px);-webkit-transform:translateX(275px);-ms-transform:translateX(275px);transform:translateX(275px)}body.navPanel-visible #navPanel{-moz-transform:translateX(0);-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}} body,input,select,textarea{color:rgba(255, 255, 255, 0.75);font-family:"Roboto", Helvetica, sans-serif;font-size:15pt;font-weight:300;line-height:1.75em}@media (max-width: 1680px){body, input, select, textarea { font-size:13pt}} @media (max-width: 1280px){body, input, select, textarea { font-size:12pt}} @media (max-width: 980px){body, input, select, textarea { font-size:12pt}} @media (max-width: 933px){body, input, select, textarea { font-size:12pt}} @media (max-width: 480px){body, input, select, textarea { font-size:12pt}} a{-moz-transition:border-color 0.2s ease-in-out, color 0.2s ease-in-out;-webkit-transition:border-color 0.2s ease-in-out, color 0.2s ease-in-out;-ms-transition:border-color 0.2s ease-in-out, color 0.2s ease-in-out;transition:border-color 0.2s ease-in-out, color 0.2s ease-in-out;color:rgba(200, 200, 255, 0.75);text-decoration:none}a:hover{color:#E64F2D !important;border-bottom-color:transparent}strong,b{color:#fff;font-weight:400}em,i{font-style:italic}p{margin:0 0 2em 0}h1,h2,h3,h4,h5,h6{color:#fff;font-weight:400;line-height:1em;margin:0 0 1em 0}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit;border:0}h2{font-size:2em;line-height:1.5em;letter-spacing:-0.025em}@media (max-width: 933px){h2 { font-size:1.5em}} h3{font-size:1.35em;line-height:1.5em}@media (max-width: 933px){h3 { font-size:1.2em}} h4{font-size:1.1em;line-height:1.5em}@media (max-width: 933px){h4 { font-size:1em}} h5{font-size:.9em;line-height:1.5em}h6{font-size:.7em;line-height:1.5em}sub{font-size:.8em;position:relative;top:.5em}sup{font-size:.8em;position:relative;top:-0.5em}hr{border:0;border-bottom:solid 1px rgba(255, 255, 255, 0.3);margin:3em 0}hr.major{margin:4em 0}blockquote{border-left:solid 4px rgba(255, 255, 255, 0.3);font-style:italic;margin:0 0 2em 0;padding:0.5em 0 0.5em 2em}code{background:rgba(255, 255, 255, 0.075);border-radius:4px;font-family:"Courier New", monospace;font-size:.9em;margin:0 0.25em;padding:0.25em 0.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.75em;padding:1em 1.5em;overflow-x:auto}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}@-moz-keyframes spinner-show{0% { opacity:0}100%{opacity:1}} @-webkit-keyframes spinner-show{0% { opacity:0}100%{opacity:1}} @-ms-keyframes spinner-show{0% { opacity:0}100%{opacity:1}} @keyframes spinner-show{0% { opacity:0}100%{opacity:1}} @-moz-keyframes spinner-hide{0% { color:rgba(255, 255, 255, 0.15);z-index:100001;-moz-transform:scale(1) rotate(0deg);-webkit-transform:scale(1) rotate(0deg);-ms-transform:scale(1) rotate(0deg);transform:scale(1) rotate(0deg)}99%{color:#1c1d26;z-index:100001;-moz-transform:scale(0.5) rotate(360deg);-webkit-transform:scale(0.5) rotate(360deg);-ms-transform:scale(0.5) rotate(360deg);transform:scale(0.5) rotate(360deg)}100%{color:#1c1d26;z-index:-1;-moz-transform:scale(0.5) rotate(360deg);-webkit-transform:scale(0.5) rotate(360deg);-ms-transform:scale(0.5) rotate(360deg);transform:scale(0.5) rotate(360deg)}} @-webkit-keyframes spinner-hide{0% { color:rgba(255, 255, 255, 0.15);z-index:100001;-moz-transform:scale(1) rotate(0deg);-webkit-transform:scale(1) rotate(0deg);-ms-transform:scale(1) rotate(0deg);transform:scale(1) rotate(0deg)}99%{color:#1c1d26;z-index:100001;-moz-transform:scale(0.5) rotate(360deg);-webkit-transform:scale(0.5) rotate(360deg);-ms-transform:scale(0.5) rotate(360deg);transform:scale(0.5) rotate(360deg)}100%{color:#1c1d26;z-index:-1;-moz-transform:scale(0.5) rotate(360deg);-webkit-transform:scale(0.5) rotate(360deg);-ms-transform:scale(0.5) rotate(360deg);transform:scale(0.5) rotate(360deg)}} @-ms-keyframes spinner-hide{0% { color:rgba(255, 255, 255, 0.15);z-index:100001;-moz-transform:scale(1) rotate(0deg);-webkit-transform:scale(1) rotate(0deg);-ms-transform:scale(1) rotate(0deg);transform:scale(1) rotate(0deg)}99%{color:#1c1d26;z-index:100001;-moz-transform:scale(0.5) rotate(360deg);-webkit-transform:scale(0.5) rotate(360deg);-ms-transform:scale(0.5) rotate(360deg);transform:scale(0.5) rotate(360deg)}100%{color:#1c1d26;z-index:-1;-moz-transform:scale(0.5) rotate(360deg);-webkit-transform:scale(0.5) rotate(360deg);-ms-transform:scale(0.5) rotate(360deg);transform:scale(0.5) rotate(360deg)}} @keyframes spinner-hide{0% { color:rgba(255, 255, 255, 0.15);z-index:100001;-moz-transform:scale(1) rotate(0deg);-webkit-transform:scale(1) rotate(0deg);-ms-transform:scale(1) rotate(0deg);transform:scale(1) rotate(0deg)}99%{color:#1c1d26;z-index:100001;-moz-transform:scale(0.5) rotate(360deg);-webkit-transform:scale(0.5) rotate(360deg);-ms-transform:scale(0.5) rotate(360deg);transform:scale(0.5) rotate(360deg)}100%{color:#1c1d26;z-index:-1;-moz-transform:scale(0.5) rotate(360deg);-webkit-transform:scale(0.5) rotate(360deg);-ms-transform:scale(0.5) rotate(360deg);transform:scale(0.5) rotate(360deg)}} @-moz-keyframes spinner-rotate{0% { -moz-transform:scale(1) rotate(0deg);-webkit-transform:scale(1) rotate(0deg);-ms-transform:scale(1) rotate(0deg);transform:scale(1) rotate(0deg)}100%{-moz-transform:scale(1) rotate(360deg);-webkit-transform:scale(1) rotate(360deg);-ms-transform:scale(1) rotate(360deg);transform:scale(1) rotate(360deg)}} @-webkit-keyframes spinner-rotate{0% { -moz-transform:scale(1) rotate(0deg);-webkit-transform:scale(1) rotate(0deg);-ms-transform:scale(1) rotate(0deg);transform:scale(1) rotate(0deg)}100%{-moz-transform:scale(1) rotate(360deg);-webkit-transform:scale(1) rotate(360deg);-ms-transform:scale(1) rotate(360deg);transform:scale(1) rotate(360deg)}} @-ms-keyframes spinner-rotate{0% { -moz-transform:scale(1) rotate(0deg);-webkit-transform:scale(1) rotate(0deg);-ms-transform:scale(1) rotate(0deg);transform:scale(1) rotate(0deg)}100%{-moz-transform:scale(1) rotate(360deg);-webkit-transform:scale(1) rotate(360deg);-ms-transform:scale(1) rotate(360deg);transform:scale(1) rotate(360deg)}} @keyframes spinner-rotate{0% { -moz-transform:scale(1) rotate(0deg);-webkit-transform:scale(1) rotate(0deg);-ms-transform:scale(1) rotate(0deg);transform:scale(1) rotate(0deg)}100%{-moz-transform:scale(1) rotate(360deg);-webkit-transform:scale(1) rotate(360deg);-ms-transform:scale(1) rotate(360deg);transform:scale(1) rotate(360deg)}} @-moz-keyframes overlay-hide{0% { opacity:1;z-index:100000}15%{opacity:1;z-index:100000}99%{opacity:0;z-index:100000}100%{opacity:0;z-index:-1}} @-webkit-keyframes overlay-hide{0% { opacity:1;z-index:100000}15%{opacity:1;z-index:100000}99%{opacity:0;z-index:100000}100%{opacity:0;z-index:-1}} @-ms-keyframes overlay-hide{0% { opacity:1;z-index:100000}15%{opacity:1;z-index:100000}99%{opacity:0;z-index:100000}100%{opacity:0;z-index:-1}} @keyframes overlay-hide{0% { opacity:1;z-index:100000}15%{opacity:1;z-index:100000}99%{opacity:0;z-index:100000}100%{opacity:0;z-index:-1}} body.landing{text-decoration:none}body.landing:before{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;-webkit-font-smoothing:antialiased;text-transform:none !important}body.landing::before{-moz-animation:spinner-show 1.5s 1 0.25s ease forwards, spinner-hide 0.25s ease-in-out forwards !important;-webkit-animation:spinner-show 1.5s 1 0.25s ease forwards, spinner-hide 0.25s ease-in-out forwards !important;-ms-animation:spinner-show 1.5s 1 0.25s ease forwards, spinner-hide 0.25s ease-in-out forwards !important;animation:spinner-show 1.5s 1 0.25s ease forwards, spinner-hide 0.25s ease-in-out forwards !important;-moz-transform-origin:50% 50%;-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;color:rgba(255, 255, 255, 0.15);content:'\f1ce';cursor:default;display:block;font-family:"Font Awesome 5 Free";font-size:2em;font-weight:900;height:2em;left:50%;line-height:2em;margin:-1em 0 0 -1em;opacity:0;position:fixed;text-align:center;top:50%;width:2em;z-index:-1}body.landing::after{-moz-animation:overlay-hide 0.5s ease-in forwards !important;-webkit-animation:overlay-hide 0.5s ease-in forwards !important;-ms-animation:overlay-hide 0.5s ease-in forwards !important;animation:overlay-hide 0.5s ease-in forwards !important;background:#1c1d26;content:'';display:block;height:100%;left:0;opacity:0;position:fixed;top:0;width:100%;z-index:-1}body.landing.is-loading::before{-moz-animation:spinner-show 1.5s 1 0.25s ease forwards, spinner-rotate 0.75s infinite linear !important;-webkit-animation:spinner-show 1.5s 1 0.25s ease forwards, spinner-rotate 0.75s infinite linear !important;-ms-animation:spinner-show 1.5s 1 0.25s ease forwards, spinner-rotate 0.75s infinite linear !important;animation:spinner-show 1.5s 1 0.25s ease forwards, spinner-rotate 0.75s infinite linear !important;z-index:100001}body.landing.is-loading::after{-moz-animation:none !important;-webkit-animation:none !important;-ms-animation:none !important;animation:none !important;opacity:1;z-index:100000}@media (-webkit-min-device-pixel-ratio: 2){body.landing::before { line-height: 2.025em}} section.special,article.special{text-align:center}header p{color:#fff;position:relative;margin:0 0 1.5em 0}@media (max-width: 933px){header p br { display:none}} header h2+p{font-size:1.25em;margin-top:-1em;line-height:1.75em}@media (max-width: 933px){header h2 + p { font-size:1em}} header h3+p{font-size:1.1em;margin-top:-0.8em;line-height:1.75em}@media (max-width: 933px){header h3 + p { font-size:1em}} header h4+p,header h5+p,header h6+p{font-size:.9em;margin-top:-0.6em;line-height:1.5em}@media (max-width: 933px){header h4 + p, header h5 + p, header h6 + p { font-size:.9em}} header.major{margin:0 0 4em 0;position:relative;text-align:center}@media (max-width: 933px){header.major { margin:0 0 2em 0}} header.major::after{background:#E64F2D;content:'';display:inline-block;height:.2em;max-width:20em;width:75%}footer.major{margin:4em 0 0 0}form{margin:0 0 2em 0}label{color:#fff;display:block;font-size:.9em;font-weight:400;margin:0 0 1em 0}input[type="text"],input[type="password"],input[type="email"],select,textarea{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;-moz-transition:border-color 0.2s ease-in-out;-webkit-transition:border-color 0.2s ease-in-out;-ms-transition:border-color 0.2s ease-in-out;transition:border-color 0.2s ease-in-out;background:transparent;border-radius:4px;border:solid 1px rgba(255, 255, 255, 0.3);color:inherit;display:block;outline:0;padding:0 1em;text-decoration:none;width:100%}input[type="text"]:invalid,input[type="password"]:invalid,input[type="email"]:invalid,select:invalid,textarea:invalid{box-shadow:none}input[type="text"]:focus,input[type="password"]:focus,input[type="email"]:focus,select:focus,textarea:focus{border-color:#E64F2D}.select-wrapper{text-decoration:none;display:block;position:relative}.select-wrapper:before{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;-webkit-font-smoothing:antialiased;text-transform:none !important}.select-wrapper::before{color:rgba(255, 255, 255, 0.3);content:'\f078';display:block;height:2.4em;line-height:2.4em;pointer-events:none;position:absolute;right:0;text-align:center;top:0;width:2.4em}.select-wrapper select::-ms-expand{display:none}input[type="text"],input[type="password"],input[type="email"],select{height:2.4em}textarea{padding:0.75em 1em}select option{background-color:#1c1d26;color:#fff}select:focus::-ms-value{background:transparent}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:rgba(255, 255, 255, 0.75);cursor:pointer;display:inline-block;font-size:1em;font-weight:300;padding-left:2.19em;padding-right:.75em;position:relative}input[type="checkbox"]+label:before,input[type="radio"]+label:before{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;-webkit-font-smoothing:antialiased;text-transform:none !important}input[type="checkbox"]+label::before,input[type="radio"]+label::before{border-radius:4px;border:solid 1px rgba(255, 255, 255, 0.3);content:'';display:inline-block;height:1.44em;left:0;line-height:1.38em;position:absolute;text-align:center;top:0;width:1.44em}input[type="checkbox"]:checked+label::before,input[type="radio"]:checked+label::before{background:rgba(255, 255, 255, 0.25);color:#fff;content:'\f00c'}input[type="checkbox"]:focus+label::before,input[type="radio"]:focus+label::before{border-color:#E64F2D}input[type="checkbox"]+label::before{border-radius:4px}input[type="radio"]+label::before{border-radius:100%}::-webkit-input-placeholder{color:rgba(255, 255, 255, 0.5) !important;opacity:1}:-moz-placeholder{color:rgba(255, 255, 255, 0.5) !important;opacity:1}::-moz-placeholder{color:rgba(255, 255, 255, 0.5) !important;opacity:1}:-ms-input-placeholder{color:rgba(255, 255, 255, 0.5) !important;opacity:1}.formerize-placeholder{color:rgba(255, 255, 255, 0.5) !important;opacity:1}.box{border-radius:4px;border:solid 1px rgba(255, 255, 255, 0.3);margin-bottom:2em;padding:1.5em}.box>:last-child,.box>:last-child>:last-child,.box>:last-child>:last-child>:last-child{margin-bottom:0}.box.alt{border:0;border-radius:0;padding:0}.icon{text-decoration:none;border-bottom:none;position:relative}.icon:before{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;-webkit-font-smoothing:antialiased;text-transform:none !important}.icon>.label{display:none}.icon.alt{text-decoration:none}.icon.alt:before{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;-webkit-font-smoothing:antialiased;text-transform:none !important}.icon.alt::before{color:#1c1d26 !important;text-shadow:1px 0 0 #ffffff, -1px 0 0 #ffffff, 0 1px 0 #ffffff, 0 -1px 0 #fff}.icon.major{background:#272833;border-radius:100%;cursor:default;display:inline-block;height:6em;line-height:6em;margin:0 0 2em 0;text-align:center;width:6em}.icon.major::before{font-size:2.25em}.icon.major.alt{text-decoration:none}.icon.major.alt:before{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;-webkit-font-smoothing:antialiased;text-transform:none !important}.icon.major.alt::before{color:#272833 !important;text-shadow:1px 0 0 #ffffff, -1px 0 0 #ffffff, 0 1px 0 #ffffff, 0 -1px 0 #fff}.iconshiftdown{line-height:2}.iconshift-right-5{margin-left:5px}.iconshift-right-6{margin-left:6px}.iconshift-right-7{margin-left:7px}.iconshift-right-8{margin-left:8px}.iconshift-right-9{margin-left:9px}.iconshift-right-10{margin-left:10px}.image{border-radius:4px;border:0;display:inline-block;position:relative;overflow:hidden}.image::before{content:'';display:block;position:absolute;left:0;top:0;width:100%;height:100%;z-index:1}.image img{border-radius:4px;display:block}.image.left{float:left;margin:0 1.5em 1em 0;top:.25em}.image.right{float:right;margin:0 0 1em 1.5em;top:.25em}.image.left,.image.right{max-width:40%}.image.left img,.image.right img{width:100%}.image.fit{display:block;margin:0 0 2em 0;width:100%}.image.fit img{width:100%}.image.mapid{height:70vh}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 rgba(255, 255, 255, 0.3);padding:0.5em 0}ul.alt li:first-child{border-top:0;padding-top:0}ul.icons{cursor:default;list-style:none;padding-left:0}ul.icons li{display:inline-block;height:2.5em;line-height:2.5em;padding:0 0.5em}ul.icons li .icon{font-size:.8em}ul.icons li .icon::before{font-size:2em}ul.actions{cursor:default;list-style:none;padding-left:0}@media (max-width: 480px){ul.actions { margin:0 0 2em 0}} ul.actions li{display:inline-block;padding:0 1em 0 0;vertical-align:middle}@media (max-width: 480px){ul.actions li { display:block;padding:1em 0 0 0;text-align:center;width:100%}ul.actions li:first-child{padding-top:0}ul.actions li>*{margin:0 !important;width:100%}} ul.actions li:last-child{padding-right:0}ul.actions.small li{padding:0 0.5em 0 0}@media (max-width: 480px){ul.actions.small li { padding:0.5em 0 0 0}ul.actions.small li:first-child{padding-top:0}} ul.actions.vertical li{display:block;padding:1em 0 0 0}ul.actions.vertical li:first-child{padding-top:0}ul.actions.vertical li>*{margin-bottom:0}ul.actions.vertical.small li{padding:0.5em 0 0 0}ul.actions.vertical.small li:first-child{padding-top:0}ul.actions.fit{display:table;margin-left:-1em;padding:0;table-layout:fixed;width:calc(100% + 1em)}ul.actions.fit li{display:table-cell;padding:0 0 0 1em}ul.actions.fit li>*{margin-bottom:0}ul.actions.fit.small{margin-left:-0.5em;width:calc(100% + 0.5em)}ul.actions.fit.small li{padding:0 0 0 0.5em}dl{margin:0 0 2em 0}.table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}table{margin:0 0 2em 0;width:100%}table tbody tr{border:solid 1px rgba(255, 255, 255, 0.3);border-left:0;border-right:0}table tbody tr:nth-child(2n+1){background-color:rgba(255, 255, 255, 0.075)}table td{padding:0.75em 0.75em}table th{color:#fff;font-size:.9em;font-weight:400;padding:0 0.75em 0.75em 0.75em;text-align:left}table thead{border-bottom:solid 1px rgba(255, 255, 255, 0.3)}table tfoot{border-top:solid 1px rgba(255, 255, 255, 0.3)}table.alt{border-collapse:separate}table.alt tbody tr td{border:solid 1px rgba(255, 255, 255, 0.3);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}input[type="submit"],input[type="reset"],input[type="button"],.button{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;-moz-transition:background-color 0.2s ease-in-out, color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;-webkit-transition:background-color 0.2s ease-in-out, color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;-ms-transition:background-color 0.2s ease-in-out, color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;transition:background-color 0.2s ease-in-out, color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;background-color:transparent;border-radius:4px;border:0;box-shadow:inset 0 0 0 2px rgba(255, 255, 255, 0.3);color:#fff !important;cursor:pointer;display:inline-block;font-weight:400;height:2.4em;line-height:2.4em;padding:0 2.25em;text-align:center;text-decoration:none;white-space:nowrap}@media (max-width: 480px){input[type="submit"], input[type="reset"], input[type="button"], .button { padding:0}} input[type="submit"]:hover,input[type="submit"]:active,input[type="reset"]:hover,input[type="reset"]:active,input[type="button"]:hover,input[type="button"]:active,.button:hover,.button:active{box-shadow:inset 0 0 0 1px #E64F2D;color:#E64F2D !important}input[type="submit"]:active,input[type="reset"]:active,input[type="button"]:active,.button:active{background-color:rgba(230, 79, 45, 0.15)}input[type="submit"].icon::before,input[type="reset"].icon::before,input[type="button"].icon::before,.button.icon::before{margin-right:.5em}input[type="submit"].fit,input[type="reset"].fit,input[type="button"].fit,.button.fit{display:block;margin:0 0 1em 0;width:100%}input[type="submit"].small,input[type="reset"].small,input[type="button"].small,.button.small{font-size:.8em}input[type="submit"].big,input[type="reset"].big,input[type="button"].big,.button.big{font-size:1.35em}input[type="submit"].special,input[type="reset"].special,input[type="button"].special,.button.special{background-color:#E64F2D;box-shadow:none;color:#fff !important}input[type="submit"].special:hover,input[type="reset"].special:hover,input[type="button"].special:hover,.button.special:hover{background-color:#e96244}input[type="submit"].special:active,input[type="reset"].special:active,input[type="button"].special:active,.button.special:active{background-color:#df3f1b}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{background-color:rgba(255, 255, 255, 0.3) !important;box-shadow:none !important;color:#fff !important;cursor:default;opacity:0.25}input[type="submit"].tb-opened,input[type="reset"].tb-opened,input[type="button"].tb-opened,.button.tb-opened{background-color:LimeGreen !important}input[type="submit"].tb-opened.navbar,input[type="reset"].tb-opened.navbar,input[type="button"].tb-opened.navbar,.button.tb-opened.navbar{margin-left:-15px}.tb-closed{color:#d23128ff}.tooltip{position:relative;display:inline-block;border-bottom:1px dotted black}.tooltip .tooltiptext{visibility:hidden;position:absolute;width:230px;margin-left:-100px;font-size:.9em;background-color:#555;line-height:normal;color:#fff;text-align:center;padding:15px 0;border-radius:6px;z-index:1;opacity:0;transition:opacity 0.3s;top:100%;left:50%}.tooltip .tooltiptext::after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent #555 transparent}.tooltip:hover .tooltiptext{visibility:visible;opacity:1}.goto-next{border:0;bottom:0;display:block;height:5em;left:50%;margin:0 0 0 -5em;overflow:hidden;position:absolute;text-indent:10em;white-space:nowrap;width:10em;z-index:1}.goto-next::before{background-image:url(images/arrow.svg);background-position:center center;background-repeat:no-repeat;background-size:contain;content:'';display:block;height:1.5em;left:50%;margin:-0.75em 0 0 -1em;position:absolute;top:50%;width:2em;z-index:1}@media (max-width: 933px){.goto-next::before { height:.8em;margin:-0.4em 0 0 -0.6em;width:1.2em}} .spotlight{background-attachment:fixed;background-position:center center;background-size:cover;box-shadow:0 0.25em 0.5em 0 rgba(0, 0, 0, 0.25);background-image:none;min-height:42em;height:100vh;overflow:hidden;position:relative}@media (max-width: 980px){.spotlight { background-attachment:scroll;height:auto;min-height:auto}} @media (max-width: 933px){.spotlight { box-shadow:0 0.125em 0.5em 0 rgba(0, 0, 0, 0.25)}} .spotlight:nth-last-of-type(1){z-index:1}.spotlight:nth-last-of-type(2){z-index:2}.spotlight:nth-last-of-type(3){z-index:3}.spotlight:nth-last-of-type(4){z-index:4}.spotlight:nth-last-of-type(5){z-index:5}.spotlight:nth-last-of-type(6){z-index:6}.spotlight:nth-last-of-type(7){z-index:7}.spotlight:nth-last-of-type(8){z-index:8}.spotlight:nth-last-of-type(9){z-index:9}.spotlight:nth-last-of-type(10){z-index:10}.spotlight:nth-last-of-type(11){z-index:11}.spotlight:nth-last-of-type(12){z-index:12}.spotlight:nth-last-of-type(13){z-index:13}.spotlight:nth-last-of-type(14){z-index:14}.spotlight:nth-last-of-type(15){z-index:15}.spotlight:nth-last-of-type(16){z-index:16}.spotlight:nth-last-of-type(17){z-index:17}.spotlight:nth-last-of-type(18){z-index:18}.spotlight:nth-last-of-type(19){z-index:19}.spotlight:nth-last-of-type(20){z-index:20}.spotlight::before{content:'';display:block;height:100%;left:0;top:0;width:100%}.spotlight .image.main{display:block}@media (max-width: 980px){.spotlight .image.main { display:block;margin:0;max-height:40vh;overflow:hidden}} @media (max-width: 933px){.spotlight .image.main { max-height:60vh}} @media (max-width: 480px){.spotlight .image.main { max-height:50vh}} .spotlight .image.main img{position:relative}.spotlight .content{-moz-transform:translate(0,0);-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);-moz-transition:-moz-transform 1s ease, opacity 1s ease;-webkit-transition:-webkit-transform 1s ease, opacity 1s ease;-ms-transition:-ms-transform 1s ease, opacity 1s ease;transition:transform 1s ease, opacity 1s ease;background:rgba(23, 24, 32, 0.9);border-style:solid;opacity:1;position:absolute}@media (max-width: 980px){.spotlight .content { background-color:rgba(23, 24, 32, 0.9);border-width:0 !important;border-top-width:0.35em !important;bottom:auto !important;left:auto !important;padding:6em 3em 4em 3em !important;position:relative;right:auto !important;text-align:center;top:auto !important;width:100% !important}} @media (max-width: 933px){.spotlight .content { border-top-width:0.2em !important;padding:6em 3em 4em 3em !important}} @media (max-width: 480px){.spotlight .content { padding:6em 3em 4em 3em !important}} .spotlight .goto-next{-moz-transform:translate(0,0);-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);-moz-transition:-moz-transform 0.75s ease, opacity 1s ease-in;-webkit-transition:-webkit-transform 0.75s ease, opacity 1s ease-in;-ms-transition:-ms-transform 0.75s ease, opacity 1s ease-in;transition:transform 0.75s ease, opacity 1s ease-in;-moz-transition-delay:0.5s;-webkit-transition-delay:0.5s;-ms-transition-delay:0.5s;transition-delay:0.5s;opacity:1}@media (max-width: 980px){.spotlight .goto-next { display:none}} .spotlight.top .content,.spotlight.bottom .content{left:0;padding:5.1em 0 3.1em 0;width:100%}.spotlight.top .content{border-bottom-width:.35em;top:0}@media (max-width: 1280px){.spotlight.top .content { padding:5.1em 0 3.1em 0}} .spotlight.bottom .content{border-top-width:.35em;bottom:0}@media (max-width: 1280px){.spotlight.bottom .content { padding:5.1em 0 4.6em 0}} .spotlight.left .content,.spotlight.right .content{height:101%;padding:6em 3em;top:0;width:28em;min-width:25%}@media (max-width: 1280px){.spotlight.left .content, .spotlight.right .content { padding:6em 3em;width:25em}} .spotlight.left .content{border-right-width:.35em;left:0}.spotlight.right .content{border-left-width:.35em;right:0}.spotlight.style2 .content{border-color:#E64F2D}.spotlight.style3 .content{border-color:#D74126}.spotlight.inactive .content{opacity:0}.spotlight.inactive .goto-next{-moz-transform:translate(0,1.5em);-webkit-transform:translate(0,1.5em);-ms-transform:translate(0,1.5em);transform:translate(0,1.5em);opacity:0}.spotlight.inactive.top .content{-moz-transform:translate(0,-5em);-webkit-transform:translate(0,-5em);-ms-transform:translate(0,-5em);transform:translate(0,-5em)}.spotlight.inactive.bottom .content{-moz-transform:translate(0,5em);-webkit-transform:translate(0,5em);-ms-transform:translate(0,5em);transform:translate(0,5em)}.spotlight.inactive.left .content{-moz-transform:translate(-5em,0);-webkit-transform:translate(-5em,0);-ms-transform:translate(-5em,0);transform:translate(-5em,0)}.spotlight.inactive.right .content{-moz-transform:translate(5em,0);-webkit-transform:translate(5em,0);-ms-transform:translate(5em,0);transform:translate(5em,0)}body.is-touch .spotlight{background-attachment:scroll}.wrapper{padding:6em 0 4em 0}@media (max-width: 1280px){.wrapper { padding:6em 0 4em 0}} @media (max-width: 980px){.wrapper { padding:6em 3em 4em 3em}} @media (max-width: 933px){.wrapper { padding:6em 3em 4em 3em}} @media (max-width: 480px){.wrapper { padding:6em 3em 4em 3em}} .wrapper.style2{background:#E64F2D}.wrapper.style2 input[type="text"]:focus,.wrapper.style2 input[type="password"]:focus,.wrapper.style2 input[type="email"]:focus,.wrapper.style2 select:focus,.wrapper.style2 textarea:focus{border-color:rgba(255, 255, 255, 0.5)}.wrapper.style2 input[type="submit"]:hover,.wrapper.style2 input[type="submit"]:active,.wrapper.style2 input[type="reset"]:hover,.wrapper.style2 input[type="reset"]:active,.wrapper.style2 input[type="button"]:hover,.wrapper.style2 input[type="button"]:active,.wrapper.style2 .button:hover,.wrapper.style2 .button:active{background-color:rgba(255, 255, 255, 0.075) !important;box-shadow:inset 0 0 0 1px rgba(255, 255, 255, 0.5) !important;color:#fff !important}.wrapper.style2 input[type="submit"]:active,.wrapper.style2 input[type="reset"]:active,.wrapper.style2 input[type="button"]:active,.wrapper.style2 .button:active{background-color:rgba(255, 255, 255, 0.25) !important}.wrapper.style2 input[type="submit"].special,.wrapper.style2 input[type="reset"].special,.wrapper.style2 input[type="button"].special,.wrapper.style2 .button.special{background-color:#fff;color:#E64F2D !important}.wrapper.style2 input[type="submit"].special:hover,.wrapper.style2 input[type="submit"].special:active,.wrapper.style2 input[type="reset"].special:hover,.wrapper.style2 input[type="reset"].special:active,.wrapper.style2 input[type="button"].special:hover,.wrapper.style2 input[type="button"].special:active,.wrapper.style2 .button.special:hover,.wrapper.style2 .button.special:active{background-color:rgba(255, 255, 255, 0.075) !important;box-shadow:inset 0 0 0 1px rgba(255, 255, 255, 0.5) !important;color:#fff !important}.wrapper.style2 input[type="submit"].special:active,.wrapper.style2 input[type="reset"].special:active,.wrapper.style2 input[type="button"].special:active,.wrapper.style2 .button.special:active{background-color:rgba(255, 255, 255, 0.25) !important}.wrapper.fade-down>.container{-moz-transform:translate(0,0);-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);-moz-transition:-moz-transform 1s ease, opacity 1s ease;-webkit-transition:-webkit-transform 1s ease, opacity 1s ease;-ms-transition:-ms-transform 1s ease, opacity 1s ease;transition:transform 1s ease, opacity 1s ease;opacity:1}.wrapper.fade-down.inactive>.container{-moz-transform:translate(0,-1em);-webkit-transform:translate(0,-1em);-ms-transform:translate(0,-1em);transform:translate(0,-1em);opacity:0}.wrapper.fade-up>.container{-moz-transform:translate(0,0);-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);-moz-transition:-moz-transform 1s ease, opacity 1s ease;-webkit-transition:-webkit-transform 1s ease, opacity 1s ease;-ms-transition:-ms-transform 1s ease, opacity 1s ease;transition:transform 1s ease, opacity 1s ease;opacity:1}.wrapper.fade-up.inactive>.container{-moz-transform:translate(0,1em);-webkit-transform:translate(0,1em);-ms-transform:translate(0,1em);transform:translate(0,1em);opacity:0}.wrapper.fade>.container{-moz-transition:opacity 1s ease;-webkit-transition:opacity 1s ease;-ms-transition:opacity 1s ease;transition:opacity 1s ease;opacity:1}.wrapper.fade.inactive>.container{opacity:0}.dropotron{background:rgba(39, 40, 51, 0.965);border-radius:4px;box-shadow:0 0.075em 0.35em 0 rgba(0, 0, 0, 0.125);list-style:none;margin-top:calc(-0.25em + 1px);min-width:12em;padding:0.25em 0}.dropotron>li{border-top:solid 1px rgba(255, 255, 255, 0.035);padding:0}.dropotron>li a,.dropotron>li span{border:0;color:rgba(255, 255, 255, 0.75);display:block;padding:0.1em 1em;text-decoration:none}.dropotron>li:first-child{border-top:0}.dropotron>li.active>a,.dropotron>li.active>span{color:#E64F2D}.dropotron.level-0{font-size:.8em;margin-top:1em}@media (max-width: 1280px){.dropotron.level-0 { font-size:1em}} .dropotron.level-0::before{-moz-transform:rotate(45deg);-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);background:#272833;content:'';display:block;height:1em;position:absolute;right:1.5em;top:-0.5em;width:1em}body.landing .dropotron.level-0{margin-top:0}#navPanel,#titleBar{display:none}@media (max-width: 933px){#titlebar { -moz-backface-visibility:hidden;-webkit-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-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;display:block;height:44px;left:0;position:fixed;top:0;width:100%;z-index:10001;background:#272833;box-shadow:0 0.125em 0.125em 0 rgba(0, 0, 0, 0.125)}#titleBar .title{color:#fff;display:block;font-weight:400;height:44px;line-height:44px;text-align:center}#titleBar .title a{color:inherit;border:0}#titleBar .toggle{text-decoration:none;height:60px;left:0;position:absolute;top:0;width:90px;outline:0;border:0}#titleBar .toggle:before{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;-webkit-font-smoothing:antialiased;text-transform:none !important}#titleBar .toggle::before{background:#9B160F;color:rgba(255, 255, 255, 0.5);display:block;font-size:18px;height:44px;left:0;line-height:44px;position:absolute;text-align:center;top:0;width:54px}} @media (max-width: 933px){#navpanel { -moz-backface-visibility:hidden;-webkit-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-moz-transform:translateX(-275px);-webkit-transform:translateX(-275px);-ms-transform:translateX(-275px);transform:translateX(-275px);-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;display:block;height:100%;left:0;overflow-y:auto;position:fixed;top:0;width:275px;z-index:10002;background:#181920;padding:0.75em 1.25em}#navPanel .link{border:0;border-top:solid 1px rgba(255, 255, 255, 0.05);color:rgba(255, 255, 255, 0.75);display:block;height:3em;line-height:3em;text-decoration:none}#navPanel .link:hover{color:inherit !important}#navPanel .link:first-child{border-top:0}#navPanel .link.depth-0{color:#fff;font-weight:400}#navPanel .link .indent-1{display:inline-block;width:1.25em}#navPanel .link .indent-2{display:inline-block;width:2.5em}#navPanel .link .indent-3{display:inline-block;width:3.75em}#navPanel .link .indent-4{display:inline-block;width:5em}#navPanel .link .indent-5{display:inline-block;width:6.25em}} #page-wrapper{padding-top:3.5em}@media (max-width: 933px){#page-wrapper { -moz-backface-visibility:hidden;-webkit-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-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;padding-bottom:1px;padding-top:44px !important}} #header{background:rgba(39, 40, 51, 0.965);box-shadow:0 0 0.25em 0 rgba(0, 0, 0, 0.25);cursor:default;height:3.5em;left:0;line-height:3.5em;position:fixed;top:0;width:100%;z-index:5000}@media (max-width: 933px){#header { display:none}} #header h1{height:inherit;left:1.25em;line-height:inherit;margin:0;position:absolute;top:0}#header nav ul{list-style:none;position:relative;float:right;margin:0;padding:0}#header nav ul li{position:relative;float:left;margin:0;padding:0;color:inherit;height:inherit;line-height:inherit}#header nav ul li a,#header nav ul li span{display:block;color:inherit;text-decoration:none;line-height:inherit;padding:0 1em}#header nav ul li.active>a,#header nav ul li.active>span{color:#E64F2D}#header nav ul li.last{padding-right:1.8em}#header nav ul ul{display:none;position:absolute;top:100%;left:0;border-bottom:2px solid rgba(255, 255, 255, 0.075);background:rgba(39, 40, 51, 0.965);padding:0}#header nav ul ul li{float:none;width:11em;overflow:hidden}#header nav ul ul.last li{width:8em}#header nav ul ul a{line-height:100%;padding:10px 15px;border-top:2px solid rgba(255, 255, 255, 0.075)}#header nav ul ul ul{top:0;left:100%}#header nav ul li:hover>ul{display:block}body.landing #page-wrapper{padding-top:0}#banner{background-attachment:fixed;background-color:#272833;background-image:url(../../images/banner.jpg);background-position:center center;background-size:cover;box-shadow:0 0.25em 0.5em 0 rgba(0, 0, 0, 0.25);min-height:100vh;position:relative;text-align:center;z-index:21}@media (max-width: 980px){#banner { background-attachment:scroll}#banner .goto-next{height:7em}} @media (max-width: 933px){#banner { box-shadow:0 0.125em 0.5em 0 rgba(0, 0, 0, 0.25);min-height:calc(100vh - 44px)}} #banner::before{content:'';display:inline-block;height:100vh;vertical-align:middle;width:1%}@media (max-width: 933px){#banner::before { height: calc(100vh - 44px)}} #banner::after{content:'';display:block;height:100%;left:0;position:absolute;top:0;width:100%}#banner .content{display:inline-block;margin-right:1%;max-width:95%;padding:6em;position:relative;text-align:right;vertical-align:middle;z-index:1}@media (max-width: 1280px){#banner .content { padding:6em}} @media (max-width: 980px){#banner .content { padding:12em 0;text-align:center}} @media (max-width: 933px){#banner .content { padding:7.5em 3em 9em 3em}} @media (max-width: 480px){#banner .content { padding:6em 3.75em 10.5em 3.75em}} #banner .content header{display:inline-block;vertical-align:middle}@media (max-width: 980px){#banner .content header { display:block;margin:0 0 2em 0;text-align:center}} #banner .content header h2{font-size:2.5em;margin:0}@media (max-width: 933px){#banner .content header h2 { font-size:1.5em}} #banner .content header p{margin:0.5em 0 0 0;top:0}#banner .content .image{border-radius:0;display:inline-block;height:19em;margin-left:3em;margin-top:2em;vertical-align:middle;width:19em}@media (max-width: 980px){#banner .content .image { margin:0}} @media (max-width: 933px){#banner .content .image { height:9em;width:9em}} #banner .content .image img{border-radius:0;display:block;width:100%}body.is-touch #banner{background-attachment:scroll}#footer{background:#272833;padding:6em 0;text-align:center}@media (max-width: 1280px){#footer { padding:6em 0}} @media (max-width: 980px){#footer { padding:6em 0}} @media (max-width: 933px){#footer { padding:6em 3em}} @media (max-width: 480px){#footer { padding:6em 3em}} #footer .icons .icon.alt{text-decoration:none}#footer .icons .icon.alt:before{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;-webkit-font-smoothing:antialiased;text-transform:none !important}#footer .icons .icon.alt::before{color:#272833 !important;text-shadow:1px 0 0 rgba(255, 255, 255, 0.5), -1px 0 0 rgba(255, 255, 255, 0.5), 0 1px 0 rgba(255, 255, 255, 0.5), 0 -1px 0 rgba(255, 255, 255, 0.5)}#footer .copyright{color:rgba(255, 255, 255, 0.5);font-size:.8em;line-height:1em;margin:2em 0 0 0;padding:0;text-align:center}@media (max-width: 480px){#footer .copyright { line-height:inherit}} #footer .copyright li{border-left:solid 1px rgba(255, 255, 255, 0.3);display:inline-block;list-style:none;margin-left:1.5em;padding-left:1.5em}@media (max-width: 480px){#footer .copyright li { border-left:0;display:block;margin:0;padding:0}} #footer .copyright li:first-child{border-left:0;margin-left:0;padding-left:0}#footer .copyright li a{color:inherit}.project{height:600px}.teaser{height:300px}.project-creator{border-bottom:none}.col-2{column-count:2;column-gap:1vw}.col-2>.button{padding:0}.col-3{column-count:3;column-gap:1vw}.col-3>.button{padding:0}.col-4{column-count:4;column-gap:1vw}.col-4>.button{padding:0}.col-5{column-count:5;column-gap:1vw}.col-5>.button{padding:0} \ No newline at end of file diff --git a/assets/fonts/FontAwesome.otf b/assets/fonts/FontAwesome.otf deleted file mode 100644 index d4de13e..0000000 Binary files a/assets/fonts/FontAwesome.otf and /dev/null differ diff --git a/assets/fonts/Raleway-Bold.ttf b/assets/fonts/Raleway-Bold.ttf deleted file mode 100644 index 55c13df..0000000 Binary files a/assets/fonts/Raleway-Bold.ttf and /dev/null differ diff --git a/assets/fonts/Raleway-ExtraLight.ttf b/assets/fonts/Raleway-ExtraLight.ttf deleted file mode 100644 index 745e8d5..0000000 Binary files a/assets/fonts/Raleway-ExtraLight.ttf and /dev/null differ diff --git a/assets/fonts/SourceSansPro-Light.ttf b/assets/fonts/SourceSansPro-Light.ttf deleted file mode 100644 index f9f9a3a..0000000 Binary files a/assets/fonts/SourceSansPro-Light.ttf and /dev/null differ diff --git a/assets/fonts/SourceSansPro-LightItalic.ttf b/assets/fonts/SourceSansPro-LightItalic.ttf deleted file mode 100644 index 712f984..0000000 Binary files a/assets/fonts/SourceSansPro-LightItalic.ttf and /dev/null differ diff --git a/assets/fonts/SourceSansPro-SemiBold.ttf b/assets/fonts/SourceSansPro-SemiBold.ttf deleted file mode 100644 index 8b7620f..0000000 Binary files a/assets/fonts/SourceSansPro-SemiBold.ttf and /dev/null differ diff --git a/assets/fonts/SourceSansPro-SemiBoldItalic.ttf b/assets/fonts/SourceSansPro-SemiBoldItalic.ttf deleted file mode 100644 index b51e448..0000000 Binary files a/assets/fonts/SourceSansPro-SemiBoldItalic.ttf and /dev/null differ diff --git a/assets/fonts/fontawesome-webfont.eot b/assets/fonts/fontawesome-webfont.eot deleted file mode 100644 index c7b00d2..0000000 Binary files a/assets/fonts/fontawesome-webfont.eot and /dev/null differ diff --git a/assets/fonts/fontawesome-webfont.svg b/assets/fonts/fontawesome-webfont.svg deleted file mode 100644 index 8b66187..0000000 --- a/assets/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,685 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/fonts/fontawesome-webfont.ttf b/assets/fonts/fontawesome-webfont.ttf deleted file mode 100644 index f221e50..0000000 Binary files a/assets/fonts/fontawesome-webfont.ttf and /dev/null differ diff --git a/assets/fonts/fontawesome-webfont.woff b/assets/fonts/fontawesome-webfont.woff deleted file mode 100644 index 6e7483c..0000000 Binary files a/assets/fonts/fontawesome-webfont.woff and /dev/null differ diff --git a/assets/fonts/fontawesome-webfont.woff2 b/assets/fonts/fontawesome-webfont.woff2 deleted file mode 100644 index 7eb74fd..0000000 Binary files a/assets/fonts/fontawesome-webfont.woff2 and /dev/null differ diff --git a/assets/fonts/lg.eot b/assets/fonts/lg.eot new file mode 100644 index 0000000..d7ec00c --- /dev/null +++ b/assets/fonts/lg.eot @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0970881145aecce7668909140fc2f552c680007c147905bae6bf87d0fca9df6c +size 4024 diff --git a/assets/fonts/lg.svg b/assets/fonts/lg.svg new file mode 100644 index 0000000..22b1a1f --- /dev/null +++ b/assets/fonts/lg.svg @@ -0,0 +1,47 @@ + + + + + + +{ + "fontFamily": "lg", + "majorVersion": 1, + "minorVersion": 0, + "fontURL": "https://github.com/sachinchoolur/lightGallery", + "copyright": "sachin", + "license": "MLT", + "licenseURL": "http://opensource.org/licenses/MIT", + "version": "Version 1.0", + "fontId": "lg", + "psName": "lg", + "subFamily": "Regular", + "fullName": "lg", + "description": "Font generated by IcoMoon." +} + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/fonts/lg.ttf b/assets/fonts/lg.ttf new file mode 100644 index 0000000..bb7b9cc --- /dev/null +++ b/assets/fonts/lg.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c3cb8b4780e7037479381cda6f640bb12c56b5c8dc0104b03dec0294aeec0e6 +size 3880 diff --git a/assets/fonts/lg.woff b/assets/fonts/lg.woff new file mode 100644 index 0000000..0e92d60 --- /dev/null +++ b/assets/fonts/lg.woff @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78e558964f6a4d4970dad55bc53bf6a7cdc0437d228ee2c60bc6d1dc9e0beefd +size 3956 diff --git a/assets/fonts/roboto-italic_300.ttf b/assets/fonts/roboto-italic_300.ttf new file mode 100644 index 0000000..668c21f --- /dev/null +++ b/assets/fonts/roboto-italic_300.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6121573e61d8ac4d047b34bdf3f360f6d0731a7e70576d789a1e627b0b1fb8ac +size 37232 diff --git a/assets/fonts/roboto-italic_400.ttf b/assets/fonts/roboto-italic_400.ttf new file mode 100644 index 0000000..a0c9f1e --- /dev/null +++ b/assets/fonts/roboto-italic_400.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95319bd317261b6cfd2842c17278e1c10dd95fd1fbb983f2767c10e34efa439d +size 36752 diff --git a/assets/fonts/roboto-italic_500.ttf b/assets/fonts/roboto-italic_500.ttf new file mode 100644 index 0000000..c139b31 --- /dev/null +++ b/assets/fonts/roboto-italic_500.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ff6fb737cb96a286674dceedd3f91978555ef3839a45a8d02f1811e88f9d115 +size 37120 diff --git a/assets/fonts/roboto.css b/assets/fonts/roboto.css new file mode 100644 index 0000000..0a3dcc6 --- /dev/null +++ b/assets/fonts/roboto.css @@ -0,0 +1,37 @@ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + src: local('Roboto Italic'), local('Roboto-Italic'), url(/fonts/roboto-italic_400.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 500; + src: local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url(/fonts/roboto-italic_500.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(/fonts/roboto_400.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(/fonts/roboto_500.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url(/fonts/roboto-italic_300.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url(/fonts/roboto_300.ttf) format('truetype'); +} + diff --git a/assets/fonts/roboto_300.ttf b/assets/fonts/roboto_300.ttf new file mode 100644 index 0000000..6313b02 --- /dev/null +++ b/assets/fonts/roboto_300.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ee85c770966bfd58a0c807851e2c14d2c63abadcfb45ce30fbfbe871152caf2 +size 35468 diff --git a/assets/fonts/roboto_400.ttf b/assets/fonts/roboto_400.ttf new file mode 100644 index 0000000..44a6aa5 --- /dev/null +++ b/assets/fonts/roboto_400.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:466989fd178ca6ed13641893b7003e5d6ec36e42c2a816dee71f87b775ea097f +size 35408 diff --git a/assets/fonts/roboto_500.ttf b/assets/fonts/roboto_500.ttf new file mode 100644 index 0000000..becdc74 --- /dev/null +++ b/assets/fonts/roboto_500.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b464107219af95400af44c949574d9617de760e100712d4dec8f51a76c50dda1 +size 35588 diff --git a/assets/images/bg.jpg b/assets/images/banner.jpg similarity index 100% rename from assets/images/bg.jpg rename to assets/images/banner.jpg diff --git a/assets/images/c3woc.png b/assets/images/c3woc.png deleted file mode 100644 index f4f0a11..0000000 --- a/assets/images/c3woc.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6d90fd06ce2734c5aec5b1390bcaa4a1fba6ad32ad55ff76b118df6362d738a2 -size 678489 diff --git a/content/blog/fidm18/FidM18.jpg b/assets/images/home/abschnitt1.jpeg similarity index 100% rename from content/blog/fidm18/FidM18.jpg rename to assets/images/home/abschnitt1.jpeg diff --git a/assets/images/home/abschnitt2.jpeg b/assets/images/home/abschnitt2.jpeg new file mode 100644 index 0000000..0999493 --- /dev/null +++ b/assets/images/home/abschnitt2.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3e4e53a3cfab38a0603d002f2b8535751ce3fae7de732689950363d6b7aaa1e +size 332598 diff --git a/assets/images/home/abschnitt3.jpeg b/assets/images/home/abschnitt3.jpeg new file mode 100644 index 0000000..354807b --- /dev/null +++ b/assets/images/home/abschnitt3.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cae82dbab5917a4ca1d13df156f2a0d9d77e2bc947b5b2b50a361c12773f756e +size 482069 diff --git a/assets/images/icons/android-chrome-192x192.png b/assets/images/icons/android-chrome-192x192.png new file mode 100644 index 0000000..90d4f0a --- /dev/null +++ b/assets/images/icons/android-chrome-192x192.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb2ec64ba8f0b0aa09302106dfc58a5bf9eef887df0377a12501e4d9c4a4ab7d +size 13406 diff --git a/assets/images/icons/android-chrome-512x512.png b/assets/images/icons/android-chrome-512x512.png new file mode 100644 index 0000000..d024750 --- /dev/null +++ b/assets/images/icons/android-chrome-512x512.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f480a09b1ebbf2d3fe763af81d5c9be231a52df6d0d103499f2d8badf81ce64a +size 37705 diff --git a/assets/images/icons/apple-touch-icon.png b/assets/images/icons/apple-touch-icon.png new file mode 100644 index 0000000..a30343a --- /dev/null +++ b/assets/images/icons/apple-touch-icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8de3d150acc166da5fbb4a05abd83e8e15329b53839974e8f1f17fec1930fcc4 +size 3025 diff --git a/assets/images/icons/browserconfig.xml b/assets/images/icons/browserconfig.xml new file mode 100644 index 0000000..9ebcb51 --- /dev/null +++ b/assets/images/icons/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #da532c + + + diff --git a/assets/images/icons/favicon-16x16.png b/assets/images/icons/favicon-16x16.png new file mode 100644 index 0000000..6d6217d --- /dev/null +++ b/assets/images/icons/favicon-16x16.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d59186e9b38e26b8371eade0e7f709e5e1d01a2dd9f6eae90cc197a4a94c388f +size 921 diff --git a/assets/images/icons/favicon-32x32.png b/assets/images/icons/favicon-32x32.png new file mode 100644 index 0000000..7c86cb1 --- /dev/null +++ b/assets/images/icons/favicon-32x32.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c04ada0e0a841eaea0740e67278a67ca8d81aa8b5e6e0b829c8440734fd664e3 +size 1278 diff --git a/assets/images/icons/favicon.ico b/assets/images/icons/favicon.ico new file mode 100644 index 0000000..f16453a Binary files /dev/null and b/assets/images/icons/favicon.ico differ diff --git a/assets/images/icons/mstile-144x144.png b/assets/images/icons/mstile-144x144.png new file mode 100644 index 0000000..98e41a2 --- /dev/null +++ b/assets/images/icons/mstile-144x144.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76b88b177205267674e2ffd6c2b2c6ac52fd2d1e8ece1c22f3a49346376c3f23 +size 3340 diff --git a/assets/images/icons/mstile-150x150.png b/assets/images/icons/mstile-150x150.png new file mode 100644 index 0000000..16b0c55 --- /dev/null +++ b/assets/images/icons/mstile-150x150.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:745786956edb043601f4a8f90e988dac24571b05fbe16d8c5ef8f4a33a1f0a42 +size 3486 diff --git a/assets/images/icons/mstile-310x150.png b/assets/images/icons/mstile-310x150.png new file mode 100644 index 0000000..8b51227 --- /dev/null +++ b/assets/images/icons/mstile-310x150.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:854ccf6629b537bf68a12c131a108b31aba476230abd44387330c84a87e815a7 +size 3772 diff --git a/assets/images/icons/mstile-310x310.png b/assets/images/icons/mstile-310x310.png new file mode 100644 index 0000000..1285b82 --- /dev/null +++ b/assets/images/icons/mstile-310x310.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:743dbd07c2bb7ca545ee49378cdb58cbbe5aaa289449f452041f53910076037b +size 7403 diff --git a/assets/images/icons/mstile-70x70.png b/assets/images/icons/mstile-70x70.png new file mode 100644 index 0000000..244f8e8 --- /dev/null +++ b/assets/images/icons/mstile-70x70.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:741819a68f9b67fd08c65d0d8b3fc518a83eb25326e543324e428bb842270ae3 +size 2427 diff --git a/assets/images/icons/safari-pinned-tab.svg b/assets/images/icons/safari-pinned-tab.svg new file mode 100644 index 0000000..f014e44 --- /dev/null +++ b/assets/images/icons/safari-pinned-tab.svg @@ -0,0 +1,24 @@ + + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + diff --git a/assets/images/icons/site.webmanifest b/assets/images/icons/site.webmanifest new file mode 100644 index 0000000..952c700 --- /dev/null +++ b/assets/images/icons/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "Toolbox Bodensee e.V.", + "short_name": "Toolbox", + "icons": [ + { + "src": "/images/icons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/images/icons/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#e64f2d", + "background_color": "#191a23", + "display": "standalone" +} diff --git a/assets/images/c3woc.svg b/assets/images/logo.svg similarity index 65% rename from assets/images/c3woc.svg rename to assets/images/logo.svg index e71cc18..ca4f71a 100644 --- a/assets/images/c3woc.svg +++ b/assets/images/logo.svg @@ -14,8 +14,8 @@ viewBox="0 0 74 51.999997" version="1.1" id="svg8" - inkscape:version="0.92.2 2405546, 2018-03-11" - sodipodi:docname="c3woc.svg"> + inkscape:version="0.92.4 (unknown)" + sodipodi:docname="logo.svg"> + transform="matrix(0.38152611,0,0,0.38152611,-40.420925,68.585515)"> + d="m -88.077558,116.65672 2.930508,-3.35508 v 1.07873 l -2.504172,2.80345 z" + style="fill:#cb7b01;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -85.14705,114.38037 v 0.76869 l -1.764561,2.04447 1.764561,2.06058 v 0.75255 l -2.504172,-2.82284 z" + style="fill:#db8c0e;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -85.14705,115.14906 v 4.10505 l -1.764561,-2.06058 z" + style="fill:#e09511;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + transform="matrix(0.38152611,0,0,0.38152611,-47.875276,60.21464)"> + d="m -84.282622,112.46793 2.930508,-3.35508 v 1.07874 l -2.504177,2.80346 z" + style="fill:#cb7b01;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -81.352114,110.19159 v 0.76872 l -1.76455,2.04442 1.76455,2.06062 v 0.75256 l -2.504177,-2.82286 z" + style="fill:#db8c0e;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -81.352114,110.96031 v 4.10504 l -1.76455,-2.06062 z" + style="fill:#e09511;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + transform="matrix(0.38152611,0,0,0.38152611,-36.730289,55.993355)"> + d="m -99.988408,103.6052 -2.923272,3.63123 2.923272,-2.85933 z" + style="fill:#fdf198;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -102.91891,108.19564 2.930502,-3.35507 v 1.07874 l -2.504172,2.80347 z" + style="fill:#cb7b01;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -99.988408,105.91931 v 0.7687 l -1.764542,2.04445 1.764542,2.06062 v 0.75254 l -2.504172,-2.82284 z" + style="fill:#db8c0e;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -99.988408,106.68801 v 4.10507 l -1.764542,-2.06062 z" + style="fill:#e09511;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -103.67326,99.343488 2.92325,3.631262 -2.92325,-2.85933 z" + style="fill:#fdf198;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + transform="matrix(0.38152611,0,0,0.38152611,-47.875276,51.732327)"> + d="m -100.27488,94.805778 -2.77607,3.952453 2.8387,-3.167265 z" + style="fill:#fdf198;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -103.1532,99.486163 2.93052,-3.355084 v 1.078755 l -2.50416,2.803456 z" + style="fill:#cb7b01;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -88.801142,99.366441 2.923275,3.631259 -2.923275,-2.85935 z" + style="fill:#fdf198;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -85.14705,95.127706 -2.923268,3.631241 2.923268,-2.859301 z" + style="fill:#fdf198;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -88.077558,99.718133 2.930508,-3.355064 v 1.07874 l -2.504172,2.803451 z" + style="fill:#cb7b01;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -85.14705,97.441809 v 0.768686 l -1.764561,2.044445 1.764561,2.06063 v 0.75254 l -2.504172,-2.82285 z" + style="fill:#db8c0e;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -85.14705,98.210495 v 4.105075 l -1.764561,-2.06063 z" + style="fill:#e09511;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + transform="matrix(0.38152611,0,0,0.38152611,-33.039652,51.750931)"> + d="m -77.005651,103.96913 2.93051,-3.35507 v 1.07875 l -2.504178,2.80347 z" + style="fill:#cb7b01;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -74.075141,101.69281 v 0.7687 l -1.764555,2.04445 1.764555,2.06059 v 0.75257 l -2.504178,-2.82284 z" + style="fill:#db8c0e;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -74.075141,102.46151 v 4.10504 l -1.764555,-2.06059 z" + style="fill:#e09511;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -85.14705,112.06625 -2.923268,3.63125 2.923268,-2.85932 z" + style="fill:#fdf198;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + transform="matrix(0.38152611,0,0,0.38152611,67.95749,31.058772)"> + d="m 119.21965,78.35078 c -1.42346,-0.960143 -2.17165,-2.512485 -2.31058,-4.794121 -0.10357,-1.700279 0.0664,-2.981593 0.79774,-6.013602 0.65312,-2.707852 0.51202,-3.272122 0.78204,-4.854079 l 0.0361,-1.394721 -0.20214,-0.371382 c -0.11117,-0.204254 -0.22149,-0.369248 -0.24518,-0.366648 -0.0734,0.008 -0.96384,1.064492 -1.50486,1.785329 -1.17974,1.571841 -1.84931,3.122277 -1.97124,4.564603 l -0.0472,0.558074 -0.38069,0.07902 c 0.67061,-5.435637 2.69494,-6.289677 3.64472,-7.348314 0.98573,-1.098691 1.46943,0.553646 0.41597,6.09459 -0.64303,3.360127 -0.94923,4.630248 -0.7581,5.675269 0.33011,1.804765 1.80293,4.322612 2.65456,5.239692 0.20524,0.22101 0.21159,0.248407 0.16036,0.691875 -0.0292,0.253966 -0.0813,0.535495 -0.11528,0.62562 -0.0977,0.257841 -0.40064,0.203583 -0.95628,-0.171217 z m -6.52865,-7.220045 -0.31849,-0.0283 0.0393,-0.291907 c 0.9267,0.103334 3.00996,-0.361964 4.06226,-0.512202 0,0.816156 0.20387,0.531886 -1.68482,0.738424 -1.32812,0.145245 -1.45753,0.151036 -2.09811,0.09409 z m 6.55051,-1.354269 c 5.78737,-1.463515 4.07843,-7.855836 4.65428,-9.204229 0.33431,-0.78282 2.79063,1.845147 5.82334,-0.357909 0.26056,0.538222 0.20833,0.633197 -0.47401,0.862107 -1.1965,0.401417 -2.7731,0.418755 -4.35321,0.04784 -0.48675,-0.114268 -0.66468,-0.13066 -0.72828,-0.06717 -0.0955,0.0954 -0.10064,0.723103 -0.0144,1.752044 0.0485,0.577216 0.032,0.82859 -0.10008,1.516837 -0.40118,2.09209 -1.18509,3.623205 -2.47101,4.826325 -0.50722,0.474567 -0.69163,0.599761 -1.0249,0.695759 -0.22354,0.06441 -0.5942,0.211303 -0.8237,0.326472 l -0.41729,0.209415 c -0.0569,-0.0842 -0.0588,-0.364269 -0.0706,-0.607536 z m -4.10074,-12.429117 c -0.1096,-0.03301 -0.31442,-0.131178 -0.45518,-0.218168 -0.21,-0.129786 -0.2827,-0.3178 -0.2827,-0.517322 2.39074,1.033518 4.3723,0.09729 6.00016,-1.739821 1.34875,-1.522125 2.07185,-3.458322 2.51877,-4.91274 0.0975,0.388271 -0.46216,2.258086 -0.99627,3.328867 -1.03168,2.068253 -2.76351,3.475758 -4.91048,3.990892 -0.59733,0.143333 -1.51418,0.176722 -1.8743,0.0683 z m -3.07804,-2.214721 c -0.4745,-0.117272 -0.75984,-0.271106 -1.10291,-0.594653 l -0.27956,-0.263654 0.17048,-0.138025 c 0.26388,-0.213691 0.91189,0.859697 1.9454,0.747645 0.52071,-0.05647 1.33483,-0.194599 1.86074,-0.341238 2.0062,-0.559407 3.03992,-0.919903 4.64111,-2.572556 2.14599,-2.427525 2.46057,-4.36392 2.51637,-4.138004 0.1905,0.771233 -2.5322,5.605607 -4.85666,6.446283 -0.76236,0.284335 -0.78306,0.254538 -2.42875,0.59755 -1.85178,0.385967 -1.91595,0.392642 -2.46623,0.256656 z m 0.0851,-2.973812 c -0.98698,0.04093 -1.56121,-0.07363 -2.05142,-0.409267 -0.55663,-0.191036 2.05142,0.409267 3.92012,-0.07714 2.72557,-0.709434 5.03449,-2.355098 4.94293,-2.26449 -1.65464,1.637248 -4.58651,2.842436 -6.81163,2.750892 z" + style="display:inline;fill:#cf7816;fill-opacity:1;stroke-width:0.07223411" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.27334267" + d="m 112.82162,44.072359 c 1.1049,1.087093 2.14906,2.840619 1.42908,3.514032 -0.91273,0.734711 -1.04567,-2.098977 -3.08234,-5.234932 0.41233,0.476493 0.81273,1.043158 1.27336,1.72152 0.57522,0.847147 1.11872,1.922767 1.48681,2.895937 0.0289,-1.132412 -0.64812,-1.968698 -1.10691,-2.896557 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.2733427" + d="m 115.30968,46.374025 c -0.89441,-1.755838 -4.64676,-8.108029 -5.89761,-7.05343 -0.0366,0.0309 -0.053,-0.08057 -0.0782,-0.122725 0.0906,-0.11209 0.18705,-0.222729 0.51046,-0.276627 1.18892,-0.313872 4.65362,4.78594 5.46538,7.452783 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.2733427" + d="m 117.46033,46.089299 c -0.155,-0.03226 -0.32649,-0.743399 -0.36047,-0.874506 -0.53804,-2.076711 -2.31478,-5.069557 -2.94275,-5.609659 0.87005,1.30839 1.78448,3.374207 2.17178,4.244373 0.3172,0.712718 0.49548,2.007054 0.97009,2.379181 0.17866,0.126924 0.34129,0.143726 0.43242,0.13386 0.0995,-0.05039 0.29932,-0.15647 0.42136,-0.655585 0.094,-1.008607 -0.49847,-3.066078 -1.35509,-4.759843 -0.0782,-0.154665 -0.25662,-0.512125 -0.29632,-0.49744 0,0 -0.0558,0.05818 -0.0326,0.138918 0.27326,0.776914 1.36541,3.497184 1.45704,3.986991 0.0777,0.452689 0.22655,0.964007 -0.004,1.242182 -0.18337,0.169144 -0.23918,0.250503 -0.46003,0.271538 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.2733427" + d="m 120.88634,43.826191 c 0.0928,0.241624 -0.0854,0.634097 -0.26931,1.152583 -0.34681,0.921584 -1.05219,1.409677 -1.30975,1.684546 -0.91394,0.690474 -1.47267,0.907379 -2.20871,1.360723 l -1.17741,0.596087 c -0.48205,0.194491 -2.12046,0.813933 -3.51434,0.903562 -0.36929,0.02374 -2.3093,-0.03735 -3.77403,-0.71035 -0.36779,-0.168981 -0.42796,0.0071 -0.23735,0.169931 0.40697,0.347984 1.21233,0.544092 2.02515,0.650068 0.2314,0.03016 1.84989,0.09714 2.25331,0.03583 1.31625,-0.208588 2.23176,-0.41129 3.74022,-1.178496 0.46236,-0.220643 0.91995,-0.417328 1.39327,-0.692852 0.58634,-0.321618 1.17699,-0.682045 1.76926,-1.056932 0.3766,-0.241078 0.71659,-0.603302 0.94773,-1.000308 0.14747,-0.357733 0.23812,-0.710735 0.35395,-1.065835 0.17741,-0.584315 0.069,-0.714119 0.008,-0.848545 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.2733427" + d="m 92.359508,51.424744 c 0.927662,-0.613849 3.163592,-1.345145 4.994846,-1.925527 5.699326,-1.589632 6.330846,-1.396833 9.848606,-1.78664 1.8478,-0.06317 2.91665,0.131286 4.05442,0.402016 -0.96677,-0.02474 -1.71487,-0.195746 -2.98176,-0.08709 -2.19461,0.330922 -3.54258,0.392009 -5.30881,0.584127 -4.213649,0.495627 -7.089793,1.863525 -10.607302,2.813136 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.2733427" + d="m 110.39945,43.577245 c 0.42958,-2.06738 -3.67467,-3.661442 -7.69483,-4.31076 1.03011,0.333334 1.60994,0.445671 3.08564,0.907326 2.55361,0.999414 3.57792,1.133475 4.60919,3.403434 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.2733427" + d="m 110.24658,45.20152 c -0.38467,-1.185481 -1.50194,-1.829036 -2.38491,-1.850275 -3.68574,-0.149393 -6.09496,0.07666 -9.06334,0.138275 3.82085,0.567495 10.46826,-0.636371 11.44825,1.712008 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.2733427" + d="m 107.53322,45.753017 c -5.77486,-0.596794 -16.995684,0.672171 -19.29788,1.853698 2.937519,-2.011079 14.68966,-2.919285 19.29788,-1.853698 z" /> + transform="matrix(1.7874224,0,0,1.7874224,-46.197839,-60.855823)"> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.31120858" + d="m 72.543733,74.789652 c -0.36515,0.452289 -0.815365,0.79876 -1.350645,1.039428 -0.531129,0.240672 -1.170143,0.361009 -1.917041,0.361009 -0.668063,0 -1.269731,-0.114127 -1.805012,-0.342334 -0.531128,-0.228221 -0.985494,-0.545654 -1.363093,-0.952296 -0.3776,-0.406642 -0.668061,-0.892133 -0.871383,-1.45646 -0.199174,-0.564322 -0.298762,-1.180514 -0.298762,-1.848573 0,-0.676361 0.107888,-1.294631 0.323657,-1.854808 0.215774,-0.564327 0.518681,-1.049811 0.90873,-1.456454 0.394197,-0.406645 0.863084,-0.722006 1.406663,-0.946073 0.543577,-0.228218 1.145247,-0.34233 1.805009,-0.34233 0.65561,0 1.236536,0.107867 1.742767,0.323654 0.510383,0.215772 0.943998,0.497934 1.300854,0.846488 -4.829228,-2.256434 -7.412928,0.637269 -7.454665,3.437133 0.07829,2.721819 2.241762,5.996977 7.411799,3.025045 0,0 0.111642,0.109303 0.16112,0.166571 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.31120858" + d="m 79.335667,73.420324 c 0,0.448141 -0.08299,0.844418 -0.248968,1.188823 -0.165982,0.344404 -0.390048,0.634867 -0.672211,0.871383 -0.282161,0.232363 -0.609969,0.408716 -0.983419,0.529054 -0.3693,0.12033 -0.761422,0.180505 -1.176368,0.180505 -0.45229,0 -0.846489,-0.05188 -1.182592,-0.155613 -0.336108,-0.103747 -0.62864,-0.25726 -0.877608,-0.460588 -0.80124,-0.673862 -1.097573,-1.686168 -1.085264,-1.76194 0.0078,-0.04753 0.572592,0.500816 1.410663,1.488034 0.448413,0.528213 1.480077,0.477532 2.176091,0.451461 1.174398,-0.04397 2.46239,-1.110959 2.639676,-2.331123 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.31120858" + d="m 88.591983,76.090503 -1.96684,-6.149484 c -0.05395,-0.149375 -0.103746,-0.331963 -0.149376,-0.547729 -0.02491,0.103725 -0.0498,0.20125 -0.0747,0.292539 -0.02491,0.09129 -0.05188,0.176347 -0.08092,0.25519 l -1.985512,6.149484 h -1.518689 l -2.788429,-9.000155 c 0.29267,0.0068 0.385625,0.002 0.385625,0.002 0.163656,0.181021 0.37839,1.132922 1.23903,4.410351 0.112877,0.429855 0.86107,2.883966 1.2745,4.254529 0.103422,0.342872 0.765101,0.144494 0.985839,0.110963 0.477176,-0.07246 0.442886,-1.033335 1.267676,-3.657359 0.286675,-0.912037 1.216661,-4.229922 1.59438,-3.589591 1.081142,2.850636 1.940274,6.749387 1.817411,7.469343 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.31120858" + d="m 102.08738,73.426557 c -0.21577,0.560175 -0.52286,1.045663 -0.92121,1.456455 -0.39835,0.410791 -0.8776,0.732377 -1.43779,0.964743 -0.560172,0.228219 -1.182593,0.342334 -1.867249,0.342334 -0.680504,0 -1.300848,-0.114127 -1.861024,-0.342334 -0.560175,-0.232366 -1.04151,-0.553952 -1.444007,-0.964743 -0.398347,-0.410792 -0.707484,-0.89628 -0.927399,-1.456455 1.278335,1.766799 5.29785,4.217846 8.458679,0 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.31120858" + d="m 110.98287,74.789652 c -0.36514,0.452289 -0.81535,0.79876 -1.35062,1.039428 -0.53115,0.240672 -1.17016,0.361009 -1.91705,0.361009 -0.66807,0 -1.26975,-0.114127 -1.80502,-0.342334 -0.53111,-0.228221 -0.98548,-0.545654 -1.36309,-0.952296 -0.3776,-0.406642 -0.66805,-0.892133 -0.87138,-1.45646 -0.19916,-0.564322 -0.29876,-1.180514 -0.29876,-1.848573 0.56374,2.515119 1.8135,5.920729 7.42714,3.005606 0,0 0.13171,0.144515 0.17878,0.19362 z" /> + transform="matrix(0.42743884,0,0,0.42743884,64.811717,26.577986)"> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#fdf198;fill-opacity:1;stroke:none;stroke-width:0.03163674" + d="m 117.72613,74.007381 q -0.009,-0.0059 -0.015,-0.01268 -0.004,-0.0059 -0.007,-0.01844 -6.6e-4,-0.01198 0.004,-0.02391 0.005,-0.01197 0.0137,-0.02873 0.008,-0.01663 0.0127,-0.03933 0.004,-0.02219 0.002,-0.05423 -0.003,-0.041 -0.0219,-0.07038 -0.0175,-0.02943 -0.0472,-0.04758 -0.0295,-0.01751 -0.0702,-0.02386 -0.04,-0.0065 -0.0897,-0.0014 -0.0518,0.0052 -0.0909,0.01939 -0.0393,0.01519 -0.0648,0.03862 -0.0249,0.02341 -0.0369,0.05431 -0.0108,0.0309 -0.007,0.06808 0.003,0.03712 0.0144,0.05897 0.0122,0.0225 0.0237,0.03712 0.0126,0.01483 0.0228,0.02507 0.0108,0.01091 0.012,0.02554 0.002,0.01894 -0.012,0.02974 l -0.0524,0.05013 q -0.0327,-0.02295 -0.0564,-0.05116 -0.0229,-0.02831 -0.0387,-0.05989 -0.015,-0.03098 -0.0233,-0.06515 -0.008,-0.0335 -0.0108,-0.06755 -0.005,-0.05988 0.0108,-0.114858 0.0177,-0.05511 0.0567,-0.09881 0.039,-0.04378 0.0986,-0.07293 0.0602,-0.02865 0.13954,-0.03616 0.0712,-0.0069 0.13358,0.0073 0.0629,0.01501 0.11095,0.05045 0.0484,0.03571 0.0792,0.09161 0.0309,0.05614 0.0381,0.132414 0.007,0.07245 -0.0108,0.128837 -0.0182,0.05696 -0.0574,0.104613 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#fdf198;fill-opacity:1;stroke:none;stroke-width:0.03163674" + d="m 117.85762,74.160454 q 0.0664,-0.0014 0.11967,0.0168 0.054,0.01843 0.093,0.05283 0.04,0.03493 0.0649,0.08389 0.0257,0.04955 0.0359,0.109408 0.0108,0.06234 9.1e-4,0.115358 -0.008,0.05357 -0.0346,0.09448 -0.0254,0.04065 -0.0643,0.06684 -0.0392,0.02651 -0.0885,0.03499 -0.0432,0.0073 -0.0778,0.0032 -0.0338,-0.0032 -0.0614,-0.0177 -0.0275,-0.01395 -0.0489,-0.03796 -0.0213,-0.02405 -0.0383,-0.05572 -0.012,0.08545 -0.0572,0.134324 -0.0454,0.04888 -0.12478,0.0624 -0.0675,0.01145 -0.12341,-0.0052 -0.0559,-0.01609 -0.0989,-0.05217 -0.0421,-0.03646 -0.0698,-0.08949 -0.0275,-0.05245 -0.0382,-0.114806 -0.012,-0.06798 -0.004,-0.121187 0.007,-0.05315 0.0311,-0.09582 0.0243,-0.04254 0.064,-0.07635 0.0398,-0.03368 0.0948,-0.06234 l 0.0395,0.06324 q 0.0158,0.02491 0.0142,0.04888 -6.6e-4,0.02457 -0.0192,0.03853 -0.0198,0.01483 -0.0388,0.03162 -0.0189,0.01734 -0.0325,0.03892 -0.0131,0.02155 -0.0193,0.0483 -0.005,0.02722 3.9e-4,0.0622 0.007,0.03933 0.0243,0.0665 0.0181,0.02711 0.0419,0.04289 0.0242,0.01644 0.0506,0.02155 0.0273,0.0059 0.0529,0.0014 0.0325,-0.0052 0.0576,-0.0168 0.0255,-0.01145 0.0407,-0.03642 0.0151,-0.02496 0.0185,-0.06798 0.003,-0.04236 -0.008,-0.110946 l 0.10974,-0.01869 q 0.0108,0.05665 0.0267,0.09237 0.0163,0.03571 0.0376,0.05465 0.0219,0.01927 0.0484,0.02388 0.0265,0.0044 0.0564,-6.46e-4 0.0637,-0.01091 0.0905,-0.05206 0.0268,-0.04126 0.0168,-0.100449 -0.004,-0.02751 -0.0168,-0.04922 -0.0108,-0.02179 -0.0288,-0.03815 -0.0169,-0.01554 -0.0377,-0.02483 -0.0208,-0.0092 -0.0443,-0.0118 -0.0303,-0.0059 -0.0429,-0.02173 -0.012,-0.01536 -0.0125,-0.04734 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#fdf198;fill-opacity:1;stroke:none;stroke-width:0.03163674" + d="m 118.24965,75.759742 -0.68071,-0.02484 -0.0336,-0.120724 q -0.005,-0.02075 0.0189,-0.03609 l 0.3303,-0.2127 q 0.0168,-0.01042 0.0332,-0.02039 0.0173,-0.0092 0.0346,-0.01753 -0.0192,0.0014 -0.0394,0.002 -0.0195,0.0014 -0.0394,3.29e-4 l -0.39198,-0.01376 q -0.0288,-1.12e-4 -0.0359,-0.02491 l -0.0324,-0.115843 0.57036,-0.372059 0.0335,0.120096 q 0.004,0.01644 -1.6e-4,0.03019 -0.004,0.01358 -0.0156,0.02088 L 117.6922,75.1569 q -0.0255,0.0143 -0.0504,0.02659 -0.0247,0.01268 -0.0498,0.02361 0.028,-0.0014 0.0563,-6.46e-4 0.0284,6.46e-4 0.0582,0.0014 l 0.36411,0.01042 q 0.013,3.84e-4 0.0242,0.0082 0.0108,0.0092 0.0152,0.02405 l 0.0185,0.06641 q 0.004,0.0159 -6.6e-4,0.02903 -0.004,0.01359 -0.0155,0.02088 l -0.30732,0.193821 q -0.0253,0.01571 -0.0501,0.02962 -0.0243,0.01465 -0.0486,0.02865 0.0541,-0.0065 0.11299,-0.0071 l 0.35964,-6.46e-4 q 0.0135,0.0014 0.0244,0.0096 0.0108,0.0092 0.0152,0.02399 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#fdf198;fill-opacity:1;stroke:none;stroke-width:0.03163674" + d="m 118.42714,76.020155 q 0.033,0.06428 0.0388,0.127283 0.005,0.06362 -0.0131,0.120366 -0.0187,0.05743 -0.064,0.105828 -0.0448,0.04857 -0.11298,0.08337 -0.0687,0.03518 -0.13434,0.04307 -0.0657,0.0078 -0.12374,-0.01 -0.0579,-0.01734 -0.10585,-0.05961 -0.0476,-0.04169 -0.0804,-0.105959 -0.0331,-0.06479 -0.0394,-0.128409 -0.005,-0.06362 0.0134,-0.121242 0.0198,-0.05702 0.0645,-0.106099 0.0448,-0.04857 0.1136,-0.08364 0.0682,-0.03485 0.13376,-0.04274 0.0659,-0.0073 0.12322,0.01019 0.0576,0.0183 0.10551,0.06046 0.0479,0.04229 0.081,0.107096 z m -0.48846,0.249652 q 0.0369,0.07212 0.10281,0.08171 0.0663,0.01 0.15984,-0.03763 0.0936,-0.04777 0.1247,-0.107781 0.0316,-0.05941 -0.004,-0.131534 -0.0374,-0.07324 -0.10509,-0.08341 -0.0669,-0.0096 -0.15985,0.03763 -0.0928,0.04754 -0.1241,0.107477 -0.0302,0.06027 0.007,0.133502 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#fdf198;fill-opacity:1;stroke:none;stroke-width:0.03163674" + d="m 118.75095,76.858923 q -0.0108,-0.0025 -0.0186,-0.0065 -0.007,-0.0038 -0.0131,-0.01464 -0.005,-0.01073 -0.004,-0.02405 9.2e-4,-0.01358 0.002,-0.03168 9.1e-4,-0.01834 -0.002,-0.04132 -0.003,-0.02255 -0.0176,-0.05135 -0.0186,-0.03654 -0.0465,-0.0573 -0.0269,-0.02095 -0.0615,-0.02684 -0.034,-0.0052 -0.0742,0.0038 -0.0395,0.0088 -0.084,0.03155 -0.046,0.02367 -0.0775,0.0516 -0.0308,0.02852 -0.0461,0.05983 -0.0147,0.03098 -0.0143,0.06407 9.2e-4,0.03279 0.0183,0.06602 0.0171,0.03329 0.0352,0.04947 0.019,0.01644 0.0357,0.02574 0.0174,0.0092 0.0304,0.01502 0.0139,0.0065 0.0205,0.01933 0.008,0.01699 2e-4,0.03193 l -0.0301,0.06591 q -0.0389,-0.0092 -0.0712,-0.02684 -0.032,-0.01771 -0.0581,-0.04139 -0.0255,-0.02322 -0.0457,-0.05193 -0.0199,-0.0281 -0.0356,-0.05859 -0.0274,-0.05357 -0.032,-0.110927 -0.003,-0.05774 0.0163,-0.112771 0.0201,-0.05509 0.0647,-0.104136 0.0453,-0.04874 0.11638,-0.08507 0.0638,-0.03251 0.12695,-0.04216 0.0641,-0.0092 0.12176,0.0059 0.058,0.01554 0.10745,0.05592 0.0493,0.04081 0.0842,0.109049 0.0331,0.06481 0.037,0.123905 0.003,0.05969 -0.0149,0.118417 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#fdf198;fill-opacity:1;stroke:none;stroke-width:0.03163674" + d="m 118.56107,77.17685 q 0.0167,-0.01042 0.0355,-0.01413 0.0189,-0.0032 0.0366,6.47e-4 0.0174,0.0045 0.0333,0.01502 0.0159,0.01091 0.0267,0.02811 0.0108,0.01698 0.0134,0.03558 0.003,0.01902 -6.3e-4,0.03654 -0.003,0.01791 -0.0148,0.03389 -0.0108,0.0159 -0.0277,0.02625 -0.0173,0.01091 -0.0362,0.01377 -0.0184,0.0025 -0.0362,-0.002 -0.0174,-0.0045 -0.0327,-0.01518 -0.0155,-0.01042 -0.0263,-0.02751 -0.0108,-0.01698 -0.0137,-0.03615 -0.003,-0.01869 6.4e-4,-0.03615 0.004,-0.01734 0.0144,-0.03291 0.0108,-0.01536 0.0284,-0.02612 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#fdf198;fill-opacity:1;stroke:none;stroke-width:0.03163674" + d="m 119.35425,77.477323 q 0.002,-0.04165 -0.0108,-0.07302 -0.0138,-0.03085 -0.0401,-0.05548 -0.026,-0.0242 -0.0559,-0.03383 -0.0299,-0.0096 -0.0631,-0.0038 -0.0329,0.0059 -0.0694,0.0289 -0.0359,0.02275 -0.0742,0.06396 -0.0388,0.04172 -0.0594,0.07687 -0.0196,0.03512 -0.0246,0.06532 -0.004,0.02974 0.005,0.05477 0.0108,0.02471 0.033,0.04546 0.0358,0.03323 0.0746,0.04165 0.0389,0.0084 0.0865,0.0014 z m 0.42571,-0.227788 -0.64081,0.688053 -0.0699,-0.0651 q -0.0226,-0.02115 -0.009,-0.04748 l 0.033,-0.0549 q -0.0593,0.0059 -0.1158,-0.0084 -0.0559,-0.01413 -0.10563,-0.06027 -0.0388,-0.03622 -0.0561,-0.08259 -0.0173,-0.04643 -0.0125,-0.09896 0.005,-0.05258 0.0351,-0.110052 0.0298,-0.05703 0.084,-0.11536 0.0491,-0.05283 0.10573,-0.0848 0.0566,-0.03203 0.11446,-0.04036 0.0579,-0.0085 0.11264,0.008 0.0553,0.0159 0.10194,0.0595 0.0398,0.03705 0.0565,0.07591 0.0166,0.03886 0.0189,0.08079 l 0.23332,-0.250493 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#fdf198;fill-opacity:1;stroke:none;stroke-width:0.03163674" + d="m 119.89612,77.970785 q 0.019,-0.02361 0.0289,-0.04985 0.0108,-0.0264 0.0108,-0.05278 -3.7e-4,-0.02645 -0.0139,-0.05206 -0.0126,-0.02567 -0.0397,-0.04758 -0.0526,-0.04254 -0.10748,-0.03724 -0.0542,0.0052 -0.10713,0.05405 z m -0.291,-0.114142 q -0.0285,0.0412 -0.0406,0.07854 -0.012,0.03675 -0.009,0.06972 0.003,0.03251 0.0195,0.06135 0.0175,0.0287 0.0471,0.05265 0.0295,0.02386 0.0561,0.03402 0.0273,0.01074 0.0496,0.01502 0.0232,0.0044 0.0405,0.0073 0.0177,0.0032 0.0291,0.01233 0.0152,0.01233 0.0135,0.02962 l -6.5e-4,0.07256 q -0.0394,0.0073 -0.0775,0.0032 -0.0377,-0.0044 -0.0733,-0.01698 -0.0346,-0.01252 -0.0663,-0.03168 -0.0312,-0.01881 -0.0578,-0.04023 -0.0527,-0.04254 -0.0839,-0.09641 -0.0308,-0.05438 -0.037,-0.115324 -0.005,-0.06155 0.0159,-0.127191 0.0217,-0.06617 0.0755,-0.132576 0.0419,-0.0516 0.0951,-0.0834 0.0538,-0.03227 0.11177,-0.04061 0.059,-0.0084 0.11967,0.008 0.0612,0.01698 0.11772,0.06273 0.0476,0.03862 0.0756,0.08647 0.028,0.04778 0.0333,0.100873 0.005,0.05237 -0.0128,0.108442 -0.0175,0.0558 -0.0618,0.110445 -0.0223,0.02762 -0.0361,0.03266 -0.0135,0.0044 -0.0302,-0.0092 z" /> diff --git a/assets/images/map-shadow.png b/assets/images/map-shadow.png deleted file mode 100644 index 42fae9a..0000000 --- a/assets/images/map-shadow.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b1520182ff8fbf2272465fbb8b45060b845e62ab3e88b1f7d9c737af58df17df -size 11227 diff --git a/assets/images/map.png b/assets/images/map.png deleted file mode 100644 index 3d8a545..0000000 --- a/assets/images/map.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7612ea9258679e959e81ab0b7bcab967eef6215d7ca491aeef0204de25b46df2 -size 58224 diff --git a/assets/images/njom.jpg b/assets/images/njom.jpg deleted file mode 100644 index 1d95697..0000000 --- a/assets/images/njom.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:96ead163944e3cf921eaa3376726329e4e41c73e3ac5cc98be2a690655d3446c -size 6643437 diff --git a/assets/images/overlay.png b/assets/images/overlay.png deleted file mode 100644 index bf06802..0000000 --- a/assets/images/overlay.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:29104d8dba9179915cd8e216cd8b39dce3f9d66993429a9108d2ab3797782a43 -size 4385 diff --git a/assets/images/pic01.jpg b/assets/images/pic01.jpg deleted file mode 100644 index 73767d9..0000000 --- a/assets/images/pic01.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:78832e1aa008b77a6d201ea3399a31990d2cd13d6b5106d668a80b126a4e662d -size 3313 diff --git a/assets/images/pic02.jpg b/assets/images/pic02.jpg deleted file mode 100644 index 56bc9a1..0000000 --- a/assets/images/pic02.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:33d9806555eb7bf323d6cee4060c5e56a04c638c44d320a62e9980656bf840ae -size 3711 diff --git a/assets/images/pic03.jpg b/assets/images/pic03.jpg deleted file mode 100644 index c713b2e..0000000 --- a/assets/images/pic03.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:81749c7fa5d2d54f9a29c9fc57d81724c7b0936a21db84d1daaf57a0dbce5647 -size 3855 diff --git a/assets/images/pic04.jpg b/assets/images/pic04.jpg deleted file mode 100644 index 17bf55f..0000000 --- a/assets/images/pic04.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:89b4eba71b0a1cc5128069cec406aadf4d5479317e62c7c9f5b00427f2a8c7c6 -size 5677 diff --git a/assets/images/pic05.jpg b/assets/images/pic05.jpg deleted file mode 100644 index 28b717b..0000000 --- a/assets/images/pic05.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ffe865f3c75fe7e132d47984d8e2406620294df21d8abc0bf8384e8f33a16346 -size 5936 diff --git a/assets/images/pic06.jpg b/assets/images/pic06.jpg deleted file mode 100644 index 832dfbc..0000000 --- a/assets/images/pic06.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b79fb0808ec98853f8ae57af4dff88f235b42c6569ace4e679923a0b69bc9e62 -size 5887 diff --git a/assets/images/pic07.jpg b/assets/images/pic07.jpg deleted file mode 100644 index 5f21fea..0000000 --- a/assets/images/pic07.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:51a8b2168fc4c6e1edc741b1208a066a4c7dab1cb20b3a518493e98864bd4d88 -size 6325 diff --git a/assets/images/pic08.jpg b/assets/images/pic08.jpg deleted file mode 100644 index 3213452..0000000 --- a/assets/images/pic08.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b58f2f223fcddb42f5a6c5831e1aa5a3752a3131996e693a7cf9ba93565e78ce -size 10066 diff --git a/assets/images/tmp.jpg b/assets/images/tmp.jpg deleted file mode 100644 index b826b0e..0000000 --- a/assets/images/tmp.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:67eb4d0286bb4c1f9edf03d54c008965f2a9c3a243121084e43fc10132b40f70 -size 286022 diff --git a/assets/images/tmp2.jpg b/assets/images/tmp2.jpg deleted file mode 100644 index 59b8a80..0000000 --- a/assets/images/tmp2.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c37c24e0834c2ec7b306d1fff0c568ead9f1e657b8bdb5867e996c0d5f181fc2 -size 380468 diff --git a/assets/images/toolbox-kiste.jpg b/assets/images/toolbox-kiste.jpg deleted file mode 100644 index 27f3809..0000000 --- a/assets/images/toolbox-kiste.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d85331e1bf5cdfc0d79da74f820d7272c3fd1d3ac316219318742560a9b908cc -size 337822 diff --git a/assets/images/toolbox_1.jpg b/assets/images/toolbox_1.jpg deleted file mode 100644 index e5beeab..0000000 --- a/assets/images/toolbox_1.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ee2b07fc05764c8960dc41ddda00c3268739c3a778429d4cf9ff6be7f7cbf1a8 -size 400514 diff --git a/assets/images/waffle.jpg b/assets/images/waffle.jpg deleted file mode 100644 index 5f43383..0000000 --- a/assets/images/waffle.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3847e82cef89f7aca0f58ae4ee7d4fc24b5acb836516e17117f0d37fd390cd60 -size 7787991 diff --git a/assets/images/winkekatze.jpg b/assets/images/winkekatze.jpg deleted file mode 100644 index b7c9563..0000000 --- a/assets/images/winkekatze.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a1b502bf251d89bbb0f035bab661ca42cad4dd70c24671dee997f2adefd14b39 -size 5444326 diff --git a/assets/images/winkekatze02.jpg b/assets/images/winkekatze02.jpg deleted file mode 100644 index f885490..0000000 --- a/assets/images/winkekatze02.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:917d0d7f803260fcf9b83c312f0a3e41c97e2efbfd2d87738c2b3d0d88378037 -size 5126992 diff --git a/assets/js/ie/PIE.htc b/assets/js/ie/PIE.htc deleted file mode 100644 index ca3b547..0000000 --- a/assets/js/ie/PIE.htc +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - diff --git a/assets/js/ie/backgroundsize.min.htc b/assets/js/ie/backgroundsize.min.htc deleted file mode 100644 index 3d9960d..0000000 --- a/assets/js/ie/backgroundsize.min.htc +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/assets/js/ie/html5shiv.js b/assets/js/ie/html5shiv.js deleted file mode 100644 index dcf351c..0000000 --- a/assets/js/ie/html5shiv.js +++ /dev/null @@ -1,8 +0,0 @@ -/* - HTML5 Shiv v3.6.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed -*/ -(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); -a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x"; -c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| -"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video",version:"3.6.2",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment(); -for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d #mq-test-1 { width: 42px; }',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){v(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))},g=function(a){return a.replace(c.regex.minmaxwh,"").match(c.regex.other)};if(c.ajax=f,c.queue=d,c.unsupportedmq=g,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,comments:/\/\*[^*]*\*+([^/][^*]*\*+)*\//gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,maxw:/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,minmaxwh:/\(\s*m(in|ax)\-(height|width)\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/gi,other:/\([^\)]*\)/g},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var h,i,j,k=a.document,l=k.documentElement,m=[],n=[],o=[],p={},q=30,r=k.getElementsByTagName("head")[0]||l,s=k.getElementsByTagName("base")[0],t=r.getElementsByTagName("link"),u=function(){var a,b=k.createElement("div"),c=k.body,d=l.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=k.createElement("body"),c.style.background="none"),l.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&l.insertBefore(c,l.firstChild),a=b.offsetWidth,f?l.removeChild(c):c.removeChild(b),l.style.fontSize=d,e&&(c.style.fontSize=e),a=j=parseFloat(a)},v=function(b){var c="clientWidth",d=l[c],e="CSS1Compat"===k.compatMode&&d||k.body[c]||d,f={},g=t[t.length-1],p=(new Date).getTime();if(b&&h&&q>p-h)return a.clearTimeout(i),i=a.setTimeout(v,q),void 0;h=p;for(var s in m)if(m.hasOwnProperty(s)){var w=m[s],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?j||u():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?j||u():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(n[w.rules]))}for(var C in o)o.hasOwnProperty(C)&&o[C]&&o[C].parentNode===r&&r.removeChild(o[C]);o.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=k.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,r.insertBefore(E,g.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(k.createTextNode(F)),o.push(E)}},w=function(a,b,d){var e=a.replace(c.regex.comments,"").replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var h=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},i=!f&&d;b.length&&(b+="/"),i&&(f=1);for(var j=0;f>j;j++){var k,l,o,p;i?(k=d,n.push(h(a))):(k=e[j].match(c.regex.findStyles)&&RegExp.$1,n.push(RegExp.$2&&h(RegExp.$2))),o=k.split(","),p=o.length;for(var q=0;p>q;q++)l=o[q],g(l)||m.push({media:l.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:n.length-1,hasquery:l.indexOf("(")>-1,minw:l.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:l.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}v()},x=function(){if(d.length){var b=d.shift();f(b.href,function(c){w(c,b.href,b.media),p[b.href]=!0,a.setTimeout(function(){x()},0)})}},y=function(){for(var b=0;ba?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b="length"in a&&a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1; - -return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function aa(){return!0}function ba(){return!1}function ca(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),ha=/^\s+/,ia=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ja=/<([\w:]+)/,ka=/\s*$/g,ra={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:k.htmlSerialize?[0,"",""]:[1,"X
","
"]},sa=da(y),ta=sa.appendChild(y.createElement("div"));ra.optgroup=ra.option,ra.tbody=ra.tfoot=ra.colgroup=ra.caption=ra.thead,ra.th=ra.td;function ua(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ua(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function va(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wa(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xa(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function ya(a){var b=pa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function za(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Aa(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Ba(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xa(b).text=a.text,ya(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!ga.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ta.innerHTML=a.outerHTML,ta.removeChild(f=ta.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ua(f),h=ua(a),g=0;null!=(e=h[g]);++g)d[g]&&Ba(e,d[g]);if(b)if(c)for(h=h||ua(a),d=d||ua(f),g=0;null!=(e=h[g]);g++)Aa(e,d[g]);else Aa(a,f);return d=ua(f,"script"),d.length>0&&za(d,!i&&ua(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=da(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(la.test(f)){h=h||o.appendChild(b.createElement("div")),i=(ja.exec(f)||["",""])[1].toLowerCase(),l=ra[i]||ra._default,h.innerHTML=l[1]+f.replace(ia,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&ha.test(f)&&p.push(b.createTextNode(ha.exec(f)[0])),!k.tbody){f="table"!==i||ka.test(f)?""!==l[1]||ka.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ua(p,"input"),va),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ua(o.appendChild(f),"script"),g&&za(h),c)){e=0;while(f=h[e++])oa.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ua(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&za(ua(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ua(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fa,""):void 0;if(!("string"!=typeof a||ma.test(a)||!k.htmlSerialize&&ga.test(a)||!k.leadingWhitespace&&ha.test(a)||ra[(ja.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ia,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ua(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ua(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&na.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ua(i,"script"),xa),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ua(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,ya),j=0;f>j;j++)d=g[j],oa.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qa,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Ca,Da={};function Ea(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fa(a){var b=y,c=Da[a];return c||(c=Ea(a,b),"none"!==c&&c||(Ca=(Ca||m("');else if(l){var p="";p=o&&o.youtube?"lg-has-youtube":o&&o.vimeo?"lg-has-vimeo":"lg-has-html5",k.$slide.eq(b).prepend('
')}else o?(k.$slide.eq(b).prepend('
'),k.$el.trigger("hasVideo.lg",[b,f,j])):k.$slide.eq(b).prepend('
');if(k.$el.trigger("onAferAppendSlide.lg",[b]),e=k.$slide.eq(b).find(".lg-object"),i&&e.attr("sizes",i),h){e.attr("srcset",h);try{picturefill({elements:[e[0]]})}catch(a){console.warn("lightGallery :- If you want srcset to be supported for older browser please include picturefil version 2 javascript library in your document.")}}".lg-sub-html"!==this.s.appendSubHtmlTo&&k.addHtml(b),k.$slide.eq(b).addClass("lg-loaded")}k.$slide.eq(b).find(".lg-object").on("load.lg error.lg",function(){var c=0;d&&!a("body").hasClass("lg-from-hash")&&(c=d),setTimeout(function(){k.$slide.eq(b).addClass("lg-complete"),k.$el.trigger("onSlideItemLoad.lg",[b,d||0])},c)}),o&&o.html5&&!l&&k.$slide.eq(b).addClass("lg-complete"),!0===c&&(k.$slide.eq(b).hasClass("lg-complete")?k.preload(b):k.$slide.eq(b).find(".lg-object").on("load.lg error.lg",function(){k.preload(b)}))},b.prototype.slide=function(b,c,d,e){var f=this.$outer.find(".lg-current").index(),g=this;if(!g.lGalleryOn||f!==b){var h=this.$slide.length,i=g.lGalleryOn?this.s.speed:0;if(!g.lgBusy){if(this.s.download){var j;j=g.s.dynamic?!1!==g.s.dynamicEl[b].downloadUrl&&(g.s.dynamicEl[b].downloadUrl||g.s.dynamicEl[b].src):"false"!==g.$items.eq(b).attr("data-download-url")&&(g.$items.eq(b).attr("data-download-url")||g.$items.eq(b).attr("href")||g.$items.eq(b).attr("data-src")),j?(a("#lg-download").attr("href",j),g.$outer.removeClass("lg-hide-download")):g.$outer.addClass("lg-hide-download")}if(this.$el.trigger("onBeforeSlide.lg",[f,b,c,d]),g.lgBusy=!0,clearTimeout(g.hideBartimeout),".lg-sub-html"===this.s.appendSubHtmlTo&&setTimeout(function(){g.addHtml(b)},i),this.arrowDisable(b),e||(bf&&(e="next")),c){this.$slide.removeClass("lg-prev-slide lg-current lg-next-slide");var k,l;h>2?(k=b-1,l=b+1,0===b&&f===h-1?(l=0,k=h-1):b===h-1&&0===f&&(l=0,k=h-1)):(k=0,l=1),"prev"===e?g.$slide.eq(l).addClass("lg-next-slide"):g.$slide.eq(k).addClass("lg-prev-slide"),g.$slide.eq(b).addClass("lg-current")}else g.$outer.addClass("lg-no-trans"),this.$slide.removeClass("lg-prev-slide lg-next-slide"),"prev"===e?(this.$slide.eq(b).addClass("lg-prev-slide"),this.$slide.eq(f).addClass("lg-next-slide")):(this.$slide.eq(b).addClass("lg-next-slide"),this.$slide.eq(f).addClass("lg-prev-slide")),setTimeout(function(){g.$slide.removeClass("lg-current"),g.$slide.eq(b).addClass("lg-current"),g.$outer.removeClass("lg-no-trans")},50);g.lGalleryOn?(setTimeout(function(){g.loadContent(b,!0,0)},this.s.speed+50),setTimeout(function(){g.lgBusy=!1,g.$el.trigger("onAfterSlide.lg",[f,b,c,d])},this.s.speed)):(g.loadContent(b,!0,g.s.backdropDuration),g.lgBusy=!1,g.$el.trigger("onAfterSlide.lg",[f,b,c,d])),g.lGalleryOn=!0,this.s.counter&&a("#lg-counter-current").text(b+1)}g.index=b}},b.prototype.goToNextSlide=function(a){var b=this,c=b.s.loop;a&&b.$slide.length<3&&(c=!1),b.lgBusy||(b.index+10?(b.index--,b.$el.trigger("onBeforePrevSlide.lg",[b.index,a]),b.slide(b.index,a,!1,"prev")):c?(b.index=b.$items.length-1,b.$el.trigger("onBeforePrevSlide.lg",[b.index,a]),b.slide(b.index,a,!1,"prev")):b.s.slideEndAnimatoin&&!a&&(b.$outer.addClass("lg-left-end"),setTimeout(function(){b.$outer.removeClass("lg-left-end")},400)))},b.prototype.keyPress=function(){var b=this;this.$items.length>1&&a(window).on("keyup.lg",function(a){b.$items.length>1&&(37===a.keyCode&&(a.preventDefault(),b.goToPrevSlide()),39===a.keyCode&&(a.preventDefault(),b.goToNextSlide()))}),a(window).on("keydown.lg",function(a){!0===b.s.escKey&&27===a.keyCode&&(a.preventDefault(),b.$outer.hasClass("lg-thumb-open")?b.$outer.removeClass("lg-thumb-open"):b.destroy())})},b.prototype.arrow=function(){var a=this;this.$outer.find(".lg-prev").on("click.lg",function(){a.goToPrevSlide()}),this.$outer.find(".lg-next").on("click.lg",function(){a.goToNextSlide()})},b.prototype.arrowDisable=function(a){!this.s.loop&&this.s.hideControlOnEnd&&(a+10?this.$outer.find(".lg-prev").removeAttr("disabled").removeClass("disabled"):this.$outer.find(".lg-prev").attr("disabled","disabled").addClass("disabled"))},b.prototype.setTranslate=function(a,b,c){this.s.useLeft?a.css("left",b):a.css({transform:"translate3d("+b+"px, "+c+"px, 0px)"})},b.prototype.touchMove=function(b,c){var d=c-b;Math.abs(d)>15&&(this.$outer.addClass("lg-dragging"),this.setTranslate(this.$slide.eq(this.index),d,0),this.setTranslate(a(".lg-prev-slide"),-this.$slide.eq(this.index).width()+d,0),this.setTranslate(a(".lg-next-slide"),this.$slide.eq(this.index).width()+d,0))},b.prototype.touchEnd=function(a){var b=this;"lg-slide"!==b.s.mode&&b.$outer.addClass("lg-slide"),this.$slide.not(".lg-current, .lg-prev-slide, .lg-next-slide").css("opacity","0"),setTimeout(function(){b.$outer.removeClass("lg-dragging"),a<0&&Math.abs(a)>b.s.swipeThreshold?b.goToNextSlide(!0):a>0&&Math.abs(a)>b.s.swipeThreshold?b.goToPrevSlide(!0):Math.abs(a)<5&&b.$el.trigger("onSlideClick.lg"),b.$slide.removeAttr("style")}),setTimeout(function(){b.$outer.hasClass("lg-dragging")||"lg-slide"===b.s.mode||b.$outer.removeClass("lg-slide")},b.s.speed+100)},b.prototype.enableSwipe=function(){var a=this,b=0,c=0,d=!1;a.s.enableSwipe&&a.doCss()&&(a.$slide.on("touchstart.lg",function(c){a.$outer.hasClass("lg-zoomed")||a.lgBusy||(c.preventDefault(),a.manageSwipeClass(),b=c.originalEvent.targetTouches[0].pageX)}),a.$slide.on("touchmove.lg",function(e){a.$outer.hasClass("lg-zoomed")||(e.preventDefault(),c=e.originalEvent.targetTouches[0].pageX,a.touchMove(b,c),d=!0)}),a.$slide.on("touchend.lg",function(){a.$outer.hasClass("lg-zoomed")||(d?(d=!1,a.touchEnd(c-b)):a.$el.trigger("onSlideClick.lg"))}))},b.prototype.enableDrag=function(){var b=this,c=0,d=0,e=!1,f=!1;b.s.enableDrag&&b.doCss()&&(b.$slide.on("mousedown.lg",function(d){b.$outer.hasClass("lg-zoomed")||b.lgBusy||a(d.target).text().trim()||(d.preventDefault(),b.manageSwipeClass(),c=d.pageX,e=!0,b.$outer.scrollLeft+=1,b.$outer.scrollLeft-=1,b.$outer.removeClass("lg-grab").addClass("lg-grabbing"),b.$el.trigger("onDragstart.lg"))}),a(window).on("mousemove.lg",function(a){e&&(f=!0,d=a.pageX,b.touchMove(c,d),b.$el.trigger("onDragmove.lg"))}),a(window).on("mouseup.lg",function(g){f?(f=!1,b.touchEnd(d-c),b.$el.trigger("onDragend.lg")):(a(g.target).hasClass("lg-object")||a(g.target).hasClass("lg-video-play"))&&b.$el.trigger("onSlideClick.lg"),e&&(e=!1,b.$outer.removeClass("lg-grabbing").addClass("lg-grab"))}))},b.prototype.manageSwipeClass=function(){var a=this.index+1,b=this.index-1;this.s.loop&&this.$slide.length>2&&(0===this.index?b=this.$slide.length-1:this.index===this.$slide.length-1&&(a=0)),this.$slide.removeClass("lg-next-slide lg-prev-slide"),b>-1&&this.$slide.eq(b).addClass("lg-prev-slide"),this.$slide.eq(a).addClass("lg-next-slide")},b.prototype.mousewheel=function(){var a=this;a.$outer.on("mousewheel.lg",function(b){b.deltaY&&(b.deltaY>0?a.goToPrevSlide():a.goToNextSlide(),b.preventDefault())})},b.prototype.closeGallery=function(){var b=this,c=!1;this.$outer.find(".lg-close").on("click.lg",function(){b.destroy()}),b.s.closable&&(b.$outer.on("mousedown.lg",function(b){c=!!(a(b.target).is(".lg-outer")||a(b.target).is(".lg-item ")||a(b.target).is(".lg-img-wrap"))}),b.$outer.on("mousemove.lg",function(){c=!1}),b.$outer.on("mouseup.lg",function(d){(a(d.target).is(".lg-outer")||a(d.target).is(".lg-item ")||a(d.target).is(".lg-img-wrap")&&c)&&(b.$outer.hasClass("lg-dragging")||b.destroy())}))},b.prototype.destroy=function(b){var c=this;b||(c.$el.trigger("onBeforeClose.lg"),a(window).scrollTop(c.prevScrollTop)),b&&(c.s.dynamic||this.$items.off("click.lg click.lgcustom"),a.removeData(c.el,"lightGallery")),this.$el.off(".lg.tm"),a.each(a.fn.lightGallery.modules,function(a){c.modules[a]&&c.modules[a].destroy()}),this.lGalleryOn=!1,clearTimeout(c.hideBartimeout),this.hideBartimeout=!1,a(window).off(".lg"),a("body").removeClass("lg-on lg-from-hash"),c.$outer&&c.$outer.removeClass("lg-visible"),a(".lg-backdrop").removeClass("in"),setTimeout(function(){c.$outer&&c.$outer.remove(),a(".lg-backdrop").remove(),b||c.$el.trigger("onCloseAfter.lg")},c.s.backdropDuration+50)},a.fn.lightGallery=function(c){return this.each(function(){if(a.data(this,"lightGallery"))try{a(this).data("lightGallery").init()}catch(a){console.error("lightGallery has not initiated properly")}else a.data(this,"lightGallery",new b(this,c))})},a.fn.lightGallery.modules={}}()}),function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(0,function(a){!function(){"use strict";var b={autoplay:!1,pause:5e3,progressBar:!0,fourceAutoplay:!1,autoplayControls:!0,appendAutoplayControlsTo:".lg-toolbar"},c=function(c){return this.core=a(c).data("lightGallery"),this.$el=a(c),!(this.core.$items.length<2)&&(this.core.s=a.extend({},b,this.core.s),this.interval=!1,this.fromAuto=!0,this.canceledOnTouch=!1,this.fourceAutoplayTemp=this.core.s.fourceAutoplay,this.core.doCss()||(this.core.s.progressBar=!1),this.init(),this)};c.prototype.init=function(){var a=this;a.core.s.autoplayControls&&a.controls(),a.core.s.progressBar&&a.core.$outer.find(".lg").append('
'),a.progress(),a.core.s.autoplay&&a.$el.one("onSlideItemLoad.lg.tm",function(){a.startlAuto()}),a.$el.on("onDragstart.lg.tm touchstart.lg.tm",function(){a.interval&&(a.cancelAuto(),a.canceledOnTouch=!0)}),a.$el.on("onDragend.lg.tm touchend.lg.tm onSlideClick.lg.tm",function(){!a.interval&&a.canceledOnTouch&&(a.startlAuto(),a.canceledOnTouch=!1)})},c.prototype.progress=function(){var a,b,c=this;c.$el.on("onBeforeSlide.lg.tm",function(){c.core.s.progressBar&&c.fromAuto&&(a=c.core.$outer.find(".lg-progress-bar"),b=c.core.$outer.find(".lg-progress"),c.interval&&(b.removeAttr("style"),a.removeClass("lg-start"),setTimeout(function(){b.css("transition","width "+(c.core.s.speed+c.core.s.pause)+"ms ease 0s"),a.addClass("lg-start")},20))),c.fromAuto||c.core.s.fourceAutoplay||c.cancelAuto(),c.fromAuto=!1})},c.prototype.controls=function(){var b=this;a(this.core.s.appendAutoplayControlsTo).append(''),b.core.$outer.find(".lg-autoplay-button").on("click.lg",function(){a(b.core.$outer).hasClass("lg-show-autoplay")?(b.cancelAuto(),b.core.s.fourceAutoplay=!1):b.interval||(b.startlAuto(),b.core.s.fourceAutoplay=b.fourceAutoplayTemp)})},c.prototype.startlAuto=function(){var a=this;a.core.$outer.find(".lg-progress").css("transition","width "+(a.core.s.speed+a.core.s.pause)+"ms ease 0s"),a.core.$outer.addClass("lg-show-autoplay"),a.core.$outer.find(".lg-progress-bar").addClass("lg-start"),a.interval=setInterval(function(){a.core.index+11&&this.init(),this};c.prototype.init=function(){var b,c,d,e=this,f="";if(e.core.$outer.find(".lg").append('
'),e.core.s.dynamic)for(var g=0;g
';else e.core.$items.each(function(){e.core.s.exThumbImage?f+='
':f+='
'});c=e.core.$outer.find(".lg-pager-outer"),c.html(f),b=e.core.$outer.find(".lg-pager-cont"),b.on("click.lg touchend.lg",function(){var b=a(this);e.core.index=b.index(),e.core.slide(e.core.index,!1,!0,!1)}),c.on("mouseover.lg",function(){clearTimeout(d),c.addClass("lg-pager-hover")}),c.on("mouseout.lg",function(){d=setTimeout(function(){c.removeClass("lg-pager-hover")})}),e.core.$el.on("onBeforeSlide.lg.tm",function(a,c,d){b.removeClass("lg-pager-active"),b.eq(d).addClass("lg-pager-active")})},c.prototype.destroy=function(){},a.fn.lightGallery.modules.pager=c}()}),function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(0,function(a){!function(){"use strict";var b={thumbnail:!0,animateThumb:!0,currentPagerPosition:"middle",thumbWidth:100,thumbHeight:"80px",thumbContHeight:100,thumbMargin:5,exThumbImage:!1,showThumbByDefault:!0,toogleThumb:!0,pullCaptionUp:!0,enableThumbDrag:!0,enableThumbSwipe:!0,swipeThreshold:50,loadYoutubeThumbnail:!0,youtubeThumbSize:1,loadVimeoThumbnail:!0,vimeoThumbSize:"thumbnail_small",loadDailymotionThumbnail:!0},c=function(c){return this.core=a(c).data("lightGallery"),this.core.s=a.extend({},b,this.core.s),this.$el=a(c),this.$thumbOuter=null,this.thumbOuterWidth=0,this.thumbTotalWidth=this.core.$items.length*(this.core.s.thumbWidth+this.core.s.thumbMargin),this.thumbIndex=this.core.index,this.core.s.animateThumb&&(this.core.s.thumbHeight="100%"),this.left=0,this.init(),this};c.prototype.init=function(){var a=this;this.core.s.thumbnail&&this.core.$items.length>1&&(this.core.s.showThumbByDefault&&setTimeout(function(){a.core.$outer.addClass("lg-thumb-open")},700),this.core.s.pullCaptionUp&&this.core.$outer.addClass("lg-pull-caption-up"),this.build(),this.core.s.animateThumb&&this.core.doCss()?(this.core.s.enableThumbDrag&&this.enableThumbDrag(),this.core.s.enableThumbSwipe&&this.enableThumbSwipe(),this.thumbClickable=!1):this.thumbClickable=!0,this.toogle(),this.thumbkeyPress())},c.prototype.build=function(){function b(a,b,c){var g,h=d.core.isVideo(a,c)||{},i="";h.youtube||h.vimeo||h.dailymotion?h.youtube?g=d.core.s.loadYoutubeThumbnail?"//img.youtube.com/vi/"+h.youtube[1]+"/"+d.core.s.youtubeThumbSize+".jpg":b:h.vimeo?d.core.s.loadVimeoThumbnail?(g="//i.vimeocdn.com/video/error_"+f+".jpg",i=h.vimeo[1]):g=b:h.dailymotion&&(g=d.core.s.loadDailymotionThumbnail?"//www.dailymotion.com/thumbnail/video/"+h.dailymotion[1]:b):g=b,e+='
',i=""}var c,d=this,e="",f="",g='
';switch(this.core.s.vimeoThumbSize){case"thumbnail_large":f="640";break;case"thumbnail_medium":f="200x150";break;case"thumbnail_small":f="100x75"}if(d.core.$outer.addClass("lg-has-thumb"),d.core.$outer.find(".lg").append(g),d.$thumbOuter=d.core.$outer.find(".lg-thumb-outer"),d.thumbOuterWidth=d.$thumbOuter.width(),d.core.s.animateThumb&&d.core.$outer.find(".lg-thumb").css({width:d.thumbTotalWidth+"px",position:"relative"}),this.core.s.animateThumb&&d.$thumbOuter.css("height",d.core.s.thumbContHeight+"px"),d.core.s.dynamic)for(var h=0;hthis.thumbTotalWidth-this.thumbOuterWidth&&(this.left=this.thumbTotalWidth-this.thumbOuterWidth),this.left<0&&(this.left=0),this.core.lGalleryOn?(b.hasClass("on")||this.core.$outer.find(".lg-thumb").css("transition-duration",this.core.s.speed+"ms"),this.core.doCss()||b.animate({left:-this.left+"px"},this.core.s.speed)):this.core.doCss()||b.css("left",-this.left+"px"),this.setTranslate(this.left)}},c.prototype.enableThumbDrag=function(){var b=this,c=0,d=0,e=!1,f=!1,g=0;b.$thumbOuter.addClass("lg-grab"),b.core.$outer.find(".lg-thumb").on("mousedown.lg.thumb",function(a){b.thumbTotalWidth>b.thumbOuterWidth&&(a.preventDefault(),c=a.pageX,e=!0,b.core.$outer.scrollLeft+=1,b.core.$outer.scrollLeft-=1,b.thumbClickable=!1,b.$thumbOuter.removeClass("lg-grab").addClass("lg-grabbing"))}),a(window).on("mousemove.lg.thumb",function(a){e&&(g=b.left,f=!0,d=a.pageX,b.$thumbOuter.addClass("lg-dragging"),g-=d-c,g>b.thumbTotalWidth-b.thumbOuterWidth&&(g=b.thumbTotalWidth-b.thumbOuterWidth),g<0&&(g=0),b.setTranslate(g))}),a(window).on("mouseup.lg.thumb",function(){f?(f=!1,b.$thumbOuter.removeClass("lg-dragging"),b.left=g,Math.abs(d-c)a.thumbOuterWidth&&(c.preventDefault(),b=c.originalEvent.targetTouches[0].pageX,a.thumbClickable=!1)}),a.core.$outer.find(".lg-thumb").on("touchmove.lg",function(f){a.thumbTotalWidth>a.thumbOuterWidth&&(f.preventDefault(),c=f.originalEvent.targetTouches[0].pageX,d=!0,a.$thumbOuter.addClass("lg-dragging"),e=a.left,e-=c-b,e>a.thumbTotalWidth-a.thumbOuterWidth&&(e=a.thumbTotalWidth-a.thumbOuterWidth),e<0&&(e=0),a.setTranslate(e))}),a.core.$outer.find(".lg-thumb").on("touchend.lg",function(){a.thumbTotalWidth>a.thumbOuterWidth&&d?(d=!1,a.$thumbOuter.removeClass("lg-dragging"),Math.abs(c-b)'),a.core.$outer.find(".lg-toogle-thumb").on("click.lg",function(){a.core.$outer.toggleClass("lg-thumb-open")}))},c.prototype.thumbkeyPress=function(){var b=this;a(window).on("keydown.lg.thumb",function(a){38===a.keyCode?(a.preventDefault(),b.core.$outer.addClass("lg-thumb-open")):40===a.keyCode&&(a.preventDefault(),b.core.$outer.removeClass("lg-thumb-open"))})},c.prototype.destroy=function(){this.core.s.thumbnail&&this.core.$items.length>1&&(a(window).off("resize.lg.thumb orientationchange.lg.thumb keydown.lg.thumb"), +this.$thumbOuter.remove(),this.core.$outer.removeClass("lg-has-thumb"))},a.fn.lightGallery.modules.Thumbnail=c}()}),function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(){"use strict";function b(a,b,c,d){var e=this;if(e.core.$slide.eq(b).find(".lg-video").append(e.loadVideo(c,"lg-object",!0,b,d)),d)if(e.core.s.videojs)try{videojs(e.core.$slide.eq(b).find(".lg-html5").get(0),e.core.s.videojsOptions,function(){!e.videoLoaded&&e.core.s.autoplayFirstVideo&&this.play()})}catch(a){console.error("Make sure you have included videojs")}else!e.videoLoaded&&e.core.s.autoplayFirstVideo&&e.core.$slide.eq(b).find(".lg-html5").get(0).play()}function c(a,b){var c=this.core.$slide.eq(b).find(".lg-video-cont");c.hasClass("lg-has-iframe")||(c.css("max-width",this.core.s.videoMaxWidth),this.videoLoaded=!0)}function d(b,c,d){var e=this,f=e.core.$slide.eq(c),g=f.find(".lg-youtube").get(0),h=f.find(".lg-vimeo").get(0),i=f.find(".lg-dailymotion").get(0),j=f.find(".lg-vk").get(0),k=f.find(".lg-html5").get(0);if(g)g.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*");else if(h)try{$f(h).api("pause")}catch(a){console.error("Make sure you have included froogaloop2 js")}else if(i)i.contentWindow.postMessage("pause","*");else if(k)if(e.core.s.videojs)try{videojs(k).pause()}catch(a){console.error("Make sure you have included videojs")}else k.pause();j&&a(j).attr("src",a(j).attr("src").replace("&autoplay","&noplay"));var l;l=e.core.s.dynamic?e.core.s.dynamicEl[d].src:e.core.$items.eq(d).attr("href")||e.core.$items.eq(d).attr("data-src");var m=e.core.isVideo(l,d)||{};(m.youtube||m.vimeo||m.dailymotion||m.vk)&&e.core.$outer.addClass("lg-hide-download")}var e={videoMaxWidth:"855px",autoplayFirstVideo:!0,youtubePlayerParams:!1,vimeoPlayerParams:!1,dailymotionPlayerParams:!1,vkPlayerParams:!1,videojs:!1,videojsOptions:{}},f=function(b){return this.core=a(b).data("lightGallery"),this.$el=a(b),this.core.s=a.extend({},e,this.core.s),this.videoLoaded=!1,this.init(),this};f.prototype.init=function(){var e=this;e.core.$el.on("hasVideo.lg.tm",b.bind(this)),e.core.$el.on("onAferAppendSlide.lg.tm",c.bind(this)),e.core.doCss()&&e.core.$items.length>1&&(e.core.s.enableSwipe||e.core.s.enableDrag)?e.core.$el.on("onSlideClick.lg.tm",function(){var a=e.core.$slide.eq(e.core.index);e.loadVideoOnclick(a)}):e.core.$slide.on("click.lg",function(){e.loadVideoOnclick(a(this))}),e.core.$el.on("onBeforeSlide.lg.tm",d.bind(this)),e.core.$el.on("onAfterSlide.lg.tm",function(a,b){e.core.$slide.eq(b).removeClass("lg-video-playing")}),e.core.s.autoplayFirstVideo&&e.core.$el.on("onAferAppendSlide.lg.tm",function(a,b){if(!e.core.lGalleryOn){var c=e.core.$slide.eq(b);setTimeout(function(){e.loadVideoOnclick(c)},100)}})},f.prototype.loadVideo=function(b,c,d,e,f){var g="",h=1,i="",j=this.core.isVideo(b,e)||{};if(d&&(h=this.videoLoaded?0:this.core.s.autoplayFirstVideo?1:0),j.youtube)i="?wmode=opaque&autoplay="+h+"&enablejsapi=1",this.core.s.youtubePlayerParams&&(i=i+"&"+a.param(this.core.s.youtubePlayerParams)),g='';else if(j.vimeo)i="?autoplay="+h+"&api=1",this.core.s.vimeoPlayerParams&&(i=i+"&"+a.param(this.core.s.vimeoPlayerParams)),g='';else if(j.dailymotion)i="?wmode=opaque&autoplay="+h+"&api=postMessage",this.core.s.dailymotionPlayerParams&&(i=i+"&"+a.param(this.core.s.dailymotionPlayerParams)),g='';else if(j.html5){var k=f.substring(0,1);"."!==k&&"#"!==k||(f=a(f).html()),g=f}else j.vk&&(i="&autoplay="+h,this.core.s.vkPlayerParams&&(i=i+"&"+a.param(this.core.s.vkPlayerParams)),g='');return g},f.prototype.loadVideoOnclick=function(a){var b=this;if(a.find(".lg-object").hasClass("lg-has-poster")&&a.find(".lg-object").is(":visible"))if(a.hasClass("lg-has-video")){var c=a.find(".lg-youtube").get(0),d=a.find(".lg-vimeo").get(0),e=a.find(".lg-dailymotion").get(0),f=a.find(".lg-html5").get(0);if(c)c.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*");else if(d)try{$f(d).api("play")}catch(a){console.error("Make sure you have included froogaloop2 js")}else if(e)e.contentWindow.postMessage("play","*");else if(f)if(b.core.s.videojs)try{videojs(f).play()}catch(a){console.error("Make sure you have included videojs")}else f.play();a.addClass("lg-video-playing")}else{a.addClass("lg-video-playing lg-has-video");var g,h,i=function(c,d){if(a.find(".lg-video").append(b.loadVideo(c,"",!1,b.core.index,d)),d)if(b.core.s.videojs)try{videojs(b.core.$slide.eq(b.core.index).find(".lg-html5").get(0),b.core.s.videojsOptions,function(){this.play()})}catch(a){console.error("Make sure you have included videojs")}else b.core.$slide.eq(b.core.index).find(".lg-html5").get(0).play()};b.core.s.dynamic?(g=b.core.s.dynamicEl[b.core.index].src,h=b.core.s.dynamicEl[b.core.index].html,i(g,h)):(g=b.core.$items.eq(b.core.index).attr("href")||b.core.$items.eq(b.core.index).attr("data-src"),h=b.core.$items.eq(b.core.index).attr("data-html"),i(g,h));var j=a.find(".lg-object");a.find(".lg-video").append(j),a.find(".lg-video-object").hasClass("lg-html5")||(a.removeClass("lg-complete"),a.find(".lg-video-object").on("load.lg error.lg",function(){a.addClass("lg-complete")}))}},f.prototype.destroy=function(){this.videoLoaded=!1},a.fn.lightGallery.modules.video=f}()}),function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(0,function(a){!function(){"use strict";var b=function(){var a=!1,b=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);return b&&parseInt(b[2],10)<54&&(a=!0),a},c={scale:1,zoom:!0,actualSize:!0,enableZoomAfter:300,useLeftForZoom:b()},d=function(b){return this.core=a(b).data("lightGallery"),this.core.s=a.extend({},c,this.core.s),this.core.s.zoom&&this.core.doCss()&&(this.init(),this.zoomabletimeout=!1,this.pageX=a(window).width()/2,this.pageY=a(window).height()/2+a(window).scrollTop()),this};d.prototype.init=function(){var b=this,c='';b.core.s.actualSize&&(c+=''),b.core.s.useLeftForZoom?b.core.$outer.addClass("lg-use-left-for-zoom"):b.core.$outer.addClass("lg-use-transition-for-zoom"),this.core.$outer.find(".lg-toolbar").append(c),b.core.$el.on("onSlideItemLoad.lg.tm.zoom",function(c,d,e){var f=b.core.s.enableZoomAfter+e;a("body").hasClass("lg-from-hash")&&e?f=0:a("body").removeClass("lg-from-hash"),b.zoomabletimeout=setTimeout(function(){b.core.$slide.eq(d).addClass("lg-zoomable")},f+30)});var d=1,e=function(c){var d,e,f=b.core.$outer.find(".lg-current .lg-image"),g=(a(window).width()-f.prop("offsetWidth"))/2,h=(a(window).height()-f.prop("offsetHeight"))/2+a(window).scrollTop();d=b.pageX-g,e=b.pageY-h;var i=(c-1)*d,j=(c-1)*e;f.css("transform","scale3d("+c+", "+c+", 1)").attr("data-scale",c),b.core.s.useLeftForZoom?f.parent().css({left:-i+"px",top:-j+"px"}).attr("data-x",i).attr("data-y",j):f.parent().css("transform","translate3d(-"+i+"px, -"+j+"px, 0)").attr("data-x",i).attr("data-y",j)},f=function(){d>1?b.core.$outer.addClass("lg-zoomed"):b.resetZoom(),d<1&&(d=1),e(d)},g=function(c,e,g,h){var i,j=e.prop("offsetWidth");i=b.core.s.dynamic?b.core.s.dynamicEl[g].width||e[0].naturalWidth||j:b.core.$items.eq(g).attr("data-width")||e[0].naturalWidth||j;var k;b.core.$outer.hasClass("lg-zoomed")?d=1:i>j&&(k=i/j,d=k||2),h?(b.pageX=a(window).width()/2,b.pageY=a(window).height()/2+a(window).scrollTop()):(b.pageX=c.pageX||c.originalEvent.targetTouches[0].pageX,b.pageY=c.pageY||c.originalEvent.targetTouches[0].pageY),f(),setTimeout(function(){b.core.$outer.removeClass("lg-grabbing").addClass("lg-grab")},10)},h=!1;b.core.$el.on("onAferAppendSlide.lg.tm.zoom",function(a,c){var d=b.core.$slide.eq(c).find(".lg-image");d.on("dblclick",function(a){g(a,d,c)}),d.on("touchstart",function(a){h?(clearTimeout(h),h=null,g(a,d,c)):h=setTimeout(function(){h=null},300),a.preventDefault()})}),a(window).on("resize.lg.zoom scroll.lg.zoom orientationchange.lg.zoom",function(){b.pageX=a(window).width()/2,b.pageY=a(window).height()/2+a(window).scrollTop(),e(d)}),a("#lg-zoom-out").on("click.lg",function(){b.core.$outer.find(".lg-current .lg-image").length&&(d-=b.core.s.scale,f())}),a("#lg-zoom-in").on("click.lg",function(){b.core.$outer.find(".lg-current .lg-image").length&&(d+=b.core.s.scale,f())}),a("#lg-actual-size").on("click.lg",function(a){g(a,b.core.$slide.eq(b.core.index).find(".lg-image"),b.core.index,!0)}),b.core.$el.on("onBeforeSlide.lg.tm",function(){d=1,b.resetZoom()}),b.zoomDrag(),b.zoomSwipe()},d.prototype.resetZoom=function(){this.core.$outer.removeClass("lg-zoomed"),this.core.$slide.find(".lg-img-wrap").removeAttr("style data-x data-y"),this.core.$slide.find(".lg-image").removeAttr("style data-scale"),this.pageX=a(window).width()/2,this.pageY=a(window).height()/2+a(window).scrollTop()},d.prototype.zoomSwipe=function(){var a=this,b={},c={},d=!1,e=!1,f=!1;a.core.$slide.on("touchstart.lg",function(c){if(a.core.$outer.hasClass("lg-zoomed")){var d=a.core.$slide.eq(a.core.index).find(".lg-object");f=d.prop("offsetHeight")*d.attr("data-scale")>a.core.$outer.find(".lg").height(),e=d.prop("offsetWidth")*d.attr("data-scale")>a.core.$outer.find(".lg").width(),(e||f)&&(c.preventDefault(),b={x:c.originalEvent.targetTouches[0].pageX,y:c.originalEvent.targetTouches[0].pageY})}}),a.core.$slide.on("touchmove.lg",function(g){if(a.core.$outer.hasClass("lg-zoomed")){var h,i,j=a.core.$slide.eq(a.core.index).find(".lg-img-wrap");g.preventDefault(),d=!0,c={x:g.originalEvent.targetTouches[0].pageX,y:g.originalEvent.targetTouches[0].pageY},a.core.$outer.addClass("lg-zoom-dragging"),i=f?-Math.abs(j.attr("data-y"))+(c.y-b.y):-Math.abs(j.attr("data-y")),h=e?-Math.abs(j.attr("data-x"))+(c.x-b.x):-Math.abs(j.attr("data-x")),(Math.abs(c.x-b.x)>15||Math.abs(c.y-b.y)>15)&&(a.core.s.useLeftForZoom?j.css({left:h+"px",top:i+"px"}):j.css("transform","translate3d("+h+"px, "+i+"px, 0)"))}}),a.core.$slide.on("touchend.lg",function(){a.core.$outer.hasClass("lg-zoomed")&&d&&(d=!1,a.core.$outer.removeClass("lg-zoom-dragging"),a.touchendZoom(b,c,e,f))})},d.prototype.zoomDrag=function(){var b=this,c={},d={},e=!1,f=!1,g=!1,h=!1;b.core.$slide.on("mousedown.lg.zoom",function(d){var f=b.core.$slide.eq(b.core.index).find(".lg-object");h=f.prop("offsetHeight")*f.attr("data-scale")>b.core.$outer.find(".lg").height(),g=f.prop("offsetWidth")*f.attr("data-scale")>b.core.$outer.find(".lg").width(),b.core.$outer.hasClass("lg-zoomed")&&a(d.target).hasClass("lg-object")&&(g||h)&&(d.preventDefault(),c={x:d.pageX,y:d.pageY},e=!0,b.core.$outer.scrollLeft+=1,b.core.$outer.scrollLeft-=1,b.core.$outer.removeClass("lg-grab").addClass("lg-grabbing"))}),a(window).on("mousemove.lg.zoom",function(a){if(e){var i,j,k=b.core.$slide.eq(b.core.index).find(".lg-img-wrap");f=!0,d={x:a.pageX,y:a.pageY},b.core.$outer.addClass("lg-zoom-dragging"),j=h?-Math.abs(k.attr("data-y"))+(d.y-c.y):-Math.abs(k.attr("data-y")),i=g?-Math.abs(k.attr("data-x"))+(d.x-c.x):-Math.abs(k.attr("data-x")),b.core.s.useLeftForZoom?k.css({left:i+"px",top:j+"px"}):k.css("transform","translate3d("+i+"px, "+j+"px, 0)")}}),a(window).on("mouseup.lg.zoom",function(a){e&&(e=!1,b.core.$outer.removeClass("lg-zoom-dragging"),!f||c.x===d.x&&c.y===d.y||(d={x:a.pageX,y:a.pageY},b.touchendZoom(c,d,g,h)),f=!1),b.core.$outer.removeClass("lg-grabbing").addClass("lg-grab")})},d.prototype.touchendZoom=function(a,b,c,d){var e=this,f=e.core.$slide.eq(e.core.index).find(".lg-img-wrap"),g=e.core.$slide.eq(e.core.index).find(".lg-object"),h=-Math.abs(f.attr("data-x"))+(b.x-a.x),i=-Math.abs(f.attr("data-y"))+(b.y-a.y),j=(e.core.$outer.find(".lg").height()-g.prop("offsetHeight"))/2,k=Math.abs(g.prop("offsetHeight")*Math.abs(g.attr("data-scale"))-e.core.$outer.find(".lg").height()+j),l=(e.core.$outer.find(".lg").width()-g.prop("offsetWidth"))/2,m=Math.abs(g.prop("offsetWidth")*Math.abs(g.attr("data-scale"))-e.core.$outer.find(".lg").width()+l);(Math.abs(b.x-a.x)>15||Math.abs(b.y-a.y)>15)&&(d&&(i<=-k?i=-k:i>=-j&&(i=-j)),c&&(h<=-m?h=-m:h>=-l&&(h=-l)),d?f.attr("data-y",Math.abs(i)):i=-Math.abs(f.attr("data-y")),c?f.attr("data-x",Math.abs(h)):h=-Math.abs(f.attr("data-x")),e.core.s.useLeftForZoom?f.css({left:h+"px",top:i+"px"}):f.css("transform","translate3d("+h+"px, "+i+"px, 0)"))},d.prototype.destroy=function(){var b=this;b.core.$el.off(".lg.zoom"),a(window).off(".lg.zoom"),b.core.$slide.off(".lg.zoom"),b.core.$el.off(".lg.tm.zoom"),b.resetZoom(),clearTimeout(b.zoomabletimeout),b.zoomabletimeout=!1},a.fn.lightGallery.modules.zoom=d}()}),function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(0,function(a){!function(){"use strict";var b={hash:!0},c=function(c){return this.core=a(c).data("lightGallery"),this.core.s=a.extend({},b,this.core.s),this.core.s.hash&&(this.oldHash=window.location.hash,this.init()),this};c.prototype.init=function(){var b,c=this;c.core.$el.on("onAfterSlide.lg.tm",function(a,b,d){history.replaceState?history.replaceState(null,null,window.location.pathname+window.location.search+"#lg="+c.core.s.galleryId+"&slide="+d):window.location.hash="lg="+c.core.s.galleryId+"&slide="+d}),a(window).on("hashchange.lg.hash",function(){b=window.location.hash;var a=parseInt(b.split("&slide=")[1],10);b.indexOf("lg="+c.core.s.galleryId)>-1?c.core.slide(a,!1,!1):c.core.lGalleryOn&&c.core.destroy()})},c.prototype.destroy=function(){this.core.s.hash&&(this.oldHash&&this.oldHash.indexOf("lg="+this.core.s.galleryId)<0?history.replaceState?history.replaceState(null,null,this.oldHash):window.location.hash=this.oldHash:history.replaceState?history.replaceState(null,document.title,window.location.pathname+window.location.search):window.location.hash="",this.core.$el.off(".lg.hash"))},a.fn.lightGallery.modules.hash=c}()}),function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(0,function(a){!function(){"use strict";var b={share:!0,facebook:!0,facebookDropdownText:"Facebook",twitter:!0,twitterDropdownText:"Twitter",googlePlus:!0,googlePlusDropdownText:"GooglePlus",pinterest:!0,pinterestDropdownText:"Pinterest"},c=function(c){return this.core=a(c).data("lightGallery"),this.core.s=a.extend({},b,this.core.s),this.core.s.share&&this.init(),this};c.prototype.init=function(){var b=this,c='",this.core.$outer.find(".lg-toolbar").append(c),this.core.$outer.find(".lg").append('
'),a("#lg-share").on("click.lg",function(){b.core.$outer.toggleClass("lg-dropdown-active")}),a("#lg-dropdown-overlay").on("click.lg",function(){b.core.$outer.removeClass("lg-dropdown-active")}),b.core.$el.on("onAfterSlide.lg.tm",function(c,d,e){setTimeout(function(){a("#lg-share-facebook").attr("href","https://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(b.getSahreProps(e,"facebookShareUrl")||window.location.href)),a("#lg-share-twitter").attr("href","https://twitter.com/intent/tweet?text="+b.getSahreProps(e,"tweetText")+"&url="+encodeURIComponent(b.getSahreProps(e,"twitterShareUrl")||window.location.href)),a("#lg-share-googleplus").attr("href","https://plus.google.com/share?url="+encodeURIComponent(b.getSahreProps(e,"googleplusShareUrl")||window.location.href)),a("#lg-share-pinterest").attr("href","http://www.pinterest.com/pin/create/button/?url="+encodeURIComponent(b.getSahreProps(e,"pinterestShareUrl")||window.location.href)+"&media="+encodeURIComponent(b.getSahreProps(e,"src"))+"&description="+b.getSahreProps(e,"pinterestText"))},100)})},c.prototype.getSahreProps=function(a,b){var c="";if(this.core.s.dynamic)c=this.core.s.dynamicEl[a][b];else{var d=this.core.$items.eq(a).attr("href"),e=this.core.$items.eq(a).data(b);c="src"===b?d||e:e}return c},c.prototype.destroy=function(){},a.fn.lightGallery.modules.share=c}()}); \ No newline at end of file diff --git a/assets/js/main.js b/assets/js/main.js index 5fa8322..67482b1 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -1,27 +1,23 @@ /* - Solid State by HTML5 UP + Landed by HTML5 UP html5up.net | @ajlkn Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) */ (function($) { - "use strict"; - skel.breakpoints({ - xlarge: '(max-width: 1680px)', - large: '(max-width: 1280px)', - medium: '(max-width: 980px)', - small: '(max-width: 736px)', - xsmall: '(max-width: 480px)' + xlarge: '(max-width: 1680px)', + large: '(max-width: 1280px)', + medium: '(max-width: 980px)', + small: '(max-width: 736px)', + xsmall: '(max-width: 480px)' }); $(function() { var $window = $(window), - $body = $('body'), - $header = $('#header'), - $banner = $('#banner'); + $body = $('body'); // Disable animations/transitions until the page has loaded. $body.addClass('is-loading'); @@ -29,9 +25,13 @@ $window.on('load', function() { window.setTimeout(function() { $body.removeClass('is-loading'); - }, 100); + }, 0); }); + // Touch mode. + if (skel.vars.mobile) + $body.addClass('is-touch'); + // Fix: Placeholder polyfill. $('form').placeholder(); @@ -43,124 +43,171 @@ ); }); - // Header. - if (skel.vars.IEVersion < 9) - $header.removeClass('alt'); + // Scrolly links. + $('.scrolly').scrolly({ + speed: 2000 + }); - if ($banner.length > 0 - && $header.hasClass('alt')) { + // Off-Canvas Navigation. - $window.on('resize', function() { $window.trigger('scroll'); }); + // Title Bar. + $( + '
' + + '' + + '' + $('#logo').html() + '' + + '
' + ) + .appendTo($body); - $banner.scrollex({ - bottom: $header.outerHeight(), - terminate: function() { $header.removeClass('alt'); }, - enter: function() { $header.addClass('alt'); }, - leave: function() { $header.removeClass('alt'); } - }); + // Navigation Panel. + $( + '' + ) + .appendTo($body) + .panel({ + delay: 500, + hideOnClick: true, + hideOnSwipe: true, + resetScroll: true, + resetForms: true, + side: 'left', + target: $body, + visibleClass: 'navPanel-visible' + }); + + // Fix: Remove navPanel transitions on WP<10 (poor/buggy performance). + if (skel.vars.os == 'wp' && skel.vars.osVersion < 10) + $('#titleBar, #navPanel, #page-wrapper') + .css('transition', 'none'); + + // Parallax. + // Disabled on IE (choppy scrolling) and mobile platforms (poor performance). + if (skel.vars.browser == 'ie' + || skel.vars.mobile) { + + $.fn._parallax = function() { + + return $(this); + + }; } + else { - // Menu. - var $menu = $('#menu'); + $.fn._parallax = function() { - $menu._locked = false; + $(this).each(function() { - $menu._lock = function() { + var $this = $(this), + on, off; - if ($menu._locked) - return false; + on = function() { - $menu._locked = true; + $this + .css('background-position', 'center 0px'); - window.setTimeout(function() { - $menu._locked = false; - }, 350); + $window + .on('scroll._parallax', function() { - return true; + var pos = parseInt($window.scrollTop()) - parseInt($this.position().top); - }; + $this.css('background-position', 'center ' + (pos * -0.15) + 'px'); - $menu._show = function() { + }); - if ($menu._lock()) - $body.addClass('is-menu-visible'); + }; - }; + off = function() { - $menu._hide = function() { + $this + .css('background-position', ''); - if ($menu._lock()) - $body.removeClass('is-menu-visible'); + $window + .off('scroll._parallax'); - }; + }; - $menu._toggle = function() { + skel.on('change', function() { - if ($menu._lock()) - $body.toggleClass('is-menu-visible'); + if (skel.breakpoint('medium').active) + (off)(); + else + (on)(); - }; - - $menu - .appendTo($body) - .on('click', function(event) { - - event.stopPropagation(); - - // Hide. - $menu._hide(); - - }) - .find('.inner') - .on('click', '.close', function(event) { - - event.preventDefault(); - event.stopPropagation(); - event.stopImmediatePropagation(); - - // Hide. - $menu._hide(); - - }) - .on('click', function(event) { - event.stopPropagation(); - }) - .on('click', 'a', function(event) { - - var href = $(this).attr('href'); - - event.preventDefault(); - event.stopPropagation(); - - // Hide. - $menu._hide(); - - // Redirect. - window.setTimeout(function() { - window.location.href = href; - }, 350); + }); }); - $body - .on('click', 'a[href="#menu"]', function(event) { + return $(this); - event.stopPropagation(); - event.preventDefault(); + }; - // Toggle. - $menu._toggle(); + $window + .on('load resize', function() { + $window.trigger('scroll'); + }); - }) - .on('keydown', function(event) { + } - // Hide on escape. - if (event.keyCode == 27) - $menu._hide(); + + // Wrappers. + var $wrappers = $('.wrapper'); + + $wrappers + .each(function() { + + var $this = $(this), + on, off; + + on = function() { + + if (skel.canUse('transition')) { + + $this.scrollex({ + top: 250, + bottom: 0, + initialize: function(t) { $this.addClass('inactive'); }, + terminate: function(t) { $this.removeClass('inactive'); }, + enter: function(t) { $this.removeClass('inactive'); }, + + // Uncomment the line below to "rewind" when this wrapper scrolls out of view. + + //leave: function(t) { $this.addClass('inactive'); }, + + }); + + } + + }; + + off = function() { + + if (skel.canUse('transition')) + $this.unscrollex(); + + }; + + skel.on('change', function() { + + if (skel.breakpoint('medium').active) + (off)(); + else + (on)(); + + }); }); + // Banner. + var $banner = $('#banner'); + + $banner + ._parallax(); + }); -})(jQuery); \ No newline at end of file +})(jQuery); diff --git a/assets/js/openstreetmap.js b/assets/js/openstreetmap.js new file mode 100644 index 0000000..0ec0f5f --- /dev/null +++ b/assets/js/openstreetmap.js @@ -0,0 +1,42 @@ +var mymap = L.map("mapid").setView([47.7123, 9.3995], 19); + +L.tileLayer("https://tiles.ffbsee.de:9090/{z}/{x}/{y}.png", { + maxZoom: 19, + attribution: "Map data © OpenStreetMap contributors, " + + "CC-BY-SA, ", + id: "mapbox.streets" +}).addTo(mymap); + +L.marker([47.71240915, 9.3995668]).addTo(mymap) +.bindPopup("").openPopup(); +L.polygon([ + [47.71242900, 9.39956546], + [47.71231350, 9.39980686], + [47.71222687, 9.39971030], + [47.71229545, 9.39956009], + [47.71223409, 9.39949036], + [47.71227740, 9.39939916]], { + color: "orange", + fillColor: "orange", + fillOpacity: 0.5 +}).addTo(mymap).bindPopup("Vereinsheim"); + +L.polygon([ + [47.71208610, 9.39969957], + [47.71217273, 9.39950109], + [47.71220882, 9.39953864], + [47.71212220, 9.39973176] +]).addTo(mymap).bindPopup("Hier Parken"); + +L.polygon([ + [47.71219800, 9.39945817], + [47.71224131, 9.39936161], + [47.71227379, 9.39939916], + [47.71223409, 9.39949036] +]).addTo(mymap).bindPopup("Hier Parken"); + +L.circle([47.71229545, 9.39956009], 2, { + color: "red", + fillColor: "red", + fillOpacity: 0.5 +}).addTo(mymap).bindPopup("Eingang"); diff --git a/assets/js/picturefill.min.js b/assets/js/picturefill.min.js new file mode 100644 index 0000000..37ce56b --- /dev/null +++ b/assets/js/picturefill.min.js @@ -0,0 +1,4 @@ +/*! Picturefill - v2.3.1 - 2015-04-09 +* http://scottjehl.github.io/picturefill +* Copyright (c) 2015 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT */ +window.matchMedia||(window.matchMedia=function(){"use strict";var a=window.styleMedia||window.media;if(!a){var b=document.createElement("style"),c=document.getElementsByTagName("script")[0],d=null;b.type="text/css",b.id="matchmediajs-test",c.parentNode.insertBefore(b,c),d="getComputedStyle"in window&&window.getComputedStyle(b,null)||b.currentStyle,a={matchMedium:function(a){var c="@media "+a+"{ #matchmediajs-test { width: 1px; } }";return b.styleSheet?b.styleSheet.cssText=c:b.textContent=c,"1px"===d.width}}}return function(b){return{matches:a.matchMedium(b||"all"),media:b||"all"}}}()),function(a,b,c){"use strict";function d(b){"object"==typeof module&&"object"==typeof module.exports?module.exports=b:"function"==typeof define&&define.amd&&define("picturefill",function(){return b}),"object"==typeof a&&(a.picturefill=b)}function e(a){var b,c,d,e,f,i=a||{};b=i.elements||g.getAllElements();for(var j=0,k=b.length;k>j;j++)if(c=b[j],d=c.parentNode,e=void 0,f=void 0,"IMG"===c.nodeName.toUpperCase()&&(c[g.ns]||(c[g.ns]={}),i.reevaluate||!c[g.ns].evaluated)){if(d&&"PICTURE"===d.nodeName.toUpperCase()){if(g.removeVideoShim(d),e=g.getMatch(c,d),e===!1)continue}else e=void 0;(d&&"PICTURE"===d.nodeName.toUpperCase()||!g.sizesSupported&&c.srcset&&h.test(c.srcset))&&g.dodgeSrcset(c),e?(f=g.processSourceSet(e),g.applyBestCandidate(f,c)):(f=g.processSourceSet(c),(void 0===c.srcset||c[g.ns].srcset)&&g.applyBestCandidate(f,c)),c[g.ns].evaluated=!0}}function f(){function c(){clearTimeout(d),d=setTimeout(h,60)}g.initTypeDetects(),e();var d,f=setInterval(function(){return e(),/^loaded|^i|^c/.test(b.readyState)?void clearInterval(f):void 0},250),h=function(){e({reevaluate:!0})};a.addEventListener?a.addEventListener("resize",c,!1):a.attachEvent&&a.attachEvent("onresize",c)}if(a.HTMLPictureElement)return void d(function(){});b.createElement("picture");var g=a.picturefill||{},h=/\s+\+?\d+(e\d+)?w/;g.ns="picturefill",function(){g.srcsetSupported="srcset"in c,g.sizesSupported="sizes"in c,g.curSrcSupported="currentSrc"in c}(),g.trim=function(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")},g.makeUrl=function(){var a=b.createElement("a");return function(b){return a.href=b,a.href}}(),g.restrictsMixedContent=function(){return"https:"===a.location.protocol},g.matchesMedia=function(b){return a.matchMedia&&a.matchMedia(b).matches},g.getDpr=function(){return a.devicePixelRatio||1},g.getWidthFromLength=function(a){var c;if(!a||a.indexOf("%")>-1!=!1||!(parseFloat(a)>0||a.indexOf("calc(")>-1))return!1;a=a.replace("vw","%"),g.lengthEl||(g.lengthEl=b.createElement("div"),g.lengthEl.style.cssText="border:0;display:block;font-size:1em;left:0;margin:0;padding:0;position:absolute;visibility:hidden",g.lengthEl.className="helper-from-picturefill-js"),g.lengthEl.style.width="0px";try{g.lengthEl.style.width=a}catch(d){}return b.body.appendChild(g.lengthEl),c=g.lengthEl.offsetWidth,0>=c&&(c=!1),b.body.removeChild(g.lengthEl),c},g.detectTypeSupport=function(b,c){var d=new a.Image;return d.onerror=function(){g.types[b]=!1,e()},d.onload=function(){g.types[b]=1===d.width,e()},d.src=c,"pending"},g.types=g.types||{},g.initTypeDetects=function(){g.types["image/jpeg"]=!0,g.types["image/gif"]=!0,g.types["image/png"]=!0,g.types["image/svg+xml"]=b.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image","1.1"),g.types["image/webp"]=g.detectTypeSupport("image/webp","data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA=")},g.verifyTypeSupport=function(a){var b=a.getAttribute("type");if(null===b||""===b)return!0;var c=g.types[b];return"string"==typeof c&&"pending"!==c?(g.types[b]=g.detectTypeSupport(b,c),"pending"):"function"==typeof c?(c(),"pending"):c},g.parseSize=function(a){var b=/(\([^)]+\))?\s*(.+)/g.exec(a);return{media:b&&b[1],length:b&&b[2]}},g.findWidthFromSourceSize=function(c){for(var d,e=g.trim(c).split(/\s*,\s*/),f=0,h=e.length;h>f;f++){var i=e[f],j=g.parseSize(i),k=j.length,l=j.media;if(k&&(!l||g.matchesMedia(l))&&(d=g.getWidthFromLength(k)))break}return d||Math.max(a.innerWidth||0,b.documentElement.clientWidth)},g.parseSrcset=function(a){for(var b=[];""!==a;){a=a.replace(/^\s+/g,"");var c,d=a.search(/\s/g),e=null;if(-1!==d){c=a.slice(0,d);var f=c.slice(-1);if((","===f||""===c)&&(c=c.replace(/,+$/,""),e=""),a=a.slice(d+1),null===e){var g=a.indexOf(",");-1!==g?(e=a.slice(0,g),a=a.slice(g+1)):(e=a,a="")}}else c=a,a="";(c||e)&&b.push({url:c,descriptor:e})}return b},g.parseDescriptor=function(a,b){var c,d=b||"100vw",e=a&&a.replace(/(^\s+|\s+$)/g,""),f=g.findWidthFromSourceSize(d);if(e)for(var h=e.split(" "),i=h.length-1;i>=0;i--){var j=h[i],k=j&&j.slice(j.length-1);if("h"!==k&&"w"!==k||g.sizesSupported){if("x"===k){var l=j&&parseFloat(j,10);c=l&&!isNaN(l)?l:1}}else c=parseFloat(parseInt(j,10)/f)}return c||1},g.getCandidatesFromSourceSet=function(a,b){for(var c=g.parseSrcset(a),d=[],e=0,f=c.length;f>e;e++){var h=c[e];d.push({url:h.url,resolution:g.parseDescriptor(h.descriptor,b)})}return d},g.dodgeSrcset=function(a){a.srcset&&(a[g.ns].srcset=a.srcset,a.srcset="",a.setAttribute("data-pfsrcset",a[g.ns].srcset))},g.processSourceSet=function(a){var b=a.getAttribute("srcset"),c=a.getAttribute("sizes"),d=[];return"IMG"===a.nodeName.toUpperCase()&&a[g.ns]&&a[g.ns].srcset&&(b=a[g.ns].srcset),b&&(d=g.getCandidatesFromSourceSet(b,c)),d},g.backfaceVisibilityFix=function(a){var b=a.style||{},c="webkitBackfaceVisibility"in b,d=b.zoom;c&&(b.zoom=".999",c=a.offsetWidth,b.zoom=d)},g.setIntrinsicSize=function(){var c={},d=function(a,b,c){b&&a.setAttribute("width",parseInt(b/c,10))};return function(e,f){var h;e[g.ns]&&!a.pfStopIntrinsicSize&&(void 0===e[g.ns].dims&&(e[g.ns].dims=e.getAttribute("width")||e.getAttribute("height")),e[g.ns].dims||(f.url in c?d(e,c[f.url],f.resolution):(h=b.createElement("img"),h.onload=function(){if(c[f.url]=h.width,!c[f.url])try{b.body.appendChild(h),c[f.url]=h.width||h.offsetWidth,b.body.removeChild(h)}catch(a){}e.src===f.url&&d(e,c[f.url],f.resolution),e=null,h.onload=null,h=null},h.src=f.url)))}}(),g.applyBestCandidate=function(a,b){var c,d,e;a.sort(g.ascendingSort),d=a.length,e=a[d-1];for(var f=0;d>f;f++)if(c=a[f],c.resolution>=g.getDpr()){e=c;break}e&&(e.url=g.makeUrl(e.url),b.src!==e.url&&(g.restrictsMixedContent()&&"http:"===e.url.substr(0,"http:".length).toLowerCase()?void 0!==window.console&&console.warn("Blocked mixed content image "+e.url):(b.src=e.url,g.curSrcSupported||(b.currentSrc=b.src),g.backfaceVisibilityFix(b))),g.setIntrinsicSize(b,e))},g.ascendingSort=function(a,b){return a.resolution-b.resolution},g.removeVideoShim=function(a){var b=a.getElementsByTagName("video");if(b.length){for(var c=b[0],d=c.getElementsByTagName("source");d.length;)a.insertBefore(d[0],c);c.parentNode.removeChild(c)}},g.getAllElements=function(){for(var a=[],c=b.getElementsByTagName("img"),d=0,e=c.length;e>d;d++){var f=c[d];("PICTURE"===f.parentNode.nodeName.toUpperCase()||null!==f.getAttribute("srcset")||f[g.ns]&&null!==f[g.ns].srcset)&&a.push(f)}return a},g.getMatch=function(a,b){for(var c,d=b.childNodes,e=0,f=d.length;f>e;e++){var h=d[e];if(1===h.nodeType){if(h===a)return c;if("SOURCE"===h.nodeName.toUpperCase()){null!==h.getAttribute("src")&&void 0!==typeof console&&console.warn("The `src` attribute is invalid on `picture` `source` element; instead, use `srcset`.");var i=h.getAttribute("media");if(h.getAttribute("srcset")&&(!i||g.matchesMedia(i))){var j=g.verifyTypeSupport(h);if(j===!0){c=h;break}if("pending"===j)return!1}}}}return c},f(),e._=g,d(e)}(window,window.document,new window.Image); \ No newline at end of file diff --git a/assets/js/webcomponents.js b/assets/js/webcomponents.js new file mode 100644 index 0000000..daf5c22 --- /dev/null +++ b/assets/js/webcomponents.js @@ -0,0 +1,7209 @@ +/** + * @license + * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. + * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt + * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt + * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt + * Code distributed by Google as part of the polymer project is also + * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt + */ +// @version 0.7.24 +(function() { + window.WebComponents = window.WebComponents || { + flags: {} + }; + var file = "webcomponents.js"; + var script = document.querySelector('script[src*="' + file + '"]'); + var flags = {}; + if (!flags.noOpts) { + location.search.slice(1).split("&").forEach(function(option) { + var parts = option.split("="); + var match; + if (parts[0] && (match = parts[0].match(/wc-(.+)/))) { + flags[match[1]] = parts[1] || true; + } + }); + if (script) { + for (var i = 0, a; a = script.attributes[i]; i++) { + if (a.name !== "src") { + flags[a.name] = a.value || true; + } + } + } + if (flags.log && flags.log.split) { + var parts = flags.log.split(","); + flags.log = {}; + parts.forEach(function(f) { + flags.log[f] = true; + }); + } else { + flags.log = {}; + } + } + flags.shadow = flags.shadow || flags.shadowdom || flags.polyfill; + if (flags.shadow === "native") { + flags.shadow = false; + } else { + flags.shadow = flags.shadow || !HTMLElement.prototype.createShadowRoot; + } + if (flags.register) { + window.CustomElements = window.CustomElements || { + flags: {} + }; + window.CustomElements.flags.register = flags.register; + } + WebComponents.flags = flags; +})(); + +if (WebComponents.flags.shadow) { + if (typeof WeakMap === "undefined") { + (function() { + var defineProperty = Object.defineProperty; + var counter = Date.now() % 1e9; + var WeakMap = function() { + this.name = "__st" + (Math.random() * 1e9 >>> 0) + (counter++ + "__"); + }; + WeakMap.prototype = { + set: function(key, value) { + var entry = key[this.name]; + if (entry && entry[0] === key) entry[1] = value; else defineProperty(key, this.name, { + value: [ key, value ], + writable: true + }); + return this; + }, + get: function(key) { + var entry; + return (entry = key[this.name]) && entry[0] === key ? entry[1] : undefined; + }, + "delete": function(key) { + var entry = key[this.name]; + if (!entry || entry[0] !== key) return false; + entry[0] = entry[1] = undefined; + return true; + }, + has: function(key) { + var entry = key[this.name]; + if (!entry) return false; + return entry[0] === key; + } + }; + window.WeakMap = WeakMap; + })(); + } + window.ShadowDOMPolyfill = {}; + (function(scope) { + "use strict"; + var constructorTable = new WeakMap(); + var nativePrototypeTable = new WeakMap(); + var wrappers = Object.create(null); + function detectEval() { + if (typeof chrome !== "undefined" && chrome.app && chrome.app.runtime) { + return false; + } + if (navigator.getDeviceStorage) { + return false; + } + try { + var f = new Function("return true;"); + return f(); + } catch (ex) { + return false; + } + } + var hasEval = detectEval(); + function assert(b) { + if (!b) throw new Error("Assertion failed"); + } + var defineProperty = Object.defineProperty; + var getOwnPropertyNames = Object.getOwnPropertyNames; + var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + function mixin(to, from) { + var names = getOwnPropertyNames(from); + for (var i = 0; i < names.length; i++) { + var name = names[i]; + defineProperty(to, name, getOwnPropertyDescriptor(from, name)); + } + return to; + } + function mixinStatics(to, from) { + var names = getOwnPropertyNames(from); + for (var i = 0; i < names.length; i++) { + var name = names[i]; + switch (name) { + case "arguments": + case "caller": + case "length": + case "name": + case "prototype": + case "toString": + continue; + } + defineProperty(to, name, getOwnPropertyDescriptor(from, name)); + } + return to; + } + function oneOf(object, propertyNames) { + for (var i = 0; i < propertyNames.length; i++) { + if (propertyNames[i] in object) return propertyNames[i]; + } + } + var nonEnumerableDataDescriptor = { + value: undefined, + configurable: true, + enumerable: false, + writable: true + }; + function defineNonEnumerableDataProperty(object, name, value) { + nonEnumerableDataDescriptor.value = value; + defineProperty(object, name, nonEnumerableDataDescriptor); + } + getOwnPropertyNames(window); + function getWrapperConstructor(node, opt_instance) { + var nativePrototype = node.__proto__ || Object.getPrototypeOf(node); + if (isFirefox) { + try { + getOwnPropertyNames(nativePrototype); + } catch (error) { + nativePrototype = nativePrototype.__proto__; + } + } + var wrapperConstructor = constructorTable.get(nativePrototype); + if (wrapperConstructor) return wrapperConstructor; + var parentWrapperConstructor = getWrapperConstructor(nativePrototype); + var GeneratedWrapper = createWrapperConstructor(parentWrapperConstructor); + registerInternal(nativePrototype, GeneratedWrapper, opt_instance); + return GeneratedWrapper; + } + function addForwardingProperties(nativePrototype, wrapperPrototype) { + installProperty(nativePrototype, wrapperPrototype, true); + } + function registerInstanceProperties(wrapperPrototype, instanceObject) { + installProperty(instanceObject, wrapperPrototype, false); + } + var isFirefox = /Firefox/.test(navigator.userAgent); + var dummyDescriptor = { + get: function() {}, + set: function(v) {}, + configurable: true, + enumerable: true + }; + function isEventHandlerName(name) { + return /^on[a-z]+$/.test(name); + } + function isIdentifierName(name) { + return /^[a-zA-Z_$][a-zA-Z_$0-9]*$/.test(name); + } + function getGetter(name) { + return hasEval && isIdentifierName(name) ? new Function("return this.__impl4cf1e782hg__." + name) : function() { + return this.__impl4cf1e782hg__[name]; + }; + } + function getSetter(name) { + return hasEval && isIdentifierName(name) ? new Function("v", "this.__impl4cf1e782hg__." + name + " = v") : function(v) { + this.__impl4cf1e782hg__[name] = v; + }; + } + function getMethod(name) { + return hasEval && isIdentifierName(name) ? new Function("return this.__impl4cf1e782hg__." + name + ".apply(this.__impl4cf1e782hg__, arguments)") : function() { + return this.__impl4cf1e782hg__[name].apply(this.__impl4cf1e782hg__, arguments); + }; + } + function getDescriptor(source, name) { + try { + if (source === window && name === "showModalDialog") { + return dummyDescriptor; + } + return Object.getOwnPropertyDescriptor(source, name); + } catch (ex) { + return dummyDescriptor; + } + } + var isBrokenSafari = function() { + var descr = Object.getOwnPropertyDescriptor(Node.prototype, "nodeType"); + return descr && !descr.get && !descr.set; + }(); + function installProperty(source, target, allowMethod, opt_blacklist) { + var names = getOwnPropertyNames(source); + for (var i = 0; i < names.length; i++) { + var name = names[i]; + if (name === "polymerBlackList_") continue; + if (name in target) continue; + if (source.polymerBlackList_ && source.polymerBlackList_[name]) continue; + if (isFirefox) { + source.__lookupGetter__(name); + } + var descriptor = getDescriptor(source, name); + var getter, setter; + if (typeof descriptor.value === "function") { + if (allowMethod) { + target[name] = getMethod(name); + } + continue; + } + var isEvent = isEventHandlerName(name); + if (isEvent) getter = scope.getEventHandlerGetter(name); else getter = getGetter(name); + if (descriptor.writable || descriptor.set || isBrokenSafari) { + if (isEvent) setter = scope.getEventHandlerSetter(name); else setter = getSetter(name); + } + var configurable = isBrokenSafari || descriptor.configurable; + defineProperty(target, name, { + get: getter, + set: setter, + configurable: configurable, + enumerable: descriptor.enumerable + }); + } + } + function register(nativeConstructor, wrapperConstructor, opt_instance) { + if (nativeConstructor == null) { + return; + } + var nativePrototype = nativeConstructor.prototype; + registerInternal(nativePrototype, wrapperConstructor, opt_instance); + mixinStatics(wrapperConstructor, nativeConstructor); + } + function registerInternal(nativePrototype, wrapperConstructor, opt_instance) { + var wrapperPrototype = wrapperConstructor.prototype; + assert(constructorTable.get(nativePrototype) === undefined); + constructorTable.set(nativePrototype, wrapperConstructor); + nativePrototypeTable.set(wrapperPrototype, nativePrototype); + addForwardingProperties(nativePrototype, wrapperPrototype); + if (opt_instance) registerInstanceProperties(wrapperPrototype, opt_instance); + defineNonEnumerableDataProperty(wrapperPrototype, "constructor", wrapperConstructor); + wrapperConstructor.prototype = wrapperPrototype; + } + function isWrapperFor(wrapperConstructor, nativeConstructor) { + return constructorTable.get(nativeConstructor.prototype) === wrapperConstructor; + } + function registerObject(object) { + var nativePrototype = Object.getPrototypeOf(object); + var superWrapperConstructor = getWrapperConstructor(nativePrototype); + var GeneratedWrapper = createWrapperConstructor(superWrapperConstructor); + registerInternal(nativePrototype, GeneratedWrapper, object); + return GeneratedWrapper; + } + function createWrapperConstructor(superWrapperConstructor) { + function GeneratedWrapper(node) { + superWrapperConstructor.call(this, node); + } + var p = Object.create(superWrapperConstructor.prototype); + p.constructor = GeneratedWrapper; + GeneratedWrapper.prototype = p; + return GeneratedWrapper; + } + function isWrapper(object) { + return object && object.__impl4cf1e782hg__; + } + function isNative(object) { + return !isWrapper(object); + } + function wrap(impl) { + if (impl === null) return null; + assert(isNative(impl)); + var wrapper = impl.__wrapper8e3dd93a60__; + if (wrapper != null) { + return wrapper; + } + return impl.__wrapper8e3dd93a60__ = new (getWrapperConstructor(impl, impl))(impl); + } + function unwrap(wrapper) { + if (wrapper === null) return null; + assert(isWrapper(wrapper)); + return wrapper.__impl4cf1e782hg__; + } + function unsafeUnwrap(wrapper) { + return wrapper.__impl4cf1e782hg__; + } + function setWrapper(impl, wrapper) { + wrapper.__impl4cf1e782hg__ = impl; + impl.__wrapper8e3dd93a60__ = wrapper; + } + function unwrapIfNeeded(object) { + return object && isWrapper(object) ? unwrap(object) : object; + } + function wrapIfNeeded(object) { + return object && !isWrapper(object) ? wrap(object) : object; + } + function rewrap(node, wrapper) { + if (wrapper === null) return; + assert(isNative(node)); + assert(wrapper === undefined || isWrapper(wrapper)); + node.__wrapper8e3dd93a60__ = wrapper; + } + var getterDescriptor = { + get: undefined, + configurable: true, + enumerable: true + }; + function defineGetter(constructor, name, getter) { + getterDescriptor.get = getter; + defineProperty(constructor.prototype, name, getterDescriptor); + } + function defineWrapGetter(constructor, name) { + defineGetter(constructor, name, function() { + return wrap(this.__impl4cf1e782hg__[name]); + }); + } + function forwardMethodsToWrapper(constructors, names) { + constructors.forEach(function(constructor) { + names.forEach(function(name) { + constructor.prototype[name] = function() { + var w = wrapIfNeeded(this); + return w[name].apply(w, arguments); + }; + }); + }); + } + scope.addForwardingProperties = addForwardingProperties; + scope.assert = assert; + scope.constructorTable = constructorTable; + scope.defineGetter = defineGetter; + scope.defineWrapGetter = defineWrapGetter; + scope.forwardMethodsToWrapper = forwardMethodsToWrapper; + scope.isIdentifierName = isIdentifierName; + scope.isWrapper = isWrapper; + scope.isWrapperFor = isWrapperFor; + scope.mixin = mixin; + scope.nativePrototypeTable = nativePrototypeTable; + scope.oneOf = oneOf; + scope.registerObject = registerObject; + scope.registerWrapper = register; + scope.rewrap = rewrap; + scope.setWrapper = setWrapper; + scope.unsafeUnwrap = unsafeUnwrap; + scope.unwrap = unwrap; + scope.unwrapIfNeeded = unwrapIfNeeded; + scope.wrap = wrap; + scope.wrapIfNeeded = wrapIfNeeded; + scope.wrappers = wrappers; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + function newSplice(index, removed, addedCount) { + return { + index: index, + removed: removed, + addedCount: addedCount + }; + } + var EDIT_LEAVE = 0; + var EDIT_UPDATE = 1; + var EDIT_ADD = 2; + var EDIT_DELETE = 3; + function ArraySplice() {} + ArraySplice.prototype = { + calcEditDistances: function(current, currentStart, currentEnd, old, oldStart, oldEnd) { + var rowCount = oldEnd - oldStart + 1; + var columnCount = currentEnd - currentStart + 1; + var distances = new Array(rowCount); + for (var i = 0; i < rowCount; i++) { + distances[i] = new Array(columnCount); + distances[i][0] = i; + } + for (var j = 0; j < columnCount; j++) distances[0][j] = j; + for (var i = 1; i < rowCount; i++) { + for (var j = 1; j < columnCount; j++) { + if (this.equals(current[currentStart + j - 1], old[oldStart + i - 1])) distances[i][j] = distances[i - 1][j - 1]; else { + var north = distances[i - 1][j] + 1; + var west = distances[i][j - 1] + 1; + distances[i][j] = north < west ? north : west; + } + } + } + return distances; + }, + spliceOperationsFromEditDistances: function(distances) { + var i = distances.length - 1; + var j = distances[0].length - 1; + var current = distances[i][j]; + var edits = []; + while (i > 0 || j > 0) { + if (i == 0) { + edits.push(EDIT_ADD); + j--; + continue; + } + if (j == 0) { + edits.push(EDIT_DELETE); + i--; + continue; + } + var northWest = distances[i - 1][j - 1]; + var west = distances[i - 1][j]; + var north = distances[i][j - 1]; + var min; + if (west < north) min = west < northWest ? west : northWest; else min = north < northWest ? north : northWest; + if (min == northWest) { + if (northWest == current) { + edits.push(EDIT_LEAVE); + } else { + edits.push(EDIT_UPDATE); + current = northWest; + } + i--; + j--; + } else if (min == west) { + edits.push(EDIT_DELETE); + i--; + current = west; + } else { + edits.push(EDIT_ADD); + j--; + current = north; + } + } + edits.reverse(); + return edits; + }, + calcSplices: function(current, currentStart, currentEnd, old, oldStart, oldEnd) { + var prefixCount = 0; + var suffixCount = 0; + var minLength = Math.min(currentEnd - currentStart, oldEnd - oldStart); + if (currentStart == 0 && oldStart == 0) prefixCount = this.sharedPrefix(current, old, minLength); + if (currentEnd == current.length && oldEnd == old.length) suffixCount = this.sharedSuffix(current, old, minLength - prefixCount); + currentStart += prefixCount; + oldStart += prefixCount; + currentEnd -= suffixCount; + oldEnd -= suffixCount; + if (currentEnd - currentStart == 0 && oldEnd - oldStart == 0) return []; + if (currentStart == currentEnd) { + var splice = newSplice(currentStart, [], 0); + while (oldStart < oldEnd) splice.removed.push(old[oldStart++]); + return [ splice ]; + } else if (oldStart == oldEnd) return [ newSplice(currentStart, [], currentEnd - currentStart) ]; + var ops = this.spliceOperationsFromEditDistances(this.calcEditDistances(current, currentStart, currentEnd, old, oldStart, oldEnd)); + var splice = undefined; + var splices = []; + var index = currentStart; + var oldIndex = oldStart; + for (var i = 0; i < ops.length; i++) { + switch (ops[i]) { + case EDIT_LEAVE: + if (splice) { + splices.push(splice); + splice = undefined; + } + index++; + oldIndex++; + break; + + case EDIT_UPDATE: + if (!splice) splice = newSplice(index, [], 0); + splice.addedCount++; + index++; + splice.removed.push(old[oldIndex]); + oldIndex++; + break; + + case EDIT_ADD: + if (!splice) splice = newSplice(index, [], 0); + splice.addedCount++; + index++; + break; + + case EDIT_DELETE: + if (!splice) splice = newSplice(index, [], 0); + splice.removed.push(old[oldIndex]); + oldIndex++; + break; + } + } + if (splice) { + splices.push(splice); + } + return splices; + }, + sharedPrefix: function(current, old, searchLength) { + for (var i = 0; i < searchLength; i++) if (!this.equals(current[i], old[i])) return i; + return searchLength; + }, + sharedSuffix: function(current, old, searchLength) { + var index1 = current.length; + var index2 = old.length; + var count = 0; + while (count < searchLength && this.equals(current[--index1], old[--index2])) count++; + return count; + }, + calculateSplices: function(current, previous) { + return this.calcSplices(current, 0, current.length, previous, 0, previous.length); + }, + equals: function(currentValue, previousValue) { + return currentValue === previousValue; + } + }; + scope.ArraySplice = ArraySplice; + })(window.ShadowDOMPolyfill); + (function(context) { + "use strict"; + var OriginalMutationObserver = window.MutationObserver; + var callbacks = []; + var pending = false; + var timerFunc; + function handle() { + pending = false; + var copies = callbacks.slice(0); + callbacks = []; + for (var i = 0; i < copies.length; i++) { + (0, copies[i])(); + } + } + if (OriginalMutationObserver) { + var counter = 1; + var observer = new OriginalMutationObserver(handle); + var textNode = document.createTextNode(counter); + observer.observe(textNode, { + characterData: true + }); + timerFunc = function() { + counter = (counter + 1) % 2; + textNode.data = counter; + }; + } else { + timerFunc = window.setTimeout; + } + function setEndOfMicrotask(func) { + callbacks.push(func); + if (pending) return; + pending = true; + timerFunc(handle, 0); + } + context.setEndOfMicrotask = setEndOfMicrotask; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var setEndOfMicrotask = scope.setEndOfMicrotask; + var wrapIfNeeded = scope.wrapIfNeeded; + var wrappers = scope.wrappers; + var registrationsTable = new WeakMap(); + var globalMutationObservers = []; + var isScheduled = false; + function scheduleCallback(observer) { + if (observer.scheduled_) return; + observer.scheduled_ = true; + globalMutationObservers.push(observer); + if (isScheduled) return; + setEndOfMicrotask(notifyObservers); + isScheduled = true; + } + function notifyObservers() { + isScheduled = false; + while (globalMutationObservers.length) { + var notifyList = globalMutationObservers; + globalMutationObservers = []; + notifyList.sort(function(x, y) { + return x.uid_ - y.uid_; + }); + for (var i = 0; i < notifyList.length; i++) { + var mo = notifyList[i]; + mo.scheduled_ = false; + var queue = mo.takeRecords(); + removeTransientObserversFor(mo); + if (queue.length) { + mo.callback_(queue, mo); + } + } + } + } + function MutationRecord(type, target) { + this.type = type; + this.target = target; + this.addedNodes = new wrappers.NodeList(); + this.removedNodes = new wrappers.NodeList(); + this.previousSibling = null; + this.nextSibling = null; + this.attributeName = null; + this.attributeNamespace = null; + this.oldValue = null; + } + function registerTransientObservers(ancestor, node) { + for (;ancestor; ancestor = ancestor.parentNode) { + var registrations = registrationsTable.get(ancestor); + if (!registrations) continue; + for (var i = 0; i < registrations.length; i++) { + var registration = registrations[i]; + if (registration.options.subtree) registration.addTransientObserver(node); + } + } + } + function removeTransientObserversFor(observer) { + for (var i = 0; i < observer.nodes_.length; i++) { + var node = observer.nodes_[i]; + var registrations = registrationsTable.get(node); + if (!registrations) return; + for (var j = 0; j < registrations.length; j++) { + var registration = registrations[j]; + if (registration.observer === observer) registration.removeTransientObservers(); + } + } + } + function enqueueMutation(target, type, data) { + var interestedObservers = Object.create(null); + var associatedStrings = Object.create(null); + for (var node = target; node; node = node.parentNode) { + var registrations = registrationsTable.get(node); + if (!registrations) continue; + for (var j = 0; j < registrations.length; j++) { + var registration = registrations[j]; + var options = registration.options; + if (node !== target && !options.subtree) continue; + if (type === "attributes" && !options.attributes) continue; + if (type === "attributes" && options.attributeFilter && (data.namespace !== null || options.attributeFilter.indexOf(data.name) === -1)) { + continue; + } + if (type === "characterData" && !options.characterData) continue; + if (type === "childList" && !options.childList) continue; + var observer = registration.observer; + interestedObservers[observer.uid_] = observer; + if (type === "attributes" && options.attributeOldValue || type === "characterData" && options.characterDataOldValue) { + associatedStrings[observer.uid_] = data.oldValue; + } + } + } + for (var uid in interestedObservers) { + var observer = interestedObservers[uid]; + var record = new MutationRecord(type, target); + if ("name" in data && "namespace" in data) { + record.attributeName = data.name; + record.attributeNamespace = data.namespace; + } + if (data.addedNodes) record.addedNodes = data.addedNodes; + if (data.removedNodes) record.removedNodes = data.removedNodes; + if (data.previousSibling) record.previousSibling = data.previousSibling; + if (data.nextSibling) record.nextSibling = data.nextSibling; + if (associatedStrings[uid] !== undefined) record.oldValue = associatedStrings[uid]; + scheduleCallback(observer); + observer.records_.push(record); + } + } + var slice = Array.prototype.slice; + function MutationObserverOptions(options) { + this.childList = !!options.childList; + this.subtree = !!options.subtree; + if (!("attributes" in options) && ("attributeOldValue" in options || "attributeFilter" in options)) { + this.attributes = true; + } else { + this.attributes = !!options.attributes; + } + if ("characterDataOldValue" in options && !("characterData" in options)) this.characterData = true; else this.characterData = !!options.characterData; + if (!this.attributes && (options.attributeOldValue || "attributeFilter" in options) || !this.characterData && options.characterDataOldValue) { + throw new TypeError(); + } + this.characterData = !!options.characterData; + this.attributeOldValue = !!options.attributeOldValue; + this.characterDataOldValue = !!options.characterDataOldValue; + if ("attributeFilter" in options) { + if (options.attributeFilter == null || typeof options.attributeFilter !== "object") { + throw new TypeError(); + } + this.attributeFilter = slice.call(options.attributeFilter); + } else { + this.attributeFilter = null; + } + } + var uidCounter = 0; + function MutationObserver(callback) { + this.callback_ = callback; + this.nodes_ = []; + this.records_ = []; + this.uid_ = ++uidCounter; + this.scheduled_ = false; + } + MutationObserver.prototype = { + constructor: MutationObserver, + observe: function(target, options) { + target = wrapIfNeeded(target); + var newOptions = new MutationObserverOptions(options); + var registration; + var registrations = registrationsTable.get(target); + if (!registrations) registrationsTable.set(target, registrations = []); + for (var i = 0; i < registrations.length; i++) { + if (registrations[i].observer === this) { + registration = registrations[i]; + registration.removeTransientObservers(); + registration.options = newOptions; + } + } + if (!registration) { + registration = new Registration(this, target, newOptions); + registrations.push(registration); + this.nodes_.push(target); + } + }, + disconnect: function() { + this.nodes_.forEach(function(node) { + var registrations = registrationsTable.get(node); + for (var i = 0; i < registrations.length; i++) { + var registration = registrations[i]; + if (registration.observer === this) { + registrations.splice(i, 1); + break; + } + } + }, this); + this.records_ = []; + }, + takeRecords: function() { + var copyOfRecords = this.records_; + this.records_ = []; + return copyOfRecords; + } + }; + function Registration(observer, target, options) { + this.observer = observer; + this.target = target; + this.options = options; + this.transientObservedNodes = []; + } + Registration.prototype = { + addTransientObserver: function(node) { + if (node === this.target) return; + scheduleCallback(this.observer); + this.transientObservedNodes.push(node); + var registrations = registrationsTable.get(node); + if (!registrations) registrationsTable.set(node, registrations = []); + registrations.push(this); + }, + removeTransientObservers: function() { + var transientObservedNodes = this.transientObservedNodes; + this.transientObservedNodes = []; + for (var i = 0; i < transientObservedNodes.length; i++) { + var node = transientObservedNodes[i]; + var registrations = registrationsTable.get(node); + for (var j = 0; j < registrations.length; j++) { + if (registrations[j] === this) { + registrations.splice(j, 1); + break; + } + } + } + } + }; + scope.enqueueMutation = enqueueMutation; + scope.registerTransientObservers = registerTransientObservers; + scope.wrappers.MutationObserver = MutationObserver; + scope.wrappers.MutationRecord = MutationRecord; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + function TreeScope(root, parent) { + this.root = root; + this.parent = parent; + } + TreeScope.prototype = { + get renderer() { + if (this.root instanceof scope.wrappers.ShadowRoot) { + return scope.getRendererForHost(this.root.host); + } + return null; + }, + contains: function(treeScope) { + for (;treeScope; treeScope = treeScope.parent) { + if (treeScope === this) return true; + } + return false; + } + }; + function setTreeScope(node, treeScope) { + if (node.treeScope_ !== treeScope) { + node.treeScope_ = treeScope; + for (var sr = node.shadowRoot; sr; sr = sr.olderShadowRoot) { + sr.treeScope_.parent = treeScope; + } + for (var child = node.firstChild; child; child = child.nextSibling) { + setTreeScope(child, treeScope); + } + } + } + function getTreeScope(node) { + if (node instanceof scope.wrappers.Window) { + debugger; + } + if (node.treeScope_) return node.treeScope_; + var parent = node.parentNode; + var treeScope; + if (parent) treeScope = getTreeScope(parent); else treeScope = new TreeScope(node, null); + return node.treeScope_ = treeScope; + } + scope.TreeScope = TreeScope; + scope.getTreeScope = getTreeScope; + scope.setTreeScope = setTreeScope; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var forwardMethodsToWrapper = scope.forwardMethodsToWrapper; + var getTreeScope = scope.getTreeScope; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var setWrapper = scope.setWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var wrappers = scope.wrappers; + var wrappedFuns = new WeakMap(); + var listenersTable = new WeakMap(); + var handledEventsTable = new WeakMap(); + var currentlyDispatchingEvents = new WeakMap(); + var targetTable = new WeakMap(); + var currentTargetTable = new WeakMap(); + var relatedTargetTable = new WeakMap(); + var eventPhaseTable = new WeakMap(); + var stopPropagationTable = new WeakMap(); + var stopImmediatePropagationTable = new WeakMap(); + var eventHandlersTable = new WeakMap(); + var eventPathTable = new WeakMap(); + function isShadowRoot(node) { + return node instanceof wrappers.ShadowRoot; + } + function rootOfNode(node) { + return getTreeScope(node).root; + } + function getEventPath(node, event) { + var path = []; + var current = node; + path.push(current); + while (current) { + var destinationInsertionPoints = getDestinationInsertionPoints(current); + if (destinationInsertionPoints && destinationInsertionPoints.length > 0) { + for (var i = 0; i < destinationInsertionPoints.length; i++) { + var insertionPoint = destinationInsertionPoints[i]; + if (isShadowInsertionPoint(insertionPoint)) { + var shadowRoot = rootOfNode(insertionPoint); + var olderShadowRoot = shadowRoot.olderShadowRoot; + if (olderShadowRoot) path.push(olderShadowRoot); + } + path.push(insertionPoint); + } + current = destinationInsertionPoints[destinationInsertionPoints.length - 1]; + } else { + if (isShadowRoot(current)) { + if (inSameTree(node, current) && eventMustBeStopped(event)) { + break; + } + current = current.host; + path.push(current); + } else { + current = current.parentNode; + if (current) path.push(current); + } + } + } + return path; + } + function eventMustBeStopped(event) { + if (!event) return false; + switch (event.type) { + case "abort": + case "error": + case "select": + case "change": + case "load": + case "reset": + case "resize": + case "scroll": + case "selectstart": + return true; + } + return false; + } + function isShadowInsertionPoint(node) { + return node instanceof HTMLShadowElement; + } + function getDestinationInsertionPoints(node) { + return scope.getDestinationInsertionPoints(node); + } + function eventRetargetting(path, currentTarget) { + if (path.length === 0) return currentTarget; + if (currentTarget instanceof wrappers.Window) currentTarget = currentTarget.document; + var currentTargetTree = getTreeScope(currentTarget); + var originalTarget = path[0]; + var originalTargetTree = getTreeScope(originalTarget); + var relativeTargetTree = lowestCommonInclusiveAncestor(currentTargetTree, originalTargetTree); + for (var i = 0; i < path.length; i++) { + var node = path[i]; + if (getTreeScope(node) === relativeTargetTree) return node; + } + return path[path.length - 1]; + } + function getTreeScopeAncestors(treeScope) { + var ancestors = []; + for (;treeScope; treeScope = treeScope.parent) { + ancestors.push(treeScope); + } + return ancestors; + } + function lowestCommonInclusiveAncestor(tsA, tsB) { + var ancestorsA = getTreeScopeAncestors(tsA); + var ancestorsB = getTreeScopeAncestors(tsB); + var result = null; + while (ancestorsA.length > 0 && ancestorsB.length > 0) { + var a = ancestorsA.pop(); + var b = ancestorsB.pop(); + if (a === b) result = a; else break; + } + return result; + } + function getTreeScopeRoot(ts) { + if (!ts.parent) return ts; + return getTreeScopeRoot(ts.parent); + } + function relatedTargetResolution(event, currentTarget, relatedTarget) { + if (currentTarget instanceof wrappers.Window) currentTarget = currentTarget.document; + var currentTargetTree = getTreeScope(currentTarget); + var relatedTargetTree = getTreeScope(relatedTarget); + var relatedTargetEventPath = getEventPath(relatedTarget, event); + var lowestCommonAncestorTree; + var lowestCommonAncestorTree = lowestCommonInclusiveAncestor(currentTargetTree, relatedTargetTree); + if (!lowestCommonAncestorTree) lowestCommonAncestorTree = relatedTargetTree.root; + for (var commonAncestorTree = lowestCommonAncestorTree; commonAncestorTree; commonAncestorTree = commonAncestorTree.parent) { + var adjustedRelatedTarget; + for (var i = 0; i < relatedTargetEventPath.length; i++) { + var node = relatedTargetEventPath[i]; + if (getTreeScope(node) === commonAncestorTree) return node; + } + } + return null; + } + function inSameTree(a, b) { + return getTreeScope(a) === getTreeScope(b); + } + var NONE = 0; + var CAPTURING_PHASE = 1; + var AT_TARGET = 2; + var BUBBLING_PHASE = 3; + var pendingError; + function dispatchOriginalEvent(originalEvent) { + if (handledEventsTable.get(originalEvent)) return; + handledEventsTable.set(originalEvent, true); + dispatchEvent(wrap(originalEvent), wrap(originalEvent.target)); + if (pendingError) { + var err = pendingError; + pendingError = null; + throw err; + } + } + function isLoadLikeEvent(event) { + switch (event.type) { + case "load": + case "beforeunload": + case "unload": + return true; + } + return false; + } + function dispatchEvent(event, originalWrapperTarget) { + if (currentlyDispatchingEvents.get(event)) throw new Error("InvalidStateError"); + currentlyDispatchingEvents.set(event, true); + scope.renderAllPending(); + var eventPath; + var overrideTarget; + var win; + if (isLoadLikeEvent(event) && !event.bubbles) { + var doc = originalWrapperTarget; + if (doc instanceof wrappers.Document && (win = doc.defaultView)) { + overrideTarget = doc; + eventPath = []; + } + } + if (!eventPath) { + if (originalWrapperTarget instanceof wrappers.Window) { + win = originalWrapperTarget; + eventPath = []; + } else { + eventPath = getEventPath(originalWrapperTarget, event); + if (!isLoadLikeEvent(event)) { + var doc = eventPath[eventPath.length - 1]; + if (doc instanceof wrappers.Document) win = doc.defaultView; + } + } + } + eventPathTable.set(event, eventPath); + if (dispatchCapturing(event, eventPath, win, overrideTarget)) { + if (dispatchAtTarget(event, eventPath, win, overrideTarget)) { + dispatchBubbling(event, eventPath, win, overrideTarget); + } + } + eventPhaseTable.set(event, NONE); + currentTargetTable.delete(event, null); + currentlyDispatchingEvents.delete(event); + return event.defaultPrevented; + } + function dispatchCapturing(event, eventPath, win, overrideTarget) { + var phase = CAPTURING_PHASE; + if (win) { + if (!invoke(win, event, phase, eventPath, overrideTarget)) return false; + } + for (var i = eventPath.length - 1; i > 0; i--) { + if (!invoke(eventPath[i], event, phase, eventPath, overrideTarget)) return false; + } + return true; + } + function dispatchAtTarget(event, eventPath, win, overrideTarget) { + var phase = AT_TARGET; + var currentTarget = eventPath[0] || win; + return invoke(currentTarget, event, phase, eventPath, overrideTarget); + } + function dispatchBubbling(event, eventPath, win, overrideTarget) { + var phase = BUBBLING_PHASE; + for (var i = 1; i < eventPath.length; i++) { + if (!invoke(eventPath[i], event, phase, eventPath, overrideTarget)) return; + } + if (win && eventPath.length > 0) { + invoke(win, event, phase, eventPath, overrideTarget); + } + } + function invoke(currentTarget, event, phase, eventPath, overrideTarget) { + var listeners = listenersTable.get(currentTarget); + if (!listeners) return true; + var target = overrideTarget || eventRetargetting(eventPath, currentTarget); + if (target === currentTarget) { + if (phase === CAPTURING_PHASE) return true; + if (phase === BUBBLING_PHASE) phase = AT_TARGET; + } else if (phase === BUBBLING_PHASE && !event.bubbles) { + return true; + } + if ("relatedTarget" in event) { + var originalEvent = unwrap(event); + var unwrappedRelatedTarget = originalEvent.relatedTarget; + if (unwrappedRelatedTarget) { + if (unwrappedRelatedTarget instanceof Object && unwrappedRelatedTarget.addEventListener) { + var relatedTarget = wrap(unwrappedRelatedTarget); + var adjusted = relatedTargetResolution(event, currentTarget, relatedTarget); + if (adjusted === target) return true; + } else { + adjusted = null; + } + relatedTargetTable.set(event, adjusted); + } + } + eventPhaseTable.set(event, phase); + var type = event.type; + var anyRemoved = false; + targetTable.set(event, target); + currentTargetTable.set(event, currentTarget); + listeners.depth++; + for (var i = 0, len = listeners.length; i < len; i++) { + var listener = listeners[i]; + if (listener.removed) { + anyRemoved = true; + continue; + } + if (listener.type !== type || !listener.capture && phase === CAPTURING_PHASE || listener.capture && phase === BUBBLING_PHASE) { + continue; + } + try { + if (typeof listener.handler === "function") listener.handler.call(currentTarget, event); else listener.handler.handleEvent(event); + if (stopImmediatePropagationTable.get(event)) return false; + } catch (ex) { + if (!pendingError) pendingError = ex; + } + } + listeners.depth--; + if (anyRemoved && listeners.depth === 0) { + var copy = listeners.slice(); + listeners.length = 0; + for (var i = 0; i < copy.length; i++) { + if (!copy[i].removed) listeners.push(copy[i]); + } + } + return !stopPropagationTable.get(event); + } + function Listener(type, handler, capture) { + this.type = type; + this.handler = handler; + this.capture = Boolean(capture); + } + Listener.prototype = { + equals: function(that) { + return this.handler === that.handler && this.type === that.type && this.capture === that.capture; + }, + get removed() { + return this.handler === null; + }, + remove: function() { + this.handler = null; + } + }; + var OriginalEvent = window.Event; + OriginalEvent.prototype.polymerBlackList_ = { + returnValue: true, + keyLocation: true + }; + function Event(type, options) { + if (type instanceof OriginalEvent) { + var impl = type; + if (!OriginalBeforeUnloadEvent && impl.type === "beforeunload" && !(this instanceof BeforeUnloadEvent)) { + return new BeforeUnloadEvent(impl); + } + setWrapper(impl, this); + } else { + return wrap(constructEvent(OriginalEvent, "Event", type, options)); + } + } + Event.prototype = { + get target() { + return targetTable.get(this); + }, + get currentTarget() { + return currentTargetTable.get(this); + }, + get eventPhase() { + return eventPhaseTable.get(this); + }, + get path() { + var eventPath = eventPathTable.get(this); + if (!eventPath) return []; + return eventPath.slice(); + }, + stopPropagation: function() { + stopPropagationTable.set(this, true); + }, + stopImmediatePropagation: function() { + stopPropagationTable.set(this, true); + stopImmediatePropagationTable.set(this, true); + } + }; + var supportsDefaultPrevented = function() { + var e = document.createEvent("Event"); + e.initEvent("test", true, true); + e.preventDefault(); + return e.defaultPrevented; + }(); + if (!supportsDefaultPrevented) { + Event.prototype.preventDefault = function() { + if (!this.cancelable) return; + unsafeUnwrap(this).preventDefault(); + Object.defineProperty(this, "defaultPrevented", { + get: function() { + return true; + }, + configurable: true + }); + }; + } + registerWrapper(OriginalEvent, Event, document.createEvent("Event")); + function unwrapOptions(options) { + if (!options || !options.relatedTarget) return options; + return Object.create(options, { + relatedTarget: { + value: unwrap(options.relatedTarget) + } + }); + } + function registerGenericEvent(name, SuperEvent, prototype) { + var OriginalEvent = window[name]; + var GenericEvent = function(type, options) { + if (type instanceof OriginalEvent) setWrapper(type, this); else return wrap(constructEvent(OriginalEvent, name, type, options)); + }; + GenericEvent.prototype = Object.create(SuperEvent.prototype); + if (prototype) mixin(GenericEvent.prototype, prototype); + if (OriginalEvent) { + try { + registerWrapper(OriginalEvent, GenericEvent, new OriginalEvent("temp")); + } catch (ex) { + registerWrapper(OriginalEvent, GenericEvent, document.createEvent(name)); + } + } + return GenericEvent; + } + var UIEvent = registerGenericEvent("UIEvent", Event); + var CustomEvent = registerGenericEvent("CustomEvent", Event); + var relatedTargetProto = { + get relatedTarget() { + var relatedTarget = relatedTargetTable.get(this); + if (relatedTarget !== undefined) return relatedTarget; + return wrap(unwrap(this).relatedTarget); + } + }; + function getInitFunction(name, relatedTargetIndex) { + return function() { + arguments[relatedTargetIndex] = unwrap(arguments[relatedTargetIndex]); + var impl = unwrap(this); + impl[name].apply(impl, arguments); + }; + } + var mouseEventProto = mixin({ + initMouseEvent: getInitFunction("initMouseEvent", 14) + }, relatedTargetProto); + var focusEventProto = mixin({ + initFocusEvent: getInitFunction("initFocusEvent", 5) + }, relatedTargetProto); + var MouseEvent = registerGenericEvent("MouseEvent", UIEvent, mouseEventProto); + var FocusEvent = registerGenericEvent("FocusEvent", UIEvent, focusEventProto); + var defaultInitDicts = Object.create(null); + var supportsEventConstructors = function() { + try { + new window.FocusEvent("focus"); + } catch (ex) { + return false; + } + return true; + }(); + function constructEvent(OriginalEvent, name, type, options) { + if (supportsEventConstructors) return new OriginalEvent(type, unwrapOptions(options)); + var event = unwrap(document.createEvent(name)); + var defaultDict = defaultInitDicts[name]; + var args = [ type ]; + Object.keys(defaultDict).forEach(function(key) { + var v = options != null && key in options ? options[key] : defaultDict[key]; + if (key === "relatedTarget") v = unwrap(v); + args.push(v); + }); + event["init" + name].apply(event, args); + return event; + } + if (!supportsEventConstructors) { + var configureEventConstructor = function(name, initDict, superName) { + if (superName) { + var superDict = defaultInitDicts[superName]; + initDict = mixin(mixin({}, superDict), initDict); + } + defaultInitDicts[name] = initDict; + }; + configureEventConstructor("Event", { + bubbles: false, + cancelable: false + }); + configureEventConstructor("CustomEvent", { + detail: null + }, "Event"); + configureEventConstructor("UIEvent", { + view: null, + detail: 0 + }, "Event"); + configureEventConstructor("MouseEvent", { + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0, + ctrlKey: false, + altKey: false, + shiftKey: false, + metaKey: false, + button: 0, + relatedTarget: null + }, "UIEvent"); + configureEventConstructor("FocusEvent", { + relatedTarget: null + }, "UIEvent"); + } + var OriginalBeforeUnloadEvent = window.BeforeUnloadEvent; + function BeforeUnloadEvent(impl) { + Event.call(this, impl); + } + BeforeUnloadEvent.prototype = Object.create(Event.prototype); + mixin(BeforeUnloadEvent.prototype, { + get returnValue() { + return unsafeUnwrap(this).returnValue; + }, + set returnValue(v) { + unsafeUnwrap(this).returnValue = v; + } + }); + if (OriginalBeforeUnloadEvent) registerWrapper(OriginalBeforeUnloadEvent, BeforeUnloadEvent); + function isValidListener(fun) { + if (typeof fun === "function") return true; + return fun && fun.handleEvent; + } + function isMutationEvent(type) { + switch (type) { + case "DOMAttrModified": + case "DOMAttributeNameChanged": + case "DOMCharacterDataModified": + case "DOMElementNameChanged": + case "DOMNodeInserted": + case "DOMNodeInsertedIntoDocument": + case "DOMNodeRemoved": + case "DOMNodeRemovedFromDocument": + case "DOMSubtreeModified": + return true; + } + return false; + } + var OriginalEventTarget = window.EventTarget; + function EventTarget(impl) { + setWrapper(impl, this); + } + var methodNames = [ "addEventListener", "removeEventListener", "dispatchEvent" ]; + [ Node, Window ].forEach(function(constructor) { + var p = constructor.prototype; + methodNames.forEach(function(name) { + Object.defineProperty(p, name + "_", { + value: p[name] + }); + }); + }); + function getTargetToListenAt(wrapper) { + if (wrapper instanceof wrappers.ShadowRoot) wrapper = wrapper.host; + return unwrap(wrapper); + } + EventTarget.prototype = { + addEventListener: function(type, fun, capture) { + if (!isValidListener(fun) || isMutationEvent(type)) return; + var listener = new Listener(type, fun, capture); + var listeners = listenersTable.get(this); + if (!listeners) { + listeners = []; + listeners.depth = 0; + listenersTable.set(this, listeners); + } else { + for (var i = 0; i < listeners.length; i++) { + if (listener.equals(listeners[i])) return; + } + } + listeners.push(listener); + var target = getTargetToListenAt(this); + target.addEventListener_(type, dispatchOriginalEvent, true); + }, + removeEventListener: function(type, fun, capture) { + capture = Boolean(capture); + var listeners = listenersTable.get(this); + if (!listeners) return; + var count = 0, found = false; + for (var i = 0; i < listeners.length; i++) { + if (listeners[i].type === type && listeners[i].capture === capture) { + count++; + if (listeners[i].handler === fun) { + found = true; + listeners[i].remove(); + } + } + } + if (found && count === 1) { + var target = getTargetToListenAt(this); + target.removeEventListener_(type, dispatchOriginalEvent, true); + } + }, + dispatchEvent: function(event) { + var nativeEvent = unwrap(event); + var eventType = nativeEvent.type; + handledEventsTable.set(nativeEvent, false); + scope.renderAllPending(); + var tempListener; + if (!hasListenerInAncestors(this, eventType)) { + tempListener = function() {}; + this.addEventListener(eventType, tempListener, true); + } + try { + return unwrap(this).dispatchEvent_(nativeEvent); + } finally { + if (tempListener) this.removeEventListener(eventType, tempListener, true); + } + } + }; + function hasListener(node, type) { + var listeners = listenersTable.get(node); + if (listeners) { + for (var i = 0; i < listeners.length; i++) { + if (!listeners[i].removed && listeners[i].type === type) return true; + } + } + return false; + } + function hasListenerInAncestors(target, type) { + for (var node = unwrap(target); node; node = node.parentNode) { + if (hasListener(wrap(node), type)) return true; + } + return false; + } + if (OriginalEventTarget) registerWrapper(OriginalEventTarget, EventTarget); + function wrapEventTargetMethods(constructors) { + forwardMethodsToWrapper(constructors, methodNames); + } + var originalElementFromPoint = document.elementFromPoint; + function elementFromPoint(self, document, x, y) { + scope.renderAllPending(); + var element = wrap(originalElementFromPoint.call(unsafeUnwrap(document), x, y)); + if (!element) return null; + var path = getEventPath(element, null); + var idx = path.lastIndexOf(self); + if (idx == -1) return null; else path = path.slice(0, idx); + return eventRetargetting(path, self); + } + function getEventHandlerGetter(name) { + return function() { + var inlineEventHandlers = eventHandlersTable.get(this); + return inlineEventHandlers && inlineEventHandlers[name] && inlineEventHandlers[name].value || null; + }; + } + function getEventHandlerSetter(name) { + var eventType = name.slice(2); + return function(value) { + var inlineEventHandlers = eventHandlersTable.get(this); + if (!inlineEventHandlers) { + inlineEventHandlers = Object.create(null); + eventHandlersTable.set(this, inlineEventHandlers); + } + var old = inlineEventHandlers[name]; + if (old) this.removeEventListener(eventType, old.wrapped, false); + if (typeof value === "function") { + var wrapped = function(e) { + var rv = value.call(this, e); + if (rv === false) e.preventDefault(); else if (name === "onbeforeunload" && typeof rv === "string") e.returnValue = rv; + }; + this.addEventListener(eventType, wrapped, false); + inlineEventHandlers[name] = { + value: value, + wrapped: wrapped + }; + } + }; + } + scope.elementFromPoint = elementFromPoint; + scope.getEventHandlerGetter = getEventHandlerGetter; + scope.getEventHandlerSetter = getEventHandlerSetter; + scope.wrapEventTargetMethods = wrapEventTargetMethods; + scope.wrappers.BeforeUnloadEvent = BeforeUnloadEvent; + scope.wrappers.CustomEvent = CustomEvent; + scope.wrappers.Event = Event; + scope.wrappers.EventTarget = EventTarget; + scope.wrappers.FocusEvent = FocusEvent; + scope.wrappers.MouseEvent = MouseEvent; + scope.wrappers.UIEvent = UIEvent; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var UIEvent = scope.wrappers.UIEvent; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var setWrapper = scope.setWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var wrap = scope.wrap; + var OriginalTouchEvent = window.TouchEvent; + if (!OriginalTouchEvent) return; + var nativeEvent; + try { + nativeEvent = document.createEvent("TouchEvent"); + } catch (ex) { + return; + } + var nonEnumDescriptor = { + enumerable: false + }; + function nonEnum(obj, prop) { + Object.defineProperty(obj, prop, nonEnumDescriptor); + } + function Touch(impl) { + setWrapper(impl, this); + } + Touch.prototype = { + get target() { + return wrap(unsafeUnwrap(this).target); + } + }; + var descr = { + configurable: true, + enumerable: true, + get: null + }; + [ "clientX", "clientY", "screenX", "screenY", "pageX", "pageY", "identifier", "webkitRadiusX", "webkitRadiusY", "webkitRotationAngle", "webkitForce" ].forEach(function(name) { + descr.get = function() { + return unsafeUnwrap(this)[name]; + }; + Object.defineProperty(Touch.prototype, name, descr); + }); + function TouchList() { + this.length = 0; + nonEnum(this, "length"); + } + TouchList.prototype = { + item: function(index) { + return this[index]; + } + }; + function wrapTouchList(nativeTouchList) { + var list = new TouchList(); + for (var i = 0; i < nativeTouchList.length; i++) { + list[i] = new Touch(nativeTouchList[i]); + } + list.length = i; + return list; + } + function TouchEvent(impl) { + UIEvent.call(this, impl); + } + TouchEvent.prototype = Object.create(UIEvent.prototype); + mixin(TouchEvent.prototype, { + get touches() { + return wrapTouchList(unsafeUnwrap(this).touches); + }, + get targetTouches() { + return wrapTouchList(unsafeUnwrap(this).targetTouches); + }, + get changedTouches() { + return wrapTouchList(unsafeUnwrap(this).changedTouches); + }, + initTouchEvent: function() { + throw new Error("Not implemented"); + } + }); + registerWrapper(OriginalTouchEvent, TouchEvent, nativeEvent); + scope.wrappers.Touch = Touch; + scope.wrappers.TouchEvent = TouchEvent; + scope.wrappers.TouchList = TouchList; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var unsafeUnwrap = scope.unsafeUnwrap; + var wrap = scope.wrap; + var nonEnumDescriptor = { + enumerable: false + }; + function nonEnum(obj, prop) { + Object.defineProperty(obj, prop, nonEnumDescriptor); + } + function NodeList() { + this.length = 0; + nonEnum(this, "length"); + } + NodeList.prototype = { + item: function(index) { + return this[index]; + } + }; + nonEnum(NodeList.prototype, "item"); + function wrapNodeList(list) { + if (list == null) return list; + var wrapperList = new NodeList(); + for (var i = 0, length = list.length; i < length; i++) { + wrapperList[i] = wrap(list[i]); + } + wrapperList.length = length; + return wrapperList; + } + function addWrapNodeListMethod(wrapperConstructor, name) { + wrapperConstructor.prototype[name] = function() { + return wrapNodeList(unsafeUnwrap(this)[name].apply(unsafeUnwrap(this), arguments)); + }; + } + scope.wrappers.NodeList = NodeList; + scope.addWrapNodeListMethod = addWrapNodeListMethod; + scope.wrapNodeList = wrapNodeList; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + scope.wrapHTMLCollection = scope.wrapNodeList; + scope.wrappers.HTMLCollection = scope.wrappers.NodeList; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var EventTarget = scope.wrappers.EventTarget; + var NodeList = scope.wrappers.NodeList; + var TreeScope = scope.TreeScope; + var assert = scope.assert; + var defineWrapGetter = scope.defineWrapGetter; + var enqueueMutation = scope.enqueueMutation; + var getTreeScope = scope.getTreeScope; + var isWrapper = scope.isWrapper; + var mixin = scope.mixin; + var registerTransientObservers = scope.registerTransientObservers; + var registerWrapper = scope.registerWrapper; + var setTreeScope = scope.setTreeScope; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var unwrapIfNeeded = scope.unwrapIfNeeded; + var wrap = scope.wrap; + var wrapIfNeeded = scope.wrapIfNeeded; + var wrappers = scope.wrappers; + function assertIsNodeWrapper(node) { + assert(node instanceof Node); + } + function createOneElementNodeList(node) { + var nodes = new NodeList(); + nodes[0] = node; + nodes.length = 1; + return nodes; + } + var surpressMutations = false; + function enqueueRemovalForInsertedNodes(node, parent, nodes) { + enqueueMutation(parent, "childList", { + removedNodes: nodes, + previousSibling: node.previousSibling, + nextSibling: node.nextSibling + }); + } + function enqueueRemovalForInsertedDocumentFragment(df, nodes) { + enqueueMutation(df, "childList", { + removedNodes: nodes + }); + } + function collectNodes(node, parentNode, previousNode, nextNode) { + if (node instanceof DocumentFragment) { + var nodes = collectNodesForDocumentFragment(node); + surpressMutations = true; + for (var i = nodes.length - 1; i >= 0; i--) { + node.removeChild(nodes[i]); + nodes[i].parentNode_ = parentNode; + } + surpressMutations = false; + for (var i = 0; i < nodes.length; i++) { + nodes[i].previousSibling_ = nodes[i - 1] || previousNode; + nodes[i].nextSibling_ = nodes[i + 1] || nextNode; + } + if (previousNode) previousNode.nextSibling_ = nodes[0]; + if (nextNode) nextNode.previousSibling_ = nodes[nodes.length - 1]; + return nodes; + } + var nodes = createOneElementNodeList(node); + var oldParent = node.parentNode; + if (oldParent) { + oldParent.removeChild(node); + } + node.parentNode_ = parentNode; + node.previousSibling_ = previousNode; + node.nextSibling_ = nextNode; + if (previousNode) previousNode.nextSibling_ = node; + if (nextNode) nextNode.previousSibling_ = node; + return nodes; + } + function collectNodesNative(node) { + if (node instanceof DocumentFragment) return collectNodesForDocumentFragment(node); + var nodes = createOneElementNodeList(node); + var oldParent = node.parentNode; + if (oldParent) enqueueRemovalForInsertedNodes(node, oldParent, nodes); + return nodes; + } + function collectNodesForDocumentFragment(node) { + var nodes = new NodeList(); + var i = 0; + for (var child = node.firstChild; child; child = child.nextSibling) { + nodes[i++] = child; + } + nodes.length = i; + enqueueRemovalForInsertedDocumentFragment(node, nodes); + return nodes; + } + function snapshotNodeList(nodeList) { + return nodeList; + } + function nodeWasAdded(node, treeScope) { + setTreeScope(node, treeScope); + node.nodeIsInserted_(); + } + function nodesWereAdded(nodes, parent) { + var treeScope = getTreeScope(parent); + for (var i = 0; i < nodes.length; i++) { + nodeWasAdded(nodes[i], treeScope); + } + } + function nodeWasRemoved(node) { + setTreeScope(node, new TreeScope(node, null)); + } + function nodesWereRemoved(nodes) { + for (var i = 0; i < nodes.length; i++) { + nodeWasRemoved(nodes[i]); + } + } + function ensureSameOwnerDocument(parent, child) { + var ownerDoc = parent.nodeType === Node.DOCUMENT_NODE ? parent : parent.ownerDocument; + if (ownerDoc !== child.ownerDocument) ownerDoc.adoptNode(child); + } + function adoptNodesIfNeeded(owner, nodes) { + if (!nodes.length) return; + var ownerDoc = owner.ownerDocument; + if (ownerDoc === nodes[0].ownerDocument) return; + for (var i = 0; i < nodes.length; i++) { + scope.adoptNodeNoRemove(nodes[i], ownerDoc); + } + } + function unwrapNodesForInsertion(owner, nodes) { + adoptNodesIfNeeded(owner, nodes); + var length = nodes.length; + if (length === 1) return unwrap(nodes[0]); + var df = unwrap(owner.ownerDocument.createDocumentFragment()); + for (var i = 0; i < length; i++) { + df.appendChild(unwrap(nodes[i])); + } + return df; + } + function clearChildNodes(wrapper) { + if (wrapper.firstChild_ !== undefined) { + var child = wrapper.firstChild_; + while (child) { + var tmp = child; + child = child.nextSibling_; + tmp.parentNode_ = tmp.previousSibling_ = tmp.nextSibling_ = undefined; + } + } + wrapper.firstChild_ = wrapper.lastChild_ = undefined; + } + function removeAllChildNodes(wrapper) { + if (wrapper.invalidateShadowRenderer()) { + var childWrapper = wrapper.firstChild; + while (childWrapper) { + assert(childWrapper.parentNode === wrapper); + var nextSibling = childWrapper.nextSibling; + var childNode = unwrap(childWrapper); + var parentNode = childNode.parentNode; + if (parentNode) originalRemoveChild.call(parentNode, childNode); + childWrapper.previousSibling_ = childWrapper.nextSibling_ = childWrapper.parentNode_ = null; + childWrapper = nextSibling; + } + wrapper.firstChild_ = wrapper.lastChild_ = null; + } else { + var node = unwrap(wrapper); + var child = node.firstChild; + var nextSibling; + while (child) { + nextSibling = child.nextSibling; + originalRemoveChild.call(node, child); + child = nextSibling; + } + } + } + function invalidateParent(node) { + var p = node.parentNode; + return p && p.invalidateShadowRenderer(); + } + function cleanupNodes(nodes) { + for (var i = 0, n; i < nodes.length; i++) { + n = nodes[i]; + n.parentNode.removeChild(n); + } + } + var originalImportNode = document.importNode; + var originalCloneNode = window.Node.prototype.cloneNode; + function cloneNode(node, deep, opt_doc) { + var clone; + if (opt_doc) clone = wrap(originalImportNode.call(opt_doc, unsafeUnwrap(node), false)); else clone = wrap(originalCloneNode.call(unsafeUnwrap(node), false)); + if (deep) { + for (var child = node.firstChild; child; child = child.nextSibling) { + clone.appendChild(cloneNode(child, true, opt_doc)); + } + if (node instanceof wrappers.HTMLTemplateElement) { + var cloneContent = clone.content; + for (var child = node.content.firstChild; child; child = child.nextSibling) { + cloneContent.appendChild(cloneNode(child, true, opt_doc)); + } + } + } + return clone; + } + function contains(self, child) { + if (!child || getTreeScope(self) !== getTreeScope(child)) return false; + for (var node = child; node; node = node.parentNode) { + if (node === self) return true; + } + return false; + } + var OriginalNode = window.Node; + function Node(original) { + assert(original instanceof OriginalNode); + EventTarget.call(this, original); + this.parentNode_ = undefined; + this.firstChild_ = undefined; + this.lastChild_ = undefined; + this.nextSibling_ = undefined; + this.previousSibling_ = undefined; + this.treeScope_ = undefined; + } + var OriginalDocumentFragment = window.DocumentFragment; + var originalAppendChild = OriginalNode.prototype.appendChild; + var originalCompareDocumentPosition = OriginalNode.prototype.compareDocumentPosition; + var originalIsEqualNode = OriginalNode.prototype.isEqualNode; + var originalInsertBefore = OriginalNode.prototype.insertBefore; + var originalRemoveChild = OriginalNode.prototype.removeChild; + var originalReplaceChild = OriginalNode.prototype.replaceChild; + var isIEOrEdge = /Trident|Edge/.test(navigator.userAgent); + var removeChildOriginalHelper = isIEOrEdge ? function(parent, child) { + try { + originalRemoveChild.call(parent, child); + } catch (ex) { + if (!(parent instanceof OriginalDocumentFragment)) throw ex; + } + } : function(parent, child) { + originalRemoveChild.call(parent, child); + }; + Node.prototype = Object.create(EventTarget.prototype); + mixin(Node.prototype, { + appendChild: function(childWrapper) { + return this.insertBefore(childWrapper, null); + }, + insertBefore: function(childWrapper, refWrapper) { + assertIsNodeWrapper(childWrapper); + var refNode; + if (refWrapper) { + if (isWrapper(refWrapper)) { + refNode = unwrap(refWrapper); + } else { + refNode = refWrapper; + refWrapper = wrap(refNode); + } + } else { + refWrapper = null; + refNode = null; + } + refWrapper && assert(refWrapper.parentNode === this); + var nodes; + var previousNode = refWrapper ? refWrapper.previousSibling : this.lastChild; + var useNative = !this.invalidateShadowRenderer() && !invalidateParent(childWrapper); + if (useNative) nodes = collectNodesNative(childWrapper); else nodes = collectNodes(childWrapper, this, previousNode, refWrapper); + if (useNative) { + ensureSameOwnerDocument(this, childWrapper); + clearChildNodes(this); + originalInsertBefore.call(unsafeUnwrap(this), unwrap(childWrapper), refNode); + } else { + if (!previousNode) this.firstChild_ = nodes[0]; + if (!refWrapper) { + this.lastChild_ = nodes[nodes.length - 1]; + if (this.firstChild_ === undefined) this.firstChild_ = this.firstChild; + } + var parentNode = refNode ? refNode.parentNode : unsafeUnwrap(this); + if (parentNode) { + originalInsertBefore.call(parentNode, unwrapNodesForInsertion(this, nodes), refNode); + } else { + adoptNodesIfNeeded(this, nodes); + } + } + enqueueMutation(this, "childList", { + addedNodes: nodes, + nextSibling: refWrapper, + previousSibling: previousNode + }); + nodesWereAdded(nodes, this); + return childWrapper; + }, + removeChild: function(childWrapper) { + assertIsNodeWrapper(childWrapper); + if (childWrapper.parentNode !== this) { + var found = false; + var childNodes = this.childNodes; + for (var ieChild = this.firstChild; ieChild; ieChild = ieChild.nextSibling) { + if (ieChild === childWrapper) { + found = true; + break; + } + } + if (!found) { + throw new Error("NotFoundError"); + } + } + var childNode = unwrap(childWrapper); + var childWrapperNextSibling = childWrapper.nextSibling; + var childWrapperPreviousSibling = childWrapper.previousSibling; + if (this.invalidateShadowRenderer()) { + var thisFirstChild = this.firstChild; + var thisLastChild = this.lastChild; + var parentNode = childNode.parentNode; + if (parentNode) removeChildOriginalHelper(parentNode, childNode); + if (thisFirstChild === childWrapper) this.firstChild_ = childWrapperNextSibling; + if (thisLastChild === childWrapper) this.lastChild_ = childWrapperPreviousSibling; + if (childWrapperPreviousSibling) childWrapperPreviousSibling.nextSibling_ = childWrapperNextSibling; + if (childWrapperNextSibling) { + childWrapperNextSibling.previousSibling_ = childWrapperPreviousSibling; + } + childWrapper.previousSibling_ = childWrapper.nextSibling_ = childWrapper.parentNode_ = undefined; + } else { + clearChildNodes(this); + removeChildOriginalHelper(unsafeUnwrap(this), childNode); + } + if (!surpressMutations) { + enqueueMutation(this, "childList", { + removedNodes: createOneElementNodeList(childWrapper), + nextSibling: childWrapperNextSibling, + previousSibling: childWrapperPreviousSibling + }); + } + registerTransientObservers(this, childWrapper); + return childWrapper; + }, + replaceChild: function(newChildWrapper, oldChildWrapper) { + assertIsNodeWrapper(newChildWrapper); + var oldChildNode; + if (isWrapper(oldChildWrapper)) { + oldChildNode = unwrap(oldChildWrapper); + } else { + oldChildNode = oldChildWrapper; + oldChildWrapper = wrap(oldChildNode); + } + if (oldChildWrapper.parentNode !== this) { + throw new Error("NotFoundError"); + } + var nextNode = oldChildWrapper.nextSibling; + var previousNode = oldChildWrapper.previousSibling; + var nodes; + var useNative = !this.invalidateShadowRenderer() && !invalidateParent(newChildWrapper); + if (useNative) { + nodes = collectNodesNative(newChildWrapper); + } else { + if (nextNode === newChildWrapper) nextNode = newChildWrapper.nextSibling; + nodes = collectNodes(newChildWrapper, this, previousNode, nextNode); + } + if (!useNative) { + if (this.firstChild === oldChildWrapper) this.firstChild_ = nodes[0]; + if (this.lastChild === oldChildWrapper) this.lastChild_ = nodes[nodes.length - 1]; + oldChildWrapper.previousSibling_ = oldChildWrapper.nextSibling_ = oldChildWrapper.parentNode_ = undefined; + if (oldChildNode.parentNode) { + originalReplaceChild.call(oldChildNode.parentNode, unwrapNodesForInsertion(this, nodes), oldChildNode); + } + } else { + ensureSameOwnerDocument(this, newChildWrapper); + clearChildNodes(this); + originalReplaceChild.call(unsafeUnwrap(this), unwrap(newChildWrapper), oldChildNode); + } + enqueueMutation(this, "childList", { + addedNodes: nodes, + removedNodes: createOneElementNodeList(oldChildWrapper), + nextSibling: nextNode, + previousSibling: previousNode + }); + nodeWasRemoved(oldChildWrapper); + nodesWereAdded(nodes, this); + return oldChildWrapper; + }, + nodeIsInserted_: function() { + for (var child = this.firstChild; child; child = child.nextSibling) { + child.nodeIsInserted_(); + } + }, + hasChildNodes: function() { + return this.firstChild !== null; + }, + get parentNode() { + return this.parentNode_ !== undefined ? this.parentNode_ : wrap(unsafeUnwrap(this).parentNode); + }, + get firstChild() { + return this.firstChild_ !== undefined ? this.firstChild_ : wrap(unsafeUnwrap(this).firstChild); + }, + get lastChild() { + return this.lastChild_ !== undefined ? this.lastChild_ : wrap(unsafeUnwrap(this).lastChild); + }, + get nextSibling() { + return this.nextSibling_ !== undefined ? this.nextSibling_ : wrap(unsafeUnwrap(this).nextSibling); + }, + get previousSibling() { + return this.previousSibling_ !== undefined ? this.previousSibling_ : wrap(unsafeUnwrap(this).previousSibling); + }, + get parentElement() { + var p = this.parentNode; + while (p && p.nodeType !== Node.ELEMENT_NODE) { + p = p.parentNode; + } + return p; + }, + get textContent() { + var s = ""; + for (var child = this.firstChild; child; child = child.nextSibling) { + if (child.nodeType != Node.COMMENT_NODE) { + s += child.textContent; + } + } + return s; + }, + set textContent(textContent) { + if (textContent == null) textContent = ""; + var removedNodes = snapshotNodeList(this.childNodes); + if (this.invalidateShadowRenderer()) { + removeAllChildNodes(this); + if (textContent !== "") { + var textNode = unsafeUnwrap(this).ownerDocument.createTextNode(textContent); + this.appendChild(textNode); + } + } else { + clearChildNodes(this); + unsafeUnwrap(this).textContent = textContent; + } + var addedNodes = snapshotNodeList(this.childNodes); + enqueueMutation(this, "childList", { + addedNodes: addedNodes, + removedNodes: removedNodes + }); + nodesWereRemoved(removedNodes); + nodesWereAdded(addedNodes, this); + }, + get childNodes() { + var wrapperList = new NodeList(); + var i = 0; + for (var child = this.firstChild; child; child = child.nextSibling) { + wrapperList[i++] = child; + } + wrapperList.length = i; + return wrapperList; + }, + cloneNode: function(deep) { + return cloneNode(this, deep); + }, + contains: function(child) { + return contains(this, wrapIfNeeded(child)); + }, + compareDocumentPosition: function(otherNode) { + return originalCompareDocumentPosition.call(unsafeUnwrap(this), unwrapIfNeeded(otherNode)); + }, + isEqualNode: function(otherNode) { + return originalIsEqualNode.call(unsafeUnwrap(this), unwrapIfNeeded(otherNode)); + }, + normalize: function() { + var nodes = snapshotNodeList(this.childNodes); + var remNodes = []; + var s = ""; + var modNode; + for (var i = 0, n; i < nodes.length; i++) { + n = nodes[i]; + if (n.nodeType === Node.TEXT_NODE) { + if (!modNode && !n.data.length) this.removeChild(n); else if (!modNode) modNode = n; else { + s += n.data; + remNodes.push(n); + } + } else { + if (modNode && remNodes.length) { + modNode.data += s; + cleanupNodes(remNodes); + } + remNodes = []; + s = ""; + modNode = null; + if (n.childNodes.length) n.normalize(); + } + } + if (modNode && remNodes.length) { + modNode.data += s; + cleanupNodes(remNodes); + } + } + }); + defineWrapGetter(Node, "ownerDocument"); + registerWrapper(OriginalNode, Node, document.createDocumentFragment()); + delete Node.prototype.querySelector; + delete Node.prototype.querySelectorAll; + Node.prototype = mixin(Object.create(EventTarget.prototype), Node.prototype); + scope.cloneNode = cloneNode; + scope.nodeWasAdded = nodeWasAdded; + scope.nodeWasRemoved = nodeWasRemoved; + scope.nodesWereAdded = nodesWereAdded; + scope.nodesWereRemoved = nodesWereRemoved; + scope.originalInsertBefore = originalInsertBefore; + scope.originalRemoveChild = originalRemoveChild; + scope.snapshotNodeList = snapshotNodeList; + scope.wrappers.Node = Node; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLCollection = scope.wrappers.HTMLCollection; + var NodeList = scope.wrappers.NodeList; + var getTreeScope = scope.getTreeScope; + var unsafeUnwrap = scope.unsafeUnwrap; + var wrap = scope.wrap; + var originalDocumentQuerySelector = document.querySelector; + var originalElementQuerySelector = document.documentElement.querySelector; + var originalDocumentQuerySelectorAll = document.querySelectorAll; + var originalElementQuerySelectorAll = document.documentElement.querySelectorAll; + var originalDocumentGetElementsByTagName = document.getElementsByTagName; + var originalElementGetElementsByTagName = document.documentElement.getElementsByTagName; + var originalDocumentGetElementsByTagNameNS = document.getElementsByTagNameNS; + var originalElementGetElementsByTagNameNS = document.documentElement.getElementsByTagNameNS; + var OriginalElement = window.Element; + var OriginalDocument = window.HTMLDocument || window.Document; + function filterNodeList(list, index, result, deep) { + var wrappedItem = null; + var root = null; + for (var i = 0, length = list.length; i < length; i++) { + wrappedItem = wrap(list[i]); + if (!deep && (root = getTreeScope(wrappedItem).root)) { + if (root instanceof scope.wrappers.ShadowRoot) { + continue; + } + } + result[index++] = wrappedItem; + } + return index; + } + function shimSelector(selector) { + return String(selector).replace(/\/deep\/|::shadow|>>>/g, " "); + } + function shimMatchesSelector(selector) { + return String(selector).replace(/:host\(([^\s]+)\)/g, "$1").replace(/([^\s]):host/g, "$1").replace(":host", "*").replace(/\^|\/shadow\/|\/shadow-deep\/|::shadow|\/deep\/|::content|>>>/g, " "); + } + function findOne(node, selector) { + var m, el = node.firstElementChild; + while (el) { + if (el.matches(selector)) return el; + m = findOne(el, selector); + if (m) return m; + el = el.nextElementSibling; + } + return null; + } + function matchesSelector(el, selector) { + return el.matches(selector); + } + var XHTML_NS = "http://www.w3.org/1999/xhtml"; + function matchesTagName(el, localName, localNameLowerCase) { + var ln = el.localName; + return ln === localName || ln === localNameLowerCase && el.namespaceURI === XHTML_NS; + } + function matchesEveryThing() { + return true; + } + function matchesLocalNameOnly(el, ns, localName) { + return el.localName === localName; + } + function matchesNameSpace(el, ns) { + return el.namespaceURI === ns; + } + function matchesLocalNameNS(el, ns, localName) { + return el.namespaceURI === ns && el.localName === localName; + } + function findElements(node, index, result, p, arg0, arg1) { + var el = node.firstElementChild; + while (el) { + if (p(el, arg0, arg1)) result[index++] = el; + index = findElements(el, index, result, p, arg0, arg1); + el = el.nextElementSibling; + } + return index; + } + function querySelectorAllFiltered(p, index, result, selector, deep) { + var target = unsafeUnwrap(this); + var list; + var root = getTreeScope(this).root; + if (root instanceof scope.wrappers.ShadowRoot) { + return findElements(this, index, result, p, selector, null); + } else if (target instanceof OriginalElement) { + list = originalElementQuerySelectorAll.call(target, selector); + } else if (target instanceof OriginalDocument) { + list = originalDocumentQuerySelectorAll.call(target, selector); + } else { + return findElements(this, index, result, p, selector, null); + } + return filterNodeList(list, index, result, deep); + } + var SelectorsInterface = { + querySelector: function(selector) { + var shimmed = shimSelector(selector); + var deep = shimmed !== selector; + selector = shimmed; + var target = unsafeUnwrap(this); + var wrappedItem; + var root = getTreeScope(this).root; + if (root instanceof scope.wrappers.ShadowRoot) { + return findOne(this, selector); + } else if (target instanceof OriginalElement) { + wrappedItem = wrap(originalElementQuerySelector.call(target, selector)); + } else if (target instanceof OriginalDocument) { + wrappedItem = wrap(originalDocumentQuerySelector.call(target, selector)); + } else { + return findOne(this, selector); + } + if (!wrappedItem) { + return wrappedItem; + } else if (!deep && (root = getTreeScope(wrappedItem).root)) { + if (root instanceof scope.wrappers.ShadowRoot) { + return findOne(this, selector); + } + } + return wrappedItem; + }, + querySelectorAll: function(selector) { + var shimmed = shimSelector(selector); + var deep = shimmed !== selector; + selector = shimmed; + var result = new NodeList(); + result.length = querySelectorAllFiltered.call(this, matchesSelector, 0, result, selector, deep); + return result; + } + }; + var MatchesInterface = { + matches: function(selector) { + selector = shimMatchesSelector(selector); + return scope.originalMatches.call(unsafeUnwrap(this), selector); + } + }; + function getElementsByTagNameFiltered(p, index, result, localName, lowercase) { + var target = unsafeUnwrap(this); + var list; + var root = getTreeScope(this).root; + if (root instanceof scope.wrappers.ShadowRoot) { + return findElements(this, index, result, p, localName, lowercase); + } else if (target instanceof OriginalElement) { + list = originalElementGetElementsByTagName.call(target, localName, lowercase); + } else if (target instanceof OriginalDocument) { + list = originalDocumentGetElementsByTagName.call(target, localName, lowercase); + } else { + return findElements(this, index, result, p, localName, lowercase); + } + return filterNodeList(list, index, result, false); + } + function getElementsByTagNameNSFiltered(p, index, result, ns, localName) { + var target = unsafeUnwrap(this); + var list; + var root = getTreeScope(this).root; + if (root instanceof scope.wrappers.ShadowRoot) { + return findElements(this, index, result, p, ns, localName); + } else if (target instanceof OriginalElement) { + list = originalElementGetElementsByTagNameNS.call(target, ns, localName); + } else if (target instanceof OriginalDocument) { + list = originalDocumentGetElementsByTagNameNS.call(target, ns, localName); + } else { + return findElements(this, index, result, p, ns, localName); + } + return filterNodeList(list, index, result, false); + } + var GetElementsByInterface = { + getElementsByTagName: function(localName) { + var result = new HTMLCollection(); + var match = localName === "*" ? matchesEveryThing : matchesTagName; + result.length = getElementsByTagNameFiltered.call(this, match, 0, result, localName, localName.toLowerCase()); + return result; + }, + getElementsByClassName: function(className) { + return this.querySelectorAll("." + className); + }, + getElementsByTagNameNS: function(ns, localName) { + var result = new HTMLCollection(); + var match = null; + if (ns === "*") { + match = localName === "*" ? matchesEveryThing : matchesLocalNameOnly; + } else { + match = localName === "*" ? matchesNameSpace : matchesLocalNameNS; + } + result.length = getElementsByTagNameNSFiltered.call(this, match, 0, result, ns || null, localName); + return result; + } + }; + scope.GetElementsByInterface = GetElementsByInterface; + scope.SelectorsInterface = SelectorsInterface; + scope.MatchesInterface = MatchesInterface; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var NodeList = scope.wrappers.NodeList; + function forwardElement(node) { + while (node && node.nodeType !== Node.ELEMENT_NODE) { + node = node.nextSibling; + } + return node; + } + function backwardsElement(node) { + while (node && node.nodeType !== Node.ELEMENT_NODE) { + node = node.previousSibling; + } + return node; + } + var ParentNodeInterface = { + get firstElementChild() { + return forwardElement(this.firstChild); + }, + get lastElementChild() { + return backwardsElement(this.lastChild); + }, + get childElementCount() { + var count = 0; + for (var child = this.firstElementChild; child; child = child.nextElementSibling) { + count++; + } + return count; + }, + get children() { + var wrapperList = new NodeList(); + var i = 0; + for (var child = this.firstElementChild; child; child = child.nextElementSibling) { + wrapperList[i++] = child; + } + wrapperList.length = i; + return wrapperList; + }, + remove: function() { + var p = this.parentNode; + if (p) p.removeChild(this); + } + }; + var ChildNodeInterface = { + get nextElementSibling() { + return forwardElement(this.nextSibling); + }, + get previousElementSibling() { + return backwardsElement(this.previousSibling); + } + }; + var NonElementParentNodeInterface = { + getElementById: function(id) { + if (/[ \t\n\r\f]/.test(id)) return null; + return this.querySelector('[id="' + id + '"]'); + } + }; + scope.ChildNodeInterface = ChildNodeInterface; + scope.NonElementParentNodeInterface = NonElementParentNodeInterface; + scope.ParentNodeInterface = ParentNodeInterface; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var ChildNodeInterface = scope.ChildNodeInterface; + var Node = scope.wrappers.Node; + var enqueueMutation = scope.enqueueMutation; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var OriginalCharacterData = window.CharacterData; + function CharacterData(node) { + Node.call(this, node); + } + CharacterData.prototype = Object.create(Node.prototype); + mixin(CharacterData.prototype, { + get nodeValue() { + return this.data; + }, + set nodeValue(data) { + this.data = data; + }, + get textContent() { + return this.data; + }, + set textContent(value) { + this.data = value; + }, + get data() { + return unsafeUnwrap(this).data; + }, + set data(value) { + var oldValue = unsafeUnwrap(this).data; + enqueueMutation(this, "characterData", { + oldValue: oldValue + }); + unsafeUnwrap(this).data = value; + } + }); + mixin(CharacterData.prototype, ChildNodeInterface); + registerWrapper(OriginalCharacterData, CharacterData, document.createTextNode("")); + scope.wrappers.CharacterData = CharacterData; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var CharacterData = scope.wrappers.CharacterData; + var enqueueMutation = scope.enqueueMutation; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + function toUInt32(x) { + return x >>> 0; + } + var OriginalText = window.Text; + function Text(node) { + CharacterData.call(this, node); + } + Text.prototype = Object.create(CharacterData.prototype); + mixin(Text.prototype, { + splitText: function(offset) { + offset = toUInt32(offset); + var s = this.data; + if (offset > s.length) throw new Error("IndexSizeError"); + var head = s.slice(0, offset); + var tail = s.slice(offset); + this.data = head; + var newTextNode = this.ownerDocument.createTextNode(tail); + if (this.parentNode) this.parentNode.insertBefore(newTextNode, this.nextSibling); + return newTextNode; + } + }); + registerWrapper(OriginalText, Text, document.createTextNode("")); + scope.wrappers.Text = Text; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + if (!window.DOMTokenList) { + console.warn("Missing DOMTokenList prototype, please include a " + "compatible classList polyfill such as http://goo.gl/uTcepH."); + return; + } + var unsafeUnwrap = scope.unsafeUnwrap; + var enqueueMutation = scope.enqueueMutation; + function getClass(el) { + return unsafeUnwrap(el).getAttribute("class"); + } + function enqueueClassAttributeChange(el, oldValue) { + enqueueMutation(el, "attributes", { + name: "class", + namespace: null, + oldValue: oldValue + }); + } + function invalidateClass(el) { + scope.invalidateRendererBasedOnAttribute(el, "class"); + } + function changeClass(tokenList, method, args) { + var ownerElement = tokenList.ownerElement_; + if (ownerElement == null) { + return method.apply(tokenList, args); + } + var oldValue = getClass(ownerElement); + var retv = method.apply(tokenList, args); + if (getClass(ownerElement) !== oldValue) { + enqueueClassAttributeChange(ownerElement, oldValue); + invalidateClass(ownerElement); + } + return retv; + } + var oldAdd = DOMTokenList.prototype.add; + DOMTokenList.prototype.add = function() { + changeClass(this, oldAdd, arguments); + }; + var oldRemove = DOMTokenList.prototype.remove; + DOMTokenList.prototype.remove = function() { + changeClass(this, oldRemove, arguments); + }; + var oldToggle = DOMTokenList.prototype.toggle; + DOMTokenList.prototype.toggle = function() { + return changeClass(this, oldToggle, arguments); + }; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var ChildNodeInterface = scope.ChildNodeInterface; + var GetElementsByInterface = scope.GetElementsByInterface; + var Node = scope.wrappers.Node; + var ParentNodeInterface = scope.ParentNodeInterface; + var SelectorsInterface = scope.SelectorsInterface; + var MatchesInterface = scope.MatchesInterface; + var addWrapNodeListMethod = scope.addWrapNodeListMethod; + var enqueueMutation = scope.enqueueMutation; + var mixin = scope.mixin; + var oneOf = scope.oneOf; + var registerWrapper = scope.registerWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var wrappers = scope.wrappers; + var OriginalElement = window.Element; + var matchesNames = [ "matches", "mozMatchesSelector", "msMatchesSelector", "webkitMatchesSelector" ].filter(function(name) { + return OriginalElement.prototype[name]; + }); + var matchesName = matchesNames[0]; + var originalMatches = OriginalElement.prototype[matchesName]; + function invalidateRendererBasedOnAttribute(element, name) { + var p = element.parentNode; + if (!p || !p.shadowRoot) return; + var renderer = scope.getRendererForHost(p); + if (renderer.dependsOnAttribute(name)) renderer.invalidate(); + } + function enqueAttributeChange(element, name, oldValue) { + enqueueMutation(element, "attributes", { + name: name, + namespace: null, + oldValue: oldValue + }); + } + var classListTable = new WeakMap(); + function Element(node) { + Node.call(this, node); + } + Element.prototype = Object.create(Node.prototype); + mixin(Element.prototype, { + createShadowRoot: function() { + var newShadowRoot = new wrappers.ShadowRoot(this); + unsafeUnwrap(this).polymerShadowRoot_ = newShadowRoot; + var renderer = scope.getRendererForHost(this); + renderer.invalidate(); + return newShadowRoot; + }, + get shadowRoot() { + return unsafeUnwrap(this).polymerShadowRoot_ || null; + }, + setAttribute: function(name, value) { + var oldValue = unsafeUnwrap(this).getAttribute(name); + unsafeUnwrap(this).setAttribute(name, value); + enqueAttributeChange(this, name, oldValue); + invalidateRendererBasedOnAttribute(this, name); + }, + removeAttribute: function(name) { + var oldValue = unsafeUnwrap(this).getAttribute(name); + unsafeUnwrap(this).removeAttribute(name); + enqueAttributeChange(this, name, oldValue); + invalidateRendererBasedOnAttribute(this, name); + }, + get classList() { + var list = classListTable.get(this); + if (!list) { + list = unsafeUnwrap(this).classList; + if (!list) return; + list.ownerElement_ = this; + classListTable.set(this, list); + } + return list; + }, + get className() { + return unsafeUnwrap(this).className; + }, + set className(v) { + this.setAttribute("class", v); + }, + get id() { + return unsafeUnwrap(this).id; + }, + set id(v) { + this.setAttribute("id", v); + } + }); + matchesNames.forEach(function(name) { + if (name !== "matches") { + Element.prototype[name] = function(selector) { + return this.matches(selector); + }; + } + }); + if (OriginalElement.prototype.webkitCreateShadowRoot) { + Element.prototype.webkitCreateShadowRoot = Element.prototype.createShadowRoot; + } + mixin(Element.prototype, ChildNodeInterface); + mixin(Element.prototype, GetElementsByInterface); + mixin(Element.prototype, ParentNodeInterface); + mixin(Element.prototype, SelectorsInterface); + mixin(Element.prototype, MatchesInterface); + registerWrapper(OriginalElement, Element, document.createElementNS(null, "x")); + scope.invalidateRendererBasedOnAttribute = invalidateRendererBasedOnAttribute; + scope.matchesNames = matchesNames; + scope.originalMatches = originalMatches; + scope.wrappers.Element = Element; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var Element = scope.wrappers.Element; + var defineGetter = scope.defineGetter; + var enqueueMutation = scope.enqueueMutation; + var mixin = scope.mixin; + var nodesWereAdded = scope.nodesWereAdded; + var nodesWereRemoved = scope.nodesWereRemoved; + var registerWrapper = scope.registerWrapper; + var snapshotNodeList = scope.snapshotNodeList; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var wrappers = scope.wrappers; + var escapeAttrRegExp = /[&\u00A0"]/g; + var escapeDataRegExp = /[&\u00A0<>]/g; + function escapeReplace(c) { + switch (c) { + case "&": + return "&"; + + case "<": + return "<"; + + case ">": + return ">"; + + case '"': + return """; + + case " ": + return " "; + } + } + function escapeAttr(s) { + return s.replace(escapeAttrRegExp, escapeReplace); + } + function escapeData(s) { + return s.replace(escapeDataRegExp, escapeReplace); + } + function makeSet(arr) { + var set = {}; + for (var i = 0; i < arr.length; i++) { + set[arr[i]] = true; + } + return set; + } + var voidElements = makeSet([ "area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr" ]); + var plaintextParents = makeSet([ "style", "script", "xmp", "iframe", "noembed", "noframes", "plaintext", "noscript" ]); + var XHTML_NS = "http://www.w3.org/1999/xhtml"; + function needsSelfClosingSlash(node) { + if (node.namespaceURI !== XHTML_NS) return true; + var doctype = node.ownerDocument.doctype; + return doctype && doctype.publicId && doctype.systemId; + } + function getOuterHTML(node, parentNode) { + switch (node.nodeType) { + case Node.ELEMENT_NODE: + var tagName = node.tagName.toLowerCase(); + var s = "<" + tagName; + var attrs = node.attributes; + for (var i = 0, attr; attr = attrs[i]; i++) { + s += " " + attr.name + '="' + escapeAttr(attr.value) + '"'; + } + if (voidElements[tagName]) { + if (needsSelfClosingSlash(node)) s += "/"; + return s + ">"; + } + return s + ">" + getInnerHTML(node) + ""; + + case Node.TEXT_NODE: + var data = node.data; + if (parentNode && plaintextParents[parentNode.localName]) return data; + return escapeData(data); + + case Node.COMMENT_NODE: + return ""; + + default: + console.error(node); + throw new Error("not implemented"); + } + } + function getInnerHTML(node) { + if (node instanceof wrappers.HTMLTemplateElement) node = node.content; + var s = ""; + for (var child = node.firstChild; child; child = child.nextSibling) { + s += getOuterHTML(child, node); + } + return s; + } + function setInnerHTML(node, value, opt_tagName) { + var tagName = opt_tagName || "div"; + node.textContent = ""; + var tempElement = unwrap(node.ownerDocument.createElement(tagName)); + tempElement.innerHTML = value; + var firstChild; + while (firstChild = tempElement.firstChild) { + node.appendChild(wrap(firstChild)); + } + } + var oldIe = /MSIE/.test(navigator.userAgent); + var OriginalHTMLElement = window.HTMLElement; + var OriginalHTMLTemplateElement = window.HTMLTemplateElement; + function HTMLElement(node) { + Element.call(this, node); + } + HTMLElement.prototype = Object.create(Element.prototype); + mixin(HTMLElement.prototype, { + get innerHTML() { + return getInnerHTML(this); + }, + set innerHTML(value) { + if (oldIe && plaintextParents[this.localName]) { + this.textContent = value; + return; + } + var removedNodes = snapshotNodeList(this.childNodes); + if (this.invalidateShadowRenderer()) { + if (this instanceof wrappers.HTMLTemplateElement) setInnerHTML(this.content, value); else setInnerHTML(this, value, this.tagName); + } else if (!OriginalHTMLTemplateElement && this instanceof wrappers.HTMLTemplateElement) { + setInnerHTML(this.content, value); + } else { + unsafeUnwrap(this).innerHTML = value; + } + var addedNodes = snapshotNodeList(this.childNodes); + enqueueMutation(this, "childList", { + addedNodes: addedNodes, + removedNodes: removedNodes + }); + nodesWereRemoved(removedNodes); + nodesWereAdded(addedNodes, this); + }, + get outerHTML() { + return getOuterHTML(this, this.parentNode); + }, + set outerHTML(value) { + var p = this.parentNode; + if (p) { + p.invalidateShadowRenderer(); + var df = frag(p, value); + p.replaceChild(df, this); + } + }, + insertAdjacentHTML: function(position, text) { + var contextElement, refNode; + switch (String(position).toLowerCase()) { + case "beforebegin": + contextElement = this.parentNode; + refNode = this; + break; + + case "afterend": + contextElement = this.parentNode; + refNode = this.nextSibling; + break; + + case "afterbegin": + contextElement = this; + refNode = this.firstChild; + break; + + case "beforeend": + contextElement = this; + refNode = null; + break; + + default: + return; + } + var df = frag(contextElement, text); + contextElement.insertBefore(df, refNode); + }, + get hidden() { + return this.hasAttribute("hidden"); + }, + set hidden(v) { + if (v) { + this.setAttribute("hidden", ""); + } else { + this.removeAttribute("hidden"); + } + } + }); + function frag(contextElement, html) { + var p = unwrap(contextElement.cloneNode(false)); + p.innerHTML = html; + var df = unwrap(document.createDocumentFragment()); + var c; + while (c = p.firstChild) { + df.appendChild(c); + } + return wrap(df); + } + function getter(name) { + return function() { + scope.renderAllPending(); + return unsafeUnwrap(this)[name]; + }; + } + function getterRequiresRendering(name) { + defineGetter(HTMLElement, name, getter(name)); + } + [ "clientHeight", "clientLeft", "clientTop", "clientWidth", "offsetHeight", "offsetLeft", "offsetTop", "offsetWidth", "scrollHeight", "scrollWidth" ].forEach(getterRequiresRendering); + function getterAndSetterRequiresRendering(name) { + Object.defineProperty(HTMLElement.prototype, name, { + get: getter(name), + set: function(v) { + scope.renderAllPending(); + unsafeUnwrap(this)[name] = v; + }, + configurable: true, + enumerable: true + }); + } + [ "scrollLeft", "scrollTop" ].forEach(getterAndSetterRequiresRendering); + function methodRequiresRendering(name) { + Object.defineProperty(HTMLElement.prototype, name, { + value: function() { + scope.renderAllPending(); + return unsafeUnwrap(this)[name].apply(unsafeUnwrap(this), arguments); + }, + configurable: true, + enumerable: true + }); + } + [ "focus", "getBoundingClientRect", "getClientRects", "scrollIntoView" ].forEach(methodRequiresRendering); + registerWrapper(OriginalHTMLElement, HTMLElement, document.createElement("b")); + scope.wrappers.HTMLElement = HTMLElement; + scope.getInnerHTML = getInnerHTML; + scope.setInnerHTML = setInnerHTML; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var wrap = scope.wrap; + var OriginalHTMLCanvasElement = window.HTMLCanvasElement; + function HTMLCanvasElement(node) { + HTMLElement.call(this, node); + } + HTMLCanvasElement.prototype = Object.create(HTMLElement.prototype); + mixin(HTMLCanvasElement.prototype, { + getContext: function() { + var context = unsafeUnwrap(this).getContext.apply(unsafeUnwrap(this), arguments); + return context && wrap(context); + } + }); + registerWrapper(OriginalHTMLCanvasElement, HTMLCanvasElement, document.createElement("canvas")); + scope.wrappers.HTMLCanvasElement = HTMLCanvasElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var OriginalHTMLContentElement = window.HTMLContentElement; + function HTMLContentElement(node) { + HTMLElement.call(this, node); + } + HTMLContentElement.prototype = Object.create(HTMLElement.prototype); + mixin(HTMLContentElement.prototype, { + constructor: HTMLContentElement, + get select() { + return this.getAttribute("select"); + }, + set select(value) { + this.setAttribute("select", value); + }, + setAttribute: function(n, v) { + HTMLElement.prototype.setAttribute.call(this, n, v); + if (String(n).toLowerCase() === "select") this.invalidateShadowRenderer(true); + } + }); + if (OriginalHTMLContentElement) registerWrapper(OriginalHTMLContentElement, HTMLContentElement); + scope.wrappers.HTMLContentElement = HTMLContentElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var wrapHTMLCollection = scope.wrapHTMLCollection; + var unwrap = scope.unwrap; + var OriginalHTMLFormElement = window.HTMLFormElement; + function HTMLFormElement(node) { + HTMLElement.call(this, node); + } + HTMLFormElement.prototype = Object.create(HTMLElement.prototype); + mixin(HTMLFormElement.prototype, { + get elements() { + return wrapHTMLCollection(unwrap(this).elements); + } + }); + registerWrapper(OriginalHTMLFormElement, HTMLFormElement, document.createElement("form")); + scope.wrappers.HTMLFormElement = HTMLFormElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var registerWrapper = scope.registerWrapper; + var unwrap = scope.unwrap; + var rewrap = scope.rewrap; + var OriginalHTMLImageElement = window.HTMLImageElement; + function HTMLImageElement(node) { + HTMLElement.call(this, node); + } + HTMLImageElement.prototype = Object.create(HTMLElement.prototype); + registerWrapper(OriginalHTMLImageElement, HTMLImageElement, document.createElement("img")); + function Image(width, height) { + if (!(this instanceof Image)) { + throw new TypeError("DOM object constructor cannot be called as a function."); + } + var node = unwrap(document.createElement("img")); + HTMLElement.call(this, node); + rewrap(node, this); + if (width !== undefined) node.width = width; + if (height !== undefined) node.height = height; + } + Image.prototype = HTMLImageElement.prototype; + scope.wrappers.HTMLImageElement = HTMLImageElement; + scope.wrappers.Image = Image; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var NodeList = scope.wrappers.NodeList; + var registerWrapper = scope.registerWrapper; + var OriginalHTMLShadowElement = window.HTMLShadowElement; + function HTMLShadowElement(node) { + HTMLElement.call(this, node); + } + HTMLShadowElement.prototype = Object.create(HTMLElement.prototype); + HTMLShadowElement.prototype.constructor = HTMLShadowElement; + if (OriginalHTMLShadowElement) registerWrapper(OriginalHTMLShadowElement, HTMLShadowElement); + scope.wrappers.HTMLShadowElement = HTMLShadowElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var contentTable = new WeakMap(); + var templateContentsOwnerTable = new WeakMap(); + function getTemplateContentsOwner(doc) { + if (!doc.defaultView) return doc; + var d = templateContentsOwnerTable.get(doc); + if (!d) { + d = doc.implementation.createHTMLDocument(""); + while (d.lastChild) { + d.removeChild(d.lastChild); + } + templateContentsOwnerTable.set(doc, d); + } + return d; + } + function extractContent(templateElement) { + var doc = getTemplateContentsOwner(templateElement.ownerDocument); + var df = unwrap(doc.createDocumentFragment()); + var child; + while (child = templateElement.firstChild) { + df.appendChild(child); + } + return df; + } + var OriginalHTMLTemplateElement = window.HTMLTemplateElement; + function HTMLTemplateElement(node) { + HTMLElement.call(this, node); + if (!OriginalHTMLTemplateElement) { + var content = extractContent(node); + contentTable.set(this, wrap(content)); + } + } + HTMLTemplateElement.prototype = Object.create(HTMLElement.prototype); + mixin(HTMLTemplateElement.prototype, { + constructor: HTMLTemplateElement, + get content() { + if (OriginalHTMLTemplateElement) return wrap(unsafeUnwrap(this).content); + return contentTable.get(this); + } + }); + if (OriginalHTMLTemplateElement) registerWrapper(OriginalHTMLTemplateElement, HTMLTemplateElement); + scope.wrappers.HTMLTemplateElement = HTMLTemplateElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var registerWrapper = scope.registerWrapper; + var OriginalHTMLMediaElement = window.HTMLMediaElement; + if (!OriginalHTMLMediaElement) return; + function HTMLMediaElement(node) { + HTMLElement.call(this, node); + } + HTMLMediaElement.prototype = Object.create(HTMLElement.prototype); + registerWrapper(OriginalHTMLMediaElement, HTMLMediaElement, document.createElement("audio")); + scope.wrappers.HTMLMediaElement = HTMLMediaElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLMediaElement = scope.wrappers.HTMLMediaElement; + var registerWrapper = scope.registerWrapper; + var unwrap = scope.unwrap; + var rewrap = scope.rewrap; + var OriginalHTMLAudioElement = window.HTMLAudioElement; + if (!OriginalHTMLAudioElement) return; + function HTMLAudioElement(node) { + HTMLMediaElement.call(this, node); + } + HTMLAudioElement.prototype = Object.create(HTMLMediaElement.prototype); + registerWrapper(OriginalHTMLAudioElement, HTMLAudioElement, document.createElement("audio")); + function Audio(src) { + if (!(this instanceof Audio)) { + throw new TypeError("DOM object constructor cannot be called as a function."); + } + var node = unwrap(document.createElement("audio")); + HTMLMediaElement.call(this, node); + rewrap(node, this); + node.setAttribute("preload", "auto"); + if (src !== undefined) node.setAttribute("src", src); + } + Audio.prototype = HTMLAudioElement.prototype; + scope.wrappers.HTMLAudioElement = HTMLAudioElement; + scope.wrappers.Audio = Audio; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var rewrap = scope.rewrap; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var OriginalHTMLOptionElement = window.HTMLOptionElement; + function trimText(s) { + return s.replace(/\s+/g, " ").trim(); + } + function HTMLOptionElement(node) { + HTMLElement.call(this, node); + } + HTMLOptionElement.prototype = Object.create(HTMLElement.prototype); + mixin(HTMLOptionElement.prototype, { + get text() { + return trimText(this.textContent); + }, + set text(value) { + this.textContent = trimText(String(value)); + }, + get form() { + return wrap(unwrap(this).form); + } + }); + registerWrapper(OriginalHTMLOptionElement, HTMLOptionElement, document.createElement("option")); + function Option(text, value, defaultSelected, selected) { + if (!(this instanceof Option)) { + throw new TypeError("DOM object constructor cannot be called as a function."); + } + var node = unwrap(document.createElement("option")); + HTMLElement.call(this, node); + rewrap(node, this); + if (text !== undefined) node.text = text; + if (value !== undefined) node.setAttribute("value", value); + if (defaultSelected === true) node.setAttribute("selected", ""); + node.selected = selected === true; + } + Option.prototype = HTMLOptionElement.prototype; + scope.wrappers.HTMLOptionElement = HTMLOptionElement; + scope.wrappers.Option = Option; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var OriginalHTMLSelectElement = window.HTMLSelectElement; + function HTMLSelectElement(node) { + HTMLElement.call(this, node); + } + HTMLSelectElement.prototype = Object.create(HTMLElement.prototype); + mixin(HTMLSelectElement.prototype, { + add: function(element, before) { + if (typeof before === "object") before = unwrap(before); + unwrap(this).add(unwrap(element), before); + }, + remove: function(indexOrNode) { + if (indexOrNode === undefined) { + HTMLElement.prototype.remove.call(this); + return; + } + if (typeof indexOrNode === "object") indexOrNode = unwrap(indexOrNode); + unwrap(this).remove(indexOrNode); + }, + get form() { + return wrap(unwrap(this).form); + } + }); + registerWrapper(OriginalHTMLSelectElement, HTMLSelectElement, document.createElement("select")); + scope.wrappers.HTMLSelectElement = HTMLSelectElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var wrapHTMLCollection = scope.wrapHTMLCollection; + var OriginalHTMLTableElement = window.HTMLTableElement; + function HTMLTableElement(node) { + HTMLElement.call(this, node); + } + HTMLTableElement.prototype = Object.create(HTMLElement.prototype); + mixin(HTMLTableElement.prototype, { + get caption() { + return wrap(unwrap(this).caption); + }, + createCaption: function() { + return wrap(unwrap(this).createCaption()); + }, + get tHead() { + return wrap(unwrap(this).tHead); + }, + createTHead: function() { + return wrap(unwrap(this).createTHead()); + }, + createTFoot: function() { + return wrap(unwrap(this).createTFoot()); + }, + get tFoot() { + return wrap(unwrap(this).tFoot); + }, + get tBodies() { + return wrapHTMLCollection(unwrap(this).tBodies); + }, + createTBody: function() { + return wrap(unwrap(this).createTBody()); + }, + get rows() { + return wrapHTMLCollection(unwrap(this).rows); + }, + insertRow: function(index) { + return wrap(unwrap(this).insertRow(index)); + } + }); + registerWrapper(OriginalHTMLTableElement, HTMLTableElement, document.createElement("table")); + scope.wrappers.HTMLTableElement = HTMLTableElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var wrapHTMLCollection = scope.wrapHTMLCollection; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var OriginalHTMLTableSectionElement = window.HTMLTableSectionElement; + function HTMLTableSectionElement(node) { + HTMLElement.call(this, node); + } + HTMLTableSectionElement.prototype = Object.create(HTMLElement.prototype); + mixin(HTMLTableSectionElement.prototype, { + constructor: HTMLTableSectionElement, + get rows() { + return wrapHTMLCollection(unwrap(this).rows); + }, + insertRow: function(index) { + return wrap(unwrap(this).insertRow(index)); + } + }); + registerWrapper(OriginalHTMLTableSectionElement, HTMLTableSectionElement, document.createElement("thead")); + scope.wrappers.HTMLTableSectionElement = HTMLTableSectionElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var wrapHTMLCollection = scope.wrapHTMLCollection; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var OriginalHTMLTableRowElement = window.HTMLTableRowElement; + function HTMLTableRowElement(node) { + HTMLElement.call(this, node); + } + HTMLTableRowElement.prototype = Object.create(HTMLElement.prototype); + mixin(HTMLTableRowElement.prototype, { + get cells() { + return wrapHTMLCollection(unwrap(this).cells); + }, + insertCell: function(index) { + return wrap(unwrap(this).insertCell(index)); + } + }); + registerWrapper(OriginalHTMLTableRowElement, HTMLTableRowElement, document.createElement("tr")); + scope.wrappers.HTMLTableRowElement = HTMLTableRowElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLContentElement = scope.wrappers.HTMLContentElement; + var HTMLElement = scope.wrappers.HTMLElement; + var HTMLShadowElement = scope.wrappers.HTMLShadowElement; + var HTMLTemplateElement = scope.wrappers.HTMLTemplateElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var OriginalHTMLUnknownElement = window.HTMLUnknownElement; + function HTMLUnknownElement(node) { + switch (node.localName) { + case "content": + return new HTMLContentElement(node); + + case "shadow": + return new HTMLShadowElement(node); + + case "template": + return new HTMLTemplateElement(node); + } + HTMLElement.call(this, node); + } + HTMLUnknownElement.prototype = Object.create(HTMLElement.prototype); + registerWrapper(OriginalHTMLUnknownElement, HTMLUnknownElement); + scope.wrappers.HTMLUnknownElement = HTMLUnknownElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var Element = scope.wrappers.Element; + var HTMLElement = scope.wrappers.HTMLElement; + var registerWrapper = scope.registerWrapper; + var defineWrapGetter = scope.defineWrapGetter; + var unsafeUnwrap = scope.unsafeUnwrap; + var wrap = scope.wrap; + var mixin = scope.mixin; + var SVG_NS = "http://www.w3.org/2000/svg"; + var OriginalSVGElement = window.SVGElement; + var svgTitleElement = document.createElementNS(SVG_NS, "title"); + if (!("classList" in svgTitleElement)) { + var descr = Object.getOwnPropertyDescriptor(Element.prototype, "classList"); + Object.defineProperty(HTMLElement.prototype, "classList", descr); + delete Element.prototype.classList; + } + function SVGElement(node) { + Element.call(this, node); + } + SVGElement.prototype = Object.create(Element.prototype); + mixin(SVGElement.prototype, { + get ownerSVGElement() { + return wrap(unsafeUnwrap(this).ownerSVGElement); + } + }); + registerWrapper(OriginalSVGElement, SVGElement, document.createElementNS(SVG_NS, "title")); + scope.wrappers.SVGElement = SVGElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var OriginalSVGUseElement = window.SVGUseElement; + var SVG_NS = "http://www.w3.org/2000/svg"; + var gWrapper = wrap(document.createElementNS(SVG_NS, "g")); + var useElement = document.createElementNS(SVG_NS, "use"); + var SVGGElement = gWrapper.constructor; + var parentInterfacePrototype = Object.getPrototypeOf(SVGGElement.prototype); + var parentInterface = parentInterfacePrototype.constructor; + function SVGUseElement(impl) { + parentInterface.call(this, impl); + } + SVGUseElement.prototype = Object.create(parentInterfacePrototype); + if ("instanceRoot" in useElement) { + mixin(SVGUseElement.prototype, { + get instanceRoot() { + return wrap(unwrap(this).instanceRoot); + }, + get animatedInstanceRoot() { + return wrap(unwrap(this).animatedInstanceRoot); + } + }); + } + registerWrapper(OriginalSVGUseElement, SVGUseElement, useElement); + scope.wrappers.SVGUseElement = SVGUseElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var EventTarget = scope.wrappers.EventTarget; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var wrap = scope.wrap; + var OriginalSVGElementInstance = window.SVGElementInstance; + if (!OriginalSVGElementInstance) return; + function SVGElementInstance(impl) { + EventTarget.call(this, impl); + } + SVGElementInstance.prototype = Object.create(EventTarget.prototype); + mixin(SVGElementInstance.prototype, { + get correspondingElement() { + return wrap(unsafeUnwrap(this).correspondingElement); + }, + get correspondingUseElement() { + return wrap(unsafeUnwrap(this).correspondingUseElement); + }, + get parentNode() { + return wrap(unsafeUnwrap(this).parentNode); + }, + get childNodes() { + throw new Error("Not implemented"); + }, + get firstChild() { + return wrap(unsafeUnwrap(this).firstChild); + }, + get lastChild() { + return wrap(unsafeUnwrap(this).lastChild); + }, + get previousSibling() { + return wrap(unsafeUnwrap(this).previousSibling); + }, + get nextSibling() { + return wrap(unsafeUnwrap(this).nextSibling); + } + }); + registerWrapper(OriginalSVGElementInstance, SVGElementInstance); + scope.wrappers.SVGElementInstance = SVGElementInstance; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var setWrapper = scope.setWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var unwrapIfNeeded = scope.unwrapIfNeeded; + var wrap = scope.wrap; + var OriginalCanvasRenderingContext2D = window.CanvasRenderingContext2D; + function CanvasRenderingContext2D(impl) { + setWrapper(impl, this); + } + mixin(CanvasRenderingContext2D.prototype, { + get canvas() { + return wrap(unsafeUnwrap(this).canvas); + }, + drawImage: function() { + arguments[0] = unwrapIfNeeded(arguments[0]); + unsafeUnwrap(this).drawImage.apply(unsafeUnwrap(this), arguments); + }, + createPattern: function() { + arguments[0] = unwrap(arguments[0]); + return unsafeUnwrap(this).createPattern.apply(unsafeUnwrap(this), arguments); + } + }); + registerWrapper(OriginalCanvasRenderingContext2D, CanvasRenderingContext2D, document.createElement("canvas").getContext("2d")); + scope.wrappers.CanvasRenderingContext2D = CanvasRenderingContext2D; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var addForwardingProperties = scope.addForwardingProperties; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var setWrapper = scope.setWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrapIfNeeded = scope.unwrapIfNeeded; + var wrap = scope.wrap; + var OriginalWebGLRenderingContext = window.WebGLRenderingContext; + if (!OriginalWebGLRenderingContext) return; + function WebGLRenderingContext(impl) { + setWrapper(impl, this); + } + mixin(WebGLRenderingContext.prototype, { + get canvas() { + return wrap(unsafeUnwrap(this).canvas); + }, + texImage2D: function() { + arguments[5] = unwrapIfNeeded(arguments[5]); + unsafeUnwrap(this).texImage2D.apply(unsafeUnwrap(this), arguments); + }, + texSubImage2D: function() { + arguments[6] = unwrapIfNeeded(arguments[6]); + unsafeUnwrap(this).texSubImage2D.apply(unsafeUnwrap(this), arguments); + } + }); + var OriginalWebGLRenderingContextBase = Object.getPrototypeOf(OriginalWebGLRenderingContext.prototype); + if (OriginalWebGLRenderingContextBase !== Object.prototype) { + addForwardingProperties(OriginalWebGLRenderingContextBase, WebGLRenderingContext.prototype); + } + var instanceProperties = /WebKit/.test(navigator.userAgent) ? { + drawingBufferHeight: null, + drawingBufferWidth: null + } : {}; + registerWrapper(OriginalWebGLRenderingContext, WebGLRenderingContext, instanceProperties); + scope.wrappers.WebGLRenderingContext = WebGLRenderingContext; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var Node = scope.wrappers.Node; + var GetElementsByInterface = scope.GetElementsByInterface; + var NonElementParentNodeInterface = scope.NonElementParentNodeInterface; + var ParentNodeInterface = scope.ParentNodeInterface; + var SelectorsInterface = scope.SelectorsInterface; + var mixin = scope.mixin; + var registerObject = scope.registerObject; + var registerWrapper = scope.registerWrapper; + var OriginalDocumentFragment = window.DocumentFragment; + function DocumentFragment(node) { + Node.call(this, node); + } + DocumentFragment.prototype = Object.create(Node.prototype); + mixin(DocumentFragment.prototype, ParentNodeInterface); + mixin(DocumentFragment.prototype, SelectorsInterface); + mixin(DocumentFragment.prototype, GetElementsByInterface); + mixin(DocumentFragment.prototype, NonElementParentNodeInterface); + registerWrapper(OriginalDocumentFragment, DocumentFragment, document.createDocumentFragment()); + scope.wrappers.DocumentFragment = DocumentFragment; + var Comment = registerObject(document.createComment("")); + scope.wrappers.Comment = Comment; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var DocumentFragment = scope.wrappers.DocumentFragment; + var TreeScope = scope.TreeScope; + var elementFromPoint = scope.elementFromPoint; + var getInnerHTML = scope.getInnerHTML; + var getTreeScope = scope.getTreeScope; + var mixin = scope.mixin; + var rewrap = scope.rewrap; + var setInnerHTML = scope.setInnerHTML; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var shadowHostTable = new WeakMap(); + var nextOlderShadowTreeTable = new WeakMap(); + function ShadowRoot(hostWrapper) { + var node = unwrap(unsafeUnwrap(hostWrapper).ownerDocument.createDocumentFragment()); + DocumentFragment.call(this, node); + rewrap(node, this); + var oldShadowRoot = hostWrapper.shadowRoot; + nextOlderShadowTreeTable.set(this, oldShadowRoot); + this.treeScope_ = new TreeScope(this, getTreeScope(oldShadowRoot || hostWrapper)); + shadowHostTable.set(this, hostWrapper); + } + ShadowRoot.prototype = Object.create(DocumentFragment.prototype); + mixin(ShadowRoot.prototype, { + constructor: ShadowRoot, + get innerHTML() { + return getInnerHTML(this); + }, + set innerHTML(value) { + setInnerHTML(this, value); + this.invalidateShadowRenderer(); + }, + get olderShadowRoot() { + return nextOlderShadowTreeTable.get(this) || null; + }, + get host() { + return shadowHostTable.get(this) || null; + }, + invalidateShadowRenderer: function() { + return shadowHostTable.get(this).invalidateShadowRenderer(); + }, + elementFromPoint: function(x, y) { + return elementFromPoint(this, this.ownerDocument, x, y); + }, + getSelection: function() { + return document.getSelection(); + }, + get activeElement() { + var unwrappedActiveElement = unwrap(this).ownerDocument.activeElement; + if (!unwrappedActiveElement || !unwrappedActiveElement.nodeType) return null; + var activeElement = wrap(unwrappedActiveElement); + while (!this.contains(activeElement)) { + while (activeElement.parentNode) { + activeElement = activeElement.parentNode; + } + if (activeElement.host) { + activeElement = activeElement.host; + } else { + return null; + } + } + return activeElement; + } + }); + scope.wrappers.ShadowRoot = ShadowRoot; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var registerWrapper = scope.registerWrapper; + var setWrapper = scope.setWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var unwrapIfNeeded = scope.unwrapIfNeeded; + var wrap = scope.wrap; + var getTreeScope = scope.getTreeScope; + var OriginalRange = window.Range; + var ShadowRoot = scope.wrappers.ShadowRoot; + function getHost(node) { + var root = getTreeScope(node).root; + if (root instanceof ShadowRoot) { + return root.host; + } + return null; + } + function hostNodeToShadowNode(refNode, offset) { + if (refNode.shadowRoot) { + offset = Math.min(refNode.childNodes.length - 1, offset); + var child = refNode.childNodes[offset]; + if (child) { + var insertionPoint = scope.getDestinationInsertionPoints(child); + if (insertionPoint.length > 0) { + var parentNode = insertionPoint[0].parentNode; + if (parentNode.nodeType == Node.ELEMENT_NODE) { + refNode = parentNode; + } + } + } + } + return refNode; + } + function shadowNodeToHostNode(node) { + node = wrap(node); + return getHost(node) || node; + } + function Range(impl) { + setWrapper(impl, this); + } + Range.prototype = { + get startContainer() { + return shadowNodeToHostNode(unsafeUnwrap(this).startContainer); + }, + get endContainer() { + return shadowNodeToHostNode(unsafeUnwrap(this).endContainer); + }, + get commonAncestorContainer() { + return shadowNodeToHostNode(unsafeUnwrap(this).commonAncestorContainer); + }, + setStart: function(refNode, offset) { + refNode = hostNodeToShadowNode(refNode, offset); + unsafeUnwrap(this).setStart(unwrapIfNeeded(refNode), offset); + }, + setEnd: function(refNode, offset) { + refNode = hostNodeToShadowNode(refNode, offset); + unsafeUnwrap(this).setEnd(unwrapIfNeeded(refNode), offset); + }, + setStartBefore: function(refNode) { + unsafeUnwrap(this).setStartBefore(unwrapIfNeeded(refNode)); + }, + setStartAfter: function(refNode) { + unsafeUnwrap(this).setStartAfter(unwrapIfNeeded(refNode)); + }, + setEndBefore: function(refNode) { + unsafeUnwrap(this).setEndBefore(unwrapIfNeeded(refNode)); + }, + setEndAfter: function(refNode) { + unsafeUnwrap(this).setEndAfter(unwrapIfNeeded(refNode)); + }, + selectNode: function(refNode) { + unsafeUnwrap(this).selectNode(unwrapIfNeeded(refNode)); + }, + selectNodeContents: function(refNode) { + unsafeUnwrap(this).selectNodeContents(unwrapIfNeeded(refNode)); + }, + compareBoundaryPoints: function(how, sourceRange) { + return unsafeUnwrap(this).compareBoundaryPoints(how, unwrap(sourceRange)); + }, + extractContents: function() { + return wrap(unsafeUnwrap(this).extractContents()); + }, + cloneContents: function() { + return wrap(unsafeUnwrap(this).cloneContents()); + }, + insertNode: function(node) { + unsafeUnwrap(this).insertNode(unwrapIfNeeded(node)); + }, + surroundContents: function(newParent) { + unsafeUnwrap(this).surroundContents(unwrapIfNeeded(newParent)); + }, + cloneRange: function() { + return wrap(unsafeUnwrap(this).cloneRange()); + }, + isPointInRange: function(node, offset) { + return unsafeUnwrap(this).isPointInRange(unwrapIfNeeded(node), offset); + }, + comparePoint: function(node, offset) { + return unsafeUnwrap(this).comparePoint(unwrapIfNeeded(node), offset); + }, + intersectsNode: function(node) { + return unsafeUnwrap(this).intersectsNode(unwrapIfNeeded(node)); + }, + toString: function() { + return unsafeUnwrap(this).toString(); + } + }; + if (OriginalRange.prototype.createContextualFragment) { + Range.prototype.createContextualFragment = function(html) { + return wrap(unsafeUnwrap(this).createContextualFragment(html)); + }; + } + registerWrapper(window.Range, Range, document.createRange()); + scope.wrappers.Range = Range; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var Element = scope.wrappers.Element; + var HTMLContentElement = scope.wrappers.HTMLContentElement; + var HTMLShadowElement = scope.wrappers.HTMLShadowElement; + var Node = scope.wrappers.Node; + var ShadowRoot = scope.wrappers.ShadowRoot; + var assert = scope.assert; + var getTreeScope = scope.getTreeScope; + var mixin = scope.mixin; + var oneOf = scope.oneOf; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var ArraySplice = scope.ArraySplice; + function updateWrapperUpAndSideways(wrapper) { + wrapper.previousSibling_ = wrapper.previousSibling; + wrapper.nextSibling_ = wrapper.nextSibling; + wrapper.parentNode_ = wrapper.parentNode; + } + function updateWrapperDown(wrapper) { + wrapper.firstChild_ = wrapper.firstChild; + wrapper.lastChild_ = wrapper.lastChild; + } + function updateAllChildNodes(parentNodeWrapper) { + assert(parentNodeWrapper instanceof Node); + for (var childWrapper = parentNodeWrapper.firstChild; childWrapper; childWrapper = childWrapper.nextSibling) { + updateWrapperUpAndSideways(childWrapper); + } + updateWrapperDown(parentNodeWrapper); + } + function insertBefore(parentNodeWrapper, newChildWrapper, refChildWrapper) { + var parentNode = unwrap(parentNodeWrapper); + var newChild = unwrap(newChildWrapper); + var refChild = refChildWrapper ? unwrap(refChildWrapper) : null; + remove(newChildWrapper); + updateWrapperUpAndSideways(newChildWrapper); + if (!refChildWrapper) { + parentNodeWrapper.lastChild_ = parentNodeWrapper.lastChild; + if (parentNodeWrapper.lastChild === parentNodeWrapper.firstChild) parentNodeWrapper.firstChild_ = parentNodeWrapper.firstChild; + var lastChildWrapper = wrap(parentNode.lastChild); + if (lastChildWrapper) lastChildWrapper.nextSibling_ = lastChildWrapper.nextSibling; + } else { + if (parentNodeWrapper.firstChild === refChildWrapper) parentNodeWrapper.firstChild_ = refChildWrapper; + refChildWrapper.previousSibling_ = refChildWrapper.previousSibling; + } + scope.originalInsertBefore.call(parentNode, newChild, refChild); + } + function remove(nodeWrapper) { + var node = unwrap(nodeWrapper); + var parentNode = node.parentNode; + if (!parentNode) return; + var parentNodeWrapper = wrap(parentNode); + updateWrapperUpAndSideways(nodeWrapper); + if (nodeWrapper.previousSibling) nodeWrapper.previousSibling.nextSibling_ = nodeWrapper; + if (nodeWrapper.nextSibling) nodeWrapper.nextSibling.previousSibling_ = nodeWrapper; + if (parentNodeWrapper.lastChild === nodeWrapper) parentNodeWrapper.lastChild_ = nodeWrapper; + if (parentNodeWrapper.firstChild === nodeWrapper) parentNodeWrapper.firstChild_ = nodeWrapper; + scope.originalRemoveChild.call(parentNode, node); + } + var distributedNodesTable = new WeakMap(); + var destinationInsertionPointsTable = new WeakMap(); + var rendererForHostTable = new WeakMap(); + function resetDistributedNodes(insertionPoint) { + distributedNodesTable.set(insertionPoint, []); + } + function getDistributedNodes(insertionPoint) { + var rv = distributedNodesTable.get(insertionPoint); + if (!rv) distributedNodesTable.set(insertionPoint, rv = []); + return rv; + } + function getChildNodesSnapshot(node) { + var result = [], i = 0; + for (var child = node.firstChild; child; child = child.nextSibling) { + result[i++] = child; + } + return result; + } + var request = oneOf(window, [ "requestAnimationFrame", "mozRequestAnimationFrame", "webkitRequestAnimationFrame", "setTimeout" ]); + var pendingDirtyRenderers = []; + var renderTimer; + function renderAllPending() { + for (var i = 0; i < pendingDirtyRenderers.length; i++) { + var renderer = pendingDirtyRenderers[i]; + var parentRenderer = renderer.parentRenderer; + if (parentRenderer && parentRenderer.dirty) continue; + renderer.render(); + } + pendingDirtyRenderers = []; + } + function handleRequestAnimationFrame() { + renderTimer = null; + renderAllPending(); + } + function getRendererForHost(host) { + var renderer = rendererForHostTable.get(host); + if (!renderer) { + renderer = new ShadowRenderer(host); + rendererForHostTable.set(host, renderer); + } + return renderer; + } + function getShadowRootAncestor(node) { + var root = getTreeScope(node).root; + if (root instanceof ShadowRoot) return root; + return null; + } + function getRendererForShadowRoot(shadowRoot) { + return getRendererForHost(shadowRoot.host); + } + var spliceDiff = new ArraySplice(); + spliceDiff.equals = function(renderNode, rawNode) { + return unwrap(renderNode.node) === rawNode; + }; + function RenderNode(node) { + this.skip = false; + this.node = node; + this.childNodes = []; + } + RenderNode.prototype = { + append: function(node) { + var rv = new RenderNode(node); + this.childNodes.push(rv); + return rv; + }, + sync: function(opt_added) { + if (this.skip) return; + var nodeWrapper = this.node; + var newChildren = this.childNodes; + var oldChildren = getChildNodesSnapshot(unwrap(nodeWrapper)); + var added = opt_added || new WeakMap(); + var splices = spliceDiff.calculateSplices(newChildren, oldChildren); + var newIndex = 0, oldIndex = 0; + var lastIndex = 0; + for (var i = 0; i < splices.length; i++) { + var splice = splices[i]; + for (;lastIndex < splice.index; lastIndex++) { + oldIndex++; + newChildren[newIndex++].sync(added); + } + var removedCount = splice.removed.length; + for (var j = 0; j < removedCount; j++) { + var wrapper = wrap(oldChildren[oldIndex++]); + if (!added.get(wrapper)) remove(wrapper); + } + var addedCount = splice.addedCount; + var refNode = oldChildren[oldIndex] && wrap(oldChildren[oldIndex]); + for (var j = 0; j < addedCount; j++) { + var newChildRenderNode = newChildren[newIndex++]; + var newChildWrapper = newChildRenderNode.node; + insertBefore(nodeWrapper, newChildWrapper, refNode); + added.set(newChildWrapper, true); + newChildRenderNode.sync(added); + } + lastIndex += addedCount; + } + for (var i = lastIndex; i < newChildren.length; i++) { + newChildren[i].sync(added); + } + } + }; + function ShadowRenderer(host) { + this.host = host; + this.dirty = false; + this.invalidateAttributes(); + this.associateNode(host); + } + ShadowRenderer.prototype = { + render: function(opt_renderNode) { + if (!this.dirty) return; + this.invalidateAttributes(); + var host = this.host; + this.distribution(host); + var renderNode = opt_renderNode || new RenderNode(host); + this.buildRenderTree(renderNode, host); + var topMostRenderer = !opt_renderNode; + if (topMostRenderer) renderNode.sync(); + this.dirty = false; + }, + get parentRenderer() { + return getTreeScope(this.host).renderer; + }, + invalidate: function() { + if (!this.dirty) { + this.dirty = true; + var parentRenderer = this.parentRenderer; + if (parentRenderer) parentRenderer.invalidate(); + pendingDirtyRenderers.push(this); + if (renderTimer) return; + renderTimer = window[request](handleRequestAnimationFrame, 0); + } + }, + distribution: function(root) { + this.resetAllSubtrees(root); + this.distributionResolution(root); + }, + resetAll: function(node) { + if (isInsertionPoint(node)) resetDistributedNodes(node); else resetDestinationInsertionPoints(node); + this.resetAllSubtrees(node); + }, + resetAllSubtrees: function(node) { + for (var child = node.firstChild; child; child = child.nextSibling) { + this.resetAll(child); + } + if (node.shadowRoot) this.resetAll(node.shadowRoot); + if (node.olderShadowRoot) this.resetAll(node.olderShadowRoot); + }, + distributionResolution: function(node) { + if (isShadowHost(node)) { + var shadowHost = node; + var pool = poolPopulation(shadowHost); + var shadowTrees = getShadowTrees(shadowHost); + for (var i = 0; i < shadowTrees.length; i++) { + this.poolDistribution(shadowTrees[i], pool); + } + for (var i = shadowTrees.length - 1; i >= 0; i--) { + var shadowTree = shadowTrees[i]; + var shadow = getShadowInsertionPoint(shadowTree); + if (shadow) { + var olderShadowRoot = shadowTree.olderShadowRoot; + if (olderShadowRoot) { + pool = poolPopulation(olderShadowRoot); + } + for (var j = 0; j < pool.length; j++) { + destributeNodeInto(pool[j], shadow); + } + } + this.distributionResolution(shadowTree); + } + } + for (var child = node.firstChild; child; child = child.nextSibling) { + this.distributionResolution(child); + } + }, + poolDistribution: function(node, pool) { + if (node instanceof HTMLShadowElement) return; + if (node instanceof HTMLContentElement) { + var content = node; + this.updateDependentAttributes(content.getAttribute("select")); + var anyDistributed = false; + for (var i = 0; i < pool.length; i++) { + var node = pool[i]; + if (!node) continue; + if (matches(node, content)) { + destributeNodeInto(node, content); + pool[i] = undefined; + anyDistributed = true; + } + } + if (!anyDistributed) { + for (var child = content.firstChild; child; child = child.nextSibling) { + destributeNodeInto(child, content); + } + } + return; + } + for (var child = node.firstChild; child; child = child.nextSibling) { + this.poolDistribution(child, pool); + } + }, + buildRenderTree: function(renderNode, node) { + var children = this.compose(node); + for (var i = 0; i < children.length; i++) { + var child = children[i]; + var childRenderNode = renderNode.append(child); + this.buildRenderTree(childRenderNode, child); + } + if (isShadowHost(node)) { + var renderer = getRendererForHost(node); + renderer.dirty = false; + } + }, + compose: function(node) { + var children = []; + var p = node.shadowRoot || node; + for (var child = p.firstChild; child; child = child.nextSibling) { + if (isInsertionPoint(child)) { + this.associateNode(p); + var distributedNodes = getDistributedNodes(child); + for (var j = 0; j < distributedNodes.length; j++) { + var distributedNode = distributedNodes[j]; + if (isFinalDestination(child, distributedNode)) children.push(distributedNode); + } + } else { + children.push(child); + } + } + return children; + }, + invalidateAttributes: function() { + this.attributes = Object.create(null); + }, + updateDependentAttributes: function(selector) { + if (!selector) return; + var attributes = this.attributes; + if (/\.\w+/.test(selector)) attributes["class"] = true; + if (/#\w+/.test(selector)) attributes["id"] = true; + selector.replace(/\[\s*([^\s=\|~\]]+)/g, function(_, name) { + attributes[name] = true; + }); + }, + dependsOnAttribute: function(name) { + return this.attributes[name]; + }, + associateNode: function(node) { + unsafeUnwrap(node).polymerShadowRenderer_ = this; + } + }; + function poolPopulation(node) { + var pool = []; + for (var child = node.firstChild; child; child = child.nextSibling) { + if (isInsertionPoint(child)) { + pool.push.apply(pool, getDistributedNodes(child)); + } else { + pool.push(child); + } + } + return pool; + } + function getShadowInsertionPoint(node) { + if (node instanceof HTMLShadowElement) return node; + if (node instanceof HTMLContentElement) return null; + for (var child = node.firstChild; child; child = child.nextSibling) { + var res = getShadowInsertionPoint(child); + if (res) return res; + } + return null; + } + function destributeNodeInto(child, insertionPoint) { + getDistributedNodes(insertionPoint).push(child); + var points = destinationInsertionPointsTable.get(child); + if (!points) destinationInsertionPointsTable.set(child, [ insertionPoint ]); else points.push(insertionPoint); + } + function getDestinationInsertionPoints(node) { + return destinationInsertionPointsTable.get(node); + } + function resetDestinationInsertionPoints(node) { + destinationInsertionPointsTable.set(node, undefined); + } + var selectorStartCharRe = /^(:not\()?[*.#[a-zA-Z_|]/; + function matches(node, contentElement) { + var select = contentElement.getAttribute("select"); + if (!select) return true; + select = select.trim(); + if (!select) return true; + if (!(node instanceof Element)) return false; + if (!selectorStartCharRe.test(select)) return false; + try { + return node.matches(select); + } catch (ex) { + return false; + } + } + function isFinalDestination(insertionPoint, node) { + var points = getDestinationInsertionPoints(node); + return points && points[points.length - 1] === insertionPoint; + } + function isInsertionPoint(node) { + return node instanceof HTMLContentElement || node instanceof HTMLShadowElement; + } + function isShadowHost(shadowHost) { + return shadowHost.shadowRoot; + } + function getShadowTrees(host) { + var trees = []; + for (var tree = host.shadowRoot; tree; tree = tree.olderShadowRoot) { + trees.push(tree); + } + return trees; + } + function render(host) { + new ShadowRenderer(host).render(); + } + Node.prototype.invalidateShadowRenderer = function(force) { + var renderer = unsafeUnwrap(this).polymerShadowRenderer_; + if (renderer) { + renderer.invalidate(); + return true; + } + return false; + }; + HTMLContentElement.prototype.getDistributedNodes = HTMLShadowElement.prototype.getDistributedNodes = function() { + renderAllPending(); + return getDistributedNodes(this); + }; + Element.prototype.getDestinationInsertionPoints = function() { + renderAllPending(); + return getDestinationInsertionPoints(this) || []; + }; + HTMLContentElement.prototype.nodeIsInserted_ = HTMLShadowElement.prototype.nodeIsInserted_ = function() { + this.invalidateShadowRenderer(); + var shadowRoot = getShadowRootAncestor(this); + var renderer; + if (shadowRoot) renderer = getRendererForShadowRoot(shadowRoot); + unsafeUnwrap(this).polymerShadowRenderer_ = renderer; + if (renderer) renderer.invalidate(); + }; + scope.getRendererForHost = getRendererForHost; + scope.getShadowTrees = getShadowTrees; + scope.renderAllPending = renderAllPending; + scope.getDestinationInsertionPoints = getDestinationInsertionPoints; + scope.visual = { + insertBefore: insertBefore, + remove: remove + }; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var assert = scope.assert; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var elementsWithFormProperty = [ "HTMLButtonElement", "HTMLFieldSetElement", "HTMLInputElement", "HTMLKeygenElement", "HTMLLabelElement", "HTMLLegendElement", "HTMLObjectElement", "HTMLOutputElement", "HTMLTextAreaElement" ]; + function createWrapperConstructor(name) { + if (!window[name]) return; + assert(!scope.wrappers[name]); + var GeneratedWrapper = function(node) { + HTMLElement.call(this, node); + }; + GeneratedWrapper.prototype = Object.create(HTMLElement.prototype); + mixin(GeneratedWrapper.prototype, { + get form() { + return wrap(unwrap(this).form); + } + }); + registerWrapper(window[name], GeneratedWrapper, document.createElement(name.slice(4, -7))); + scope.wrappers[name] = GeneratedWrapper; + } + elementsWithFormProperty.forEach(createWrapperConstructor); + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var registerWrapper = scope.registerWrapper; + var setWrapper = scope.setWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var unwrapIfNeeded = scope.unwrapIfNeeded; + var wrap = scope.wrap; + var OriginalSelection = window.Selection; + function Selection(impl) { + setWrapper(impl, this); + } + Selection.prototype = { + get anchorNode() { + return wrap(unsafeUnwrap(this).anchorNode); + }, + get focusNode() { + return wrap(unsafeUnwrap(this).focusNode); + }, + addRange: function(range) { + unsafeUnwrap(this).addRange(unwrapIfNeeded(range)); + }, + collapse: function(node, index) { + unsafeUnwrap(this).collapse(unwrapIfNeeded(node), index); + }, + containsNode: function(node, allowPartial) { + return unsafeUnwrap(this).containsNode(unwrapIfNeeded(node), allowPartial); + }, + getRangeAt: function(index) { + return wrap(unsafeUnwrap(this).getRangeAt(index)); + }, + removeRange: function(range) { + unsafeUnwrap(this).removeRange(unwrap(range)); + }, + selectAllChildren: function(node) { + unsafeUnwrap(this).selectAllChildren(node instanceof ShadowRoot ? unsafeUnwrap(node.host) : unwrapIfNeeded(node)); + }, + toString: function() { + return unsafeUnwrap(this).toString(); + } + }; + if (OriginalSelection.prototype.extend) { + Selection.prototype.extend = function(node, offset) { + unsafeUnwrap(this).extend(unwrapIfNeeded(node), offset); + }; + } + registerWrapper(window.Selection, Selection, window.getSelection()); + scope.wrappers.Selection = Selection; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var registerWrapper = scope.registerWrapper; + var setWrapper = scope.setWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrapIfNeeded = scope.unwrapIfNeeded; + var wrap = scope.wrap; + var OriginalTreeWalker = window.TreeWalker; + function TreeWalker(impl) { + setWrapper(impl, this); + } + TreeWalker.prototype = { + get root() { + return wrap(unsafeUnwrap(this).root); + }, + get currentNode() { + return wrap(unsafeUnwrap(this).currentNode); + }, + set currentNode(node) { + unsafeUnwrap(this).currentNode = unwrapIfNeeded(node); + }, + get filter() { + return unsafeUnwrap(this).filter; + }, + parentNode: function() { + return wrap(unsafeUnwrap(this).parentNode()); + }, + firstChild: function() { + return wrap(unsafeUnwrap(this).firstChild()); + }, + lastChild: function() { + return wrap(unsafeUnwrap(this).lastChild()); + }, + previousSibling: function() { + return wrap(unsafeUnwrap(this).previousSibling()); + }, + previousNode: function() { + return wrap(unsafeUnwrap(this).previousNode()); + }, + nextNode: function() { + return wrap(unsafeUnwrap(this).nextNode()); + } + }; + registerWrapper(OriginalTreeWalker, TreeWalker); + scope.wrappers.TreeWalker = TreeWalker; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var GetElementsByInterface = scope.GetElementsByInterface; + var Node = scope.wrappers.Node; + var ParentNodeInterface = scope.ParentNodeInterface; + var NonElementParentNodeInterface = scope.NonElementParentNodeInterface; + var Selection = scope.wrappers.Selection; + var SelectorsInterface = scope.SelectorsInterface; + var ShadowRoot = scope.wrappers.ShadowRoot; + var TreeScope = scope.TreeScope; + var cloneNode = scope.cloneNode; + var defineGetter = scope.defineGetter; + var defineWrapGetter = scope.defineWrapGetter; + var elementFromPoint = scope.elementFromPoint; + var forwardMethodsToWrapper = scope.forwardMethodsToWrapper; + var matchesNames = scope.matchesNames; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var renderAllPending = scope.renderAllPending; + var rewrap = scope.rewrap; + var setWrapper = scope.setWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var wrapEventTargetMethods = scope.wrapEventTargetMethods; + var wrapNodeList = scope.wrapNodeList; + var implementationTable = new WeakMap(); + function Document(node) { + Node.call(this, node); + this.treeScope_ = new TreeScope(this, null); + } + Document.prototype = Object.create(Node.prototype); + defineWrapGetter(Document, "documentElement"); + defineWrapGetter(Document, "body"); + defineWrapGetter(Document, "head"); + defineGetter(Document, "activeElement", function() { + var unwrappedActiveElement = unwrap(this).activeElement; + if (!unwrappedActiveElement || !unwrappedActiveElement.nodeType) return null; + var activeElement = wrap(unwrappedActiveElement); + while (!this.contains(activeElement)) { + while (activeElement.parentNode) { + activeElement = activeElement.parentNode; + } + if (activeElement.host) { + activeElement = activeElement.host; + } else { + return null; + } + } + return activeElement; + }); + function wrapMethod(name) { + var original = document[name]; + Document.prototype[name] = function() { + return wrap(original.apply(unsafeUnwrap(this), arguments)); + }; + } + [ "createComment", "createDocumentFragment", "createElement", "createElementNS", "createEvent", "createEventNS", "createRange", "createTextNode" ].forEach(wrapMethod); + var originalAdoptNode = document.adoptNode; + function adoptNodeNoRemove(node, doc) { + originalAdoptNode.call(unsafeUnwrap(doc), unwrap(node)); + adoptSubtree(node, doc); + } + function adoptSubtree(node, doc) { + if (node.shadowRoot) doc.adoptNode(node.shadowRoot); + if (node instanceof ShadowRoot) adoptOlderShadowRoots(node, doc); + for (var child = node.firstChild; child; child = child.nextSibling) { + adoptSubtree(child, doc); + } + } + function adoptOlderShadowRoots(shadowRoot, doc) { + var oldShadowRoot = shadowRoot.olderShadowRoot; + if (oldShadowRoot) doc.adoptNode(oldShadowRoot); + } + var originalGetSelection = document.getSelection; + mixin(Document.prototype, { + adoptNode: function(node) { + if (node.parentNode) node.parentNode.removeChild(node); + adoptNodeNoRemove(node, this); + return node; + }, + elementFromPoint: function(x, y) { + return elementFromPoint(this, this, x, y); + }, + importNode: function(node, deep) { + return cloneNode(node, deep, unsafeUnwrap(this)); + }, + getSelection: function() { + renderAllPending(); + return new Selection(originalGetSelection.call(unwrap(this))); + }, + getElementsByName: function(name) { + return SelectorsInterface.querySelectorAll.call(this, "[name=" + JSON.stringify(String(name)) + "]"); + } + }); + var originalCreateTreeWalker = document.createTreeWalker; + var TreeWalkerWrapper = scope.wrappers.TreeWalker; + Document.prototype.createTreeWalker = function(root, whatToShow, filter, expandEntityReferences) { + var newFilter = null; + if (filter) { + if (filter.acceptNode && typeof filter.acceptNode === "function") { + newFilter = { + acceptNode: function(node) { + return filter.acceptNode(wrap(node)); + } + }; + } else if (typeof filter === "function") { + newFilter = function(node) { + return filter(wrap(node)); + }; + } + } + return new TreeWalkerWrapper(originalCreateTreeWalker.call(unwrap(this), unwrap(root), whatToShow, newFilter, expandEntityReferences)); + }; + if (document.registerElement) { + var originalRegisterElement = document.registerElement; + Document.prototype.registerElement = function(tagName, object) { + var prototype, extendsOption; + if (object !== undefined) { + prototype = object.prototype; + extendsOption = object.extends; + } + if (!prototype) prototype = Object.create(HTMLElement.prototype); + if (scope.nativePrototypeTable.get(prototype)) { + throw new Error("NotSupportedError"); + } + var proto = Object.getPrototypeOf(prototype); + var nativePrototype; + var prototypes = []; + while (proto) { + nativePrototype = scope.nativePrototypeTable.get(proto); + if (nativePrototype) break; + prototypes.push(proto); + proto = Object.getPrototypeOf(proto); + } + if (!nativePrototype) { + throw new Error("NotSupportedError"); + } + var newPrototype = Object.create(nativePrototype); + for (var i = prototypes.length - 1; i >= 0; i--) { + newPrototype = Object.create(newPrototype); + } + [ "createdCallback", "attachedCallback", "detachedCallback", "attributeChangedCallback" ].forEach(function(name) { + var f = prototype[name]; + if (!f) return; + newPrototype[name] = function() { + if (!(wrap(this) instanceof CustomElementConstructor)) { + rewrap(this); + } + f.apply(wrap(this), arguments); + }; + }); + var p = { + prototype: newPrototype + }; + if (extendsOption) p.extends = extendsOption; + function CustomElementConstructor(node) { + if (!node) { + if (extendsOption) { + return document.createElement(extendsOption, tagName); + } else { + return document.createElement(tagName); + } + } + setWrapper(node, this); + } + CustomElementConstructor.prototype = prototype; + CustomElementConstructor.prototype.constructor = CustomElementConstructor; + scope.constructorTable.set(newPrototype, CustomElementConstructor); + scope.nativePrototypeTable.set(prototype, newPrototype); + var nativeConstructor = originalRegisterElement.call(unwrap(this), tagName, p); + return CustomElementConstructor; + }; + forwardMethodsToWrapper([ window.HTMLDocument || window.Document ], [ "registerElement" ]); + } + forwardMethodsToWrapper([ window.HTMLBodyElement, window.HTMLDocument || window.Document, window.HTMLHeadElement, window.HTMLHtmlElement ], [ "appendChild", "compareDocumentPosition", "contains", "getElementsByClassName", "getElementsByTagName", "getElementsByTagNameNS", "insertBefore", "querySelector", "querySelectorAll", "removeChild", "replaceChild" ]); + forwardMethodsToWrapper([ window.HTMLBodyElement, window.HTMLHeadElement, window.HTMLHtmlElement ], matchesNames); + forwardMethodsToWrapper([ window.HTMLDocument || window.Document ], [ "adoptNode", "importNode", "contains", "createComment", "createDocumentFragment", "createElement", "createElementNS", "createEvent", "createEventNS", "createRange", "createTextNode", "createTreeWalker", "elementFromPoint", "getElementById", "getElementsByName", "getSelection" ]); + mixin(Document.prototype, GetElementsByInterface); + mixin(Document.prototype, ParentNodeInterface); + mixin(Document.prototype, SelectorsInterface); + mixin(Document.prototype, NonElementParentNodeInterface); + mixin(Document.prototype, { + get implementation() { + var implementation = implementationTable.get(this); + if (implementation) return implementation; + implementation = new DOMImplementation(unwrap(this).implementation); + implementationTable.set(this, implementation); + return implementation; + }, + get defaultView() { + return wrap(unwrap(this).defaultView); + } + }); + registerWrapper(window.Document, Document, document.implementation.createHTMLDocument("")); + if (window.HTMLDocument) registerWrapper(window.HTMLDocument, Document); + wrapEventTargetMethods([ window.HTMLBodyElement, window.HTMLDocument || window.Document, window.HTMLHeadElement ]); + function DOMImplementation(impl) { + setWrapper(impl, this); + } + var originalCreateDocument = document.implementation.createDocument; + DOMImplementation.prototype.createDocument = function() { + arguments[2] = unwrap(arguments[2]); + return wrap(originalCreateDocument.apply(unsafeUnwrap(this), arguments)); + }; + function wrapImplMethod(constructor, name) { + var original = document.implementation[name]; + constructor.prototype[name] = function() { + return wrap(original.apply(unsafeUnwrap(this), arguments)); + }; + } + function forwardImplMethod(constructor, name) { + var original = document.implementation[name]; + constructor.prototype[name] = function() { + return original.apply(unsafeUnwrap(this), arguments); + }; + } + wrapImplMethod(DOMImplementation, "createDocumentType"); + wrapImplMethod(DOMImplementation, "createHTMLDocument"); + forwardImplMethod(DOMImplementation, "hasFeature"); + registerWrapper(window.DOMImplementation, DOMImplementation); + forwardMethodsToWrapper([ window.DOMImplementation ], [ "createDocument", "createDocumentType", "createHTMLDocument", "hasFeature" ]); + scope.adoptNodeNoRemove = adoptNodeNoRemove; + scope.wrappers.DOMImplementation = DOMImplementation; + scope.wrappers.Document = Document; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var EventTarget = scope.wrappers.EventTarget; + var Selection = scope.wrappers.Selection; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var renderAllPending = scope.renderAllPending; + var unwrap = scope.unwrap; + var unwrapIfNeeded = scope.unwrapIfNeeded; + var wrap = scope.wrap; + var OriginalWindow = window.Window; + var originalGetComputedStyle = window.getComputedStyle; + var originalGetDefaultComputedStyle = window.getDefaultComputedStyle; + var originalGetSelection = window.getSelection; + function Window(impl) { + EventTarget.call(this, impl); + } + Window.prototype = Object.create(EventTarget.prototype); + OriginalWindow.prototype.getComputedStyle = function(el, pseudo) { + return wrap(this || window).getComputedStyle(unwrapIfNeeded(el), pseudo); + }; + if (originalGetDefaultComputedStyle) { + OriginalWindow.prototype.getDefaultComputedStyle = function(el, pseudo) { + return wrap(this || window).getDefaultComputedStyle(unwrapIfNeeded(el), pseudo); + }; + } + OriginalWindow.prototype.getSelection = function() { + return wrap(this || window).getSelection(); + }; + delete window.getComputedStyle; + delete window.getDefaultComputedStyle; + delete window.getSelection; + [ "addEventListener", "removeEventListener", "dispatchEvent" ].forEach(function(name) { + OriginalWindow.prototype[name] = function() { + var w = wrap(this || window); + return w[name].apply(w, arguments); + }; + delete window[name]; + }); + mixin(Window.prototype, { + getComputedStyle: function(el, pseudo) { + renderAllPending(); + return originalGetComputedStyle.call(unwrap(this), unwrapIfNeeded(el), pseudo); + }, + getSelection: function() { + renderAllPending(); + return new Selection(originalGetSelection.call(unwrap(this))); + }, + get document() { + return wrap(unwrap(this).document); + } + }); + if (originalGetDefaultComputedStyle) { + Window.prototype.getDefaultComputedStyle = function(el, pseudo) { + renderAllPending(); + return originalGetDefaultComputedStyle.call(unwrap(this), unwrapIfNeeded(el), pseudo); + }; + } + registerWrapper(OriginalWindow, Window, window); + scope.wrappers.Window = Window; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var unwrap = scope.unwrap; + var OriginalDataTransfer = window.DataTransfer || window.Clipboard; + var OriginalDataTransferSetDragImage = OriginalDataTransfer.prototype.setDragImage; + if (OriginalDataTransferSetDragImage) { + OriginalDataTransfer.prototype.setDragImage = function(image, x, y) { + OriginalDataTransferSetDragImage.call(this, unwrap(image), x, y); + }; + } + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var registerWrapper = scope.registerWrapper; + var setWrapper = scope.setWrapper; + var unwrap = scope.unwrap; + var OriginalFormData = window.FormData; + if (!OriginalFormData) return; + function FormData(formElement) { + var impl; + if (formElement instanceof OriginalFormData) { + impl = formElement; + } else { + impl = new OriginalFormData(formElement && unwrap(formElement)); + } + setWrapper(impl, this); + } + registerWrapper(OriginalFormData, FormData, new OriginalFormData()); + scope.wrappers.FormData = FormData; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var unwrapIfNeeded = scope.unwrapIfNeeded; + var originalSend = XMLHttpRequest.prototype.send; + XMLHttpRequest.prototype.send = function(obj) { + return originalSend.call(this, unwrapIfNeeded(obj)); + }; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var isWrapperFor = scope.isWrapperFor; + var elements = { + a: "HTMLAnchorElement", + area: "HTMLAreaElement", + audio: "HTMLAudioElement", + base: "HTMLBaseElement", + body: "HTMLBodyElement", + br: "HTMLBRElement", + button: "HTMLButtonElement", + canvas: "HTMLCanvasElement", + caption: "HTMLTableCaptionElement", + col: "HTMLTableColElement", + content: "HTMLContentElement", + data: "HTMLDataElement", + datalist: "HTMLDataListElement", + del: "HTMLModElement", + dir: "HTMLDirectoryElement", + div: "HTMLDivElement", + dl: "HTMLDListElement", + embed: "HTMLEmbedElement", + fieldset: "HTMLFieldSetElement", + font: "HTMLFontElement", + form: "HTMLFormElement", + frame: "HTMLFrameElement", + frameset: "HTMLFrameSetElement", + h1: "HTMLHeadingElement", + head: "HTMLHeadElement", + hr: "HTMLHRElement", + html: "HTMLHtmlElement", + iframe: "HTMLIFrameElement", + img: "HTMLImageElement", + input: "HTMLInputElement", + keygen: "HTMLKeygenElement", + label: "HTMLLabelElement", + legend: "HTMLLegendElement", + li: "HTMLLIElement", + link: "HTMLLinkElement", + map: "HTMLMapElement", + marquee: "HTMLMarqueeElement", + menu: "HTMLMenuElement", + menuitem: "HTMLMenuItemElement", + meta: "HTMLMetaElement", + meter: "HTMLMeterElement", + object: "HTMLObjectElement", + ol: "HTMLOListElement", + optgroup: "HTMLOptGroupElement", + option: "HTMLOptionElement", + output: "HTMLOutputElement", + p: "HTMLParagraphElement", + param: "HTMLParamElement", + pre: "HTMLPreElement", + progress: "HTMLProgressElement", + q: "HTMLQuoteElement", + script: "HTMLScriptElement", + select: "HTMLSelectElement", + shadow: "HTMLShadowElement", + source: "HTMLSourceElement", + span: "HTMLSpanElement", + style: "HTMLStyleElement", + table: "HTMLTableElement", + tbody: "HTMLTableSectionElement", + template: "HTMLTemplateElement", + textarea: "HTMLTextAreaElement", + thead: "HTMLTableSectionElement", + time: "HTMLTimeElement", + title: "HTMLTitleElement", + tr: "HTMLTableRowElement", + track: "HTMLTrackElement", + ul: "HTMLUListElement", + video: "HTMLVideoElement" + }; + function overrideConstructor(tagName) { + var nativeConstructorName = elements[tagName]; + var nativeConstructor = window[nativeConstructorName]; + if (!nativeConstructor) return; + var element = document.createElement(tagName); + var wrapperConstructor = element.constructor; + window[nativeConstructorName] = wrapperConstructor; + } + Object.keys(elements).forEach(overrideConstructor); + Object.getOwnPropertyNames(scope.wrappers).forEach(function(name) { + window[name] = scope.wrappers[name]; + }); + })(window.ShadowDOMPolyfill); + (function(scope) { + var ShadowCSS = { + strictStyling: false, + registry: {}, + shimStyling: function(root, name, extendsName) { + var scopeStyles = this.prepareRoot(root, name, extendsName); + var typeExtension = this.isTypeExtension(extendsName); + var scopeSelector = this.makeScopeSelector(name, typeExtension); + var cssText = stylesToCssText(scopeStyles, true); + cssText = this.scopeCssText(cssText, scopeSelector); + if (root) { + root.shimmedStyle = cssText; + } + this.addCssToDocument(cssText, name); + }, + shimStyle: function(style, selector) { + return this.shimCssText(style.textContent, selector); + }, + shimCssText: function(cssText, selector) { + cssText = this.insertDirectives(cssText); + return this.scopeCssText(cssText, selector); + }, + makeScopeSelector: function(name, typeExtension) { + if (name) { + return typeExtension ? "[is=" + name + "]" : name; + } + return ""; + }, + isTypeExtension: function(extendsName) { + return extendsName && extendsName.indexOf("-") < 0; + }, + prepareRoot: function(root, name, extendsName) { + var def = this.registerRoot(root, name, extendsName); + this.replaceTextInStyles(def.rootStyles, this.insertDirectives); + this.removeStyles(root, def.rootStyles); + if (this.strictStyling) { + this.applyScopeToContent(root, name); + } + return def.scopeStyles; + }, + removeStyles: function(root, styles) { + for (var i = 0, l = styles.length, s; i < l && (s = styles[i]); i++) { + s.parentNode.removeChild(s); + } + }, + registerRoot: function(root, name, extendsName) { + var def = this.registry[name] = { + root: root, + name: name, + extendsName: extendsName + }; + var styles = this.findStyles(root); + def.rootStyles = styles; + def.scopeStyles = def.rootStyles; + var extendee = this.registry[def.extendsName]; + if (extendee) { + def.scopeStyles = extendee.scopeStyles.concat(def.scopeStyles); + } + return def; + }, + findStyles: function(root) { + if (!root) { + return []; + } + var styles = root.querySelectorAll("style"); + return Array.prototype.filter.call(styles, function(s) { + return !s.hasAttribute(NO_SHIM_ATTRIBUTE); + }); + }, + applyScopeToContent: function(root, name) { + if (root) { + Array.prototype.forEach.call(root.querySelectorAll("*"), function(node) { + node.setAttribute(name, ""); + }); + Array.prototype.forEach.call(root.querySelectorAll("template"), function(template) { + this.applyScopeToContent(template.content, name); + }, this); + } + }, + insertDirectives: function(cssText) { + cssText = this.insertPolyfillDirectivesInCssText(cssText); + return this.insertPolyfillRulesInCssText(cssText); + }, + insertPolyfillDirectivesInCssText: function(cssText) { + cssText = cssText.replace(cssCommentNextSelectorRe, function(match, p1) { + return p1.slice(0, -2) + "{"; + }); + return cssText.replace(cssContentNextSelectorRe, function(match, p1) { + return p1 + " {"; + }); + }, + insertPolyfillRulesInCssText: function(cssText) { + cssText = cssText.replace(cssCommentRuleRe, function(match, p1) { + return p1.slice(0, -1); + }); + return cssText.replace(cssContentRuleRe, function(match, p1, p2, p3) { + var rule = match.replace(p1, "").replace(p2, ""); + return p3 + rule; + }); + }, + scopeCssText: function(cssText, scopeSelector) { + var unscoped = this.extractUnscopedRulesFromCssText(cssText); + cssText = this.insertPolyfillHostInCssText(cssText); + cssText = this.convertColonHost(cssText); + cssText = this.convertColonHostContext(cssText); + cssText = this.convertShadowDOMSelectors(cssText); + if (scopeSelector) { + var self = this, cssText; + withCssRules(cssText, function(rules) { + cssText = self.scopeRules(rules, scopeSelector); + }); + } + cssText = cssText + "\n" + unscoped; + return cssText.trim(); + }, + extractUnscopedRulesFromCssText: function(cssText) { + var r = "", m; + while (m = cssCommentUnscopedRuleRe.exec(cssText)) { + r += m[1].slice(0, -1) + "\n\n"; + } + while (m = cssContentUnscopedRuleRe.exec(cssText)) { + r += m[0].replace(m[2], "").replace(m[1], m[3]) + "\n\n"; + } + return r; + }, + convertColonHost: function(cssText) { + return this.convertColonRule(cssText, cssColonHostRe, this.colonHostPartReplacer); + }, + convertColonHostContext: function(cssText) { + return this.convertColonRule(cssText, cssColonHostContextRe, this.colonHostContextPartReplacer); + }, + convertColonRule: function(cssText, regExp, partReplacer) { + return cssText.replace(regExp, function(m, p1, p2, p3) { + p1 = polyfillHostNoCombinator; + if (p2) { + var parts = p2.split(","), r = []; + for (var i = 0, l = parts.length, p; i < l && (p = parts[i]); i++) { + p = p.trim(); + r.push(partReplacer(p1, p, p3)); + } + return r.join(","); + } else { + return p1 + p3; + } + }); + }, + colonHostContextPartReplacer: function(host, part, suffix) { + if (part.match(polyfillHost)) { + return this.colonHostPartReplacer(host, part, suffix); + } else { + return host + part + suffix + ", " + part + " " + host + suffix; + } + }, + colonHostPartReplacer: function(host, part, suffix) { + return host + part.replace(polyfillHost, "") + suffix; + }, + convertShadowDOMSelectors: function(cssText) { + for (var i = 0; i < shadowDOMSelectorsRe.length; i++) { + cssText = cssText.replace(shadowDOMSelectorsRe[i], " "); + } + return cssText; + }, + scopeRules: function(cssRules, scopeSelector) { + var cssText = ""; + if (cssRules) { + Array.prototype.forEach.call(cssRules, function(rule) { + if (rule.selectorText && (rule.style && rule.style.cssText !== undefined)) { + cssText += this.scopeSelector(rule.selectorText, scopeSelector, this.strictStyling) + " {\n\t"; + cssText += this.propertiesFromRule(rule) + "\n}\n\n"; + } else if (rule.type === CSSRule.MEDIA_RULE) { + cssText += "@media " + rule.media.mediaText + " {\n"; + cssText += this.scopeRules(rule.cssRules, scopeSelector); + cssText += "\n}\n\n"; + } else { + try { + if (rule.cssText) { + cssText += rule.cssText + "\n\n"; + } + } catch (x) { + if (rule.type === CSSRule.KEYFRAMES_RULE && rule.cssRules) { + cssText += this.ieSafeCssTextFromKeyFrameRule(rule); + } + } + } + }, this); + } + return cssText; + }, + ieSafeCssTextFromKeyFrameRule: function(rule) { + var cssText = "@keyframes " + rule.name + " {"; + Array.prototype.forEach.call(rule.cssRules, function(rule) { + cssText += " " + rule.keyText + " {" + rule.style.cssText + "}"; + }); + cssText += " }"; + return cssText; + }, + scopeSelector: function(selector, scopeSelector, strict) { + var r = [], parts = selector.split(","); + parts.forEach(function(p) { + p = p.trim(); + if (this.selectorNeedsScoping(p, scopeSelector)) { + p = strict && !p.match(polyfillHostNoCombinator) ? this.applyStrictSelectorScope(p, scopeSelector) : this.applySelectorScope(p, scopeSelector); + } + r.push(p); + }, this); + return r.join(", "); + }, + selectorNeedsScoping: function(selector, scopeSelector) { + if (Array.isArray(scopeSelector)) { + return true; + } + var re = this.makeScopeMatcher(scopeSelector); + return !selector.match(re); + }, + makeScopeMatcher: function(scopeSelector) { + scopeSelector = scopeSelector.replace(/\[/g, "\\[").replace(/\]/g, "\\]"); + return new RegExp("^(" + scopeSelector + ")" + selectorReSuffix, "m"); + }, + applySelectorScope: function(selector, selectorScope) { + return Array.isArray(selectorScope) ? this.applySelectorScopeList(selector, selectorScope) : this.applySimpleSelectorScope(selector, selectorScope); + }, + applySelectorScopeList: function(selector, scopeSelectorList) { + var r = []; + for (var i = 0, s; s = scopeSelectorList[i]; i++) { + r.push(this.applySimpleSelectorScope(selector, s)); + } + return r.join(", "); + }, + applySimpleSelectorScope: function(selector, scopeSelector) { + if (selector.match(polyfillHostRe)) { + selector = selector.replace(polyfillHostNoCombinator, scopeSelector); + return selector.replace(polyfillHostRe, scopeSelector + " "); + } else { + return scopeSelector + " " + selector; + } + }, + applyStrictSelectorScope: function(selector, scopeSelector) { + scopeSelector = scopeSelector.replace(/\[is=([^\]]*)\]/g, "$1"); + var splits = [ " ", ">", "+", "~" ], scoped = selector, attrName = "[" + scopeSelector + "]"; + splits.forEach(function(sep) { + var parts = scoped.split(sep); + scoped = parts.map(function(p) { + var t = p.trim().replace(polyfillHostRe, ""); + if (t && splits.indexOf(t) < 0 && t.indexOf(attrName) < 0) { + p = t.replace(/([^:]*)(:*)(.*)/, "$1" + attrName + "$2$3"); + } + return p; + }).join(sep); + }); + return scoped; + }, + insertPolyfillHostInCssText: function(selector) { + return selector.replace(colonHostContextRe, polyfillHostContext).replace(colonHostRe, polyfillHost); + }, + propertiesFromRule: function(rule) { + var cssText = rule.style.cssText; + if (rule.style.content && !rule.style.content.match(/['"]+|attr/)) { + cssText = cssText.replace(/content:[^;]*;/g, "content: '" + rule.style.content + "';"); + } + var style = rule.style; + for (var i in style) { + if (style[i] === "initial") { + cssText += i + ": initial; "; + } + } + return cssText; + }, + replaceTextInStyles: function(styles, action) { + if (styles && action) { + if (!(styles instanceof Array)) { + styles = [ styles ]; + } + Array.prototype.forEach.call(styles, function(s) { + s.textContent = action.call(this, s.textContent); + }, this); + } + }, + addCssToDocument: function(cssText, name) { + if (cssText.match("@import")) { + addOwnSheet(cssText, name); + } else { + addCssToDocument(cssText); + } + } + }; + var selectorRe = /([^{]*)({[\s\S]*?})/gim, cssCommentRe = /\/\*[^*]*\*+([^\/*][^*]*\*+)*\//gim, cssCommentNextSelectorRe = /\/\*\s*@polyfill ([^*]*\*+([^\/*][^*]*\*+)*\/)([^{]*?){/gim, cssContentNextSelectorRe = /polyfill-next-selector[^}]*content\:[\s]*?['"](.*?)['"][;\s]*}([^{]*?){/gim, cssCommentRuleRe = /\/\*\s@polyfill-rule([^*]*\*+([^\/*][^*]*\*+)*)\//gim, cssContentRuleRe = /(polyfill-rule)[^}]*(content\:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim, cssCommentUnscopedRuleRe = /\/\*\s@polyfill-unscoped-rule([^*]*\*+([^\/*][^*]*\*+)*)\//gim, cssContentUnscopedRuleRe = /(polyfill-unscoped-rule)[^}]*(content\:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim, cssPseudoRe = /::(x-[^\s{,(]*)/gim, cssPartRe = /::part\(([^)]*)\)/gim, polyfillHost = "-shadowcsshost", polyfillHostContext = "-shadowcsscontext", parenSuffix = ")(?:\\((" + "(?:\\([^)(]*\\)|[^)(]*)+?" + ")\\))?([^,{]*)"; + var cssColonHostRe = new RegExp("(" + polyfillHost + parenSuffix, "gim"), cssColonHostContextRe = new RegExp("(" + polyfillHostContext + parenSuffix, "gim"), selectorReSuffix = "([>\\s~+[.,{:][\\s\\S]*)?$", colonHostRe = /\:host/gim, colonHostContextRe = /\:host-context/gim, polyfillHostNoCombinator = polyfillHost + "-no-combinator", polyfillHostRe = new RegExp(polyfillHost, "gim"), polyfillHostContextRe = new RegExp(polyfillHostContext, "gim"), shadowDOMSelectorsRe = [ />>>/g, /::shadow/g, /::content/g, /\/deep\//g, /\/shadow\//g, /\/shadow-deep\//g, /\^\^/g, /\^(?!=)/g ]; + function stylesToCssText(styles, preserveComments) { + var cssText = ""; + Array.prototype.forEach.call(styles, function(s) { + cssText += s.textContent + "\n\n"; + }); + if (!preserveComments) { + cssText = cssText.replace(cssCommentRe, ""); + } + return cssText; + } + function cssTextToStyle(cssText) { + var style = document.createElement("style"); + style.textContent = cssText; + return style; + } + function cssToRules(cssText) { + var style = cssTextToStyle(cssText); + document.head.appendChild(style); + var rules = []; + if (style.sheet) { + try { + rules = style.sheet.cssRules; + } catch (e) {} + } else { + console.warn("sheet not found", style); + } + style.parentNode.removeChild(style); + return rules; + } + var frame = document.createElement("iframe"); + frame.style.display = "none"; + function initFrame() { + frame.initialized = true; + document.body.appendChild(frame); + var doc = frame.contentDocument; + var base = doc.createElement("base"); + base.href = document.baseURI; + doc.head.appendChild(base); + } + function inFrame(fn) { + if (!frame.initialized) { + initFrame(); + } + document.body.appendChild(frame); + fn(frame.contentDocument); + document.body.removeChild(frame); + } + var isChrome = navigator.userAgent.match("Chrome"); + function withCssRules(cssText, callback) { + if (!callback) { + return; + } + var rules; + if (cssText.match("@import") && isChrome) { + var style = cssTextToStyle(cssText); + inFrame(function(doc) { + doc.head.appendChild(style.impl); + rules = Array.prototype.slice.call(style.sheet.cssRules, 0); + callback(rules); + }); + } else { + rules = cssToRules(cssText); + callback(rules); + } + } + function rulesToCss(cssRules) { + for (var i = 0, css = []; i < cssRules.length; i++) { + css.push(cssRules[i].cssText); + } + return css.join("\n\n"); + } + function addCssToDocument(cssText) { + if (cssText) { + getSheet().appendChild(document.createTextNode(cssText)); + } + } + function addOwnSheet(cssText, name) { + var style = cssTextToStyle(cssText); + style.setAttribute(name, ""); + style.setAttribute(SHIMMED_ATTRIBUTE, ""); + document.head.appendChild(style); + } + var SHIM_ATTRIBUTE = "shim-shadowdom"; + var SHIMMED_ATTRIBUTE = "shim-shadowdom-css"; + var NO_SHIM_ATTRIBUTE = "no-shim"; + var sheet; + function getSheet() { + if (!sheet) { + sheet = document.createElement("style"); + sheet.setAttribute(SHIMMED_ATTRIBUTE, ""); + sheet[SHIMMED_ATTRIBUTE] = true; + } + return sheet; + } + if (window.ShadowDOMPolyfill) { + addCssToDocument("style { display: none !important; }\n"); + var doc = ShadowDOMPolyfill.wrap(document); + var head = doc.querySelector("head"); + head.insertBefore(getSheet(), head.childNodes[0]); + document.addEventListener("DOMContentLoaded", function() { + var urlResolver = scope.urlResolver; + if (window.HTMLImports && !HTMLImports.useNative) { + var SHIM_SHEET_SELECTOR = "link[rel=stylesheet]" + "[" + SHIM_ATTRIBUTE + "]"; + var SHIM_STYLE_SELECTOR = "style[" + SHIM_ATTRIBUTE + "]"; + HTMLImports.importer.documentPreloadSelectors += "," + SHIM_SHEET_SELECTOR; + HTMLImports.importer.importsPreloadSelectors += "," + SHIM_SHEET_SELECTOR; + HTMLImports.parser.documentSelectors = [ HTMLImports.parser.documentSelectors, SHIM_SHEET_SELECTOR, SHIM_STYLE_SELECTOR ].join(","); + var originalParseGeneric = HTMLImports.parser.parseGeneric; + HTMLImports.parser.parseGeneric = function(elt) { + if (elt[SHIMMED_ATTRIBUTE]) { + return; + } + var style = elt.__importElement || elt; + if (!style.hasAttribute(SHIM_ATTRIBUTE)) { + originalParseGeneric.call(this, elt); + return; + } + if (elt.__resource) { + style = elt.ownerDocument.createElement("style"); + style.textContent = elt.__resource; + } + HTMLImports.path.resolveUrlsInStyle(style, elt.href); + style.textContent = ShadowCSS.shimStyle(style); + style.removeAttribute(SHIM_ATTRIBUTE, ""); + style.setAttribute(SHIMMED_ATTRIBUTE, ""); + style[SHIMMED_ATTRIBUTE] = true; + if (style.parentNode !== head) { + if (elt.parentNode === head) { + head.replaceChild(style, elt); + } else { + this.addElementToDocument(style); + } + } + style.__importParsed = true; + this.markParsingComplete(elt); + this.parseNext(); + }; + var hasResource = HTMLImports.parser.hasResource; + HTMLImports.parser.hasResource = function(node) { + if (node.localName === "link" && node.rel === "stylesheet" && node.hasAttribute(SHIM_ATTRIBUTE)) { + return node.__resource; + } else { + return hasResource.call(this, node); + } + }; + } + }); + } + scope.ShadowCSS = ShadowCSS; + })(window.WebComponents); +} + +(function(scope) { + if (window.ShadowDOMPolyfill) { + window.wrap = ShadowDOMPolyfill.wrapIfNeeded; + window.unwrap = ShadowDOMPolyfill.unwrapIfNeeded; + } else { + window.wrap = window.unwrap = function(n) { + return n; + }; + } +})(window.WebComponents); + +(function(scope) { + "use strict"; + var hasWorkingUrl = false; + if (!scope.forceJURL) { + try { + var u = new URL("b", "http://a"); + u.pathname = "c%20d"; + hasWorkingUrl = u.href === "http://a/c%20d"; + } catch (e) {} + } + if (hasWorkingUrl) return; + var relative = Object.create(null); + relative["ftp"] = 21; + relative["file"] = 0; + relative["gopher"] = 70; + relative["http"] = 80; + relative["https"] = 443; + relative["ws"] = 80; + relative["wss"] = 443; + var relativePathDotMapping = Object.create(null); + relativePathDotMapping["%2e"] = "."; + relativePathDotMapping[".%2e"] = ".."; + relativePathDotMapping["%2e."] = ".."; + relativePathDotMapping["%2e%2e"] = ".."; + function isRelativeScheme(scheme) { + return relative[scheme] !== undefined; + } + function invalid() { + clear.call(this); + this._isInvalid = true; + } + function IDNAToASCII(h) { + if ("" == h) { + invalid.call(this); + } + return h.toLowerCase(); + } + function percentEscape(c) { + var unicode = c.charCodeAt(0); + if (unicode > 32 && unicode < 127 && [ 34, 35, 60, 62, 63, 96 ].indexOf(unicode) == -1) { + return c; + } + return encodeURIComponent(c); + } + function percentEscapeQuery(c) { + var unicode = c.charCodeAt(0); + if (unicode > 32 && unicode < 127 && [ 34, 35, 60, 62, 96 ].indexOf(unicode) == -1) { + return c; + } + return encodeURIComponent(c); + } + var EOF = undefined, ALPHA = /[a-zA-Z]/, ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/; + function parse(input, stateOverride, base) { + function err(message) { + errors.push(message); + } + var state = stateOverride || "scheme start", cursor = 0, buffer = "", seenAt = false, seenBracket = false, errors = []; + loop: while ((input[cursor - 1] != EOF || cursor == 0) && !this._isInvalid) { + var c = input[cursor]; + switch (state) { + case "scheme start": + if (c && ALPHA.test(c)) { + buffer += c.toLowerCase(); + state = "scheme"; + } else if (!stateOverride) { + buffer = ""; + state = "no scheme"; + continue; + } else { + err("Invalid scheme."); + break loop; + } + break; + + case "scheme": + if (c && ALPHANUMERIC.test(c)) { + buffer += c.toLowerCase(); + } else if (":" == c) { + this._scheme = buffer; + buffer = ""; + if (stateOverride) { + break loop; + } + if (isRelativeScheme(this._scheme)) { + this._isRelative = true; + } + if ("file" == this._scheme) { + state = "relative"; + } else if (this._isRelative && base && base._scheme == this._scheme) { + state = "relative or authority"; + } else if (this._isRelative) { + state = "authority first slash"; + } else { + state = "scheme data"; + } + } else if (!stateOverride) { + buffer = ""; + cursor = 0; + state = "no scheme"; + continue; + } else if (EOF == c) { + break loop; + } else { + err("Code point not allowed in scheme: " + c); + break loop; + } + break; + + case "scheme data": + if ("?" == c) { + this._query = "?"; + state = "query"; + } else if ("#" == c) { + this._fragment = "#"; + state = "fragment"; + } else { + if (EOF != c && "\t" != c && "\n" != c && "\r" != c) { + this._schemeData += percentEscape(c); + } + } + break; + + case "no scheme": + if (!base || !isRelativeScheme(base._scheme)) { + err("Missing scheme."); + invalid.call(this); + } else { + state = "relative"; + continue; + } + break; + + case "relative or authority": + if ("/" == c && "/" == input[cursor + 1]) { + state = "authority ignore slashes"; + } else { + err("Expected /, got: " + c); + state = "relative"; + continue; + } + break; + + case "relative": + this._isRelative = true; + if ("file" != this._scheme) this._scheme = base._scheme; + if (EOF == c) { + this._host = base._host; + this._port = base._port; + this._path = base._path.slice(); + this._query = base._query; + this._username = base._username; + this._password = base._password; + break loop; + } else if ("/" == c || "\\" == c) { + if ("\\" == c) err("\\ is an invalid code point."); + state = "relative slash"; + } else if ("?" == c) { + this._host = base._host; + this._port = base._port; + this._path = base._path.slice(); + this._query = "?"; + this._username = base._username; + this._password = base._password; + state = "query"; + } else if ("#" == c) { + this._host = base._host; + this._port = base._port; + this._path = base._path.slice(); + this._query = base._query; + this._fragment = "#"; + this._username = base._username; + this._password = base._password; + state = "fragment"; + } else { + var nextC = input[cursor + 1]; + var nextNextC = input[cursor + 2]; + if ("file" != this._scheme || !ALPHA.test(c) || nextC != ":" && nextC != "|" || EOF != nextNextC && "/" != nextNextC && "\\" != nextNextC && "?" != nextNextC && "#" != nextNextC) { + this._host = base._host; + this._port = base._port; + this._username = base._username; + this._password = base._password; + this._path = base._path.slice(); + this._path.pop(); + } + state = "relative path"; + continue; + } + break; + + case "relative slash": + if ("/" == c || "\\" == c) { + if ("\\" == c) { + err("\\ is an invalid code point."); + } + if ("file" == this._scheme) { + state = "file host"; + } else { + state = "authority ignore slashes"; + } + } else { + if ("file" != this._scheme) { + this._host = base._host; + this._port = base._port; + this._username = base._username; + this._password = base._password; + } + state = "relative path"; + continue; + } + break; + + case "authority first slash": + if ("/" == c) { + state = "authority second slash"; + } else { + err("Expected '/', got: " + c); + state = "authority ignore slashes"; + continue; + } + break; + + case "authority second slash": + state = "authority ignore slashes"; + if ("/" != c) { + err("Expected '/', got: " + c); + continue; + } + break; + + case "authority ignore slashes": + if ("/" != c && "\\" != c) { + state = "authority"; + continue; + } else { + err("Expected authority, got: " + c); + } + break; + + case "authority": + if ("@" == c) { + if (seenAt) { + err("@ already seen."); + buffer += "%40"; + } + seenAt = true; + for (var i = 0; i < buffer.length; i++) { + var cp = buffer[i]; + if ("\t" == cp || "\n" == cp || "\r" == cp) { + err("Invalid whitespace in authority."); + continue; + } + if (":" == cp && null === this._password) { + this._password = ""; + continue; + } + var tempC = percentEscape(cp); + null !== this._password ? this._password += tempC : this._username += tempC; + } + buffer = ""; + } else if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c) { + cursor -= buffer.length; + buffer = ""; + state = "host"; + continue; + } else { + buffer += c; + } + break; + + case "file host": + if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c) { + if (buffer.length == 2 && ALPHA.test(buffer[0]) && (buffer[1] == ":" || buffer[1] == "|")) { + state = "relative path"; + } else if (buffer.length == 0) { + state = "relative path start"; + } else { + this._host = IDNAToASCII.call(this, buffer); + buffer = ""; + state = "relative path start"; + } + continue; + } else if ("\t" == c || "\n" == c || "\r" == c) { + err("Invalid whitespace in file host."); + } else { + buffer += c; + } + break; + + case "host": + case "hostname": + if (":" == c && !seenBracket) { + this._host = IDNAToASCII.call(this, buffer); + buffer = ""; + state = "port"; + if ("hostname" == stateOverride) { + break loop; + } + } else if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c) { + this._host = IDNAToASCII.call(this, buffer); + buffer = ""; + state = "relative path start"; + if (stateOverride) { + break loop; + } + continue; + } else if ("\t" != c && "\n" != c && "\r" != c) { + if ("[" == c) { + seenBracket = true; + } else if ("]" == c) { + seenBracket = false; + } + buffer += c; + } else { + err("Invalid code point in host/hostname: " + c); + } + break; + + case "port": + if (/[0-9]/.test(c)) { + buffer += c; + } else if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c || stateOverride) { + if ("" != buffer) { + var temp = parseInt(buffer, 10); + if (temp != relative[this._scheme]) { + this._port = temp + ""; + } + buffer = ""; + } + if (stateOverride) { + break loop; + } + state = "relative path start"; + continue; + } else if ("\t" == c || "\n" == c || "\r" == c) { + err("Invalid code point in port: " + c); + } else { + invalid.call(this); + } + break; + + case "relative path start": + if ("\\" == c) err("'\\' not allowed in path."); + state = "relative path"; + if ("/" != c && "\\" != c) { + continue; + } + break; + + case "relative path": + if (EOF == c || "/" == c || "\\" == c || !stateOverride && ("?" == c || "#" == c)) { + if ("\\" == c) { + err("\\ not allowed in relative path."); + } + var tmp; + if (tmp = relativePathDotMapping[buffer.toLowerCase()]) { + buffer = tmp; + } + if (".." == buffer) { + this._path.pop(); + if ("/" != c && "\\" != c) { + this._path.push(""); + } + } else if ("." == buffer && "/" != c && "\\" != c) { + this._path.push(""); + } else if ("." != buffer) { + if ("file" == this._scheme && this._path.length == 0 && buffer.length == 2 && ALPHA.test(buffer[0]) && buffer[1] == "|") { + buffer = buffer[0] + ":"; + } + this._path.push(buffer); + } + buffer = ""; + if ("?" == c) { + this._query = "?"; + state = "query"; + } else if ("#" == c) { + this._fragment = "#"; + state = "fragment"; + } + } else if ("\t" != c && "\n" != c && "\r" != c) { + buffer += percentEscape(c); + } + break; + + case "query": + if (!stateOverride && "#" == c) { + this._fragment = "#"; + state = "fragment"; + } else if (EOF != c && "\t" != c && "\n" != c && "\r" != c) { + this._query += percentEscapeQuery(c); + } + break; + + case "fragment": + if (EOF != c && "\t" != c && "\n" != c && "\r" != c) { + this._fragment += c; + } + break; + } + cursor++; + } + } + function clear() { + this._scheme = ""; + this._schemeData = ""; + this._username = ""; + this._password = null; + this._host = ""; + this._port = ""; + this._path = []; + this._query = ""; + this._fragment = ""; + this._isInvalid = false; + this._isRelative = false; + } + function jURL(url, base) { + if (base !== undefined && !(base instanceof jURL)) base = new jURL(String(base)); + this._url = url; + clear.call(this); + var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, ""); + parse.call(this, input, null, base); + } + jURL.prototype = { + toString: function() { + return this.href; + }, + get href() { + if (this._isInvalid) return this._url; + var authority = ""; + if ("" != this._username || null != this._password) { + authority = this._username + (null != this._password ? ":" + this._password : "") + "@"; + } + return this.protocol + (this._isRelative ? "//" + authority + this.host : "") + this.pathname + this._query + this._fragment; + }, + set href(href) { + clear.call(this); + parse.call(this, href); + }, + get protocol() { + return this._scheme + ":"; + }, + set protocol(protocol) { + if (this._isInvalid) return; + parse.call(this, protocol + ":", "scheme start"); + }, + get host() { + return this._isInvalid ? "" : this._port ? this._host + ":" + this._port : this._host; + }, + set host(host) { + if (this._isInvalid || !this._isRelative) return; + parse.call(this, host, "host"); + }, + get hostname() { + return this._host; + }, + set hostname(hostname) { + if (this._isInvalid || !this._isRelative) return; + parse.call(this, hostname, "hostname"); + }, + get port() { + return this._port; + }, + set port(port) { + if (this._isInvalid || !this._isRelative) return; + parse.call(this, port, "port"); + }, + get pathname() { + return this._isInvalid ? "" : this._isRelative ? "/" + this._path.join("/") : this._schemeData; + }, + set pathname(pathname) { + if (this._isInvalid || !this._isRelative) return; + this._path = []; + parse.call(this, pathname, "relative path start"); + }, + get search() { + return this._isInvalid || !this._query || "?" == this._query ? "" : this._query; + }, + set search(search) { + if (this._isInvalid || !this._isRelative) return; + this._query = "?"; + if ("?" == search[0]) search = search.slice(1); + parse.call(this, search, "query"); + }, + get hash() { + return this._isInvalid || !this._fragment || "#" == this._fragment ? "" : this._fragment; + }, + set hash(hash) { + if (this._isInvalid) return; + this._fragment = "#"; + if ("#" == hash[0]) hash = hash.slice(1); + parse.call(this, hash, "fragment"); + }, + get origin() { + var host; + if (this._isInvalid || !this._scheme) { + return ""; + } + switch (this._scheme) { + case "data": + case "file": + case "javascript": + case "mailto": + return "null"; + } + host = this.host; + if (!host) { + return ""; + } + return this._scheme + "://" + host; + } + }; + var OriginalURL = scope.URL; + if (OriginalURL) { + jURL.createObjectURL = function(blob) { + return OriginalURL.createObjectURL.apply(OriginalURL, arguments); + }; + jURL.revokeObjectURL = function(url) { + OriginalURL.revokeObjectURL(url); + }; + } + scope.URL = jURL; +})(self); + +(function(global) { + if (global.JsMutationObserver) { + return; + } + var registrationsTable = new WeakMap(); + var setImmediate; + if (/Trident|Edge/.test(navigator.userAgent)) { + setImmediate = setTimeout; + } else if (window.setImmediate) { + setImmediate = window.setImmediate; + } else { + var setImmediateQueue = []; + var sentinel = String(Math.random()); + window.addEventListener("message", function(e) { + if (e.data === sentinel) { + var queue = setImmediateQueue; + setImmediateQueue = []; + queue.forEach(function(func) { + func(); + }); + } + }); + setImmediate = function(func) { + setImmediateQueue.push(func); + window.postMessage(sentinel, "*"); + }; + } + var isScheduled = false; + var scheduledObservers = []; + function scheduleCallback(observer) { + scheduledObservers.push(observer); + if (!isScheduled) { + isScheduled = true; + setImmediate(dispatchCallbacks); + } + } + function wrapIfNeeded(node) { + return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(node) || node; + } + function dispatchCallbacks() { + isScheduled = false; + var observers = scheduledObservers; + scheduledObservers = []; + observers.sort(function(o1, o2) { + return o1.uid_ - o2.uid_; + }); + var anyNonEmpty = false; + observers.forEach(function(observer) { + var queue = observer.takeRecords(); + removeTransientObserversFor(observer); + if (queue.length) { + observer.callback_(queue, observer); + anyNonEmpty = true; + } + }); + if (anyNonEmpty) dispatchCallbacks(); + } + function removeTransientObserversFor(observer) { + observer.nodes_.forEach(function(node) { + var registrations = registrationsTable.get(node); + if (!registrations) return; + registrations.forEach(function(registration) { + if (registration.observer === observer) registration.removeTransientObservers(); + }); + }); + } + function forEachAncestorAndObserverEnqueueRecord(target, callback) { + for (var node = target; node; node = node.parentNode) { + var registrations = registrationsTable.get(node); + if (registrations) { + for (var j = 0; j < registrations.length; j++) { + var registration = registrations[j]; + var options = registration.options; + if (node !== target && !options.subtree) continue; + var record = callback(options); + if (record) registration.enqueue(record); + } + } + } + } + var uidCounter = 0; + function JsMutationObserver(callback) { + this.callback_ = callback; + this.nodes_ = []; + this.records_ = []; + this.uid_ = ++uidCounter; + } + JsMutationObserver.prototype = { + observe: function(target, options) { + target = wrapIfNeeded(target); + if (!options.childList && !options.attributes && !options.characterData || options.attributeOldValue && !options.attributes || options.attributeFilter && options.attributeFilter.length && !options.attributes || options.characterDataOldValue && !options.characterData) { + throw new SyntaxError(); + } + var registrations = registrationsTable.get(target); + if (!registrations) registrationsTable.set(target, registrations = []); + var registration; + for (var i = 0; i < registrations.length; i++) { + if (registrations[i].observer === this) { + registration = registrations[i]; + registration.removeListeners(); + registration.options = options; + break; + } + } + if (!registration) { + registration = new Registration(this, target, options); + registrations.push(registration); + this.nodes_.push(target); + } + registration.addListeners(); + }, + disconnect: function() { + this.nodes_.forEach(function(node) { + var registrations = registrationsTable.get(node); + for (var i = 0; i < registrations.length; i++) { + var registration = registrations[i]; + if (registration.observer === this) { + registration.removeListeners(); + registrations.splice(i, 1); + break; + } + } + }, this); + this.records_ = []; + }, + takeRecords: function() { + var copyOfRecords = this.records_; + this.records_ = []; + return copyOfRecords; + } + }; + function MutationRecord(type, target) { + this.type = type; + this.target = target; + this.addedNodes = []; + this.removedNodes = []; + this.previousSibling = null; + this.nextSibling = null; + this.attributeName = null; + this.attributeNamespace = null; + this.oldValue = null; + } + function copyMutationRecord(original) { + var record = new MutationRecord(original.type, original.target); + record.addedNodes = original.addedNodes.slice(); + record.removedNodes = original.removedNodes.slice(); + record.previousSibling = original.previousSibling; + record.nextSibling = original.nextSibling; + record.attributeName = original.attributeName; + record.attributeNamespace = original.attributeNamespace; + record.oldValue = original.oldValue; + return record; + } + var currentRecord, recordWithOldValue; + function getRecord(type, target) { + return currentRecord = new MutationRecord(type, target); + } + function getRecordWithOldValue(oldValue) { + if (recordWithOldValue) return recordWithOldValue; + recordWithOldValue = copyMutationRecord(currentRecord); + recordWithOldValue.oldValue = oldValue; + return recordWithOldValue; + } + function clearRecords() { + currentRecord = recordWithOldValue = undefined; + } + function recordRepresentsCurrentMutation(record) { + return record === recordWithOldValue || record === currentRecord; + } + function selectRecord(lastRecord, newRecord) { + if (lastRecord === newRecord) return lastRecord; + if (recordWithOldValue && recordRepresentsCurrentMutation(lastRecord)) return recordWithOldValue; + return null; + } + function Registration(observer, target, options) { + this.observer = observer; + this.target = target; + this.options = options; + this.transientObservedNodes = []; + } + Registration.prototype = { + enqueue: function(record) { + var records = this.observer.records_; + var length = records.length; + if (records.length > 0) { + var lastRecord = records[length - 1]; + var recordToReplaceLast = selectRecord(lastRecord, record); + if (recordToReplaceLast) { + records[length - 1] = recordToReplaceLast; + return; + } + } else { + scheduleCallback(this.observer); + } + records[length] = record; + }, + addListeners: function() { + this.addListeners_(this.target); + }, + addListeners_: function(node) { + var options = this.options; + if (options.attributes) node.addEventListener("DOMAttrModified", this, true); + if (options.characterData) node.addEventListener("DOMCharacterDataModified", this, true); + if (options.childList) node.addEventListener("DOMNodeInserted", this, true); + if (options.childList || options.subtree) node.addEventListener("DOMNodeRemoved", this, true); + }, + removeListeners: function() { + this.removeListeners_(this.target); + }, + removeListeners_: function(node) { + var options = this.options; + if (options.attributes) node.removeEventListener("DOMAttrModified", this, true); + if (options.characterData) node.removeEventListener("DOMCharacterDataModified", this, true); + if (options.childList) node.removeEventListener("DOMNodeInserted", this, true); + if (options.childList || options.subtree) node.removeEventListener("DOMNodeRemoved", this, true); + }, + addTransientObserver: function(node) { + if (node === this.target) return; + this.addListeners_(node); + this.transientObservedNodes.push(node); + var registrations = registrationsTable.get(node); + if (!registrations) registrationsTable.set(node, registrations = []); + registrations.push(this); + }, + removeTransientObservers: function() { + var transientObservedNodes = this.transientObservedNodes; + this.transientObservedNodes = []; + transientObservedNodes.forEach(function(node) { + this.removeListeners_(node); + var registrations = registrationsTable.get(node); + for (var i = 0; i < registrations.length; i++) { + if (registrations[i] === this) { + registrations.splice(i, 1); + break; + } + } + }, this); + }, + handleEvent: function(e) { + e.stopImmediatePropagation(); + switch (e.type) { + case "DOMAttrModified": + var name = e.attrName; + var namespace = e.relatedNode.namespaceURI; + var target = e.target; + var record = new getRecord("attributes", target); + record.attributeName = name; + record.attributeNamespace = namespace; + var oldValue = e.attrChange === MutationEvent.ADDITION ? null : e.prevValue; + forEachAncestorAndObserverEnqueueRecord(target, function(options) { + if (!options.attributes) return; + if (options.attributeFilter && options.attributeFilter.length && options.attributeFilter.indexOf(name) === -1 && options.attributeFilter.indexOf(namespace) === -1) { + return; + } + if (options.attributeOldValue) return getRecordWithOldValue(oldValue); + return record; + }); + break; + + case "DOMCharacterDataModified": + var target = e.target; + var record = getRecord("characterData", target); + var oldValue = e.prevValue; + forEachAncestorAndObserverEnqueueRecord(target, function(options) { + if (!options.characterData) return; + if (options.characterDataOldValue) return getRecordWithOldValue(oldValue); + return record; + }); + break; + + case "DOMNodeRemoved": + this.addTransientObserver(e.target); + + case "DOMNodeInserted": + var changedNode = e.target; + var addedNodes, removedNodes; + if (e.type === "DOMNodeInserted") { + addedNodes = [ changedNode ]; + removedNodes = []; + } else { + addedNodes = []; + removedNodes = [ changedNode ]; + } + var previousSibling = changedNode.previousSibling; + var nextSibling = changedNode.nextSibling; + var record = getRecord("childList", e.target.parentNode); + record.addedNodes = addedNodes; + record.removedNodes = removedNodes; + record.previousSibling = previousSibling; + record.nextSibling = nextSibling; + forEachAncestorAndObserverEnqueueRecord(e.relatedNode, function(options) { + if (!options.childList) return; + return record; + }); + } + clearRecords(); + } + }; + global.JsMutationObserver = JsMutationObserver; + if (!global.MutationObserver) { + global.MutationObserver = JsMutationObserver; + JsMutationObserver._isPolyfilled = true; + } +})(self); + +(function(scope) { + "use strict"; + if (!(window.performance && window.performance.now)) { + var start = Date.now(); + window.performance = { + now: function() { + return Date.now() - start; + } + }; + } + if (!window.requestAnimationFrame) { + window.requestAnimationFrame = function() { + var nativeRaf = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame; + return nativeRaf ? function(callback) { + return nativeRaf(function() { + callback(performance.now()); + }); + } : function(callback) { + return window.setTimeout(callback, 1e3 / 60); + }; + }(); + } + if (!window.cancelAnimationFrame) { + window.cancelAnimationFrame = function() { + return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function(id) { + clearTimeout(id); + }; + }(); + } + var workingDefaultPrevented = function() { + var e = document.createEvent("Event"); + e.initEvent("foo", true, true); + e.preventDefault(); + return e.defaultPrevented; + }(); + if (!workingDefaultPrevented) { + var origPreventDefault = Event.prototype.preventDefault; + Event.prototype.preventDefault = function() { + if (!this.cancelable) { + return; + } + origPreventDefault.call(this); + Object.defineProperty(this, "defaultPrevented", { + get: function() { + return true; + }, + configurable: true + }); + }; + } + var isIE = /Trident/.test(navigator.userAgent); + if (!window.CustomEvent || isIE && typeof window.CustomEvent !== "function") { + window.CustomEvent = function(inType, params) { + params = params || {}; + var e = document.createEvent("CustomEvent"); + e.initCustomEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable), params.detail); + return e; + }; + window.CustomEvent.prototype = window.Event.prototype; + } + if (!window.Event || isIE && typeof window.Event !== "function") { + var origEvent = window.Event; + window.Event = function(inType, params) { + params = params || {}; + var e = document.createEvent("Event"); + e.initEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable)); + return e; + }; + window.Event.prototype = origEvent.prototype; + } +})(window.WebComponents); + +window.HTMLImports = window.HTMLImports || { + flags: {} +}; + +(function(scope) { + var IMPORT_LINK_TYPE = "import"; + var useNative = Boolean(IMPORT_LINK_TYPE in document.createElement("link")); + var hasShadowDOMPolyfill = Boolean(window.ShadowDOMPolyfill); + var wrap = function(node) { + return hasShadowDOMPolyfill ? window.ShadowDOMPolyfill.wrapIfNeeded(node) : node; + }; + var rootDocument = wrap(document); + var currentScriptDescriptor = { + get: function() { + var script = window.HTMLImports.currentScript || document.currentScript || (document.readyState !== "complete" ? document.scripts[document.scripts.length - 1] : null); + return wrap(script); + }, + configurable: true + }; + Object.defineProperty(document, "_currentScript", currentScriptDescriptor); + Object.defineProperty(rootDocument, "_currentScript", currentScriptDescriptor); + var isIE = /Trident/.test(navigator.userAgent); + function whenReady(callback, doc) { + doc = doc || rootDocument; + whenDocumentReady(function() { + watchImportsLoad(callback, doc); + }, doc); + } + var requiredReadyState = isIE ? "complete" : "interactive"; + var READY_EVENT = "readystatechange"; + function isDocumentReady(doc) { + return doc.readyState === "complete" || doc.readyState === requiredReadyState; + } + function whenDocumentReady(callback, doc) { + if (!isDocumentReady(doc)) { + var checkReady = function() { + if (doc.readyState === "complete" || doc.readyState === requiredReadyState) { + doc.removeEventListener(READY_EVENT, checkReady); + whenDocumentReady(callback, doc); + } + }; + doc.addEventListener(READY_EVENT, checkReady); + } else if (callback) { + callback(); + } + } + function markTargetLoaded(event) { + event.target.__loaded = true; + } + function watchImportsLoad(callback, doc) { + var imports = doc.querySelectorAll("link[rel=import]"); + var parsedCount = 0, importCount = imports.length, newImports = [], errorImports = []; + function checkDone() { + if (parsedCount == importCount && callback) { + callback({ + allImports: imports, + loadedImports: newImports, + errorImports: errorImports + }); + } + } + function loadedImport(e) { + markTargetLoaded(e); + newImports.push(this); + parsedCount++; + checkDone(); + } + function errorLoadingImport(e) { + errorImports.push(this); + parsedCount++; + checkDone(); + } + if (importCount) { + for (var i = 0, imp; i < importCount && (imp = imports[i]); i++) { + if (isImportLoaded(imp)) { + newImports.push(this); + parsedCount++; + checkDone(); + } else { + imp.addEventListener("load", loadedImport); + imp.addEventListener("error", errorLoadingImport); + } + } + } else { + checkDone(); + } + } + function isImportLoaded(link) { + return useNative ? link.__loaded || link.import && link.import.readyState !== "loading" : link.__importParsed; + } + if (useNative) { + new MutationObserver(function(mxns) { + for (var i = 0, l = mxns.length, m; i < l && (m = mxns[i]); i++) { + if (m.addedNodes) { + handleImports(m.addedNodes); + } + } + }).observe(document.head, { + childList: true + }); + function handleImports(nodes) { + for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { + if (isImport(n)) { + handleImport(n); + } + } + } + function isImport(element) { + return element.localName === "link" && element.rel === "import"; + } + function handleImport(element) { + var loaded = element.import; + if (loaded) { + markTargetLoaded({ + target: element + }); + } else { + element.addEventListener("load", markTargetLoaded); + element.addEventListener("error", markTargetLoaded); + } + } + (function() { + if (document.readyState === "loading") { + var imports = document.querySelectorAll("link[rel=import]"); + for (var i = 0, l = imports.length, imp; i < l && (imp = imports[i]); i++) { + handleImport(imp); + } + } + })(); + } + whenReady(function(detail) { + window.HTMLImports.ready = true; + window.HTMLImports.readyTime = new Date().getTime(); + var evt = rootDocument.createEvent("CustomEvent"); + evt.initCustomEvent("HTMLImportsLoaded", true, true, detail); + rootDocument.dispatchEvent(evt); + }); + scope.IMPORT_LINK_TYPE = IMPORT_LINK_TYPE; + scope.useNative = useNative; + scope.rootDocument = rootDocument; + scope.whenReady = whenReady; + scope.isIE = isIE; +})(window.HTMLImports); + +(function(scope) { + var modules = []; + var addModule = function(module) { + modules.push(module); + }; + var initializeModules = function() { + modules.forEach(function(module) { + module(scope); + }); + }; + scope.addModule = addModule; + scope.initializeModules = initializeModules; +})(window.HTMLImports); + +window.HTMLImports.addModule(function(scope) { + var CSS_URL_REGEXP = /(url\()([^)]*)(\))/g; + var CSS_IMPORT_REGEXP = /(@import[\s]+(?!url\())([^;]*)(;)/g; + var path = { + resolveUrlsInStyle: function(style, linkUrl) { + var doc = style.ownerDocument; + var resolver = doc.createElement("a"); + style.textContent = this.resolveUrlsInCssText(style.textContent, linkUrl, resolver); + return style; + }, + resolveUrlsInCssText: function(cssText, linkUrl, urlObj) { + var r = this.replaceUrls(cssText, urlObj, linkUrl, CSS_URL_REGEXP); + r = this.replaceUrls(r, urlObj, linkUrl, CSS_IMPORT_REGEXP); + return r; + }, + replaceUrls: function(text, urlObj, linkUrl, regexp) { + return text.replace(regexp, function(m, pre, url, post) { + var urlPath = url.replace(/["']/g, ""); + if (linkUrl) { + urlPath = new URL(urlPath, linkUrl).href; + } + urlObj.href = urlPath; + urlPath = urlObj.href; + return pre + "'" + urlPath + "'" + post; + }); + } + }; + scope.path = path; +}); + +window.HTMLImports.addModule(function(scope) { + var xhr = { + async: true, + ok: function(request) { + return request.status >= 200 && request.status < 300 || request.status === 304 || request.status === 0; + }, + load: function(url, next, nextContext) { + var request = new XMLHttpRequest(); + if (scope.flags.debug || scope.flags.bust) { + url += "?" + Math.random(); + } + request.open("GET", url, xhr.async); + request.addEventListener("readystatechange", function(e) { + if (request.readyState === 4) { + var redirectedUrl = null; + try { + var locationHeader = request.getResponseHeader("Location"); + if (locationHeader) { + redirectedUrl = locationHeader.substr(0, 1) === "/" ? location.origin + locationHeader : locationHeader; + } + } catch (e) { + console.error(e.message); + } + next.call(nextContext, !xhr.ok(request) && request, request.response || request.responseText, redirectedUrl); + } + }); + request.send(); + return request; + }, + loadDocument: function(url, next, nextContext) { + this.load(url, next, nextContext).responseType = "document"; + } + }; + scope.xhr = xhr; +}); + +window.HTMLImports.addModule(function(scope) { + var xhr = scope.xhr; + var flags = scope.flags; + var Loader = function(onLoad, onComplete) { + this.cache = {}; + this.onload = onLoad; + this.oncomplete = onComplete; + this.inflight = 0; + this.pending = {}; + }; + Loader.prototype = { + addNodes: function(nodes) { + this.inflight += nodes.length; + for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { + this.require(n); + } + this.checkDone(); + }, + addNode: function(node) { + this.inflight++; + this.require(node); + this.checkDone(); + }, + require: function(elt) { + var url = elt.src || elt.href; + elt.__nodeUrl = url; + if (!this.dedupe(url, elt)) { + this.fetch(url, elt); + } + }, + dedupe: function(url, elt) { + if (this.pending[url]) { + this.pending[url].push(elt); + return true; + } + var resource; + if (this.cache[url]) { + this.onload(url, elt, this.cache[url]); + this.tail(); + return true; + } + this.pending[url] = [ elt ]; + return false; + }, + fetch: function(url, elt) { + flags.load && console.log("fetch", url, elt); + if (!url) { + setTimeout(function() { + this.receive(url, elt, { + error: "href must be specified" + }, null); + }.bind(this), 0); + } else if (url.match(/^data:/)) { + var pieces = url.split(","); + var header = pieces[0]; + var body = pieces[1]; + if (header.indexOf(";base64") > -1) { + body = atob(body); + } else { + body = decodeURIComponent(body); + } + setTimeout(function() { + this.receive(url, elt, null, body); + }.bind(this), 0); + } else { + var receiveXhr = function(err, resource, redirectedUrl) { + this.receive(url, elt, err, resource, redirectedUrl); + }.bind(this); + xhr.load(url, receiveXhr); + } + }, + receive: function(url, elt, err, resource, redirectedUrl) { + this.cache[url] = resource; + var $p = this.pending[url]; + for (var i = 0, l = $p.length, p; i < l && (p = $p[i]); i++) { + this.onload(url, p, resource, err, redirectedUrl); + this.tail(); + } + this.pending[url] = null; + }, + tail: function() { + --this.inflight; + this.checkDone(); + }, + checkDone: function() { + if (!this.inflight) { + this.oncomplete(); + } + } + }; + scope.Loader = Loader; +}); + +window.HTMLImports.addModule(function(scope) { + var Observer = function(addCallback) { + this.addCallback = addCallback; + this.mo = new MutationObserver(this.handler.bind(this)); + }; + Observer.prototype = { + handler: function(mutations) { + for (var i = 0, l = mutations.length, m; i < l && (m = mutations[i]); i++) { + if (m.type === "childList" && m.addedNodes.length) { + this.addedNodes(m.addedNodes); + } + } + }, + addedNodes: function(nodes) { + if (this.addCallback) { + this.addCallback(nodes); + } + for (var i = 0, l = nodes.length, n, loading; i < l && (n = nodes[i]); i++) { + if (n.children && n.children.length) { + this.addedNodes(n.children); + } + } + }, + observe: function(root) { + this.mo.observe(root, { + childList: true, + subtree: true + }); + } + }; + scope.Observer = Observer; +}); + +window.HTMLImports.addModule(function(scope) { + var path = scope.path; + var rootDocument = scope.rootDocument; + var flags = scope.flags; + var isIE = scope.isIE; + var IMPORT_LINK_TYPE = scope.IMPORT_LINK_TYPE; + var IMPORT_SELECTOR = "link[rel=" + IMPORT_LINK_TYPE + "]"; + var importParser = { + documentSelectors: IMPORT_SELECTOR, + importsSelectors: [ IMPORT_SELECTOR, "link[rel=stylesheet]:not([type])", "style:not([type])", "script:not([type])", 'script[type="application/javascript"]', 'script[type="text/javascript"]' ].join(","), + map: { + link: "parseLink", + script: "parseScript", + style: "parseStyle" + }, + dynamicElements: [], + parseNext: function() { + var next = this.nextToParse(); + if (next) { + this.parse(next); + } + }, + parse: function(elt) { + if (this.isParsed(elt)) { + flags.parse && console.log("[%s] is already parsed", elt.localName); + return; + } + var fn = this[this.map[elt.localName]]; + if (fn) { + this.markParsing(elt); + fn.call(this, elt); + } + }, + parseDynamic: function(elt, quiet) { + this.dynamicElements.push(elt); + if (!quiet) { + this.parseNext(); + } + }, + markParsing: function(elt) { + flags.parse && console.log("parsing", elt); + this.parsingElement = elt; + }, + markParsingComplete: function(elt) { + elt.__importParsed = true; + this.markDynamicParsingComplete(elt); + if (elt.__importElement) { + elt.__importElement.__importParsed = true; + this.markDynamicParsingComplete(elt.__importElement); + } + this.parsingElement = null; + flags.parse && console.log("completed", elt); + }, + markDynamicParsingComplete: function(elt) { + var i = this.dynamicElements.indexOf(elt); + if (i >= 0) { + this.dynamicElements.splice(i, 1); + } + }, + parseImport: function(elt) { + elt.import = elt.__doc; + if (window.HTMLImports.__importsParsingHook) { + window.HTMLImports.__importsParsingHook(elt); + } + if (elt.import) { + elt.import.__importParsed = true; + } + this.markParsingComplete(elt); + if (elt.__resource && !elt.__error) { + elt.dispatchEvent(new CustomEvent("load", { + bubbles: false + })); + } else { + elt.dispatchEvent(new CustomEvent("error", { + bubbles: false + })); + } + if (elt.__pending) { + var fn; + while (elt.__pending.length) { + fn = elt.__pending.shift(); + if (fn) { + fn({ + target: elt + }); + } + } + } + this.parseNext(); + }, + parseLink: function(linkElt) { + if (nodeIsImport(linkElt)) { + this.parseImport(linkElt); + } else { + linkElt.href = linkElt.href; + this.parseGeneric(linkElt); + } + }, + parseStyle: function(elt) { + var src = elt; + elt = cloneStyle(elt); + src.__appliedElement = elt; + elt.__importElement = src; + this.parseGeneric(elt); + }, + parseGeneric: function(elt) { + this.trackElement(elt); + this.addElementToDocument(elt); + }, + rootImportForElement: function(elt) { + var n = elt; + while (n.ownerDocument.__importLink) { + n = n.ownerDocument.__importLink; + } + return n; + }, + addElementToDocument: function(elt) { + var port = this.rootImportForElement(elt.__importElement || elt); + port.parentNode.insertBefore(elt, port); + }, + trackElement: function(elt, callback) { + var self = this; + var done = function(e) { + elt.removeEventListener("load", done); + elt.removeEventListener("error", done); + if (callback) { + callback(e); + } + self.markParsingComplete(elt); + self.parseNext(); + }; + elt.addEventListener("load", done); + elt.addEventListener("error", done); + if (isIE && elt.localName === "style") { + var fakeLoad = false; + if (elt.textContent.indexOf("@import") == -1) { + fakeLoad = true; + } else if (elt.sheet) { + fakeLoad = true; + var csr = elt.sheet.cssRules; + var len = csr ? csr.length : 0; + for (var i = 0, r; i < len && (r = csr[i]); i++) { + if (r.type === CSSRule.IMPORT_RULE) { + fakeLoad = fakeLoad && Boolean(r.styleSheet); + } + } + } + if (fakeLoad) { + setTimeout(function() { + elt.dispatchEvent(new CustomEvent("load", { + bubbles: false + })); + }); + } + } + }, + parseScript: function(scriptElt) { + var script = document.createElement("script"); + script.__importElement = scriptElt; + script.src = scriptElt.src ? scriptElt.src : generateScriptDataUrl(scriptElt); + scope.currentScript = scriptElt; + this.trackElement(script, function(e) { + if (script.parentNode) { + script.parentNode.removeChild(script); + } + scope.currentScript = null; + }); + this.addElementToDocument(script); + }, + nextToParse: function() { + this._mayParse = []; + return !this.parsingElement && (this.nextToParseInDoc(rootDocument) || this.nextToParseDynamic()); + }, + nextToParseInDoc: function(doc, link) { + if (doc && this._mayParse.indexOf(doc) < 0) { + this._mayParse.push(doc); + var nodes = doc.querySelectorAll(this.parseSelectorsForNode(doc)); + for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { + if (!this.isParsed(n)) { + if (this.hasResource(n)) { + return nodeIsImport(n) ? this.nextToParseInDoc(n.__doc, n) : n; + } else { + return; + } + } + } + } + return link; + }, + nextToParseDynamic: function() { + return this.dynamicElements[0]; + }, + parseSelectorsForNode: function(node) { + var doc = node.ownerDocument || node; + return doc === rootDocument ? this.documentSelectors : this.importsSelectors; + }, + isParsed: function(node) { + return node.__importParsed; + }, + needsDynamicParsing: function(elt) { + return this.dynamicElements.indexOf(elt) >= 0; + }, + hasResource: function(node) { + if (nodeIsImport(node) && node.__doc === undefined) { + return false; + } + return true; + } + }; + function nodeIsImport(elt) { + return elt.localName === "link" && elt.rel === IMPORT_LINK_TYPE; + } + function generateScriptDataUrl(script) { + var scriptContent = generateScriptContent(script); + return "data:text/javascript;charset=utf-8," + encodeURIComponent(scriptContent); + } + function generateScriptContent(script) { + return script.textContent + generateSourceMapHint(script); + } + function generateSourceMapHint(script) { + var owner = script.ownerDocument; + owner.__importedScripts = owner.__importedScripts || 0; + var moniker = script.ownerDocument.baseURI; + var num = owner.__importedScripts ? "-" + owner.__importedScripts : ""; + owner.__importedScripts++; + return "\n//# sourceURL=" + moniker + num + ".js\n"; + } + function cloneStyle(style) { + var clone = style.ownerDocument.createElement("style"); + clone.textContent = style.textContent; + path.resolveUrlsInStyle(clone); + return clone; + } + scope.parser = importParser; + scope.IMPORT_SELECTOR = IMPORT_SELECTOR; +}); + +window.HTMLImports.addModule(function(scope) { + var flags = scope.flags; + var IMPORT_LINK_TYPE = scope.IMPORT_LINK_TYPE; + var IMPORT_SELECTOR = scope.IMPORT_SELECTOR; + var rootDocument = scope.rootDocument; + var Loader = scope.Loader; + var Observer = scope.Observer; + var parser = scope.parser; + var importer = { + documents: {}, + documentPreloadSelectors: IMPORT_SELECTOR, + importsPreloadSelectors: [ IMPORT_SELECTOR ].join(","), + loadNode: function(node) { + importLoader.addNode(node); + }, + loadSubtree: function(parent) { + var nodes = this.marshalNodes(parent); + importLoader.addNodes(nodes); + }, + marshalNodes: function(parent) { + return parent.querySelectorAll(this.loadSelectorsForNode(parent)); + }, + loadSelectorsForNode: function(node) { + var doc = node.ownerDocument || node; + return doc === rootDocument ? this.documentPreloadSelectors : this.importsPreloadSelectors; + }, + loaded: function(url, elt, resource, err, redirectedUrl) { + flags.load && console.log("loaded", url, elt); + elt.__resource = resource; + elt.__error = err; + if (isImportLink(elt)) { + var doc = this.documents[url]; + if (doc === undefined) { + doc = err ? null : makeDocument(resource, redirectedUrl || url); + if (doc) { + doc.__importLink = elt; + this.bootDocument(doc); + } + this.documents[url] = doc; + } + elt.__doc = doc; + } + parser.parseNext(); + }, + bootDocument: function(doc) { + this.loadSubtree(doc); + this.observer.observe(doc); + parser.parseNext(); + }, + loadedAll: function() { + parser.parseNext(); + } + }; + var importLoader = new Loader(importer.loaded.bind(importer), importer.loadedAll.bind(importer)); + importer.observer = new Observer(); + function isImportLink(elt) { + return isLinkRel(elt, IMPORT_LINK_TYPE); + } + function isLinkRel(elt, rel) { + return elt.localName === "link" && elt.getAttribute("rel") === rel; + } + function hasBaseURIAccessor(doc) { + return !!Object.getOwnPropertyDescriptor(doc, "baseURI"); + } + function makeDocument(resource, url) { + var doc = document.implementation.createHTMLDocument(IMPORT_LINK_TYPE); + doc._URL = url; + var base = doc.createElement("base"); + base.setAttribute("href", url); + if (!doc.baseURI && !hasBaseURIAccessor(doc)) { + Object.defineProperty(doc, "baseURI", { + value: url + }); + } + var meta = doc.createElement("meta"); + meta.setAttribute("charset", "utf-8"); + doc.head.appendChild(meta); + doc.head.appendChild(base); + doc.body.innerHTML = resource; + if (window.HTMLTemplateElement && HTMLTemplateElement.bootstrap) { + HTMLTemplateElement.bootstrap(doc); + } + return doc; + } + if (!document.baseURI) { + var baseURIDescriptor = { + get: function() { + var base = document.querySelector("base"); + return base ? base.href : window.location.href; + }, + configurable: true + }; + Object.defineProperty(document, "baseURI", baseURIDescriptor); + Object.defineProperty(rootDocument, "baseURI", baseURIDescriptor); + } + scope.importer = importer; + scope.importLoader = importLoader; +}); + +window.HTMLImports.addModule(function(scope) { + var parser = scope.parser; + var importer = scope.importer; + var dynamic = { + added: function(nodes) { + var owner, parsed, loading; + for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { + if (!owner) { + owner = n.ownerDocument; + parsed = parser.isParsed(owner); + } + loading = this.shouldLoadNode(n); + if (loading) { + importer.loadNode(n); + } + if (this.shouldParseNode(n) && parsed) { + parser.parseDynamic(n, loading); + } + } + }, + shouldLoadNode: function(node) { + return node.nodeType === 1 && matches.call(node, importer.loadSelectorsForNode(node)); + }, + shouldParseNode: function(node) { + return node.nodeType === 1 && matches.call(node, parser.parseSelectorsForNode(node)); + } + }; + importer.observer.addCallback = dynamic.added.bind(dynamic); + var matches = HTMLElement.prototype.matches || HTMLElement.prototype.matchesSelector || HTMLElement.prototype.webkitMatchesSelector || HTMLElement.prototype.mozMatchesSelector || HTMLElement.prototype.msMatchesSelector; +}); + +(function(scope) { + var initializeModules = scope.initializeModules; + var isIE = scope.isIE; + if (scope.useNative) { + return; + } + initializeModules(); + var rootDocument = scope.rootDocument; + function bootstrap() { + window.HTMLImports.importer.bootDocument(rootDocument); + } + if (document.readyState === "complete" || document.readyState === "interactive" && !window.attachEvent) { + bootstrap(); + } else { + document.addEventListener("DOMContentLoaded", bootstrap); + } +})(window.HTMLImports); + +window.CustomElements = window.CustomElements || { + flags: {} +}; + +(function(scope) { + var flags = scope.flags; + var modules = []; + var addModule = function(module) { + modules.push(module); + }; + var initializeModules = function() { + modules.forEach(function(module) { + module(scope); + }); + }; + scope.addModule = addModule; + scope.initializeModules = initializeModules; + scope.hasNative = Boolean(document.registerElement); + scope.isIE = /Trident/.test(navigator.userAgent); + scope.useNative = !flags.register && scope.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative); +})(window.CustomElements); + +window.CustomElements.addModule(function(scope) { + var IMPORT_LINK_TYPE = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : "none"; + function forSubtree(node, cb) { + findAllElements(node, function(e) { + if (cb(e)) { + return true; + } + forRoots(e, cb); + }); + forRoots(node, cb); + } + function findAllElements(node, find, data) { + var e = node.firstElementChild; + if (!e) { + e = node.firstChild; + while (e && e.nodeType !== Node.ELEMENT_NODE) { + e = e.nextSibling; + } + } + while (e) { + if (find(e, data) !== true) { + findAllElements(e, find, data); + } + e = e.nextElementSibling; + } + return null; + } + function forRoots(node, cb) { + var root = node.shadowRoot; + while (root) { + forSubtree(root, cb); + root = root.olderShadowRoot; + } + } + function forDocumentTree(doc, cb) { + _forDocumentTree(doc, cb, []); + } + function _forDocumentTree(doc, cb, processingDocuments) { + doc = window.wrap(doc); + if (processingDocuments.indexOf(doc) >= 0) { + return; + } + processingDocuments.push(doc); + var imports = doc.querySelectorAll("link[rel=" + IMPORT_LINK_TYPE + "]"); + for (var i = 0, l = imports.length, n; i < l && (n = imports[i]); i++) { + if (n.import) { + _forDocumentTree(n.import, cb, processingDocuments); + } + } + cb(doc); + } + scope.forDocumentTree = forDocumentTree; + scope.forSubtree = forSubtree; +}); + +window.CustomElements.addModule(function(scope) { + var flags = scope.flags; + var forSubtree = scope.forSubtree; + var forDocumentTree = scope.forDocumentTree; + function addedNode(node, isAttached) { + return added(node, isAttached) || addedSubtree(node, isAttached); + } + function added(node, isAttached) { + if (scope.upgrade(node, isAttached)) { + return true; + } + if (isAttached) { + attached(node); + } + } + function addedSubtree(node, isAttached) { + forSubtree(node, function(e) { + if (added(e, isAttached)) { + return true; + } + }); + } + var hasThrottledAttached = window.MutationObserver._isPolyfilled && flags["throttle-attached"]; + scope.hasPolyfillMutations = hasThrottledAttached; + scope.hasThrottledAttached = hasThrottledAttached; + var isPendingMutations = false; + var pendingMutations = []; + function deferMutation(fn) { + pendingMutations.push(fn); + if (!isPendingMutations) { + isPendingMutations = true; + setTimeout(takeMutations); + } + } + function takeMutations() { + isPendingMutations = false; + var $p = pendingMutations; + for (var i = 0, l = $p.length, p; i < l && (p = $p[i]); i++) { + p(); + } + pendingMutations = []; + } + function attached(element) { + if (hasThrottledAttached) { + deferMutation(function() { + _attached(element); + }); + } else { + _attached(element); + } + } + function _attached(element) { + if (element.__upgraded__ && !element.__attached) { + element.__attached = true; + if (element.attachedCallback) { + element.attachedCallback(); + } + } + } + function detachedNode(node) { + detached(node); + forSubtree(node, function(e) { + detached(e); + }); + } + function detached(element) { + if (hasThrottledAttached) { + deferMutation(function() { + _detached(element); + }); + } else { + _detached(element); + } + } + function _detached(element) { + if (element.__upgraded__ && element.__attached) { + element.__attached = false; + if (element.detachedCallback) { + element.detachedCallback(); + } + } + } + function inDocument(element) { + var p = element; + var doc = window.wrap(document); + while (p) { + if (p == doc) { + return true; + } + p = p.parentNode || p.nodeType === Node.DOCUMENT_FRAGMENT_NODE && p.host; + } + } + function watchShadow(node) { + if (node.shadowRoot && !node.shadowRoot.__watched) { + flags.dom && console.log("watching shadow-root for: ", node.localName); + var root = node.shadowRoot; + while (root) { + observe(root); + root = root.olderShadowRoot; + } + } + } + function handler(root, mutations) { + if (flags.dom) { + var mx = mutations[0]; + if (mx && mx.type === "childList" && mx.addedNodes) { + if (mx.addedNodes) { + var d = mx.addedNodes[0]; + while (d && d !== document && !d.host) { + d = d.parentNode; + } + var u = d && (d.URL || d._URL || d.host && d.host.localName) || ""; + u = u.split("/?").shift().split("/").pop(); + } + } + console.group("mutations (%d) [%s]", mutations.length, u || ""); + } + var isAttached = inDocument(root); + mutations.forEach(function(mx) { + if (mx.type === "childList") { + forEach(mx.addedNodes, function(n) { + if (!n.localName) { + return; + } + addedNode(n, isAttached); + }); + forEach(mx.removedNodes, function(n) { + if (!n.localName) { + return; + } + detachedNode(n); + }); + } + }); + flags.dom && console.groupEnd(); + } + function takeRecords(node) { + node = window.wrap(node); + if (!node) { + node = window.wrap(document); + } + while (node.parentNode) { + node = node.parentNode; + } + var observer = node.__observer; + if (observer) { + handler(node, observer.takeRecords()); + takeMutations(); + } + } + var forEach = Array.prototype.forEach.call.bind(Array.prototype.forEach); + function observe(inRoot) { + if (inRoot.__observer) { + return; + } + var observer = new MutationObserver(handler.bind(this, inRoot)); + observer.observe(inRoot, { + childList: true, + subtree: true + }); + inRoot.__observer = observer; + } + function upgradeDocument(doc) { + doc = window.wrap(doc); + flags.dom && console.group("upgradeDocument: ", doc.baseURI.split("/").pop()); + var isMainDocument = doc === window.wrap(document); + addedNode(doc, isMainDocument); + observe(doc); + flags.dom && console.groupEnd(); + } + function upgradeDocumentTree(doc) { + forDocumentTree(doc, upgradeDocument); + } + var originalCreateShadowRoot = Element.prototype.createShadowRoot; + if (originalCreateShadowRoot) { + Element.prototype.createShadowRoot = function() { + var root = originalCreateShadowRoot.call(this); + window.CustomElements.watchShadow(this); + return root; + }; + } + scope.watchShadow = watchShadow; + scope.upgradeDocumentTree = upgradeDocumentTree; + scope.upgradeDocument = upgradeDocument; + scope.upgradeSubtree = addedSubtree; + scope.upgradeAll = addedNode; + scope.attached = attached; + scope.takeRecords = takeRecords; +}); + +window.CustomElements.addModule(function(scope) { + var flags = scope.flags; + function upgrade(node, isAttached) { + if (node.localName === "template") { + if (window.HTMLTemplateElement && HTMLTemplateElement.decorate) { + HTMLTemplateElement.decorate(node); + } + } + if (!node.__upgraded__ && node.nodeType === Node.ELEMENT_NODE) { + var is = node.getAttribute("is"); + var definition = scope.getRegisteredDefinition(node.localName) || scope.getRegisteredDefinition(is); + if (definition) { + if (is && definition.tag == node.localName || !is && !definition.extends) { + return upgradeWithDefinition(node, definition, isAttached); + } + } + } + } + function upgradeWithDefinition(element, definition, isAttached) { + flags.upgrade && console.group("upgrade:", element.localName); + if (definition.is) { + element.setAttribute("is", definition.is); + } + implementPrototype(element, definition); + element.__upgraded__ = true; + created(element); + if (isAttached) { + scope.attached(element); + } + scope.upgradeSubtree(element, isAttached); + flags.upgrade && console.groupEnd(); + return element; + } + function implementPrototype(element, definition) { + if (Object.__proto__) { + element.__proto__ = definition.prototype; + } else { + customMixin(element, definition.prototype, definition.native); + element.__proto__ = definition.prototype; + } + } + function customMixin(inTarget, inSrc, inNative) { + var used = {}; + var p = inSrc; + while (p !== inNative && p !== HTMLElement.prototype) { + var keys = Object.getOwnPropertyNames(p); + for (var i = 0, k; k = keys[i]; i++) { + if (!used[k]) { + Object.defineProperty(inTarget, k, Object.getOwnPropertyDescriptor(p, k)); + used[k] = 1; + } + } + p = Object.getPrototypeOf(p); + } + } + function created(element) { + if (element.createdCallback) { + element.createdCallback(); + } + } + scope.upgrade = upgrade; + scope.upgradeWithDefinition = upgradeWithDefinition; + scope.implementPrototype = implementPrototype; +}); + +window.CustomElements.addModule(function(scope) { + var isIE = scope.isIE; + var upgradeDocumentTree = scope.upgradeDocumentTree; + var upgradeAll = scope.upgradeAll; + var upgradeWithDefinition = scope.upgradeWithDefinition; + var implementPrototype = scope.implementPrototype; + var useNative = scope.useNative; + function register(name, options) { + var definition = options || {}; + if (!name) { + throw new Error("document.registerElement: first argument `name` must not be empty"); + } + if (name.indexOf("-") < 0) { + throw new Error("document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '" + String(name) + "'."); + } + if (isReservedTag(name)) { + throw new Error("Failed to execute 'registerElement' on 'Document': Registration failed for type '" + String(name) + "'. The type name is invalid."); + } + if (getRegisteredDefinition(name)) { + throw new Error("DuplicateDefinitionError: a type with name '" + String(name) + "' is already registered"); + } + if (!definition.prototype) { + definition.prototype = Object.create(HTMLElement.prototype); + } + definition.__name = name.toLowerCase(); + if (definition.extends) { + definition.extends = definition.extends.toLowerCase(); + } + definition.lifecycle = definition.lifecycle || {}; + definition.ancestry = ancestry(definition.extends); + resolveTagName(definition); + resolvePrototypeChain(definition); + overrideAttributeApi(definition.prototype); + registerDefinition(definition.__name, definition); + definition.ctor = generateConstructor(definition); + definition.ctor.prototype = definition.prototype; + definition.prototype.constructor = definition.ctor; + if (scope.ready) { + upgradeDocumentTree(document); + } + return definition.ctor; + } + function overrideAttributeApi(prototype) { + if (prototype.setAttribute._polyfilled) { + return; + } + var setAttribute = prototype.setAttribute; + prototype.setAttribute = function(name, value) { + changeAttribute.call(this, name, value, setAttribute); + }; + var removeAttribute = prototype.removeAttribute; + prototype.removeAttribute = function(name) { + changeAttribute.call(this, name, null, removeAttribute); + }; + prototype.setAttribute._polyfilled = true; + } + function changeAttribute(name, value, operation) { + name = name.toLowerCase(); + var oldValue = this.getAttribute(name); + operation.apply(this, arguments); + var newValue = this.getAttribute(name); + if (this.attributeChangedCallback && newValue !== oldValue) { + this.attributeChangedCallback(name, oldValue, newValue); + } + } + function isReservedTag(name) { + for (var i = 0; i < reservedTagList.length; i++) { + if (name === reservedTagList[i]) { + return true; + } + } + } + var reservedTagList = [ "annotation-xml", "color-profile", "font-face", "font-face-src", "font-face-uri", "font-face-format", "font-face-name", "missing-glyph" ]; + function ancestry(extnds) { + var extendee = getRegisteredDefinition(extnds); + if (extendee) { + return ancestry(extendee.extends).concat([ extendee ]); + } + return []; + } + function resolveTagName(definition) { + var baseTag = definition.extends; + for (var i = 0, a; a = definition.ancestry[i]; i++) { + baseTag = a.is && a.tag; + } + definition.tag = baseTag || definition.__name; + if (baseTag) { + definition.is = definition.__name; + } + } + function resolvePrototypeChain(definition) { + if (!Object.__proto__) { + var nativePrototype = HTMLElement.prototype; + if (definition.is) { + var inst = document.createElement(definition.tag); + nativePrototype = Object.getPrototypeOf(inst); + } + var proto = definition.prototype, ancestor; + var foundPrototype = false; + while (proto) { + if (proto == nativePrototype) { + foundPrototype = true; + } + ancestor = Object.getPrototypeOf(proto); + if (ancestor) { + proto.__proto__ = ancestor; + } + proto = ancestor; + } + if (!foundPrototype) { + console.warn(definition.tag + " prototype not found in prototype chain for " + definition.is); + } + definition.native = nativePrototype; + } + } + function instantiate(definition) { + return upgradeWithDefinition(domCreateElement(definition.tag), definition); + } + var registry = {}; + function getRegisteredDefinition(name) { + if (name) { + return registry[name.toLowerCase()]; + } + } + function registerDefinition(name, definition) { + registry[name] = definition; + } + function generateConstructor(definition) { + return function() { + return instantiate(definition); + }; + } + var HTML_NAMESPACE = "http://www.w3.org/1999/xhtml"; + function createElementNS(namespace, tag, typeExtension) { + if (namespace === HTML_NAMESPACE) { + return createElement(tag, typeExtension); + } else { + return domCreateElementNS(namespace, tag); + } + } + function createElement(tag, typeExtension) { + if (tag) { + tag = tag.toLowerCase(); + } + if (typeExtension) { + typeExtension = typeExtension.toLowerCase(); + } + var definition = getRegisteredDefinition(typeExtension || tag); + if (definition) { + if (tag == definition.tag && typeExtension == definition.is) { + return new definition.ctor(); + } + if (!typeExtension && !definition.is) { + return new definition.ctor(); + } + } + var element; + if (typeExtension) { + element = createElement(tag); + element.setAttribute("is", typeExtension); + return element; + } + element = domCreateElement(tag); + if (tag.indexOf("-") >= 0) { + implementPrototype(element, HTMLElement); + } + return element; + } + var domCreateElement = document.createElement.bind(document); + var domCreateElementNS = document.createElementNS.bind(document); + var isInstance; + if (!Object.__proto__ && !useNative) { + isInstance = function(obj, ctor) { + if (obj instanceof ctor) { + return true; + } + var p = obj; + while (p) { + if (p === ctor.prototype) { + return true; + } + p = p.__proto__; + } + return false; + }; + } else { + isInstance = function(obj, base) { + return obj instanceof base; + }; + } + function wrapDomMethodToForceUpgrade(obj, methodName) { + var orig = obj[methodName]; + obj[methodName] = function() { + var n = orig.apply(this, arguments); + upgradeAll(n); + return n; + }; + } + wrapDomMethodToForceUpgrade(Node.prototype, "cloneNode"); + wrapDomMethodToForceUpgrade(document, "importNode"); + document.registerElement = register; + document.createElement = createElement; + document.createElementNS = createElementNS; + scope.registry = registry; + scope.instanceof = isInstance; + scope.reservedTagList = reservedTagList; + scope.getRegisteredDefinition = getRegisteredDefinition; + document.register = document.registerElement; +}); + +(function(scope) { + var useNative = scope.useNative; + var initializeModules = scope.initializeModules; + var isIE = scope.isIE; + if (useNative) { + var nop = function() {}; + scope.watchShadow = nop; + scope.upgrade = nop; + scope.upgradeAll = nop; + scope.upgradeDocumentTree = nop; + scope.upgradeSubtree = nop; + scope.takeRecords = nop; + scope.instanceof = function(obj, base) { + return obj instanceof base; + }; + } else { + initializeModules(); + } + var upgradeDocumentTree = scope.upgradeDocumentTree; + var upgradeDocument = scope.upgradeDocument; + if (!window.wrap) { + if (window.ShadowDOMPolyfill) { + window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded; + window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded; + } else { + window.wrap = window.unwrap = function(node) { + return node; + }; + } + } + if (window.HTMLImports) { + window.HTMLImports.__importsParsingHook = function(elt) { + if (elt.import) { + upgradeDocument(wrap(elt.import)); + } + }; + } + function bootstrap() { + upgradeDocumentTree(window.wrap(document)); + window.CustomElements.ready = true; + var requestAnimationFrame = window.requestAnimationFrame || function(f) { + setTimeout(f, 16); + }; + requestAnimationFrame(function() { + setTimeout(function() { + window.CustomElements.readyTime = Date.now(); + if (window.HTMLImports) { + window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime; + } + document.dispatchEvent(new CustomEvent("WebComponentsReady", { + bubbles: true + })); + }); + }); + } + if (document.readyState === "complete" || scope.flags.eager) { + bootstrap(); + } else if (document.readyState === "interactive" && !window.attachEvent && (!window.HTMLImports || window.HTMLImports.ready)) { + bootstrap(); + } else { + var loadEvent = window.HTMLImports && !window.HTMLImports.ready ? "HTMLImportsLoaded" : "DOMContentLoaded"; + window.addEventListener(loadEvent, bootstrap); + } +})(window.CustomElements); + +(function(scope) { + if (!Function.prototype.bind) { + Function.prototype.bind = function(scope) { + var self = this; + var args = Array.prototype.slice.call(arguments, 1); + return function() { + var args2 = args.slice(); + args2.push.apply(args2, arguments); + return self.apply(scope, args2); + }; + }; + } +})(window.WebComponents); + +(function(scope) { + var style = document.createElement("style"); + style.textContent = "" + "body {" + "transition: opacity ease-in 0.2s;" + " } \n" + "body[unresolved] {" + "opacity: 0; display: block; overflow: hidden; position: relative;" + " } \n"; + var head = document.querySelector("head"); + head.insertBefore(style, head.firstChild); +})(window.WebComponents); + +(function(scope) { + window.Platform = scope; +})(window.WebComponents); \ No newline at end of file diff --git a/assets/js/webcomponents.min.js b/assets/js/webcomponents.min.js new file mode 100644 index 0000000..ad8196b --- /dev/null +++ b/assets/js/webcomponents.min.js @@ -0,0 +1,14 @@ +/** + * @license + * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. + * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt + * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt + * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt + * Code distributed by Google as part of the polymer project is also + * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt + */ +// @version 0.7.24 +!function(){window.WebComponents=window.WebComponents||{flags:{}};var e="webcomponents.js",t=document.querySelector('script[src*="'+e+'"]'),n={};if(!n.noOpts){if(location.search.slice(1).split("&").forEach(function(e){var t,r=e.split("=");r[0]&&(t=r[0].match(/wc-(.+)/))&&(n[t[1]]=r[1]||!0)}),t)for(var r,o=0;r=t.attributes[o];o++)"src"!==r.name&&(n[r.name]=r.value||!0);if(n.log&&n.log.split){var i=n.log.split(",");n.log={},i.forEach(function(e){n.log[e]=!0})}else n.log={}}n.shadow=n.shadow||n.shadowdom||n.polyfill,"native"===n.shadow?n.shadow=!1:n.shadow=n.shadow||!HTMLElement.prototype.createShadowRoot,n.register&&(window.CustomElements=window.CustomElements||{flags:{}},window.CustomElements.flags.register=n.register),WebComponents.flags=n}(),WebComponents.flags.shadow&&("undefined"==typeof WeakMap&&!function(){var e=Object.defineProperty,t=Date.now()%1e9,n=function(){this.name="__st"+(1e9*Math.random()>>>0)+(t++ +"__")};n.prototype={set:function(t,n){var r=t[this.name];return r&&r[0]===t?r[1]=n:e(t,this.name,{value:[t,n],writable:!0}),this},get:function(e){var t;return(t=e[this.name])&&t[0]===e?t[1]:void 0},"delete":function(e){var t=e[this.name];return!(!t||t[0]!==e)&&(t[0]=t[1]=void 0,!0)},has:function(e){var t=e[this.name];return!!t&&t[0]===e}},window.WeakMap=n}(),window.ShadowDOMPolyfill={},function(e){"use strict";function t(){if("undefined"!=typeof chrome&&chrome.app&&chrome.app.runtime)return!1;if(navigator.getDeviceStorage)return!1;try{var e=new Function("return true;");return e()}catch(t){return!1}}function n(e){if(!e)throw new Error("Assertion failed")}function r(e,t){for(var n=W(t),r=0;r0||n>0;)if(0!=t)if(0!=n){var l,u=e[t-1][n-1],d=e[t-1][n],p=e[t][n-1];l=d0){for(var u=0;u0&&r.length>0;){var i=n.pop(),a=r.pop();if(i!==a)break;o=i}return o}function u(e,t,n){t instanceof G.Window&&(t=t.document);var o,i=A(t),a=A(n),s=r(n,e),o=l(i,a);o||(o=a.root);for(var c=o;c;c=c.parent)for(var u=0;u0;i--)if(!g(t[i],e,o,t,r))return!1;return!0}function w(e,t,n,r){var o=ie,i=t[0]||n;return g(i,e,o,t,r)}function v(e,t,n,r){for(var o=ae,i=1;i0&&g(n,e,o,t,r)}function g(e,t,n,r,o){var i=z.get(e);if(!i)return!0;var a=o||s(r,e);if(a===e){if(n===oe)return!0;n===ae&&(n=ie)}else if(n===ae&&!t.bubbles)return!0;if("relatedTarget"in t){var c=B(t),l=c.relatedTarget;if(l){if(l instanceof Object&&l.addEventListener){var d=V(l),p=u(t,e,d);if(p===a)return!0}else p=null;Z.set(t,p)}}J.set(t,n);var h=t.type,f=!1;X.set(t,a),Y.set(t,e),i.depth++;for(var m=0,w=i.length;m=0;a--)e.removeChild(i[a]),i[a].parentNode_=t;U=!1;for(var a=0;a>>/g," ")}function r(e){return String(e).replace(/:host\(([^\s]+)\)/g,"$1").replace(/([^\s]):host/g,"$1").replace(":host","*").replace(/\^|\/shadow\/|\/shadow-deep\/|::shadow|\/deep\/|::content|>>>/g," ")}function o(e,t){for(var n,r=e.firstElementChild;r;){if(r.matches(t))return r;if(n=o(r,t))return n;r=r.nextElementSibling}return null}function i(e,t){return e.matches(t)}function a(e,t,n){var r=e.localName;return r===t||r===n&&e.namespaceURI===j}function s(){return!0}function c(e,t,n){return e.localName===n}function l(e,t){return e.namespaceURI===t}function u(e,t,n){return e.namespaceURI===t&&e.localName===n}function d(e,t,n,r,o,i){for(var a=e.firstElementChild;a;)r(a,o,i)&&(n[t++]=a),t=d(a,t,n,r,o,i),a=a.nextElementSibling;return t}function p(n,r,o,i,a){var s,c=g(this),l=v(this).root;if(l instanceof e.wrappers.ShadowRoot)return d(this,r,o,n,i,null);if(c instanceof N)s=S.call(c,i);else{if(!(c instanceof C))return d(this,r,o,n,i,null);s=_.call(c,i)}return t(s,r,o,a)}function h(n,r,o,i,a){var s,c=g(this),l=v(this).root;if(l instanceof e.wrappers.ShadowRoot)return d(this,r,o,n,i,a);if(c instanceof N)s=M.call(c,i,a);else{if(!(c instanceof C))return d(this,r,o,n,i,a);s=T.call(c,i,a)}return t(s,r,o,!1)}function f(n,r,o,i,a){var s,c=g(this),l=v(this).root;if(l instanceof e.wrappers.ShadowRoot)return d(this,r,o,n,i,a);if(c instanceof N)s=L.call(c,i,a);else{if(!(c instanceof C))return d(this,r,o,n,i,a);s=O.call(c,i,a)}return t(s,r,o,!1)}var m=e.wrappers.HTMLCollection,w=e.wrappers.NodeList,v=e.getTreeScope,g=e.unsafeUnwrap,b=e.wrap,y=document.querySelector,E=document.documentElement.querySelector,_=document.querySelectorAll,S=document.documentElement.querySelectorAll,T=document.getElementsByTagName,M=document.documentElement.getElementsByTagName,O=document.getElementsByTagNameNS,L=document.documentElement.getElementsByTagNameNS,N=window.Element,C=window.HTMLDocument||window.Document,j="http://www.w3.org/1999/xhtml",D={ +querySelector:function(t){var r=n(t),i=r!==t;t=r;var a,s=g(this),c=v(this).root;if(c instanceof e.wrappers.ShadowRoot)return o(this,t);if(s instanceof N)a=b(E.call(s,t));else{if(!(s instanceof C))return o(this,t);a=b(y.call(s,t))}return a&&!i&&(c=v(a).root)&&c instanceof e.wrappers.ShadowRoot?o(this,t):a},querySelectorAll:function(e){var t=n(e),r=t!==e;e=t;var o=new w;return o.length=p.call(this,i,0,o,e,r),o}},H={matches:function(t){return t=r(t),e.originalMatches.call(g(this),t)}},x={getElementsByTagName:function(e){var t=new m,n="*"===e?s:a;return t.length=h.call(this,n,0,t,e,e.toLowerCase()),t},getElementsByClassName:function(e){return this.querySelectorAll("."+e)},getElementsByTagNameNS:function(e,t){var n=new m,r=null;return r="*"===e?"*"===t?s:c:"*"===t?l:u,n.length=f.call(this,r,0,n,e||null,t),n}};e.GetElementsByInterface=x,e.SelectorsInterface=D,e.MatchesInterface=H}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){for(;e&&e.nodeType!==Node.ELEMENT_NODE;)e=e.nextSibling;return e}function n(e){for(;e&&e.nodeType!==Node.ELEMENT_NODE;)e=e.previousSibling;return e}var r=e.wrappers.NodeList,o={get firstElementChild(){return t(this.firstChild)},get lastElementChild(){return n(this.lastChild)},get childElementCount(){for(var e=0,t=this.firstElementChild;t;t=t.nextElementSibling)e++;return e},get children(){for(var e=new r,t=0,n=this.firstElementChild;n;n=n.nextElementSibling)e[t++]=n;return e.length=t,e},remove:function(){var e=this.parentNode;e&&e.removeChild(this)}},i={get nextElementSibling(){return t(this.nextSibling)},get previousElementSibling(){return n(this.previousSibling)}},a={getElementById:function(e){return/[ \t\n\r\f]/.test(e)?null:this.querySelector('[id="'+e+'"]')}};e.ChildNodeInterface=i,e.NonElementParentNodeInterface=a,e.ParentNodeInterface=o}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){r.call(this,e)}var n=e.ChildNodeInterface,r=e.wrappers.Node,o=e.enqueueMutation,i=e.mixin,a=e.registerWrapper,s=e.unsafeUnwrap,c=window.CharacterData;t.prototype=Object.create(r.prototype),i(t.prototype,{get nodeValue(){return this.data},set nodeValue(e){this.data=e},get textContent(){return this.data},set textContent(e){this.data=e},get data(){return s(this).data},set data(e){var t=s(this).data;o(this,"characterData",{oldValue:t}),s(this).data=e}}),i(t.prototype,n),a(c,t,document.createTextNode("")),e.wrappers.CharacterData=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){return e>>>0}function n(e){r.call(this,e)}var r=e.wrappers.CharacterData,o=(e.enqueueMutation,e.mixin),i=e.registerWrapper,a=window.Text;n.prototype=Object.create(r.prototype),o(n.prototype,{splitText:function(e){e=t(e);var n=this.data;if(e>n.length)throw new Error("IndexSizeError");var r=n.slice(0,e),o=n.slice(e);this.data=r;var i=this.ownerDocument.createTextNode(o);return this.parentNode&&this.parentNode.insertBefore(i,this.nextSibling),i}}),i(a,n,document.createTextNode("")),e.wrappers.Text=n}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){return i(e).getAttribute("class")}function n(e,t){a(e,"attributes",{name:"class",namespace:null,oldValue:t})}function r(t){e.invalidateRendererBasedOnAttribute(t,"class")}function o(e,o,i){var a=e.ownerElement_;if(null==a)return o.apply(e,i);var s=t(a),c=o.apply(e,i);return t(a)!==s&&(n(a,s),r(a)),c}if(!window.DOMTokenList)return void console.warn("Missing DOMTokenList prototype, please include a compatible classList polyfill such as http://goo.gl/uTcepH.");var i=e.unsafeUnwrap,a=e.enqueueMutation,s=DOMTokenList.prototype.add;DOMTokenList.prototype.add=function(){o(this,s,arguments)};var c=DOMTokenList.prototype.remove;DOMTokenList.prototype.remove=function(){o(this,c,arguments)};var l=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(){return o(this,l,arguments)}}(window.ShadowDOMPolyfill),function(e){"use strict";function t(t,n){var r=t.parentNode;if(r&&r.shadowRoot){var o=e.getRendererForHost(r);o.dependsOnAttribute(n)&&o.invalidate()}}function n(e,t,n){u(e,"attributes",{name:t,namespace:null,oldValue:n})}function r(e){a.call(this,e)}var o=e.ChildNodeInterface,i=e.GetElementsByInterface,a=e.wrappers.Node,s=e.ParentNodeInterface,c=e.SelectorsInterface,l=e.MatchesInterface,u=(e.addWrapNodeListMethod,e.enqueueMutation),d=e.mixin,p=(e.oneOf,e.registerWrapper),h=e.unsafeUnwrap,f=e.wrappers,m=window.Element,w=["matches","mozMatchesSelector","msMatchesSelector","webkitMatchesSelector"].filter(function(e){return m.prototype[e]}),v=w[0],g=m.prototype[v],b=new WeakMap;r.prototype=Object.create(a.prototype),d(r.prototype,{createShadowRoot:function(){var t=new f.ShadowRoot(this);h(this).polymerShadowRoot_=t;var n=e.getRendererForHost(this);return n.invalidate(),t},get shadowRoot(){return h(this).polymerShadowRoot_||null},setAttribute:function(e,r){var o=h(this).getAttribute(e);h(this).setAttribute(e,r),n(this,e,o),t(this,e)},removeAttribute:function(e){var r=h(this).getAttribute(e);h(this).removeAttribute(e),n(this,e,r),t(this,e)},get classList(){var e=b.get(this);if(!e){if(e=h(this).classList,!e)return;e.ownerElement_=this,b.set(this,e)}return e},get className(){return h(this).className},set className(e){this.setAttribute("class",e)},get id(){return h(this).id},set id(e){this.setAttribute("id",e)}}),w.forEach(function(e){"matches"!==e&&(r.prototype[e]=function(e){return this.matches(e)})}),m.prototype.webkitCreateShadowRoot&&(r.prototype.webkitCreateShadowRoot=r.prototype.createShadowRoot),d(r.prototype,o),d(r.prototype,i),d(r.prototype,s),d(r.prototype,c),d(r.prototype,l),p(m,r,document.createElementNS(null,"x")),e.invalidateRendererBasedOnAttribute=t,e.matchesNames=w,e.originalMatches=g,e.wrappers.Element=r}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){switch(e){case"&":return"&";case"<":return"<";case">":return">";case'"':return""";case" ":return" "}}function n(e){return e.replace(L,t)}function r(e){return e.replace(N,t)}function o(e){for(var t={},n=0;n"):c+">"+s(e)+"";case Node.TEXT_NODE:var d=e.data;return t&&j[t.localName]?d:r(d);case Node.COMMENT_NODE:return"";default:throw console.error(e),new Error("not implemented")}}function s(e){e instanceof O.HTMLTemplateElement&&(e=e.content);for(var t="",n=e.firstChild;n;n=n.nextSibling)t+=a(n,e);return t}function c(e,t,n){var r=n||"div";e.textContent="";var o=T(e.ownerDocument.createElement(r));o.innerHTML=t;for(var i;i=o.firstChild;)e.appendChild(M(i))}function l(e){m.call(this,e)}function u(e,t){var n=T(e.cloneNode(!1));n.innerHTML=t;for(var r,o=T(document.createDocumentFragment());r=n.firstChild;)o.appendChild(r);return M(o)}function d(t){return function(){return e.renderAllPending(),S(this)[t]}}function p(e){w(l,e,d(e))}function h(t){Object.defineProperty(l.prototype,t,{get:d(t),set:function(n){e.renderAllPending(),S(this)[t]=n},configurable:!0,enumerable:!0})}function f(t){Object.defineProperty(l.prototype,t,{value:function(){return e.renderAllPending(),S(this)[t].apply(S(this),arguments)},configurable:!0,enumerable:!0})}var m=e.wrappers.Element,w=e.defineGetter,v=e.enqueueMutation,g=e.mixin,b=e.nodesWereAdded,y=e.nodesWereRemoved,E=e.registerWrapper,_=e.snapshotNodeList,S=e.unsafeUnwrap,T=e.unwrap,M=e.wrap,O=e.wrappers,L=/[&\u00A0"]/g,N=/[&\u00A0<>]/g,C=o(["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),j=o(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]),D="http://www.w3.org/1999/xhtml",H=/MSIE/.test(navigator.userAgent),x=window.HTMLElement,R=window.HTMLTemplateElement;l.prototype=Object.create(m.prototype),g(l.prototype,{get innerHTML(){return s(this)},set innerHTML(e){if(H&&j[this.localName])return void(this.textContent=e);var t=_(this.childNodes);this.invalidateShadowRenderer()?this instanceof O.HTMLTemplateElement?c(this.content,e):c(this,e,this.tagName):!R&&this instanceof O.HTMLTemplateElement?c(this.content,e):S(this).innerHTML=e;var n=_(this.childNodes);v(this,"childList",{addedNodes:n,removedNodes:t}),y(t),b(n,this)},get outerHTML(){return a(this,this.parentNode)},set outerHTML(e){var t=this.parentNode;if(t){t.invalidateShadowRenderer();var n=u(t,e);t.replaceChild(n,this)}},insertAdjacentHTML:function(e,t){var n,r;switch(String(e).toLowerCase()){case"beforebegin":n=this.parentNode,r=this;break;case"afterend":n=this.parentNode,r=this.nextSibling;break;case"afterbegin":n=this,r=this.firstChild;break;case"beforeend":n=this,r=null;break;default:return}var o=u(n,t);n.insertBefore(o,r)},get hidden(){return this.hasAttribute("hidden")},set hidden(e){e?this.setAttribute("hidden",""):this.removeAttribute("hidden")}}),["clientHeight","clientLeft","clientTop","clientWidth","offsetHeight","offsetLeft","offsetTop","offsetWidth","scrollHeight","scrollWidth"].forEach(p),["scrollLeft","scrollTop"].forEach(h),["focus","getBoundingClientRect","getClientRects","scrollIntoView"].forEach(f),E(x,l,document.createElement("b")),e.wrappers.HTMLElement=l,e.getInnerHTML=s,e.setInnerHTML=c}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.unsafeUnwrap,a=e.wrap,s=window.HTMLCanvasElement;t.prototype=Object.create(n.prototype),r(t.prototype,{getContext:function(){var e=i(this).getContext.apply(i(this),arguments);return e&&a(e)}}),o(s,t,document.createElement("canvas")),e.wrappers.HTMLCanvasElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=window.HTMLContentElement;t.prototype=Object.create(n.prototype),r(t.prototype,{constructor:t,get select(){return this.getAttribute("select")},set select(e){this.setAttribute("select",e)},setAttribute:function(e,t){n.prototype.setAttribute.call(this,e,t),"select"===String(e).toLowerCase()&&this.invalidateShadowRenderer(!0)}}),i&&o(i,t),e.wrappers.HTMLContentElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.wrapHTMLCollection,a=e.unwrap,s=window.HTMLFormElement;t.prototype=Object.create(n.prototype),r(t.prototype,{get elements(){return i(a(this).elements)}}),o(s,t,document.createElement("form")),e.wrappers.HTMLFormElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){r.call(this,e)}function n(e,t){if(!(this instanceof n))throw new TypeError("DOM object constructor cannot be called as a function.");var o=i(document.createElement("img"));r.call(this,o),a(o,this),void 0!==e&&(o.width=e),void 0!==t&&(o.height=t)}var r=e.wrappers.HTMLElement,o=e.registerWrapper,i=e.unwrap,a=e.rewrap,s=window.HTMLImageElement;t.prototype=Object.create(r.prototype),o(s,t,document.createElement("img")),n.prototype=t.prototype,e.wrappers.HTMLImageElement=t,e.wrappers.Image=n}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=(e.mixin,e.wrappers.NodeList,e.registerWrapper),o=window.HTMLShadowElement;t.prototype=Object.create(n.prototype),t.prototype.constructor=t,o&&r(o,t),e.wrappers.HTMLShadowElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){if(!e.defaultView)return e;var t=d.get(e);if(!t){for(t=e.implementation.createHTMLDocument("");t.lastChild;)t.removeChild(t.lastChild);d.set(e,t)}return t}function n(e){for(var n,r=t(e.ownerDocument),o=c(r.createDocumentFragment());n=e.firstChild;)o.appendChild(n);return o}function r(e){if(o.call(this,e),!p){var t=n(e);u.set(this,l(t))}}var o=e.wrappers.HTMLElement,i=e.mixin,a=e.registerWrapper,s=e.unsafeUnwrap,c=e.unwrap,l=e.wrap,u=new WeakMap,d=new WeakMap,p=window.HTMLTemplateElement;r.prototype=Object.create(o.prototype),i(r.prototype,{constructor:r,get content(){return p?l(s(this).content):u.get(this)}}),p&&a(p,r),e.wrappers.HTMLTemplateElement=r}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.registerWrapper,o=window.HTMLMediaElement;o&&(t.prototype=Object.create(n.prototype),r(o,t,document.createElement("audio")),e.wrappers.HTMLMediaElement=t)}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){r.call(this,e)}function n(e){if(!(this instanceof n))throw new TypeError("DOM object constructor cannot be called as a function.");var t=i(document.createElement("audio"));r.call(this,t),a(t,this),t.setAttribute("preload","auto"),void 0!==e&&t.setAttribute("src",e)}var r=e.wrappers.HTMLMediaElement,o=e.registerWrapper,i=e.unwrap,a=e.rewrap,s=window.HTMLAudioElement;s&&(t.prototype=Object.create(r.prototype),o(s,t,document.createElement("audio")),n.prototype=t.prototype,e.wrappers.HTMLAudioElement=t,e.wrappers.Audio=n)}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){return e.replace(/\s+/g," ").trim()}function n(e){o.call(this,e)}function r(e,t,n,i){if(!(this instanceof r))throw new TypeError("DOM object constructor cannot be called as a function.");var a=c(document.createElement("option"));o.call(this,a),s(a,this),void 0!==e&&(a.text=e),void 0!==t&&a.setAttribute("value",t),n===!0&&a.setAttribute("selected",""),a.selected=i===!0}var o=e.wrappers.HTMLElement,i=e.mixin,a=e.registerWrapper,s=e.rewrap,c=e.unwrap,l=e.wrap,u=window.HTMLOptionElement;n.prototype=Object.create(o.prototype),i(n.prototype,{get text(){return t(this.textContent)},set text(e){this.textContent=t(String(e))},get form(){return l(c(this).form)}}),a(u,n,document.createElement("option")),r.prototype=n.prototype,e.wrappers.HTMLOptionElement=n,e.wrappers.Option=r}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.unwrap,a=e.wrap,s=window.HTMLSelectElement;t.prototype=Object.create(n.prototype),r(t.prototype,{add:function(e,t){"object"==typeof t&&(t=i(t)),i(this).add(i(e),t)},remove:function(e){return void 0===e?void n.prototype.remove.call(this):("object"==typeof e&&(e=i(e)),void i(this).remove(e))},get form(){return a(i(this).form)}}),o(s,t,document.createElement("select")),e.wrappers.HTMLSelectElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.unwrap,a=e.wrap,s=e.wrapHTMLCollection,c=window.HTMLTableElement;t.prototype=Object.create(n.prototype),r(t.prototype,{get caption(){return a(i(this).caption)},createCaption:function(){return a(i(this).createCaption())},get tHead(){return a(i(this).tHead)},createTHead:function(){return a(i(this).createTHead())},createTFoot:function(){return a(i(this).createTFoot())},get tFoot(){return a(i(this).tFoot)},get tBodies(){return s(i(this).tBodies)},createTBody:function(){return a(i(this).createTBody())},get rows(){return s(i(this).rows)},insertRow:function(e){return a(i(this).insertRow(e))}}),o(c,t,document.createElement("table")),e.wrappers.HTMLTableElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.wrapHTMLCollection,a=e.unwrap,s=e.wrap,c=window.HTMLTableSectionElement;t.prototype=Object.create(n.prototype),r(t.prototype,{constructor:t,get rows(){return i(a(this).rows)},insertRow:function(e){return s(a(this).insertRow(e))}}),o(c,t,document.createElement("thead")),e.wrappers.HTMLTableSectionElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.wrapHTMLCollection,a=e.unwrap,s=e.wrap,c=window.HTMLTableRowElement;t.prototype=Object.create(n.prototype),r(t.prototype,{get cells(){return i(a(this).cells)},insertCell:function(e){return s(a(this).insertCell(e))}}),o(c,t,document.createElement("tr")),e.wrappers.HTMLTableRowElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){switch(e.localName){case"content":return new n(e);case"shadow":return new o(e);case"template":return new i(e)}r.call(this,e)}var n=e.wrappers.HTMLContentElement,r=e.wrappers.HTMLElement,o=e.wrappers.HTMLShadowElement,i=e.wrappers.HTMLTemplateElement,a=(e.mixin,e.registerWrapper),s=window.HTMLUnknownElement;t.prototype=Object.create(r.prototype),a(s,t),e.wrappers.HTMLUnknownElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.Element,r=e.wrappers.HTMLElement,o=e.registerWrapper,i=(e.defineWrapGetter,e.unsafeUnwrap),a=e.wrap,s=e.mixin,c="http://www.w3.org/2000/svg",l=window.SVGElement,u=document.createElementNS(c,"title");if(!("classList"in u)){var d=Object.getOwnPropertyDescriptor(n.prototype,"classList");Object.defineProperty(r.prototype,"classList",d),delete n.prototype.classList}t.prototype=Object.create(n.prototype),s(t.prototype,{get ownerSVGElement(){return a(i(this).ownerSVGElement)}}),o(l,t,document.createElementNS(c,"title")),e.wrappers.SVGElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){p.call(this,e)}var n=e.mixin,r=e.registerWrapper,o=e.unwrap,i=e.wrap,a=window.SVGUseElement,s="http://www.w3.org/2000/svg",c=i(document.createElementNS(s,"g")),l=document.createElementNS(s,"use"),u=c.constructor,d=Object.getPrototypeOf(u.prototype),p=d.constructor;t.prototype=Object.create(d),"instanceRoot"in l&&n(t.prototype,{get instanceRoot(){return i(o(this).instanceRoot)},get animatedInstanceRoot(){return i(o(this).animatedInstanceRoot)}}),r(a,t,l),e.wrappers.SVGUseElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.EventTarget,r=e.mixin,o=e.registerWrapper,i=e.unsafeUnwrap,a=e.wrap,s=window.SVGElementInstance;s&&(t.prototype=Object.create(n.prototype),r(t.prototype,{get correspondingElement(){return a(i(this).correspondingElement)},get correspondingUseElement(){return a(i(this).correspondingUseElement)},get parentNode(){return a(i(this).parentNode)},get childNodes(){throw new Error("Not implemented")},get firstChild(){return a(i(this).firstChild)},get lastChild(){return a(i(this).lastChild)},get previousSibling(){return a(i(this).previousSibling)},get nextSibling(){return a(i(this).nextSibling)}}),o(s,t),e.wrappers.SVGElementInstance=t)}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){o(e,this)}var n=e.mixin,r=e.registerWrapper,o=e.setWrapper,i=e.unsafeUnwrap,a=e.unwrap,s=e.unwrapIfNeeded,c=e.wrap,l=window.CanvasRenderingContext2D;n(t.prototype,{get canvas(){return c(i(this).canvas)},drawImage:function(){arguments[0]=s(arguments[0]),i(this).drawImage.apply(i(this),arguments)},createPattern:function(){return arguments[0]=a(arguments[0]),i(this).createPattern.apply(i(this),arguments)}}),r(l,t,document.createElement("canvas").getContext("2d")),e.wrappers.CanvasRenderingContext2D=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){i(e,this)}var n=e.addForwardingProperties,r=e.mixin,o=e.registerWrapper,i=e.setWrapper,a=e.unsafeUnwrap,s=e.unwrapIfNeeded,c=e.wrap,l=window.WebGLRenderingContext;if(l){r(t.prototype,{get canvas(){return c(a(this).canvas)},texImage2D:function(){arguments[5]=s(arguments[5]),a(this).texImage2D.apply(a(this),arguments)},texSubImage2D:function(){arguments[6]=s(arguments[6]),a(this).texSubImage2D.apply(a(this),arguments)}});var u=Object.getPrototypeOf(l.prototype);u!==Object.prototype&&n(u,t.prototype);var d=/WebKit/.test(navigator.userAgent)?{drawingBufferHeight:null,drawingBufferWidth:null}:{};o(l,t,d),e.wrappers.WebGLRenderingContext=t}}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.Node,r=e.GetElementsByInterface,o=e.NonElementParentNodeInterface,i=e.ParentNodeInterface,a=e.SelectorsInterface,s=e.mixin,c=e.registerObject,l=e.registerWrapper,u=window.DocumentFragment;t.prototype=Object.create(n.prototype),s(t.prototype,i),s(t.prototype,a),s(t.prototype,r),s(t.prototype,o),l(u,t,document.createDocumentFragment()),e.wrappers.DocumentFragment=t;var d=c(document.createComment(""));e.wrappers.Comment=d}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){var t=d(u(e).ownerDocument.createDocumentFragment());n.call(this,t),c(t,this);var o=e.shadowRoot;f.set(this,o),this.treeScope_=new r(this,a(o||e)),h.set(this,e)}var n=e.wrappers.DocumentFragment,r=e.TreeScope,o=e.elementFromPoint,i=e.getInnerHTML,a=e.getTreeScope,s=e.mixin,c=e.rewrap,l=e.setInnerHTML,u=e.unsafeUnwrap,d=e.unwrap,p=e.wrap,h=new WeakMap,f=new WeakMap;t.prototype=Object.create(n.prototype),s(t.prototype,{constructor:t,get innerHTML(){return i(this)},set innerHTML(e){l(this,e),this.invalidateShadowRenderer()},get olderShadowRoot(){return f.get(this)||null},get host(){return h.get(this)||null},invalidateShadowRenderer:function(){return h.get(this).invalidateShadowRenderer()},elementFromPoint:function(e,t){return o(this,this.ownerDocument,e,t)},getSelection:function(){return document.getSelection()},get activeElement(){var e=d(this).ownerDocument.activeElement;if(!e||!e.nodeType)return null;for(var t=p(e);!this.contains(t);){for(;t.parentNode;)t=t.parentNode;if(!t.host)return null;t=t.host}return t}}),e.wrappers.ShadowRoot=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){var t=d(e).root;return t instanceof h?t.host:null}function n(t,n){if(t.shadowRoot){n=Math.min(t.childNodes.length-1,n);var r=t.childNodes[n];if(r){var o=e.getDestinationInsertionPoints(r);if(o.length>0){var i=o[0].parentNode;i.nodeType==Node.ELEMENT_NODE&&(t=i)}}}return t}function r(e){return e=u(e),t(e)||e}function o(e){a(e,this)}var i=e.registerWrapper,a=e.setWrapper,s=e.unsafeUnwrap,c=e.unwrap,l=e.unwrapIfNeeded,u=e.wrap,d=e.getTreeScope,p=window.Range,h=e.wrappers.ShadowRoot;o.prototype={get startContainer(){return r(s(this).startContainer)},get endContainer(){return r(s(this).endContainer)},get commonAncestorContainer(){return r(s(this).commonAncestorContainer)},setStart:function(e,t){e=n(e,t),s(this).setStart(l(e),t)},setEnd:function(e,t){e=n(e,t),s(this).setEnd(l(e),t)},setStartBefore:function(e){s(this).setStartBefore(l(e))},setStartAfter:function(e){s(this).setStartAfter(l(e))},setEndBefore:function(e){s(this).setEndBefore(l(e))},setEndAfter:function(e){s(this).setEndAfter(l(e))},selectNode:function(e){s(this).selectNode(l(e))},selectNodeContents:function(e){s(this).selectNodeContents(l(e))},compareBoundaryPoints:function(e,t){return s(this).compareBoundaryPoints(e,c(t))},extractContents:function(){return u(s(this).extractContents())},cloneContents:function(){return u(s(this).cloneContents())},insertNode:function(e){s(this).insertNode(l(e))},surroundContents:function(e){s(this).surroundContents(l(e))},cloneRange:function(){return u(s(this).cloneRange())},isPointInRange:function(e,t){return s(this).isPointInRange(l(e),t)},comparePoint:function(e,t){return s(this).comparePoint(l(e),t)},intersectsNode:function(e){return s(this).intersectsNode(l(e))},toString:function(){return s(this).toString()}},p.prototype.createContextualFragment&&(o.prototype.createContextualFragment=function(e){return u(s(this).createContextualFragment(e))}),i(window.Range,o,document.createRange()),e.wrappers.Range=o}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){e.previousSibling_=e.previousSibling,e.nextSibling_=e.nextSibling,e.parentNode_=e.parentNode}function n(n,o,i){var a=x(n),s=x(o),c=i?x(i):null;if(r(o),t(o),i)n.firstChild===i&&(n.firstChild_=i),i.previousSibling_=i.previousSibling;else{n.lastChild_=n.lastChild,n.lastChild===n.firstChild&&(n.firstChild_=n.firstChild);var l=R(a.lastChild);l&&(l.nextSibling_=l.nextSibling)}e.originalInsertBefore.call(a,s,c)}function r(n){var r=x(n),o=r.parentNode;if(o){var i=R(o);t(n),n.previousSibling&&(n.previousSibling.nextSibling_=n),n.nextSibling&&(n.nextSibling.previousSibling_=n),i.lastChild===n&&(i.lastChild_=n),i.firstChild===n&&(i.firstChild_=n),e.originalRemoveChild.call(o,r)}}function o(e){P.set(e,[])}function i(e){var t=P.get(e);return t||P.set(e,t=[]),t}function a(e){for(var t=[],n=0,r=e.firstChild;r;r=r.nextSibling)t[n++]=r;return t}function s(){for(var e=0;e=0;o--){var i=r[o],a=m(i);if(a){var s=i.olderShadowRoot;s&&(n=f(s));for(var c=0;c=0;u--)l=Object.create(l);["createdCallback","attachedCallback","detachedCallback","attributeChangedCallback"].forEach(function(e){var t=o[e];t&&(l[e]=function(){j(this)instanceof r||O(this),t.apply(j(this),arguments)})});var d={prototype:l};i&&(d["extends"]=i),r.prototype=o,r.prototype.constructor=r,e.constructorTable.set(l,r),e.nativePrototypeTable.set(o,l);k.call(C(this),t,d);return r},E([window.HTMLDocument||window.Document],["registerElement"])}E([window.HTMLBodyElement,window.HTMLDocument||window.Document,window.HTMLHeadElement,window.HTMLHtmlElement],["appendChild","compareDocumentPosition","contains","getElementsByClassName","getElementsByTagName","getElementsByTagNameNS","insertBefore","querySelector","querySelectorAll","removeChild","replaceChild"]),E([window.HTMLBodyElement,window.HTMLHeadElement,window.HTMLHtmlElement],_),E([window.HTMLDocument||window.Document],["adoptNode","importNode","contains","createComment","createDocumentFragment","createElement","createElementNS","createEvent","createEventNS","createRange","createTextNode","createTreeWalker","elementFromPoint","getElementById","getElementsByName","getSelection"]),S(t.prototype,l),S(t.prototype,d),S(t.prototype,f),S(t.prototype,p),S(t.prototype,{get implementation(){var e=H.get(this);return e?e:(e=new a(C(this).implementation),H.set(this,e),e)},get defaultView(){return j(C(this).defaultView)}}),T(window.Document,t,document.implementation.createHTMLDocument("")),window.HTMLDocument&&T(window.HTMLDocument,t),D([window.HTMLBodyElement,window.HTMLDocument||window.Document,window.HTMLHeadElement]);var A=document.implementation.createDocument;a.prototype.createDocument=function(){return arguments[2]=C(arguments[2]),j(A.apply(N(this),arguments))},s(a,"createDocumentType"),s(a,"createHTMLDocument"),c(a,"hasFeature"),T(window.DOMImplementation,a),E([window.DOMImplementation],["createDocument","createDocumentType","createHTMLDocument","hasFeature"]),e.adoptNodeNoRemove=r,e.wrappers.DOMImplementation=a,e.wrappers.Document=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.EventTarget,r=e.wrappers.Selection,o=e.mixin,i=e.registerWrapper,a=e.renderAllPending,s=e.unwrap,c=e.unwrapIfNeeded,l=e.wrap,u=window.Window,d=window.getComputedStyle,p=window.getDefaultComputedStyle,h=window.getSelection;t.prototype=Object.create(n.prototype),u.prototype.getComputedStyle=function(e,t){return l(this||window).getComputedStyle(c(e),t)},p&&(u.prototype.getDefaultComputedStyle=function(e,t){return l(this||window).getDefaultComputedStyle(c(e),t)}),u.prototype.getSelection=function(){return l(this||window).getSelection()},delete window.getComputedStyle,delete window.getDefaultComputedStyle,delete window.getSelection,["addEventListener","removeEventListener","dispatchEvent"].forEach(function(e){u.prototype[e]=function(){var t=l(this||window);return t[e].apply(t,arguments)},delete window[e]}),o(t.prototype,{getComputedStyle:function(e,t){return a(),d.call(s(this),c(e),t)},getSelection:function(){return a(),new r(h.call(s(this)))},get document(){return l(s(this).document)}}),p&&(t.prototype.getDefaultComputedStyle=function(e,t){return a(),p.call(s(this),c(e),t)}),i(u,t,window),e.wrappers.Window=t}(window.ShadowDOMPolyfill),function(e){"use strict";var t=e.unwrap,n=window.DataTransfer||window.Clipboard,r=n.prototype.setDragImage;r&&(n.prototype.setDragImage=function(e,n,o){r.call(this,t(e),n,o)})}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){var t;t=e instanceof i?e:new i(e&&o(e)),r(t,this)}var n=e.registerWrapper,r=e.setWrapper,o=e.unwrap,i=window.FormData;i&&(n(i,t,new i),e.wrappers.FormData=t)}(window.ShadowDOMPolyfill),function(e){"use strict";var t=e.unwrapIfNeeded,n=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.send=function(e){return n.call(this,t(e))}}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){var t=n[e],r=window[t];if(r){var o=document.createElement(e),i=o.constructor;window[t]=i}}var n=(e.isWrapperFor,{a:"HTMLAnchorElement",area:"HTMLAreaElement",audio:"HTMLAudioElement",base:"HTMLBaseElement",body:"HTMLBodyElement",br:"HTMLBRElement",button:"HTMLButtonElement",canvas:"HTMLCanvasElement",caption:"HTMLTableCaptionElement",col:"HTMLTableColElement",content:"HTMLContentElement",data:"HTMLDataElement",datalist:"HTMLDataListElement",del:"HTMLModElement",dir:"HTMLDirectoryElement",div:"HTMLDivElement",dl:"HTMLDListElement",embed:"HTMLEmbedElement",fieldset:"HTMLFieldSetElement",font:"HTMLFontElement",form:"HTMLFormElement",frame:"HTMLFrameElement",frameset:"HTMLFrameSetElement",h1:"HTMLHeadingElement",head:"HTMLHeadElement",hr:"HTMLHRElement",html:"HTMLHtmlElement",iframe:"HTMLIFrameElement",img:"HTMLImageElement",input:"HTMLInputElement",keygen:"HTMLKeygenElement",label:"HTMLLabelElement",legend:"HTMLLegendElement",li:"HTMLLIElement",link:"HTMLLinkElement",map:"HTMLMapElement",marquee:"HTMLMarqueeElement",menu:"HTMLMenuElement",menuitem:"HTMLMenuItemElement",meta:"HTMLMetaElement",meter:"HTMLMeterElement",object:"HTMLObjectElement",ol:"HTMLOListElement",optgroup:"HTMLOptGroupElement",option:"HTMLOptionElement",output:"HTMLOutputElement",p:"HTMLParagraphElement",param:"HTMLParamElement",pre:"HTMLPreElement",progress:"HTMLProgressElement",q:"HTMLQuoteElement",script:"HTMLScriptElement",select:"HTMLSelectElement",shadow:"HTMLShadowElement",source:"HTMLSourceElement",span:"HTMLSpanElement",style:"HTMLStyleElement",table:"HTMLTableElement",tbody:"HTMLTableSectionElement",template:"HTMLTemplateElement",textarea:"HTMLTextAreaElement",thead:"HTMLTableSectionElement",time:"HTMLTimeElement",title:"HTMLTitleElement",tr:"HTMLTableRowElement",track:"HTMLTrackElement",ul:"HTMLUListElement",video:"HTMLVideoElement"});Object.keys(n).forEach(t),Object.getOwnPropertyNames(e.wrappers).forEach(function(t){window[t]=e.wrappers[t]})}(window.ShadowDOMPolyfill),function(e){function t(e,t){var n="";return Array.prototype.forEach.call(e,function(e){n+=e.textContent+"\n\n"}),t||(n=n.replace(d,"")),n}function n(e){var t=document.createElement("style");return t.textContent=e,t}function r(e){var t=n(e);document.head.appendChild(t);var r=[];if(t.sheet)try{r=t.sheet.cssRules}catch(o){}else console.warn("sheet not found",t);return t.parentNode.removeChild(t),r}function o(){C.initialized=!0,document.body.appendChild(C);var e=C.contentDocument,t=e.createElement("base");t.href=document.baseURI,e.head.appendChild(t)}function i(e){C.initialized||o(),document.body.appendChild(C),e(C.contentDocument),document.body.removeChild(C)}function a(e,t){if(t){var o;if(e.match("@import")&&D){var a=n(e);i(function(e){e.head.appendChild(a.impl),o=Array.prototype.slice.call(a.sheet.cssRules,0),t(o)})}else o=r(e),t(o)}}function s(e){e&&l().appendChild(document.createTextNode(e))}function c(e,t){var r=n(e);r.setAttribute(t,""),r.setAttribute(x,""),document.head.appendChild(r)}function l(){return j||(j=document.createElement("style"),j.setAttribute(x,""),j[x]=!0),j}var u={strictStyling:!1,registry:{},shimStyling:function(e,n,r){var o=this.prepareRoot(e,n,r),i=this.isTypeExtension(r),a=this.makeScopeSelector(n,i),s=t(o,!0);s=this.scopeCssText(s,a),e&&(e.shimmedStyle=s),this.addCssToDocument(s,n)},shimStyle:function(e,t){return this.shimCssText(e.textContent,t)},shimCssText:function(e,t){return e=this.insertDirectives(e),this.scopeCssText(e,t)},makeScopeSelector:function(e,t){return e?t?"[is="+e+"]":e:""},isTypeExtension:function(e){return e&&e.indexOf("-")<0},prepareRoot:function(e,t,n){var r=this.registerRoot(e,t,n);return this.replaceTextInStyles(r.rootStyles,this.insertDirectives),this.removeStyles(e,r.rootStyles),this.strictStyling&&this.applyScopeToContent(e,t),r.scopeStyles},removeStyles:function(e,t){for(var n,r=0,o=t.length;r","+","~"],r=e,o="["+t+"]";return n.forEach(function(e){var t=r.split(e);r=t.map(function(e){var t=e.trim().replace(L,"");return t&&n.indexOf(t)<0&&t.indexOf(o)<0&&(e=t.replace(/([^:]*)(:*)(.*)/,"$1"+o+"$2$3")),e}).join(e)}),r},insertPolyfillHostInCssText:function(e){return e.replace(M,b).replace(T,g)},propertiesFromRule:function(e){var t=e.style.cssText;e.style.content&&!e.style.content.match(/['"]+|attr/)&&(t=t.replace(/content:[^;]*;/g,"content: '"+e.style.content+"';"));var n=e.style;for(var r in n)"initial"===n[r]&&(t+=r+": initial; ");return t},replaceTextInStyles:function(e,t){e&&t&&(e instanceof Array||(e=[e]),Array.prototype.forEach.call(e,function(e){e.textContent=t.call(this,e.textContent)},this))},addCssToDocument:function(e,t){e.match("@import")?c(e,t):s(e)}},d=/\/\*[^*]*\*+([^\/*][^*]*\*+)*\//gim,p=/\/\*\s*@polyfill ([^*]*\*+([^\/*][^*]*\*+)*\/)([^{]*?){/gim,h=/polyfill-next-selector[^}]*content\:[\s]*?['"](.*?)['"][;\s]*}([^{]*?){/gim,f=/\/\*\s@polyfill-rule([^*]*\*+([^\/*][^*]*\*+)*)\//gim,m=/(polyfill-rule)[^}]*(content\:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim,w=/\/\*\s@polyfill-unscoped-rule([^*]*\*+([^\/*][^*]*\*+)*)\//gim,v=/(polyfill-unscoped-rule)[^}]*(content\:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim,g="-shadowcsshost",b="-shadowcsscontext",y=")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)",E=new RegExp("("+g+y,"gim"),_=new RegExp("("+b+y,"gim"),S="([>\\s~+[.,{:][\\s\\S]*)?$",T=/\:host/gim,M=/\:host-context/gim,O=g+"-no-combinator",L=new RegExp(g,"gim"),N=(new RegExp(b,"gim"),[/>>>/g,/::shadow/g,/::content/g,/\/deep\//g,/\/shadow\//g,/\/shadow-deep\//g,/\^\^/g,/\^(?!=)/g]),C=document.createElement("iframe");C.style.display="none";var j,D=navigator.userAgent.match("Chrome"),H="shim-shadowdom",x="shim-shadowdom-css",R="no-shim";if(window.ShadowDOMPolyfill){s("style { display: none !important; }\n");var I=ShadowDOMPolyfill.wrap(document),P=I.querySelector("head");P.insertBefore(l(),P.childNodes[0]),document.addEventListener("DOMContentLoaded",function(){e.urlResolver;if(window.HTMLImports&&!HTMLImports.useNative){var t="link[rel=stylesheet]["+H+"]",n="style["+H+"]";HTMLImports.importer.documentPreloadSelectors+=","+t,HTMLImports.importer.importsPreloadSelectors+=","+t,HTMLImports.parser.documentSelectors=[HTMLImports.parser.documentSelectors,t,n].join(",");var r=HTMLImports.parser.parseGeneric;HTMLImports.parser.parseGeneric=function(e){if(!e[x]){var t=e.__importElement||e;if(!t.hasAttribute(H))return void r.call(this,e);e.__resource&&(t=e.ownerDocument.createElement("style"),t.textContent=e.__resource),HTMLImports.path.resolveUrlsInStyle(t,e.href),t.textContent=u.shimStyle(t),t.removeAttribute(H,""),t.setAttribute(x,""),t[x]=!0,t.parentNode!==P&&(e.parentNode===P?P.replaceChild(t,e):this.addElementToDocument(t)),t.__importParsed=!0,this.markParsingComplete(e),this.parseNext()}};var o=HTMLImports.parser.hasResource;HTMLImports.parser.hasResource=function(e){return"link"===e.localName&&"stylesheet"===e.rel&&e.hasAttribute(H)?e.__resource:o.call(this,e)}}})}e.ShadowCSS=u}(window.WebComponents)),function(e){window.ShadowDOMPolyfill?(window.wrap=ShadowDOMPolyfill.wrapIfNeeded,window.unwrap=ShadowDOMPolyfill.unwrapIfNeeded):window.wrap=window.unwrap=function(e){return e}}(window.WebComponents),function(e){"use strict";function t(e){return void 0!==p[e]}function n(){s.call(this),this._isInvalid=!0}function r(e){return""==e&&n.call(this),e.toLowerCase()}function o(e){var t=e.charCodeAt(0);return t>32&&t<127&&[34,35,60,62,63,96].indexOf(t)==-1?e:encodeURIComponent(e)}function i(e){var t=e.charCodeAt(0);return t>32&&t<127&&[34,35,60,62,96].indexOf(t)==-1?e:encodeURIComponent(e)}function a(e,a,s){function c(e){b.push(e)}var l=a||"scheme start",u=0,d="",v=!1,g=!1,b=[];e:for(;(e[u-1]!=f||0==u)&&!this._isInvalid;){var y=e[u];switch(l){case"scheme start":if(!y||!m.test(y)){if(a){c("Invalid scheme.");break e}d="",l="no scheme";continue}d+=y.toLowerCase(),l="scheme";break;case"scheme":if(y&&w.test(y))d+=y.toLowerCase();else{if(":"!=y){if(a){if(f==y)break e;c("Code point not allowed in scheme: "+y);break e}d="",u=0,l="no scheme";continue}if(this._scheme=d,d="",a)break e;t(this._scheme)&&(this._isRelative=!0),l="file"==this._scheme?"relative":this._isRelative&&s&&s._scheme==this._scheme?"relative or authority":this._isRelative?"authority first slash":"scheme data"}break;case"scheme data":"?"==y?(this._query="?",l="query"):"#"==y?(this._fragment="#",l="fragment"):f!=y&&"\t"!=y&&"\n"!=y&&"\r"!=y&&(this._schemeData+=o(y));break;case"no scheme":if(s&&t(s._scheme)){l="relative";continue}c("Missing scheme."),n.call(this);break;case"relative or authority":if("/"!=y||"/"!=e[u+1]){c("Expected /, got: "+y),l="relative";continue}l="authority ignore slashes";break;case"relative":if(this._isRelative=!0,"file"!=this._scheme&&(this._scheme=s._scheme),f==y){this._host=s._host,this._port=s._port,this._path=s._path.slice(),this._query=s._query,this._username=s._username,this._password=s._password;break e}if("/"==y||"\\"==y)"\\"==y&&c("\\ is an invalid code point."),l="relative slash";else if("?"==y)this._host=s._host,this._port=s._port,this._path=s._path.slice(),this._query="?",this._username=s._username,this._password=s._password,l="query";else{if("#"!=y){var E=e[u+1],_=e[u+2];("file"!=this._scheme||!m.test(y)||":"!=E&&"|"!=E||f!=_&&"/"!=_&&"\\"!=_&&"?"!=_&&"#"!=_)&&(this._host=s._host,this._port=s._port,this._username=s._username,this._password=s._password,this._path=s._path.slice(),this._path.pop()),l="relative path";continue}this._host=s._host,this._port=s._port,this._path=s._path.slice(),this._query=s._query,this._fragment="#",this._username=s._username,this._password=s._password,l="fragment"}break;case"relative slash":if("/"!=y&&"\\"!=y){"file"!=this._scheme&&(this._host=s._host,this._port=s._port,this._username=s._username,this._password=s._password),l="relative path";continue}"\\"==y&&c("\\ is an invalid code point."),l="file"==this._scheme?"file host":"authority ignore slashes";break;case"authority first slash":if("/"!=y){c("Expected '/', got: "+y),l="authority ignore slashes";continue}l="authority second slash";break;case"authority second slash":if(l="authority ignore slashes","/"!=y){c("Expected '/', got: "+y);continue}break;case"authority ignore slashes":if("/"!=y&&"\\"!=y){l="authority";continue}c("Expected authority, got: "+y);break;case"authority":if("@"==y){v&&(c("@ already seen."),d+="%40"),v=!0;for(var S=0;S0){var o=n[r-1],i=h(o,e);if(i)return void(n[r-1]=i)}else t(this.observer);n[r]=e},addListeners:function(){this.addListeners_(this.target)},addListeners_:function(e){var t=this.options;t.attributes&&e.addEventListener("DOMAttrModified",this,!0),t.characterData&&e.addEventListener("DOMCharacterDataModified",this,!0),t.childList&&e.addEventListener("DOMNodeInserted",this,!0),(t.childList||t.subtree)&&e.addEventListener("DOMNodeRemoved",this,!0)},removeListeners:function(){this.removeListeners_(this.target)},removeListeners_:function(e){var t=this.options;t.attributes&&e.removeEventListener("DOMAttrModified",this,!0),t.characterData&&e.removeEventListener("DOMCharacterDataModified",this,!0),t.childList&&e.removeEventListener("DOMNodeInserted",this,!0),(t.childList||t.subtree)&&e.removeEventListener("DOMNodeRemoved",this,!0)},addTransientObserver:function(e){if(e!==this.target){this.addListeners_(e),this.transientObservedNodes.push(e);var t=w.get(e);t||w.set(e,t=[]),t.push(this)}},removeTransientObservers:function(){var e=this.transientObservedNodes;this.transientObservedNodes=[],e.forEach(function(e){this.removeListeners_(e);for(var t=w.get(e),n=0;n=200&&e.status<300||304===e.status||0===e.status},load:function(n,r,o){var i=new XMLHttpRequest;return(e.flags.debug||e.flags.bust)&&(n+="?"+Math.random()),i.open("GET",n,t.async),i.addEventListener("readystatechange",function(e){if(4===i.readyState){var n=null;try{var a=i.getResponseHeader("Location");a&&(n="/"===a.substr(0,1)?location.origin+a:a)}catch(e){console.error(e.message)}r.call(o,!t.ok(i)&&i,i.response||i.responseText,n)}}),i.send(),i},loadDocument:function(e,t,n){this.load(e,t,n).responseType="document"}};e.xhr=t}),window.HTMLImports.addModule(function(e){var t=e.xhr,n=e.flags,r=function(e,t){this.cache={},this.onload=e,this.oncomplete=t,this.inflight=0,this.pending={}};r.prototype={addNodes:function(e){this.inflight+=e.length;for(var t,n=0,r=e.length;n-1?atob(a):decodeURIComponent(a),setTimeout(function(){this.receive(e,r,null,a)}.bind(this),0)}else{var s=function(t,n,o){this.receive(e,r,t,n,o)}.bind(this);t.load(e,s)}else setTimeout(function(){this.receive(e,r,{error:"href must be specified"},null)}.bind(this),0)},receive:function(e,t,n,r,o){this.cache[e]=r;for(var i,a=this.pending[e],s=0,c=a.length;s=0&&this.dynamicElements.splice(t,1)},parseImport:function(e){if(e["import"]=e.__doc,window.HTMLImports.__importsParsingHook&&window.HTMLImports.__importsParsingHook(e),e["import"]&&(e["import"].__importParsed=!0),this.markParsingComplete(e),e.__resource&&!e.__error?e.dispatchEvent(new CustomEvent("load",{bubbles:!1})):e.dispatchEvent(new CustomEvent("error",{bubbles:!1})),e.__pending)for(var t;e.__pending.length;)t=e.__pending.shift(),t&&t({target:e});this.parseNext()},parseLink:function(e){t(e)?this.parseImport(e):(e.href=e.href,this.parseGeneric(e))},parseStyle:function(e){var t=e;e=i(e),t.__appliedElement=e,e.__importElement=t,this.parseGeneric(e)},parseGeneric:function(e){this.trackElement(e),this.addElementToDocument(e)},rootImportForElement:function(e){for(var t=e;t.ownerDocument.__importLink;)t=t.ownerDocument.__importLink;return t},addElementToDocument:function(e){var t=this.rootImportForElement(e.__importElement||e);t.parentNode.insertBefore(e,t)},trackElement:function(e,t){var n=this,r=function(o){e.removeEventListener("load",r),e.removeEventListener("error",r),t&&t(o),n.markParsingComplete(e),n.parseNext()};if(e.addEventListener("load",r),e.addEventListener("error",r),l&&"style"===e.localName){var o=!1;if(e.textContent.indexOf("@import")==-1)o=!0;else if(e.sheet){o=!0;for(var i,a=e.sheet.cssRules,s=a?a.length:0,c=0;c=0},hasResource:function(e){return!t(e)||void 0!==e.__doc}};e.parser=p,e.IMPORT_SELECTOR=d}),window.HTMLImports.addModule(function(e){function t(e){return n(e,a)}function n(e,t){return"link"===e.localName&&e.getAttribute("rel")===t}function r(e){return!!Object.getOwnPropertyDescriptor(e,"baseURI")}function o(e,t){var n=document.implementation.createHTMLDocument(a);n._URL=t;var o=n.createElement("base");o.setAttribute("href",t),n.baseURI||r(n)||Object.defineProperty(n,"baseURI",{value:t});var i=n.createElement("meta");return i.setAttribute("charset","utf-8"),n.head.appendChild(i),n.head.appendChild(o),n.body.innerHTML=e,window.HTMLTemplateElement&&HTMLTemplateElement.bootstrap&&HTMLTemplateElement.bootstrap(n),n}var i=e.flags,a=e.IMPORT_LINK_TYPE,s=e.IMPORT_SELECTOR,c=e.rootDocument,l=e.Loader,u=e.Observer,d=e.parser,p={documents:{},documentPreloadSelectors:s,importsPreloadSelectors:[s].join(","),loadNode:function(e){h.addNode(e)},loadSubtree:function(e){var t=this.marshalNodes(e);h.addNodes(t)},marshalNodes:function(e){return e.querySelectorAll(this.loadSelectorsForNode(e))},loadSelectorsForNode:function(e){var t=e.ownerDocument||e;return t===c?this.documentPreloadSelectors:this.importsPreloadSelectors},loaded:function(e,n,r,a,s){if(i.load&&console.log("loaded",e,n),n.__resource=r,n.__error=a,t(n)){var c=this.documents[e];void 0===c&&(c=a?null:o(r,s||e),c&&(c.__importLink=n,this.bootDocument(c)),this.documents[e]=c),n.__doc=c}d.parseNext()},bootDocument:function(e){this.loadSubtree(e),this.observer.observe(e),d.parseNext()},loadedAll:function(){d.parseNext()}},h=new l(p.loaded.bind(p),p.loadedAll.bind(p));if(p.observer=new u,!document.baseURI){var f={get:function(){var e=document.querySelector("base");return e?e.href:window.location.href},configurable:!0};Object.defineProperty(document,"baseURI",f),Object.defineProperty(c,"baseURI",f)}e.importer=p,e.importLoader=h}),window.HTMLImports.addModule(function(e){var t=e.parser,n=e.importer,r={added:function(e){for(var r,o,i,a,s=0,c=e.length;s=0)){n.push(e);for(var r,o=e.querySelectorAll("link[rel="+a+"]"),s=0,c=o.length;s=0&&b(r,HTMLElement),r)}function f(e,t){var n=e[t];e[t]=function(){var e=n.apply(this,arguments);return v(e),e}}var m,w=(e.isIE,e.upgradeDocumentTree),v=e.upgradeAll,g=e.upgradeWithDefinition,b=e.implementPrototype,y=e.useNative,E=["annotation-xml","color-profile","font-face","font-face-src","font-face-uri","font-face-format","font-face-name","missing-glyph"],_={},S="http://www.w3.org/1999/xhtml",T=document.createElement.bind(document),M=document.createElementNS.bind(document);m=Object.__proto__||y?function(e,t){return e instanceof t}:function(e,t){if(e instanceof t)return!0;for(var n=e;n;){if(n===t.prototype)return!0;n=n.__proto__}return!1},f(Node.prototype,"cloneNode"),f(document,"importNode"),document.registerElement=t,document.createElement=h,document.createElementNS=p,e.registry=_,e["instanceof"]=m,e.reservedTagList=E,e.getRegisteredDefinition=l,document.register=document.registerElement}),function(e){function t(){i(window.wrap(document)),window.CustomElements.ready=!0;var e=window.requestAnimationFrame||function(e){setTimeout(e,16)};e(function(){setTimeout(function(){window.CustomElements.readyTime=Date.now(),window.HTMLImports&&(window.CustomElements.elapsed=window.CustomElements.readyTime-window.HTMLImports.readyTime),document.dispatchEvent(new CustomEvent("WebComponentsReady",{bubbles:!0}))})})}var n=e.useNative,r=e.initializeModules;e.isIE;if(n){var o=function(){};e.watchShadow=o,e.upgrade=o,e.upgradeAll=o,e.upgradeDocumentTree=o,e.upgradeSubtree=o,e.takeRecords=o,e["instanceof"]=function(e,t){return e instanceof t}}else r();var i=e.upgradeDocumentTree,a=e.upgradeDocument;if(window.wrap||(window.ShadowDOMPolyfill?(window.wrap=window.ShadowDOMPolyfill.wrapIfNeeded,window.unwrap=window.ShadowDOMPolyfill.unwrapIfNeeded):window.wrap=window.unwrap=function(e){return e}),window.HTMLImports&&(window.HTMLImports.__importsParsingHook=function(e){e["import"]&&a(wrap(e["import"]))}),"complete"===document.readyState||e.flags.eager)t();else if("interactive"!==document.readyState||window.attachEvent||window.HTMLImports&&!window.HTMLImports.ready){var s=window.HTMLImports&&!window.HTMLImports.ready?"HTMLImportsLoaded":"DOMContentLoaded";window.addEventListener(s,t)}else t()}(window.CustomElements),function(e){Function.prototype.bind||(Function.prototype.bind=function(e){var t=this,n=Array.prototype.slice.call(arguments,1);return function(){var r=n.slice();return r.push.apply(r,arguments),t.apply(e,r)}})}(window.WebComponents),function(e){var t=document.createElement("style");t.textContent="body {transition: opacity ease-in 0.2s; } \nbody[unresolved] {opacity: 0; display: block; overflow: hidden; position: relative; } \n";var n=document.querySelector("head");n.insertBefore(t,n.firstChild)}(window.WebComponents),function(e){window.Platform=e}(window.WebComponents); \ No newline at end of file diff --git a/assets/sass/base/_page.scss b/assets/sass/base/_page.scss deleted file mode 100644 index 84e97e3..0000000 --- a/assets/sass/base/_page.scss +++ /dev/null @@ -1,50 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Basic */ - - // MSIE: Required for IEMobile. - @-ms-viewport { - width: device-width; - } - - // MSIE: Prevents scrollbar from overlapping content. - body { - -ms-overflow-style: scrollbar; - } - - // Ensures page width is always >=320px. - @include breakpoint(xsmall) { - html, body { - min-width: 320px; - } - } - - body { - background-color: _palette(bg); - - background-image: linear-gradient(to top, transparentize(_palette(bg), 0.2), transparentize(_palette(bg), 0.2)), - url('../../images/bg.jpg'); - - background-size: auto, - cover; - - background-attachment: fixed, - fixed; - - background-position: center, - center; - - // Prevents animation/transition "flicker" on page load. - // Automatically added/removed by js/main.js. - &.is-loading { - *, *:before, *:after { - @include vendor('animation', 'none !important'); - @include vendor('transition', 'none !important'); - } - } - - } \ No newline at end of file diff --git a/assets/sass/base/_typography.scss b/assets/sass/base/_typography.scss deleted file mode 100644 index fa8845a..0000000 --- a/assets/sass/base/_typography.scss +++ /dev/null @@ -1,218 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Type */ - - body, input, select, textarea { - color: _palette(fg); - font-family: _font(family); - font-size: 16.5pt; - font-weight: _font(weight); - line-height: 1.65; - - @include breakpoint(xlarge) { - font-size: 13pt; - } - - @include breakpoint(large) { - font-size: 12pt; - } - - @include breakpoint(medium) { - font-size: 12pt; - } - - @include breakpoint(small) { - font-size: 12pt; - } - - @include breakpoint(xsmall) { - font-size: 12pt; - } - } - - a { - @include vendor('transition', 'color #{_duration(transition)} ease-in-out, border-bottom-color #{_duration(transition)} ease-in-out'); - border-bottom: dotted 1px _palette(fg-light); - color: _palette(fg-bold); - text-decoration: none; - - &:hover { - border-bottom-color: transparent; - color: _palette(fg-bold) !important; - } - - &.special:not(.button) { - @include icon; - border-bottom: 0; - display: block; - font-family: _font(family-heading); - font-size: 0.8em; - font-weight: _font(weight-heading-bold); - letter-spacing: _font(kern-heading); - margin: 0 0 _size(element-margin) 0; - text-transform: uppercase; - - &:before { - @include vendor('transition', 'background-color #{_duration(transition)} ease-in-out'); - border-radius: 100%; - border: solid 2px _palette(border); - content: '\f105'; - display: inline-block; - font-size: 1.25em; - height: 2em; - line-height: 1.65em; - margin-right: 0.85em; - text-align: center; - text-indent: 0.15em; - vertical-align: middle; - width: 2em; - } - - &:hover { - &:before { - background-color: _palette(border-bg); - } - } - - &:active { - &:before { - background-color: _palette(border2-bg); - } - } - } - } - - strong, b { - color: _palette(fg-bold); - font-weight: _font(weight-bold); - } - - em, i { - font-style: italic; - } - - p { - margin: 0 0 _size(element-margin) 0; - } - - h1, h2, h3, h4, h5, h6 { - color: _palette(fg-bold); - font-family: _font(family-heading); - font-weight: _font(weight-heading-bold); - letter-spacing: _font(kern-heading); - margin: 0 0 (_size(element-margin) * 0.5) 0; - text-transform: uppercase; - - a { - color: inherit; - text-decoration: none; - } - - span { - font-weight: _font(weight-heading); - } - - &.major { - padding-bottom: 1em; - border-bottom: solid 2px _palette(border); - } - } - - h2 { - font-size: 1.2em; - } - - h3 { - font-size: 0.9em; - } - - h4 { - font-size: 0.7em; - } - - h5 { - font-size: 0.7em; - } - - h6 { - font-size: 0.7em; - } - - @include breakpoint(small) { - h2 { - font-size: 1em; - } - - h3 { - font-size: 0.8em - } - } - - sub { - font-size: 0.8em; - position: relative; - top: 0.5em; - } - - sup { - font-size: 0.8em; - position: relative; - top: -0.5em; - } - - blockquote { - border-left: solid 4px _palette(border); - font-style: italic; - margin: 0 0 _size(element-margin) 0; - padding: (_size(element-margin) / 4) 0 (_size(element-margin) / 4) _size(element-margin); - } - - code { - background: _palette(border-bg); - border-radius: _size(border-radius); - border: solid 2px _palette(border); - font-family: _font(family-fixed); - font-size: 0.9em; - margin: 0 0.25em; - padding: 0.25em 0.65em; - } - - pre { - -webkit-overflow-scrolling: touch; - font-family: _font(family-fixed); - font-size: 0.9em; - margin: 0 0 _size(element-margin) 0; - - code { - display: block; - line-height: 1.75em; - padding: 1em 1.5em; - overflow-x: auto; - } - } - - hr { - border: 0; - border-bottom: solid 2px _palette(border); - margin: (_size(element-margin) * 1.25) 0; - - &.major { - margin: (_size(element-margin) * 2) 0; - } - } - - .align-left { - text-align: left; - } - - .align-center { - text-align: center; - } - - .align-right { - text-align: right; - } \ No newline at end of file diff --git a/assets/sass/components/_box.scss b/assets/sass/components/_box.scss deleted file mode 100644 index 61a4d9b..0000000 --- a/assets/sass/components/_box.scss +++ /dev/null @@ -1,26 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Box */ - - .box { - border-radius: _size(border-radius); - border: solid 2px _palette(border); - margin-bottom: _size(element-margin); - padding: 1.5em; - - > :last-child, - > :last-child > :last-child, - > :last-child > :last-child > :last-child { - margin-bottom: 0; - } - - &.alt { - border: 0; - border-radius: 0; - padding: 0; - } - } \ No newline at end of file diff --git a/assets/sass/components/_button.scss b/assets/sass/components/_button.scss deleted file mode 100644 index 1a62702..0000000 --- a/assets/sass/components/_button.scss +++ /dev/null @@ -1,91 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Button */ - - input[type="submit"], - input[type="reset"], - input[type="button"], - button, - .button { - @include vendor('appearance', 'none'); - @include vendor('transition', 'background-color #{_duration(transition)} ease-in-out'); - background-color: transparent; - border-radius: _size(border-radius); - border: 0; - box-shadow: inset 0 0 0 2px _palette(border); - color: _palette(fg-bold) !important; - cursor: pointer; - display: inline-block; - font-family: _font(family-heading); - font-size: 0.8em; - font-weight: _font(weight-heading-bold); - height: 3.75em; - letter-spacing: _font(kern-heading); - line-height: 3.75em; - padding: 0 2.25em; - text-align: center; - text-decoration: none; - text-transform: uppercase; - white-space: nowrap; - - &:hover { - background-color: _palette(border-bg); - } - - &:active { - background-color: _palette(border2-bg); - } - - &.icon { - &:before { - margin-right: 0.5em; - color: _palette(fg-light); - } - } - - &.special { - background-color: _palette(accent); - box-shadow: none; - - &:hover { - background-color: desaturate(lighten(_palette(accent), 3), 1.5); - } - - &:active { - background-color: saturate(darken(_palette(accent), 3), 1.5); - } - - &.icon { - &:before { - color: mix(_palette(fg-bold), _palette(accent), 25%); - } - } - } - - &.fit { - display: block; - margin: 0 0 (_size(element-margin) * 0.5) 0; - width: 100%; - } - - &.small { - font-size: 0.6em; - } - - &.big { - font-size: 1em; - } - - &.disabled, - &:disabled { - opacity: 0.25; - } - - @include breakpoint(xsmall) { - padding: 0; - } - } \ No newline at end of file diff --git a/assets/sass/components/_features.scss b/assets/sass/components/_features.scss deleted file mode 100644 index 9c6041c..0000000 --- a/assets/sass/components/_features.scss +++ /dev/null @@ -1,71 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Features */ - - .features { - @include vendor('display', 'flex'); - @include vendor('flex-wrap', 'wrap'); - margin: 0 0 _size(element-margin) 0; - - article { - @include padding(1.75em, 1.75em); - background-color: desaturate(lighten(_palette(bg), 3), 1.5); - border-radius: _size(border-radius); - margin: (_size(section-spacing, large) * 0.5) _size(section-spacing, large) (_size(section-spacing, large) * 0.5) 0; - width: calc(50% - #{_size(section-spacing, large) * 0.5}); - - &:nth-child(2n) { - margin-right: 0; - } - - .image { - border-radius: _size(border-radius) _size(border-radius) 0 0; - display: block; - margin-bottom: 1.75em; - margin-left: -1.75em; - margin-top: -1.75em; - position: relative; - width: calc(100% + #{3.5em}); - - img { - border-radius: _size(border-radius) _size(border-radius) 0 0; - width: 100%; - } - } - } - - @include breakpoint(medium) { - article { - margin: (_size(section-spacing, medium) * 0.5) _size(section-spacing, medium) (_size(section-spacing, medium) * 0.5) 0; - width: calc(50% - #{_size(section-spacing, medium) * 0.5}); - } - } - - @include breakpoint(small) { - article { - @include padding(1.5em, 1.5em); - margin: (_size(section-spacing, small) * 0.5) _size(section-spacing, small) (_size(section-spacing, small) * 0.5) 0; - width: calc(50% - #{_size(section-spacing, small) * 0.5} - 1px); - - .image { - margin-bottom: 1.5em; - margin-left: -1.5em; - margin-top: -1.5em; - width: calc(100% + #{3em}); - } - } - } - - @include breakpoint(xsmall) { - display: block; - - article { - width: 100%; - margin: 0 0 _size(element-margin) 0 !important; - } - } - } \ No newline at end of file diff --git a/assets/sass/components/_form.scss b/assets/sass/components/_form.scss deleted file mode 100644 index 2b61b5d..0000000 --- a/assets/sass/components/_form.scss +++ /dev/null @@ -1,206 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Form */ - - form { - margin: 0 0 _size(element-margin) 0; - - .field { - margin: 0 0 _size(element-margin) 0; - - label { - margin-top: _size(element-margin) * -0.75; - } - - &:first-child { - label { - margin-top: 0; - } - } - } - - > :last-child { - margin-bottom: 0; - } - } - - label { - color: _palette(fg-bold); - display: block; - font-family: _font(family-heading); - font-size: 0.8em; - font-weight: _font(weight-heading-bold); - letter-spacing: _font(kern-heading); - margin: 0 0 (_size(element-margin) * 0.35) 0; - text-transform: uppercase; - } - - input[type="text"], - input[type="password"], - input[type="email"], - input[type="tel"], - select, - textarea { - @include vendor('appearance', 'none'); - background: _palette(border-bg); - border-radius: _size(border-radius); - border: none; - border: solid 2px _palette(border); - color: inherit; - display: block; - outline: 0; - padding: 0 1em; - text-decoration: none; - width: 100%; - - &:invalid { - box-shadow: none; - } - - &:focus { - border-color: desaturate(lighten(_palette(accent), 6), 3); - } - } - - .select-wrapper { - @include icon; - display: block; - position: relative; - - &:before { - color: _palette(border); - content: '\f078'; - display: block; - height: _size(element-height); - line-height: _size(element-height); - pointer-events: none; - position: absolute; - right: 0; - text-align: center; - top: 0; - width: _size(element-height); - } - - select::-ms-expand { - display: none; - } - } - - select { - option { - color: _palette(fg-bold); - background: _palette(bg); - } - } - - input[type="text"], - input[type="password"], - input[type="email"], - select { - height: _size(element-height); - } - - textarea { - padding: 0.75em 1em; - } - - input[type="checkbox"], - input[type="radio"], { - @include vendor('appearance', 'none'); - display: block; - float: left; - margin-right: -2em; - opacity: 0; - width: 1em; - z-index: -1; - - & + label { - @include icon; - color: _palette(fg); - cursor: pointer; - display: inline-block; - font-size: 1em; - font-family: _font(family); - text-transform: none; - letter-spacing: 0; - font-weight: _font(weight); - padding-left: (_size(element-height) * 0.6) + 0.75em; - padding-right: 0.75em; - position: relative; - - &:before { - background: _palette(border-bg); - border-radius: _size(border-radius); - border: solid 2px _palette(border); - content: ''; - display: inline-block; - height: (_size(element-height) * 0.6); - left: 0; - line-height: (_size(element-height) * 0.575); - position: absolute; - text-align: center; - top: 0; - width: (_size(element-height) * 0.6); - } - } - - &:checked + label { - &:before { - background: _palette(fg-bold); - border-color: _palette(fg-bold); - content: '\f00c'; - color: _palette(bg); - } - } - - &:focus + label { - &:before { - border-color: _palette(accent); - } - } - } - - input[type="checkbox"] { - & + label { - &:before { - border-radius: _size(border-radius); - } - } - } - - input[type="radio"] { - & + label { - &:before { - border-radius: 100%; - } - } - } - - ::-webkit-input-placeholder { - color: _palette(fg-light) !important; - opacity: 1.0; - } - - :-moz-placeholder { - color: _palette(fg-light) !important; - opacity: 1.0; - } - - ::-moz-placeholder { - color: _palette(fg-light) !important; - opacity: 1.0; - } - - :-ms-input-placeholder { - color: _palette(fg-light) !important; - opacity: 1.0; - } - - .polyfill-placeholder { - color: _palette(fg-light) !important; - opacity: 1.0; - } \ No newline at end of file diff --git a/assets/sass/components/_icon.scss b/assets/sass/components/_icon.scss deleted file mode 100644 index f0c4a96..0000000 --- a/assets/sass/components/_icon.scss +++ /dev/null @@ -1,17 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Icon */ - - .icon { - @include icon; - border-bottom: none; - position: relative; - - > .label { - display: none; - } - } \ No newline at end of file diff --git a/assets/sass/components/_image.scss b/assets/sass/components/_image.scss deleted file mode 100644 index b8f6a48..0000000 --- a/assets/sass/components/_image.scss +++ /dev/null @@ -1,60 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Image */ - - .image { - border-radius: _size(border-radius); - border: 0; - display: inline-block; - position: relative; - - img { - border-radius: _size(border-radius); - display: block; - } - - &.left, - &.right { - max-width: 40%; - - img { - width: 100%; - } - } - - &.left { - float: left; - padding: 0 1.5em 1em 0; - top: 0.25em; - } - - &.right { - float: right; - padding: 0 0 1em 1.5em; - top: 0.25em; - } - - &.fit { - display: block; - margin: 0 0 _size(element-margin) 0; - width: 100%; - - img { - width: 100%; - } - } - - &.main { - display: block; - margin: 0 0 (_size(element-margin) * 1.5) 0; - width: 100%; - - img { - width: 100%; - } - } - } \ No newline at end of file diff --git a/assets/sass/components/_list.scss b/assets/sass/components/_list.scss deleted file mode 100644 index 224ccc1..0000000 --- a/assets/sass/components/_list.scss +++ /dev/null @@ -1,284 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* List */ - - ol { - list-style: decimal; - margin: 0 0 _size(element-margin) 0; - padding-left: 1.25em; - - li { - padding-left: 0.25em; - } - } - - ul { - list-style: disc; - margin: 0 0 _size(element-margin) 0; - padding-left: 1em; - - li { - padding-left: 0.5em; - } - - &.alt { - list-style: none; - padding-left: 0; - - li { - border-top: solid 1px _palette(border); - padding: 0.5em 0; - - &:first-child { - border-top: 0; - padding-top: 0; - } - } - } - - &.icons { - cursor: default; - list-style: none; - padding-left: 0; - - li { - display: inline-block; - padding: 0 1em 0 0; - - &:last-child { - padding-right: 0; - } - - .icon { - &:before { - font-size: 1.25em; - } - } - } - } - - &.actions { - cursor: default; - list-style: none; - padding-left: 0; - - li { - display: inline-block; - padding: 0 (_size(element-margin) * 0.5) 0 0; - vertical-align: middle; - - &:last-child { - padding-right: 0; - } - } - - &.small { - li { - padding: 0 (_size(element-margin) * 0.25) 0 0; - } - } - - &.vertical { - li { - display: block; - padding: (_size(element-margin) * 0.5) 0 0 0; - - &:first-child { - padding-top: 0; - } - - > * { - margin-bottom: 0; - } - } - - &.small { - li { - padding: (_size(element-margin) * 0.25) 0 0 0; - - &:first-child { - padding-top: 0; - } - } - } - } - - &.fit { - display: table; - margin-left: (_size(element-margin) * -0.5); - padding: 0; - table-layout: fixed; - width: calc(100% + #{(_size(element-margin) * 0.5)}); - - li { - display: table-cell; - padding: 0 0 0 (_size(element-margin) * 0.5); - - > * { - margin-bottom: 0; - } - } - - &.small { - margin-left: (_size(element-margin) * -0.25); - width: calc(100% + #{(_size(element-margin) * 0.25)}); - - li { - padding: 0 0 0 (_size(element-margin) * 0.25); - } - } - } - - @include breakpoint(xsmall) { - margin: 0 0 _size(element-margin) 0; - - li { - padding: (_size(element-margin) * 0.5) 0 0 0; - display: block; - text-align: center; - width: 100%; - - &:first-child { - padding-top: 0; - } - - > * { - width: 100%; - margin: 0 !important; - } - } - - &.small { - li { - padding: (_size(element-margin) * 0.25) 0 0 0; - - &:first-child { - padding-top: 0; - } - } - } - } - } - - &.contact { - list-style: none; - padding: 0; - - li { - @include icon; - margin: (_size(element-margin) * 1.25) 0 0 0; - padding: 0 0 0 3.25em; - position: relative; - - &:before { - border-radius: 100%; - border: solid 2px _palette(border); - display: inline-block; - font-size: 0.8em; - height: 2.5em; - left: 0; - line-height: 2.35em; - position: absolute; - text-align: center; - top: 0; - width: 2.5em; - } - - &:first-child { - margin-top: 0; - } - } - - @include breakpoint(small) { - li { - margin: (_size(element-margin) * 0.75) 0 0 0; - } - } - } - - &.pagination { - cursor: default; - list-style: none; - padding-left: 0; - - li { - display: inline-block; - padding-left: 0; - vertical-align: middle; - - > .page { - @include vendor('transition', ( - 'background-color #{_duration(transition)} ease-in-out', - 'color #{_duration(transition)} ease-in-out' - )); - border-bottom: 0; - border-radius: _size(border-radius); - display: inline-block; - height: 1.5em; - line-height: 1.5em; - margin: 0 0.125em; - min-width: 1.5em; - padding: 0 0.5em; - text-align: center; - - &:hover { - background-color: _palette(border-bg); - } - - &.active { - background-color: _palette(accent); - } - } - - &:first-child { - padding-right: 0.75em; - } - - &:last-child { - padding-left: 0.75em; - } - } - - @include breakpoint(xsmall) { - li { - &:nth-child(n+2):nth-last-child(n+2) { - display: none; - } - - .button { - width: 100%; - } - - &:first-child { - width: calc(50% - 2px); - text-align: left; - padding-right: 0.325em; - } - - &:last-child { - width: calc(50% - 2px); - text-align: right; - padding-left: 0.325em; - } - } - } - } - } - - dl { - margin: 0 0 _size(element-margin) 0; - - dt { - display: block; - font-weight: _font(weight-bold); - margin: 0 0 (_size(element-margin) * 0.5) 0; - } - - dd { - margin-left: _size(element-margin); - } - } \ No newline at end of file diff --git a/assets/sass/components/_section.scss b/assets/sass/components/_section.scss deleted file mode 100644 index fe22c6a..0000000 --- a/assets/sass/components/_section.scss +++ /dev/null @@ -1,13 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Section/Article */ - - section, article { - &.special { - text-align: center; - } - } \ No newline at end of file diff --git a/assets/sass/components/_table.scss b/assets/sass/components/_table.scss deleted file mode 100644 index 6d5c37c..0000000 --- a/assets/sass/components/_table.scss +++ /dev/null @@ -1,81 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Table */ - - .table-wrapper { - -webkit-overflow-scrolling: touch; - overflow-x: auto; - } - - table { - margin: 0 0 _size(element-margin) 0; - width: 100%; - - tbody { - tr { - border: solid 1px _palette(border); - border-left: 0; - border-right: 0; - - &:nth-child(2n + 1) { - background-color: _palette(border-bg); - } - } - } - - td { - padding: 0.75em 0.75em; - } - - th { - color: _palette(fg-bold); - font-size: 0.9em; - font-weight: _font(weight-bold); - padding: 0 0.75em 0.75em 0.75em; - text-align: left; - } - - thead { - border-bottom: solid 2px _palette(border); - } - - tfoot { - border-top: solid 2px _palette(border); - } - - &.alt { - border-collapse: separate; - - tbody { - tr { - td { - border: solid 1px _palette(border); - border-left-width: 0; - border-top-width: 0; - - &:first-child { - border-left-width: 1px; - } - } - - &:first-child { - td { - border-top-width: 1px; - } - } - } - } - - thead { - border-bottom: 0; - } - - tfoot { - border-top: 0; - } - } - } \ No newline at end of file diff --git a/assets/sass/ie8.scss b/assets/sass/ie8.scss deleted file mode 100644 index bc084c7..0000000 --- a/assets/sass/ie8.scss +++ /dev/null @@ -1,190 +0,0 @@ -@import 'libs/vars'; -@import 'libs/functions'; -@import 'libs/mixins'; -@import 'libs/skel'; - -/* - Solid State by HTML5 UP - html5up.net | @ajlkn - Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -*/ - -/* Basic */ - - body { - -ms-behavior: url('assets/js/backgroundsize.min.htc'); - } - -/* Type */ - - h1, h2, h3, h4, h5, h6 { - &.major { - border-bottom: solid 2px _palette(fg-bold); - } - } - - blockquote { - border-left: solid 4px _palette(fg-bold); - } - - code { - border: solid 2px _palette(fg-bold); - } - - hr { - border-bottom: solid 2px _palette(fg-bold); - } - -/* Button */ - - input[type="submit"], - input[type="reset"], - input[type="button"], - button, - .button { - position: relative; - -ms-behavior: url('assets/js/ie/PIE.htc'); - border: solid 2px _palette(fg-bold); - - &.special { - border: 0; - } - } - -/* Form */ - - input[type="text"], - input[type="password"], - input[type="email"], - input[type="tel"], - select, - textarea { - position: relative; - -ms-behavior: url('assets/js/ie/PIE.htc'); - background: transparent; - border: solid 2px _palette(fg-bold); - } - -/* Table */ - - table { - tbody { - tr { - border: solid 1px _palette(fg-bold); - border-left: 0; - border-right: 0; - } - } - - &.alt { - tbody { - tr { - td { - border: solid 1px _palette(fg-bold); - border-left-width: 0; - border-top-width: 0; - - &:first-child { - border-left-width: 1px; - } - } - - &:first-child { - td { - border-top-width: 1px; - } - } - } - } - - thead { - border-bottom: 0; - } - - tfoot { - border-top: 0; - } - } - } - -/* Features */ - - .features { - article { - -ms-behavior: url('assets/js/ie/PIE.htc'); - position: relative; - width: 44%; - - .image { - margin-top: 0; - margin-left: 0; - width: 100%; - } - } - } - -/* Menu */ - - #menu { - background: _palette(bg); - - h2 { - border-bottom: solid 2px _palette(fg-bold); - } - } - -/* Header */ - - #header { - background-color: desaturate(lighten(_palette(bg), 3), 1.5); - } - -/* Wrapper */ - - .wrapper { - &:before, &:after { - display: none; - } - - margin: 0; - - &.spotlight { - .image { - -ms-behavior: url('assets/js/ie/PIE.htc'); - - img { - position: relative; - -ms-behavior: url('assets/js/ie/PIE.htc'); - } - } - } - } - -/* Banner */ - - #banner { - .logo { - .icon { - border: solid 2px _palette(fg-bold); - -ms-behavior: url('assets/js/ie/PIE.htc'); - } - } - - h2 { - border-bottom: solid 2px _palette(fg-bold); - } - } - -/* Footer */ - - #footer { - .inner { - .copyright { - border-top: solid 2px _palette(fg-bold); - - li { - border-left: solid 2px _palette(fg-bold); - } - } - } - } \ No newline at end of file diff --git a/assets/sass/ie9.scss b/assets/sass/ie9.scss index e3a87ad..3acd441 100644 --- a/assets/sass/ie9.scss +++ b/assets/sass/ie9.scss @@ -1,106 +1,54 @@ -@import 'libs/vars'; -@import 'libs/functions'; -@import 'libs/mixins'; -@import 'libs/skel'; - -/* - Solid State by HTML5 UP - html5up.net | @ajlkn - Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -*/ - -/* Basic */ - - body { - background-color: _palette(bg); - background-image: url('../../images/bg.jpg'); - background-size: cover; - background-attachment: fixed; - background-position: center; - - &:before { - background: transparentize(_palette(bg), 0.2); - content: ''; - display: block; - height: 100%; - left: 0; - position: fixed; - top: 0; - width: 100%; - } - - > * { - position: relative; - z-index: 1; - } - } - -/* Features */ - - .features { - article { - display: inline-block; - width: 45%; - } - } - -/* Menu */ - - #menu { - .inner { - margin: 4em auto; - } - } - -/* Wrapper */ - - #wrapper { - > header { - background: none !important; - } - } - - .wrapper { - &.spotlight { - .inner { - text-align: left !important; - } - - .image { - display: inline-block; - margin: 0 _size(section-spacing, large) _size(element-margin) 0 !important; - vertical-align: middle; - width: 24%; - } - - .content { - display: inline-block; - vertical-align: middle; - width: 70%; - } - } - } - -/* Banner */ - - #banner { - background: none !important; - } - -/* Footer */ - - #footer { - background: none !important; - - .inner { - form { - display: inline-block; - width: 45%; - } - - .contact { - display: inline-block; - width: 45%; - } - } - } \ No newline at end of file +@import 'libs/vars'; +@import 'libs/functions'; +@import 'libs/mixins'; +@import 'libs/skel'; + +/* +Landed by HTML5 UP +html5up.net | @ajlkn +Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) +*/ + +/* Loader */ +body.landing { + &::before, + &::after { + display: none !important; + } +} + +/* Icon */ +.icon { + &.alt { + color: inherit !important; + } + + &.major { + &.alt { + &::before { + color: _palette(fg-bold) !important; + } + } + } +} + +/* Banner */ +#banner { + &::after { + background-color: _palette(bg-transparent); + } +} + +/* Footer */ +#footer { + .icons { + .icon { + &.alt { + &::before { + color: _palette(fg-bold) !important; + } + } + } + } +} + diff --git a/assets/sass/layout/_banner.scss b/assets/sass/layout/_banner.scss deleted file mode 100644 index c9dcf56..0000000 --- a/assets/sass/layout/_banner.scss +++ /dev/null @@ -1,140 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Banner */ - - #banner { - @include padding(10em, 0, (0, 0, _size(wrapper-edges, large) * -0.5, 0)); - - .inner { - margin: 0 auto; - width: _size(inner); - } - - .logo { - @include vendor('transition', ( - 'opacity 2s ease', - 'transform 1s ease', - )); - @include vendor('transform', 'translateY(0)'); - opacity: 1; - margin: 0 0 (_size(element-margin) * 0.65) 0; - - .icon { - border-radius: 100%; - border: solid 2px _palette(border); - cursor: default; - display: inline-block; - font-size: 2em; - height: 2.25em; - line-height: 2.25em; - text-align: center; - width: 2.25em; - } - } - - h2 { - @include vendor('transition', ( - 'opacity 0.5s ease', - 'transform 0.5s ease', - 'filter 0.25s ease', - )); - @include vendor('transform', 'translateX(0)'); - @include vendor('transition-delay', '0.65s'); - @include vendor('filter', 'blur(0)'); - opacity: 1; - border-bottom: solid 2px _palette(border); - font-size: 2.25em; - margin-bottom: _size(element-margin) * 0.4; - padding-bottom: _size(element-margin) * 0.2; - } - - p { - @include vendor('transition', ( - 'opacity 0.5s ease', - 'transform 0.5s ease', - 'filter 0.25s ease', - )); - @include vendor('transform', 'translateX(0)'); - @include vendor('transition-delay', '0.8s'); - @include vendor('filter', 'blur(0)'); - opacity: 1; - font-family: _font(family-heading); - font-size: 1em; - font-weight: _font(weight-heading); - letter-spacing: _font(kern-heading); - line-height: 2; - text-transform: uppercase; - } - - @include breakpoint(large) { - @include padding(7em, 0, (0, 0, _size(wrapper-edges, large) * 0.5, 0)); - - background-color: _palette(bg); - - background-image: linear-gradient(to top, transparentize(_palette(bg), 0.2), transparentize(_palette(bg), 0.2)), - url('../../images/bg.jpg'); - - background-size: auto, - cover; - - background-position: center, - center; - - margin-bottom: (_size(wrapper-edges, large) * -1); - } - - @include breakpoint(medium) { - @include padding(12em, 3em, (0, 0, _size(wrapper-edges, medium) * 0.5, 0)); - - margin-bottom: (_size(wrapper-edges, medium) * -1); - - .inner { - width: 100%; - } - } - - @include breakpoint(small) { - @include padding(5em, 2em, (0, 0, _size(wrapper-edges, small) * 0.5, 0)); - - margin-bottom: (_size(wrapper-edges, small) * -1); - - .logo { - margin: 0 0 (_size(element-margin) * 0.5) 0; - - .icon { - font-size: 1.5em; - } - } - - h2 { - font-size: 1.5em; - } - - p { - font-size: 0.8em; - } - } - - body.is-loading & { - .logo { - @include vendor('transform', 'translateY(0.5em)'); - opacity: 0; - } - - h2 { - opacity: 0; - @include vendor('transform', 'translateX(0.25em)'); - @include vendor('filter', 'blur(2px)'); - } - - p { - opacity: 0; - @include vendor('transform', 'translateX(0.5em)'); - @include vendor('filter', 'blur(2px)'); - } - } - } \ No newline at end of file diff --git a/assets/sass/layout/_footer.scss b/assets/sass/layout/_footer.scss deleted file mode 100644 index cded8b4..0000000 --- a/assets/sass/layout/_footer.scss +++ /dev/null @@ -1,143 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Footer */ - - #footer { - .inner { - @include padding(5em, 0); - @include vendor('display', 'flex'); - @include vendor('flex-direction', 'row'); - @include vendor('flex-wrap', 'wrap'); - margin: 0 auto; - width: _size(inner); - - > * { - width: 100%; - } - - form { - margin: 0 _size(section-spacing, large) 0 0; - width: calc(50% - #{_size(section-spacing, large) * 0.5}); - } - - .contact { - width: calc(50% - #{_size(section-spacing, large) * 0.5}); - } - - .copyright { - border-top: solid 2px _palette(border); - list-style: none; - margin: (_size(element-margin) * 2) 0 _size(element-margin) 0; - padding: _size(element-margin) 0 0 0; - width: 100%; - - li { - border-left: solid 2px _palette(border); - color: _palette(fg-light); - display: inline-block; - font-size: 0.9em; - line-height: 1; - margin-left: 1em; - padding: 0; - padding-left: 1em; - - &:first-child { - border-left: 0; - margin-left: 0; - padding-left: 0; - } - - a { - color: inherit; - } - } - } - } - - @include breakpoint(large) { - - background-color: _palette(bg); - - background-image: linear-gradient(to top, transparentize(_palette(bg), 0.2), transparentize(_palette(bg), 0.2)), - url('../../images/bg.jpg'); - - background-size: auto, - cover; - - background-position: center, - center; - - margin-top: (_size(wrapper-edges, large) * -1); - padding-top: _size(wrapper-edges, large); - - } - - @include breakpoint(medium) { - margin-top: (_size(wrapper-edges, medium) * -1); - padding-top: _size(wrapper-edges, medium); - - .inner { - @include padding(3em, 3em); - display: block; - width: 100%; - - form { - width: 100%; - margin: 0 0 (_size(element-margin) * 2) 0; - } - - .contact { - width: 100%; - margin: 0 0 (_size(element-margin) * 2) 0; - } - - .copyright { - margin: (_size(element-margin) * 2) 0 _size(element-margin) 0; - } - } - } - - @include breakpoint(small) { - margin-top: (_size(wrapper-edges, small) * -1); - padding-top: _size(wrapper-edges, small); - - .inner { - @include padding(2em, 2em); - - form { - margin: 0 0 (_size(element-margin) * 1.5) 0; - } - - .contact { - margin: 0 0 (_size(element-margin) * 1.5) 0; - } - } - } - - @include breakpoint(xsmall) { - .inner { - .copyright { - li { - border-left: 0; - display: block; - margin: 1em 0 0 0; - padding-left: 0; - - &:first-child { - margin-top: 0; - } - } - } - } - } - - @include breakpoint(xxsmall) { - .inner { - @include padding(2em, 1.5em); - } - } - } \ No newline at end of file diff --git a/assets/sass/layout/_header.scss b/assets/sass/layout/_header.scss deleted file mode 100644 index cdd57a3..0000000 --- a/assets/sass/layout/_header.scss +++ /dev/null @@ -1,140 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Header */ - - #header { - @include vendor('transition', 'background-color #{_duration(transition)} ease-in-out'); - background-color: transparentize(desaturate(lighten(_palette(bg), 3), 1.5), 0.05); - height: 3.5em; - left: 0; - line-height: 3.5em; - padding: 0 1.25em; - position: fixed; - top: 0; - width: 100%; - z-index: _misc(z-index-base); - - h1 { - @include vendor('transition', ( - 'opacity #{_duration(transition)} ease-in-out', - 'visibility #{_duration(transition)}' - )); - border-bottom: 0; - font-size: 0.8em; - margin-bottom: 0; - opacity: 1; - visibility: visible; - - a { - border: 0; - } - } - - nav { - font-family: _font(family-heading); - font-size: 0.8em; - font-weight: _font(weight-heading-bold); - height: 3em; - letter-spacing: _font(kern-heading); - line-height: 3em; - position: absolute; - right: 0.7em; - text-transform: uppercase; - top: 0.7em; - - a { - border: 0; - display: inline-block; - padding: 0 1em; - - &:before { - float: right; - margin-left: 0.75em; - } - - &[href="#menu"] { - @include icon; - @include vendor('transition', 'background-color #{_duration(transition)} ease-in-out'); - border-radius: _size(border-radius); - box-shadow: inset 0 0 0 2px _palette(border); - padding: 0 1.35em; - - &:before { - content: '\f0c9'; - } - - &:hover { - background-color: _palette(border-bg); - } - - &:active { - background-color: _palette(border2-bg); - } - } - } - } - - &.alt { - background-color: transparent; - - h1 { - opacity: 0; - visibility: hidden; - } - } - - @include breakpoint(small) { - height: 2.75em; - line-height: 2.75em; - - nav { - top: 0; - right: 0; - height: inherit; - line-height: inherit; - - a { - height: inherit; - line-height: inherit; - - &[href="#menu"] { - box-shadow: none; - padding: 0 1em; - border-radius: 0; - - &:hover, &:active { - background-color: inherit; - } - } - } - } - } - - @include breakpoint(xsmall) { - nav { - a { - &[href="#menu"] { - width: 4em; - white-space: nowrap; - text-indent: 4em; - position: relative; - - &:before { - width: inherit; - position: absolute; - top: 0; - left: 0; - text-indent: 0; - text-align: right; - margin-left: 0; - padding-right: 1.25em; - } - } - } - } - } - } \ No newline at end of file diff --git a/assets/sass/layout/_menu.scss b/assets/sass/layout/_menu.scss deleted file mode 100644 index adbc452..0000000 --- a/assets/sass/layout/_menu.scss +++ /dev/null @@ -1,127 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Menu */ - - #page-wrapper { - @include vendor('transition', 'filter 0.25s ease'); - } - - #menu { - @include vendor('align-items', 'center'); - @include vendor('display', 'flex'); - @include vendor('justify-content', 'center'); - @include vendor('pointer-events', 'none'); - @include vendor('transition', ('opacity #{_duration(menu)} ease', 'visibility #{_duration(menu)}')); - -moz-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-tap-highlight-color: rgba(0,0,0,0); - background: transparentize(_palette(bg), 0.2); - cursor: default; - height: 100%; - left: 0; - opacity: 0; - position: fixed; - text-align: center; - top: 0; - visibility: hidden; - width: 100%; - - .inner { - @include padding(2.5em, 1.5em); - @include vendor('transform', 'translateY(0.5em)'); - @include vendor('transition', ('opacity #{_duration(menu)} ease','transform #{_duration(menu)} ease')); - -webkit-overflow-scrolling: touch; - background: _palette(accent); - border-radius: _size(border-radius); - display: block; - max-width: 100%; - opacity: 0; - position: relative; - width: 18em; - } - - h2 { - border-bottom: solid 2px _palette(border); - padding-bottom: 1em; - } - - .close { - background-image: url('images/close.svg'); - background-position: 75% 25%; - background-repeat: no-repeat; - background-size: 2em 2em; - border: 0; - content: ''; - display: block; - height: 4em; - overflow: hidden; - position: absolute; - right: 0; - text-align: center; - text-indent: 4em; - top: 0; - width: 4em; - } - - .links { - list-style: none; - margin-bottom: (_size(element-margin) - 0.5em); - padding: 0; - - li { - padding: 0; - - a { - border-radius: _size(border-radius); - border: 0; - display: block; - font-family: _font(family-heading); - font-size: 0.8em; - font-weight: _font(weight-heading); - letter-spacing: _font(kern-heading); - line-height: 1.85em; - padding: 0.75em 0; - text-transform: uppercase; - - &:hover { - background: saturate(darken(_palette(accent), 3), 1.5); - } - } - } - } - - @include breakpoint(small) { - .inner { - max-height: 100%; - overflow-y: auto; - overflow-x: hidden; - - .close { - background-size: 1.5em 1.5em; - } - } - } - } - - body.is-menu-visible { - #page-wrapper { - @include vendor('filter', 'blur(1.5px)'); - } - - #menu { - @include vendor('pointer-events', 'auto'); - opacity: 1; - visibility: visible; - - .inner { - @include vendor('transform', 'translateY(0)'); - opacity: 1; - } - } - } \ No newline at end of file diff --git a/assets/sass/layout/_wrapper.scss b/assets/sass/layout/_wrapper.scss deleted file mode 100644 index 48b3a3b..0000000 --- a/assets/sass/layout/_wrapper.scss +++ /dev/null @@ -1,303 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Wrapper */ - - /// Sets the colors of the wrapper's top/bottom edges. - /// @param {string} $color Color. - @mixin wrapper-edges-color($color: black) { - &:before, &:after { - background-image: svg-url(''); - } - - &:before { - box-shadow: inset 0 -1px 0 0 $color, 0 1px 0 0 $color; - } - - &:after { - box-shadow: inset 0 -1px 0 0 $color, 0 1px 0 0 $color; - } - } - - #wrapper { - > header { - @include padding(7.5em, 0, (3.5em, 0, _size(wrapper-edges, large) * -0.5, 0)); - - .inner { - margin: 0 auto; - width: _size(inner); - } - - h2 { - border-bottom: solid 2px _palette(border); - font-size: 2em; - margin-bottom: _size(element-margin) * 0.4; - padding-bottom: _size(element-margin) * 0.2; - } - - p { - font-family: _font(family-heading); - font-size: 1em; - font-weight: _font(weight-heading); - letter-spacing: _font(kern-heading); - line-height: 2; - text-transform: uppercase; - } - } - - @include breakpoint(large) { - > header { - @include padding(5em, 0, (4em, 0, _size(wrapper-edges, large) * 0.5, 0)); - - background-color: _palette(bg); - - background-image: linear-gradient(to top, transparentize(_palette(bg), 0.2), transparentize(_palette(bg), 0.2)), - url('../../images/bg.jpg'); - - background-size: auto, - cover; - - background-position: center, - 0% 30%; - - margin-bottom: (_size(wrapper-edges, large) * -1); - } - } - - @include breakpoint(medium) { - > header { - @include padding(7em, 3em, (4em, 0, _size(wrapper-edges, medium) * 0.5, 0)); - - background-size: auto, - cover; - - background-position: center, - 0% 0%; - - margin-bottom: (_size(wrapper-edges, medium) * -1); - - .inner { - width: 100%; - } - } - } - - @include breakpoint(small) { - > header { - @include padding(3.75em, 2em, (2.75em, 0, _size(wrapper-edges, small) * 0.5, 0)); - - background-size: auto, - 125%; - - margin-bottom: (_size(wrapper-edges, small) * -1); - - h2 { - font-size: 1.25em; - } - - p { - font-size: 0.8em; - } - } - } - } - - .wrapper { - background-color: _palette(bg); - margin: _size(wrapper-edges, large) 0; - position: relative; - @include wrapper-edges-color(_palette(bg)); - - &:before, &:after { - background-repeat: no-repeat; - background-size: 100% 100%; - content: ''; - display: block; - height: _size(wrapper-edges, large); - position: absolute; - width: 100%; - } - - &:before { - left: 0; - top: (_size(wrapper-edges, large) * -1); - } - - &:after { - @include vendor('transform', 'scaleY(-1)'); - bottom: (_size(wrapper-edges, large) * -1); - left: 0; - } - - &.alt { - &:before { - @include vendor('transform', 'scaleX(-1)'); - } - - &:after { - @include vendor('transform', 'scaleY(-1) scaleX(-1)'); - } - } - - .inner { - @include padding(3em, 0); - margin: 0 auto; - width: _size(inner); - } - - @for $i from 2 through _misc(max-wrapper-styles) { - $j: 3 * ($i - 1); - $color: desaturate(lighten(_palette(bg), $j), $j * 0.5); - - &.style#{$i} { - background-color: $color; - @include wrapper-edges-color($color); - } - } - - &.spotlight { - @include wrapper-edges-color(_palette(accent)); - background-color: _palette(accent); - - .inner { - @include vendor('display', 'flex'); - @include vendor('align-items', 'center'); - @include vendor('flex-direction', 'row'); - } - - .image { - border-radius: 100%; - margin: 0 _size(section-spacing, large) _size(element-margin) 0; - width: 22em; - overflow: hidden; - -ms-flex: 1; - - img { - border-radius: 100%; - width: 100%; - } - } - - .content { - width: 100%; - -ms-flex: 2; - } - - &:nth-child(2n - 1) { - .inner { - @include vendor('flex-direction', 'row-reverse'); - text-align: right; - } - - .image { - margin: 0 0 _size(element-margin) _size(section-spacing, large); - } - } - - @for $i from 2 through _misc(max-wrapper-styles) { - $j: 3 * ($i - 1); - $color: saturate(darken(_palette(accent), $j), $j * 0.5); - - &.style#{$i} { - background-color: $color; - @include wrapper-edges-color($color); - } - } - } - - @include breakpoint(medium) { - margin: _size(wrapper-edges, medium) 0; - - &:before, &:after { - height: _size(wrapper-edges, medium); - } - - &:before { - top: (_size(wrapper-edges, medium) * -1); - } - - &:after { - bottom: (_size(wrapper-edges, medium) * -1); - left: 0; - } - - .inner { - @include padding(3em, 3em); - width: 100%; - } - - &.spotlight { - .image { - margin: 0 _size(section-spacing, medium) _size(element-margin) 0; - width: 32em; - } - - &:nth-child(2n - 1) { - .image { - margin: 0 0 _size(element-margin) _size(section-spacing, medium); - } - } - } - } - - @include breakpoint(small) { - margin: _size(wrapper-edges, small) 0; - - &:before, &:after { - height: _size(wrapper-edges, small); - } - - &:before { - top: (_size(wrapper-edges, small) * -1); - } - - &:after { - bottom: (_size(wrapper-edges, small) * -1); - left: 0; - } - - .inner { - @include padding(2em, 2em); - } - - &.spotlight { - .inner { - @include vendor('align-items', 'flex-start'); - } - - .image { - width: 19em; - margin: 0 _size(section-spacing, small) _size(element-margin) 0; - } - - &:nth-child(2n - 1) { - .image { - margin: 0 0 _size(element-margin) _size(section-spacing, small); - } - } - } - } - - @include breakpoint(xsmall) { - &.spotlight { - .inner { - display: block; - } - - .image { - margin: 0 0 (_size(element-margin) * 0.5) 0 !important; - max-width: 85%; - width: 12em; - } - } - } - - @include breakpoint(xxsmall) { - .inner { - @include padding(2em, 1.5em); - } - } - } \ No newline at end of file diff --git a/assets/sass/libs/_functions.scss b/assets/sass/libs/_functions.scss index 0e08c1a..4970282 100644 --- a/assets/sass/libs/_functions.scss +++ b/assets/sass/libs/_functions.scss @@ -2,33 +2,33 @@ /// @param {string} $keys Key(s). /// @return {string} Value. @function _duration($keys...) { - @return val($duration, $keys...); + @return val($duration, $keys...); } /// Gets a font value. /// @param {string} $keys Key(s). /// @return {string} Value. @function _font($keys...) { - @return val($font, $keys...); + @return val($font, $keys...); } /// Gets a misc value. /// @param {string} $keys Key(s). /// @return {string} Value. @function _misc($keys...) { - @return val($misc, $keys...); + @return val($misc, $keys...); } /// Gets a palette value. /// @param {string} $keys Key(s). /// @return {string} Value. @function _palette($keys...) { - @return val($palette, $keys...); + @return val($palette, $keys...); } /// Gets a size value. /// @param {string} $keys Key(s). /// @return {string} Value. @function _size($keys...) { - @return val($size, $keys...); + @return val($size, $keys...); } \ No newline at end of file diff --git a/assets/sass/libs/_mixins.scss b/assets/sass/libs/_mixins.scss index 056b082..b9178bc 100644 --- a/assets/sass/libs/_mixins.scss +++ b/assets/sass/libs/_mixins.scss @@ -1,27 +1,22 @@ -/// Makes an element's :before pseudoelement a FontAwesome icon. +/// Makes an element's :before pseudoelement a "Font Awesome 5 Free" icon. /// @param {string} $content Optional content value to use. /// @param {string} $where Optional pseudoelement to target (before or after). @mixin icon($content: false, $where: before) { - text-decoration: none; + text-decoration: none; - &:#{$where} { - - @if $content { - content: $content; - } - - font-family: "Font Awesome 5 Free"; /* updated font-family */ - font-weight: 400; /* regular style/weight */ - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; -/* font-family: "Font Awesome 5 Free"; - font-style: normal; - font-weight: normal; -*/ text-transform: none !important; - - } + &:#{$where} { + @if $content { + content: $content; + } + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + text-transform: none !important; + } } /// Applies padding to an element, taking the current element-margin value into account. @@ -29,19 +24,19 @@ /// @param {mixed} $lr Left/right padding. /// @param {list} $pad Optional extra padding (in the following order top, right, bottom, left) /// @param {bool} $important If true, adds !important. -@mixin padding($tb, $lr, $pad: (0,0,0,0), $important: null) { +@mixin padding($tb, $lr, $pad: (0, 0, 0, 0), $important: null) { - @if $important { - $important: '!important'; - } + @if $important { + $important: '!important'; + } - $x: 0.1em; + $x: 0.1em; - @if unit(_size(element-margin)) == 'rem' { - $x: 0.1rem; - } + @if unit(_size(element-margin)) == 'rem' { + $x: 0.1rem; + } - padding: ($tb + nth($pad,1)) ($lr + nth($pad,2)) max($x, $tb - _size(element-margin) + nth($pad,3)) ($lr + nth($pad,4)) #{$important}; + padding: ($tb + nth($pad,1)) ($lr + nth($pad,2)) max($x, $tb - _size(element-margin) + nth($pad,3)) ($lr + nth($pad,4)) #{$important}; } @@ -50,17 +45,17 @@ /// @return {string} Encoded SVG data URL. @function svg-url($svg) { - $svg: str-replace($svg, '"', '\''); - $svg: str-replace($svg, '%', '%25'); - $svg: str-replace($svg, '<', '%3C'); - $svg: str-replace($svg, '>', '%3E'); - $svg: str-replace($svg, '&', '%26'); - $svg: str-replace($svg, '#', '%23'); - $svg: str-replace($svg, '{', '%7B'); - $svg: str-replace($svg, '}', '%7D'); - $svg: str-replace($svg, ';', '%3B'); + $svg: str-replace($svg, '"', '\''); + $svg: str-replace($svg, '%', '%25'); + $svg: str-replace($svg, '<', '%3C'); + $svg: str-replace($svg, '>', '%3E'); + $svg: str-replace($svg, '&', '%26'); + $svg: str-replace($svg, '#', '%23'); + $svg: str-replace($svg, '{', '%7B'); + $svg: str-replace($svg, '}', '%7D'); + $svg: str-replace($svg, ';', '%3B'); - @return url("data:image/svg+xml;charset=utf8,#{$svg}"); + @return url("data:image/svg+xml;charset=utf8,#{$svg}"); } @@ -69,46 +64,44 @@ /// @param {string} $horizontal-align Horizontal alignment of cells. @mixin flexgrid-base($vertical-align: null, $horizontal-align: null) { - // Grid. - @include vendor('display', 'flex'); - @include vendor('flex-wrap', 'wrap'); + // Grid. + @include vendor('display', 'flex'); + @include vendor('flex-wrap', 'wrap'); - // Vertical alignment. - @if ($vertical-align == top) { - @include vendor('align-items', 'flex-start'); - } - @else if ($vertical-align == bottom) { - @include vendor('align-items', 'flex-end'); - } - @else if ($vertical-align == center) { - @include vendor('align-items', 'center'); - } - @else { - @include vendor('align-items', 'stretch'); - } + // Vertical alignment. + @if ($vertical-align == top) { + @include vendor('align-items', 'flex-start'); + } + @else if ($vertical-align == bottom) { + @include vendor('align-items', 'flex-end'); + } + @else if ($vertical-align == center) { + @include vendor('align-items', 'center'); + } + @else { + @include vendor('align-items', 'stretch'); + } - // Horizontal alignment. - @if ($horizontal-align != null) { - text-align: $horizontal-align; - } - - // Cells. - > * { - @include vendor('flex-shrink', '1'); - @include vendor('flex-grow', '0'); - } + // Horizontal alignment. + @if ($horizontal-align != null) { + text-align: $horizontal-align; + } + // Cells. + > * { + @include vendor('flex-shrink', '1'); + @include vendor('flex-grow', '0'); + } } /// Sets up flexgrid columns. /// @param {integer} $columns Columns. @mixin flexgrid-columns($columns) { - > * { - $cell-width: 100% / $columns; - width: #{$cell-width}; - } - + > * { + $cell-width: 100% / $columns; + width: #{$cell-width}; + } } /// Sets up flexgrid gutters. @@ -116,14 +109,13 @@ /// @param {number} $gutters Gutters. @mixin flexgrid-gutters($columns, $gutters) { - // Apply padding. - > * { - $cell-width: 100% / $columns; - - padding: ($gutters * 0.5); - width: $cell-width; - } + // Apply padding. + > * { + $cell-width: 100% / $columns; + padding: ($gutters * 0.5); + width: $cell-width; + } } /// Sets up flexgrid gutters (flush). @@ -131,41 +123,41 @@ /// @param {number} $gutters Gutters. @mixin flexgrid-gutters-flush($columns, $gutters) { - // Apply padding. - > * { - $cell-width: 100% / $columns; - $cell-width-pad: $gutters / $columns; + // Apply padding. + > * { + $cell-width: 100% / $columns; + $cell-width-pad: $gutters / $columns; - padding: ($gutters * 0.5); - width: calc(#{$cell-width} + #{$cell-width-pad}); - } + padding: ($gutters * 0.5); + width: calc(#{$cell-width} + #{$cell-width-pad}); + } - // Clear top/bottom gutters. - > :nth-child(-n + #{$columns}) { - padding-top: 0; - } + // Clear top/bottom gutters. + > :nth-child(-n + #{$columns}) { + padding-top: 0; + } - > :nth-last-child(-n + #{$columns}) { - padding-bottom: 0; - } + > :nth-last-child(-n + #{$columns}) { + padding-bottom: 0; + } - // Clear left/right gutters. - > :nth-child(#{$columns}n + 1) { - padding-left: 0; - } + // Clear left/right gutters. + > :nth-child(#{$columns}n + 1) { + padding-left: 0; + } - > :nth-child(#{$columns}n) { - padding-right: 0; - } + > :nth-child(#{$columns}n) { + padding-right: 0; + } - // Adjust widths of leftmost and rightmost cells. - > :nth-child(#{$columns}n + 1), - > :nth-child(#{$columns}n) { - $cell-width: 100% / $columns; - $cell-width-pad: ($gutters / $columns) - ($gutters / 2); + // Adjust widths of leftmost and rightmost cells. + > :nth-child(#{$columns}n + 1), + > :nth-child(#{$columns}n) { + $cell-width: 100% / $columns; + $cell-width-pad: ($gutters / $columns) - ($gutters / 2); - width: calc(#{$cell-width} + #{$cell-width-pad}); - } + width: calc(#{$cell-width} + #{$cell-width-pad}); + } } @@ -176,60 +168,58 @@ /// @param {integer} $prev-columns Previous columns. @mixin flexgrid-gutters-flush-reset($columns, $gutters, $prev-columns) { - // Apply padding. - > * { - $cell-width: 100% / $prev-columns; - $cell-width-pad: $gutters / $prev-columns; + // Apply padding. + > * { + $cell-width: 100% / $prev-columns; + $cell-width-pad: $gutters / $prev-columns; - padding: ($gutters * 0.5); - width: calc(#{$cell-width} + #{$cell-width-pad}); - } + padding: ($gutters * 0.5); + width: calc(#{$cell-width} + #{$cell-width-pad}); + } - // Clear top/bottom gutters. - > :nth-child(-n + #{$prev-columns}) { - padding-top: ($gutters * 0.5); - } + // Clear top/bottom gutters. + > :nth-child(-n + #{$prev-columns}) { + padding-top: ($gutters * 0.5); + } - > :nth-last-child(-n + #{$prev-columns}) { - padding-bottom: ($gutters * 0.5); - } + > :nth-last-child(-n + #{$prev-columns}) { + padding-bottom: ($gutters * 0.5); + } - // Clear left/right gutters. - > :nth-child(#{$prev-columns}n + 1) { - padding-left: ($gutters * 0.5); - } + // Clear left/right gutters. + > :nth-child(#{$prev-columns}n + 1) { + padding-left: ($gutters * 0.5); + } - > :nth-child(#{$prev-columns}n) { - padding-right: ($gutters * 0.5); - } + > :nth-child(#{$prev-columns}n) { + padding-right: ($gutters * 0.5); + } - // Adjust widths of leftmost and rightmost cells. - > :nth-child(#{$prev-columns}n + 1), - > :nth-child(#{$prev-columns}n) { - $cell-width: 100% / $columns; - $cell-width-pad: $gutters / $columns; - - padding: ($gutters * 0.5); - width: calc(#{$cell-width} + #{$cell-width-pad}); - } + // Adjust widths of leftmost and rightmost cells. + > :nth-child(#{$prev-columns}n + 1), + > :nth-child(#{$prev-columns}n) { + $cell-width: 100% / $columns; + $cell-width-pad: $gutters / $columns; + padding: ($gutters * 0.5); + width: calc(#{$cell-width} + #{$cell-width-pad}); + } } /// Adds debug styles to current flexgrid element. @mixin flexgrid-debug() { - box-shadow: 0 0 0 1px red; + box-shadow: 0 0 0 1px red; - > * { - box-shadow: inset 0 0 0 1px blue; - position: relative; - - > * { - position: relative; - box-shadow: inset 0 0 0 1px green; - } - } + > * { + box-shadow: inset 0 0 0 1px blue; + position: relative; + > * { + position: relative; + box-shadow: inset 0 0 0 1px green; + } + } } /// Initializes the current element as a flexgrid. @@ -238,87 +228,81 @@ /// @param {bool} $flush If true, clears padding around the very edge of the grid. @mixin flexgrid($settings: ()) { - // Settings. + // Settings. - // Debug. - $debug: false; + // Debug. + $debug: false; - @if (map-has-key($settings, 'debug')) { - $debug: map-get($settings, 'debug'); - } + @if (map-has-key($settings, 'debug')) { + $debug: map-get($settings, 'debug'); + } - // Vertical align. - $vertical-align: null; + // Vertical align. + $vertical-align: null; - @if (map-has-key($settings, 'vertical-align')) { - $vertical-align: map-get($settings, 'vertical-align'); - } + @if (map-has-key($settings, 'vertical-align')) { + $vertical-align: map-get($settings, 'vertical-align'); + } - // Horizontal align. - $horizontal-align: null; + // Horizontal align. + $horizontal-align: null; - @if (map-has-key($settings, 'horizontal-align')) { - $horizontal-align: map-get($settings, 'horizontal-align'); - } + @if (map-has-key($settings, 'horizontal-align')) { + $horizontal-align: map-get($settings, 'horizontal-align'); + } - // Columns. - $columns: null; + // Columns. + $columns: null; - @if (map-has-key($settings, 'columns')) { - $columns: map-get($settings, 'columns'); - } + @if (map-has-key($settings, 'columns')) { + $columns: map-get($settings, 'columns'); + } - // Gutters. - $gutters: 0; + // Gutters. + $gutters: 0; - @if (map-has-key($settings, 'gutters')) { - $gutters: map-get($settings, 'gutters'); - } + @if (map-has-key($settings, 'gutters')) { + $gutters: map-get($settings, 'gutters'); + } - // Flush. - $flush: true; + // Flush. + $flush: true; - @if (map-has-key($settings, 'flush')) { - $flush: map-get($settings, 'flush'); - } + @if (map-has-key($settings, 'flush')) { + $flush: map-get($settings, 'flush'); + } - // Initialize base grid. - @include flexgrid-base($vertical-align, $horizontal-align); + // Initialize base grid. + @include flexgrid-base($vertical-align, $horizontal-align); - // Debug? - @if ($debug) { - @include flexgrid-debug; - } + // Debug? + @if ($debug) { + @include flexgrid-debug; + } - // Columns specified? - @if ($columns != null) { + // Columns specified? + @if ($columns != null) { - // Initialize columns. - @include flexgrid-columns($columns); + // Initialize columns. + @include flexgrid-columns($columns); - // Gutters specified? - @if ($gutters > 0) { + // Gutters specified? + @if ($gutters > 0) { - // Flush gutters? - @if ($flush) { + // Flush gutters? + @if ($flush) { - // Initialize gutters (flush). - @include flexgrid-gutters-flush($columns, $gutters); - - } - - // Otherwise ... - @else { - - // Initialize gutters. - @include flexgrid-gutters($columns, $gutters); - - } - - } - - } + // Initialize gutters (flush). + @include flexgrid-gutters-flush($columns, $gutters); + } + // Otherwise ... + @else { + // Initialize gutters. + @include flexgrid-gutters($columns, $gutters); + } + } + } } /// Resizes a previously-initialized grid. @@ -328,73 +312,66 @@ /// @param {bool} $flush If true, clears padding around the very edge of the grid. @mixin flexgrid-resize($settings: ()) { - // Settings. + // Settings. + // Columns. + $columns: 1; - // Columns. - $columns: 1; + @if (map-has-key($settings, 'columns')) { + $columns: map-get($settings, 'columns'); + } - @if (map-has-key($settings, 'columns')) { - $columns: map-get($settings, 'columns'); - } + // Gutters. + $gutters: 0; - // Gutters. - $gutters: 0; + @if (map-has-key($settings, 'gutters')) { + $gutters: map-get($settings, 'gutters'); + } - @if (map-has-key($settings, 'gutters')) { - $gutters: map-get($settings, 'gutters'); - } + // Previous columns. + $prev-columns: false; - // Previous columns. - $prev-columns: false; + @if (map-has-key($settings, 'prev-columns')) { + $prev-columns: map-get($settings, 'prev-columns'); + } - @if (map-has-key($settings, 'prev-columns')) { - $prev-columns: map-get($settings, 'prev-columns'); - } + // Flush. + $flush: true; - // Flush. - $flush: true; + @if (map-has-key($settings, 'flush')) { + $flush: map-get($settings, 'flush'); + } - @if (map-has-key($settings, 'flush')) { - $flush: map-get($settings, 'flush'); - } + // Resize columns. + @include flexgrid-columns($columns); - // Resize columns. - @include flexgrid-columns($columns); + // Gutters specified? + @if ($gutters > 0) { - // Gutters specified? - @if ($gutters > 0) { + // Flush gutters? + @if ($flush) { - // Flush gutters? - @if ($flush) { + // Previous columns specified? + @if ($prev-columns) { - // Previous columns specified? - @if ($prev-columns) { + // Convert to list if it isn't one already. + @if (type-of($prev-columns) != list) { + $prev-columns: ($prev-columns); + } - // Convert to list if it isn't one already. - @if (type-of($prev-columns) != list) { - $prev-columns: ($prev-columns); - } + // Step through list of previous columns and reset them. + @each $x in $prev-columns { + @include flexgrid-gutters-flush-reset($columns, $gutters, $x); + } + } - // Step through list of previous columns and reset them. - @each $x in $prev-columns { - @include flexgrid-gutters-flush-reset($columns, $gutters, $x); - } - - } - - // Resize gutters (flush). - @include flexgrid-gutters-flush($columns, $gutters); - - } - - // Otherwise ... - @else { - - // Resize gutters. - @include flexgrid-gutters($columns, $gutters); - - } - - } + // Resize gutters (flush). + @include flexgrid-gutters-flush($columns, $gutters); + } + // Otherwise ... + @else { + // Resize gutters. + @include flexgrid-gutters($columns, $gutters); + } + } } diff --git a/assets/sass/libs/_skel.scss b/assets/sass/libs/_skel.scss index f5e0dcd..7fa27c2 100644 --- a/assets/sass/libs/_skel.scss +++ b/assets/sass/libs/_skel.scss @@ -2,586 +2,547 @@ // Vars. - /// Breakpoints. - /// @var {list} - $breakpoints: () !global; +/// Breakpoints. +/// @var {list} +$breakpoints: () !global; - /// Vendor prefixes. - /// @var {list} - $vendor-prefixes: ( - '-moz-', - '-webkit-', - '-ms-', - '' - ); +/// Vendor prefixes. +/// @var {list} +$vendor-prefixes: ( + '-moz-', + '-webkit-', + '-ms-', + '' +); - /// Properties that should be vendorized. - /// @var {list} - $vendor-properties: ( - 'align-content', - 'align-items', - 'align-self', - 'animation', - 'animation-delay', - 'animation-direction', - 'animation-duration', - 'animation-fill-mode', - 'animation-iteration-count', - 'animation-name', - 'animation-play-state', - 'animation-timing-function', - 'appearance', - 'backface-visibility', - 'box-sizing', - 'filter', - 'flex', - 'flex-basis', - 'flex-direction', - 'flex-flow', - 'flex-grow', - 'flex-shrink', - 'flex-wrap', - 'justify-content', - 'object-fit', - 'object-position', - 'order', - 'perspective', - 'pointer-events', - 'transform', - 'transform-origin', - 'transform-style', - 'transition', - 'transition-delay', - 'transition-duration', - 'transition-property', - 'transition-timing-function', - 'user-select' - ); +/// Properties that should be vendorized. +/// @var {list} +$vendor-properties: ( + 'align-content', + 'align-items', + 'align-self', + 'animation', + 'animation-delay', + 'animation-direction', + 'animation-duration', + 'animation-fill-mode', + 'animation-iteration-count', + 'animation-name', + 'animation-play-state', + 'animation-timing-function', + 'appearance', + 'backface-visibility', + 'box-sizing', + 'filter', + 'flex', + 'flex-basis', + 'flex-direction', + 'flex-flow', + 'flex-grow', + 'flex-shrink', + 'flex-wrap', + 'justify-content', + 'object-fit', + 'object-position', + 'order', + 'perspective', + 'pointer-events', + 'transform', + 'transform-origin', + 'transform-style', + 'transition', + 'transition-delay', + 'transition-duration', + 'transition-property', + 'transition-timing-function', + 'user-select' + ); - /// Values that should be vendorized. - /// @var {list} - $vendor-values: ( - 'filter', - 'flex', - 'linear-gradient', - 'radial-gradient', - 'transform' - ); +/// Values that should be vendorized. +/// @var {list} +$vendor-values: ( + 'filter', + 'flex', + 'linear-gradient', + 'radial-gradient', + 'transform' +); // Functions. - /// Removes a specific item from a list. - /// @author Hugo Giraudel - /// @param {list} $list List. - /// @param {integer} $index Index. - /// @return {list} Updated list. - @function remove-nth($list, $index) { +/// Removes a specific item from a list. +/// @author Hugo Giraudel +/// @param {list} $list List. +/// @param {integer} $index Index. +/// @return {list} Updated list. +@function remove-nth($list, $index) { - $result: null; + $result: null; - @if type-of($index) != number { - @warn "$index: #{quote($index)} is not a number for `remove-nth`."; - } - @else if $index == 0 { - @warn "List index 0 must be a non-zero integer for `remove-nth`."; - } - @else if abs($index) > length($list) { - @warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`."; - } - @else { + @if type-of($index) != number { + @warn "$index: #{quote($index)} is not a number for `remove-nth`."; + } + @else if $index == 0 { + @warn "List index 0 must be a non-zero integer for `remove-nth`."; + } + @else if abs($index) > length($list) { + @warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`."; + } + @else { - $result: (); - $index: if($index < 0, length($list) + $index + 1, $index); + $result: (); + $index: if($index < 0, length($list) + $index + 1, $index); - @for $i from 1 through length($list) { + @for $i from 1 through length($list) { - @if $i != $index { - $result: append($result, nth($list, $i)); - } + @if $i != $index { + $result: append($result, nth($list, $i)); + } + } + } + @return $result; +} - } +/// Replaces a substring within another string. +/// @author Hugo Giraudel +/// @param {string} $string String. +/// @param {string} $search Substring. +/// @param {string} $replace Replacement. +/// @return {string} Updated string. +@function str-replace($string, $search, $replace: '') { - } + $index: str-index($string, $search); - @return $result; + @if $index { + @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); + } + @return $string; +} - } +/// Replaces a substring within each string in a list. +/// @param {list} $strings List of strings. +/// @param {string} $search Substring. +/// @param {string} $replace Replacement. +/// @return {list} Updated list of strings. +@function str-replace-all($strings, $search, $replace: '') { - /// Replaces a substring within another string. - /// @author Hugo Giraudel - /// @param {string} $string String. - /// @param {string} $search Substring. - /// @param {string} $replace Replacement. - /// @return {string} Updated string. - @function str-replace($string, $search, $replace: '') { + @each $string in $strings { + $strings: set-nth($strings, index($strings, $string), str-replace($string, $search, $replace)); + } + @return $strings; +} - $index: str-index($string, $search); +/// Gets a value from a map. +/// @author Hugo Giraudel +/// @param {map} $map Map. +/// @param {string} $keys Key(s). +/// @return {string} Value. +@function val($map, $keys...) { - @if $index { - @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); - } + @if nth($keys, 1) == null { + $keys: remove-nth($keys, 1); + } - @return $string; - - } - - /// Replaces a substring within each string in a list. - /// @param {list} $strings List of strings. - /// @param {string} $search Substring. - /// @param {string} $replace Replacement. - /// @return {list} Updated list of strings. - @function str-replace-all($strings, $search, $replace: '') { - - @each $string in $strings { - $strings: set-nth($strings, index($strings, $string), str-replace($string, $search, $replace)); - } - - @return $strings; - - } - - /// Gets a value from a map. - /// @author Hugo Giraudel - /// @param {map} $map Map. - /// @param {string} $keys Key(s). - /// @return {string} Value. - @function val($map, $keys...) { - - @if nth($keys, 1) == null { - $keys: remove-nth($keys, 1); - } - - @each $key in $keys { - $map: map-get($map, $key); - } - - @return $map; - - } + @each $key in $keys { + $map: map-get($map, $key); + } + @return $map; +} // Mixins. - /// Sets the global box model. - /// @param {string} $model Model (default is content). - @mixin boxModel($model: 'content') { +/// Sets the global box model. +/// @param {string} $model Model (default is content). +@mixin boxModel($model: 'content') { - $x: $model + '-box'; + $x: $model + '-box'; - *, *:before, *:after { - -moz-box-sizing: #{$x}; - -webkit-box-sizing: #{$x}; - box-sizing: #{$x}; - } + *, *::before, + *::after { + -moz-box-sizing: #{$x}; + -webkit-box-sizing: #{$x}; + box-sizing: #{$x}; + } +} - } +/// Wraps @content in a @media block using a given breakpoint. +/// @param {string} $breakpoint Breakpoint. +/// @param {map} $queries Additional queries. +@mixin breakpoint($breakpoint: null, $queries: null) { - /// Wraps @content in a @media block using a given breakpoint. - /// @param {string} $breakpoint Breakpoint. - /// @param {map} $queries Additional queries. - @mixin breakpoint($breakpoint: null, $queries: null) { + $query: 'screen'; - $query: 'screen'; + // Breakpoint. + @if $breakpoint and map-has-key($breakpoints, $breakpoint) { + $query: $query + ' and ' + map-get($breakpoints, $breakpoint); + } - // Breakpoint. - @if $breakpoint and map-has-key($breakpoints, $breakpoint) { - $query: $query + ' and ' + map-get($breakpoints, $breakpoint); - } + // Queries. + @if $queries { + @each $k, $v in $queries { + $query: $query + ' and (' + $k + ':' + $v + ')'; + } + } - // Queries. - @if $queries { - @each $k, $v in $queries { - $query: $query + ' and (' + $k + ':' + $v + ')'; - } - } + @media #{$query} { + @content; + } +} - @media #{$query} { - @content; +/// Wraps @content in a @media block targeting a specific orientation. +/// @param {string} $orientation Orientation. +@mixin orientation($orientation) { + @media screen and (orientation: #{$orientation}) { + @content; + } +} + +/// Utility mixin for containers. +/// @param {mixed} $width Width. +@mixin containers($width) { + +// Locked? + $lock: false; + + @if length($width) == 2 { + $width: nth($width, 1); + $lock: true; + } + + // Modifiers. + .container.\31 25\25 { width: 100%; max-width: $width * 1.25; min-width: $width; } + .container.\37 5\25 { width: $width * 0.75; } + .container.\35 0\25 { width: $width * 0.5; } + .container.\32 5\25 { width: $width * 0.25; } + + // Main class. + .container { + @if $lock { + width: $width !important; + } + @else { + width: $width; + } + } +} + +/// Utility mixin for grid. +/// @param {list} $gutters Column and row gutters (default is 40px). +/// @param {string} $breakpointName Optional breakpoint name. +@mixin grid($gutters: 40px, $breakpointName: null) { + + // Gutters. + @include grid-gutters($gutters); + @include grid-gutters($gutters, \32 00\25, 2); + @include grid-gutters($gutters, \31 50\25, 1.5); + @include grid-gutters($gutters, \35 0\25, 0.5); + @include grid-gutters($gutters, \32 5\25, 0.25); + + // Cells. + $x: ''; + + @if $breakpointName { + $x: '\\28' + $breakpointName + '\\29'; + } + + .\31 2u#{$x}, .\31 2u\24#{$x} { width: 100%; clear: none; margin-left: 0; } + .\31 1u#{$x}, .\31 1u\24#{$x} { width: 91.6666666667%; clear: none; margin-left: 0; } + .\31 0u#{$x}, .\31 0u\24#{$x} { width: 83.3333333333%; clear: none; margin-left: 0; } + .\39 u#{$x}, .\39 u\24#{$x} { width: 75%; clear: none; margin-left: 0; } + .\38 u#{$x}, .\38 u\24#{$x} { width: 66.6666666667%; clear: none; margin-left: 0; } + .\37 u#{$x}, .\37 u\24#{$x} { width: 58.3333333333%; clear: none; margin-left: 0; } + .\36 u#{$x}, .\36 u\24#{$x} { width: 50%; clear: none; margin-left: 0; } + .\35 u#{$x}, .\35 u\24#{$x} { width: 41.6666666667%; clear: none; margin-left: 0; } + .\34 u#{$x}, .\34 u\24#{$x} { width: 33.3333333333%; clear: none; margin-left: 0; } + .\33 u#{$x}, .\33 u\24#{$x} { width: 25%; clear: none; margin-left: 0; } + .\32 u#{$x}, .\32 u\24#{$x} { width: 16.6666666667%; clear: none; margin-left: 0; } + .\31 u#{$x}, .\31 u\24#{$x} { width: 8.3333333333%; clear: none; margin-left: 0; } + + .\31 2u\24#{$x} + *, + .\31 1u\24#{$x} + *, + .\31 0u\24#{$x} + *, + .\39 u\24#{$x} + *, + .\38 u\24#{$x} + *, + .\37 u\24#{$x} + *, + .\36 u\24#{$x} + *, + .\35 u\24#{$x} + *, + .\34 u\24#{$x} + *, + .\33 u\24#{$x} + *, + .\32 u\24#{$x} + *, + .\31 u\24#{$x} + * { + clear: left; + } + + .\-11u#{$x} { margin-left: 91.6666666667% } + .\-10u#{$x} { margin-left: 83.3333333333% } + .\-9u#{$x} { margin-left: 75% } + .\-8u#{$x} { margin-left: 66.6666666667% } + .\-7u#{$x} { margin-left: 58.3333333333% } + .\-6u#{$x} { margin-left: 50% } + .\-5u#{$x} { margin-left: 41.6666666667% } + .\-4u#{$x} { margin-left: 33.3333333333% } + .\-3u#{$x} { margin-left: 25% } + .\-2u#{$x} { margin-left: 16.6666666667% } + .\-1u#{$x} { margin-left: 8.3333333333% } +} + +/// Utility mixin for grid. +/// @param {list} $gutters Gutters. +/// @param {string} $class Optional class name. +/// @param {integer} $multiplier Multiplier (default is 1). +@mixin grid-gutters($gutters, $class: null, $multiplier: 1) { + + // Expand gutters if it's not a list. + @if length($gutters) == 1 { + $gutters: ($gutters, 0); + } + + // Get column and row gutter values. + $c: nth($gutters, 1); + $r: nth($gutters, 2); + + // Get class (if provided). + $x: ''; + + @if $class { + $x: '.' + $class; + } + + // Default. + .row#{$x} > * { padding: ($r * $multiplier) 0 0 ($c * $multiplier); } + .row#{$x} { margin: ($r * $multiplier * -1) 0 -1px ($c * $multiplier * -1); } + + // Uniform. + .row.uniform#{$x} > * { padding: ($c * $multiplier) 0 0 ($c * $multiplier); } + .row.uniform#{$x} { margin: ($c * $multiplier * -1) 0 -1px ($c * $multiplier * -1); } +} + +/// Wraps @content in vendorized keyframe blocks. +/// @param {string} $name Name. +@mixin keyframes($name) { + + @-moz-keyframes #{$name} { @content; } + @-webkit-keyframes #{$name} { @content; } + @-ms-keyframes #{$name} { @content; } + @keyframes #{$name} { @content; } +} + +/// Sets breakpoints. +/// @param {map} $x Breakpoints. +@mixin skel-breakpoints($x: ()) { + $breakpoints: $x !global; +} + +/// Initializes layout module. +/// @param {map} config Config. +@mixin skel-layout($config: ()) { + + // Config. + $configPerBreakpoint: (); + + $z: map-get($config, 'breakpoints'); + + @if $z { + $configPerBreakpoint: $z; + } + + // Reset. + $x: map-get($config, 'reset'); + + @if $x { + + /* Reset */ + @include reset($x); + } + + // Box model. + $x: map-get($config, 'boxModel'); + + @if $x { + + /* Box Model */ + @include boxModel($x); + } + + // Containers. + $containers: map-get($config, 'containers'); + + @if $containers { + + /* Containers */ + .container { + margin-left: auto; + margin-right: auto; + } + + // Use default is $containers is just "true". + @if $containers == true { + $containers: 960px; + } + + // Apply base. + @include containers($containers); + + // Apply per-breakpoint. + @each $name in map-keys($breakpoints) { + + // Get/use breakpoint setting if it exists. + $x: map-get($configPerBreakpoint, $name); + + // Per-breakpoint config exists? + @if $x { + $y: map-get($x, 'containers'); + + // Setting exists? Use it. + @if $y { + $containers: $y; } - - } - - /// Wraps @content in a @media block targeting a specific orientation. - /// @param {string} $orientation Orientation. - @mixin orientation($orientation) { - @media screen and (orientation: #{$orientation}) { - @content; - } - } - - /// Utility mixin for containers. - /// @param {mixed} $width Width. - @mixin containers($width) { - - // Locked? - $lock: false; - - @if length($width) == 2 { - $width: nth($width, 1); - $lock: true; - } - - // Modifiers. - .container.\31 25\25 { width: 100%; max-width: $width * 1.25; min-width: $width; } - .container.\37 5\25 { width: $width * 0.75; } - .container.\35 0\25 { width: $width * 0.5; } - .container.\32 5\25 { width: $width * 0.25; } - - // Main class. - .container { - @if $lock { - width: $width !important; - } - @else { - width: $width; - } - } - - } - - /// Utility mixin for grid. - /// @param {list} $gutters Column and row gutters (default is 40px). - /// @param {string} $breakpointName Optional breakpoint name. - @mixin grid($gutters: 40px, $breakpointName: null) { - - // Gutters. - @include grid-gutters($gutters); - @include grid-gutters($gutters, \32 00\25, 2); - @include grid-gutters($gutters, \31 50\25, 1.5); - @include grid-gutters($gutters, \35 0\25, 0.5); - @include grid-gutters($gutters, \32 5\25, 0.25); - - // Cells. - $x: ''; - - @if $breakpointName { - $x: '\\28' + $breakpointName + '\\29'; - } - - .\31 2u#{$x}, .\31 2u\24#{$x} { width: 100%; clear: none; margin-left: 0; } - .\31 1u#{$x}, .\31 1u\24#{$x} { width: 91.6666666667%; clear: none; margin-left: 0; } - .\31 0u#{$x}, .\31 0u\24#{$x} { width: 83.3333333333%; clear: none; margin-left: 0; } - .\39 u#{$x}, .\39 u\24#{$x} { width: 75%; clear: none; margin-left: 0; } - .\38 u#{$x}, .\38 u\24#{$x} { width: 66.6666666667%; clear: none; margin-left: 0; } - .\37 u#{$x}, .\37 u\24#{$x} { width: 58.3333333333%; clear: none; margin-left: 0; } - .\36 u#{$x}, .\36 u\24#{$x} { width: 50%; clear: none; margin-left: 0; } - .\35 u#{$x}, .\35 u\24#{$x} { width: 41.6666666667%; clear: none; margin-left: 0; } - .\34 u#{$x}, .\34 u\24#{$x} { width: 33.3333333333%; clear: none; margin-left: 0; } - .\33 u#{$x}, .\33 u\24#{$x} { width: 25%; clear: none; margin-left: 0; } - .\32 u#{$x}, .\32 u\24#{$x} { width: 16.6666666667%; clear: none; margin-left: 0; } - .\31 u#{$x}, .\31 u\24#{$x} { width: 8.3333333333%; clear: none; margin-left: 0; } - - .\31 2u\24#{$x} + *, - .\31 1u\24#{$x} + *, - .\31 0u\24#{$x} + *, - .\39 u\24#{$x} + *, - .\38 u\24#{$x} + *, - .\37 u\24#{$x} + *, - .\36 u\24#{$x} + *, - .\35 u\24#{$x} + *, - .\34 u\24#{$x} + *, - .\33 u\24#{$x} + *, - .\32 u\24#{$x} + *, - .\31 u\24#{$x} + * { - clear: left; - } - - .\-11u#{$x} { margin-left: 91.6666666667% } - .\-10u#{$x} { margin-left: 83.3333333333% } - .\-9u#{$x} { margin-left: 75% } - .\-8u#{$x} { margin-left: 66.6666666667% } - .\-7u#{$x} { margin-left: 58.3333333333% } - .\-6u#{$x} { margin-left: 50% } - .\-5u#{$x} { margin-left: 41.6666666667% } - .\-4u#{$x} { margin-left: 33.3333333333% } - .\-3u#{$x} { margin-left: 25% } - .\-2u#{$x} { margin-left: 16.6666666667% } - .\-1u#{$x} { margin-left: 8.3333333333% } - - } - - /// Utility mixin for grid. - /// @param {list} $gutters Gutters. - /// @param {string} $class Optional class name. - /// @param {integer} $multiplier Multiplier (default is 1). - @mixin grid-gutters($gutters, $class: null, $multiplier: 1) { - - // Expand gutters if it's not a list. - @if length($gutters) == 1 { - $gutters: ($gutters, 0); - } - - // Get column and row gutter values. - $c: nth($gutters, 1); - $r: nth($gutters, 2); - - // Get class (if provided). - $x: ''; - - @if $class { - $x: '.' + $class; - } - - // Default. - .row#{$x} > * { padding: ($r * $multiplier) 0 0 ($c * $multiplier); } - .row#{$x} { margin: ($r * $multiplier * -1) 0 -1px ($c * $multiplier * -1); } - - // Uniform. - .row.uniform#{$x} > * { padding: ($c * $multiplier) 0 0 ($c * $multiplier); } - .row.uniform#{$x} { margin: ($c * $multiplier * -1) 0 -1px ($c * $multiplier * -1); } - - } - - /// Wraps @content in vendorized keyframe blocks. - /// @param {string} $name Name. - @mixin keyframes($name) { - - @-moz-keyframes #{$name} { @content; } - @-webkit-keyframes #{$name} { @content; } - @-ms-keyframes #{$name} { @content; } - @keyframes #{$name} { @content; } - - } - - /// - /// Sets breakpoints. - /// @param {map} $x Breakpoints. - /// - @mixin skel-breakpoints($x: ()) { - $breakpoints: $x !global; - } - - /// - /// Initializes layout module. - /// @param {map} config Config. - /// - @mixin skel-layout($config: ()) { - - // Config. - $configPerBreakpoint: (); - - $z: map-get($config, 'breakpoints'); - - @if $z { - $configPerBreakpoint: $z; - } - - // Reset. - $x: map-get($config, 'reset'); - - @if $x { - - /* Reset */ - - @include reset($x); - - } - - // Box model. - $x: map-get($config, 'boxModel'); - - @if $x { - - /* Box Model */ - - @include boxModel($x); - - } - - // Containers. - $containers: map-get($config, 'containers'); - - @if $containers { - - /* Containers */ - - .container { - margin-left: auto; - margin-right: auto; - } - - // Use default is $containers is just "true". - @if $containers == true { - $containers: 960px; - } - - // Apply base. - @include containers($containers); - - // Apply per-breakpoint. - @each $name in map-keys($breakpoints) { - - // Get/use breakpoint setting if it exists. - $x: map-get($configPerBreakpoint, $name); - - // Per-breakpoint config exists? - @if $x { - $y: map-get($x, 'containers'); - - // Setting exists? Use it. - @if $y { - $containers: $y; - } - - } - - // Create @media block. - @media screen and #{map-get($breakpoints, $name)} { - @include containers($containers); - } - - } - - } - - // Grid. - $grid: map-get($config, 'grid'); - - @if $grid { - - /* Grid */ - - // Use defaults if $grid is just "true". - @if $grid == true { - $grid: (); - } - - // Sub-setting: Gutters. - $grid-gutters: 40px; - $x: map-get($grid, 'gutters'); - - @if $x { - $grid-gutters: $x; - } - - // Rows. - .row { - border-bottom: solid 1px transparent; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - } - - .row > * { - float: left; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - } - - .row:after, .row:before { - content: ''; - display: block; - clear: both; - height: 0; - } - - .row.uniform > * > :first-child { - margin-top: 0; - } - - .row.uniform > * > :last-child { - margin-bottom: 0; - } - - // Gutters (0%). - @include grid-gutters($grid-gutters, \30 \25, 0); - - // Apply base. - @include grid($grid-gutters); - - // Apply per-breakpoint. - @each $name in map-keys($breakpoints) { - - // Get/use breakpoint setting if it exists. - $x: map-get($configPerBreakpoint, $name); - - // Per-breakpoint config exists? - @if $x { - $y: map-get($x, 'grid'); - - // Setting exists? - @if $y { - - // Sub-setting: Gutters. - $x: map-get($y, 'gutters'); - - @if $x { - $grid-gutters: $x; - } - - } - - } - - // Create @media block. - @media screen and #{map-get($breakpoints, $name)} { - @include grid($grid-gutters, $name); - } - - } - - } - - } - - /// Resets browser styles. - /// @param {string} $mode Mode (default is 'normalize'). - @mixin reset($mode: 'normalize') { - - @if $mode == 'normalize' { - - // normalize.css v3.0.2 | MIT License | git.io/normalize - html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0} - - } - @else if $mode == 'full' { - - // meyerweb.com/eric/tools/css/reset v2.0 | 20110126 | License: none (public domain) - 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} - - } - - } - - /// Vendorizes a declaration's property and/or value(s). - /// @param {string} $property Property. - /// @param {mixed} $value String/list of value(s). - @mixin vendor($property, $value) { - - // Determine if property should expand. - $expandProperty: index($vendor-properties, $property); - - // Determine if value should expand (and if so, add '-prefix-' placeholder). - $expandValue: false; - - @each $x in $value { - @each $y in $vendor-values { - @if $y == str-slice($x, 1, str-length($y)) { - - $value: set-nth($value, index($value, $x), '-prefix-' + $x); - $expandValue: true; - - } - } - } - - // Expand property? - @if $expandProperty { - @each $vendor in $vendor-prefixes { - #{$vendor}#{$property}: #{str-replace-all($value, '-prefix-', $vendor)}; - } - } - - // Expand just the value? - @elseif $expandValue { - @each $vendor in $vendor-prefixes { - #{$property}: #{str-replace-all($value, '-prefix-', $vendor)}; - } - } - - // Neither? Treat them as a normal declaration. - @else { - #{$property}: #{$value}; - } - - } \ No newline at end of file + } + // Create @media block. + @media screen and #{map-get($breakpoints, $name)} { + @include containers($containers); + } + } + } + // Grid. + $grid: map-get($config, 'grid'); + + @if $grid { + + /* Grid */ + // Use defaults if $grid is just "true". + @if $grid == true { + $grid: (); + } + + // Sub-setting: Gutters. + $grid-gutters: 40px; + $x: map-get($grid, 'gutters'); + + @if $x { + $grid-gutters: $x; + } + + // Rows. + .row { + border-bottom: solid 1px transparent; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + } + + .row > * { + float: left; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + } + + .row::after, + .row::before { + content: ''; + display: block; + clear: both; + height: 0; + } + + .row.uniform > * > :first-child { + margin-top: 0; + } + + .row.uniform > * > :last-child { + margin-bottom: 0; + } + + // Gutters (0%). + @include grid-gutters($grid-gutters, \30 \25, 0); + + // Apply base. + @include grid($grid-gutters); + + // Apply per-breakpoint. + @each $name in map-keys($breakpoints) { + + // Get/use breakpoint setting if it exists. + $x: map-get($configPerBreakpoint, $name); + + // Per-breakpoint config exists? + @if $x { + $y: map-get($x, 'grid'); + + // Setting exists? + @if $y { + + // Sub-setting: Gutters. + $x: map-get($y, 'gutters'); + + @if $x { + $grid-gutters: $x; + } + } + } + // Create @media block. + @media screen and #{map-get($breakpoints, $name)} { + @include grid($grid-gutters, $name); + } + } + } +} + +/// Resets browser styles. +/// @param {string} $mode Mode (default is 'normalize'). +@mixin reset($mode: 'normalize') { + + @if $mode == 'normalize' { + + // normalize.css v3.0.2 | MIT License | git.io/normalize + html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0} + + } + @else if $mode == 'full' { + + // meyerweb.com/eric/tools/css/reset v2.0 | 20110126 | License: none (public domain) + 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} + } +} + +/// Vendorizes a declaration's property and/or value(s). +/// @param {string} $property Property. +/// @param {mixed} $value String/list of value(s). +@mixin vendor($property, $value) { + // Determine if property should expand. + $expandProperty: index($vendor-properties, $property); + + // Determine if value should expand (and if so, add '-prefix-' placeholder). + $expandValue: false; + + @each $x in $value { + @each $y in $vendor-values { + @if $y == str-slice($x, 1, str-length($y)) { + + $value: set-nth($value, index($value, $x), '-prefix-' + $x); + $expandValue: true; + } + } + } + + // Expand property? + @if $expandProperty { + @each $vendor in $vendor-prefixes { + #{$vendor}#{$property}: #{str-replace-all($value, '-prefix-', $vendor)}; + } + } + + // Expand just the value? + @elseif $expandValue { + @each $vendor in $vendor-prefixes { + #{$property}: #{str-replace-all($value, '-prefix-', $vendor)}; + } + } + + // Neither? Treat them as a normal declaration. + @else { + #{$property}: #{$value}; + } + +} \ No newline at end of file diff --git a/assets/sass/libs/_vars.scss b/assets/sass/libs/_vars.scss index fb5eec9..a3662a8 100644 --- a/assets/sass/libs/_vars.scss +++ b/assets/sass/libs/_vars.scss @@ -1,54 +1,55 @@ // Misc. - $misc: ( - z-index-base: 10000, - max-wrapper-styles: 6 - ); +$misc: ( + z-index-base: 10000, + z-index-overlay: 100000, + max-spotlight: 20 +); // Duration. - $duration: ( - menu: 0.35s, - transition: 0.2s - ); +$duration: ( + navPanel: 0.5s, + transition: 0.2s, + landing-fadein: 0.5s +); // Size. - $size: ( - border-radius: 5px, - element-height: 2.75em, - element-margin: 2em, - inner: 55em, - section-spacing: ( - large: 3em, - medium: 2em, - small: 1.75em - ), - wrapper-edges: ( - large: 6.5em, - medium: 4.75em, - small: 2.5em - ) - ); +$size: ( + border-radius: 4px, + element-height: 2.4em, + element-margin: 2em, + navPanel: 275px +); // Font. - $font: ( - family: ('Source Sans Pro', Helvetica, sans-serif), - family-fixed: ('Courier New', monospace), - family-heading: (Raleway, Helvetica, sans-serif), - weight: 300, - weight-bold: 600, - weight-heading: 200, - weight-heading-bold: 700, - kern-heading: 0.1em - ); +$font: ( + family: ('Roboto', Helvetica, sans-serif), + family-fixed: ('Courier New', monospace), + weight: 300, + weight-bold: 400 +); // Palette. - $palette: ( - bg: #2e3141, - fg: #ffffff, - fg-bold: #ffffff, - fg-light: rgba(255,255,255,0.35), - border: rgba(255,255,255,0.125), - border-bg: rgba(255,255,255,0.025), - border2: rgba(255,255,255,0.25), - border2-bg: rgba(255,255,255,0.075), - accent: #4c5c96 - ); \ No newline at end of file +$palette: ( + bg: #1c1d26, + bg-transparent: rgba(23, 24, 32, 0.95), + bg-very-transparent: rgba(23, 24, 32, 0.9), + fg-bold: #ffffff, + fg: rgba(255,255, 255, 0.75), + fg-light: rgba(255, 255, 255, 0.5), + fg-lighter: rgba(255, 255, 255, 0.15), + border: rgba(255, 255, 255, 0.3), + border-bg: rgba(255, 255, 255, 0.075), + border2: rgba(255, 255, 255, 0.5), + border2-bg: rgba(255, 255, 255, 0.25), + accent3: #9B160F, + link: rgba(200, 200, 255, 0.75), + accent2: #272833, + accent2-transparent:rgba(39, 40, 51, 0.965), + accent1: #E64F2D, + accent4: #D74126 +); + +//pictures startpage +$picture-startpage: ( + scroll-1: url(../images/home/abschnitt1.jpeg), +); diff --git a/assets/sass/main.scss b/assets/sass/main.scss index 783f5ba..f0b529c 100644 --- a/assets/sass/main.scss +++ b/assets/sass/main.scss @@ -1,57 +1,119 @@ -@import 'libs/vars'; -@import 'libs/functions'; -@import 'libs/mixins'; -@import 'libs/skel'; -@import 'font-awesome.min.css'; -@import 'font.css'; - -/* - Solid State by HTML5 UP - html5up.net | @ajlkn - Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -*/ - - @include skel-breakpoints(( - xlarge: '(max-width: 1680px)', - large: '(max-width: 1280px)', - medium: '(max-width: 980px)', - small: '(max-width: 736px)', - xsmall: '(max-width: 640px)', - xxsmall: '(max-width: 360px)' - )); - - @include skel-layout(( - reset: 'full', - boxModel: 'border', - grid: ( gutters: 1.75em ), - breakpoints: ( - small: ( - grid: ( gutters: 1.25em ) - ) - ) - )); - -// Base. - - @import 'base/page'; - @import 'base/typography'; - -// Component. - - @import 'components/section'; - @import 'components/form'; - @import 'components/box'; - @import 'components/icon'; - @import 'components/image'; - @import 'components/list'; - @import 'components/table'; - @import 'components/button'; - @import 'components/features'; - -// Layout. - - @import 'layout/header'; - @import 'layout/menu'; - @import 'layout/banner'; - @import 'layout/wrapper'; - @import 'layout/footer'; +@import 'libs/vars'; +@import 'libs/functions'; +@import 'libs/mixins'; +@import url("../css/font-awesome.min.css"); +@import url("../fonts/roboto.css"); +@import url("https://toolbox-bodensee.de/css/spacestatus.css"); +@import "libs/skel"; +@import 'parts/startpage'; + +/* +Landed by HTML5 UP +html5up.net | @ajlkn +Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) +Modified by Toolbox Bodensee e.V. +*/ + +@include skel-breakpoints(( + xlarge: '(max-width: 1680px)', + large: '(max-width: 1280px)', + medium: '(max-width: 980px)', + small: '(max-width: 933px)', + xsmall: '(max-width: 480px)' +)); + +@mixin breakpoint($point) { + @if $point == desktop { + @media (max-width: 1680px) { @content ; } + } + + @else if $point == laptop { + @media (max-width: 1280px) { @content ; } + } + + @else if $point == tablet { + @media (max-width: 980px) { @content ; } + } + + @else if $point == phablet { + @media (max-width: 933px) { @content ; } + } + + @else if $point == mobileonly { + @media (max-width: 480px) { @content ; } + } +} + +@include skel-layout(( + reset: 'full', + boxModel: 'border', + grid: ( gutters: 2.5em ), + conditionals: true, + containers: 70em, + breakpoints: ( + large: ( + containers: 90%, + ), + medium: ( + containers: (100%, true), + ) + ) +)); + +@mixin line-icon($bg: _palette(bg), $fg: _palette(fg-bold)) { + @include icon; + $size: 1px; + + &::before { + color: $bg !important; + text-shadow: + $size 0 0 $fg, + ($size * -1) 0 0 $fg, + 0 $size 0 $fg, + 0 ($size * -1) 0 $fg; + } +} + +$size-wrapper-pad-tb: 6em; +$size-wrapper-pad-lr: 3em; + +@include breakpoint(laptop) { + $size-wrapper-pad-tb: 4.5em; + $size-wrapper-pad-lr: 2.5em; +} + +@include breakpoint(tablet) { + $size-wrapper-pad-tb: 4.5em; + $size-wrapper-pad-lr: 2.5em; +} + +@include breakpoint(phablet) { + $size-wrapper-pad-tb: 3.25em; + $size-wrapper-pad-lr: 1.5em; +} + +@include breakpoint(mobileonly) { + $size-wrapper-pad-tb: 3em; + $size-wrapper-pad-lr: 1.25em; +} + +@import 'parts/basic'; +@import 'parts/loader'; +@import 'parts/section-article'; +@import 'parts/form'; +@import 'parts/box'; +@import 'parts/icon'; +@import 'parts/image'; +@import 'parts/list'; +@import 'parts/table'; +@import 'parts/button'; +@import 'parts/goto-next'; +@import 'parts/spotlight'; +@import 'parts/wrapper'; +@import 'parts/dropotron'; +@import 'parts/header'; +@import 'parts/banner'; +@import 'parts/footer'; +@import 'parts/project'; +@import 'parts/col'; + diff --git a/assets/sass/parts/_banner.scss b/assets/sass/parts/_banner.scss new file mode 100644 index 0000000..908af6e --- /dev/null +++ b/assets/sass/parts/_banner.scss @@ -0,0 +1,133 @@ +/* Banner */ +#banner { + background-attachment: fixed; + background-color: _palette(accent2); + background-image: url('../../images/banner.jpg'); + background-position: center center; + background-size: cover; + box-shadow: 0 0.25em 0.5em 0 rgba(0, 0, 0, 0.25); + min-height: 100vh; + position: relative; + text-align: center; + z-index: (_misc(max-spotlight) + 1); + + @include breakpoint(tablet) { + background-attachment: scroll; + + .goto-next { + height: 7em; + } + } + + @include breakpoint(phablet) { + box-shadow: 0 0.125em 0.5em 0 rgba(0, 0, 0, 0.25); + min-height: calc(100vh - 44px); + } + + &::before { + content: ''; + display: inline-block; + height: 100vh; + vertical-align: middle; + width: 1%; + + @include breakpoint(phablet) { + height: calc(100vh - 44px); + } + } + + &::after { + content: ''; + display: block; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; + } + + .content { + display: inline-block; + margin-right: 1%; + max-width: 95%; + padding: $size-wrapper-pad-tb; + position: relative; + text-align: right; + vertical-align: middle; + z-index: 1; + + @include breakpoint(laptop) { + padding: $size-wrapper-pad-tb; + } + + @include breakpoint(tablet) { + padding: ($size-wrapper-pad-tb * 2) 0; + text-align: center; + } + + @include breakpoint(phablet) { + padding: ($size-wrapper-pad-tb * 1.25) $size-wrapper-pad-lr ($size-wrapper-pad-tb * 1.5) $size-wrapper-pad-lr; + } + + @include breakpoint(mobileonly) { + padding: $size-wrapper-pad-tb ($size-wrapper-pad-lr * 1.25) ($size-wrapper-pad-tb * 1.75) ($size-wrapper-pad-lr * 1.25); + } + + header { + display: inline-block; + vertical-align: middle; + + @include breakpoint(tablet) { + display: block; + margin: 0 0 _size(element-margin) 0; + text-align: center; + } + + h2 { + font-size: 2.5em; + margin: 0; + + @include breakpoint(phablet) { + font-size: 1.5em; + } + } + + p { + margin: (_size(element-margin) * 0.25) 0 0 0; + top: 0; + } + } + + .image { + border-radius: 0; + display: inline-block; + height: 19em; + margin-left: 3em; + margin-top: 2em; + vertical-align: middle; + width: 19em; + + @include breakpoint(tablet) { + margin: 0; + } + + @include breakpoint(phablet) { + height: 9em; + width: 9em; + } + + img { + border-radius: 0; + display: block; + width: 100%; + } + } + } +} + +body.is-touch { + #banner { + background-attachment: scroll; + } +} + diff --git a/assets/sass/parts/_basic.scss b/assets/sass/parts/_basic.scss new file mode 100644 index 0000000..bcee5c9 --- /dev/null +++ b/assets/sass/parts/_basic.scss @@ -0,0 +1,218 @@ +/* Basic */ +html, +body { + background: _palette(bg); + + @include breakpoint(phablet) { + overflow-x: hidden; + } + + @include breakpoint(mobileonly) { + min-width: 320px; + } +} + +body { + &.is-loading { + *, + *::before, + *::after { + @include vendor('animation', 'none !important'); + @include vendor('transition', 'none !important'); + } + } + + @include breakpoint(phablet) { + &.navPanel-visible { + #page-wrapper { + @include vendor('transform', 'translateX(#{_size(navPanel)})'); + } + + #titleBar { + @include vendor('transform', 'translateX(#{_size(navPanel)})'); + } + + #navPanel { + @include vendor('transform', 'translateX(0)'); + } + } + } +} + +body, +input, +select, +textarea { + color: _palette(fg); + font-family: _font(family); + font-size: 15pt; + font-weight: _font(weight); + line-height: 1.75em; + + @include breakpoint(desktop) { + font-size: 13pt; + } + + @include breakpoint(laptop) { + font-size: 12pt; + } + + @include breakpoint(tablet) { + font-size: 12pt; + } + + @include breakpoint(phablet) { + font-size: 12pt; + } + + @include breakpoint(mobileonly) { + font-size: 12pt; + } +} + +a { + @include vendor('transition', ('border-color #{_duration(transition)} ease-in-out', 'color #{_duration(transition)} ease-in-out')); + + color: _palette(link); + text-decoration: none; + + &:hover { + color: _palette(accent1) !important; + border-bottom-color: transparent; + } +} + +strong, +b { + color: _palette(fg-bold); + font-weight: _font(weight-bold); +} + +em, +i { + font-style: italic; +} + +p { + margin: 0 0 _size(element-margin) 0; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + color: _palette(fg-bold); + font-weight: _font(weight-bold); + line-height: 1em; + margin: 0 0 (_size(element-margin) * 0.5) 0; + + a { + color: inherit; + border: 0; + } +} + +h2 { + font-size: 2em; + line-height: 1.5em; + letter-spacing: -0.025em; + + @include breakpoint(phablet) { + font-size: 1.5em; + } +} + +h3 { + font-size: 1.35em; + line-height: 1.5em; + + @include breakpoint(phablet) { + font-size: 1.2em; + } +} + +h4 { + font-size: 1.1em; + line-height: 1.5em; + + @include breakpoint(phablet) { + font-size: 1em; + } +} + +h5 { + font-size: 0.9em; + line-height: 1.5em; +} + +h6 { + font-size: 0.7em; + line-height: 1.5em; +} + +sub { + font-size: 0.8em; + position: relative; + top: 0.5em; +} + +sup { + font-size: 0.8em; + position: relative; + top: -0.5em; +} + +hr { + border: 0; + border-bottom: solid 1px _palette(border); + margin: (_size(element-margin) * 1.5) 0; + + &.major { + margin: (_size(element-margin) * 2) 0; + } +} + +blockquote { + border-left: solid 4px _palette(border); + font-style: italic; + margin: 0 0 _size(element-margin) 0; + padding: 0.5em 0 0.5em 2em; +} + +code { + background: _palette(border-bg); + border-radius: _size(border-radius); + font-family: _font(family-fixed); + font-size: 0.9em; + margin: 0 0.25em; + padding: 0.25em 0.65em; +} + +pre { + -webkit-overflow-scrolling: touch; + font-family: _font(family-fixed); + font-size: 0.9em; + margin: 0 0 _size(element-margin) 0; + + code { + display: block; + line-height: 1.75em; + padding: 1em 1.5em; + overflow-x: auto; + } +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + diff --git a/assets/sass/parts/_box.scss b/assets/sass/parts/_box.scss new file mode 100644 index 0000000..e3dcb75 --- /dev/null +++ b/assets/sass/parts/_box.scss @@ -0,0 +1,20 @@ +/* Box */ +.box { + border-radius: _size(border-radius); + border: solid 1px _palette(border); + margin-bottom: _size(element-margin); + padding: 1.5em; + + > :last-child, + > :last-child > :last-child, + > :last-child > :last-child > :last-child { + margin-bottom: 0; + } + + &.alt { + border: 0; + border-radius: 0; + padding: 0; + } +} + diff --git a/assets/sass/parts/_button.scss b/assets/sass/parts/_button.scss new file mode 100644 index 0000000..a99a3a3 --- /dev/null +++ b/assets/sass/parts/_button.scss @@ -0,0 +1,132 @@ +/* Button */ +input[type="submit"], +input[type="reset"], +input[type="button"], +.button { + @include vendor('appearance', 'none'); + @include vendor('transition', ('background-color #{_duration(transition)} ease-in-out', 'color #{_duration(transition)} ease-in-out', 'box-shadow #{_duration(transition)} ease-in-out')); + + background-color: transparent; + border-radius: _size(border-radius); + border: 0; + box-shadow: inset 0 0 0 2px _palette(border); + color: _palette(fg-bold) !important; + cursor: pointer; + display: inline-block; + font-weight: _font(weight-bold); + height: _size(element-height); + line-height: _size(element-height); + padding: 0 2.25em; + text-align: center; + text-decoration: none; + white-space: nowrap; + + @include breakpoint(mobileonly) { + padding: 0; + } + + &:hover, + &:active { + box-shadow: inset 0 0 0 1px _palette(accent1); + color: _palette(accent1) !important; + } + + &:active { + background-color: transparentize(_palette(accent1), 0.85); + } + + &.icon { + &::before { + margin-right: 0.5em; + } + } + + &.fit { + display: block; + margin: 0 0 (_size(element-margin) * 0.5) 0; + width: 100%; + } + + &.small { + font-size: 0.8em; + } + + &.big { + font-size: 1.35em; + } + + &.special { + background-color: _palette(accent1); + box-shadow: none; + color: _palette(fg-bold) !important; + + &:hover { + background-color: lighten(_palette(accent1), 5); + } + + &:active { + background-color: darken(_palette(accent1), 5); + } + } + + &.disabled, + &:disabled { + background-color: _palette(border) !important; + box-shadow: none !important; + color: _palette(fg-bold) !important; + cursor: default; + opacity: 0.25; + } + + &.tb-opened { + background-color: LimeGreen !important; + + &.navbar { + margin-left: -15px; + } + } +} + +.tb-closed { + color: #d23128ff; +} + +.tooltip { + position: relative; + display: inline-block; + border-bottom: 1px dotted black; +} +.tooltip .tooltiptext { + visibility: hidden; + position: absolute; + width: 230px; + margin-left: -100px; + font-size: 0.9em; + background-color: #555; + line-height: normal; + color: #fff; + text-align: center; + padding: 15px 0; + border-radius: 6px; + z-index: 1; + opacity: 0; + transition: opacity 0.3s; + top: 100%; + left: 50%; +} + +.tooltip .tooltiptext::after { + content: ""; + position: absolute; + bottom: 100%; + left: 50%; + margin-left: -5px; + border-width: 5px; + border-style: solid; + border-color: transparent transparent #555 transparent; +} + +.tooltip:hover .tooltiptext { + visibility: visible; + opacity: 1; +} diff --git a/assets/sass/parts/_col.scss b/assets/sass/parts/_col.scss new file mode 100644 index 0000000..e73e7df --- /dev/null +++ b/assets/sass/parts/_col.scss @@ -0,0 +1,12 @@ +/* Columns */ +@for $i from 2 through 5 { + .col-#{$i} { + column-count: $i; + column-gap: 1vw; + + > .button { + padding: 0; + } + } +} + diff --git a/assets/sass/parts/_dropotron.scss b/assets/sass/parts/_dropotron.scss new file mode 100644 index 0000000..e538ad3 --- /dev/null +++ b/assets/sass/parts/_dropotron.scss @@ -0,0 +1,66 @@ +/* Dropotron */ +.dropotron { + background: _palette(accent2-transparent); + border-radius: _size(border-radius); + box-shadow: 0 0.075em 0.35em 0 rgba(0, 0, 0, 0.125); + list-style: none; + margin-top: calc(-0.25em + 1px); + min-width: 12em; + padding: 0.25em 0; + + > li { + border-top: solid 1px rgba(255, 255, 255, 0.035); + padding: 0; + + a, + span { + border: 0; + color: _palette(fg); + display: block; + padding: 0.1em 1em; + text-decoration: none; + } + + &:first-child { + border-top: 0; + } + + &.active { + > a, + > span { + color: _palette(accent1); + } + } + } + + &.level-0 { + font-size: 0.8em; + margin-top: 1em; + + @include breakpoint(laptop) { + font-size: 1em; + } + + &::before { + @include vendor('transform', 'rotate(45deg)'); + + background: _palette(accent2); + content: ''; + display: block; + height: 1em; + position: absolute; + right: 1.5em; + top: -0.5em; + width: 1em; + } + } +} + +body.landing { + .dropotron { + &.level-0 { + margin-top: 0; + } + } +} + diff --git a/assets/sass/parts/_footer.scss b/assets/sass/parts/_footer.scss new file mode 100644 index 0000000..590b6ce --- /dev/null +++ b/assets/sass/parts/_footer.scss @@ -0,0 +1,69 @@ +/* Footer */ +#footer { + background: _palette(accent2); + padding: $size-wrapper-pad-tb 0; + text-align: center; + + @include breakpoint(laptop) { + padding: $size-wrapper-pad-tb 0; + } + + @include breakpoint(tablet) { + padding: $size-wrapper-pad-tb 0; + } + + @include breakpoint(phablet) { + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr; + } + + @include breakpoint(mobileonly) { + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr; + } + + .icons { + .icon { + &.alt { + @include line-icon(_palette(accent2), _palette(fg-light)); + } + } + } + + .copyright { + color: _palette(fg-light); + font-size: 0.8em; + line-height: 1em; + margin: 2em 0 0 0; + padding: 0; + text-align: center; + + @include breakpoint(mobileonly) { + line-height: inherit; + } + + li { + border-left: solid 1px _palette(border); + display: inline-block; + list-style: none; + margin-left: 1.5em; + padding-left: 1.5em; + + @include breakpoint(mobileonly) { + border-left: 0; + display: block; + margin: 0; + padding: 0; + } + + &:first-child { + border-left: 0; + margin-left: 0; + padding-left: 0; + } + + a { + color: inherit; + } + } + } +} + diff --git a/assets/sass/parts/_form.scss b/assets/sass/parts/_form.scss new file mode 100644 index 0000000..506e666 --- /dev/null +++ b/assets/sass/parts/_form.scss @@ -0,0 +1,182 @@ +/* Form */ +form { + margin: 0 0 _size(element-margin) 0; +} + +label { + color: _palette(fg-bold); + display: block; + font-size: 0.9em; + font-weight: _font(weight-bold); + margin: 0 0 (_size(element-margin) * 0.5) 0; +} + +input[type="text"], +input[type="password"], +input[type="email"], +select, +textarea { + @include vendor('appearance', 'none'); + @include vendor('transition', 'border-color #{_duration(transition)} ease-in-out'); + + background: transparent; + border-radius: _size(border-radius); + border: solid 1px _palette(border); + color: inherit; + display: block; + outline: 0; + padding: 0 1em; + text-decoration: none; + width: 100%; + + &:invalid { + box-shadow: none; + } + + &:focus { + border-color: _palette(accent1); + } +} + +.select-wrapper { + @include icon; + + display: block; + position: relative; + + &::before { + color: _palette(border); + content: '\f078'; + display: block; + height: _size(element-height); + line-height: _size(element-height); + pointer-events: none; + position: absolute; + right: 0; + text-align: center; + top: 0; + width: _size(element-height); + } + + select::-ms-expand { + display: none; + } +} + +input[type="text"], +input[type="password"], +input[type="email"], +select { + height: _size(element-height); +} + +textarea { + padding: 0.75em 1em; +} + +select { + option { + background-color: _palette(bg); + color: _palette(fg-bold); + } + + &:focus { + &::-ms-value { + background: transparent; + } + } +} + +input[type="checkbox"], +input[type="radio"], { + @include vendor('appearance', 'none'); + display: block; + float: left; + margin-right: -2em; + opacity: 0; + width: 1em; + z-index: -1; + + & + label { + @include icon; + + color: _palette(fg); + cursor: pointer; + display: inline-block; + font-size: 1em; + font-weight: _font(weight); + padding-left: (_size(element-height) * 0.6) + 0.75em; + padding-right: 0.75em; + position: relative; + + &::before { + border-radius: _size(border-radius); + border: solid 1px _palette(border); + content: ''; + display: inline-block; + height: (_size(element-height) * 0.6); + left: 0; + line-height: (_size(element-height) * 0.575); + position: absolute; + text-align: center; + top: 0; + width: (_size(element-height) * 0.6); + } + } + + &:checked + label { + &::before { + background: _palette(border2-bg); + color: _palette(fg-bold); + content: '\f00c'; + } + } + + &:focus + label { + &::before { + border-color: _palette(accent1); + } + } +} + +input[type="checkbox"] { + & + label { + &::before { + border-radius: _size(border-radius); + } + } +} + +input[type="radio"] { + & + label { + &::before { + border-radius: 100%; + } + } +} + +::-webkit-input-placeholder { + color: _palette(fg-light) !important; + opacity: 1; +} + +:-moz-placeholder { + color: _palette(fg-light) !important; + opacity: 1; +} + +::-moz-placeholder { + color: _palette(fg-light) !important; + opacity: 1; +} + +:-ms-input-placeholder { + color: _palette(fg-light) !important; + opacity: 1; +} + +.formerize-placeholder { + color: _palette(fg-light) !important; + opacity: 1; +} + diff --git a/assets/sass/parts/_goto-next.scss b/assets/sass/parts/_goto-next.scss new file mode 100644 index 0000000..f2a632c --- /dev/null +++ b/assets/sass/parts/_goto-next.scss @@ -0,0 +1,38 @@ +/* Goto Next */ +.goto-next { + border: 0; + bottom: 0; + display: block; + height: 5em; + left: 50%; + margin: 0 0 0 -5em; + overflow: hidden; + position: absolute; + text-indent: 10em; + white-space: nowrap; + width: 10em; + z-index: 1; + + &::before { + background-image: url('images/arrow.svg'); + background-position: center center; + background-repeat: no-repeat; + background-size: contain; + content: ''; + display: block; + height: 1.5em; + left: 50%; + margin: -0.75em 0 0 -1em; + position: absolute; + top: 50%; + width: 2em; + z-index: 1; + + @include breakpoint(phablet) { + height: 0.8em; + margin: -0.4em 0 0 -0.6em; + width: 1.2em; + } + } +} + diff --git a/assets/sass/parts/_header.scss b/assets/sass/parts/_header.scss new file mode 100644 index 0000000..8916206 --- /dev/null +++ b/assets/sass/parts/_header.scss @@ -0,0 +1,250 @@ +/* Header */ +#navPanel, +#titleBar { + display: none; +} + +@include breakpoint(phablet) { + #titleBar { + @include vendor('backface-visibility', 'hidden'); + @include vendor('transition', 'transform #{_duration(navPanel)} ease'); + + display: block; + height: 44px; + left: 0; + position: fixed; + top: 0; + width: 100%; + z-index: _misc(z-index-base) + 1; + background: _palette(accent2); + box-shadow: 0 0.125em 0.125em 0 rgba(0, 0, 0, 0.125); + + .title { + color: _palette(fg-bold); + display: block; + font-weight: _font(weight-bold); + height: 44px; + line-height: 44px; + text-align: center; + + a { + color: inherit; + border: 0; + } + } + + .toggle { + @include icon; + + height: 60px; + left: 0; + position: absolute; + top: 0; + width: 90px; + outline: 0; + border: 0; + + &::before { + background: _palette(accent3); + color: _palette(fg-light); + display: block; + font-size: 18px; + height: 44px; + left: 0; + line-height: 44px; + position: absolute; + text-align: center; + top: 0; + width: 54px; + } + } + } +} + +@include breakpoint(phablet) { + #navPanel { + @include vendor('backface-visibility', 'hidden'); + @include vendor('transform', 'translateX(#{_size(navPanel) * -1})'); + @include vendor('transition', ('transform #{_duration(navPanel)} ease')); + display: block; + height: 100%; + left: 0; + overflow-y: auto; + position: fixed; + top: 0; + width: _size(navPanel); + z-index: _misc(z-index-base) + 2; + background: darken(_palette(bg), 2); + padding: 0.75em 1.25em; + + .link { + border: 0; + border-top: solid 1px transparentize(_palette(border), 0.25); + color: _palette(fg); + display: block; + height: 3em; + line-height: 3em; + text-decoration: none; + + &:hover { + color: inherit !important; + } + + &:first-child { + border-top: 0; + } + + &.depth-0 { + color: _palette(fg-bold); + font-weight: _font(weight-bold); + } + + .indent-1 { + display: inline-block; + width: 1.25em; + } + + .indent-2 { + display: inline-block; + width: 2.5em; + } + + .indent-3 { + display: inline-block; + width: 3.75em; + } + + .indent-4 { + display: inline-block; + width: 5em; + } + + .indent-5 { + display: inline-block; + width: 6.25em; + } + } + } +} + +#page-wrapper { + padding-top: 3.5em; + + @include breakpoint(phablet) { + @include vendor('backface-visibility', 'hidden'); + @include vendor('transition', 'transform #{_duration(navPanel)} ease'); + + padding-bottom: 1px; + padding-top: 44px !important; + } +} + +#header { + background: _palette(accent2-transparent); + box-shadow: 0 0 0.25em 0 rgba(0, 0, 0, 0.25); + cursor: default; + height: 3.5em; + left: 0; + line-height: 3.5em; + position: fixed; + top: 0; + width: 100%; + z-index: 5000; + + @include breakpoint(phablet) { + display: none; + } + + h1 { + height: inherit; + left: 1.25em; + line-height: inherit; + margin: 0; + position: absolute; + top: 0; + } + + nav { + ul { + list-style: none; + position: relative; + float: right; + margin: 0; + padding: 0; + + li { + position: relative; + float: left; + margin: 0; + padding: 0; + color: inherit; + height: inherit; + line-height: inherit; + + a, + span { + display: block; + color: inherit; + text-decoration: none; + line-height: inherit; + padding: 0 1em; + } + + &.active { + > a, + > span { + color: _palette(accent1); + } + } + + &.last { + padding-right: 1.8em; + } + } + + ul { + display: none; + position: absolute; + top: 100%; + left: 0; + border-bottom: 2px solid rgba(255, 255, 255, 0.075); + background: _palette(accent2-transparent); + padding: 0; + + li { + float: none; + width: 11em; + overflow: hidden; + } + + &.last { + li { + width: 8em; + } + } + + a { + line-height: 100%; + padding: 10px 15px; + border-top: 2px solid rgba(255, 255, 255, 0.075); + } + + ul { + top: 0; + left: 100%; + } + } + + li:hover > ul { + display: block; + } + } + } +} + +body.landing { + #page-wrapper { + padding-top: 0; + } +} + diff --git a/assets/sass/parts/_icon.scss b/assets/sass/parts/_icon.scss new file mode 100644 index 0000000..50931f2 --- /dev/null +++ b/assets/sass/parts/_icon.scss @@ -0,0 +1,46 @@ +/* Icon */ +.icon { + @include icon; + + border-bottom: none; + position: relative; + + > .label { + display: none; + } + + &.alt { + @include line-icon; + } + + &.major { + background: _palette(accent2); + border-radius: 100%; + cursor: default; + display: inline-block; + height: 6em; + line-height: 6em; + margin: 0 0 _size(element-margin) 0; + text-align: center; + width: 6em; + + &::before { + font-size: 2.25em; + } + + &.alt { + @include line-icon(_palette(accent2)); + } + } +} + +.iconshiftdown { + line-height: 2; +} + +@for $i from 5 through 10 { + .iconshift-right-#{$i} { + margin-left: $i * 1px; + } +} + diff --git a/assets/sass/parts/_image.scss b/assets/sass/parts/_image.scss new file mode 100644 index 0000000..65cbf64 --- /dev/null +++ b/assets/sass/parts/_image.scss @@ -0,0 +1,60 @@ +/* Image */ +.image { + border-radius: _size(border-radius); + border: 0; + display: inline-block; + position: relative; + overflow: hidden; + + &::before { + content: ''; + display: block; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: 1; + } + + img { + border-radius: _size(border-radius); + display: block; + } + + &.left { + float: left; + margin: 0 1.5em 1em 0; + top: 0.25em; + } + + &.right { + float: right; + margin: 0 0 1em 1.5em; + top: 0.25em; + } + + &.left, + &.right { + max-width: 40%; + + img { + width: 100%; + } + } + + &.fit { + display: block; + margin: 0 0 _size(element-margin) 0; + width: 100%; + + img { + width: 100%; + } + } + + &.mapid { + height: 70vh; + } +} + diff --git a/assets/sass/parts/_list.scss b/assets/sass/parts/_list.scss new file mode 100644 index 0000000..f95b494 --- /dev/null +++ b/assets/sass/parts/_list.scss @@ -0,0 +1,162 @@ +/* List */ +ol { + list-style: decimal; + margin: 0 0 _size(element-margin) 0; + padding-left: 1.25em; + + li { + padding-left: 0.25em; + } +} + +ul { + list-style: disc; + margin: 0 0 _size(element-margin) 0; + padding-left: 1em; + + li { + padding-left: 0.5em; + } + + &.alt { + list-style: none; + padding-left: 0; + + li { + border-top: solid 1px _palette(border); + padding: 0.5em 0; + + &:first-child { + border-top: 0; + padding-top: 0; + } + } + } + + &.icons { + cursor: default; + list-style: none; + padding-left: 0; + + li { + display: inline-block; + height: 2.5em; + line-height: 2.5em; + padding: 0 0.5em; + + .icon { + font-size: 0.8em; + + &::before { + font-size: 2em; + } + } + } + } + + &.actions { + cursor: default; + list-style: none; + padding-left: 0; + + @include breakpoint(mobileonly) { + margin: 0 0 _size(element-margin) 0; + } + + li { + display: inline-block; + padding: 0 (_size(element-margin) * 0.5) 0 0; + vertical-align: middle; + + @include breakpoint(mobileonly) { + display: block; + padding: (_size(element-margin) * 0.5) 0 0 0; + text-align: center; + width: 100%; + + &:first-child { + padding-top: 0; + } + + > * { + margin: 0 !important; + width: 100%; + } + } + + &:last-child { + padding-right: 0; + } + } + + &.small { + li { + padding: 0 (_size(element-margin) * 0.25) 0 0; + + @include breakpoint(mobileonly) { + padding: (_size(element-margin) * 0.25) 0 0 0; + + &:first-child { + padding-top: 0; + } + } + } + } + + &.vertical { + li { + display: block; + padding: (_size(element-margin) * 0.5) 0 0 0; + + &:first-child { + padding-top: 0; + } + + > * { + margin-bottom: 0; + } + } + + &.small { + li { + padding: (_size(element-margin) * 0.25) 0 0 0; + + &:first-child { + padding-top: 0; + } + } + } + } + + &.fit { + display: table; + margin-left: (_size(element-margin) * -0.5); + padding: 0; + table-layout: fixed; + width: calc(100% + #{(_size(element-margin) * 0.5)}); + + li { + display: table-cell; + padding: 0 0 0 (_size(element-margin) * 0.5); + + > * { + margin-bottom: 0; + } + } + + &.small { + margin-left: (_size(element-margin) * -0.25); + width: calc(100% + #{(_size(element-margin) * 0.25)}); + + li { + padding: 0 0 0 (_size(element-margin) * 0.25); + } + } + } + } +} + +dl { + margin: 0 0 _size(element-margin) 0; +} + diff --git a/assets/sass/parts/_loader.scss b/assets/sass/parts/_loader.scss new file mode 100644 index 0000000..a12a446 --- /dev/null +++ b/assets/sass/parts/_loader.scss @@ -0,0 +1,134 @@ +/* Loader */ +// Spinner +@include keyframes('spinner-show') { + 0% { opacity: 0; } + 100% { opacity: 1; } +} + +@include keyframes('spinner-hide') { + + 0% { + color: _palette(fg-lighter); + z-index: _misc(z-index-overlay) + 1; + + @include vendor('transform', 'scale(1) rotate(0deg)'); + } + + 99% { + color: _palette(bg); + z-index: _misc(z-index-overlay) + 1; + + @include vendor('transform', 'scale(0.5) rotate(360deg)'); + } + + 100% { + color: _palette(bg); z-index: -1; + + @include vendor('transform', 'scale(0.5) rotate(360deg)'); + } +} + +@include keyframes('spinner-rotate') { + + 0% { + + @include vendor('transform', 'scale(1) rotate(0deg)'); + } + + 100% { + + @include vendor('transform', 'scale(1) rotate(360deg)'); + } +} + +// Overlay +@include keyframes('overlay-hide') { + + 0% { + opacity: 1; + z-index: _misc(z-index-overlay); + } + + 15% { + opacity: 1; + z-index: _misc(z-index-overlay); + } + + 99% { + opacity: 0; + z-index: _misc(z-index-overlay); + } + + 100% { + opacity: 0; + z-index: -1; + } +} + +body.landing { + @include icon; + + // Spinner (inactive) + &::before { + @include vendor('animation', ('spinner-show 1.5s 1 0.25s ease forwards', 'spinner-hide 0.25s ease-in-out forwards !important')); + @include vendor('transform-origin', '50% 50%'); + + color: _palette(fg-lighter); + content: '\f1ce'; + cursor: default; + display: block; + font-family: "Font Awesome 5 Free"; + font-size: 2em; + font-weight: 900; + height: 2em; + left: 50%; + line-height: 2em; + margin: -1em 0 0 -1em; + opacity: 0; + position: fixed; + text-align: center; + top: 50%; + width: 2em; + z-index: -1; + } + + // Overlay (inactive) + &::after { + @include vendor('animation', 'overlay-hide #{_duration(landing-fadein)} ease-in forwards !important'); + + background: _palette(bg); + content: ''; + display: block; + height: 100%; + left: 0; + opacity: 0; + position: fixed; + top: 0; + width: 100%; + z-index: -1; + } + + &.is-loading { + // Spinner (active) + &::before { + @include vendor('animation', ('spinner-show 1.5s 1 0.25s ease forwards', 'spinner-rotate 0.75s infinite linear !important')); + + z-index: _misc(z-index-overlay) + 1; + } + + // Overlay (active) + &::after { + @include vendor('animation', 'none !important'); + + opacity: 1; + z-index: _misc(z-index-overlay); + } + } +} + +@media (-webkit-min-device-pixel-ratio: 2) { + body.landing::before { + line-height: 2.025em; + } +} + diff --git a/assets/sass/parts/_project.scss b/assets/sass/parts/_project.scss new file mode 100644 index 0000000..410f1d3 --- /dev/null +++ b/assets/sass/parts/_project.scss @@ -0,0 +1,12 @@ +.project { + height: 600px; +} + +.teaser { + height: 300px; +} + +.project-creator { + border-bottom: none; +} + diff --git a/assets/sass/parts/_section-article.scss b/assets/sass/parts/_section-article.scss new file mode 100644 index 0000000..c5e121b --- /dev/null +++ b/assets/sass/parts/_section-article.scss @@ -0,0 +1,79 @@ +/* Section/Article */ +section, +article { + &.special { + text-align: center; + } +} + +header { + p { + color: _palette(fg-bold); + position: relative; + margin: 0 0 (_size(element-margin) * 0.75) 0; + + @include breakpoint(phablet) { + br { + display: none; + } + } + } + + h2 + p { + font-size: 1.25em; + margin-top: (_size(element-margin) * -0.5); + line-height: 1.75em; + + @include breakpoint(phablet) { + font-size: 1em; + } + } + + h3 + p { + font-size: 1.1em; + margin-top: (_size(element-margin) * -0.4); + line-height: 1.75em; + + @include breakpoint(phablet) { + font-size: 1em; + } + } + + h4 + p, + h5 + p, + h6 + p { + font-size: 0.9em; + margin-top: (_size(element-margin) * -0.3); + line-height: 1.5em; + + @include breakpoint(phablet) { + font-size: 0.9em; + } + } + + &.major { + margin: 0 0 (_size(element-margin) * 2) 0; + position: relative; + text-align: center; + + @include breakpoint(phablet) { + margin: 0 0 _size(element-margin) 0; + } + + &::after { + background: _palette(accent1); + content: ''; + display: inline-block; + height: 0.2em; + max-width: 20em; + width: 75%; + } + } +} + +footer { + &.major { + margin: (_size(element-margin) * 2) 0 0 0; + } +} + diff --git a/assets/sass/parts/_spotlight.scss b/assets/sass/parts/_spotlight.scss new file mode 100644 index 0000000..640036f --- /dev/null +++ b/assets/sass/parts/_spotlight.scss @@ -0,0 +1,229 @@ +/* Spotlight */ +.spotlight { + background-attachment: fixed; + background-position: center center; + background-size: cover; + box-shadow: 0 0.25em 0.5em 0 rgba(0, 0, 0, 0.25); + background-image: none; + min-height: 42em; + height: 100vh; + overflow: hidden; + position: relative; + + @include breakpoint(tablet) { + background-attachment: scroll; + height: auto; + min-height: auto; + } + + @include breakpoint(phablet) { + box-shadow: 0 0.125em 0.5em 0 rgba(0, 0, 0, 0.25); + } + + // Force spotlights to stack in reverse order (needed for our box + // shadows to overlap stuff in the right direction). + @for $i from 1 through _misc(max-spotlight) { + &:nth-last-of-type(#{$i}) { + z-index: #{$i}; + } + } + + &::before { + content: ''; + display: block; + height: 100%; + left: 0; + top: 0; + width: 100%; + } + + .image.main { + display: block; + + @include breakpoint(tablet) { + display: block; + margin: 0; + max-height: 40vh; + overflow: hidden; + } + + @include breakpoint(phablet) { + max-height: 60vh; + } + + @include breakpoint(mobileonly) { + max-height: 50vh; + } + + img { + position: relative; + } + } + + .content { + @include vendor('transform', 'translate(0,0)'); + @include vendor('transition', 'transform 1s ease, opacity 1s ease'); + + background: _palette(bg-very-transparent); + border-style: solid; + + opacity: 1; + position: absolute; + + @include breakpoint(tablet) { + background-color: _palette(bg-very-transparent); + border-width: 0 !important; + border-top-width: 0.35em !important; + bottom: auto !important; + left: auto !important; + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr ($size-wrapper-pad-tb - _size(element-margin)) $size-wrapper-pad-lr !important; + position: relative; + right: auto !important; + text-align: center; + top: auto !important; + width: 100% !important; + } + + @include breakpoint(phablet) { + border-top-width: 0.2em !important; + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr ($size-wrapper-pad-tb - _size(element-margin)) $size-wrapper-pad-lr !important; + } + + @include breakpoint(mobileonly) { + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr ($size-wrapper-pad-tb - _size(element-margin)) $size-wrapper-pad-lr !important; + } + } + + .goto-next { + @include vendor('transform', 'translate(0,0)'); + @include vendor('transition', 'transform 0.75s ease, opacity 1s ease-in'); + @include vendor('transition-delay', '0.5s'); + opacity: 1; + + @include breakpoint(tablet) { + display: none; + } + } + + &.top, + &.bottom { + .content { + left: 0; + padding: ($size-wrapper-pad-tb * 0.85) 0 (($size-wrapper-pad-tb * 0.85) - _size(element-margin)) 0; + width: 100%; + } + } + + &.top { + .content { + border-bottom-width: 0.35em; + top: 0; + + @include breakpoint(laptop) { + padding: ($size-wrapper-pad-tb * 0.85) 0 (($size-wrapper-pad-tb * 0.85) - _size(element-margin)) 0; + } + } + } + + &.bottom { + .content { + border-top-width: 0.35em; + bottom: 0; + + @include breakpoint(laptop) { + padding: ($size-wrapper-pad-tb * 0.85) 0 (($size-wrapper-pad-tb * 1.1) - _size(element-margin)) 0; + } + } + } + + &.left, + &.right { + .content { + height: 101%; + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr; + top: 0; + width: 28em; + min-width: 25%; + + @include breakpoint(laptop) { + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr; + width: 25em; + } + } + } + + &.left { + .content { + border-right-width: 0.35em; + left: 0; + } + } + + &.right { + .content { + border-left-width: 0.35em; + right: 0; + } + } + + &.style1 { + .content { + border-color: _palette(accent1-transparent); + } + } + + &.style2 { + .content { + border-color: _palette(accent1); + } + } + + &.style3 { + .content { + border-color: _palette(accent4); + } + } + + &.inactive { + .content { + opacity: 0; + } + + .goto-next { + @include vendor('transform', 'translate(0,1.5em)'); + + opacity: 0; + } + + &.top { + .content { + @include vendor('transform', 'translate(0,-5em)'); + } + } + + &.bottom { + .content { + @include vendor('transform', 'translate(0,5em)'); + } + } + + &.left { + .content { + @include vendor('transform', 'translate(-5em,0)'); + } + } + + &.right { + .content { + @include vendor('transform', 'translate(5em,0)'); + } + } + } +} + +body.is-touch { + .spotlight { + background-attachment: scroll; + } +} + diff --git a/assets/sass/parts/_startpage.scss b/assets/sass/parts/_startpage.scss new file mode 100644 index 0000000..6c3259e --- /dev/null +++ b/assets/sass/parts/_startpage.scss @@ -0,0 +1,7 @@ +//startpage +@each $scroll, $background in $picture-startpage { + ##{$scroll} { + background-image: $background; + } +} + diff --git a/assets/sass/parts/_table.scss b/assets/sass/parts/_table.scss new file mode 100644 index 0000000..1a9b611 --- /dev/null +++ b/assets/sass/parts/_table.scss @@ -0,0 +1,75 @@ +/* Table */ +.table-wrapper { + -webkit-overflow-scrolling: touch; + overflow-x: auto; +} + +table { + margin: 0 0 _size(element-margin) 0; + width: 100%; + + tbody { + tr { + border: solid 1px _palette(border); + border-left: 0; + border-right: 0; + + &:nth-child(2n + 1) { + background-color: _palette(border-bg); + } + } + } + + td { + padding: 0.75em 0.75em; + } + + th { + color: _palette(fg-bold); + font-size: 0.9em; + font-weight: _font(weight-bold); + padding: 0 0.75em 0.75em 0.75em; + text-align: left; + } + + thead { + border-bottom: solid 1px _palette(border); + } + + tfoot { + border-top: solid 1px _palette(border); + } + + &.alt { + border-collapse: separate; + + tbody { + tr { + td { + border: solid 1px _palette(border); + border-left-width: 0; + border-top-width: 0; + + &:first-child { + border-left-width: 1px; + } + } + + &:first-child { + td { + border-top-width: 1px; + } + } + } + } + + thead { + border-bottom: 0; + } + + tfoot { + border-top: 0; + } + } +} + diff --git a/assets/sass/parts/_wrapper.scss b/assets/sass/parts/_wrapper.scss new file mode 100644 index 0000000..2ac36dd --- /dev/null +++ b/assets/sass/parts/_wrapper.scss @@ -0,0 +1,116 @@ +/* Wrapper */ +.wrapper { + padding: $size-wrapper-pad-tb 0 ($size-wrapper-pad-tb - _size(element-margin)) 0; + + @include breakpoint(laptop) { + padding: $size-wrapper-pad-tb 0 ($size-wrapper-pad-tb - _size(element-margin)) 0; + } + + @include breakpoint(tablet) { + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr ($size-wrapper-pad-tb - _size(element-margin)) $size-wrapper-pad-lr; + } + + @include breakpoint(phablet) { + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr ($size-wrapper-pad-tb - _size(element-margin)) $size-wrapper-pad-lr; + } + + @include breakpoint(mobileonly) { + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr ($size-wrapper-pad-tb - _size(element-margin)) $size-wrapper-pad-lr; + } + + &.style2 { + background: _palette(accent1); + + input[type="text"], + input[type="password"], + input[type="email"], + select, + textarea { + &:focus { + border-color: _palette(border2); + } + } + + input[type="submit"], + input[type="reset"], + input[type="button"], + .button { + &:hover, + &:active { + background-color: _palette(border-bg) !important; + box-shadow: inset 0 0 0 1px _palette(border2) !important; + color: _palette(fg-bold) !important; + } + + &:active { + background-color: _palette(border2-bg) !important; + } + + &.special { + background-color: _palette(fg-bold); + color: _palette(accent1) !important; + + &:hover, + &:active { + background-color: _palette(border-bg) !important; + box-shadow: inset 0 0 0 1px _palette(border2) !important; + color: _palette(fg-bold) !important; + } + + &:active { + background-color: _palette(border2-bg) !important; + } + } + } + } + + &.fade-down { + > .container { + @include vendor('transform', 'translate(0,0)'); + @include vendor('transition', 'transform 1s ease, opacity 1s ease'); + + opacity: 1; + } + + &.inactive { + > .container { + @include vendor('transform', 'translate(0,-1em)'); + + opacity: 0; + } + } + } + + &.fade-up { + > .container { + @include vendor('transform', 'translate(0,0)'); + @include vendor('transition', 'transform 1s ease, opacity 1s ease'); + + opacity: 1; + } + + &.inactive { + > .container { + @include vendor('transform', 'translate(0,1em)'); + + opacity: 0; + } + } + } + + &.fade { + > .container { + @include vendor('transition', 'opacity 1s ease'); + + opacity: 1; + } + + &.inactive { + > .container { + + opacity: 0; + } + } + } +} + diff --git a/assets/webfonts/fa-brands-400.eot b/assets/webfonts/fa-brands-400.eot index e30fd00..35df1c5 100644 Binary files a/assets/webfonts/fa-brands-400.eot and b/assets/webfonts/fa-brands-400.eot differ diff --git a/assets/webfonts/fa-brands-400.ttf b/assets/webfonts/fa-brands-400.ttf index 1543db8..08f8ffe 100644 Binary files a/assets/webfonts/fa-brands-400.ttf and b/assets/webfonts/fa-brands-400.ttf differ diff --git a/assets/webfonts/fa-brands-400.woff b/assets/webfonts/fa-brands-400.woff index c293cef..3485a9c 100644 Binary files a/assets/webfonts/fa-brands-400.woff and b/assets/webfonts/fa-brands-400.woff differ diff --git a/assets/webfonts/fa-brands-400.woff2 b/assets/webfonts/fa-brands-400.woff2 index d9f97df..b54ad05 100644 Binary files a/assets/webfonts/fa-brands-400.woff2 and b/assets/webfonts/fa-brands-400.woff2 differ diff --git a/assets/webfonts/fa-regular-400.eot b/assets/webfonts/fa-regular-400.eot index 12be17b..4ab1ad9 100644 Binary files a/assets/webfonts/fa-regular-400.eot and b/assets/webfonts/fa-regular-400.eot differ diff --git a/assets/webfonts/fa-regular-400.ttf b/assets/webfonts/fa-regular-400.ttf index abf3f48..3256094 100644 Binary files a/assets/webfonts/fa-regular-400.ttf and b/assets/webfonts/fa-regular-400.ttf differ diff --git a/assets/webfonts/fa-regular-400.woff b/assets/webfonts/fa-regular-400.woff index 257b315..d15176d 100644 Binary files a/assets/webfonts/fa-regular-400.woff and b/assets/webfonts/fa-regular-400.woff differ diff --git a/assets/webfonts/fa-regular-400.woff2 b/assets/webfonts/fa-regular-400.woff2 index 0f55b06..c170572 100644 Binary files a/assets/webfonts/fa-regular-400.woff2 and b/assets/webfonts/fa-regular-400.woff2 differ diff --git a/assets/webfonts/fa-solid-900.eot b/assets/webfonts/fa-solid-900.eot index 89e407d..43ef2b1 100644 Binary files a/assets/webfonts/fa-solid-900.eot and b/assets/webfonts/fa-solid-900.eot differ diff --git a/assets/webfonts/fa-solid-900.ttf b/assets/webfonts/fa-solid-900.ttf index 6c9fe78..801aba9 100644 Binary files a/assets/webfonts/fa-solid-900.ttf and b/assets/webfonts/fa-solid-900.ttf differ diff --git a/assets/webfonts/fa-solid-900.woff b/assets/webfonts/fa-solid-900.woff index bf52883..85d16ca 100644 Binary files a/assets/webfonts/fa-solid-900.woff and b/assets/webfonts/fa-solid-900.woff differ diff --git a/assets/webfonts/fa-solid-900.woff2 b/assets/webfonts/fa-solid-900.woff2 index 318cd3d..b7be994 100644 Binary files a/assets/webfonts/fa-solid-900.woff2 and b/assets/webfonts/fa-solid-900.woff2 differ diff --git a/assets/youtube-embed.html b/assets/youtube-embed.html new file mode 100644 index 0000000..8c25980 --- /dev/null +++ b/assets/youtube-embed.html @@ -0,0 +1,121 @@ + + + + diff --git a/content/blog/35c3/contents.lr b/content/blog/35c3/contents.lr deleted file mode 100644 index a3533b9..0000000 --- a/content/blog/35c3/contents.lr +++ /dev/null @@ -1,115 +0,0 @@ -title: 35c3 ---- -author: L3D ---- -pub_date: 2019-01-15 ---- -subtitle: Refreshing Waffles ---- -twitter_handle: L3D ---- -xml: - -Auf dem 35c3 hat das C3WOC eine halbe Tonne Waffelteig gemacht. - -Das war eine tolle Veranstaltung. Danke an alle! - ---- -galerie: - -#### image #### -image: waffel_act.jpg -#### image #### -image: waffel_shift.jpg -#### image #### -image: waffel_loc.jpg -#### image #### -image: waffel_njom.jpg -#### image #### -image: waffel_weg.jpg ---- -xml_img: waffel_loc.jpg ---- -body: - -Auf dem 35c3 hat das C3WOC eine halbe Tonne Waffelteig gemacht. - - - - - - - - -Das war eine tolle Veranstaltung. Danke an alle! ---- -privatebody: - -Seit dem 35c3 haben wir nun auch einen Waffelstempel: - - -
- -
- -So gab es nicht nur Waffeln zum Essen, sondern auch zum Stempeln. - - Neue kreationen --------------------------- - -Beim Congress haben wir neue Waffelvariationen entwickelt: - -Tschunk-Waffel - - -
-
- -
- -Döner Waffel - - - - - Delivery ----------------- -Auch die Chaospost hat Waffeln ausgetragen. Außerdem gab es ein paar Dankesbriefe. -Vielen Dank dafür. Sehr lieb! - - - - -Einkäufe ------------- -Beim 35c3 haben wir insgesamt um die 500kg Waffelteig angerührt. -Dafür haben wir auch beim Metro um die 1700€ gelassen. - -Trotzdem haben wir insgesamt 2900€ in unserer Spendenbox gefunden. -Vielen Dank dafür! - - - - - - Spendenaufteilung ----------------------------- -Wir haben beschlossen den Gewinn der Spenden an dem C3WOC nahe stehenden Hackspacen zu verteilen. Uns so gehen 600€ an die [see-base](https://see-base.de) in Überlingen und 600€ an den [Platinengarten](https://platinengarten.de). Hierfür haben sich die Hackspace aber auch verpflichtet über den Einsatz der Spenden zu berichten. - -### see-base -Die see-base ist gerade dabei ihren Space zu renovieren und neu einzurichten. -Und um das mit zu finanzieren ist diese Spende gedacht. - -### Platinengarten -Der Platinengarten möchte sich ein Lasergravur-Schneider aus China bestellen um mit Waffelsprüchen versehene Holzbretter herzustellen. -Außerdem werden die Spenden für ein Gastronom-Waffeleisen ausgegeben sowie für ein Let's Encrypt Zertifikat für deren Webseite. - - - - - - - -Das Waffeln am Congress hat sehr viel Spaß gemacht. - -Wir sehen uns als nächstes beim Easterhegg. diff --git a/content/blog/35c3/waffel_act.jpg b/content/blog/35c3/waffel_act.jpg deleted file mode 100644 index fe20194..0000000 --- a/content/blog/35c3/waffel_act.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eb4e9f7053e541af61d59d6f875f5707eb78434b067eca7a660ce014e5f028e4 -size 118928 diff --git a/content/blog/35c3/waffel_available.jpg b/content/blog/35c3/waffel_available.jpg deleted file mode 100644 index 68e8f7f..0000000 --- a/content/blog/35c3/waffel_available.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:02979048b3923ba250786159f3ee25ba3775c945c5fa5116545e527dc21c8856 -size 511166 diff --git a/content/blog/35c3/waffel_beauty.jpg b/content/blog/35c3/waffel_beauty.jpg deleted file mode 100644 index 9266da0..0000000 --- a/content/blog/35c3/waffel_beauty.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1da035861395e81815c965248dc1aa695dceff953ae27eb27344c7f97d8dbf29 -size 257597 diff --git a/content/blog/35c3/waffel_bewaffelt.jpg b/content/blog/35c3/waffel_bewaffelt.jpg deleted file mode 100644 index 6df1d94..0000000 --- a/content/blog/35c3/waffel_bewaffelt.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:95e3a37858f0e4171c829c8165879f9d03fa7ba6a4282d51ce75c00434dc6a42 -size 482819 diff --git a/content/blog/35c3/waffel_delivery.jpg b/content/blog/35c3/waffel_delivery.jpg deleted file mode 100644 index 7cf551f..0000000 --- a/content/blog/35c3/waffel_delivery.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:699c3885413ddaf7f5aa147d868d3c42d1e02d5ebb574ebf2653ac09b98781b2 -size 571253 diff --git a/content/blog/35c3/waffel_doener.jpg b/content/blog/35c3/waffel_doener.jpg deleted file mode 100644 index c5625df..0000000 --- a/content/blog/35c3/waffel_doener.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:23601192e712bb9ed411e07a5fda22bd63c428293bb87f9cc7e18f49e1dd487e -size 132388 diff --git a/content/blog/35c3/waffel_gift.jpg b/content/blog/35c3/waffel_gift.jpg deleted file mode 100644 index a81a7e8..0000000 --- a/content/blog/35c3/waffel_gift.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7524e513b37ee4d9eacbb4dc2e9004bf5bd4dc18e5c9b3e01abab34469c4c88f -size 370626 diff --git a/content/blog/35c3/waffel_loc.jpg b/content/blog/35c3/waffel_loc.jpg deleted file mode 100644 index a57831b..0000000 --- a/content/blog/35c3/waffel_loc.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a26198720677befafd48e5de75f6ee8769df96aff73e9ad055705c4299272dbe -size 109998 diff --git a/content/blog/35c3/waffel_love.jpg b/content/blog/35c3/waffel_love.jpg deleted file mode 100644 index 2114112..0000000 --- a/content/blog/35c3/waffel_love.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f3b08aaf8e2fe81bc1fce1863c3aa979a575626f65cb9a2adab26514123613af -size 91568 diff --git a/content/blog/35c3/waffel_njom.jpg b/content/blog/35c3/waffel_njom.jpg deleted file mode 100644 index 9b5a605..0000000 --- a/content/blog/35c3/waffel_njom.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dabe59aec85d46463e5847404fa2178e61757cdcc01659e3afab8c678d023e1a -size 183676 diff --git a/content/blog/35c3/waffel_schluss.jpg b/content/blog/35c3/waffel_schluss.jpg deleted file mode 100644 index 4b80e8d..0000000 --- a/content/blog/35c3/waffel_schluss.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9a4847dbf636411b6333d3e6d668b3fc207c8f40c56121d9ee6726e726a96520 -size 109250 diff --git a/content/blog/35c3/waffel_shift.jpg b/content/blog/35c3/waffel_shift.jpg deleted file mode 100644 index 7fe0e76..0000000 --- a/content/blog/35c3/waffel_shift.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b1e45d3e87a7dcf6dac875011e5d042813746c550efd3123bdc57abbf486cce2 -size 57273 diff --git a/content/blog/35c3/waffel_stamp.jpg b/content/blog/35c3/waffel_stamp.jpg deleted file mode 100644 index 13b8868..0000000 --- a/content/blog/35c3/waffel_stamp.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:12251ee07d459e19eea4fdaf0d080be33584abac1b29f90887a1b41d5ad745ef -size 150875 diff --git a/content/blog/35c3/waffel_stempel.jpg b/content/blog/35c3/waffel_stempel.jpg deleted file mode 100644 index 2a7d373..0000000 --- a/content/blog/35c3/waffel_stempel.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:57be42526af0033f0ba50c3a73b4a518d1ed0eb787952fb1ee0a0572c3d8953a -size 76605 diff --git a/content/blog/35c3/waffel_sticker.jpg b/content/blog/35c3/waffel_sticker.jpg deleted file mode 100644 index adfbaf7..0000000 --- a/content/blog/35c3/waffel_sticker.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dd6110ec5ccfc837f3807d993e20c37a6a13ef171dcefa2a4d63795e6bb1154f -size 264170 diff --git a/content/blog/35c3/waffel_tschunk.jpg b/content/blog/35c3/waffel_tschunk.jpg deleted file mode 100644 index 2bdd7b7..0000000 --- a/content/blog/35c3/waffel_tschunk.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5661c49850c34c7fb8fedaf67b9c0d47e812a181070eee9c600c0aa8e7be0ef9 -size 262488 diff --git a/content/blog/35c3/waffel_tschunk_action.jpg b/content/blog/35c3/waffel_tschunk_action.jpg deleted file mode 100644 index af6db1d..0000000 --- a/content/blog/35c3/waffel_tschunk_action.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ae6ae2828fcf0e12cc8b56af04d76452bc434dfe8302894e8de648913301e65e -size 255099 diff --git a/content/blog/35c3/waffel_tschunk_raw.jpg b/content/blog/35c3/waffel_tschunk_raw.jpg deleted file mode 100644 index 92bc48b..0000000 --- a/content/blog/35c3/waffel_tschunk_raw.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:997142029bf178a09a134454317f76dd9e4be091b4cda307320d03e34947ae37 -size 191692 diff --git a/content/blog/35c3/waffel_weg.jpg b/content/blog/35c3/waffel_weg.jpg deleted file mode 100644 index e462bb9..0000000 --- a/content/blog/35c3/waffel_weg.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aaf6cf0fae8dcfca866ae81e96fc3b089d04b4c74b17b7c51530aa12b0dc1e3c -size 527144 diff --git a/content/blog/camp-18/ambiente.jpg b/content/blog/camp-18/ambiente.jpg deleted file mode 100644 index f126c2c..0000000 --- a/content/blog/camp-18/ambiente.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d662c1a7bea1a4e2e04233b3558938989f8a98fd1e96adf35973d6d56662dc28 -size 1130246 diff --git a/content/blog/camp-18/contents+en.lr b/content/blog/camp-18/contents+en.lr deleted file mode 100644 index 65cad35..0000000 --- a/content/blog/camp-18/contents+en.lr +++ /dev/null @@ -1,45 +0,0 @@ -author: L3D ---- -body: - -From the 9th to the 12th of August was the Freifunk Camp at Lake Constance. It was organized by the Hackerspace [see-base](https://see-base.de) and the Freifunk Communities [Freifunk Bodensee](https://ffbsee.net) and [Freifunk 3-Ländereck](https://ff3l.net). - -Of course the C3WOC was not missing here! - - - - - -The Freifunk Camp took place on the campus of the Waldorf School Überlingen. And it was only a few meters away from Hackerspace see-base. - - - - - - ---- -privatebody: - -Among other things, experiences on radio relay systems were built up, contact with communities and companies and with the different free radio capable routers were exchanged. - - - - -Not only people from the surrounding area came to the Freifunk Camp, but also people from Berlin, Kiel and Switzerland. - - - - - ---- -pub_date: 2018-08-21 ---- -subtitle: Waffles and Freifunk at Camping ---- -title: Freifunk Camp 2018 ---- -twitter_handle: L3D ---- -xml: From the 9th to the 12th of August was the Freifunk Camp at Lake Constance. It was organized by the Hackerspace see-base and the Freifunk communities Freifunk Bodensee and Freifunk 3-Ländereck. ---- -xml_img: waffel-standort.jpg diff --git a/content/blog/camp-18/contents.lr b/content/blog/camp-18/contents.lr deleted file mode 100644 index fc8a751..0000000 --- a/content/blog/camp-18/contents.lr +++ /dev/null @@ -1,45 +0,0 @@ -title: Freifunk Camp 2018 ---- -author: L3D ---- -pub_date: 2018-08-21 ---- -subtitle: Waffeln und Freifunk bei Camp ---- -twitter_handle: L3D ---- -body: - -Vom 9. bis 12. August war das Freifunk Camp am Bodensee. Dieses wurde von dem Hackerspace [see-base](https://see-base.de) und den Freifunk Communitys [Freifunk Bodensee](https://ffbsee.net) und [Freifunk 3-Ländereck](https://ff3l.net) veranstaltet. - -Selbstverständlich durfte hier das C3WOC nicht fehlen! - - - - - -Das Freifunk Camp fand auf dem Campus der Waldorfschule Überlingen statt. Und war nur wenige Meter vom Hackerspace see-base entfernt. - - - - - - ---- -privatebody: - -Während dem Camp gab es viele Interessante Vorträge und Workshops von den einzelnen Freifunk Communitys. So wurden u.a. Erfahrungen zu Richtfunk aufbauten, Kontakt mit Gemeinden und Unternehmen und mit den unterschiedlichen Freifunk fähigen Routern ausgetauscht. - - - - -Zum Freifunk Camp kamen nicht nur Menschen aus der Umgebung, sondern sogar Leute aus Berlin, Kiel und der Schweiz. - - - - - ---- -xml: Vom 9. bis 12. August war das Freifunk Camp am Bodensee. Dieses wurde von dem Hackerspace see-base und den Freifunk Communitys Freifunk Bodensee und Freifunk 3-Ländereck veranstaltet. ---- -xml_img: waffel-standort.jpg diff --git a/content/blog/camp-18/garten.jpg b/content/blog/camp-18/garten.jpg deleted file mode 100644 index d50e894..0000000 --- a/content/blog/camp-18/garten.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7ada7a79c0c6ec0539b96d1ca9a3345fab1b7fbdfb3923a88350e785caae8307 -size 1281260 diff --git a/content/blog/camp-18/waffel-profi.jpg b/content/blog/camp-18/waffel-profi.jpg deleted file mode 100644 index 6c14440..0000000 --- a/content/blog/camp-18/waffel-profi.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2b62805f2828bba9118c7dc041bfe02e04255d7168af0a945cb31533b7a65fba -size 2503303 diff --git a/content/blog/camp-18/waffel-standort.jpg b/content/blog/camp-18/waffel-standort.jpg deleted file mode 100644 index 2203aed..0000000 --- a/content/blog/camp-18/waffel-standort.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:73b879a8260ac181fca5101e30fad93be3fb11c7b6c9ba1b7b0db690d67ae35a -size 994522 diff --git a/content/blog/contents+en.lr b/content/blog/contents+en.lr deleted file mode 100644 index f408ea8..0000000 --- a/content/blog/contents+en.lr +++ /dev/null @@ -1,8 +0,0 @@ -title: News ---- -sub_title: - - Tasty news. Now available as RSS
- tactical waffle operations. now available as -ICS - diff --git a/content/blog/contents.lr b/content/blog/contents.lr deleted file mode 100644 index 0c39a98..0000000 --- a/content/blog/contents.lr +++ /dev/null @@ -1,9 +0,0 @@ -_model: blog ---- -title: Neuigkeiten ---- -sub_title: - - Leckere Neuigkeiten. Jetzt auch als RSS
- Taktische Waffeleinsätze. Jetzt auch als ICS - diff --git a/content/blog/cosin-2018/contents.lr b/content/blog/cosin-2018/contents.lr deleted file mode 100644 index 4a2b912..0000000 --- a/content/blog/cosin-2018/contents.lr +++ /dev/null @@ -1,54 +0,0 @@ -title: CoSin 2018 ---- -author: L3D ---- -body: - -Das CoSin ist ein technischer und politischer Event mit Workshops, Vorträgen, Diskussionsrunden und anderem Inhalt. Einer dieser Inhalte war in diesem Jahr das C3WOC. Wir haben, dank der Unterstützung von gnrp, sva, matt und kr0l sowie dem Hackerspace see-base, einiges an Equipment aufgefahren. - - - - - -So gab es natürlich die üblichen Waffeln. Aber auch Pizza direkt aus dem Holzofen. - - - - - -Der Holzofen kommt aus dem Hackerspace see-base in Überlingen. - - ---- -pub_date: 2018-07-15 ---- -subtitle: Einige Bilder der Chaos Singularity aus Biel/Bienne ---- -twitter_handle: L3D ---- -privatebody: - - - - - - - - - - - - - - -Weitere Informationen zur CoSin gibt es auf cosin.ch
-Die Vorträge der CoSin gibt es auf media.ccc.de als Aufzeichnung. ---- -xml: - -Das CoSin ist ein technischer und politischer Event mit Workshops, Vorträgen, Diskussionsrunden und anderem Inhalt. Einer dieser Inhalte war in diesem Jahr das C3WOC. Wir haben, dank der Unterstützung von gnrp, sva, matt und kr0l sowie dem Hackerspace see-base, einiges an Equipment aufgefahren. - - -So gab es natürlich die üblichen Waffeln. Aber auch Pizza direkt aus dem Holzofen. ---- -xml_img: njom.jpg diff --git a/content/blog/cosin-2018/food.jpg b/content/blog/cosin-2018/food.jpg deleted file mode 100644 index efac351..0000000 --- a/content/blog/cosin-2018/food.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:428a1225a241684de997a8525cd4518b9b25212d1cb517b5da25b938c4d16739 -size 4355723 diff --git a/content/blog/cosin-2018/njom.jpg b/content/blog/cosin-2018/njom.jpg deleted file mode 100644 index 8efc7a4..0000000 --- a/content/blog/cosin-2018/njom.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e36e6c5d2da12bdb06660e30741864bcafc68946958dd7f629148a0a71d3f010 -size 4210295 diff --git a/content/blog/cosin-2018/ofen.jpg b/content/blog/cosin-2018/ofen.jpg deleted file mode 100644 index 1835012..0000000 --- a/content/blog/cosin-2018/ofen.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:30fcc923948e921e2049db3e67f35a351f4d1e292527d2d82f5aa9a01e3cb588 -size 4508007 diff --git a/content/blog/cosin-2018/pizza.jpg b/content/blog/cosin-2018/pizza.jpg deleted file mode 100644 index ef354ed..0000000 --- a/content/blog/cosin-2018/pizza.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:211c3254c1d6569fd97cda400444ead97a25ee633ffbbd672a875d775d34ddbc -size 1342345 diff --git a/content/blog/cosin-2018/pizza_klein.jpg b/content/blog/cosin-2018/pizza_klein.jpg deleted file mode 100644 index e5a3f22..0000000 --- a/content/blog/cosin-2018/pizza_klein.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f277cf7458ed5d8d8b68a58a35eb98661641345b8bdf317f80af4a5bc1087c35 -size 864757 diff --git a/content/blog/cosin-2018/waffeln.jpg b/content/blog/cosin-2018/waffeln.jpg deleted file mode 100644 index f11c258..0000000 --- a/content/blog/cosin-2018/waffeln.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:681f2516efd3fe6c4504fee19287f59fd43841ca56922d14a8cf33ad86b7b1ff -size 914410 diff --git a/content/blog/eh18/contents.lr b/content/blog/eh18/contents.lr deleted file mode 100644 index 125ae56..0000000 --- a/content/blog/eh18/contents.lr +++ /dev/null @@ -1,35 +0,0 @@ -title: Easterhegg Würzburg ---- -author: L3D ---- -body: - -Auf dem Easterhegg Würzburg war das c3WOC auch vertreten. Aber auf wunsch der Orga leider ohne Waffelequipment. So wurden leider keine essbaren Waffeln produziert, sondern wir haben uns auf Waffeln in Pixelform auf der Pixelflut beschränkt. - - - - - -Und einige neue großartige Verknüpfungen ins Chaos geknüpft um auf zukünftigen Events mit noch viel mehr Waffeln zu Waffeln. - -Das nächste größere Chaosevent mit Waffelunterstützung ist die GPN in Karlsruhe. ---- -pub_date: 2018-04-02 ---- -twitter_handle: c3woc ---- -subtitle: In Würzburg wollte es keine Waffeln geben ---- -privatebody: - - Easterhegg war trotzdem toll -========= - -Aber auch ohne essbare Waffeln war der Easterhegg ein tolles Event. -So haben sich mehr Leute gefunden, die auch einen an der Waffel haben. So können wir auf der GPN mit noch mehr vereinter Waffelpower Waffelgewalt ausüben. - -Und auch erste Verbindungen zu c3GELB wurden geknüpft. -Seit dem arbeiten wir daran zum Congress Hygienezertifiziert zu sein. -Das Stichwort hierzu lautet Frikadellendiplom. ---- -xml_img: eh18-pxl.jpg diff --git a/content/blog/eh18/eh18-pxl.jpg b/content/blog/eh18/eh18-pxl.jpg deleted file mode 100644 index 3bbe13b..0000000 --- a/content/blog/eh18/eh18-pxl.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:515ca388e02df8ceb57d94fa32c063c7f971ac9f8c7b0fd42ca3e5068f754626 -size 1747856 diff --git a/content/blog/fidm18/contents.lr b/content/blog/fidm18/contents.lr deleted file mode 100644 index 6b94f45..0000000 --- a/content/blog/fidm18/contents.lr +++ /dev/null @@ -1,33 +0,0 @@ -title: Waffle in den Mai ---- -author: L3D ---- -body: - -Am letzten Samstag im April 2018 war der Flash in den Mai #FidM. -Organisiert wurde er von [Freifunk Stuttgart](https://freifunk-stuttgart.de/) und fand dieses Jahr im [Shackspace](https://shackspace.de) statt. - - - - - ---- -privatebody: - -Selbstverständlich war das c3WOC auch vor Ort und hat fleißig gewaffelt. - -So haben wir dort ungefähr 6 KG Waffelteig vernichtet und herausgefunden, das auch Apfelmus und Vanilleeis ein hervorragender Waffelbelag ist. - -Die nächste große Veranstaltung mit dem c3WOC ist die [GPN](https://gulas.ch) in Karlsruhe. - -Wir freuen uns darauf, dort gemeinsam Waffelherzen zu verbreiten. ---- -pub_date: 2018-04-29 ---- -subtitle: Flash in den Mai ---- -twitter_handle: l3d ---- -xml: Am letzten Samstag im April 2018 war der Flash in den Mai. Natürlich mit Waffeln! ---- -xml_img: FidM18.jpg diff --git a/content/blog/first-post/contents.lr b/content/blog/first-post/contents.lr deleted file mode 100644 index f634412..0000000 --- a/content/blog/first-post/contents.lr +++ /dev/null @@ -1,15 +0,0 @@ -title: Webseite ist da ---- -pub_date: 2018-02-24 ---- -author: L3D ---- -body: - -

Es ist etwas unglaubliches geschehen!

- -Das c3woc hat nun endlich eine Webseite \o/ - -Mehr dazu auf [git.see-base.de](https://git.see-base.de/l3d/c3woc). ---- -xml: Das c3woc hat nun endlich eine Webseite \o/ diff --git a/content/blog/fleischhaltige-waffeln/contents+en.lr b/content/blog/fleischhaltige-waffeln/contents+en.lr deleted file mode 100644 index 30bc4d7..0000000 --- a/content/blog/fleischhaltige-waffeln/contents+en.lr +++ /dev/null @@ -1,38 +0,0 @@ -author: L3D ---- -body: - - - - - -Today the [Toolbox](https://toolbox-bodensee.de) has developed a little bit of the waffle formula and created a new creation of the waffle dough: - - Meaty waffles --------------------------------- - -The trick is to replace the sugar in the dough with fried minced meat, onions and garlic and add fresh herbs and pepper. - -Surprisingly, this was very well received by everyone present and was also wished for soon again! ---- -privatebody: - - - - - -The exact formula can be found at the following address: - -Meaty waffles ---- -pub_date: 2018-10-25 ---- -subtitle: Waffles don't just have to be vegetarian! ---- -title: Meaty waffles ---- -twitter_handle: L3D ---- -xml: Waffles with meaty dough. Sounds unusual at first, but tastes surprisingly good. ---- -xml_img: waffle.jpg diff --git a/content/blog/fleischhaltige-waffeln/contents.lr b/content/blog/fleischhaltige-waffeln/contents.lr deleted file mode 100644 index 64315bd..0000000 --- a/content/blog/fleischhaltige-waffeln/contents.lr +++ /dev/null @@ -1,38 +0,0 @@ -title: Fleischhaltige Waffeln ---- -author: L3D ---- -pub_date: 2018-10-25 ---- -subtitle: Waffeln müssen nicht nur vegetarisch sein! ---- -twitter_handle: L3D ---- -xml: Waffeln mit Fleischhaltigen Teig. Klingt erstmal ungewöhnlich, schmeckt aber doch erstaunlich gut. ---- -xml_img: waffle.jpg ---- -body: - - - - - -Heute wurde in der [Toolbox](https://toolbox-bodensee.de) ein wenig an der Waffelformel entwickelt und eine neue kreation des Waffelteiges erstellt: - - Fleischhaltige Waffeln --------------------------------- - -Der Trick ist, den Zucker im Teig durch angebratenes Hackfleisch, Zwiebeln und Knoblauch zu ersetzen und mit frischen Kräutern und Pfeffer zu ergänzen. - -Dies kam erstaunlicherweise bei allen Anwesenden sehr gut an und wurde sich auch für demnächst wieder gewünscht! ---- -privatebody: - - - - - -Die genaue Formel findet ihr unter folgender Adresse: - -Fleischhaltige Waffel diff --git a/content/blog/fleischhaltige-waffeln/njom.jpg b/content/blog/fleischhaltige-waffeln/njom.jpg deleted file mode 100644 index 8c21374..0000000 --- a/content/blog/fleischhaltige-waffeln/njom.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a5fa47cef864e42da5bc93825e1ed717920c24081c2e54a6330cbc8454f1566b -size 1852338 diff --git a/content/blog/fleischhaltige-waffeln/waffle.jpg b/content/blog/fleischhaltige-waffeln/waffle.jpg deleted file mode 100644 index dc8b70e..0000000 --- a/content/blog/fleischhaltige-waffeln/waffle.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:30c372b74ac8e75d27e24e2c04533538a030bfeffa2303c2c93073c7dc3e9699 -size 844103 diff --git a/content/blog/froscon18/contents+en.lr b/content/blog/froscon18/contents+en.lr deleted file mode 100644 index 0f1d7f7..0000000 --- a/content/blog/froscon18/contents+en.lr +++ /dev/null @@ -1,55 +0,0 @@ -author: L3D ---- -body: - -On the 25th and 26th of August 2018 we were in Bonn-Rhein-Sieg University of Applied Sciences where we diligently made waffles for our guests and participants. - - - - - -There we combined light and waffles for the first time and conjure a proper lighting to the waffle environment. - - - - ---- -privatebody: - -The Froscon collected a total of over 400 euros in donations for the waffles. That will help them to make waffles great again. Even next year too. Thank you <3 - -The FrOSCon is the first event that the C3WOC has commissioned to make waffles. They offered to py the travel expenses, ingredients and the night in the hotel paid. And we agreed. - - - - - - - - - - - -Pro Tip: -In the heart of the dough, it is beneficial not to overly increase the amount and baking soda. - - - - - - - - - ---- -pub_date: 2018-08-30 ---- -subtitle: Waffles in the University of Bonn-Rhein-Sieg ---- -title: FrOSCon ---- -twitter_handle: L3D ---- -xml: Am 25. und 26. August 2018 waren wir in der Hochschule Bonn-Rhein-Sieg und haben dort für die Gäste und Teilnehmer fleißig Waffeln gemacht. ---- -xml_img: team.jpg diff --git a/content/blog/froscon18/contents.lr b/content/blog/froscon18/contents.lr deleted file mode 100644 index f6ddab8..0000000 --- a/content/blog/froscon18/contents.lr +++ /dev/null @@ -1,55 +0,0 @@ -title: FrOSCon ---- -author: L3D ---- -pub_date: 2018-08-30 ---- -subtitle: Waffeln in der Hochschule Bonn-Rhein-Sieg ---- -twitter_handle: L3D ---- -body: - -Am 25. und 26. August 2018 waren wir in der Hochschule Bonn-Rhein-Sieg und haben dort für die Gäste und Teilnehmer fleißig Waffeln gemacht. - - - - - -Dort haben wir zum ersten mal Licht und Waffeln kombiniert und haben eine ordentliche Beleuchtung zum Waffelstand gezaubert. - - - - ---- -privatebody: - -An Spenden haben wir insgesamt über 400 Euro für die FrOSCon eingesammelt. Vielen Dank <3 - -Die FrOSCon ist das erste Event, dass das C3WOC beauftragt hat, Waffeln zu machen. Dafür hat es uns die Reisekosten, Zutaten und die Übernachtung im Hotel bezahlt. - - - - - - - - - - - -Profitipp: -Beim herstellen des Teiges, ist es vorteilhaft die Menge an Backpulver nicht übermäßig zu vergrößern. - - - - - - - - - ---- -xml: Am 25. und 26. August 2018 waren wir in der Hochschule Bonn-Rhein-Sieg und haben dort für die Gäste und Teilnehmer fleißig Waffeln gemacht. ---- -xml_img: team.jpg diff --git a/content/blog/froscon18/hello.jpg b/content/blog/froscon18/hello.jpg deleted file mode 100644 index a8a5b0d..0000000 --- a/content/blog/froscon18/hello.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:678b8873a6b837fa182840f2c1f8aecfc50a33b44279c012867f3cc27a3b23b3 -size 230079 diff --git a/content/blog/froscon18/licht.jpg b/content/blog/froscon18/licht.jpg deleted file mode 100644 index feebffe..0000000 --- a/content/blog/froscon18/licht.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f3c2ffe152971907be566cf23d435bdf12b3c28008dc2d3a4bc03f7afdd6cb65 -size 311180 diff --git a/content/blog/froscon18/overflow.jpg b/content/blog/froscon18/overflow.jpg deleted file mode 100644 index e30572e..0000000 --- a/content/blog/froscon18/overflow.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7fe246ea4257e24a69329373224e27243d50c95427e6bff836520b12249d73f5 -size 2810800 diff --git a/content/blog/froscon18/team.jpg b/content/blog/froscon18/team.jpg deleted file mode 100644 index 7f1f508..0000000 --- a/content/blog/froscon18/team.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2e98125c886adf5957bef286e8c53ef18287ed71a7f2547a0ad27e6c34458a00 -size 434559 diff --git a/content/blog/froscon18/teig.jpg b/content/blog/froscon18/teig.jpg deleted file mode 100644 index 9214a33..0000000 --- a/content/blog/froscon18/teig.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0730376b4e705730de0aa7acdfc010a32cb2b03cf4bc35a453ebf5564bb8f15a -size 2546802 diff --git a/content/blog/froscon18/waffel.jpg b/content/blog/froscon18/waffel.jpg deleted file mode 100644 index dcf4b3e..0000000 --- a/content/blog/froscon18/waffel.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:857a5e92f2be8d4c398aea06238b620da6a451c65fc844d3047ca1f6686e735d -size 3593570 diff --git a/content/blog/geekend_nov_2018/contents.lr b/content/blog/geekend_nov_2018/contents.lr deleted file mode 100644 index e78467b..0000000 --- a/content/blog/geekend_nov_2018/contents.lr +++ /dev/null @@ -1,50 +0,0 @@ -title: C6 Geekend ---- -author: L3D ---- -pub_date: 2018-11-10 ---- -subtitle: Waffelexporte auch an Kriesengebiete! ---- -xml: - -Waffelexporte gehen auch an Kriesengebiete! - -Natürlich gibt es dann auch Waffeln beim C6 Geekend in Kiel! ---- -xml_img: ergebnis.jpg ---- -body: - -Vom 09. bis 11. November 2018 fand das dritte Cluster-GeekEnd in Kiel statt. - -Zu den Themenkomplexen gehören unter anderem “Clustered Computing” für Nerds, Geeks, Hacker und andere Lebensformen. Insbesondere wurde sich an diesen Tagen folgenden Themen gewidmet: - - Status-Abgleich: Was funktioniert bereits? - Vernetzung der bestehenden Standorte - Cluster-Zugriff für interessierte Projekte - Weiter-Entwicklung der Software für’s Cluster-Management - Dem verspeisen von Waffeln des C3WOC - -Zu dem letzten Themengebiet gibt es hier ein paar Bilder: - - - - ---- -privatebody: - - - - - - - - - - - - - ---- -twitter_handle: L3D diff --git a/content/blog/geekend_nov_2018/ergebnis.jpg b/content/blog/geekend_nov_2018/ergebnis.jpg deleted file mode 100644 index 9e73612..0000000 --- a/content/blog/geekend_nov_2018/ergebnis.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:435d216c8e4e74f0f41985b5d23786628156f30f7bc517674160b849a2d6a94a -size 554140 diff --git a/content/blog/geekend_nov_2018/ruehren.jpg b/content/blog/geekend_nov_2018/ruehren.jpg deleted file mode 100644 index 2f504b7..0000000 --- a/content/blog/geekend_nov_2018/ruehren.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:499cc0950308d469714baac334668352530be80b223d41b045ffe83a808c0de7 -size 3703639 diff --git a/content/blog/geekend_nov_2018/table.jpg b/content/blog/geekend_nov_2018/table.jpg deleted file mode 100644 index 8afd7d5..0000000 --- a/content/blog/geekend_nov_2018/table.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:48072efb47927bbe4eaad315d00d758a00087932c3985b2324e753fbad109b84 -size 6168397 diff --git a/content/blog/geekend_nov_2018/teig.jpg b/content/blog/geekend_nov_2018/teig.jpg deleted file mode 100644 index 65ebddd..0000000 --- a/content/blog/geekend_nov_2018/teig.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:77c0fc0ca3759c50b9b749a46502f4dc9dc349f3744cf69c5807e0833e043ff9 -size 5755305 diff --git a/content/blog/geekend_nov_2018/zutaten.jpg b/content/blog/geekend_nov_2018/zutaten.jpg deleted file mode 100644 index d918b88..0000000 --- a/content/blog/geekend_nov_2018/zutaten.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cfe12dc791645ecba3f31aeaa44c65901d1ec34885a6ef4ccefc178ae2cc4555 -size 1960835 diff --git a/content/blog/gluehpn/beginning.jpg b/content/blog/gluehpn/beginning.jpg deleted file mode 100644 index 97d1774..0000000 --- a/content/blog/gluehpn/beginning.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:99a8dc054a4d3bb9213b8ab04068a890bbb239cd31b88c986e78b10ce6999265 -size 2663330 diff --git a/content/blog/gluehpn/contents+en.lr b/content/blog/gluehpn/contents+en.lr deleted file mode 100644 index a337333..0000000 --- a/content/blog/gluehpn/contents+en.lr +++ /dev/null @@ -1,70 +0,0 @@ -author: L3D ---- -body: - - -Auf der Gulasch Programmier Nacht ([GPN18,5](https://entropia.de/GPN18,5)) haben wir auch dieses Jahr wieder Waffeln gebacken. - -Und da der Chaos Communication Congress direkt vor der Türe steht haben wir beschlossen Spenden zu sammeln und diese dem Open Infrastructure Orbit zukommen zu lassen. - - - - - -Insgesamt haben wir zum Ende der GPN ein Plus von 501€ die wir dem Orbit zukommen lassen haben. - -Zur Information: Den Spendenaufruf dazu gibt es hier: [blog.freifunk.net](https://blog.freifunk.net/2018/11/19/oio-auf-dem-35c3-call-for-participation-call-for-donations/)
-Spendenhistory bei Betterplaces: [betterplace.org](https://www.betterplace.org/de/projects/12172-freifunk-net/opinions#ppp-sticky-anchor) - - - - ---- -galerie: ---- -privatebody: - -Insgesamt kamen sogar fast 740€ in den Spendentopf über die drei Tage. Doch die Zutaten sowie der Belag der Waffeln haben etwa 240€ gekostet. - - -Da waren dann aber auch u.a. Zutaten für den Veganen Teig dabei. - - - - - - - - - - -Viele Leute haben uns angesprochen und meinten, dass die Waffeln sehr lecker waren. So etwas ist immer toll zu hören und bestätigt uns in unserem vorhaben! - - - - - -Am Freitag war erst ein kleiner Teil vom C3WOC vom Bodensee vertreten. Genauer gesagt der L3D. Dankenswerter Weise haben sich aber trotzdem auch ein paar Leute gefunden die beim Zutaten einkaufen, Teig machen oder Waffeln backen mitgeholfen haben. -Vielen lieben Dank hierfür! - - - - - -Am Samstag ist dann auch die Unterstützung aus Darmstadt aufgetaucht. Und es hat sich nur einmal mehr gezeigt: zusammen macht das Waffeln machen nur noch mehr spaß! - - - - ---- -pub_date: 2018-11-26 ---- -subtitle: Waffeln für den OiO ---- -title: GlühPN ---- -twitter_handle: L3D ---- -xml: Auf der GlühPN haben wir 501€ Spenden gesammelt. Diese wurden an dern Open Infrastructure Orbit beim 35c3 gespendet. ---- -xml_img: spende.jpg diff --git a/content/blog/gluehpn/contents.lr b/content/blog/gluehpn/contents.lr deleted file mode 100644 index ebed6cf..0000000 --- a/content/blog/gluehpn/contents.lr +++ /dev/null @@ -1,77 +0,0 @@ -title: GlühPN ---- -xml: Auf der GlühPN haben wir 501€ Spenden gesammelt. Diese wurden an dern Open Infrastructure Orbit beim 35c3 gespendet. ---- -author: L3D ---- -pub_date: 2018-11-26 ---- -subtitle: Waffeln für den OiO ---- -twitter_handle: L3D ---- -xml_img: spende.jpg ---- -body: - - -Auf der Gulasch Programmier Nacht ([GPN18,5](https://entropia.de/GPN18,5) haben wir auch dieses Jahr wieder Waffeln gebacken. - -Und da der Chaos Communication Congress direkt vor der Türe steht haben wir beschlossen Spenden zu sammeln und diese dem Open Infrastructure Orbit zukommen zu lassen. - - - - - -Insgesamt haben wir zum Ende der GPN ein Plus von 501€ die wir dem Orbit zukommen lassen haben. - -Zur Information: Den Spendenaufruf dazu gibt es hier: [blog.freifunk.net](https://blog.freifunk.net/2018/11/19/oio-auf-dem-35c3-call-for-participation-call-for-donations/)
-Spendenhistory bei Betterplaces: [betterplace.org](https://www.betterplace.org/de/projects/12172-freifunk-net/opinions#ppp-sticky-anchor) - - - - ---- -privatebody: - -Insgesamt kamen sogar fast 740€ in den Spendentopf über die drei Tage. Doch die Zutaten sowie der Belag der Waffeln haben etwa 240€ gekostet. - - -Da waren dann aber auch u.a. Zutaten für den Veganen Teig dabei. - - - - - - - - - - -Viele Leute haben uns angesprochen und meinten, dass die Waffeln sehr lecker waren. So etwas ist immer toll zu hören und bestätigt uns in unserem vorhaben! - - - - - -Am Freitag war erst ein kleiner Teil vom C3WOC vom Bodensee vertreten. Genauer gesagt der L3D. Dankenswerter Weise haben sich aber trotzdem auch ein paar Leute gefunden die beim Zutaten einkaufen, Teig machen oder Waffeln backen mitgeholfen haben. -Vielen lieben Dank hierfür! - - - - - -Am Samstag ist dann auch die Unterstützung aus Darmstadt aufgetaucht. Und es hat sich nur einmal mehr gezeigt: zusammen macht das Waffeln machen nur noch mehr spaß! - - - - ---- -project: - -#### image #### -image: vegan.jpg -#### image #### -image: vegan.jpg ---- -galerie: diff --git a/content/blog/gluehpn/fine.jpg b/content/blog/gluehpn/fine.jpg deleted file mode 100644 index f7f90b7..0000000 --- a/content/blog/gluehpn/fine.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4c7554d348595c3c38f2908d49fb13e5e28f53a90fcdbe7a27e799f72625528b -size 3401404 diff --git a/content/blog/gluehpn/practise.jpg b/content/blog/gluehpn/practise.jpg deleted file mode 100644 index 219bedd..0000000 --- a/content/blog/gluehpn/practise.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:42d64b2cbfa1122c9b2e853a1601358b65f0395417f900e7196a09a57612e103 -size 3589706 diff --git a/content/blog/gluehpn/spende.jpg b/content/blog/gluehpn/spende.jpg deleted file mode 100644 index b7667dd..0000000 --- a/content/blog/gluehpn/spende.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e4d15eadf62f03d620982a22cd858a8d2800f32cd764d03dc02600d9b37f367a -size 980340 diff --git a/content/blog/gluehpn/vegan.jpg b/content/blog/gluehpn/vegan.jpg deleted file mode 100644 index 9e0bbb4..0000000 --- a/content/blog/gluehpn/vegan.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5b1ad82669f1228b320cb4f0caab4d5d6af07f9809255e377b126baf56b8bbee -size 3362715 diff --git a/content/blog/gluehpn/waffle.jpg b/content/blog/gluehpn/waffle.jpg deleted file mode 100644 index 57c288b..0000000 --- a/content/blog/gluehpn/waffle.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:79865737f5a49b0e6a58c05b1a601e926ebd760674492a3dfbf8fe72fe6a925a -size 2799033 diff --git a/content/blog/gpn18-tag2/2gether.jpg b/content/blog/gpn18-tag2/2gether.jpg deleted file mode 100644 index 1b6c8b3..0000000 --- a/content/blog/gpn18-tag2/2gether.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3f7746d92c1422b65d87e21fb1c61a1f3daadd79b829fbe91e9a9ee5812c873a -size 775886 diff --git a/content/blog/gpn18-tag2/contents.lr b/content/blog/gpn18-tag2/contents.lr deleted file mode 100644 index 4fb296c..0000000 --- a/content/blog/gpn18-tag2/contents.lr +++ /dev/null @@ -1,55 +0,0 @@ -title: #GPN18 Tag2 ---- -author: C3WOC ---- -body: - -Nachdem am ersten Tag der [GPN](https://gulas.ch) vorsichtig losgewaffelt wurde, war am zweiten Tag an einen Waffelstillstand nicht mehr zu denken.Unermüdlich wurde den ganzen Tag über mit schwer bewaffelten Equipment hantiert. So dass sich zum Ende des Tages stolz verkünden lässt: - -Wir haben heute 40 Liter Waffelteig eleminiert. - - - - ---- -pub_date: 2018-05-11 ---- -subtitle: Einen Waffelstillstand gibt es nicht ---- -twitter_handle: c3woc ---- -privatebody: - -Ohne die erneute Vereinigung des C3WOC aus Darmstadt und des C3WOC om Bodensee wäre das wohl unmöglich gewesen. - - - - - -Mit vereinten Kräften wurde im Gulaschzelt, also der Küche bei der GPN eine nach der anderen Schüssel Waffelteig angerührt. So haben wir nach [unserem Rezept](/rezepte/) heute insgesamt 40 Liter Waffelteig angerürt. - - - - - -Das vereinigte C3WOC Waffelt nun auf der GPN mit bis zu vier Waffeleisen gleichzeitig im Betrieb und einiger Waffelkraft in Reserve. - - - - - -Somit war der zweite Tag der GPN ein voller Waffelerfolg. -Vielen Dank an die Unterstützung von allen Beteiligen - - - - - ---- -xml: - -Nachdem am ersten Tag der GPN vorsichtig losgewaffelt wurde, war am zweiten Tag an einen Waffelstillstand nicht mehr zu denken.Unermüdlich wurde den ganzen Tag über mit schwer bewaffelten Equipment hantiert. So dass sich zum Ende des Tages stolz verkünden lässt: - -Wir haben heute 40 Liter Waffelteig eleminiert. ---- -xml_img: waffelstillstand.jpg diff --git a/content/blog/gpn18-tag2/gn8.jpg b/content/blog/gpn18-tag2/gn8.jpg deleted file mode 100644 index 6881a7e..0000000 --- a/content/blog/gpn18-tag2/gn8.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dd1cb3ed22e18a7ffc63db9c9c6a7c27f744aefdc7c88f166d2d930a4d52ba20 -size 1402642 diff --git a/content/blog/gpn18-tag2/kaesescheiben.jpg b/content/blog/gpn18-tag2/kaesescheiben.jpg deleted file mode 100644 index 2c4e7b8..0000000 --- a/content/blog/gpn18-tag2/kaesescheiben.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c7a7223299e2cccd5978ba79d6d874ecf4a40f2ce93a2005f2d824d779f7d2d3 -size 4945892 diff --git a/content/blog/gpn18-tag2/waffelstillstand.jpg b/content/blog/gpn18-tag2/waffelstillstand.jpg deleted file mode 100644 index 6648fe4..0000000 --- a/content/blog/gpn18-tag2/waffelstillstand.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4d1ff0c9eae5e14a283979cdd4b661fe9fe057a94c4788970b7b4562ffa3915d -size 1875752 diff --git a/content/blog/gpn18-tag2/zutaten.jpg b/content/blog/gpn18-tag2/zutaten.jpg deleted file mode 100644 index a5bfb73..0000000 --- a/content/blog/gpn18-tag2/zutaten.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b1d49ce0944e498282b7fb3ead521ba505ef73ba07b91edf4184e99713fb8ba7 -size 738560 diff --git a/content/blog/gpn18-waffelputzen/contents.lr b/content/blog/gpn18-waffelputzen/contents.lr deleted file mode 100644 index 94d2b6f..0000000 --- a/content/blog/gpn18-waffelputzen/contents.lr +++ /dev/null @@ -1,37 +0,0 @@ -title: Faszination Waffeleisenputzen ---- -author: L3D ---- -body: - -Bei der [#GPN18](https://entropia.de/GPN18) wurde echt viel Gewaffelt. Und das ist auch gut so. Dennoch muss natürlich hinterher das Waffeleisen gründlich gepflegt und geputzt werden. Denn es ging durchaus nicht jeder Teig an die richtige Stelle im Eisen. - - - - ---- -privatebody: - -Und so hat haben wir beim putzen des Waffeleisens dieses echt komplett auseinander nehmen müssen. -Der Teig ist echt bis in den hintersten Winkel gekrochen. - - - - - -Sogar die Steinwolle im Waffeleisen selber war nicht mehr ganz sauber und musste getauscht werden. Das war etwas unerwartet, wir haben es aber trotzdem gemacht ;-) - -Nun sind wir bereit auf den nächsten Veranstaltungen nur um so mehr Waffeln zu machen ;-) ---- -pub_date: 2018-05-26 ---- -subtitle: Wo überall im Waffeleisen der Teig hinkommt... ---- -twitter_handle: L3D ---- -xml: - -Bei der GPN18 wurde echt viel Gewaffelt. Und das ist auch gut so. Dennoch muss natürlich hinterher das Waffeleisen gründlich gepflegt und geputzt werden. Denn es ging durchaus nicht jeder Teig an die richtige Stelle im Eisen. - ---- -xml_img: waffeleisen.jpg diff --git a/content/blog/gpn18-waffelputzen/steinwolle.jpg b/content/blog/gpn18-waffelputzen/steinwolle.jpg deleted file mode 100644 index 0a28881..0000000 --- a/content/blog/gpn18-waffelputzen/steinwolle.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f4bf9da2bbd6f56a253a5cc61975cd86f9465a4166c85f2a69837c64d576578c -size 69124 diff --git a/content/blog/gpn18-waffelputzen/waffeleisen.jpg b/content/blog/gpn18-waffelputzen/waffeleisen.jpg deleted file mode 100644 index 49a671a..0000000 --- a/content/blog/gpn18-waffelputzen/waffeleisen.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aa922975dbdb86d83daeb0f0470c80c1e8ec3767c92c8145e4fd133b82d1ac78 -size 771590 diff --git a/content/blog/gpn18/bei_der_bar.jpg b/content/blog/gpn18/bei_der_bar.jpg deleted file mode 100644 index ba7c6cc..0000000 --- a/content/blog/gpn18/bei_der_bar.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bef021473e9b0d69be6e311a6f7a7a4fe921f7d5a5be701cc46c620d3fd6a589 -size 707830 diff --git a/content/blog/gpn18/contents.lr b/content/blog/gpn18/contents.lr deleted file mode 100644 index f5586d6..0000000 --- a/content/blog/gpn18/contents.lr +++ /dev/null @@ -1,52 +0,0 @@ -title: Gulasch Programier Nacht ---- -author: L3D ---- -body: - -Die [Gulaschprogrammiernacht](https://gulas.ch) ist eine viertägige Konferenz für Hacker, Technikbegeisterte und interessierte Laien und mit über 1000 Teilnehmern die zweitgrößte jährliche Veranstaltung des Chaos Computer Club. Hier Treffen sich Hacker, Chaoten und viele weitere Lebensformen im HFG und ZKM in Karlsruhe. - -Natürlich darf dort das C3WOC auch nicht fehlen. Daher sind wir dort bereits am Donnerstag, den ersten Tag der GPN mit den ersten Waffeleisen aufgeschlagen. - - - - - -Selbstverständlich haben wir sofort losgewaffelt! ---- -pub_date: 2018-05-10 ---- -subtitle: Waffeln auf der #GPN18 ---- -twitter_handle: c3woc ---- -privatebody: - -Der Entropia hat uns in der mitte der GPN plaziert. Genauer gesagt gegenüber der großen Bar. - - - - -Dort haben wir Strom, Internet und Tschunk, also alles, was der Nerd begehrt. -Auch wenn wir es am Tag1 mit nur eingeschränkter Waffel-Manschaft langsam angehen wollten, haben wir direkt 10 Liter Waffelteig verbacken! - - - - - - -Hierbei ein herzliches Dankeschön an Obelix und an die ganze GPN Orga, die die Zutaten für den Waffelteig besorgt haben und die ausübung der Waffelgewalt zugelassen haben. Aber auch Danke an alle, die etwas in die Spendenkasse geworfen haben. -Das waren schon am ersten Tag 142 Euro. Das Geld wir verwendet um Primär die Zutaten zu bezahlen, aber auch um Merch wie die Aufkleber und Schürzen zu finanzieren und uns auch ein großen Banner zu besorgen, damit man uns finden kann. -Das restliche Geld kommt den Veranstaltern der GPN, also dem Entropia e.V. zu gute. - - - - - -Wenn Ihr uns auch weiter auf der GPN Unterstützen möchtet, freuen wir uns natürlich über Finanzielle Spenden. Noch viel lieber sind aber Trolle gesehen, die Teig machen oder sogar das Backen der Waffeln übernehmen. - -Hierbei nochmal ein herzlichstes Dankeschön an die Trolle von Tag 1. ---- -xml: Die Gulaschprogrammiernacht ist eine viertägige Konferenz für Hacker, Technikbegeisterte und interessierte Laien und mit über 1000 Teilnehmern die zweitgrößte jährliche Veranstaltung des Chaos Computer Club. Hier Treffen sich Hacker, Chaoten und viele weitere Lebensformen im HFG und ZKM in Karlsruhe. ---- -xml_img: bei_der_bar.jpg diff --git a/content/blog/gpn18/eroberung.jpg b/content/blog/gpn18/eroberung.jpg deleted file mode 100644 index 26bbe7b..0000000 --- a/content/blog/gpn18/eroberung.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9bb85f22325ad36dc3385873486ed5b25a52258f81934cf5a65eb8f511bbf9de -size 1055132 diff --git a/content/blog/gpn18/waffelpower_1.jpg b/content/blog/gpn18/waffelpower_1.jpg deleted file mode 100644 index 2e173d9..0000000 --- a/content/blog/gpn18/waffelpower_1.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:39dcf63c15e3ed6624cb54e72cf27ded91e62c1d5088562b8f87b4376787404f -size 602194 diff --git a/content/blog/gpn18/waffelpower_2.jpg b/content/blog/gpn18/waffelpower_2.jpg deleted file mode 100644 index 0cc19e6..0000000 --- a/content/blog/gpn18/waffelpower_2.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:abc324278d59265da6769559e86498426598a362316696a04e0e850c90ff9a36 -size 744790 diff --git a/content/blog/gpn18/waffelpower_3.jpg b/content/blog/gpn18/waffelpower_3.jpg deleted file mode 100644 index 2d63407..0000000 --- a/content/blog/gpn18/waffelpower_3.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:31bd93c3b4bdb6cdaa58a36917ba36ed1313238ed11025d64f0e11e25193ec68 -size 681952 diff --git a/content/blog/logo/contents.lr b/content/blog/logo/contents.lr deleted file mode 100644 index b321d93..0000000 --- a/content/blog/logo/contents.lr +++ /dev/null @@ -1,25 +0,0 @@ -title: Logo ---- -author: L3D ---- -body: - -Das C3WOC hat nun endlich auch ein Logo: - - - - - ---- -twitter_handle: DO1JLR ---- -pub_date: 2018-03-01 ---- -privatebody: - - -Natürlich gibts das auch im Netz als SVG im [Git](https://git.see-base.de/c3woc/c3woc-logo). ---- -xml: - -Das C3WOC hat nun endlich auch ein Logo \o/ diff --git a/content/blog/makerfaire-buildup/cat-01.jpg b/content/blog/makerfaire-buildup/cat-01.jpg deleted file mode 100644 index 08a536c..0000000 --- a/content/blog/makerfaire-buildup/cat-01.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:32b26cb159eec0429184f35df10c285d6df7eba84af763855935f1c00b2a68c1 -size 6523907 diff --git a/content/blog/makerfaire-buildup/cat-02.jpg b/content/blog/makerfaire-buildup/cat-02.jpg deleted file mode 100644 index f88e808..0000000 --- a/content/blog/makerfaire-buildup/cat-02.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:74f87e7323908f1d84d1a48d825254a3c6a15177a1dc85b290301045a2dc22cc -size 5939562 diff --git a/content/blog/makerfaire-buildup/cat-03.jpg b/content/blog/makerfaire-buildup/cat-03.jpg deleted file mode 100644 index d84c950..0000000 --- a/content/blog/makerfaire-buildup/cat-03.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:179d8ca7a781d514b8feacfdf72347e86efbd33f4b2de5d73d736f71759c4d5f -size 6678897 diff --git a/content/blog/makerfaire-buildup/contents.lr b/content/blog/makerfaire-buildup/contents.lr deleted file mode 100644 index d118b81..0000000 --- a/content/blog/makerfaire-buildup/contents.lr +++ /dev/null @@ -1,36 +0,0 @@ -title: Aufbau Makerfaire 2018 ---- -author: L3D ---- -pub_date: 2018-05-31 ---- -subtitle: Der aufbau läuft - C3WOC ist vor Ort! ---- -twitter_handle: L3D ---- -body: - -Der Aufbau der Makerfaire 2018 läuft aktuell. Hier hat das C3WOC seinen Platz neben den Hackerspacen [see-base](https://see-base.de), [Toolbox Bodensee e.V.](https://toolbox-bodensee.de), [CCCZH](https://ccczh.ch) und der Freifunk Community [Freifunk Bodensee](https://ffbsee.de) gefunden. Hier wird sich auf ein taktisches Waffeln vorbereitet. - - Es folgen erste Bilder des Waffelstand: ------ - - - - - ---- -privatebody: - - - - - - - - -Wir freuen uns darauf, die Waffelvernichtungsmassen mit Massenvernichtungswaffeln zu versorgen! ---- -xml: Es wird Waffeln geben... auf der Makerfaire Bodensee \o/ ---- -xml_img: cat-01.jpg diff --git a/content/blog/makerfaire18/action01.jpg b/content/blog/makerfaire18/action01.jpg deleted file mode 100644 index 815aacd..0000000 --- a/content/blog/makerfaire18/action01.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:972dd7072c4d144c6ff44d1407e6cd287cfdac4f28a66f74c34db925fdaf2d49 -size 5454390 diff --git a/content/blog/makerfaire18/action02.jpg b/content/blog/makerfaire18/action02.jpg deleted file mode 100644 index ee86c90..0000000 --- a/content/blog/makerfaire18/action02.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3dbb3a758fd231a86653239005175a27efdf6bfd96e3998c8a7caf31e36a691e -size 5618941 diff --git a/content/blog/makerfaire18/ballpit.jpg b/content/blog/makerfaire18/ballpit.jpg deleted file mode 100644 index 0324119..0000000 --- a/content/blog/makerfaire18/ballpit.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a137fe9e9198fddaf845265d8fd0b22fffab77191caa5b451cf9705793fd155e -size 6007654 diff --git a/content/blog/makerfaire18/contents.lr b/content/blog/makerfaire18/contents.lr deleted file mode 100644 index d79d2e2..0000000 --- a/content/blog/makerfaire18/contents.lr +++ /dev/null @@ -1,47 +0,0 @@ -title: Makerfaire Bodensee 2018 ---- -author: L3D ---- -body: - - - - - - - - - - ---- -pub_date: 2018-06-04 ---- -subtitle: In der Messe Friedrichshafen wurde fleißig gewaffelt ---- -twitter_handle: c3woc ---- -privatebody: - -




- - - -




- - - - - - - - - - - - - - ---- -xml: Waffeln auf der Makerfaire Bodensee! ---- -xml_img: action02.jpg diff --git a/content/blog/makerfaire18/waffelstillstand.jpg b/content/blog/makerfaire18/waffelstillstand.jpg deleted file mode 100644 index 7f9b3dc..0000000 --- a/content/blog/makerfaire18/waffelstillstand.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f6282679275ac596be5219ee90441dab06975667fcff7de804499ff70c34dfc4 -size 2019181 diff --git a/content/blog/nicht-jeder-mag-waffeln/1.JPG b/content/blog/nicht-jeder-mag-waffeln/1.JPG deleted file mode 100644 index fc45fe9..0000000 --- a/content/blog/nicht-jeder-mag-waffeln/1.JPG +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:15ec32b8901f35f835b02f80e408f7c32973d356266f97f73b76f53efe6d73ef -size 38493 diff --git a/content/blog/nicht-jeder-mag-waffeln/2.JPG b/content/blog/nicht-jeder-mag-waffeln/2.JPG deleted file mode 100644 index 9b40802..0000000 --- a/content/blog/nicht-jeder-mag-waffeln/2.JPG +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7b658c361574ddaa917af0e70de58554d5fd72a9238356fd0c4b486d9275c4e2 -size 560791 diff --git a/content/blog/nicht-jeder-mag-waffeln/3.JPG b/content/blog/nicht-jeder-mag-waffeln/3.JPG deleted file mode 100644 index 3b71792..0000000 --- a/content/blog/nicht-jeder-mag-waffeln/3.JPG +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:443d0a58eb94e92d955fe2efb669b0385ca9e5c0f68b07a743eef2c38441f6b9 -size 361214 diff --git a/content/blog/nicht-jeder-mag-waffeln/4.JPG b/content/blog/nicht-jeder-mag-waffeln/4.JPG deleted file mode 100644 index e863623..0000000 --- a/content/blog/nicht-jeder-mag-waffeln/4.JPG +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4a0b989190a3735d6f43090ba70affc4fccf727db883a3d3446e66c4f792414a -size 33957 diff --git a/content/blog/nicht-jeder-mag-waffeln/contents+en.lr b/content/blog/nicht-jeder-mag-waffeln/contents+en.lr deleted file mode 100644 index e543330..0000000 --- a/content/blog/nicht-jeder-mag-waffeln/contents+en.lr +++ /dev/null @@ -1,67 +0,0 @@ -title: Not everyone likes waffles 😭 ---- -author: L3D ---- -body: - -This time the C3WOC wanted to make waffles at the GalaCon in Ludwigsburg. -Unfortunately not for all, but only for the volunteers. But that's something too! - - - - - - - - - ---- -pub_date: 2018-07-31 ---- -subtitle: Humans out of chaos are complicated.😭 ---- -twitter_handle: l3d ---- -privatebody: - -Unfortunately this didn't work out very well. Of course L3D didn't only volunteer several months before the GalaCon, but also offered to make waffles. -This was received with great enthusiasm by everyone. Also the main responsible people for this event were enthusiastic and in the forum for weeks there was only talk about waffles. - -But when the GalaCon took place, there were waffles on Saturday evening. -They were eaten enthusiastically and it was clear that the simple recipe was not enough. The GalaCon needs more waffle dough. - -Thus more ingredients were procured and on Sunday morning new waffle dough came. -But the Orga had noticed that there were waffles yesterday. Probably because of the waffle plate that was brought to the Orga's office. - -And suddenly nobody knew that there should have been waffles. Because of course you have to announce something like that beforehand. -Objections like that this was announced very well were dismissed with that one had not taken seriously. In addition, something like that had to be verified again immediately before the event. - - - - - - -It ended with the waffle iron being banned from the pony world. (As if it were a villain). - -In addition, the new waffle dough had to be destroyed. But in a very bestial, disgusting and inhuman way. (trash can). -From a financial point of view, the C3WOC has been in the red. Since both the travel costs and the 23€ for the waffle dough did not suffice from the 14,52€ donations for the waffles on Saturday. Too bad :-( - - - - - - -The helpers of the GalaCon were enthusiastic about the waffles and found them very tasty. -Nevertheless, events outside the chaos environment are problematic. - -The GalaCon will not be supplied with waffles any more at least soon. -Too bad. - ---- -xml: - -Ponies and waffles get along great. But if the whole thing takes place at a commerce-oriented convention, it's not compatible with open source and freedom. - -Friendship is Magic! But Galacon unfortunately not :-/ ---- -xml_img: 4.JPG diff --git a/content/blog/nicht-jeder-mag-waffeln/contents.lr b/content/blog/nicht-jeder-mag-waffeln/contents.lr deleted file mode 100644 index 6e3cc3a..0000000 --- a/content/blog/nicht-jeder-mag-waffeln/contents.lr +++ /dev/null @@ -1,65 +0,0 @@ -title: Nicht jeder mag waffeln 😭 ---- -author: L3D ---- -body: - -Dieses mal wollte das C3WOC auf der GalaCon in Ludwigsburg Waffeln machen. -Leider nicht für alle, sondern nur für die freiwilligen Helfer. Aber das ist doch auch etwas! - - - - - - - - - ---- -pub_date: 2018-07-31 ---- -subtitle: Menschen auserhalb des Chaos sind kompliziert 😭 ---- -twitter_handle: l3d ---- -privatebody: - -Nur leider hat das nicht wirklich gut geklappt. Selbstverständlich hat L3D mehrere Monate vor der GalaCon sich nicht nur als freiwilliger Helfer gemeldet, sondern auch angeboten, Waffeln zu machen. -Das wurde mit großer Begeisterung von allen aufgenommen. Auch die Hauptverantwortlichen Menschen für dieses Event waren begeistert und im Forum war wochenlang nur noch von Waffeln die Rede. - -Als dann aber die GalaCon statt fand, gab es am Samstag Abend Waffeln. -Diese wurden begeistert verzehrt und es war klar, das einfache Rezept reicht nicht aus. Die GalaCon braucht mehr Waffelteig. - -So wurden mehr Zutaten besorgt und am Sonntag früh kam neuer Waffelteig. -Doch die Orga hatte mitbekommen, dass es gestern Waffeln gab. Vermutlich wegen dem Teller mit Waffeln, der zum Büro der Orga gebracht wurde. - -Und plötzlich wusste niemand, dass es Waffeln hätte geben dürfen. Denn so etwas muss man natürlich vorher ankündigen. -Einwände wie, dass das sehr wohl angekündigt wurde wurden abgetan mit, dass hatte man nicht ernst genommen. Auserdem müsse man so etwas unmittelbar vor der Veranstaltung erneut verifizieren. - - - - - - - -Es hat dann damit geendet, dass das Waffeleisen aus der Ponywelt verbannt wurde. (Als wäre es ein Bösewicht). - -Außerdem musste der neue Waffelteig vernichtet werden. Aber auf eine ganz bestialische, ekelhafte und unmenschliche Art. (Mülleimer). -Finanziell gesehen hat das C3WOC hierbei rote Zahlen geschrieben. Da sowohl die Fahrtkosten, als auch die 23€ für den Waffelteig nicht von den 14,52€ Spenden für die Waffeln am Samstag gereicht haben. Schade :-( - - - - - -Die Helfer der GalaCon waren von den Wafffeln begeistert und fanden diese sehr lecker. -Trotzdem sind Veranstaltungen außerhalb des Chaos Umfeld problematisch. - -Die GalaCon wird zumindest so bald nicht mehr mit Waffeln versorgt werden. -Schade. - ---- -xml: - -Ponys und Waffeln vertragen sich super. Aber wenn das ganze auf einer komerzorientierten Convention statt findet verträgt sich das nicht mit dem Open Source und Freiheitsgedanken. - -Friendship is Magic! Aber Galacon leider nicht :-/ diff --git a/content/blog/recreating-waffles/contents+en.lr b/content/blog/recreating-waffles/contents+en.lr deleted file mode 100644 index 8c79c21..0000000 --- a/content/blog/recreating-waffles/contents+en.lr +++ /dev/null @@ -1,32 +0,0 @@ -author: L3D ---- -body: - -The 35c3 is just a few days away. And this time the C3WOC with united waffle power will make some waffles. - -With the C3WOC there are unfortunately not even a handful of people who plan and organize this with the waffles. -And so we are dependent on the help of other people. Besides, it's much more fun to make waffles together. - -waffle planing 35c3 - -Please sign up here for the list and contact us if you feel like making waffles together. - ---- -privatebody: - -Unfortunately, we won't be able to make many waffles on our own. - -You can contact us through all possible channels. For example: - + Mail: [waffel@c3woc.de](mailto:waffel@c3woc.de) - + IRC: [#waffel](ircs://irc.hackint.org/#waffel) - + Rocket.Chat [#waffel](https://rocket.events.ccc.de/channel/waffel) ---- -pub_date: 2018-12-16 ---- -subtitle: Help the Waffles on 35c3 ---- -title: Recreating Waffles ---- -twitter_handle: L3D ---- -xml: There will be waffles at the Chaos Communication Congress. But for this we need your help! diff --git a/content/blog/recreating-waffles/contents.lr b/content/blog/recreating-waffles/contents.lr deleted file mode 100644 index 5c9a9e5..0000000 --- a/content/blog/recreating-waffles/contents.lr +++ /dev/null @@ -1,33 +0,0 @@ -title: Recreating Waffles ---- -author: L3D ---- -body: - -Der 35c3 steht vor der Türe. Und dieses mal wird das C3WOC mit vereinter waffelkraft Waffeln machen. - -Beim C3WOC sind leider nicht mal eine handvoll Leute, die das mit den Waffeln planen und organisieren. -Und so sind wir auf die Hilfe von anderen Menschen angewiesen. Außerdem macht es viel mehr spaß, wenn man gemeinsam Waffeln macht. - -Waffelplanung 35c3 - -Bitte trag dich doch hier in die Liste ein und melde dich bei uns, wenn du Lust hast, gemeinsam Waffeln zu machen. - -Wichtig wäre, dass du mit gängigen Hygienevorschriften vertraut bist und zum Beispiel eine Gesundheitsbelehrung beim Gesundheitsamt gemacht hast! ---- -privatebody: - -Alleine werden wir es leider nicht schaffen, wirklich viele Waffeln zu machen. - -Ihr könnt uns über alle möglichen Kanäle kontaktieren. Zum Beispiel: - + Mail: [waffel@c3woc.de](mailto:waffel@c3woc.de) - + IRC: [#waffel](ircs://irc.hackint.org/#waffel) - + Rocket.Chat [#waffel](https://rocket.events.ccc.de/channel/waffel) ---- -pub_date: 2018-12-16 ---- -subtitle: Helf den Waffeln am 35c3 ---- -twitter_handle: L3D ---- -xml: Am Chaos Communication Congress wird es Waffeln geben. Hierfür brauchen wir aber deine Hilfe! diff --git a/content/blog/regelmaessiges-waffelmeeting/contents+en.lr b/content/blog/regelmaessiges-waffelmeeting/contents+en.lr deleted file mode 100644 index 1347b55..0000000 --- a/content/blog/regelmaessiges-waffelmeeting/contents+en.lr +++ /dev/null @@ -1,18 +0,0 @@ -author: L3D ---- -body: To keep and improve the high waffle standards we started a regular waffle meeting. We will meet us every month in the cyberspace and mumble together. Then we organise ans coordinate new events and diskuss old one. ---- -privatebody: For more details (like the date) please join the irc (or write a mail). ---- -pub_date: 2018-10-02 ---- -subtitle: For the waffles ---- -title: Regular Waffle Jour Fixe ---- -twitter_handle: L3D ---- -xml: - -Für eine dauerhafte Qualitätssicherung der C3WOC Rezeptur und dem Abstimmen von Annfragen sowie die Planung und koordination bei Veranstaltungen, gibt es nun ein regelmäßiges Mumble Treffen. -Wer Interesse hat, daran teil zu nehmen darf sich gerne im IRC melden! diff --git a/content/blog/regelmaessiges-waffelmeeting/contents.lr b/content/blog/regelmaessiges-waffelmeeting/contents.lr deleted file mode 100644 index c98eafb..0000000 --- a/content/blog/regelmaessiges-waffelmeeting/contents.lr +++ /dev/null @@ -1,18 +0,0 @@ -title: Regelmäßiges Waffelmeeting ---- -author: L3D ---- -body: Für eine dauerhafte Qualitätssicherung der C3WOC Rezeptur und dem Abstimmen von Annfragen sowie die Planung und koordination bei Veranstaltungen, gibt es nun ein regelmäßiges Mumble Treffen. ---- -pub_date: 2018-10-02 ---- -subtitle: Für die Waffeln! ---- -twitter_handle: L3D ---- -privatebody: Weitere Details zu dem Treffen sind aktuell nicht permanent festgelegt und kann man im IRC erfragen. ---- -xml: - -Für eine dauerhafte Qualitätssicherung der C3WOC Rezeptur und dem Abstimmen von Annfragen sowie die Planung und koordination bei Veranstaltungen, gibt es nun ein regelmäßiges Mumble Treffen. -Wer Interesse hat, daran teil zu nehmen darf sich gerne im IRC melden! diff --git a/content/blog/toolbox-waffelt-jetzt/contents.lr b/content/blog/toolbox-waffelt-jetzt/contents.lr deleted file mode 100644 index 43af4d6..0000000 --- a/content/blog/toolbox-waffelt-jetzt/contents.lr +++ /dev/null @@ -1,31 +0,0 @@ -title: Toolbox hat einen an der Waffel ---- -author: L3D ---- -body: - -Die [Toolbox Bodensee e.V.](https://toolbox-bodensee.de) ist nun auch zu den Kreis der Waffeleisenbesitzer aufgestiegen. -Dort wurde die Küche durch ein professioneles Bartscher-Waffeleisen erweitert. -Und so stand eines Tages ein riesiger Karton vor der Vereinstüre. - - - - - -Und die ersten ausführlichen Waffel-Tests haben ergeben, dass das Gerät echt gut ist! - - - - - -Das neue Waffeleisen gehört nun der [Toolbox Küche](https://küche.toolbox-bodensee.de/) und wird wohl auch nicht nur den ein oder anderen Vereinsabend verwaffeln, sondern auch [Freifunk treffen](https://ffbsee.de), Chaostreffs [aus der Region](https://bodensee.space/) oder der ein oder anderen Chaosveranstaltung... ---- -twitter_handle: DO1JLR ---- -pub_date: 2018-03-22 ---- -xml: - -Die Toolbox Bodensee e.V. ist nun auch zu den Kreis der Waffeleisenbesitzer aufgestiegen. -Dort wurde die Küche durch ein professioneles Bartscher-Waffeleisen erweitert. -Und so stand eines Tages ein riesiger Karton vor der Vereinstüre. diff --git a/content/blog/uh18/contents.lr b/content/blog/uh18/contents.lr deleted file mode 100644 index d5e4754..0000000 --- a/content/blog/uh18/contents.lr +++ /dev/null @@ -1,51 +0,0 @@ -title: Waffeln auf dem Schiff ---- -author: L3D ---- -body: - -Der [Umma Hüsla Hackathon](https://uh18.diin.io/) 2018 [#uh18](https://twitter.com/hashtag/uh18) ist ein 28-Stunden-Event, bei dem sich TeilnehmerInnen aus allen Sparten zusammenfinden. Ziel des Hackathons ist es, im Team oder auch alleine, nützliche, kreative oder unterhaltsame Prototypen und Projekte umzusetzen. - -In diesem Jahr fand der Hackathon länderübergreifend statt – genauer gesagt auf dem Bodensee, noch genauer auf einem Schiff. Das Motto des diesjährigen Hackathons lautet “Ship it”. selbstverständlich war das c3WOC auch vor Ort und hat auf dem Bodensee Waffeln gemacht! ---- -pub_date: 2018-05-05 ---- -subtitle: Umma Hüsla Hackathon ---- -twitter_handle: L3D ---- -privatebody: - - - - - - - -Der Hackerthon fand auf dem Schiff Voralberg statt. Los ging es im Bregenzer Hafen einmal rund um den Bodensee. - - - - - - - -Selbstverständlich haben wir ein wenig Chaos auf dem Schiff gemacht und erstmal einen Sticker-Exchange aufgebaut. Und ein funktionierendes WLAN ([Freifunk](https://ffbsee.de)) zur Verfügung gestellt. - - - - - - -Mit funktionierender Infrastruktur, also einem Internet mit Uplink, konnten wir uns auch den wichtigen Dingen zuneigen: Dem Waffeln machen! - -

Nun steht fest:

-Das C3WOC ist auch in der Lage auf dem Wasser Waffeln zu machen. Und Waffeln auf einem Schiff zu machen macht echt spaß! ---- -xml: - -Der Umma Hüsla Hackathon 2018 ist ein 28-Stunden-Event, bei dem sich TeilnehmerInnen aus allen Sparten zusammenfinden. Ziel des Hackathons ist es, im Team oder auch alleine, nützliche, kreative oder unterhaltsame Prototypen und Projekte umzusetzen. - -In diesem Jahr fand der Hackathon länderübergreifend statt – genauer gesagt auf dem Bodensee, noch genauer auf einem Schiff. Das Motto des diesjährigen Hackathons lautet “Ship it”. selbstverständlich war das c3WOC auch vor Ort und hat auf dem Bodensee Waffeln gemacht! ---- -xml_img: schiff_1.jpg diff --git a/content/blog/uh18/hacker_1.jpg b/content/blog/uh18/hacker_1.jpg deleted file mode 100644 index 74e2879..0000000 --- a/content/blog/uh18/hacker_1.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:60c2c0c08399d11aac6bfa37ad7818cb520b35f4c41e8f837d1427cd22e4dd6c -size 155834 diff --git a/content/blog/uh18/hacker_2.jpg b/content/blog/uh18/hacker_2.jpg deleted file mode 100644 index 0607ca1..0000000 --- a/content/blog/uh18/hacker_2.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bb713e24f9819ecb05cc59634134b0865375a184d2d75287d639a2f729facbfa -size 676219 diff --git a/content/blog/uh18/schiff_1.jpg b/content/blog/uh18/schiff_1.jpg deleted file mode 100644 index de8bf5c..0000000 --- a/content/blog/uh18/schiff_1.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:988ddacd970c59203dc47d6f3a1f3626597db287b2417e3d77d45e639d747fab -size 702382 diff --git a/content/blog/uh18/schiff_2.jpg b/content/blog/uh18/schiff_2.jpg deleted file mode 100644 index f906a94..0000000 --- a/content/blog/uh18/schiff_2.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:64044bf316b76d7e992790b0bb4a76d5caf1baf322edd4f34e365fdf9f0f2946 -size 590525 diff --git a/content/blog/uh18/waffel_1.jpg b/content/blog/uh18/waffel_1.jpg deleted file mode 100644 index 1278d38..0000000 --- a/content/blog/uh18/waffel_1.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9e0804bb38d9a9d45b5e7ed1f404d2354d6f79dce880deba3d6c2dc51c956d19 -size 882893 diff --git a/content/blog/uh18/waffel_2.jpg b/content/blog/uh18/waffel_2.jpg deleted file mode 100644 index d79a545..0000000 --- a/content/blog/uh18/waffel_2.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:da7eaae00c5c344c359eb1ff7c5e0388df61a088896ce793684929260bf6ed6e -size 818645 diff --git a/content/blog/upgrade-1/a-random-box.jpg b/content/blog/upgrade-1/a-random-box.jpg deleted file mode 100644 index 20fd46b..0000000 --- a/content/blog/upgrade-1/a-random-box.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8c7445a56b8cd2eb40b810de0466eab72b5ac9600fdb0d24ceed0f5cc87eb360 -size 2286739 diff --git a/content/blog/upgrade-1/contents.lr b/content/blog/upgrade-1/contents.lr deleted file mode 100644 index 72f5b39..0000000 --- a/content/blog/upgrade-1/contents.lr +++ /dev/null @@ -1,58 +0,0 @@ -title: Verstärkete Waffelkraft ---- -author: L3D ---- -body: - -Eines Abends kehrte ich nach Hause zurück und fand vor der Haustüre eine Palette mit einer Kiste drauf... - - - - - -Ungeduldig hatte ich auf die Lieferung der Versandfirma mehrere Wochen gewartet, die sich gerade für ländliche Gebiete extra viel Zeit nehmen und viel zu spät kommen. Wer im IRC Kanale #waffel auf HackInt war, hat diese ungeduld sicherlich mit bekommen. Endlich! - -

Waffeleisen auspacken

---- -pub_date: 2018-06-07 ---- -subtitle: Der Trend geht zum zweiten Waffeleisen ---- -twitter_handle: L3D ---- -privatebody: - - - - - - - - - - - - - - - - - - - - - - - - - - -Eingeweiht wird das Waffeleisen auf der [CPU 18](https://chaos-party-ulm.de). - - - - ---- -xml: C3WOC - Wir rüsten auf! ---- -xml_img: a-random-box.jpg diff --git a/content/blog/upgrade-1/unboxing-1.jpg b/content/blog/upgrade-1/unboxing-1.jpg deleted file mode 100644 index 8dcdfce..0000000 --- a/content/blog/upgrade-1/unboxing-1.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a531c1cddaf6f4b8fca42e3dc7119cf01f8bad058e8451624b6422c6a4e00ae4 -size 5094152 diff --git a/content/blog/upgrade-1/unboxing-10.jpg b/content/blog/upgrade-1/unboxing-10.jpg deleted file mode 100644 index 90a8fe3..0000000 --- a/content/blog/upgrade-1/unboxing-10.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d44f21209d785d3116816dac4ea909afcb34bb34fb74646b70fb44d7f3ecbbb6 -size 4762553 diff --git a/content/blog/upgrade-1/unboxing-11.jpg b/content/blog/upgrade-1/unboxing-11.jpg deleted file mode 100644 index f21a1b2..0000000 --- a/content/blog/upgrade-1/unboxing-11.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cbd57e32f0fcc1c2e0196b0ead1af1ec3a3915705abc181937d141fa1f95d19e -size 4664947 diff --git a/content/blog/upgrade-1/unboxing-12.jpg b/content/blog/upgrade-1/unboxing-12.jpg deleted file mode 100644 index 4649021..0000000 --- a/content/blog/upgrade-1/unboxing-12.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a7106a77277cb5bfa7543e43943808dbc2dede445989448b10d033a2d5929602 -size 4772489 diff --git a/content/blog/upgrade-1/unboxing-13.jpg b/content/blog/upgrade-1/unboxing-13.jpg deleted file mode 100644 index a5b8d08..0000000 --- a/content/blog/upgrade-1/unboxing-13.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:24f9876ce6a84235367c722e0fa7b926776f66d2c867ab393e532ce4f96dfda2 -size 4926811 diff --git a/content/blog/upgrade-1/unboxing-2.jpg b/content/blog/upgrade-1/unboxing-2.jpg deleted file mode 100644 index ebe8c28..0000000 --- a/content/blog/upgrade-1/unboxing-2.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:00d2bd4faa24d2a11abd92d9a0f0ffded9eb4598ed82ff4ff9647e1f4399fca2 -size 4495465 diff --git a/content/blog/upgrade-1/unboxing-3.jpg b/content/blog/upgrade-1/unboxing-3.jpg deleted file mode 100644 index d1c36cc..0000000 --- a/content/blog/upgrade-1/unboxing-3.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a9d9dd9b5fd43bce6887af31e247dcbc5e8e7b14b2165ea2997e4635371591e7 -size 4906298 diff --git a/content/blog/upgrade-1/unboxing-4.jpg b/content/blog/upgrade-1/unboxing-4.jpg deleted file mode 100644 index eaeef80..0000000 --- a/content/blog/upgrade-1/unboxing-4.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:297d429003cba593ed3304421fe02517c81108818a9c39358aa53f5eb32aacb8 -size 4964374 diff --git a/content/blog/upgrade-1/unboxing-5.jpg b/content/blog/upgrade-1/unboxing-5.jpg deleted file mode 100644 index b5f71e2..0000000 --- a/content/blog/upgrade-1/unboxing-5.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:da5195ddc13f8848f4202f73ff9dbd7f777bf86f0ddef442cf6363967e823727 -size 5222014 diff --git a/content/blog/upgrade-1/unboxing-6.jpg b/content/blog/upgrade-1/unboxing-6.jpg deleted file mode 100644 index 4a9b9fa..0000000 --- a/content/blog/upgrade-1/unboxing-6.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0cdd05b38badba0a1e517135916bdfaf6666f9ce511b4d0e74308716484f7e2c -size 5181810 diff --git a/content/blog/upgrade-1/unboxing-7.jpg b/content/blog/upgrade-1/unboxing-7.jpg deleted file mode 100644 index 78a491a..0000000 --- a/content/blog/upgrade-1/unboxing-7.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7ad2762c1a2fc5528722a803b7f794564736c1f355a508ff33070106f5f18d26 -size 4793338 diff --git a/content/blog/upgrade-1/unboxing-8.jpg b/content/blog/upgrade-1/unboxing-8.jpg deleted file mode 100644 index a176048..0000000 --- a/content/blog/upgrade-1/unboxing-8.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0badca66fafe1f3175cbffbec850d7d1bc471fe0ac109ddde8aa1a301ebd38bb -size 4919790 diff --git a/content/blog/upgrade-1/unboxing-9.jpg b/content/blog/upgrade-1/unboxing-9.jpg deleted file mode 100644 index 58c26d1..0000000 --- a/content/blog/upgrade-1/unboxing-9.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ec8ce21d4c0eeaca804ca558352e87ad192702b5dfdd0500fbea38df2cce398c -size 4630735 diff --git a/content/blog/waffelkalender/contents+en.lr b/content/blog/waffelkalender/contents+en.lr deleted file mode 100644 index caced06..0000000 --- a/content/blog/waffelkalender/contents+en.lr +++ /dev/null @@ -1,31 +0,0 @@ -author: L3D ---- -body: - -For quite some time now, the tour dates have been published on the homepage of c3woc.de. Here we want to contribute to satisfy the hunger for waffles and record every event at which we will appear. - -Now there is also a calendar as .ICS to subscribe to: Waffelkalender. - ---- -privatebody: - -If you want us to plan a tactical weapon mission for you, just write to us! - -For example on IRC in the channel #waffel on hackint.org or directly by mail to waffle at c3woc.de. - ---- -pub_date: 2018-07-21 ---- -subtitle: Stay up to date on our tour dates! ---- -title: waffle calendar ---- -twitter_handle: L3D ---- -xml: - -Stay informed about waffles: - -https://c3woc.de/feed.xml -https://c3woc.de/#tourdaten -https://c3woc.de/waffeln.ics diff --git a/content/blog/waffelkalender/contents.lr b/content/blog/waffelkalender/contents.lr deleted file mode 100644 index 3f8f045..0000000 --- a/content/blog/waffelkalender/contents.lr +++ /dev/null @@ -1,36 +0,0 @@ -title: Waffelkalender ---- -author: L3D ---- -body: - -Schon seit längeren gibt es auf der Startseite von c3woc.de die Tourdaten veröffentlicht. Hier wollen wir dazu Beitragen den Waffelhunger zu stillen und nehmen jedes Event auf, bei dem wir erscheinen werden. - -Nun gibt es dazu auch einen kalender als .ICS zum Abonieren: Waffelkalender. - - ---- -privatebody: - - - - -Wenn ihr Lust habt, dass wir auch bei euch einen taktischen Waffeleinsatz planen, dann schreibt uns einfach an! - -Zum Beispiel im IRC Im Kanal #waffel auf hackint.org oder direkt per Mail an waffel ät c3woc.de. - - ---- -pub_date: 2018-07-21 ---- -subtitle: Bleibe über unsere Tourdaten auf dem laufenden! ---- -twitter_handle: L3D ---- -xml: - -Bleibe über Waffeln informiert: - -https://c3woc.de/feed.xml -https://c3woc.de/#tourdaten -https://c3woc.de/waffeln.ics diff --git a/content/blog/waffellove-in-darmstadt/contents.lr b/content/blog/waffellove-in-darmstadt/contents.lr deleted file mode 100644 index 2435c03..0000000 --- a/content/blog/waffellove-in-darmstadt/contents.lr +++ /dev/null @@ -1,50 +0,0 @@ -title: Egal ob Wind, Regen oder Sonnenschein... ---- -author: Kiara ---- -pub_date: 2018-06-24 ---- -subtitle: ...wir waffeln unsere Seelen rein! ---- -body: - - - - - - - ---- -privatebody: - - - - -



-



-



- - - -



-



-



- - - -



-



-



- - - -



-



-



- - - ---- -xml: Egal ob Wind, Regen oder Sonnenschein wir waffeln unsere Seelen rein! Auch in Darmstadt! ---- -xml_img: waffel_4.jpg diff --git a/content/blog/waffellove-in-darmstadt/waffel_1.jpg b/content/blog/waffellove-in-darmstadt/waffel_1.jpg deleted file mode 100755 index a985d93..0000000 --- a/content/blog/waffellove-in-darmstadt/waffel_1.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:29c65f7d0331bfd40f4f41f987454c5fb520869e83fe400e0de7d52aaff69f02 -size 1424792 diff --git a/content/blog/waffellove-in-darmstadt/waffel_2.jpg b/content/blog/waffellove-in-darmstadt/waffel_2.jpg deleted file mode 100755 index 6216557..0000000 --- a/content/blog/waffellove-in-darmstadt/waffel_2.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bb0c17edfd590aca2e0f2cd550216b24c7f4d77acb926b78852d8cfc7255d038 -size 1483569 diff --git a/content/blog/waffellove-in-darmstadt/waffel_3.jpg b/content/blog/waffellove-in-darmstadt/waffel_3.jpg deleted file mode 100755 index 3a3e20c..0000000 --- a/content/blog/waffellove-in-darmstadt/waffel_3.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:496c069cb7abd648d1100f81e915a72b3f09daad15714d5ce2a78305633270b0 -size 1106702 diff --git a/content/blog/waffellove-in-darmstadt/waffel_4.jpg b/content/blog/waffellove-in-darmstadt/waffel_4.jpg deleted file mode 100755 index 470085f..0000000 --- a/content/blog/waffellove-in-darmstadt/waffel_4.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f72c70c19af199b9b3e9854cde651b3ea2050ba99505fd8f8e9fa70c5f8a47da -size 1329725 diff --git a/content/blog/waffellove-in-darmstadt/waffel_5.jpg b/content/blog/waffellove-in-darmstadt/waffel_5.jpg deleted file mode 100755 index c7455ae..0000000 --- a/content/blog/waffellove-in-darmstadt/waffel_5.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4ed98bea0853a05b02b2dff5426123a4cc1d06b5cf9c8b93d4dabbc80ab0f1ad -size 1341892 diff --git a/content/blog/waffellove-in-darmstadt/waffel_6.jpg b/content/blog/waffellove-in-darmstadt/waffel_6.jpg deleted file mode 100755 index 0268724..0000000 --- a/content/blog/waffellove-in-darmstadt/waffel_6.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:462f5cd264b780b8ef542628278af939d66af34228e21f8703b342b9ed259c58 -size 1481209 diff --git a/content/blog/waffellove-in-darmstadt/waffel_7.jpg b/content/blog/waffellove-in-darmstadt/waffel_7.jpg deleted file mode 100755 index 0042edc..0000000 --- a/content/blog/waffellove-in-darmstadt/waffel_7.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:01f1c1e17b22c330ba0a564d9319a7cffe36befed78f20528c766e979ee1d1da -size 1119167 diff --git a/content/blog/waffellove-in-darmstadt/waffel_8.jpg b/content/blog/waffellove-in-darmstadt/waffel_8.jpg deleted file mode 100755 index f5ad601..0000000 --- a/content/blog/waffellove-in-darmstadt/waffel_8.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:13ac534283575b4fc51d35598293150f95b2f2e834f611f729e53dbb869ac958 -size 943289 diff --git a/content/blog/we_tweet_about_waffles/contents.lr b/content/blog/we_tweet_about_waffles/contents.lr deleted file mode 100644 index 0c0402c..0000000 --- a/content/blog/we_tweet_about_waffles/contents.lr +++ /dev/null @@ -1,37 +0,0 @@ -title: Waffeln sind schön ---- -author: L3D ---- -body: - -Waffeln sind eine tolle Sache! - - - - - -Daher gibt es auch einen [Twitter](https://twitter.com/c3woc)-Account, der erstaunlich unregelmäßig über regelmäßige Waffelaktionen berichtet, Waffelbilder teilt oder andere Waffel-relatet Aktionen aufstellt. - - -Wenn ihr Lust habt, dürft ihr daher gerne den Account [@c3woc](https://twitter.com/c3woc) folgen. ---- -pub_date: 2018-04-12 ---- -twitter_handle: c3woc ---- -privatebody: - - - - - - -Außerdem sind wir nun auch auf Mastodon vertreten! -Dort findet man uns unter [c3WOC@chaos.social](https://chaos.social/@c3WOC). ---- -xml: - -Waffeln sind eine tolle Sache! - ---- -xml_img: waffel_1.jpg diff --git a/content/blog/we_tweet_about_waffles/waffel_1.jpg b/content/blog/we_tweet_about_waffles/waffel_1.jpg deleted file mode 100644 index 21a84da..0000000 --- a/content/blog/we_tweet_about_waffles/waffel_1.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8f075ed69860bda2566547f7236e9d252dfa9c26321aa9d4ef421f9e70039211 -size 8166347 diff --git a/content/blog/we_tweet_about_waffles/waffel_2.jpg b/content/blog/we_tweet_about_waffles/waffel_2.jpg deleted file mode 100644 index 56b0633..0000000 --- a/content/blog/we_tweet_about_waffles/waffel_2.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:079258a2bac5c9c3d17e28fee697aec31b90861c86cfaaf58666322fbd108273 -size 15916269 diff --git a/content/blog/webseite-ist-auf-github/contents+en.lr b/content/blog/webseite-ist-auf-github/contents+en.lr deleted file mode 100644 index b201185..0000000 --- a/content/blog/webseite-ist-auf-github/contents+en.lr +++ /dev/null @@ -1,34 +0,0 @@ -author: L3D ---- -body: - -At the request of several people, the C3WOC website can now be found at GitHub. - -To be more precise it's on [github.com/ToolboxBodensee/c3woc-website](https://github.com/ToolboxBodensee/c3woc-website). - - - - ---- -privatebody: - -Also, the site is now with Travis Automated Deployed which will hopefully facilitate the cooperation of other friends of the waffle. - -So, if you feel like it: Open an issue. -Or even better: Get involved by making pull requests! - ---- -pub_date: 2018-11-05 ---- -subtitle: Edit this page even easier ---- -title: Website is on GitHub ---- -twitter_handle: L3D ---- -xml: - -At the request of several people, the C3WOC website can now be found at GitHub. -More concretely said on https://github.com/ToolboxBodensee/c3woc-website/ ---- -xml_img: github-octocat.png diff --git a/content/blog/webseite-ist-auf-github/contents.lr b/content/blog/webseite-ist-auf-github/contents.lr deleted file mode 100644 index 80c25d2..0000000 --- a/content/blog/webseite-ist-auf-github/contents.lr +++ /dev/null @@ -1,34 +0,0 @@ -title: Webseite ist auf GitHub ---- -author: L3D ---- -body: - -Auf die Anfrage mehrerer Personen hin ist die C3WOC Webseite nun bei GitHub zu finden. - -Genauer gesagt auf [github.com/ToolboxBodensee/c3woc-website](https://github.com/ToolboxBodensee/c3woc-website). - - - - ---- -privatebody: - -Außerdem wird die Seite nun mit Travis Automatisiert Deployed was hoffentlich die Mitarbeit durch andere Freunde der Waffel erleichtert. - -Also, wenn iht Lust habt: Macht ein Issue auf. -Oder noch besser: Bringt euch durch Stellen von Pull-Requests ein! - ---- -pub_date: 2018-11-05 ---- -subtitle: Diese Seite noch einfacher bearbeiten ---- -twitter_handle: L3D ---- -xml: - -Auf die Anfrage mehrerer Personen hin ist die C3WOC Webseite nun bei GitHub zu finden. -Konkreter gesagt auf https://github.com/ToolboxBodensee/c3woc-website/ ---- -xml_img: github-octocat.png diff --git a/content/blog/webseite-ist-auf-github/github-octocat.png b/content/blog/webseite-ist-auf-github/github-octocat.png deleted file mode 100644 index 7c14295..0000000 --- a/content/blog/webseite-ist-auf-github/github-octocat.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d225cd27cb19a6284fd6dc2a9af54b4d24564d3c448c5ad67fa6e86598f47823 -size 35695 diff --git a/content/blog/wpn18/contents.lr b/content/blog/wpn18/contents.lr deleted file mode 100644 index c0de51f..0000000 --- a/content/blog/wpn18/contents.lr +++ /dev/null @@ -1,85 +0,0 @@ -title: Große Waffel Programier Nacht (GPN) ---- -author: c3woc ---- -pub_date: 2018-05-14 ---- -subtitle: Die GPN hat sehr viel Spaß gemacht! ---- -twitter_handle: c3woc ---- -body: - -Die 18. Gulaschprogrammiernacht war vom 10. bis 13. Mai 2018 in den Lichthöfen der Hochschule für Gestaltung (HfG) und den Vortragssälen des Zentrum für Kunst und Medien in Karlsruhe statt. Das C3WOC war mit vereinter Waffelkraft vertreten und so haben die Waffel-Trolle dort über 100 Liter Waffelteig während den vier Tagen verwaffelt. - -Dies durfte natürlich im Infrastructure Review nicht fehlen. - - - -

20. Minute des Infrastructure Review.

-
- -Das C3WOC besteht aus Chaoten an verschiedenen Orten im Chaos. An der GPN haben sich die C3WOC Gründer vom Bodensee und aus Darmstadt getroffen und dort zum ersten mal auf einem großen Event Waffeln gemacht. - - - - ---- -privatebody: - -Wir haben mit bis zu vier Waffeleisen gleichzeitig gebacken und dort über hundert Liter Waffelteig vernichtet. -Der Entropia war so freundlich und hat beim Einkaufen die für uns benötigten Zutaten mit besorgt. Gelagert wurden die in den Kühlwagen beim Gulaschzelt. -In der Gulsch- und Pizzaküche haben wir dann folgendes Rezept angerührt: - -``` -1 Flasche Eiklar -1 KG Zucker -1 KG Butter (weich) -5 Pck. Vanille -2 Pck Backpulver -2 Liter Milch -2 Kg Mehl -1 Flasche Mate -etwas dunklen Rum -``` -Das ist übrigend die Ideale Menge für einen Eimer Waffelteig ;-) Hiervon haben wir ungefähr 10 Eimer angerührt. -Zwischendrin haben wir auch mit veganen Waffel experimentiert. - - - - - -Hier ist der Trick, anstelle des Ei Apfelmus (und ein paar Bananen) zu verwenden, die Milch durch Mandelmilch zu ersetzen und anstelle der Butter Nagarine zu verwenden. Der Teig hat erstaunlich gut geschmeckt und hatte annähernd die selbe konsistenz wie eine richtige Waffel. Für veganer eine vertretbare Alternative. Für vegetarier eine ganz leckere Abwechslung. - -Auch Leute mit Glutenunverträglichkeiten gab es. Hier haben wir mit einer Glutenfreien Mehlmischung rumgespielt, die zwar etwas mehr Ei im Teig hatte, dann aber für Glutenfreie Waffeln echt gut geschmeckt hat. - -Wenn man also unbedingt möchte, kann man sowohl vegane, als auch vegetarische Waffeln zubereiten. Dennoch macht es am meisten Spaß mit dem oben genannten klassischen Waffelteig. - - -Unser Eindruck ist, dass das C3WOC von vielen Lebensformen positiv gesehen wurde. Und so hoffen wir noch auf vielen weiteren Events weiter Waffeln zu dürfen. Vielleicht mit ein wenig Engel-Unterstützung... - - - - - -Wir wurden sogar in den Aufzeichnungen bei [media.ccc.de](https://media.ccc.de/c/gpn18) erwähnt. Sowohl im Infrastructure Review, als auch im Dezentrale soziale Netzwerke – Theorie und Praxis Talk. Vielen lieben Dank hierfür <3 - - - -

9. Minute, 40. Sekunde des Dezentrale soziale Netzwerke – Theorie und Praxis Talks.

-
- -Auf der GPN habt Ihr uns knappe 1000 Euro in die Spendenbox geworfen. -Davon werden wir 500€ in weitere Aufkleber und ein Waffeleisen investieren. Das übrige Geld ging an den Entropia e.V. für das besorgen der Waffelzutaten und vor allen für das ausrichten der Gulaschprogrammiernacht. - -Vielen lieben Dank Entropia! Wir kommen gerne wieder! - - - - - -Doch erstmal brauchen wir zur Erholung einen kleinen Waffelstillstand! ---- -xml: Die 18. Gulaschprogrammiernacht war vom 10. bis 13. Mai 2018 in den Lichthöfen der Hochschule für Gestaltung (HfG) und den Vortragssälen des Zentrum für Kunst und Medien in Karlsruhe statt. Das C3WOC war mit vereinter Waffelkraft vertreten und so haben die Waffel-Trolle dort über 100 Liter Waffelteig während den vier Tagen verwaffelt. ---- -xml_img: waffelpower.jpg diff --git a/content/blog/wpn18/vegan.jpg b/content/blog/wpn18/vegan.jpg deleted file mode 100644 index e994acc..0000000 --- a/content/blog/wpn18/vegan.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:052adb7cbbd4a4e40b128d702e4dae0f38af97f4dde51b1a2da9b8e7bb4926a0 -size 711051 diff --git a/content/blog/wpn18/voc.png b/content/blog/wpn18/voc.png deleted file mode 100644 index 93bfc40..0000000 --- a/content/blog/wpn18/voc.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ee4b25f8d003cebc40a1c5c2e202cff66f8aedbb46d95fd4622fd9f7240dd1ff -size 909130 diff --git a/content/blog/wpn18/waffelpower.jpg b/content/blog/wpn18/waffelpower.jpg deleted file mode 100644 index bd2c2a9..0000000 --- a/content/blog/wpn18/waffelpower.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9b406d620b7cb551da991b8bc07179be14cd6dfa463750b321cf78c0a9f468bc -size 686506 diff --git a/content/blog/wpn18/waffelstillstand.jpg b/content/blog/wpn18/waffelstillstand.jpg deleted file mode 100644 index 85e852e..0000000 --- a/content/blog/wpn18/waffelstillstand.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a29933677d8f533c1aba8ec655b6d033f092849b98b2c9d0b6bf41a26c527371 -size 213781 diff --git a/content/blog/wpn18/weiter.jpg b/content/blog/wpn18/weiter.jpg deleted file mode 100644 index 8f7d735..0000000 --- a/content/blog/wpn18/weiter.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:72fb89726e3f7c57fe7e283be0fdd0db0b68fa6fadfdfa1662360fc8e2d0f9ab -size 786909 diff --git a/content/blog/wpn18/woc.png b/content/blog/wpn18/woc.png deleted file mode 100644 index 6a879dd..0000000 --- a/content/blog/wpn18/woc.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:df256eb6dcdd1a9d7b3c5ee9983f65f16a1c45da7f6fc6da3aaa27bc751af294 -size 109910 diff --git a/content/contents+en.lr b/content/contents+en.lr deleted file mode 100644 index d05d47c..0000000 --- a/content/contents+en.lr +++ /dev/null @@ -1,88 +0,0 @@ -as01b1: - -we are hacker and cyber experts from the environment of the chaos computer club.
we placed on some strategic places tactical waffle irons.
-**and we are gonna use them with no mercy.** ---- -as01d1: tactical waffle equipment ---- -as01h1: Who is the C3WOC? ---- -as01img: eisen_smal.jpg ---- -as01l1: /en/equipment ---- -as02b1: - -we use love to craft waffles.
and of course a sip of club mate.
-learn more about our waffle recipe ---- -as02d1: The waffle formula ---- -as02h1: How do we make waffles? ---- -as02img: waffel.2.jpg ---- -as02l1: /en/rezept/ ---- -as03b1: - -We're nerds and living in the cyberspace. if we don't make waffles right now we probably sending some bytes from one computer to another.
-The best way to contact us is over internet relay chat. ---- -as03d1: irc.hackint.org/#waffel ---- -as03h1: How you reach us ---- -as03img: eh18.jpg ---- -as03l1: https://webirc.hackint.org/#irc://irc.hackint.org/#waffel ---- -description: - -Our passion is it to join some random hacker events and bring the waffles to the people. And of course we will appear on some hackspaces and free network meetups. We may join some hackerthon or makerfaire too. - -obviously we may inform you about that. That could be in our [IRC](https://webirc.hackint.org/#irc://irc.hackint.org/#waffel) channel, via [twitter](https://twitter.com/c3WOC) or on [mastodon](https://chaos.social/@c3WOC). - -You can subscribe [our calendar](https://c3woc.de/waffeln.ics) to stay informed about our bigger events. - -

Our next events

- ---- -title: We love waffles ---- -where: Where are we next ---- -tour: - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DatumVeranstaltungOrt
9. - 10. März 2019Chili Eskallationsparty 2019Heilbronn
16. März 2019Eröffnung des Chaostreff Berns HackerspaceBern
19. - 22. April 2019Easterhegg 2019Wien
30. Mai - 2. Juni 2019GPN19Karlsruhe
14. - 16. Juni 2019CosinBiel/Bienne
21.-25. August 2019CCCamp 2019Ziegeleipark Mildenberg 🚀
diff --git a/content/contents.lr b/content/contents.lr index ea03381..50fabce 100644 --- a/content/contents.lr +++ b/content/contents.lr @@ -1,92 +1,107 @@ -as01b1: +_model: start +--- +title: C3 Waffel Operation Center +--- +slogan: Wir machen Waffeln! +--- +about_header: Die Waffelformel +--- +about_text: Mit viel liebe verwandeln wir rohe Zutaten in waffelfähigen Teig. Dabei verwenden wir lang erforschte Rezepturen, die wir euch nicht verheimlichen wollen. +--- +about_text2: Nach jahrerlanger Forschung ist es uns gelungen, die Formel für den Waffelteig zu rekonstruieren. Diese galt lange als verschollen, wurde jetzt aber durch Quantentechnologie und Blockchain wieder zugänglich gemacht. +--- +about_text3: Eines der Geheimnisse von guten Waffelteig ist die frische der Zutaten. Ein anderes ist die Qualität. +--- +about_url: Waffel Rezepturen +--- +about_url2: /rezept/ +--- +icons_header: Wo kannst du uns treffen? +--- +icons_text: +--- +icons_1_1: fa-code +--- +icons_1_2: Programmieren +--- +icons_1_3: Wir entwickeln verschiedenste Software von der Fernsteuerung von Multicoptern über die Steuerung von blinkenden LED-Ketten bis hin zu Übungsprojekten und Internetdiensten. +--- +icons_2_1: fa-keyboard +--- +icons_2_2: Hacken +--- +icons_2_3: Wir verstehen uns als Hacker nach den Prinzipien des Chaos Computer Clubs und handeln dem entsprechend nach der [Hackerethik](https://www.ccc.de/de/hackerethics). +--- +icons_3_1: fa-cogs +--- +icons_3_2: Basteln +--- +icons_3_3: Wir arbeiten an verschiedenen Hardwareprojekten, welche von mechanischen Spielereien, über selbst gelötete Elektronik, bis hin zu komplexeren Steuerungen gehen. +--- +icons_4_1: fa-puzzle-piece +--- +icons_4_2: Workshops +--- +icons_4_3: Wir bieten Workshops und Vorträge an, um den Menschen ein Technikverständnis zu vermitteln, damit Menschen die Technik kontrollieren und nicht anders herum. +--- +icons_4_url: /termine/ +--- +icons_5_1: fa-heart +--- +icons_5_2: Waffeln +--- +icons_5_3: Eine der strategischen Standorte des C3 Waffel Operation Center ist der Bodensee. So geben wir Unterstützung bei der Waffelproduktion und helfen bei taktischen Waffeleinsätzen aus. +--- +icons_5_url: /projekte/c3woc/ +--- +icons_6_1: fa-calendar-check +--- +icons_6_2: Veranstaltungen +--- +icons_6_3: Wir veranstalten immer wieder Veranstaltungen oder nehmen an diesen Teil, um uns besser mit Lebewesen anderer Regionen zu vernetzen. +--- +icons_6_url: /blog/ +--- +icons_txt: Mitglied werden +--- +icons_url: https://toolbox-bodensee.de/mitglied-werden/ +--- +red_1: Wir freuen uns über neue Gesichter. +--- +red_2: -Wir sind Hacker und Nerds aus dem Umfeld des Chaos Computer Club..
Wir haben an einigen strategischen Standorten Waffeleisen plaziert!
-**Und wir werden Sie einsetzen!** +Alleine Waffeln zu backen ist langweilig uns anstrengend. Aber zusammen macht das gleich viel mehr spaß. +Wenn mehr Menschen mitmachen, wird das Waffelnbacken, Planen, Organisieren und essen zu einem mega guten Event! --- -as01h1: Wer ist das C3WOC? ---- -title: Wir sind das C3WOC ---- -as01img: eisen_smal.jpg ---- -as01d1: Strategisches Waffel-Equpment ---- -as01l1: https://c3woc.de/equipment ---- -as02d1: Die Waffelformel ---- -as02h1: Wie backen wir Waffeln ---- -as02l1: /rezept/ ---- -as02b1: +red_3: + +Nur mit dem backen der Waffel alleine ist es nicht getan. Zur Zubereitung der Waffel gehört eine viel größere Pipeline an Aufgaben, die für die perfekte Waffel gemeistert werden müssen. + +Das fängt beim Einkauf und der Logistik an. Wo kauft man Waffelzutaten ein? Wie viele? Bekommt man irgendwo Vollei her? Wo ist der nächste Großmarkt? + +Das geht weiter mit der Aufgabe der Kühlkette. Gibt es einen Kühlschrank oder Kühlraum? Wo können die leicht verderblichen Zutaten gelagert werden? Wie viel Grad dürfen die maximal haben ohne dass Sie zu warm gelagert sind und verderben? + +Als nächstes geht es um das herstellen des Teiges. Hatten die Bäcker eine Lebensmittelbelehrung? Sind die Hände gewaschen und die Schürzen angelegt? Ist die Waffelformel bekannt? Und sind alle Zutaten und gefäße wirklich da? + +Dann kommt das backen der Waffel. Sind die Waffeleisen ordentlich angeschlossen? Sind die Bäcker erfahren oder brauchen Sie eine einweisung? +Trägt jeder eine Schürze und hat gewaschene Hände? Ist das Waffeleisen auf +- 230 °C eingestellt? Werden die üblichen Teigspritzer mit Küchenpapier oder Alufolie aufgefangen? Und ist das Waffeleisen eigentlich sauber? + +Nun geht es um die Waffelausgabe. Sind zutaten zum belegen vorhanden? Gibt es Kuchengitter oder Brettchen für die Waffeln zum abstellen? Bilden die Menschen eine schöne schlange? Bekommt jeder der mag einen Aufkleber? + +Und zu guter letzt ist das aufräumen und putzen nicht zu unterschätzen! +Auch hier geht es von den benutzen behältern bis hin zu den Waffeleisen selber. Alles muss sauber sein. Auch die Tische und der Boden! -Wir bereiten Waffeln mit viel Liebe zu. -Und natürlich einen Schluck Club-Mate.
-Lerne unsere Waffelmixtur kennen --- -as02img: waffel.2.jpg +red_4: Mach mit beim C3WOC! Wir brauchen deine Unterstützung! --- -as03b1: - -Wir sind Nerds und Leben auch im Internet.
-Komm uns dort doch mal Besuchen!
-Am besten erreichst du uns im IRC +icons_1_url: /projekte/ --- -as03d1: irc.hackint.org/#waffel +icons_3_url: /vereinsheim/elektrowerkstatt/ --- -as03h1: So erreichst du uns +hinweis: Wenn du Lust hast, dann --- -as03img: eh18.jpg +hinweis_txt: mach mit! --- -as03l1: https://webirc.hackint.org/#irc://irc.hackint.org/#waffel +hinweis_url: /mitmachen/ --- -description: - -Wir haben es uns zur Aufgabe gemacht an einigen Hackveranstaltungen aufzutauchen und dort Waffeln zu backen. -Aber natürlich auch ab und zu einfach so in ausgewählten Hackerspacen, zu Freifunk Treffen oder auch mal auf einem Hackerthon. - -Selbstverständlich werden wir euch darüber unzuverlässig und unregelmäßig Informieren. -Dies passiert nicht nur im [IRC](https://webirc.hackint.org/#irc://irc.hackint.org/#waffel), sondern auch über Kanäle wie [Mastodon](https://chaos.social/@c3WOC) oder [Twitter](https://twitter.com/c3WOC). - -Und natürlich wird darüber auch ab und zu im Blog berichtet. Über unseren [ICS Kalender](https://c3woc.de/waffeln.ics) kannst du informiert bleiben. - - -

Unsere nächsten Events

---- -where: Wo sind wir als nächstes ---- -tour: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DatumVeranstaltungOrt
9. - 10. März 2019Chili Eskallationsparty 2019Heilbronn
16. März 2019Eröffnung des Chaostreff Berns HackerspaceBern
19. - 22. April 2019Easterhegg 2019Wien
30. Mai - 2. Juni 2019GPN19Karlsruhe
14. - 16. Juni 2019CosinBiel/Bienne
21.-25. August 2019CCCamp 2019Ziegeleipark Mildenberg 🚀
+sections: diff --git a/content/datenschutz/contents.lr b/content/datenschutz/contents.lr deleted file mode 100644 index d2b44ce..0000000 --- a/content/datenschutz/contents.lr +++ /dev/null @@ -1,28 +0,0 @@ -_model: site ---- -title: Datenschutz ---- -body: - -Datenschutz ist auch für Waffeln und waffelnahen Lebensformen ein wichtiger Schwerpunkt. Deshalb versuchen wir hier mal -verständlich zu machen, was diese Website kann und tut und darf. Bei Verständnisfragen oder Inkonsistenzen fragt bitte! - -Diese Website kann grundsätzlich absolut anonym genutzt werden – ihr braucht keine Namen, Mailadressen, oder sonstwas -dafür angeben. Wir nutzen auch keine Cookies, um nachzuvollziehen, wer die Website wie oft wann besucht. Wir tracken die -Websitenbesucher auch sonst nicht. - -Wir erfassen anonymisiert (ohne IP-Adresse), wie viele Menschen wann auf die Website zugreifen (Zeitpunkt, abgefragte -Adresse, vom Browser mitgeschickter Browser-Identifier und Referrer), aber wir können und wollen das nicht auf Personen -zurückverfolgen. Da wir unsere Websiten alle selber betreiben, liegen selbst diese anonymen Informationen nur bei uns, -und nur das Admin-Team hat Zugriff darauf. Wir übermitteln diese Daten an niemanden sonst. - -Dadurch dass wir diese Websites verschlüsselt (über SSL/TLS, ihrwisstschon, HTTPS) anbieten, helfen wir weiter dabei, -eure Daten zu schützen, weil so nicht einfach von Dritten einsehbar ist, welche Inhalte ihr abruft. Wir können aber nicht -garantieren, dass nicht irgendwo im HTTPS-Protokoll oder den Implementierungen, die ihr oder wir nutzen, Fehler sind. -(Wenn das so ist, dann erfahrt ihr das aber definitiv aus den Nachrichten, sobald es rauskommt.) - -Zu unserem eigenen Schutz: Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails, vor. ---- -spruch: Mit Waffeln Daten schützen! ---- -subtitle: Welche gefahren drohen dir hier? diff --git a/content/eh18.jpg b/content/eh18.jpg deleted file mode 100644 index 778def9..0000000 --- a/content/eh18.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b868a16c03698996934a2513d1178f39542be8d46933a942feabf3440eeaef50 -size 90612 diff --git a/content/eisen.jpg b/content/eisen.jpg deleted file mode 100644 index 377a25d..0000000 --- a/content/eisen.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8e355944a135b13cd592075edb9dfe494ebdd7e928512e32ba4c4b2daa48eff5 -size 84193 diff --git a/content/eisen_smal.jpg b/content/eisen_smal.jpg deleted file mode 100644 index 5b52692..0000000 --- a/content/eisen_smal.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:684fe6d0c50d3eb4b93370c3f502189c64fd7e3d75928bf09d8e558c34d11def -size 704374 diff --git a/content/equipment/big_case.jpg b/content/equipment/big_case.jpg deleted file mode 100644 index ba8cff0..0000000 --- a/content/equipment/big_case.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3bd633f9cf638035d69eb21dbfc715e0a227a85fe47ed9ac158dd52547f3edac -size 1126900 diff --git a/content/equipment/case.jpg b/content/equipment/case.jpg deleted file mode 100644 index 4a9739b..0000000 --- a/content/equipment/case.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2c78aa9a2b4521ddb6265365f3abba7203842d58d1fabb942844f3d892eb8c88 -size 1382906 diff --git a/content/equipment/contents.lr b/content/equipment/contents.lr deleted file mode 100644 index 72fe5bd..0000000 --- a/content/equipment/contents.lr +++ /dev/null @@ -1,108 +0,0 @@ -_model: material ---- -title: Unser Equipment ---- -body: - -Wir haben Waffeleisen bei verschiedenen strategisch Relevanten Hackerspacen plaziert. -Von dort sind wir in der Lage mit vereinte Waffelgewalt gezielt Waffelherzen zu verbreiten. - -

Toolbox Bodensee e.V.

- -In der [Toolbox Bodensee e.V.](https://toolbox-bodensee.de) in Markdorf am Bodensee gibt es das ["Mate Syndikat"](https://küche.toolbox-bodensee.de/), das sich um die Küche der Toolbox kümmert. Und natürlich kann sich ein aktiver Hackerspace nicht entgehen lassen, vernünftiges Waffelequipment zu haben. - -Das Mate-Syndikat hat ein kleines Bartscher Gastro-Waffeleisen. Hier einige technische Daten: - - -``` - Energiebedarf: 2,2 kW - Waffelform: Herzform - Waffelgröße: Ø 210 mm, Höhe 16 mm - Temperaturbereich von: 0°C bis 300°C - Gewicht: 15,5 kg - Case-Gesamtgröße (außen): 54 x 41 x 34 cm - Case-Gesamtgewicht (mit Eisen): ~25kg -``` - - -

"kleines Waffeleisen"

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

see-base

- -In Ü**Berlin**gen gibt es den Hackerspace [see-base](https://see-base.de). Natürlich wird in der see-base auch gewaffelt und überregionales Waffeln für gut empfunden. So ist auch die see-base Teil des C3WOC und hat ein großes Bartscher Gastro-Waffeleisen im Sortiment. Dieses hat folgende Werte: - -``` - Energiebedarf: 2x 2,2 kW - Waffelform: Herzform - Waffelgröße: Ø 210 mm, Höhe 16 mm - Temperaturbereich von: 0°C bis 300°C - Gewicht: 23,5 kg - Case-Gesamtgröße (außen): 69x69x42cm - Case-Gesamtgewicht (mit Eisen): ~35kg -``` - -

"großes Waffeleisen:"

- -
- - - - - - -
-

-Selbstverständlich haben die beiden Gastro-Waffeleisen auch jeweils einen Pelikan-Case für den sicheren Transport zum Einsatzort. -
-
- -

Platinengarten

- -Beim [Platinengarten](http://platinengarten.de/) gibt es auch aktive Nerds mit Waffeleisen. -Hier findet man bis zu 7 Rowenta Waffeleisen, - - - -Diese orientieren sich an folgenden technischen Daten: - -``` - Energiebedarf: 900 W - Waffelform: Herzform - Waffelgröße: normalgroß - Gewicht: nicht so schwer -``` - - - - -
- -Hast du oder dein Hackerspace nicht vielleicht auch Lust, beim C3WOC mit zu machen? - -Werde Teil des C3WOC - - - ---- -spruch: Ohne Waffeleisen kann man auch keine Waffeln backen ---- -subtitle: Dezentrale Waffelpower diff --git a/content/equipment/doppeleisen.jpg b/content/equipment/doppeleisen.jpg deleted file mode 100644 index 8edb11f..0000000 --- a/content/equipment/doppeleisen.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4747ee2c9cd6eb309fe8d566cf845f64b4d70e248febbcc876dca479d994ee40 -size 1897430 diff --git a/content/equipment/eisen.jpg b/content/equipment/eisen.jpg deleted file mode 100644 index 13a6fac..0000000 --- a/content/equipment/eisen.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:73ed77bedf9328f99c03a2732a70821c42311305bed1dc98aa739f79507d8e42 -size 1614124 diff --git a/content/equipment/mini.jpg b/content/equipment/mini.jpg deleted file mode 100644 index 979d57b..0000000 --- a/content/equipment/mini.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0fd834d6e7d86d2fe875c7ccdb18be42d781bb6772b344a7597405485f93acd1 -size 1496332 diff --git a/content/fame/contents.lr b/content/fame/contents.lr deleted file mode 100644 index 15571bc..0000000 --- a/content/fame/contents.lr +++ /dev/null @@ -1,54 +0,0 @@ -_model: site ---- -title: Medienberichte ---- -spruch: Waffeln sind in aller munde! ---- -subtitle: Hier wurde das C3WOC erwähnt ---- -body: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DatumVeranstaltungOrt
9.-11. November 2018C6 GeekendKiel
17. November 2018Tag der offenen Türe im Hackerspace ToolboxMarkdorf
23. - 25. November 2018Glühweinprogrammiernacht (GlühPN) Karlsruhe
1. Dezember 2018Adventsbasar beim Hackerspace see-baseÜberlingen
26.-30. Dezember 201835. Chaos Communication CongressLeipzig
19. - 22. April 2019Easterhegg 2019Wien
30. Mai - 2. Juni 2019GPN19Karlsruhe
14. - 16. Juni 2019CosinBiel/Bienne
21.-25. August 2019CCCamp 2019Ziegeleipark Mildenberg 🚀
diff --git a/content/feed.xml/contents.lr b/content/feed.xml/contents.lr deleted file mode 100644 index 6935fdb..0000000 --- a/content/feed.xml/contents.lr +++ /dev/null @@ -1,5 +0,0 @@ -_template: feed.xml ---- -_model: none -_discoverable: no -_hidden: yes diff --git a/content/hygiene/contents+en.lr b/content/hygiene/contents+en.lr deleted file mode 100644 index 7b45ff5..0000000 --- a/content/hygiene/contents+en.lr +++ /dev/null @@ -1,43 +0,0 @@ -body: - -Hygiene is an important issue when working with fresh and tasty food. So it is irresponsible to prepare food from fresh eggs at larger events, which are still surrounded by chicken bowl ... - -**some principles that must be allways followed** - - clean work surface -================= -Clean the work surface on which dough or waffles are prepared before and after you work there. - - clean hands -=============== -Wash and / or disinfect your hands before and while working with fresh food like waffles - - apron -======= -Wear an apron while preparing dough and make waffles - - eggs -======= -If possible, do not use eggs from eggshells. Liquid eggs come in Tetra Pack packs and can be easily poured into the dough without having to peel eggs. Search for "Eiklar" to learn more about that. - - eggshells -===== -Before peeling the eggs (if there is no other way) **wash the eggs**. If you put some egg peel into the dough you have to start from scratch. Dispose the possibly infected dough and try again. -Especially with salmonella is not to joke and rather a little more caution! - - fresh food -========= -All fresh food (eggs, milk, butter, dough, etc.) must be constantly cooled. There is **no reason** to store these foods outside the refrigerator or refrigerated truck. Unless they are used immediately. - - common sense -================== -You work with fresh food. Do not do anything unwise, do not urinate in the dough, do not use dirty materials... **Use your common sense!** - -Every being in the universe knows right from wrong. You know it too. Don't mess it up! - ---- -spruch: Dough without salmonella tastes much better ---- -subtitle: Wash your hands. always. ---- -title: Hygiene diff --git a/content/hygiene/contents.lr b/content/hygiene/contents.lr deleted file mode 100644 index a4da476..0000000 --- a/content/hygiene/contents.lr +++ /dev/null @@ -1,45 +0,0 @@ -_model: site ---- -title: Hygiene ---- -body: - -Die Hygiene ist beim arbeiten mit frischen Lebensmitteln ein wichtiges Thema. So ist es unverantwortlich bei größeren Veranstaltungen Essen aus frischen Eiern zuzubereiten, die noch von Hühnerschale umeben sind... - -**einige Grundsätze, die beim Waffeln backen eingehalten werden müssen:** - - saubere Arbeitsfläche -================= -Putze die Arbeitsfläche, auf der Teig oder Waffeln zubereitet werden bevor und nachdem du dort arbeitest. - - saubere Hände -=============== -Wasche und/oder desinfiziere deine Hände, bevor du mit Lebensmitteln arbeitest - - Schürze -======= -Trage eine Schürze beim Teig- und Waffeln zubereiten - - Eier -======= -verwende nach Möglichkeit keine Eier aus Eierschalen. Eiklar kommt in Tetrapack Packungen und lässt sich Problemlos in den Teig schütten ohne Eier schälen zu müssen. - - Eierschalen -===== -Vor dem schälen der Eier (falls es unbedingt sein muss) **unbedingt die Eier abwaschen**. Ist beim öffnen der Eier Schale in den Teig gefallen musst du leider von vorne starten. Entsorge deinen möglicherweise infizierten Teig und beginne von neuen. -Gerade mit Salmonellen ist nicht zu spaßen und lieber etwas mehr vorsicht als schlagsigkeit zu genießen! - - frische Lebensmittel -========= -Alle frischen Lebensmittel (Ei, Milch, Butter, Teig etc.) müssen ständig gekühlt werden. Es gibt **keinen Grund**, diese Lebensmittel außerhalb des Kühlschrank oder Kühlwagen zu lagern. Es sei denn, sie werten unmittelbar verwendet. - - gesunder Menschenverstand -================== -Du arbeitest mit frischen Lebensmitteln. Tu nichts unüberlegtes, Uriniere nicht in den Teig, verwende keine dreckigen Behältnisse oder Materialeien... **Verwende einfach dein Gesunden Menschenverstand!** - -Every being in the universe knows right from wrong. You know it too. Don't mess it up! - ---- -spruch: Teig ohne Salmonellen schmeckt viel besser ---- -subtitle: Hände waschen. immer. diff --git a/content/impressum/contents.lr b/content/impressum/contents.lr deleted file mode 100644 index 8f07639..0000000 --- a/content/impressum/contents.lr +++ /dev/null @@ -1,33 +0,0 @@ -_model: site ---- -title: Impressum ---- -body: - - IRC: ------ - -``` -Server: irc.hackint.org -Channel: #waffel -``` -[irc://irc.hackint.org](ircs://irc.hackint.org/#waffel) - [Web IRC](https://webirc.hackint.org/#irc://irc.hackint.org/#waffel) - - Mail: ----- -``` -waffel@c3woc.de -``` - - Postanschrift: ----- -``` -Toolbox Bodensee e.V. -C3WOC -Bergheimer Str. 6-12 -88677 Markdorf -``` ---- -subtitle: Kontaktmöglichkeiten ---- -spruch: So kann man uns erreichen... diff --git a/content/mitmachen/contents.lr b/content/mitmachen/contents.lr deleted file mode 100644 index 13ebc1d..0000000 --- a/content/mitmachen/contents.lr +++ /dev/null @@ -1,33 +0,0 @@ -_model: site ---- -title: Sei Teil des C3WOC ---- -spruch: Waffelbacken kann jeder. ---- -subtitle: Aber damit es perfekt wird, muss auch der Teig und die Hygiene stimmen ---- -body: - -Wir vom C3WOC freuen uns über jeden, der auch gute und Qualitativ hochwertige Waffeln zu schätzen weiß. - -Aber noch viel besser wäre es, wenn in jedem Hackerspace eine erfahrene Waffelcrew hat, die sich als ein Teil des C3WOC empfindet. - - -Doch um beim C3WOC mitmachen zu dürfen, muss man gewisse Qualitätsanforderungen erfüllen, ohne die ein Waffelanschlag schnell einem Biowaffenanschlag gleich kommen kann. Dies umfasst folgende Punkte: - -Qualität der Zutaten -Hygiene -gepflegtes Equipment - -Werden diese Punkte erfüllt, würden wir uns sehr freuen, dich als Teil des C3WOC aufzunehmen. - -Als Mitglied vom C3WOC hast du die selbstregulierte Verpflichtung leckere Waffeln mit hohen C3WOC Qualitätsstandards so oft du Lust hast zu machen. -Außerdem würden wir es sehr schätzen, mit dir bei unterschiedlichsten, meistens chaosnahen Veranstaltungen zu Waffeln. -Eigeninitiative wie das unabhängige Aufschlagen bei regionalen Events in deiner nähe schätzen wir auch sehr. Über ein paar schicke Bilder dazu für den C3WOC Blog freuen wir uns auch sehr. - -Als Teil des C3WOC erhältst du natürlich bestmöglichen Waffelsupport. So bekommst du auf Wunsch eine @c3woc.de Adresse und wirst mit in den Verteiler aufgenommen. Außerdem versuchen wir stets bei jeden einige C3WOC Aufkleber vorrätig zu haben. - -Melde dich bei uns und werde Teil des C3WOC: - -waffel@c3woc.de - diff --git a/content/rezept/contents.lr b/content/rezept/contents.lr deleted file mode 100644 index 2f2c62d..0000000 --- a/content/rezept/contents.lr +++ /dev/null @@ -1,55 +0,0 @@ -_model: material ---- -title: Rezept ---- -body: - -Der Standard-Waffelteig des C3WOC ist für einen 10 Liter Eimer optimiert, um auf mittleren und größeren Veranstaltungen den optimalen Waffelzustand zu erreichen! - -``` -1 l Vollei-Eiklar (oder ca. 20 Eier) -1 Kg Zucker -1,25 Kg Butter (weich/geschmolzen) -20-50g Vanillezucker (am besten aus echter Vanille) -3 Pck. Backpulver (oder 1-2 EL voll) -1,5 Liter frische Vollmilch (keine H-Milch) -2 Kg Mehl -2 Flaschen Club-Mate oder Flora Power -etwas (dunklen) Rum -eine prise Salz -``` - - Zubereitung -============ -Weiche oder geschmolzene Butter mit Ei und Zucker in einem 10-Liter Eimer oder einer Schüssel klumpenfrei verrühren. -Unter ständigen rühren die weiteren Zutaten hinzugeben. -Zu guter letzt den Teig abschmecken und die Zutaten nach Gefühl variieren. - - Wichtig! -=========== -Die Qualität der Zutaten hat einen hohen Einfluss darauf, wie der Teig schmeckt. Hier ist es stark vorteilhaft, hochwertige Produkte zu verwenden. So schmeckt man, ob billige H-Milch verwendet wurde oder hochwertige Vollmilch, womöglich direkt vom Bauern seiner Vertrauens. Gerade auch bei der Vanille schmeckt der Teig viel besser, wen anstelle billigen Vanillin echter Vanillezucker verwendet wird, der womöglich noch kleine Stücken Vanille enthält. -Natürlich funktioniert der Teig auch mit den günstigen Produkten. Er ist dann eben nicht mehr ganz so lecker. - -Weitere Rezepte: -------------------------- -Teig ohne Ei -Veganer Teig -Glutenfreier Teig -Fleischhaltiger Teig -Waffelbelag - -Weitere Informationen: ------------ - -Tipps zur Teigzubereitung -Hygiene - - - - ---- -spruch: Ohne guten Teig hilft auch das beste Waffeleisen nicht weiter ---- -subtitle: Waffelteig ---- -_template: site.html diff --git a/content/rezept/eifrei/contents.lr b/content/rezept/eifrei/contents.lr deleted file mode 100644 index 2091c36..0000000 --- a/content/rezept/eifrei/contents.lr +++ /dev/null @@ -1,58 +0,0 @@ -_model: site ---- -title: Teig ohne Ei ---- -spruch: Waffeln ohne Salmoneleninfektion ---- -subtitle: %s/Ei/Apfelmus/g ---- -body: - -Ei ist ein wichtiger Bestandteil der Waffel. Das weglassen von Ei bedeutet dabei auch, die Qualität der Waffel zu verändern. Ob das aber dadurch besser oder schlechter wird, muss jeder selber bewerten. Es ist auf jeden Fall ungewöhnlich und anders als normal. - -**Der Trick** ist, das Ei durch andere Zutaten mit ähnlich bindenden Charakter zu ersetzen. Besonders gut haben sich hier eine Mischung aus Bananen und Apfelmus bewährt. Aber natürlich wollen wir eure Kreativität nicht einschränken. Probiert es einfach mal aus! - - Eifreies Rezept -========= - -``` -1 Bund Bananen -300g-500g Apfelmus (je nach Bananenanteil) -1 Kg Zucker -1,25 Kg Butter (weich/geschmolzen) -6 Pck. Vanillezucker (am besten aus echter Vanille) -3 Pck. Backpulver -1,5 Liter frische Vollmilch (keine H-Milch) -2 Kg Mehl -2 Flaschen Club-Mate oder Flora Power -etwas (dunklen) Rum -eine prise Salz -``` - - - Zubereitung -============ -Kleingeschnittene oder Pürrierte Bananen zusammen mit dem Apfelmus, zerlassener Butter und Zucker in einem 10-Liter Eimer oder einer Schüssel klumpenfrei verrühren. -Unter ständigen rühren die weiteren Zutaten hinzugeben. -Zu guter letzt den Teig abschmecken und die Zutaten nach Gefühl variieren. - - Wichtig! -=========== -Die Qualität der Zutaten hat einen hohen Einfluss darauf, wie der Teig schmeckt. Hier ist es stark vorteilhaft, hochwertige Produkte zu verwenden. So schmeckt man, ob billige H-Milch verwendet wurde oder hochwertige Vollmilch, womöglich direkt vom Bauern seiner Vertrauens. Gerade auch bei der Vanille schmeckt der Teig viel besser, wen anstelle billigen Vanillin echter Vanillezucker verwendet wird, der womöglich noch kleine Stücken Vanille enthält. -Natürlich funktioniert der Teig auch mit den günstigen Produkten. Er ist dann eben nicht mehr ganz so lecker. - -Weitere Rezepte: -------------------------- -normaler Teig -Veganer Teig -Glutenfreier Teig -Fleischhaltiger Teig -Waffelbelag - -Weitere Informationen: ------------ - -Tipps zur Teigzubereitung -Hygiene - - diff --git a/content/rezept/fleisch/contents.lr b/content/rezept/fleisch/contents.lr deleted file mode 100644 index e26fd23..0000000 --- a/content/rezept/fleisch/contents.lr +++ /dev/null @@ -1,54 +0,0 @@ -_model: site ---- -title: Fleischhaltige Rezeptur ---- -body: - -Auch wenn man bei Waffeln erstmal an etwas süßes denkt, so ist es trotzdem möglich herzhaft Waffeln mit Fleischfüllung zuzubereiten. Hierfür kann folgende Formel angewendet werden: - -``` -1 Packung Eiklar (oder 20 Eier) -1,5 Kg Hackfleisch (frisch angebraten) -einige Zwiebeln (gewürfelt und frisch angebraten) -viel Knoblauch -1,25 Kg Butter (weich/geschmolzen) -2-6 Pck. Vanillezucker (am besten aus echter Vanille) -3 Pck. Backpulver -1,5 Liter frische Vollmilch (keine H-Milch) -2 Kg Mehl -2 Flaschen Club-Mate oder Flora Power -etwas (dunklen) Rum -eine große prise Salz -drei große prisen Pfeffer -frische Kräuter -``` - - Zubereitung -============ -Hackfleisch mit kleingeschnittenen Zwiebeln und Knoblauch frisch anbraten. Diesen mit den Eiern und der geschmolzenen Butter vermischen. -Unter ständigen rühren die weiteren Zutaten hinzugeben. -Zu guter letzt den Teig abschmecken und die Zutaten nach Gefühl variieren. - - Wichtig! -=========== -Die Qualität der Zutaten hat einen hohen Einfluss darauf, wie der Teig schmeckt. Hier ist es stark vorteilhaft, hochwertige Produkte zu verwenden. So schmeckt man, ob das billige Hackfleisch vom Aldi und die H-Milch aus dem Sonderangebot genommen wurde oder das gute Hackfleisch vom Metzger und die frische Milch direkt vom bauern (oder aus dem Kühlregal). -Natürlich funktioniert der Teig auch mit den günstigen Produkten. Er ist dann eben nicht mehr ganz so lecker und es könnten Waffeln entstehen, die nicht ganz der erhofften Konsistenz entsprechen. - -Weitere Rezepte: -------------------------- -normaler Teig -Teig ohne Ei -Glutenfreier Teig -Waffelbelag -Fleischhaltiger Teig - -Weitere Informationen: ------------ - -Tipps zur Teigzubereitung -Hygiene - ---- -spruch: Ohne Fleisch ist es keine richtige Waffel ---- -subtitle: So wird man von der Waffel satt diff --git a/content/rezept/glasur/contents.lr b/content/rezept/glasur/contents.lr deleted file mode 100644 index f194876..0000000 --- a/content/rezept/glasur/contents.lr +++ /dev/null @@ -1,54 +0,0 @@ -_model: site ---- -title: Waffelbelag ---- -body: - -Natürlich schmeckt die Waffel so auch ohne Belag schon richtig gut. -Aber für den Ultimativen Geschmack gibt es einige Zutaten, die sich als sehr leckeren Belag heraus gestellt haben. Aber auch hier sind eurer Kreativität keine Grenzen gesetzt. Mit Waffeln ist echt ziemlich viel Möglich! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Belag
Puderzucker - ein Klassiker
Schlagsahne
Sprühsahne - den wirklich billigen ersatz von Schlagsahne
Speiseeis
Schokostreusel
Honig
Sirup
Apfelmus
Obstsalat
Nutella
Bananen
Zimt
Frischkäse
Chickenwings
- -In manchen Kulturkreisen ist auch "Waffle with chicken" ein sehr beliebtes Essen. Hierfür sollte aber der Zuckeranteil im Teig drastisch reduziert werden. - -Waffelrezepte: ----------------- -normaler Teig -Teig ohne Ei -Veganer Teig -Glutenfreier Teig -Fleischhaltiger Teig - ---- -spruch: Waffeln bitte dick belegen! ---- -subtitle: Mehr Nutelle - mehr gut! diff --git a/content/rezept/gluten/contents.lr b/content/rezept/gluten/contents.lr deleted file mode 100644 index efae7e2..0000000 --- a/content/rezept/gluten/contents.lr +++ /dev/null @@ -1,54 +0,0 @@ -_model: site ---- -title: Glutenfreie Waffeln ---- -body: - -Menschen mit Glutenunverträglichkeit haben es nicht immer Leicht. Viele Lebensmittel enthalten Gluten. Auch der normale Waffelteig. -Aber das soll uns nicht aufhalten. Bei dieser variante des Glutenfreien Teig ersetzen wir das normale Mehr durch glutenfreies Mehl und fügen noch ein paar Bananen hinzu. - -Wichtig ist noch zu erwähnen, dass wir uns nicht anmaßen können, einen Teig der garantiert 100,00% Glutenfrei ist anzurühren. Aber wir sind stets bemüht Glutenarmen Teig nach folgenden Rezept zu entwerfen und so den Anteil an Gluten nahezu an 0 Prozent zu nähern. - -``` -1 Packung Eiklar (oder 20 Eier) -1-3 Bananen -1 Kg Zucker -1,25 Kg Butter (weich/geschmolzen) -6 Pck. Vanillezucker (am besten aus echter Vanille) -3 Pck. Backpulver -1,5 Liter frische Vollmilch (keine H-Milch) -2 Kg glutenfreies Mehl -2 Flaschen Club-Mate oder Flora Power -etwas (dunklen) Rum -eine prise Salz -``` - - Zubereitung -============ -Weiche oder geschmolzene Butter mit zerkleinerten oder pürrierten Bananen, Ei und Zucker in einem 10-Liter Eimer oder einer Schüssel klumpenfrei verrühren. -Unter ständigen rühren die weiteren Zutaten hinzugeben. -Zu guter letzt den Teig abschmecken und die Zutaten nach Gefühl variieren. - - Wichtig! -=========== -Die Qualität der Zutaten hat einen hohen Einfluss darauf, wie der Teig schmeckt. Hier ist es stark vorteilhaft, hochwertige Produkte zu verwenden. So schmeckt man, ob billige H-Milch verwendet wurde oder hochwertige Vollmilch, womöglich direkt vom Bauern seiner Vertrauens. Gerade auch bei der Vanille schmeckt der Teig viel besser, wen anstelle billigen Vanillin echter Vanillezucker verwendet wird, der womöglich noch kleine Stücken Vanille enthält. -Natürlich funktioniert der Teig auch mit den günstigen Produkten. Er ist dann eben nicht mehr ganz so lecker. - -Weitere Rezepte: -------------------------- -normaler Waffelteig -Teig ohne Ei -Veganer Teig -Waffelbelag -Fleischhaltiger Teig - -Weitere Informationen: ------------ - -Tipps zur Teigzubereitung -Hygiene - ---- -spruch: Glutenunverträglichkeit soll dich nicht am Waffeln essen hindern! ---- -subtitle: Waffeln für alle! diff --git a/content/rezept/tipps/contents.lr b/content/rezept/tipps/contents.lr deleted file mode 100644 index 1dfe4a0..0000000 --- a/content/rezept/tipps/contents.lr +++ /dev/null @@ -1,36 +0,0 @@ -_model: site ---- -title: Tipps zur Zubereitung des Teiges ---- -body: - -Das herstellen des Waffelteigs ist eigentlich nicht sonderlich kompliziert. - -Dennoch hat die Erfahrung auf verschiedenen Veranstaltungen gezeigt, dass man einige Dinge beachten sollte - - - Butter --------------- -Kalte Butter eignet sich leider nicht, um daraus waffelfähigen Teig herzustellen. Dafür benötigt man entweder Weiche oder noch besser geschmolzene Butter. -Beim Teig machen sollte man daher stets an einen Topf und eine Herdplatte denken! - - Backpulver ---------------- -Die geringe Menge an Backpulver bei dem Teig ist kein Zufall. Natürlich kann diese etwas variiert werden, aber wenn der Teig mit zu viel Backpulver in einem Eimer darauf wartet verwaffelt zu werden, kann es vorkommen, dass das Backpulver seine Arbeit macht und es so aussieht: - - - - - - - Küchengeräte ------------- -Beim Zubereiten des Teiges sind ordentliche Küchengeräte sehr sinnvoll. -Gerade bei großen 10 Liter eimer sind die kleinen Haushalts-Handrührgeräte nicht zu gebrauchen, da diese nicht bis an den Boden der Schüssel kommen. -Und wenn die Butter weich ist, lässt sich der Teig auch problemlos mit einem Schneebesen mit langen Stil verarbeiten. - - ---- -spruch: Teig machen kann jeder. Aber es sollte schon lecker schmecken. ---- -subtitle: Teig machen ist simpel diff --git a/content/rezept/vegan/contents.lr b/content/rezept/vegan/contents.lr deleted file mode 100644 index c32d204..0000000 --- a/content/rezept/vegan/contents.lr +++ /dev/null @@ -1,52 +0,0 @@ -_model: site ---- -title: Veganer Teig ---- -body: - -Es mag seltsam klingen, aber vegane Waffeln sind kein Hexenwerk. Der Trick ist, anstelle des Ei eine Mischung aus Bananen und Apfelmus zu nehmen. Außerdem eignet sich Mandel- oder Hafermilch als sehr guter, hochwertiger Ersatz für Kuhmilch. - -**Achtung: Das rezept ist noch nicht ganz ausgereift und klebt mitunter gewaltig im Waffeleisen!** -``` -1 Bund Bananen -300-500 g Apfelmus (je nach Bananenmenge) -1 Kg Zucker -1,25 Kg vegane Magerine (weich/geschmolzen) -6 Pck. Vanillezucker (am besten aus echter Vanille) -3 Pck. Backpulver -1,5 Liter Mandel- oder Hafermilch -2 Kg Mehl -2 Flaschen Club-Mate oder Flora Power -etwas (dunklen) Rum -eine prise Salz -``` - - Zubereitung -============ -kleingeschnittene oder pürrierte Banenen zusammen mit weicher oder geschmolzener Magarine und Zucker in einem 10-Liter Eimer oder einer Schüssel klumpenfrei verrühren. -Unter ständigen rühren die weiteren Zutaten hinzugeben. -Zu guter letzt den Teig abschmecken und die Zutaten nach Gefühl variieren. - - Wichtig! -=========== -Die Qualität der Zutaten hat einen hohen Einfluss darauf, wie der Teig schmeckt. Hier ist es stark vorteilhaft, hochwertige Produkte zu verwenden. So schmeckt man, ob billiges Leitungswasser im Teig bei weiten nicht so gut wie Mandel- oder Hafermilch. Ganz abgesehen davon, dass das die grundlegende Konsistenz des Teiges stark verändern würde. Gerade auch bei der Vanille schmeckt der Teig viel besser, wen anstelle billigen Vanillin echter Vanillezucker verwendet wird, der womöglich noch kleine Stücken Vanille enthält. -Natürlich funktioniert der Teig auch mit den günstigen Produkten. Er ist dann eben nicht mehr ganz so lecker und es könnten Waffeln entstehen, die nicht ganz der erhofften Konsistenz entsprechen. - -Weitere Rezepte: -------------------------- -normaler Teig -Teig ohne Ei -Glutenfreier Teig -Waffelbelag -Fleischhaltiger Teig - -Weitere Informationen: ------------ - -Tipps zur Teigzubereitung -Hygiene - ---- -spruch: Waffeln sind für jeden da. Auch für Menschen mit veganer Ernährung! ---- -subtitle: alle nicht-veganen Zutaten ersetzen und Hackfleisch dazugeben! diff --git a/content/sitemap.xml/contents.lr b/content/sitemap.xml/contents.lr deleted file mode 100644 index ffd5fad..0000000 --- a/content/sitemap.xml/contents.lr +++ /dev/null @@ -1,4 +0,0 @@ -_template: sitemap.xml ---- -_model: none -_discoverable: no diff --git a/content/waffel.2.jpg b/content/waffel.2.jpg deleted file mode 100644 index 7975b2f..0000000 --- a/content/waffel.2.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b1f510782b5296054a1646388ba85cf1ed69ae3576ebac93e222bd2f8159b85b -size 860097 diff --git a/content/waffel.jpg b/content/waffel.jpg deleted file mode 100644 index c0934d2..0000000 --- a/content/waffel.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e1116ae21b5ab04032450f4c986c72840c6d28341c54421ffbccf7f64b6304f9 -size 109485 diff --git a/databags/navigation.ini b/databags/navigation.ini new file mode 100644 index 0000000..2ca20b4 --- /dev/null +++ b/databags/navigation.ini @@ -0,0 +1,60 @@ +;; Hier gibt es die Übersetzungen für die Toolbox Webseiten Navigation + +[de] +home = Start +Blog = Blog +Projekte = Projekte +Verein = Verein +Kalender = Kalender +Kontakt = Kontakt +Impressum = Impressum +Datenschutz = Datenschutz +xml = als XML-Feed +Vereinsheim = Vereinsheim +Elektrowerkstatt = Elektrowerkstatt +Grobwerkstatt = Grobwerkstatt +Lounge = Lounge +Presse = Presse +Wiki = Wiki +mitglied = Mitglied werden +Mitgliedschaft = Mitgliedschaft +Anfahrt = Anfahrt +fragen = Häufige Fragen +satzung = Satzung und Ordnung +spenden = Spenden +sprache = Language +German = Deutsch +Englisch = English +falls = if available +show_projekt = Alle Projekte +default_path = 'en' + +[en] +home = Home +Blog = Blog +Projekte = Projects +Verein = Club +Kalender = Calendar +Kontakt = Contact us +Impressum = Legal Notice +Datenschutz = Data Privacy Statement +xml = as XML feed +Vereinsheim = Club house +Elektrowerkstatt = Electrical workshop +Grobwerkstatt = Rough workshop +Lounge = Lounge +Presse = Press +Wiki = Wiki +mitglied = Become a member +Mitgliedschaft = Membership +Anfahrt = How to find us +fragen = Frequently Asked Questions +satzung = Statutes and Regulations +spenden = Donations +sprache = Language +German = Deutsch +Englisch = English +falls = if available +show_projekt = All Projects +default_path = '..' + diff --git a/databags/translate.ini b/databags/translate.ini index 8a0fd2e..1417f0f 100644 --- a/databags/translate.ini +++ b/databags/translate.ini @@ -1,49 +1,40 @@ -# Hier finden sich generische Übersetzungen -# Für die C3WOC Webseite +;; Hier gibt es die Übersetzungen für die Toolbox Webseite [de] -close = Schließen -news = Neuigkeiten -equipment = Equipment -waffledough = Waffelteig -sanitariness = Hygiene -participate = Mitmachen -imprint = Impressum -dataprotection = Datenschutz -c3woc = C3 Waffel Operation Center -destiny = Wir machen Waffeln -we = Wir -love = Waffeln, du auch? -whoami = 'Das C3WOC besteht aus Hackern aus dem Chaosumfeld. Nimm doch mal mit uns Kontakt auf und lass uns zusammen Waffeln machen!' -mail = waffel@c3woc.de -irc = irc.hackint.org/#waffel -webirc = webirc.hackint.org -twitter = @C3WOC -mastodon = @C3WOC@chaos.social -invite = Mach bei uns mit -created = Geschrieben von -read = Weiter lesen +description = Die Toolbox Bodensee e.V. ist ein gemeinnütziger Maker- und Hackspace in Markdorf am Bodensee! +api_url = /vereinsheim/ +api_source = Vereinsheim +api_open = geöffnet +api_closed = geschlossen +api_opening_time = Normalerweise mindestens jeden Donnerstag Abend ab 18 Uhr für jeden geöffnet. +api_open_text = Das Vereinsheim ist gerade offen. Komm gerne vorbei, solange wir noch da sind. +blog_von = Geschrieben von +blog_am = am +blog_weiter = weiterlesen +projekt_von = Von +projekt_am = am +projekt_start = gestartet +projekt_launch = Das Projekt wurde von +xmlfeed = Neues von der Toolbox +projectfeed = Projekte in der Toolbox +directytlink = Direktlink zum YouTube Video +directlink = Video speichern [en] -close = close -news = News -equipment = Equipment -waffledough = Waffledough -sanitariness = Sanitariness -participate = Participate -imprint = Imprint -dataprotection = Cyber Data Protection -c3woc = C3 Waffle Operation Center -destiny = We make waffles -we = We -love = waffles, you too? -whoami = The c3woc consists of hackers from the environment of the chaos computer club. Please contact us and let us craft some waffles together! -mail = waffle@c3woc.de -irc = irc.hackint.org/#waffel -webirc = webirc.hackint.org -twitter = @C3WOC -mastodon = @C3WOC@chaos.social -invite = Join us -created = Created by -read = Continue reading +description = The Toolbox Bodensee e.V. is a non-profit hackspace in Markdorf at Lake Constance! +api_url = /en/vereinsheim/ +api_space = Club house +api_open = open +api_closed = closed +api_opening_time = Typically open at least every Thursday evening from 18:00 for everyone. +api_open_text = Toolbox is open right now. Come over while we are still there! +blog_von = By +blog_am = on +blog_weiter = continue reading +projekt_von = Launched by +projekt_am = on +projekt_start = ' ' +projekt_launch = The project was launched by +directytlink = direct to youtube video +directlink = Download Video diff --git a/deployment/cssminify.py b/deployment/cssminify.py new file mode 100755 index 0000000..210294a --- /dev/null +++ b/deployment/cssminify.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +import sys, re + +def cssMinify(css, saveFileName): + # remove comments - this will break a lot of hacks :-P + css = re.sub( r'\s*/\*\s*\*/', "$$HACK1$$", css ) # preserve IE<6 comment hack + css = re.sub( r'/\*[\s\S]*?\*/', "", css ) + css = css.replace( "$$HACK1$$", '/**/' ) # preserve IE<6 comment hack + + # url() doesn't need quotes + css = re.sub( r'url\((["\'])([^)]*)\1\)', r'url(\2)', css ) + + # spaces may be safely collapsed as generated content will collapse them anyway + css = re.sub( r'\s+', ' ', css ) + + # shorten collapsable colors: #aabbcc to #abc + css = re.sub( r'#([0-9a-f])\1([0-9a-f])\2([0-9a-f])\3(\s|;)', r'#\1\2\3\4', css ) + + # fragment values can loose zeros + css = re.sub( r':\s*0(\.\d+([cm]m|e[mx]|in|p[ctx]))\s*;', r':\1;', css ) + + for rule in re.findall( r'([^{]+){([^}]*)}', css ): + + # we don't need spaces around operators + selectors = [re.sub( r'(?<=[\[\(>+=])\s+|\s+(?=[=~^$*|>+\]\)])', r'', selector.strip() ) for selector in rule[0].split( ',' )] + + # order is important, but we still want to discard repetitions + properties = {} + porder = [] + for prop in re.findall( '(.*?):(.*?)(;|$)', rule[1] ): + key = prop[0].strip().lower() + if key not in porder: porder.append( key ) + properties[ key ] = prop[1].strip() + + # output rule if it contains any declarations + if properties: + f = open(saveFileName,'a') + f.write( "%s{%s}" % ( ','.join( selectors ), ''.join(['%s:%s;' % (key, properties[key]) for key in porder])[:-1] ) ) + f.close() + +def fileMin(ifile): + returnVal = '' + ifSplit = ifile.split('.') + for n, filePart in enumerate(ifSplit): + if n == len(ifSplit)-1: + returnVal = returnVal + "min." + returnVal = returnVal + filePart + if n != len(ifSplit)-1: + returnVal =returnVal + "." + return returnVal + +css = "" +files = [] +saveFileName = "style.min.css" +flag = False +sepFlag = False +for n, i in enumerate(sys.argv): + if n == 0: + pass + elif i in ("-h", "--help"): + print("Add CSS files space separated to be combined and minified. \n \ + \t-h, --help \n \ + \t\tDisplay this help message. \n \ + \t-o, --output \n \ + \t\tDeclare name of output CSS file. \n \ + \t-s, --separate \n \ + \t\tOutput each individual file as min. i.e.: \n \ + \t\tstyle.css will become style.min.css") + break + elif i in ("-o", "--output"): + flag = True + elif i in ("-s", "--separate"): + sepFlag = True + elif flag: + saveFileName = i + flag = False + elif sepFlag: + files.append(i) + else: + css += open( i, 'r' ).read() + +if sepFlag: + for cssFile in files: + css = open(cssFile, 'r').read() + cssFile = fileMin(cssFile) + cssMinify(css, cssFile) +else: + cssMinify(css, saveFileName) diff --git a/flowblocks/press_table.ini b/flowblocks/press_table.ini new file mode 100644 index 0000000..f7507b6 --- /dev/null +++ b/flowblocks/press_table.ini @@ -0,0 +1,19 @@ +[block] +name = Text +button_label = [[font]] + +[fields.pub_date] +label = Publication date +type = date +width = 1/4 + +[fields.text] +label = Linkname +type = string +width = 3/4 + +[fields.link] +label = Link +type = url + + diff --git a/flowblocks/image.ini b/flowblocks/pro_img.ini similarity index 100% rename from flowblocks/image.ini rename to flowblocks/pro_img.ini diff --git a/flowblocks/pro_video.ini b/flowblocks/pro_video.ini new file mode 100644 index 0000000..194edc2 --- /dev/null +++ b/flowblocks/pro_video.ini @@ -0,0 +1,33 @@ +[block] +name = Video +button_label = [[Video]] + +# [fields.image] +# label = Bild (Preview) +# type = select +# source = record.attachments.images + +# [fields.video_480] +# label = Video (480p) +# type = select +# source = record.attachments.videos + +# [fields.video_480] +# label = Video (480p) +# type = select +# source = record.attachments.videos + +# [fields.video_720] +# label = Video (720p) +# type = select +# source = record.attachments.videos + +[fields.video] +label = Video +type = select +source = record.attachments.videos + +[fields.video_url] +label = Video ID (Youtube) +type = string + diff --git a/flowblocks/startpage_section.ini b/flowblocks/startpage_section.ini new file mode 100644 index 0000000..c77b4e9 --- /dev/null +++ b/flowblocks/startpage_section.ini @@ -0,0 +1,37 @@ +[block] +name = Abschnitt +button_label = Abschnitt + +[fields.type] +label = Typ +type = select +choices = left, right +choice_labels = Links, Rechts +width = 1/4 + +[fields.header] +label = Überschrift +type = string +width = 3/4 + +[fields.text] +label = Text +type = markdown + +[fields.text2] +label = Text (klein) +type = markdown + +[fields.url_text] +label = Linktext +type = string +width = 1/2 + +[fields.url] +label = Link +type = string +width = 1/2 + +[fields.background] +label = Hintergrundbild +type = string diff --git a/models/blog-post.ini b/models/blog-post.ini index fb03cf1..11eb588 100644 --- a/models/blog-post.ini +++ b/models/blog-post.ini @@ -8,13 +8,18 @@ label = Title type = string size = large +[fields.shorttitle] +label = Title (kurz fürs Menü) +type = string +size = small + [fields.author] label = Author type = string width = 1/2 [fields.twitter_handle] -label = Twitter Handle +label = Mastodon Handle (https://chaos.Social) type = string width = 1/4 addon_label = @ @@ -24,31 +29,37 @@ label = Publication date type = date width = 1/4 -[fields.subtitle] -label = Untertitle -type = string -size = large +[fields.body] +label = Teaser (Website) +type = markdown [fields.xml] -label = RSS-Preview (TXT) (de-only) +label = Teaser (RSS Feed) (TEXT Only) type = text +width = 2/3 [fields.xml_img] -label = RSS-Image (de-only) +label = RSS Feed Image type = select source = record.attachments.images +width = 1/3 -[fields.body] -label = Body +[fields.beitrag] +label = Blogbeitrag type = markdown -[fields.privatebody] -label = Non Public Body -type = markdown +[fields.video_embeded] +label = Video (embedded) +type = flow +flow_blocks = pro_video -[fields.galerie] +[fields.video_is_embeded] +label = Is a Video embeded? +type = boolean +default = false + +[fields.project] label = Galerie type = flow -flow_blocks = image -width = 1/2 +flow_blocks = pro_img diff --git a/models/blog.ini b/models/blog.ini index f685b37..5f93cad 100644 --- a/models/blog.ini +++ b/models/blog.ini @@ -4,13 +4,20 @@ label = Blog hidden = yes [fields.title] -label = Blog +label = Title type = string -name = Blog -[fields.sub_title] -label = Untertitel -type = html +[fields.description] +label = Description +type = markdown + +[fields.spruch] +label = Werbespruch +type = string + +[fields.link] +label = RSS Feed +type = string [children] model = blog-post @@ -18,4 +25,4 @@ order_by = -pub_date, title [pagination] enabled = yes -per_page = 7 +per_page = 10 diff --git a/models/kalender.ini b/models/kalender.ini new file mode 100644 index 0000000..bfc197c --- /dev/null +++ b/models/kalender.ini @@ -0,0 +1,45 @@ +[model] +name = Kalender +label = {{ this.title }} +protected = yes +hidden = yes + +;----------- + +[fields.title] +label = Titel +addon_label = [[header]] +size = large +type = string + +[fields.slogan] +label = Start-Slogan + +[fields.ics] +label = Beschriftung ICS Datei +width = 1/2 +type = string + +[fields.ics_url] +label = Link zur ICS Kalenderdatei +width = 1/2 +type = url + +[fields.web] +label = Beschriftung Kalender-Webansicht +width = 1/2 +type = string + +[fields.web_url] +label = Link zur Kalender-Webansicht +width = 1/2 +type = url + +[fields.kalender_id] +label = Nextcloud-Kalender-ID +type = string + +[fields.content] +label = Seiteninhalt +type = markdown + diff --git a/models/material.ini b/models/material.ini deleted file mode 100644 index 83dd813..0000000 --- a/models/material.ini +++ /dev/null @@ -1,19 +0,0 @@ -[model] -name = Material (material.html) -label = {{ this.title }} - -[fields.title] -label = Title -type = string - -[fields.spruch] -label = Spruch -type = markdown - -[fields.subtitle] -label = Subtitle -type = string - -[fields.body] -label = Body -type = markdown diff --git a/models/page.ini b/models/page.ini index ed6fe5b..bd7df8d 100644 --- a/models/page.ini +++ b/models/page.ini @@ -1,97 +1,21 @@ [model] -name = Home (page.html) +name = mormale Seite label = {{ this.title }} +protected = yes + +;------------------------------ [fields.title] -label = Title +label = Titel +addon_label = [[header]] +size = large type = string -#---------------------- - -[fields.as01h1] -label = Überschrift #1 +[fields.slogan] +label = Start-Slogan type = string -[fields.as01b1] -label = Body #1 +[fields.content] +label = Seiteninhalt type = markdown -[fields.as01l1] -label = Link #1 -type = string -width = 1/2 - -[fields.as01d1] -label = Description #1 -type = string -width = 1/2 - -[fields.as01img] -label = Bild #1 -> [276] x [276] -type = select -source = record.attachments.images - -#------------------------- - -[fields.as02h1] -label = Überschrift #2 -type = string - -[fields.as02b1] -label = Body #2 -type = markdown - -[fields.as02l1] -label = Link #2 -type = string -width = 1/2 - -[fields.as02d1] -label = Description #2 -type = string -width = 1/2 - -[fields.as02img] -label = Bild #2 -> [276] x [276] -type = select -source = record.attachments.images - -#----------------------- - -[fields.as03h1] -label = Überschrift #3 -type = string - -[fields.as03b1] -label = Body #3 -type = markdown - -[fields.as03l1] -label = Link #3 -type = string -width = 1/2 - -[fields.as03d1] -label = Description #3 -type = string -width = 1/2 - -[fields.as03img] -label = Bild #3 -> [276] x [276] -type = select -source = record.attachments.images - -#-------------------------- - -[fields.where] -label = Unten -type = markdown - -[fields.description] -label = Body -type = markdown - -[fields.tour] -label = Tourdaten -type = html - diff --git a/models/presse.ini b/models/presse.ini new file mode 100644 index 0000000..0426aa7 --- /dev/null +++ b/models/presse.ini @@ -0,0 +1,68 @@ +[model] +name = Linksammlung +label = {{ this.title }} +protected = yes + +;------------------------------ + +[fields.title] +label = Titel +addon_label = [[header]] +size = large +type = string + +[fields.slogan] +label = Start-Slogan +type = string + +[fields.p1] +label = Überschrift 1. Tabelle +type = string + +[fields.press_1] +label = 1. Tabelle +type = flow +flow_blocks = press_table + +[fields.p2] +label = Überschrift 2. Tabelle +type = string + +[fields.press_2] +label = 2. Tabelle +type = flow +flow_blocks = press_table + + +[fields.p3] +label = Überschrift 3. Tabelle +type = string + +[fields.press_3] +label = 3. Tabelle +type = flow +flow_blocks = press_table + +[fields.p4] +label = Überschrift 4. Tabelle +type = string + +[fields.press_4] +label = 4. Tabelle +type = flow +flow_blocks = press_table + + +[fields.p5] +label = Überschrift 5. Tabelle +type = string + +[fields.press_5] +label = 5. Tabelle +type = flow +flow_blocks = press_table + +[fields.content] +label = Seiteninhalt +type = markdown + diff --git a/models/projekt-post.ini b/models/projekt-post.ini new file mode 100644 index 0000000..a310624 --- /dev/null +++ b/models/projekt-post.ini @@ -0,0 +1,52 @@ +[model] +name = Einzelnes Projekt +label = {{ this.title }} +hidden = yes + +[fields.title] +label = Title (bitte kurz halten) +type = string +size = large + +[fields.icon] +label = Font-Awesome Icon [fas fa-heart] +type = string + +[fields.author] +label = Author +type = string +width = 1/2 + +[fields.pub_date] +label = Wann ist das Projekt entstanden? +type = date +width = 1/4 + +[fields.teaser] +label = Teaser (TEXT) +type = text + +[fields.body] +label = Projektseite (Markdown) +type = markdown + +[fields.video_embeded] +label = Video (embedded) +type = flow +flow_blocks = pro_video + +[fields.video_is_embeded] +label = Is a YT-Video embeded? +type = boolean +default = false + +[fields.project] +label = Galerie +type = flow +flow_blocks = pro_img + +[fields.xml_img] +label = RSS Feed Vorschaubild +type = select +source = record.attachments.images + diff --git a/models/projekte.ini b/models/projekte.ini new file mode 100644 index 0000000..025b5c6 --- /dev/null +++ b/models/projekte.ini @@ -0,0 +1,28 @@ +[model] +name = Projekte +label = Projekte +hidden = yes + +[fields.title] +label = Title +type = string + +[fields.description] +label = Description +type = markdown + +[fields.link] +label = RSS Feed +type = string + +[fields.abo] +label = Abonnieren +type = string + +[children] +model = projekt-post +order_by = -pub_date, title + +[pagination] +enabled = yes +per_page = 9999 diff --git a/models/site.ini b/models/site.ini deleted file mode 100644 index 6452dcf..0000000 --- a/models/site.ini +++ /dev/null @@ -1,19 +0,0 @@ -[model] -name = Seiten (site.html) -label = {{ this.title }} - -[fields.title] -label = Title -type = string - -[fields.spruch] -label = Spruch -type = markdown - -[fields.subtitle] -label = Subtitle -type = string - -[fields.body] -label = Body -type = markdown diff --git a/models/start.ini b/models/start.ini new file mode 100644 index 0000000..43427d8 --- /dev/null +++ b/models/start.ini @@ -0,0 +1,236 @@ +[model] +name = Startseite +label = {{ this.title }} +protected = yes + +;------------------------------ + +[fields.title] +label = Titel +addon_label = [[header]] +size = large +type = string + +[fields.slogan] +label = Start-Slogan +type = string + +[fields.hinweis] +label = Start-Hinweis +type = string + +[fields.hinweis_txt] +label = Start-Hinweis-Linktext +type = string + +[fields.hinweis_url] +label = Start-Hinweis-URL +type = string + +;------------------------------ + +[fields.about_header] +label = 1. Abschnitt: Überschrift +type = string + +[fields.about_background] +label = 1. Abschnitt: Pfad_Hintergrund +type = string +default = "/images/home/abschnitt1.jpeg" + +[fields.about_text] +label = 1. Abschnitt: Text 1/3 +type = markdown + +[fields.about_text2] +label = 1. Abschnitt: Text 2/3 +type = markdown + + +[fields.about_text3] +label = 1. Abschnitt: Text 3/3 +type = markdown + + +[fields.about_url] +label = 1. Abschnitt: Link-Text +type = string +choices = left +width = 1/2 + +[fields.about_url2] +label = 1. Abschnitt: Link +type = string +choices = right +width = 1/2 + + +[fields.sections] +label = Abschnitte +type = flow +flow_blocks = startpage_section + + +;----------------------------- + +[fields.icons_header] +label = 4. Abschnitt: Überschrift +type = string + +[fields.icons_text] +label = 4. Abschnitt: Text +type = markdown + +[fields.icons_1_1] +label = 1. Icon: Font Awesome +type = string +width = 1/3 + +[fields.icons_1_2] +label = 1. Icon: Überschrift +type = string +width = 2/3 + +[fields.icons_1_3] +label = 1. Icon: Beschreibung +type = markdown +width = 2/3 + +[fields.icons_1_url] +label = 1. Icon: URL +type = string +width = 1/3 + +[fields.icons_2_1] +label = 2. Icon: Font Awesome +type = string +width = 1/3 + +[fields.icons_2_2] +label = 2. Icon: Überschrifgt +type = string +width = 2/3 + +[fields.icons_2_3] +label = 2. Icon: Beschreibung +type = markdown +width = 2/3 + +[fields.icons_2_url] +label = 2. Icon: URL +type = string +width = 1/3 + +[fields.icons_3_1] +label = 3. Icon: Font Awesome +type = string +width = 1/3 + +[fields.icons_3_2] +label = 3. Icon: Überschrift +type = string +width = 2/3 + +[fields.icons_3_3] +label = 3. Icon: Beschreibung +type = markdown +width = 2/3 + +[fields.icons_3_url] +label = 3. Icon: URL +type = string +width = 1/3 + +[fields.icons_4_1] +label = 4. Icon: Font Awesome +type = string +width = 1/3 + +[fields.icons_4_2] +label = 4. Icon: Überschrift +type = string +width = 2/3 + +[fields.icons_4_3] +label = 4. Icon: Beschreibung +type = markdown +width = 2/3 + +[fields.icons_4_url] +label = 4. Icon: URL +type = string +width = 1/3 + +[fields.icons_5_1] +label = 5. Icon: Font Awesome +type = string +width = 1/3 + +[fields.icons_5_2] +label = 5. Icon: Überschrift +type = string +width = 2/3 + +[fields.icons_5_3] +label = 5. Icon: Beschreibung +type = markdown +width = 2/3 + +[fields.icons_5_url] +label = 5. Icon: URL +type = string +width = 1/3 + +[fields.icons_6_1] +label = 6. Icon: Font Awesome +type = string +width = 1/3 + +[fields.icons_6_2] +label = 6. Icon: Überschrift +type = string +width = 2/3 + +[fields.icons_6_3] +label = 6. Icon: Beschreibung +type = markdown +width = 2/3 + +[fields.icons_6_url] +label = 6. Icon: URL +type = string +width = 1/3 + +[fields.icons_url] +label = Icon: URL +type = string +width = 1/2 + +[fields.icons_txt] +label = Icon: URL Text +type = string +width = 1/2 + +;--------------------- + +[fields.red_1] +label = Letzter Abschnitt: Überschrift +type = string + +[fields.red_2] +label = Letzter Abschnitt: Beschreibung +type = markdown + + +[fields.red_3] +label = Letzter Abschnitt: klein +type = markdown + + +[fields.red_4] +label = Letzter Abschnitt: Groß +type = string + + + + diff --git a/models/vereinsheim.ini b/models/vereinsheim.ini new file mode 100644 index 0000000..2a4f280 --- /dev/null +++ b/models/vereinsheim.ini @@ -0,0 +1,30 @@ +[model] +name = Vereinsheim mit Karte +label = {{ this.title }} +protected = yes + +;------------------------------ + +[fields.title] +label = Titel +addon_label = [[header]] +size = large +type = string + +[fields.slogan] +label = Start-Slogan +type = string + +[fields.precontent] +label = Seiteninhalt vor der Map +type = markdown + +[fields.content] +label = Seiteninhalt nach der Map +type = markdown + +[fields.project] +label = Galerie +type = flow +flow_blocks = pro_img + diff --git a/style.min.css b/style.min.css new file mode 100644 index 0000000..9e1ac2f --- /dev/null +++ b/style.min.css @@ -0,0 +1 @@ +@import url(../css/font-awesome.min.css);@import url(../fonts/roboto.css);@import url(https://toolbox-bodensee.de/css/spacestatus.css);*,.row,::after,::before{-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.row.\30 \25>*,.row.uniform.\30 \25>*{padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,pre code,section{display:block}.col-2,.col-3,.col-4,.col-5{column-gap:1vw}#scroll-1{background-image:url(../images/home/abschnitt1.jpeg)}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font:inherit;vertical-align:baseline}blockquote,em,i{font-style:italic}blockquote,q{quotes:none}blockquote::after,blockquote::before,q::after,q::before{content:'';content:none}body{-webkit-text-size-adjust:none}*,::after,::before{box-sizing:border-box}.container.\31 25\25{width:100%;max-width:87.5em;min-width:70em}.container.\37 5\25{width:52.5em}.container.\35 0\25{width:35em}.container.\32 5\25{width:17.5em}.container{margin-left:auto;margin-right:auto;width:70em}@media screen and (max-width:1680px){.container.\31 25\25{width:100%;max-width:87.5em;min-width:70em}.container.\37 5\25{width:52.5em}.container.\35 0\25{width:35em}.container.\32 5\25{width:17.5em}.container{width:70em}}@media screen and (max-width:1280px){.container.\31 25\25{width:100%;max-width:112.5%;min-width:90%}.container.\37 5\25{width:67.5%}.container.\35 0\25{width:45%}.container.\32 5\25{width:22.5%}.container{width:90%}}@media screen and (max-width:980px){.container.\31 25\25{width:100%;max-width:125%;min-width:100%}.container.\37 5\25{width:75%}.container.\35 0\25{width:50%}.container.\32 5\25{width:25%}.container{width:100%!important}}@media screen and (max-width:933px){.container.\31 25\25{width:100%;max-width:125%;min-width:100%}.container.\37 5\25{width:75%}.container.\35 0\25{width:50%}.container.\32 5\25{width:25%}.container{width:100%!important}}@media screen and (max-width:480px){.container.\31 25\25{width:100%;max-width:125%;min-width:100%}.container.\37 5\25{width:75%}.container.\35 0\25{width:50%}.container.\32 5\25{width:25%}.container{width:100%!important}}.row{border-bottom:solid 1px transparent;box-sizing:border-box}.row::after,.row::before{content:'';display:block;clear:both;height:0}.row.uniform>*>:first-child{margin-top:0}.row.uniform>*>:last-child{margin-bottom:0}.row.\30 \25,.row.uniform.\30 \25{margin:0 0 -1px}.row>*{float:left;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 0 0 2.5em}.row{margin:0 0 -1px -2.5em}.row.uniform>*{padding:2.5em 0 0 2.5em}.row.uniform{margin:-2.5em 0 -1px -2.5em}.row.\32 00\25>*{padding:0 0 0 5em}.row.\32 00\25{margin:0 0 -1px -5em}.row.uniform.\32 00\25>*{padding:5em 0 0 5em}.row.uniform.\32 00\25{margin:-5em 0 -1px -5em}.row.\31 50\25>*{padding:0 0 0 3.75em}.row.\31 50\25{margin:0 0 -1px -3.75em}.row.uniform.\31 50\25>*{padding:3.75em 0 0 3.75em}.row.uniform.\31 50\25{margin:-3.75em 0 -1px -3.75em}.row.\35 0\25>*{padding:0 0 0 1.25em}.row.\35 0\25{margin:0 0 -1px -1.25em}.row.uniform.\35 0\25>*{padding:1.25em 0 0 1.25em}.row.uniform.\35 0\25{margin:-1.25em 0 -1px -1.25em}.row.\32 5\25>*{padding:0 0 0 .625em}.row.\32 5\25{margin:0 0 -1px -.625em}.row.uniform.\32 5\25>*{padding:.625em 0 0 .625em}.row.uniform.\32 5\25{margin:-.625em 0 -1px -.625em}.\31 0u,.\31 0u\24,.\31 1u,.\31 1u\24,.\31 2u,.\31 2u\24,.\31 u,.\31 u\24,.\32 u,.\32 u\24,.\33 u,.\33 u\24,.\34 u,.\34 u\24,.\35 u,.\35 u\24,.\36 u,.\36 u\24,.\38 u,.\38 u\24,.\39 u,.\39 u\24{clear:none;margin-left:0}.\31 2u,.\31 2u\24{width:100%}.\31 1u,.\31 1u\24{width:91.6666666667%}.\31 0u,.\31 0u\24{width:83.3333333333%}.\39 u,.\39 u\24{width:75%}.\38 u,.\38 u\24{width:66.6666666667%}.\37 u,.\37 u\24{width:58.3333333333%;clear:none;margin-left:0}.\36 u,.\36 u\24{width:50%}.\35 u,.\35 u\24{width:41.6666666667%}.\34 u,.\34 u\24{width:33.3333333333%}.\33 u,.\33 u\24{width:25%}.\32 u,.\32 u\24{width:16.6666666667%}.\31 u,.\31 u\24{width:8.3333333333%}.\31 0u\24 *,.\31 1u\24 *,.\31 2u\24 *,.\31 u\24 *,.\32 u\24 *,.\33 u\24 *,.\34 u\24 *,.\35 u\24 *,.\36 u\24 *,.\37 u\24 *,.\38 u\24 *,.\39 u\24 *{clear:left}.\-11u{margin-left:91.6666666667%}.\-10u{margin-left:83.3333333333%}.\-9u{margin-left:75%}.\-8u{margin-left:66.6666666667%}.\-7u{margin-left:58.3333333333%}.\-6u{margin-left:50%}.\-5u{margin-left:41.6666666667%}.\-4u{margin-left:33.3333333333%}.\-3u{margin-left:25%}.\-2u{margin-left:16.6666666667%}.\-1u{margin-left:8.3333333333%}@media screen and (max-width:1680px){.row>*{padding:0 0 0 2.5em}.row{margin:0 0 -1px -2.5em}.row.uniform>*{padding:2.5em 0 0 2.5em}.row.uniform{margin:-2.5em 0 -1px -2.5em}.row.\32 00\25>*{padding:0 0 0 5em}.row.\32 00\25{margin:0 0 -1px -5em}.row.uniform.\32 00\25>*{padding:5em 0 0 5em}.row.uniform.\32 00\25{margin:-5em 0 -1px -5em}.row.\31 50\25>*{padding:0 0 0 3.75em}.row.\31 50\25{margin:0 0 -1px -3.75em}.row.uniform.\31 50\25>*{padding:3.75em 0 0 3.75em}.row.uniform.\31 50\25{margin:-3.75em 0 -1px -3.75em}.row.\35 0\25>*{padding:0 0 0 1.25em}.row.\35 0\25{margin:0 0 -1px -1.25em}.row.uniform.\35 0\25>*{padding:1.25em 0 0 1.25em}.row.uniform.\35 0\25{margin:-1.25em 0 -1px -1.25em}.row.\32 5\25>*{padding:0 0 0 .625em}.row.\32 5\25{margin:0 0 -1px -.625em}.row.uniform.\32 5\25>*{padding:.625em 0 0 .625em}.row.uniform.\32 5\25{margin:-.625em 0 -1px -.625em}.\31 2u\24\28xlarge\29,.\31 2u\28xlarge\29{width:100%;clear:none;margin-left:0}.\31 1u\24\28xlarge\29,.\31 1u\28xlarge\29{width:91.6666666667%;clear:none;margin-left:0}.\31 0u\24\28xlarge\29,.\31 0u\28xlarge\29{width:83.3333333333%;clear:none;margin-left:0}.\39 u\24\28xlarge\29,.\39 u\28xlarge\29{width:75%;clear:none;margin-left:0}.\38 u\24\28xlarge\29,.\38 u\28xlarge\29{width:66.6666666667%;clear:none;margin-left:0}.\37 u\24\28xlarge\29,.\37 u\28xlarge\29{width:58.3333333333%;clear:none;margin-left:0}.\36 u\24\28xlarge\29,.\36 u\28xlarge\29{width:50%;clear:none;margin-left:0}.\35 u\24\28xlarge\29,.\35 u\28xlarge\29{width:41.6666666667%;clear:none;margin-left:0}.\34 u\24\28xlarge\29,.\34 u\28xlarge\29{width:33.3333333333%;clear:none;margin-left:0}.\33 u\24\28xlarge\29,.\33 u\28xlarge\29{width:25%;clear:none;margin-left:0}.\32 u\24\28xlarge\29,.\32 u\28xlarge\29{width:16.6666666667%;clear:none;margin-left:0}.\31 u\24\28xlarge\29,.\31 u\28xlarge\29{width:8.3333333333%;clear:none;margin-left:0}.\31 0u\24\28xlarge\29 *,.\31 1u\24\28xlarge\29 *,.\31 2u\24\28xlarge\29 *,.\31 u\24\28xlarge\29 *,.\32 u\24\28xlarge\29 *,.\33 u\24\28xlarge\29 *,.\34 u\24\28xlarge\29 *,.\35 u\24\28xlarge\29 *,.\36 u\24\28xlarge\29 *,.\37 u\24\28xlarge\29 *,.\38 u\24\28xlarge\29 *,.\39 u\24\28xlarge\29 *{clear:left}.\-11u\28xlarge\29{margin-left:91.6666666667%}.\-10u\28xlarge\29{margin-left:83.3333333333%}.\-9u\28xlarge\29{margin-left:75%}.\-8u\28xlarge\29{margin-left:66.6666666667%}.\-7u\28xlarge\29{margin-left:58.3333333333%}.\-6u\28xlarge\29{margin-left:50%}.\-5u\28xlarge\29{margin-left:41.6666666667%}.\-4u\28xlarge\29{margin-left:33.3333333333%}.\-3u\28xlarge\29{margin-left:25%}.\-2u\28xlarge\29{margin-left:16.6666666667%}.\-1u\28xlarge\29{margin-left:8.3333333333%}}@media screen and (max-width:1280px){.row>*{padding:0 0 0 2.5em}.row{margin:0 0 -1px -2.5em}.row.uniform>*{padding:2.5em 0 0 2.5em}.row.uniform{margin:-2.5em 0 -1px -2.5em}.row.\32 00\25>*{padding:0 0 0 5em}.row.\32 00\25{margin:0 0 -1px -5em}.row.uniform.\32 00\25>*{padding:5em 0 0 5em}.row.uniform.\32 00\25{margin:-5em 0 -1px -5em}.row.\31 50\25>*{padding:0 0 0 3.75em}.row.\31 50\25{margin:0 0 -1px -3.75em}.row.uniform.\31 50\25>*{padding:3.75em 0 0 3.75em}.row.uniform.\31 50\25{margin:-3.75em 0 -1px -3.75em}.row.\35 0\25>*{padding:0 0 0 1.25em}.row.\35 0\25{margin:0 0 -1px -1.25em}.row.uniform.\35 0\25>*{padding:1.25em 0 0 1.25em}.row.uniform.\35 0\25{margin:-1.25em 0 -1px -1.25em}.row.\32 5\25>*{padding:0 0 0 .625em}.row.\32 5\25{margin:0 0 -1px -.625em}.row.uniform.\32 5\25>*{padding:.625em 0 0 .625em}.row.uniform.\32 5\25{margin:-.625em 0 -1px -.625em}.\31 2u\24\28large\29,.\31 2u\28large\29{width:100%;clear:none;margin-left:0}.\31 1u\24\28large\29,.\31 1u\28large\29{width:91.6666666667%;clear:none;margin-left:0}.\31 0u\24\28large\29,.\31 0u\28large\29{width:83.3333333333%;clear:none;margin-left:0}.\39 u\24\28large\29,.\39 u\28large\29{width:75%;clear:none;margin-left:0}.\38 u\24\28large\29,.\38 u\28large\29{width:66.6666666667%;clear:none;margin-left:0}.\37 u\24\28large\29,.\37 u\28large\29{width:58.3333333333%;clear:none;margin-left:0}.\36 u\24\28large\29,.\36 u\28large\29{width:50%;clear:none;margin-left:0}.\35 u\24\28large\29,.\35 u\28large\29{width:41.6666666667%;clear:none;margin-left:0}.\34 u\24\28large\29,.\34 u\28large\29{width:33.3333333333%;clear:none;margin-left:0}.\33 u\24\28large\29,.\33 u\28large\29{width:25%;clear:none;margin-left:0}.\32 u\24\28large\29,.\32 u\28large\29{width:16.6666666667%;clear:none;margin-left:0}.\31 u\24\28large\29,.\31 u\28large\29{width:8.3333333333%;clear:none;margin-left:0}.\31 0u\24\28large\29 *,.\31 1u\24\28large\29 *,.\31 2u\24\28large\29 *,.\31 u\24\28large\29 *,.\32 u\24\28large\29 *,.\33 u\24\28large\29 *,.\34 u\24\28large\29 *,.\35 u\24\28large\29 *,.\36 u\24\28large\29 *,.\37 u\24\28large\29 *,.\38 u\24\28large\29 *,.\39 u\24\28large\29 *{clear:left}.\-11u\28large\29{margin-left:91.6666666667%}.\-10u\28large\29{margin-left:83.3333333333%}.\-9u\28large\29{margin-left:75%}.\-8u\28large\29{margin-left:66.6666666667%}.\-7u\28large\29{margin-left:58.3333333333%}.\-6u\28large\29{margin-left:50%}.\-5u\28large\29{margin-left:41.6666666667%}.\-4u\28large\29{margin-left:33.3333333333%}.\-3u\28large\29{margin-left:25%}.\-2u\28large\29{margin-left:16.6666666667%}.\-1u\28large\29{margin-left:8.3333333333%}}@media screen and (max-width:980px){.row>*{padding:0 0 0 2.5em}.row{margin:0 0 -1px -2.5em}.row.uniform>*{padding:2.5em 0 0 2.5em}.row.uniform{margin:-2.5em 0 -1px -2.5em}.row.\32 00\25>*{padding:0 0 0 5em}.row.\32 00\25{margin:0 0 -1px -5em}.row.uniform.\32 00\25>*{padding:5em 0 0 5em}.row.uniform.\32 00\25{margin:-5em 0 -1px -5em}.row.\31 50\25>*{padding:0 0 0 3.75em}.row.\31 50\25{margin:0 0 -1px -3.75em}.row.uniform.\31 50\25>*{padding:3.75em 0 0 3.75em}.row.uniform.\31 50\25{margin:-3.75em 0 -1px -3.75em}.row.\35 0\25>*{padding:0 0 0 1.25em}.row.\35 0\25{margin:0 0 -1px -1.25em}.row.uniform.\35 0\25>*{padding:1.25em 0 0 1.25em}.row.uniform.\35 0\25{margin:-1.25em 0 -1px -1.25em}.row.\32 5\25>*{padding:0 0 0 .625em}.row.\32 5\25{margin:0 0 -1px -.625em}.row.uniform.\32 5\25>*{padding:.625em 0 0 .625em}.row.uniform.\32 5\25{margin:-.625em 0 -1px -.625em}.\31 2u\24\28medium\29,.\31 2u\28medium\29{width:100%;clear:none;margin-left:0}.\31 1u\24\28medium\29,.\31 1u\28medium\29{width:91.6666666667%;clear:none;margin-left:0}.\31 0u\24\28medium\29,.\31 0u\28medium\29{width:83.3333333333%;clear:none;margin-left:0}.\39 u\24\28medium\29,.\39 u\28medium\29{width:75%;clear:none;margin-left:0}.\38 u\24\28medium\29,.\38 u\28medium\29{width:66.6666666667%;clear:none;margin-left:0}.\37 u\24\28medium\29,.\37 u\28medium\29{width:58.3333333333%;clear:none;margin-left:0}.\36 u\24\28medium\29,.\36 u\28medium\29{width:50%;clear:none;margin-left:0}.\35 u\24\28medium\29,.\35 u\28medium\29{width:41.6666666667%;clear:none;margin-left:0}.\34 u\24\28medium\29,.\34 u\28medium\29{width:33.3333333333%;clear:none;margin-left:0}.\33 u\24\28medium\29,.\33 u\28medium\29{width:25%;clear:none;margin-left:0}.\32 u\24\28medium\29,.\32 u\28medium\29{width:16.6666666667%;clear:none;margin-left:0}.\31 u\24\28medium\29,.\31 u\28medium\29{width:8.3333333333%;clear:none;margin-left:0}.\31 0u\24\28medium\29 *,.\31 1u\24\28medium\29 *,.\31 2u\24\28medium\29 *,.\31 u\24\28medium\29 *,.\32 u\24\28medium\29 *,.\33 u\24\28medium\29 *,.\34 u\24\28medium\29 *,.\35 u\24\28medium\29 *,.\36 u\24\28medium\29 *,.\37 u\24\28medium\29 *,.\38 u\24\28medium\29 *,.\39 u\24\28medium\29 *{clear:left}.\-11u\28medium\29{margin-left:91.6666666667%}.\-10u\28medium\29{margin-left:83.3333333333%}.\-9u\28medium\29{margin-left:75%}.\-8u\28medium\29{margin-left:66.6666666667%}.\-7u\28medium\29{margin-left:58.3333333333%}.\-6u\28medium\29{margin-left:50%}.\-5u\28medium\29{margin-left:41.6666666667%}.\-4u\28medium\29{margin-left:33.3333333333%}.\-3u\28medium\29{margin-left:25%}.\-2u\28medium\29{margin-left:16.6666666667%}.\-1u\28medium\29{margin-left:8.3333333333%}}@media screen and (max-width:933px){.row>*{padding:0 0 0 2.5em}.row{margin:0 0 -1px -2.5em}.row.uniform>*{padding:2.5em 0 0 2.5em}.row.uniform{margin:-2.5em 0 -1px -2.5em}.row.\32 00\25>*{padding:0 0 0 5em}.row.\32 00\25{margin:0 0 -1px -5em}.row.uniform.\32 00\25>*{padding:5em 0 0 5em}.row.uniform.\32 00\25{margin:-5em 0 -1px -5em}.row.\31 50\25>*{padding:0 0 0 3.75em}.row.\31 50\25{margin:0 0 -1px -3.75em}.row.uniform.\31 50\25>*{padding:3.75em 0 0 3.75em}.row.uniform.\31 50\25{margin:-3.75em 0 -1px -3.75em}.row.\35 0\25>*{padding:0 0 0 1.25em}.row.\35 0\25{margin:0 0 -1px -1.25em}.row.uniform.\35 0\25>*{padding:1.25em 0 0 1.25em}.row.uniform.\35 0\25{margin:-1.25em 0 -1px -1.25em}.row.\32 5\25>*{padding:0 0 0 .625em}.row.\32 5\25{margin:0 0 -1px -.625em}.row.uniform.\32 5\25>*{padding:.625em 0 0 .625em}.row.uniform.\32 5\25{margin:-.625em 0 -1px -.625em}.\31 2u\24\28small\29,.\31 2u\28small\29{width:100%;clear:none;margin-left:0}.\31 1u\24\28small\29,.\31 1u\28small\29{width:91.6666666667%;clear:none;margin-left:0}.\31 0u\24\28small\29,.\31 0u\28small\29{width:83.3333333333%;clear:none;margin-left:0}.\39 u\24\28small\29,.\39 u\28small\29{width:75%;clear:none;margin-left:0}.\38 u\24\28small\29,.\38 u\28small\29{width:66.6666666667%;clear:none;margin-left:0}.\37 u\24\28small\29,.\37 u\28small\29{width:58.3333333333%;clear:none;margin-left:0}.\36 u\24\28small\29,.\36 u\28small\29{width:50%;clear:none;margin-left:0}.\35 u\24\28small\29,.\35 u\28small\29{width:41.6666666667%;clear:none;margin-left:0}.\34 u\24\28small\29,.\34 u\28small\29{width:33.3333333333%;clear:none;margin-left:0}.\33 u\24\28small\29,.\33 u\28small\29{width:25%;clear:none;margin-left:0}.\32 u\24\28small\29,.\32 u\28small\29{width:16.6666666667%;clear:none;margin-left:0}.\31 u\24\28small\29,.\31 u\28small\29{width:8.3333333333%;clear:none;margin-left:0}.\31 0u\24\28small\29 *,.\31 1u\24\28small\29 *,.\31 2u\24\28small\29 *,.\31 u\24\28small\29 *,.\32 u\24\28small\29 *,.\33 u\24\28small\29 *,.\34 u\24\28small\29 *,.\35 u\24\28small\29 *,.\36 u\24\28small\29 *,.\37 u\24\28small\29 *,.\38 u\24\28small\29 *,.\39 u\24\28small\29 *{clear:left}.\-11u\28small\29{margin-left:91.6666666667%}.\-10u\28small\29{margin-left:83.3333333333%}.\-9u\28small\29{margin-left:75%}.\-8u\28small\29{margin-left:66.6666666667%}.\-7u\28small\29{margin-left:58.3333333333%}.\-6u\28small\29{margin-left:50%}.\-5u\28small\29{margin-left:41.6666666667%}.\-4u\28small\29{margin-left:33.3333333333%}.\-3u\28small\29{margin-left:25%}.\-2u\28small\29{margin-left:16.6666666667%}.\-1u\28small\29{margin-left:8.3333333333%}}@media screen and (max-width:480px){.row>*{padding:0 0 0 2.5em}.row{margin:0 0 -1px -2.5em}.row.uniform>*{padding:2.5em 0 0 2.5em}.row.uniform{margin:-2.5em 0 -1px -2.5em}.row.\32 00\25>*{padding:0 0 0 5em}.row.\32 00\25{margin:0 0 -1px -5em}.row.uniform.\32 00\25>*{padding:5em 0 0 5em}.row.uniform.\32 00\25{margin:-5em 0 -1px -5em}.row.\31 50\25>*{padding:0 0 0 3.75em}.row.\31 50\25{margin:0 0 -1px -3.75em}.row.uniform.\31 50\25>*{padding:3.75em 0 0 3.75em}.row.uniform.\31 50\25{margin:-3.75em 0 -1px -3.75em}.row.\35 0\25>*{padding:0 0 0 1.25em}.row.\35 0\25{margin:0 0 -1px -1.25em}.row.uniform.\35 0\25>*{padding:1.25em 0 0 1.25em}.row.uniform.\35 0\25{margin:-1.25em 0 -1px -1.25em}.row.\32 5\25>*{padding:0 0 0 .625em}.row.\32 5\25{margin:0 0 -1px -.625em}.row.uniform.\32 5\25>*{padding:.625em 0 0 .625em}.row.uniform.\32 5\25{margin:-.625em 0 -1px -.625em}.\31 2u\24\28xsmall\29,.\31 2u\28xsmall\29{width:100%;clear:none;margin-left:0}.\31 1u\24\28xsmall\29,.\31 1u\28xsmall\29{width:91.6666666667%;clear:none;margin-left:0}.\31 0u\24\28xsmall\29,.\31 0u\28xsmall\29{width:83.3333333333%;clear:none;margin-left:0}.\39 u\24\28xsmall\29,.\39 u\28xsmall\29{width:75%;clear:none;margin-left:0}.\38 u\24\28xsmall\29,.\38 u\28xsmall\29{width:66.6666666667%;clear:none;margin-left:0}.\37 u\24\28xsmall\29,.\37 u\28xsmall\29{width:58.3333333333%;clear:none;margin-left:0}.\36 u\24\28xsmall\29,.\36 u\28xsmall\29{width:50%;clear:none;margin-left:0}.\35 u\24\28xsmall\29,.\35 u\28xsmall\29{width:41.6666666667%;clear:none;margin-left:0}.\34 u\24\28xsmall\29,.\34 u\28xsmall\29{width:33.3333333333%;clear:none;margin-left:0}.\33 u\24\28xsmall\29,.\33 u\28xsmall\29{width:25%;clear:none;margin-left:0}.\32 u\24\28xsmall\29,.\32 u\28xsmall\29{width:16.6666666667%;clear:none;margin-left:0}.\31 u\24\28xsmall\29,.\31 u\28xsmall\29{width:8.3333333333%;clear:none;margin-left:0}.\31 0u\24\28xsmall\29 *,.\31 1u\24\28xsmall\29 *,.\31 2u\24\28xsmall\29 *,.\31 u\24\28xsmall\29 *,.\32 u\24\28xsmall\29 *,.\33 u\24\28xsmall\29 *,.\34 u\24\28xsmall\29 *,.\35 u\24\28xsmall\29 *,.\36 u\24\28xsmall\29 *,.\37 u\24\28xsmall\29 *,.\38 u\24\28xsmall\29 *,.\39 u\24\28xsmall\29 *{clear:left}.\-11u\28xsmall\29{margin-left:91.6666666667%}.\-10u\28xsmall\29{margin-left:83.3333333333%}.\-9u\28xsmall\29{margin-left:75%}.\-8u\28xsmall\29{margin-left:66.6666666667%}.\-7u\28xsmall\29{margin-left:58.3333333333%}.\-6u\28xsmall\29{margin-left:50%}.\-5u\28xsmall\29{margin-left:41.6666666667%}.\-4u\28xsmall\29{margin-left:33.3333333333%}.\-3u\28xsmall\29{margin-left:25%}.\-2u\28xsmall\29{margin-left:16.6666666667%}.\-1u\28xsmall\29{margin-left:8.3333333333%}}body,html{background:#1c1d26}body.is-loading *,body.is-loading ::after,body.is-loading ::before{-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:rgba(255,255,255,.75);font-family:Roboto,Helvetica,sans-serif;font-size:15pt;font-weight:300;line-height:1.75em}b,h1,h2,h3,h4,h5,h6,strong{color:#fff;font-weight:400}@media (max-width:1680px){body,input,select,textarea{font-size:13pt}}@media (max-width:1280px){body,input,select,textarea{font-size:12pt}}@media (max-width:980px){body,input,select,textarea{font-size:12pt}}@media (max-width:933px){body,html{overflow-x:hidden}body.navPanel-visible #page-wrapper,body.navPanel-visible #titleBar{-moz-transform:translateX(275px);-webkit-transform:translateX(275px);-ms-transform:translateX(275px);transform:translateX(275px)}body.navPanel-visible #navPanel{-moz-transform:translateX(0);-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}body,input,select,textarea{font-size:12pt}}@media (max-width:480px){body,html{min-width:320px}body,input,select,textarea{font-size:12pt}}a{-moz-transition:border-color .2s ease-in-out,color .2s ease-in-out;-webkit-transition:border-color .2s ease-in-out,color .2s ease-in-out;-ms-transition:border-color .2s ease-in-out,color .2s ease-in-out;transition:border-color .2s ease-in-out,color .2s ease-in-out;color:rgba(200,200,255,.75);text-decoration:none}a:hover{color:#E64F2D!important;border-bottom-color:transparent}p{margin:0 0 2em}h1,h2,h3,h4,h5,h6{line-height:1em;margin:0 0 1em}h2,h3,h4,h5,h6{line-height:1.5em}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit;border:0}h2{font-size:2em;letter-spacing:-.025em}@media (max-width:933px){h2{font-size:1.5em}}h3{font-size:1.35em}@media (max-width:933px){h3{font-size:1.2em}}h4{font-size:1.1em}@media (max-width:933px){h4{font-size:1em}}h5{font-size:.9em}h6{font-size:.7em}sub,sup{font-size:.8em;position:relative}sub{top:.5em}sup{top:-.5em}code,pre{font-family:"Courier New",monospace;font-size:.9em}hr{border:0;border-bottom:solid 1px rgba(255,255,255,.3);margin:3em 0}hr.major{margin:4em 0}blockquote,pre{margin:0 0 2em}blockquote{border-left:solid 4px rgba(255,255,255,.3);padding:.5em 0 .5em 2em}#footer .icons .icon.alt:before,.icon.alt:before,.icon.major.alt:before,.icon:before,.select-wrapper:before,body.landing:before,input[type=radio] label:before,input[type=checkbox] label:before{font-style:normal;font-variant:normal;text-rendering:auto;-webkit-font-smoothing:antialiased;text-transform:none!important}code{background:rgba(255,255,255,.075);border-radius:4px;margin:0 .25em;padding:.25em .65em}pre{-webkit-overflow-scrolling:touch}pre code{line-height:1.75em;padding:1em 1.5em;overflow-x:auto}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}.icon.major,.select-wrapper::before,article.special,body.landing::before,header.major,section.special{text-align:center}@-moz-keyframes spinner-show{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes spinner-show{0%{opacity:0}100%{opacity:1}}@-ms-keyframes spinner-show{0%{opacity:0}100%{opacity:1}}@keyframes spinner-show{0%{opacity:0}100%{opacity:1}}@-moz-keyframes spinner-hide{0%{color:rgba(255,255,255,.15);z-index:100001;-moz-transform:scale(1) rotate(0);-webkit-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}99%{color:#1c1d26;z-index:100001;-moz-transform:scale(.5) rotate(360deg);-webkit-transform:scale(.5) rotate(360deg);-ms-transform:scale(.5) rotate(360deg);transform:scale(.5) rotate(360deg)}100%{color:#1c1d26;z-index:-1;-moz-transform:scale(.5) rotate(360deg);-webkit-transform:scale(.5) rotate(360deg);-ms-transform:scale(.5) rotate(360deg);transform:scale(.5) rotate(360deg)}}@-webkit-keyframes spinner-hide{0%{color:rgba(255,255,255,.15);z-index:100001;-moz-transform:scale(1) rotate(0);-webkit-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}99%{color:#1c1d26;z-index:100001;-moz-transform:scale(.5) rotate(360deg);-webkit-transform:scale(.5) rotate(360deg);-ms-transform:scale(.5) rotate(360deg);transform:scale(.5) rotate(360deg)}100%{color:#1c1d26;z-index:-1;-moz-transform:scale(.5) rotate(360deg);-webkit-transform:scale(.5) rotate(360deg);-ms-transform:scale(.5) rotate(360deg);transform:scale(.5) rotate(360deg)}}@-ms-keyframes spinner-hide{0%,99%{z-index:100001}100%,99%{color:#1c1d26}0%{color:rgba(255,255,255,.15);-moz-transform:scale(1) rotate(0);-webkit-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}99%{-moz-transform:scale(.5) rotate(360deg);-webkit-transform:scale(.5) rotate(360deg);-ms-transform:scale(.5) rotate(360deg);transform:scale(.5) rotate(360deg)}100%{z-index:-1;-moz-transform:scale(.5) rotate(360deg);-webkit-transform:scale(.5) rotate(360deg);-ms-transform:scale(.5) rotate(360deg);transform:scale(.5) rotate(360deg)}}@keyframes spinner-hide{0%{color:rgba(255,255,255,.15);z-index:100001;-moz-transform:scale(1) rotate(0);-webkit-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}99%{color:#1c1d26;z-index:100001;-moz-transform:scale(.5) rotate(360deg);-webkit-transform:scale(.5) rotate(360deg);-ms-transform:scale(.5) rotate(360deg);transform:scale(.5) rotate(360deg)}100%{color:#1c1d26;z-index:-1;-moz-transform:scale(.5) rotate(360deg);-webkit-transform:scale(.5) rotate(360deg);-ms-transform:scale(.5) rotate(360deg);transform:scale(.5) rotate(360deg)}}@-moz-keyframes spinner-rotate{0%{-moz-transform:scale(1) rotate(0);-webkit-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}100%{-moz-transform:scale(1) rotate(360deg);-webkit-transform:scale(1) rotate(360deg);-ms-transform:scale(1) rotate(360deg);transform:scale(1) rotate(360deg)}}@-webkit-keyframes spinner-rotate{0%{-moz-transform:scale(1) rotate(0);-webkit-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}100%{-moz-transform:scale(1) rotate(360deg);-webkit-transform:scale(1) rotate(360deg);-ms-transform:scale(1) rotate(360deg);transform:scale(1) rotate(360deg)}}@-ms-keyframes spinner-rotate{0%{-moz-transform:scale(1) rotate(0);-webkit-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}100%{-moz-transform:scale(1) rotate(360deg);-webkit-transform:scale(1) rotate(360deg);-ms-transform:scale(1) rotate(360deg);transform:scale(1) rotate(360deg)}}@keyframes spinner-rotate{0%{-moz-transform:scale(1) rotate(0);-webkit-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}100%{-moz-transform:scale(1) rotate(360deg);-webkit-transform:scale(1) rotate(360deg);-ms-transform:scale(1) rotate(360deg);transform:scale(1) rotate(360deg)}}@-moz-keyframes overlay-hide{0%,15%{opacity:1;z-index:100000}99%{opacity:0;z-index:100000}100%{opacity:0;z-index:-1}}@-webkit-keyframes overlay-hide{0%,15%{opacity:1;z-index:100000}99%{opacity:0;z-index:100000}100%{opacity:0;z-index:-1}}@-ms-keyframes overlay-hide{0%,15%,99%{z-index:100000}100%,99%{opacity:0}0%,15%{opacity:1}100%{z-index:-1}}@keyframes overlay-hide{0%,15%{opacity:1;z-index:100000}99%{opacity:0;z-index:100000}100%{opacity:0;z-index:-1}}body.landing{text-decoration:none}body.landing:before{display:inline-block}body.landing::after,body.landing::before{display:block;opacity:0;z-index:-1;position:fixed}body.landing::before{-moz-animation:spinner-show 1.5s 1 .25s ease forwards,spinner-hide .25s ease-in-out forwards!important;-webkit-animation:spinner-show 1.5s 1 .25s ease forwards,spinner-hide .25s ease-in-out forwards!important;-ms-animation:spinner-show 1.5s 1 .25s ease forwards,spinner-hide .25s ease-in-out forwards!important;animation:spinner-show 1.5s 1 .25s ease forwards,spinner-hide .25s ease-in-out forwards!important;-moz-transform-origin:50% 50%;-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;color:rgba(255,255,255,.15);content:'\f1ce';cursor:default;font-family:"Font Awesome 5 Free";font-size:2em;font-weight:900;height:2em;left:50%;line-height:2em;margin:-1em 0 0 -1em;top:50%;width:2em}body.landing::after,header.major::after{content:''}body.landing::after{-moz-animation:overlay-hide .5s ease-in forwards!important;-webkit-animation:overlay-hide .5s ease-in forwards!important;-ms-animation:overlay-hide .5s ease-in forwards!important;animation:overlay-hide .5s ease-in forwards!important;background:#1c1d26;height:100%;left:0;top:0;width:100%}body.landing.is-loading::before{-moz-animation:spinner-show 1.5s 1 .25s ease forwards,spinner-rotate .75s infinite linear!important;-webkit-animation:spinner-show 1.5s 1 .25s ease forwards,spinner-rotate .75s infinite linear!important;-ms-animation:spinner-show 1.5s 1 .25s ease forwards,spinner-rotate .75s infinite linear!important;animation:spinner-show 1.5s 1 .25s ease forwards,spinner-rotate .75s infinite linear!important;z-index:100001}body.landing.is-loading::after{-moz-animation:none!important;-webkit-animation:none!important;-ms-animation:none!important;animation:none!important;opacity:1;z-index:100000}@media (-webkit-min-device-pixel-ratio:2){body.landing::before{line-height:2.025em}}header p{color:#fff;position:relative;margin:0 0 1.5em}header h2 p{font-size:1.25em;margin-top:-1em;line-height:1.75em}@media (max-width:933px){header p br{display:none}header h2 p{font-size:1em}}header h3 p{font-size:1.1em;margin-top:-.8em;line-height:1.75em}@media (max-width:933px){header h3 p{font-size:1em}header h4 p,header h5 p,header h6 p{font-size:.9em}}header h4 p,header h5 p,header h6 p{font-size:.9em;margin-top:-.6em;line-height:1.5em}header.major{margin:0 0 4em;position:relative}@media (max-width:933px){header.major{margin:0 0 2em}}header.major::after{background:#E64F2D;display:inline-block;height:.2em;max-width:20em;width:75%}footer.major{margin:4em 0 0}form{margin:0 0 2em}label{color:#fff;display:block;font-size:.9em;font-weight:400;margin:0 0 1em}input[type=text],input[type=password],input[type=email],select,textarea{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;-moz-transition:border-color .2s ease-in-out;-webkit-transition:border-color .2s ease-in-out;-ms-transition:border-color .2s ease-in-out;transition:border-color .2s ease-in-out;background:0 0;border-radius:4px;border:1px solid rgba(255,255,255,.3);color:inherit;display:block;outline:0;padding:0 1em;text-decoration:none;width:100%}input[type=text]:invalid,input[type=password]:invalid,input[type=email]:invalid,select:invalid,textarea:invalid{box-shadow:none}input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,select:focus,textarea:focus{border-color:#E64F2D}.select-wrapper{text-decoration:none;display:block;position:relative}.select-wrapper:before{display:inline-block}.select-wrapper::before{color:rgba(255,255,255,.3);content:'\f078';display:block;height:2.4em;line-height:2.4em;pointer-events:none;position:absolute;right:0;top:0;width:2.4em}.select-wrapper select::-ms-expand{display:none}input[type=text],input[type=password],input[type=email],select{height:2.4em}textarea{padding:.75em 1em}select option{background-color:#1c1d26;color:#fff}select:focus::-ms-value{background:0 0}input[type=radio],input[type=checkbox]{-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=radio] label,input[type=checkbox] label{text-decoration:none;color:rgba(255,255,255,.75);cursor:pointer;display:inline-block;font-size:1em;font-weight:300;padding-left:2.19em;padding-right:.75em;position:relative}input[type=radio] label:before,input[type=checkbox] label:before{display:inline-block}input[type=radio] label::before,input[type=checkbox] label::before{border:1px solid rgba(255,255,255,.3);content:'';display:inline-block;height:1.44em;left:0;line-height:1.38em;position:absolute;text-align:center;top:0;width:1.44em}.icon,.image{position:relative}input[type=radio]:checked label::before,input[type=checkbox]:checked label::before{background:rgba(255,255,255,.25);color:#fff;content:'\f00c'}input[type=radio]:focus label::before,input[type=checkbox]:focus label::before{border-color:#E64F2D}input[type=checkbox] label::before{border-radius:4px}input[type=radio] label::before{border-radius:100%}.box,.image{border-radius:4px}::-webkit-input-placeholder{color:rgba(255,255,255,.5)!important;opacity:1}:-moz-placeholder{color:rgba(255,255,255,.5)!important;opacity:1}::-moz-placeholder{color:rgba(255,255,255,.5)!important;opacity:1}:-ms-input-placeholder{color:rgba(255,255,255,.5)!important;opacity:1}.formerize-placeholder{color:rgba(255,255,255,.5)!important;opacity:1}.box{border:1px solid rgba(255,255,255,.3);margin-bottom:2em;padding:1.5em}.box>:last-child,.box>:last-child>:last-child,.box>:last-child>:last-child>:last-child{margin-bottom:0}.box.alt{border:0;border-radius:0;padding:0}.icon{text-decoration:none;border-bottom:none}.icon:before{display:inline-block}.icon>.label{display:none}.icon.alt:before,.icon.major,.image{display:inline-block}.icon.alt{text-decoration:none}.icon.alt::before{color:#1c1d26!important;text-shadow:1px 0 0 #fff,-1px 0 0 #fff,0 1px 0 #fff,0 -1px 0 #fff}.icon.major{background:#272833;border-radius:100%;cursor:default;height:6em;line-height:6em;margin:0 0 2em;width:6em}#banner,.spotlight{background-attachment:fixed}.goto-next::before,.spotlight{background-position:center center}.image.fit,.image.fit img,.image.left img,.image.right img{width:100%}.icon.major::before{font-size:2.25em}.icon.major.alt{text-decoration:none}.icon.major.alt:before{display:inline-block}.icon.major.alt::before{color:#272833!important;text-shadow:1px 0 0 #fff,-1px 0 0 #fff,0 1px 0 #fff,0 -1px 0 #fff}.iconshiftdown{line-height:2}.iconshift-right-5{margin-left:5px}.iconshift-right-6{margin-left:6px}.iconshift-right-7{margin-left:7px}.iconshift-right-8{margin-left:8px}.iconshift-right-9{margin-left:9px}.iconshift-right-10{margin-left:10px}.image{border:0;overflow:hidden}.image::before{content:'';display:block;position:absolute;left:0;top:0;width:100%;height:100%;z-index:1}.image img{border-radius:4px;display:block}.image.left{float:left;margin:0 1.5em 1em 0;top:.25em}.image.right{float:right;margin:0 0 1em 1.5em;top:.25em}.image.fit,ol,ul{margin:0 0 2em}.image.left,.image.right{max-width:40%}.image.fit{display:block}.image.mapid{height:70vh}ol{list-style:decimal;padding-left:1.25em}ol li{padding-left:.25em}ul{list-style:disc;padding-left:1em}#header nav ul,.dropotron,ul.actions,ul.alt,ul.icons{list-style:none}ul li{padding-left:.5em}ul.alt{padding-left:0}ul.alt li{border-top:solid 1px rgba(255,255,255,.3);padding:.5em 0}ul.alt li:first-child{border-top:0;padding-top:0}ul.icons{cursor:default;padding-left:0}ul.icons li{display:inline-block;height:2.5em;line-height:2.5em;padding:0 .5em}ul.icons li .icon{font-size:.8em}ul.icons li .icon::before{font-size:2em}ul.actions{cursor:default;padding-left:0}ul.actions li{display:inline-block;padding:0 1em 0 0;vertical-align:middle}@media (max-width:480px){ul.actions{margin:0 0 2em}ul.actions li{display:block;padding:1em 0 0;text-align:center;width:100%}ul.actions li:first-child{padding-top:0}ul.actions li>*{margin:0!important;width:100%}}ul.actions.fit li>*,ul.actions.vertical li>*{margin-bottom:0}ul.actions li:last-child{padding-right:0}ul.actions.small li{padding:0 .5em 0 0}@media (max-width:480px){ul.actions.small li{padding:.5em 0 0}ul.actions.small li:first-child{padding-top:0}}ul.actions.vertical li{display:block;padding:1em 0 0}ul.actions.vertical li:first-child{padding-top:0}ul.actions.vertical.small li{padding:.5em 0 0}ul.actions.vertical.small li:first-child{padding-top:0}ul.actions.fit{display:table;margin-left:-1em;padding:0;table-layout:fixed;width:calc(100% 1em)}ul.actions.fit li{display:table-cell;padding:0 0 0 1em}ul.actions.fit.small{margin-left:-.5em;width:calc(100% .5em)}dl,table{margin:0 0 2em}ul.actions.fit.small li{padding:0 0 0 .5em}.table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:collapse;border-spacing:0;width:100%}table tbody tr{border:1px solid rgba(255,255,255,.3);border-left:0;border-right:0}table tbody tr:nth-child(2n 1){background-color:rgba(255,255,255,.075)}table td{padding:.75em}table th{color:#fff;font-size:.9em;font-weight:400;padding:0 .75em .75em;text-align:left}table thead{border-bottom:solid 1px rgba(255,255,255,.3)}table tfoot{border-top:solid 1px rgba(255,255,255,.3)}table.alt{border-collapse:separate}table.alt tbody tr td{border:1px solid rgba(255,255,255,.3);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}.button,input[type=submit],input[type=reset],input[type=button]{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;-moz-transition:background-color .2s ease-in-out,color .2s ease-in-out,box-shadow .2s ease-in-out;-webkit-transition:background-color .2s ease-in-out,color .2s ease-in-out,box-shadow .2s ease-in-out;-ms-transition:background-color .2s ease-in-out,color .2s ease-in-out,box-shadow .2s ease-in-out;transition:background-color .2s ease-in-out,color .2s ease-in-out,box-shadow .2s ease-in-out;background-color:transparent;border-radius:4px;border:0;box-shadow:inset 0 0 0 2px rgba(255,255,255,.3);color:#fff!important;cursor:pointer;display:inline-block;font-weight:400;height:2.4em;line-height:2.4em;padding:0 2.25em;text-align:center;text-decoration:none;white-space:nowrap}@media (max-width:480px){.button,input[type=submit],input[type=reset],input[type=button]{padding:0}}.button:active,.button:hover,input[type=submit]:active,input[type=submit]:hover,input[type=reset]:active,input[type=reset]:hover,input[type=button]:active,input[type=button]:hover{box-shadow:inset 0 0 0 1px #E64F2D;color:#E64F2D!important}.button:active,input[type=submit]:active,input[type=reset]:active,input[type=button]:active{background-color:rgba(230,79,45,.15)}.button.icon::before,input[type=submit].icon::before,input[type=reset].icon::before,input[type=button].icon::before{margin-right:.5em}.button.fit,input[type=submit].fit,input[type=reset].fit,input[type=button].fit{display:block;margin:0 0 1em;width:100%}.button.small,input[type=submit].small,input[type=reset].small,input[type=button].small{font-size:.8em}.button.big,input[type=submit].big,input[type=reset].big,input[type=button].big{font-size:1.35em}.button.special,input[type=submit].special,input[type=reset].special,input[type=button].special{background-color:#E64F2D;box-shadow:none;color:#fff!important}.button.special:hover,input[type=submit].special:hover,input[type=reset].special:hover,input[type=button].special:hover{background-color:#e96244}.button.special:active,input[type=submit].special:active,input[type=reset].special:active,input[type=button].special:active{background-color:#df3f1b}.button.disabled,.button:disabled,input[type=submit].disabled,input[type=submit]:disabled,input[type=reset].disabled,input[type=reset]:disabled,input[type=button].disabled,input[type=button]:disabled{background-color:rgba(255,255,255,.3)!important;box-shadow:none!important;color:#fff!important;cursor:default;opacity:.25}.button.tb-opened,input[type=submit].tb-opened,input[type=reset].tb-opened,input[type=button].tb-opened{background-color:#32cd32!important}.button.tb-opened.navbar,input[type=submit].tb-opened.navbar,input[type=reset].tb-opened.navbar,input[type=button].tb-opened.navbar{margin-left:-15px}.tb-closed{color:#d23128ff}.tooltip{position:relative;display:inline-block;border-bottom:1px dotted #000}.goto-next,.goto-next::before,.tooltip .tooltiptext{left:50%;position:absolute}.tooltip .tooltiptext{visibility:hidden;width:230px;margin-left:-100px;font-size:.9em;background-color:#555;line-height:normal;color:#fff;text-align:center;padding:15px 0;border-radius:6px;z-index:1;opacity:0;transition:opacity .3s;top:100%}.spotlight .content,.wrapper.fade-down>.container{-moz-transition:-moz-transform 1s ease,opacity 1s ease;-webkit-transition:-webkit-transform 1s ease,opacity 1s ease;-ms-transition:-ms-transform 1s ease,opacity 1s ease}.tooltip .tooltiptext::after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent #555}#banner::after,#banner::before,.dropotron.level-0::before,.goto-next::before,.spotlight::before{content:''}.tooltip:hover .tooltiptext{visibility:visible;opacity:1}.goto-next{border:0;bottom:0;display:block;height:5em;margin:0 0 0 -5em;overflow:hidden;text-indent:10em;white-space:nowrap;width:10em;z-index:1}.goto-next::before{background-image:url(images/arrow.svg);background-repeat:no-repeat;background-size:contain;display:block;height:1.5em;margin:-.75em 0 0 -1em;top:50%;width:2em;z-index:1}.spotlight,.spotlight .image.main img{position:relative}@media (max-width:933px){.goto-next::before{height:.8em;margin:-.4em 0 0 -.6em;width:1.2em}}.spotlight{background-size:cover;box-shadow:0 .25em .5em 0 rgba(0,0,0,.25);background-image:none;min-height:42em;height:100vh;overflow:hidden}@media (max-width:980px){.spotlight{background-attachment:scroll;height:auto;min-height:auto}.spotlight .image.main{display:block;margin:0;max-height:40vh;overflow:hidden}}.spotlight:nth-last-of-type(1){z-index:1}.spotlight:nth-last-of-type(2){z-index:2}.spotlight:nth-last-of-type(3){z-index:3}.spotlight:nth-last-of-type(4){z-index:4}.spotlight:nth-last-of-type(5){z-index:5}.spotlight:nth-last-of-type(6){z-index:6}.spotlight:nth-last-of-type(7){z-index:7}.spotlight:nth-last-of-type(8){z-index:8}.spotlight:nth-last-of-type(9){z-index:9}.spotlight:nth-last-of-type(10){z-index:10}.spotlight:nth-last-of-type(11){z-index:11}.spotlight:nth-last-of-type(12){z-index:12}.spotlight:nth-last-of-type(13){z-index:13}.spotlight:nth-last-of-type(14){z-index:14}.spotlight:nth-last-of-type(15){z-index:15}.spotlight:nth-last-of-type(16){z-index:16}.spotlight:nth-last-of-type(17){z-index:17}.spotlight:nth-last-of-type(18){z-index:18}.spotlight:nth-last-of-type(19){z-index:19}.spotlight:nth-last-of-type(20){z-index:20}.spotlight::before{display:block;height:100%;left:0;top:0;width:100%}.spotlight .image.main{display:block}.spotlight .content{-moz-transform:translate(0,0);-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);transition:transform 1s ease,opacity 1s ease;background:rgba(23,24,32,.9);border-style:solid;opacity:1;position:absolute}@media (max-width:980px){.spotlight .content{background-color:rgba(23,24,32,.9);border-width:.35em 0 0!important;bottom:auto!important;left:auto!important;padding:6em 3em 4em!important;position:relative;right:auto!important;text-align:center;top:auto!important;width:100%!important}.spotlight .goto-next{display:none}}@media (max-width:933px){.spotlight{box-shadow:0 .125em .5em 0 rgba(0,0,0,.25)}.spotlight .image.main{max-height:60vh}.spotlight .content{border-top-width:.2em!important;padding:6em 3em 4em!important}}@media (max-width:480px){.spotlight .image.main{max-height:50vh}.spotlight .content{padding:6em 3em 4em!important}}.spotlight .goto-next{-moz-transform:translate(0,0);-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);-moz-transition:-moz-transform .75s ease,opacity 1s ease-in;-webkit-transition:-webkit-transform .75s ease,opacity 1s ease-in;-ms-transition:-ms-transform .75s ease,opacity 1s ease-in;transition:transform .75s ease,opacity 1s ease-in;-moz-transition-delay:.5s;-webkit-transition-delay:.5s;-ms-transition-delay:.5s;transition-delay:.5s;opacity:1}.spotlight.bottom .content,.spotlight.top .content{left:0;padding:5.1em 0 3.1em;width:100%}.spotlight.top .content{border-bottom-width:.35em;top:0}.spotlight.bottom .content{border-top-width:.35em;bottom:0}@media (max-width:1280px){.spotlight.top .content{padding:5.1em 0 3.1em}.spotlight.bottom .content{padding:5.1em 0 4.6em}}.spotlight.left .content,.spotlight.right .content{height:101%;padding:6em 3em;top:0;width:28em;min-width:25%}@media (max-width:1280px){.spotlight.left .content,.spotlight.right .content{padding:6em 3em;width:25em}.wrapper{padding:6em 0 4em}}.spotlight.left .content{border-right-width:.35em;left:0}.spotlight.right .content{border-left-width:.35em;right:0}.spotlight.style2 .content{border-color:#E64F2D}.spotlight.style3 .content{border-color:#D74126}.spotlight.inactive .content{opacity:0}.spotlight.inactive .goto-next{-moz-transform:translate(0,1.5em);-webkit-transform:translate(0,1.5em);-ms-transform:translate(0,1.5em);transform:translate(0,1.5em);opacity:0}.spotlight.inactive.top .content{-moz-transform:translate(0,-5em);-webkit-transform:translate(0,-5em);-ms-transform:translate(0,-5em);transform:translate(0,-5em)}.spotlight.inactive.bottom .content{-moz-transform:translate(0,5em);-webkit-transform:translate(0,5em);-ms-transform:translate(0,5em);transform:translate(0,5em)}.spotlight.inactive.left .content{-moz-transform:translate(-5em,0);-webkit-transform:translate(-5em,0);-ms-transform:translate(-5em,0);transform:translate(-5em,0)}.spotlight.inactive.right .content{-moz-transform:translate(5em,0);-webkit-transform:translate(5em,0);-ms-transform:translate(5em,0);transform:translate(5em,0)}body.is-touch .spotlight{background-attachment:scroll}.wrapper{padding:6em 0 4em}@media (max-width:980px){.wrapper{padding:6em 3em 4em}}@media (max-width:933px){.wrapper{padding:6em 3em 4em}}@media (max-width:480px){.wrapper{padding:6em 3em 4em}}.wrapper.style2{background:#E64F2D}.wrapper.style2 input[type=text]:focus,.wrapper.style2 input[type=password]:focus,.wrapper.style2 input[type=email]:focus,.wrapper.style2 select:focus,.wrapper.style2 textarea:focus{border-color:rgba(255,255,255,.5)}.wrapper.style2 .button:active,.wrapper.style2 .button:hover,.wrapper.style2 input[type=submit]:active,.wrapper.style2 input[type=submit]:hover,.wrapper.style2 input[type=reset]:active,.wrapper.style2 input[type=reset]:hover,.wrapper.style2 input[type=button]:active,.wrapper.style2 input[type=button]:hover{background-color:rgba(255,255,255,.075)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)!important;color:#fff!important}.wrapper.style2 .button:active,.wrapper.style2 input[type=submit]:active,.wrapper.style2 input[type=reset]:active,.wrapper.style2 input[type=button]:active{background-color:rgba(255,255,255,.25)!important}.wrapper.style2 .button.special,.wrapper.style2 input[type=submit].special,.wrapper.style2 input[type=reset].special,.wrapper.style2 input[type=button].special{background-color:#fff;color:#E64F2D!important}.wrapper.style2 .button.special:active,.wrapper.style2 .button.special:hover,.wrapper.style2 input[type=submit].special:active,.wrapper.style2 input[type=submit].special:hover,.wrapper.style2 input[type=reset].special:active,.wrapper.style2 input[type=reset].special:hover,.wrapper.style2 input[type=button].special:active,.wrapper.style2 input[type=button].special:hover{background-color:rgba(255,255,255,.075)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)!important;color:#fff!important}.wrapper.style2 .button.special:active,.wrapper.style2 input[type=submit].special:active,.wrapper.style2 input[type=reset].special:active,.wrapper.style2 input[type=button].special:active{background-color:rgba(255,255,255,.25)!important}.wrapper.fade-down>.container{-moz-transform:translate(0,0);-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);transition:transform 1s ease,opacity 1s ease;opacity:1}.wrapper.fade-down.inactive>.container{-moz-transform:translate(0,-1em);-webkit-transform:translate(0,-1em);-ms-transform:translate(0,-1em);transform:translate(0,-1em);opacity:0}.wrapper.fade-up>.container{-moz-transform:translate(0,0);-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);-moz-transition:-moz-transform 1s ease,opacity 1s ease;-webkit-transition:-webkit-transform 1s ease,opacity 1s ease;-ms-transition:-ms-transform 1s ease,opacity 1s ease;transition:transform 1s ease,opacity 1s ease;opacity:1}.wrapper.fade-up.inactive>.container{-moz-transform:translate(0,1em);-webkit-transform:translate(0,1em);-ms-transform:translate(0,1em);transform:translate(0,1em);opacity:0}.wrapper.fade>.container{-moz-transition:opacity 1s ease;-webkit-transition:opacity 1s ease;-ms-transition:opacity 1s ease;transition:opacity 1s ease;opacity:1}.wrapper.fade.inactive>.container{opacity:0}.dropotron{background:rgba(39,40,51,.965);border-radius:4px;box-shadow:0 .075em .35em 0 rgba(0,0,0,.125);margin-top:calc(-.25em 1px);min-width:12em;padding:.25em 0}.dropotron>li{border-top:solid 1px rgba(255,255,255,.035);padding:0}.dropotron>li a,.dropotron>li span{border:0;color:rgba(255,255,255,.75);display:block;padding:.1em 1em;text-decoration:none}#header nav ul,#header nav ul li{padding:0;margin:0;position:relative}.dropotron>li:first-child{border-top:0}.dropotron>li.active>a,.dropotron>li.active>span{color:#E64F2D}.dropotron.level-0{font-size:.8em;margin-top:1em}@media (max-width:1280px){.dropotron.level-0{font-size:1em}}.dropotron.level-0::before{-moz-transform:rotate(45deg);-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);background:#272833;display:block;height:1em;position:absolute;right:1.5em;top:-.5em;width:1em}body.landing .dropotron.level-0{margin-top:0}#navPanel,#titleBar{display:none}@media (max-width:933px){#titleBar{-moz-backface-visibility:hidden;-webkit-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-moz-transition:-moz-transform .5s ease;-webkit-transition:-webkit-transform .5s ease;-ms-transition:-ms-transform .5s ease;transition:transform .5s ease;display:block;height:44px;left:0;position:fixed;top:0;width:100%;z-index:10001;background:#272833;box-shadow:0 .125em .125em 0 rgba(0,0,0,.125)}#titleBar .title{color:#fff;display:block;font-weight:400;height:44px;line-height:44px;text-align:center}#titleBar .title a{color:inherit;border:0}#titleBar .toggle{text-decoration:none;height:60px;left:0;position:absolute;top:0;width:90px;outline:0;border:0}#titleBar .toggle:before{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;-webkit-font-smoothing:antialiased;text-transform:none!important}#titleBar .toggle::before{background:#9B160F;color:rgba(255,255,255,.5);display:block;font-size:18px;height:44px;left:0;line-height:44px;position:absolute;text-align:center;top:0;width:54px}#navPanel{-moz-backface-visibility:hidden;-webkit-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-moz-transform:translateX(-275px);-webkit-transform:translateX(-275px);-ms-transform:translateX(-275px);transform:translateX(-275px);-moz-transition:-moz-transform .5s ease;-webkit-transition:-webkit-transform .5s ease;-ms-transition:-ms-transform .5s ease;transition:transform .5s ease;display:block;height:100%;left:0;overflow-y:auto;position:fixed;top:0;width:275px;z-index:10002;background:#181920;padding:.75em 1.25em}#navPanel .link{border:0;border-top:solid 1px rgba(255,255,255,.05);color:rgba(255,255,255,.75);display:block;height:3em;line-height:3em;text-decoration:none}#navPanel .link:hover{color:inherit!important}#navPanel .link:first-child{border-top:0}#navPanel .link.depth-0{color:#fff;font-weight:400}#navPanel .link .indent-1{display:inline-block;width:1.25em}#navPanel .link .indent-2{display:inline-block;width:2.5em}#navPanel .link .indent-3{display:inline-block;width:3.75em}#navPanel .link .indent-4{display:inline-block;width:5em}#navPanel .link .indent-5{display:inline-block;width:6.25em}}#header,#header nav ul ul{background:rgba(39,40,51,.965);left:0}#header h1,#header nav ul li{height:inherit;line-height:inherit}#page-wrapper{padding-top:3.5em}#header{box-shadow:0 0 .25em 0 rgba(0,0,0,.25);cursor:default;height:3.5em;line-height:3.5em;position:fixed;top:0;width:100%;z-index:5000}@media (max-width:933px){#page-wrapper{-moz-backface-visibility:hidden;-webkit-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-moz-transition:-moz-transform .5s ease;-webkit-transition:-webkit-transform .5s ease;-ms-transition:-ms-transform .5s ease;transition:transform .5s ease;padding-bottom:1px;padding-top:44px!important}#header{display:none}}#header h1{left:1.25em;margin:0;position:absolute;top:0}#header nav ul{float:right}#header nav ul li{float:left;color:inherit}#header nav ul li a,#header nav ul li span{display:block;color:inherit;text-decoration:none;line-height:inherit;padding:0 1em}#header nav ul li.active>a,#header nav ul li.active>span{color:#E64F2D}#header nav ul li.last{padding-right:1.8em}#header nav ul ul{display:none;position:absolute;top:100%;border-bottom:2px solid rgba(255,255,255,.075);padding:0}#header nav ul ul li{float:none;width:11em;overflow:hidden}#header nav ul ul.last li{width:8em}#header nav ul ul a{line-height:100%;padding:10px 15px;border-top:2px solid rgba(255,255,255,.075)}#header nav ul ul ul{top:0;left:100%}#header nav ul li:hover>ul{display:block}body.landing #page-wrapper{padding-top:0}#banner{background-color:#272833;background-image:url(../../images/banner.jpg);background-position:center center;background-size:cover;box-shadow:0 .25em .5em 0 rgba(0,0,0,.25);min-height:100vh;position:relative;text-align:center;z-index:21}@media (max-width:980px){#banner{background-attachment:scroll}#banner .goto-next{height:7em}}#banner::before{display:inline-block;height:100vh;vertical-align:middle;width:1%}#banner::after{display:block;height:100%;left:0;position:absolute;top:0;width:100%}#banner .content,#banner .content header{display:inline-block;vertical-align:middle}#banner .content{margin-right:1%;max-width:95%;padding:6em;position:relative;text-align:right;z-index:1}@media (max-width:1280px){#banner .content{padding:6em}}@media (max-width:980px){#banner .content{padding:12em 0;text-align:center}#banner .content header{display:block;margin:0 0 2em;text-align:center}}@media (max-width:933px){#banner{box-shadow:0 .125em .5em 0 rgba(0,0,0,.25);min-height:calc(100vh - 44px)}#banner::before{height:calc(100vh - 44px)}#banner .content{padding:7.5em 3em 9em}}@media (max-width:480px){#banner .content{padding:6em 3.75em 10.5em}}#banner .content header h2{font-size:2.5em;margin:0}#banner .content header p{margin:.5em 0 0;top:0}#banner .content .image{border-radius:0;display:inline-block;height:18em;margin-left:3em;vertical-align:middle;width:18em}@media (max-width:933px){#banner .content header h2{font-size:1.5em}#banner .content .image{height:9em;width:9em}}#banner .content .image img{border-radius:0;display:block;width:100%}body.is-touch #banner{background-attachment:scroll}#footer{background:#272833;padding:6em 0;text-align:center}@media (max-width:1280px){#footer{padding:6em 0}}@media (max-width:980px){#banner .content .image{margin:0}#footer{padding:6em 0}}@media (max-width:933px){#footer{padding:6em 3em}}@media (max-width:480px){#footer{padding:6em 3em}}#footer .icons .icon.alt{text-decoration:none}#footer .icons .icon.alt:before{display:inline-block}#footer .icons .icon.alt::before{color:#272833!important;text-shadow:1px 0 0 rgba(255,255,255,.5),-1px 0 0 rgba(255,255,255,.5),0 1px 0 rgba(255,255,255,.5),0 -1px 0 rgba(255,255,255,.5)}#footer .copyright{color:rgba(255,255,255,.5);font-size:.8em;line-height:1em;margin:2em 0 0;padding:0;text-align:center}#footer .copyright li{border-left:solid 1px rgba(255,255,255,.3);display:inline-block;list-style:none;margin-left:1.5em;padding-left:1.5em}.col-2>.button,.col-3>.button,.col-4>.button,.col-5>.button{padding:0}@media (max-width:480px){#footer .copyright{line-height:inherit}#footer .copyright li{border-left:0;display:block;margin:0;padding:0}}#footer .copyright li:first-child{border-left:0;margin-left:0;padding-left:0}#footer .copyright li a{color:inherit}.project{height:600px}.teaser{height:300px}.project-creator{border-bottom:none}.col-2{column-count:2}.col-3{column-count:3}.col-4{column-count:4}.col-5{column-count:5}@import 'libs/vars'; @import 'libs/functions'; @import 'libs/mixins'; @import url(../css/font-awesome.min.css); @import url(../fonts/roboto.css); @import url(https://toolbox-bodensee.de/css/spacestatus.css); @import "libs/skel"; @import 'parts/startpage'; @include skel-breakpoints((xlarge: '(max-width: 1680px)',large: '(max-width: 1280px)',medium: '(max-width: 980px)',small: '(max-width: 933px)',xsmall: '(max-width: 480px)')); @mixin breakpoint($point){@if $point == desktop { @media (max-width:1680px) { @content}} @else if$point==laptop{@media (max-width:1280px) { @content}} @else if$point==tablet{@media (max-width:980px) { @content}} @else if$point==phablet{@media (max-width:933px) { @content}} @else if$point==mobileonly{@media (max-width:480px) { @content}} } @include skel-layout((reset: 'full',boxModel: 'border',grid: (gutters: 2.5em),conditionals: true,containers: 70em,breakpoints: (large: (containers: 90%,),medium: (containers: (100%,true),)))); @mixin line-icon($bg: _palette(bg),$fg: _palette(fg-bold)){@include icon; $size:1px;&::before { color: $bg !important;text-shadow:$size 0 0 $fg, ($size * -1) 0 0 $fg, 0 $size 0 $fg, 0 ($size * -1) 0 $fg}}$size-wrapper-pad-tb: 6em;$size-wrapper-pad-lr: 3em; @include breakpoint(laptop){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(tablet){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(phablet){$size-wrapper-pad-tb:3.25em;$size-wrapper-pad-lr:1.5em}@include breakpoint(mobileonly){$size-wrapper-pad-tb:3em;$size-wrapper-pad-lr:1.25em}@import 'parts/basic'; @import 'parts/loader'; @import 'parts/section-article'; @import 'parts/form'; @import 'parts/box'; @import 'parts/icon'; @import 'parts/image'; @import 'parts/list'; @import 'parts/table'; @import 'parts/button'; @import 'parts/goto-next'; @import 'parts/spotlight'; @import 'parts/wrapper'; @import 'parts/dropotron'; @import 'parts/header'; @import 'parts/banner'; @import 'parts/footer'; @import 'parts/project'; @import 'parts/col'; @import 'libs/vars'; @import 'libs/functions'; @import 'libs/mixins'; @import url(../css/font-awesome.min.css); @import url(../fonts/roboto.css); @import url(https://toolbox-bodensee.de/css/spacestatus.css); @import "libs/skel"; @import 'parts/startpage'; @include skel-breakpoints((xlarge: '(max-width: 1680px)',large: '(max-width: 1280px)',medium: '(max-width: 980px)',small: '(max-width: 933px)',xsmall: '(max-width: 480px)')); @mixin breakpoint($point){@if $point == desktop { @media (max-width:1680px) { @content}} @else if$point==laptop{@media (max-width:1280px) { @content}} @else if$point==tablet{@media (max-width:980px) { @content}} @else if$point==phablet{@media (max-width:933px) { @content}} @else if$point==mobileonly{@media (max-width:480px) { @content}} } @include skel-layout((reset: 'full',boxModel: 'border',grid: (gutters: 2.5em),conditionals: true,containers: 70em,breakpoints: (large: (containers: 90%,),medium: (containers: (100%,true),)))); @mixin line-icon($bg: _palette(bg),$fg: _palette(fg-bold)){@include icon; $size:1px;&::before { color: $bg !important;text-shadow:$size 0 0 $fg, ($size * -1) 0 0 $fg, 0 $size 0 $fg, 0 ($size * -1) 0 $fg}}$size-wrapper-pad-tb: 6em;$size-wrapper-pad-lr: 3em; @include breakpoint(laptop){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(tablet){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(phablet){$size-wrapper-pad-tb:3.25em;$size-wrapper-pad-lr:1.5em}@include breakpoint(mobileonly){$size-wrapper-pad-tb:3em;$size-wrapper-pad-lr:1.25em}@import 'libs/vars'; @import 'libs/functions'; @import 'libs/mixins'; @import url(../css/font-awesome.min.css); @import url(../fonts/roboto.css); @import url(https://toolbox-bodensee.de/css/spacestatus.css); @import "libs/skel"; @import 'parts/startpage'; @include skel-breakpoints((xlarge: '(max-width: 1680px)',large: '(max-width: 1280px)',medium: '(max-width: 980px)',small: '(max-width: 933px)',xsmall: '(max-width: 480px)')); @mixin breakpoint($point){@if $point == desktop { @media (max-width:1680px) { @content}} @else if$point==laptop{@media (max-width:1280px) { @content}} @else if$point==tablet{@media (max-width:980px) { @content}} @else if$point==phablet{@media (max-width:933px) { @content}} @else if$point==mobileonly{@media (max-width:480px) { @content}} } @include skel-layout((reset: 'full',boxModel: 'border',grid: (gutters: 2.5em),conditionals: true,containers: 70em,breakpoints: (large: (containers: 90%,),medium: (containers: (100%,true),)))); @mixin line-icon($bg: _palette(bg),$fg: _palette(fg-bold)){@include icon; $size:1px;&::before { color: $bg !important;text-shadow:$size 0 0 $fg, ($size * -1) 0 0 $fg, 0 $size 0 $fg, 0 ($size * -1) 0 $fg}}$size-wrapper-pad-tb: 6em;$size-wrapper-pad-lr: 3em; @include breakpoint(laptop){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(tablet){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(phablet){$size-wrapper-pad-tb:3.25em;$size-wrapper-pad-lr:1.5em}@include breakpoint(mobileonly){$size-wrapper-pad-tb:3em;$size-wrapper-pad-lr:1.25em}@import 'parts/basic'; @import 'parts/loader'; @import 'parts/section-article'; @import 'parts/form'; @import 'parts/box'; @import 'parts/icon'; @import 'parts/image'; @import 'parts/list'; @import 'parts/table'; @import 'parts/button'; @import 'parts/goto-next'; @import 'parts/spotlight'; @import 'parts/wrapper'; @import 'parts/dropotron'; @import 'parts/header'; @import 'parts/banner'; @import 'parts/footer'; @import 'parts/project'; @import 'parts/col'; @import 'libs/vars'; @import 'libs/functions'; @import 'libs/mixins'; @import url(../css/font-awesome.min.css); @import url(../fonts/roboto.css); @import url(https://toolbox-bodensee.de/css/spacestatus.css); @import "libs/skel"; @import 'parts/startpage'; @include skel-breakpoints((xlarge: '(max-width: 1680px)',large: '(max-width: 1280px)',medium: '(max-width: 980px)',small: '(max-width: 933px)',xsmall: '(max-width: 480px)')); @mixin breakpoint($point){@if $point == desktop { @media (max-width:1680px) { @content}} @else if$point==laptop{@media (max-width:1280px) { @content}} @else if$point==tablet{@media (max-width:980px) { @content}} @else if$point==phablet{@media (max-width:933px) { @content}} @else if$point==mobileonly{@media (max-width:480px) { @content}} } @include skel-layout((reset: 'full',boxModel: 'border',grid: (gutters: 2.5em),conditionals: true,containers: 70em,breakpoints: (large: (containers: 90%,),medium: (containers: (100%,true),)))); @mixin line-icon($bg: _palette(bg),$fg: _palette(fg-bold)){@include icon; $size:1px;&::before { color: $bg !important;text-shadow:$size 0 0 $fg, ($size * -1) 0 0 $fg, 0 $size 0 $fg, 0 ($size * -1) 0 $fg}}$size-wrapper-pad-tb: 6em;$size-wrapper-pad-lr: 3em; @include breakpoint(laptop){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(tablet){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(phablet){$size-wrapper-pad-tb:3.25em;$size-wrapper-pad-lr:1.5em}@include breakpoint(mobileonly){$size-wrapper-pad-tb:3em;$size-wrapper-pad-lr:1.25em}@import 'libs/vars'; @import 'libs/functions'; @import 'libs/mixins'; @import url(../css/font-awesome.min.css); @import url(../fonts/roboto.css); @import url(https://toolbox-bodensee.de/css/spacestatus.css); @import "libs/skel"; @import 'parts/startpage'; @include skel-breakpoints((xlarge: '(max-width: 1680px)',large: '(max-width: 1280px)',medium: '(max-width: 980px)',small: '(max-width: 933px)',xsmall: '(max-width: 480px)')); @mixin breakpoint($point){@if $point == desktop { @media (max-width:1680px) { @content}} @else if$point==laptop{@media (max-width:1280px) { @content}} @else if$point==tablet{@media (max-width:980px) { @content}} @else if$point==phablet{@media (max-width:933px) { @content}} @else if$point==mobileonly{@media (max-width:480px) { @content}} } @include skel-layout((reset: 'full',boxModel: 'border',grid: (gutters: 2.5em),conditionals: true,containers: 70em,breakpoints: (large: (containers: 90%,),medium: (containers: (100%,true),)))); @mixin line-icon($bg: _palette(bg),$fg: _palette(fg-bold)){@include icon; $size:1px;&::before { color: $bg !important;text-shadow:$size 0 0 $fg, ($size * -1) 0 0 $fg, 0 $size 0 $fg, 0 ($size * -1) 0 $fg}}$size-wrapper-pad-tb: 6em;$size-wrapper-pad-lr: 3em; @include breakpoint(laptop){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(tablet){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(phablet){$size-wrapper-pad-tb:3.25em;$size-wrapper-pad-lr:1.5em}@include breakpoint(mobileonly){$size-wrapper-pad-tb:3em;$size-wrapper-pad-lr:1.25em}@import 'parts/basic'; @import 'parts/loader'; @import 'parts/section-article'; @import 'parts/form'; @import 'parts/box'; @import 'parts/icon'; @import 'parts/image'; @import 'parts/list'; @import 'parts/table'; @import 'parts/button'; @import 'parts/goto-next'; @import 'parts/spotlight'; @import 'parts/wrapper'; @import 'parts/dropotron'; @import 'parts/header'; @import 'parts/banner'; @import 'parts/footer'; @import 'parts/project'; @import 'parts/col'; @import 'libs/vars'; @import 'libs/functions'; @import 'libs/mixins'; @import url(../css/font-awesome.min.css); @import url(../fonts/roboto.css); @import url(https://toolbox-bodensee.de/css/spacestatus.css); @import "libs/skel"; @import 'parts/startpage'; @include skel-breakpoints((xlarge: '(max-width: 1680px)',large: '(max-width: 1280px)',medium: '(max-width: 980px)',small: '(max-width: 933px)',xsmall: '(max-width: 480px)')); @mixin breakpoint($point){@if $point == desktop { @media (max-width:1680px) { @content}} @else if$point==laptop{@media (max-width:1280px) { @content}} @else if$point==tablet{@media (max-width:980px) { @content}} @else if$point==phablet{@media (max-width:933px) { @content}} @else if$point==mobileonly{@media (max-width:480px) { @content}} } @include skel-layout((reset: 'full',boxModel: 'border',grid: (gutters: 2.5em),conditionals: true,containers: 70em,breakpoints: (large: (containers: 90%,),medium: (containers: (100%,true),)))); @mixin line-icon($bg: _palette(bg),$fg: _palette(fg-bold)){@include icon; $size:1px;&::before { color: $bg !important;text-shadow:$size 0 0 $fg, ($size * -1) 0 0 $fg, 0 $size 0 $fg, 0 ($size * -1) 0 $fg}}$size-wrapper-pad-tb: 6em;$size-wrapper-pad-lr: 3em; @include breakpoint(laptop){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(tablet){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(phablet){$size-wrapper-pad-tb:3.25em;$size-wrapper-pad-lr:1.5em}@include breakpoint(mobileonly){$size-wrapper-pad-tb:3em;$size-wrapper-pad-lr:1.25em}@import 'libs/vars'; @import 'libs/functions'; @import 'libs/mixins'; @import url(../css/font-awesome.min.css); @import url(../fonts/roboto.css); @import url(https://toolbox-bodensee.de/css/spacestatus.css); @import "libs/skel"; @import 'parts/startpage'; @include skel-breakpoints((xlarge: '(max-width: 1680px)',large: '(max-width: 1280px)',medium: '(max-width: 980px)',small: '(max-width: 933px)',xsmall: '(max-width: 480px)')); @mixin breakpoint($point){@if $point == desktop { @media (max-width:1680px) { @content}} @else if$point==laptop{@media (max-width:1280px) { @content}} @else if$point==tablet{@media (max-width:980px) { @content}} @else if$point==phablet{@media (max-width:933px) { @content}} @else if$point==mobileonly{@media (max-width:480px) { @content}} } @include skel-layout((reset: 'full',boxModel: 'border',grid: (gutters: 2.5em),conditionals: true,containers: 70em,breakpoints: (large: (containers: 90%,),medium: (containers: (100%,true),)))); @mixin line-icon($bg: _palette(bg),$fg: _palette(fg-bold)){@include icon; $size:1px;&::before { color: $bg !important;text-shadow:$size 0 0 $fg, ($size * -1) 0 0 $fg, 0 $size 0 $fg, 0 ($size * -1) 0 $fg}}$size-wrapper-pad-tb: 6em;$size-wrapper-pad-lr: 3em; @include breakpoint(laptop){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(tablet){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(phablet){$size-wrapper-pad-tb:3.25em;$size-wrapper-pad-lr:1.5em}@include breakpoint(mobileonly){$size-wrapper-pad-tb:3em;$size-wrapper-pad-lr:1.25em}@import 'parts/basic'; @import 'parts/loader'; @import 'parts/section-article'; @import 'parts/form'; @import 'parts/box'; @import 'parts/icon'; @import 'parts/image'; @import 'parts/list'; @import 'parts/table'; @import 'parts/button'; @import 'parts/goto-next'; @import 'parts/spotlight'; @import 'parts/wrapper'; @import 'parts/dropotron'; @import 'parts/header'; @import 'parts/banner'; @import 'parts/footer'; @import 'parts/project'; @import 'parts/col'; @import 'libs/vars'; @import 'libs/functions'; @import 'libs/mixins'; @import url(../css/font-awesome.min.css); @import url(../fonts/roboto.css); @import url(https://toolbox-bodensee.de/css/spacestatus.css); @import "libs/skel"; @import 'parts/startpage'; @include skel-breakpoints((xlarge: '(max-width: 1680px)',large: '(max-width: 1280px)',medium: '(max-width: 980px)',small: '(max-width: 933px)',xsmall: '(max-width: 480px)')); @mixin breakpoint($point){@if $point == desktop { @media (max-width:1680px) { @content}} @else if$point==laptop{@media (max-width:1280px) { @content}} @else if$point==tablet{@media (max-width:980px) { @content}} @else if$point==phablet{@media (max-width:933px) { @content}} @else if$point==mobileonly{@media (max-width:480px) { @content}} } @include skel-layout((reset: 'full',boxModel: 'border',grid: (gutters: 2.5em),conditionals: true,containers: 70em,breakpoints: (large: (containers: 90%,),medium: (containers: (100%,true),)))); @mixin line-icon($bg: _palette(bg),$fg: _palette(fg-bold)){@include icon; $size:1px;&::before { color: $bg !important;text-shadow:$size 0 0 $fg, ($size * -1) 0 0 $fg, 0 $size 0 $fg, 0 ($size * -1) 0 $fg}}$size-wrapper-pad-tb: 6em;$size-wrapper-pad-lr: 3em; @include breakpoint(laptop){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(tablet){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(phablet){$size-wrapper-pad-tb:3.25em;$size-wrapper-pad-lr:1.5em}@include breakpoint(mobileonly){$size-wrapper-pad-tb:3em;$size-wrapper-pad-lr:1.25em} \ No newline at end of file diff --git a/templates/blocks/image.html b/templates/blocks/image.html deleted file mode 100644 index 9d2a2dc..0000000 --- a/templates/blocks/image.html +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/templates/blocks/press_table.html b/templates/blocks/press_table.html new file mode 100644 index 0000000..b1bad70 --- /dev/null +++ b/templates/blocks/press_table.html @@ -0,0 +1 @@ +{{ this.pub_date.strftime('%d.%m.%Y') }}{{ this.text }} diff --git a/templates/blocks/pro_img.html b/templates/blocks/pro_img.html new file mode 100644 index 0000000..0065290 --- /dev/null +++ b/templates/blocks/pro_img.html @@ -0,0 +1,4 @@ +{% set img = record.attachments.images.get(this.image) %} + + + diff --git a/templates/blocks/pro_video.html b/templates/blocks/pro_video.html new file mode 100644 index 0000000..c37e837 --- /dev/null +++ b/templates/blocks/pro_video.html @@ -0,0 +1,11 @@ +{% if this.video_url +%}
+ +
+{% + if bag('translate', this.alt, 'directytlink') %}{{ bag('translate', this.alt, 'directytlink') }}{% + else %}Direkt zum YouTube-Video{% endif %}{% endif %}{% if this.video + %} {% + if bag('translate', this.alt, 'directlink') %}{{ bag('translate', this.alt, 'directlink') }}{% + else %}Download Video{% endif %}{% endif %} +
diff --git a/templates/blocks/startpage_section.html b/templates/blocks/startpage_section.html new file mode 100644 index 0000000..cc630f1 --- /dev/null +++ b/templates/blocks/startpage_section.html @@ -0,0 +1,10 @@ +
+
+

{{ this.header }}

+ {{ this.text }} +
+ {{ this.text2 }} + +
\ No newline at end of file diff --git a/templates/blog-post.html b/templates/blog-post.html index 6f24d52..ef22eed 100644 --- a/templates/blog-post.html +++ b/templates/blog-post.html @@ -1,6 +1,28 @@ {% extends "layout.html" %} {% from "macros/blog.html" import render_blog_post %} +{% if this.project %}{% block expand_header %} + +{% if this.video_is_embeded %} + + {% endif %} +{% endblock %}{% endif %} {% block title %}{{ this.title }}{% endblock %} {% block body %} - {{ render_blog_post(this) }} + +
+
+ {{ render_blog_post(this) }} +
+
+{% if this.project %} + + + + +{% endif %} {% endblock %} diff --git a/templates/blog.html b/templates/blog.html index 40c0621..d2be6d4 100644 --- a/templates/blog.html +++ b/templates/blog.html @@ -1,19 +1,29 @@ {% extends "layout.html" %} {% from "macros/blog.html" import render_blog_post %} {% from "macros/pagination.html" import render_pagination %} -{% block title %}{{ this.title }}{% endblock %} -{% block body %} -
-
- -
-

{{ this.title }}

- {{ this.sub_title }} -
-
+ {% block title %}{{ this.title }}{% endblock %} +{% block body %} + +
+
+
+

{{ this.title }}

+ {{ this.description }} +
+
+ {{ this.spruch }} + + + +
+
{% for child in this.pagination.items %} {{ render_blog_post(child, from_index=true) }} {% endfor %} - +
{{ render_pagination(this.pagination) }} +
+
+
+
{% endblock %} diff --git a/templates/feed.xml b/templates/feed.xml deleted file mode 100644 index 15e553f..0000000 --- a/templates/feed.xml +++ /dev/null @@ -1,33 +0,0 @@ -{% -set baseurl = "https://c3woc.de/" %}{% -set search = "blog" %} - - Waffel Neuigkeiten - 42{{ none|datetimeformat('YYYYMMDDhhmmss') }} - {{ none|datetimeformat('YYYY-MM-DDThh:mm:ss') }}Z - - - - {% if this.author %}{{ this.author }}{% else %}L3D{% endif %} - - Lektor Atom XML Template{% - set pages = site.query('/blog').include_undiscoverable(true).all() %}{% - for page in pages %} - - {{ page.title }} - 23{{ page.pub_date|datetimeformat('YYYYMMDDhhmmss') }} - {{ page.pub_date|datetimeformat('YYYY-MM-DDThh:mm:ss') }}Z - - - {% if page.author %}{{ page.author }}{% else %}L3D{% endif %} - - - {{ page.xml }} - {% if page.xml_img - %}<br/> - <img width="23%" src="{{ page|url }}{{ page.xml_img }}" /> - {% endif %} - - {% -endfor %} - diff --git a/templates/feed_blog.xml b/templates/feed_blog.xml new file mode 100644 index 0000000..94ae4ea --- /dev/null +++ b/templates/feed_blog.xml @@ -0,0 +1,34 @@ +{% +set baseurl = "https://toolbox-bodensee.de/" %}{% +set search = "blog" %} + + {% + if bag('translate', this.alt, 'xmlfeed') %}{{ bag('translate', this.alt, 'xmlfeed') }}{% + else %}Neues aus der Toolbox{% endif %} + {{ baseurl }}feed_blog.xml + {{ none|datetimeformat('YYYY-MM-ddThh:mm:ss') }}Z + + + + {% if this.author %}{{ this.author }}{% else %}Toolbox{% endif %} + {% + set pages = site.query('/blog').include_undiscoverable(true).all() %}{% + for page in pages %}{% if not page._hidden %} + + {{ page.title }} + {{ baseurl }}{{ search }}/{{ page._id }} + {{ page.pub_date|datetimeformat('YYYY-MM-ddThh:mm:ss') }}Z + + + {% if page.author %}{{ page.author }}{% else %}Toolbox{% endif %} + + + {{ page.xml }} + {% if page.xml_img + %}<br/> + <img width="23%" src="{{ page.xml_img }}" /> + {% endif %} + +{% endif %}{% +endfor %} + diff --git a/templates/feed_projekte.xml b/templates/feed_projekte.xml new file mode 100644 index 0000000..fa7a49f --- /dev/null +++ b/templates/feed_projekte.xml @@ -0,0 +1,34 @@ +{% +set baseurl = "https://toolbox-bodensee.de/" %}{% +set search = "projekte" %} + + {% + if bag('translate', this.alt, 'projectfeed') %}{{ bag('translate', this.alt, 'projectfeed') }}{% + else %}Projekte in der Toolbox{% endif %} + {{ baseurl }}feed_projekte.xml + {{ none|datetimeformat('YYYY-MM-ddThh:mm:ss') }}Z + + + + {% if this.author %}{{ this.author }}{% else %}Toolbox{% endif %} + {% + set pages = site.query('/projekte').include_undiscoverable(true).all() %}{% + for page in pages %}{% if not page._hidden %} + + {{ page.title }} + {{ baseurl }}{{ search }}/{{ page._id }} + {{ page.pub_date|datetimeformat('YYYY-MM-ddThh:mm:ss') }}Z + + + {% if page.author %}{{ page.author }}{% else %}Toolbox{% endif %} + + + {% if page.teaser %}{{ page.teaser }}{% endif %} + {% if page.xml_img + %}<br/> + <img width="23%" src="{{ page.xml_img }}" /> + {% endif %} + +{% endif %}{% +endfor %} + diff --git a/templates/kalender.html b/templates/kalender.html new file mode 100644 index 0000000..2b91265 --- /dev/null +++ b/templates/kalender.html @@ -0,0 +1,40 @@ +{% extends "layout.html" %} +{% block title %}{{ this.title }}{% endblock %} +{% block body %} + + + + + + + + +
+
+
+

{{ this.title }}

+

{{ this.slogan }}

+
+ +
+ + {{ this.content }} +
+
+
+{% endblock %} diff --git a/templates/layout.html b/templates/layout.html index 9a15041..65d9a20 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -1,120 +1,137 @@ - - - - {% block title %}Start{% endblock %} - - - - - - - - {% block expand_header %}{% endblock %} - - - - - -
- - - - - - - - - - -
- - {% block body %}{% endblock %} -
- - - - -
- - - - - - - - - + + + + + {% block title %}Startseite{% endblock %} + + + + + + + + + + + + + + {% block expand_header %}{% endblock %} + + + +
+ + + + + +{% block body %}{% endblock %} + + + +
+ + + + + + + + + diff --git a/templates/macros/blog.html b/templates/macros/blog.html index 0e17c95..1b19328 100644 --- a/templates/macros/blog.html +++ b/templates/macros/blog.html @@ -1,54 +1,50 @@ {% macro render_blog_post(post, from_index=false) %} -{% if from_index == True %} - - -
-
- {% if from_index %} -

{{ post.title }}

- {% else %} -

{{ post.title }}

- {% endif %} -

{% if bag('translate', post.alt, 'created') - %}{{ bag('translate', post.alt, 'created') }}{% else %}Geschrieben von{% endif %} {% - if post.twitter_handle %}{{ post.author or post.twitter_handle }}{% - else %}{{ post.author }}{% - endif %} {% if post.alt == 'en' %}on {{ post.pub_date }}{% else %}am {{ post.pub_date.strftime('%d. %m. %Y') }}{% endif %}

-
-
-{% else %} -
-
-
-

{{ post.title }}

-

{% if bag('translate', post.alt, 'created') - %}{{ bag('translate', post.alt, 'created') }}{% else %}Verfasst von{% endif %} {% - if post.twitter_handle %}{{ post.author or post.twitter_handle }}{% - else %}{{ post.author }}{% - endif %} {% if post.alt == 'en' %}on {{ post.pub_date }}{% else %}am {{ post.pub_date.strftime('%d. %m. %Y') }}{% endif %}

+ {% if from_index %} +


+ {% endif %} +
+
+ {% if from_index %} +

{{ post.title }}

+ {% else %} +

{{ post.title }}

+ {% endif %} +

+ {% if bag('translate', post.alt, 'blog_von') + %}{{ bag('translate', post.alt, 'blog_von') }}{% else + %}Geschrieben von{% endif %} {% if post.twitter_handle + %}{{ post.author or post.twitter_handle }}{% + else %}{{ post.author }}{% + endif %}{% if post.pub_date + %} {% if bag('translate', post.alt, 'blog_am') + %}{{ bag('translate', post.alt, 'blog_am') }}{% else + %}am{% endif %} {{ post.pub_date.strftime('%d.%m.%Y') }}{% + endif %}

+
+ +
+ {% if from_index %} + {{ post.body }} + {% else %} + {{ post.body }} + {{ post.beitrag }} + {% endif %} +
+ {% if from_index %} + {% if bag('translate', post.alt, 'blog_weiter') + %}{{ bag('translate', post.alt, 'blog_weiter') }}{% else + %}weiterlesen{% endif %} +
+ {% else %} + {% if post.video_is_embeded %}{% for blk in post.video_embeded.blocks %} + {{ blk }}
+ {% endfor %}{% + endif %} {% if post.project %} +
{% + for blk in post.project.blocks %} + {{ blk }} + {% endfor %}
{% endif %}{% + endif %}
-
-{% endif %} - -
-
-

{{ post.subtitle }}

- {{ post.body }} -{% if from_index == False %} - {{ post.privatebody }} - {% if post.galerie %}{% - for blk in post.galerie.blocks %} - {{ blk }} - {% endfor %}{% endif %} -{% else %} -

{% - if bag('translate', post.alt, 'read') - %}{{ bag('translate', post.alt, 'read') }}{% else %}Weiter lesen{% endif %}

- {{ post.title }} - {% endif %} -
-
- - - {% endmacro %} diff --git a/templates/macros/pagination.html b/templates/macros/pagination.html index bf201e1..077cc5a 100644 --- a/templates/macros/pagination.html +++ b/templates/macros/pagination.html @@ -1,25 +1,15 @@ {% macro render_pagination(pagination) %} -
-
- -
-
- {% endmacro %} diff --git a/templates/macros/projekt.html b/templates/macros/projekt.html new file mode 100644 index 0000000..497dfb7 --- /dev/null +++ b/templates/macros/projekt.html @@ -0,0 +1,52 @@ +{% macro render_blog_post(post, from_index=false) %} + {% if from_index %} +
+ + + +

{{ post.title }}

+
+ {{ post.teaser }} +
+
+ {% else %} +
+
+
+

{{ post.title }}

{% if bag('translate', post.alt, 'projekt_launch') + %}{{ bag('translate', post.alt, 'projekt_launch') }}{% else + %}Das Projekt wurde vom{% endif %} {{ post.author }} {% if post.pub_date %}{% + if bag('translate', post.alt, 'projekt_am') + %}{{ bag('translate', post.alt, 'projekt_am') }}{% else + %}am{% endif %} {{ post.pub_date.strftime('%d.%m.%Y') }} {% endif %}{% + if bag('translate', post.alt, 'projekt_start') + %}{{ bag('translate', post.alt, 'projekt_start') }}{% else + %}gestarted{% endif %}

+
+
+ {{ post.body }} + {% if post.video_is_embeded %}{% for blk in post.video_embeded.blocks %} + {{ blk }}
+ {% endfor %}{% + endif %} + {% if post.project %} +
{% + for blk in post.project.blocks %} + {{ blk }} + {% endfor %}
{% + endif %} +
+
+
+ {% endif %} +{% endmacro %} diff --git a/templates/material.html b/templates/material.html deleted file mode 100644 index 403adfb..0000000 --- a/templates/material.html +++ /dev/null @@ -1,125 +0,0 @@ -{% extends "layout.html" %} -{% block expand_header %} - - - - -{% endblock %} -{% block title %}{{ this.title }}{% endblock %} -{% block body %} -
-
-
-

{{ this.title }}

- {{ this.spruch }} -
-
-
- - -
-
-

{{ this.subtitle }}

- -
- -
- - -
- - {{ this.body }} -
-
- -{% endblock %} diff --git a/templates/page.html b/templates/page.html index f4115f7..034ac9c 100644 --- a/templates/page.html +++ b/templates/page.html @@ -1,58 +1,16 @@ {% extends "layout.html" %} {% block title %}{{ this.title }}{% endblock %} {% block body %} - - -
-
- -
-

{{ this.as01h1 }}

- {{ this.as01b1 }} - {{ this.as01d1 }} -
-
-
- - - -
-
- -
-

{{ this.as02h1 }}

- {{ this.as02b1 }} - {{ this.as02d1 }} -
-
-
- - - -
-
- -
-

{{ this.as03h1 }}

- {{ this.as03b1 }} - {{ this.as03d1 }} -
-
-
- - -
-
-

{{ this.where }}

- -
-
- - - +
+
+
+

{{ this.title }}

+

{{ this.slogan }}

+
+ +
+ {{ this.content }} +
+
+
{% endblock %} diff --git a/templates/presse.html b/templates/presse.html new file mode 100644 index 0000000..87f4ce9 --- /dev/null +++ b/templates/presse.html @@ -0,0 +1,72 @@ +{% extends "layout.html" %} +{% block title %}{{ this.title }}{% endblock %} +{% block body %} +
+
+
+

{{ this.title }}

+

{{ this.slogan }}

+
+ +
+

{{ this.p1 }}

{% + if this.press_1 %} +
+ + {% for blk in this.press_1.blocks %} + {{ blk }} + {% endfor %} + +
+
{% + endif %} +

{{ this.p2 }}

{% + if this.press_2 %} +
+ + {% for blk in this.press_2.blocks %} + {{ blk }} + {% endfor %} + +
+
{% + endif %} +

{{ this.p3 }}

{% + if this.press_3 %} +
+ + {% for blk in this.press_3.blocks %} + {{ blk }} + {% endfor %} + +
+
{% + endif %} +

{{ this.p4 }}

{% + if this.press_4 %} +
+ + {% for blk in this.press_4.blocks %} + {{ blk }} + {% endfor %} + +
+
{% + endif %} +

{{ this.p5 }}

{% + if this.press_5 %} +
+ + {% for blk in this.press_5.blocks %} + {{ blk }} + {% endfor %} + +
+
{% + endif %} + + {{ this.content }} +
+
+
+{% endblock %} diff --git a/templates/projekt-post.html b/templates/projekt-post.html new file mode 100644 index 0000000..0238142 --- /dev/null +++ b/templates/projekt-post.html @@ -0,0 +1,21 @@ +{% extends "layout.html" %} +{% from "macros/projekt.html" import render_blog_post %} +{% block expand_header %} + +{% if this.video_is_embeded %} + + {% endif %} +{% endblock %} +{% block title %}{{ this.title }}{% endblock %} +{% block body %} + {{ render_blog_post(this) }} + + + + +{% endblock %} diff --git a/templates/projekte.html b/templates/projekte.html new file mode 100644 index 0000000..4630d96 --- /dev/null +++ b/templates/projekte.html @@ -0,0 +1,27 @@ +{% extends "layout.html" %} +{% from "macros/projekt.html" import render_blog_post %} + {% block title %}{{ this.title }}{% endblock %} +{% block body %} +
+
+
+

{{ this.title }}

+ {{ this.description }} +
+
+
+ + {% for child in this.pagination.items %} + {{ render_blog_post(child, from_index=true) }} + {% endfor %} + +
+ +
+
+
+{% endblock %} diff --git a/templates/site.html b/templates/site.html deleted file mode 100644 index 5502f8a..0000000 --- a/templates/site.html +++ /dev/null @@ -1,21 +0,0 @@ -{% extends "layout.html" %} -{% block title %}{{ this.title }}{% endblock %} -{% block body %} -
-
-
-

{{ this.title }}

- {{ this.spruch }} -
-
-
- - -
-
-

{{ this.subtitle }}

- {{ this.body }} -
-
- -{% endblock %} diff --git a/templates/start.html b/templates/start.html new file mode 100644 index 0000000..ad09591 --- /dev/null +++ b/templates/start.html @@ -0,0 +1,128 @@ +{% extends "layout.html" %} +{% block title %}{{ this.title }}{% endblock %} +{% block body %} + + + + + +
+
+
+
+
+
+

{{ this.about_header }}

+ {{ this.about_text }} +
+
+
+ {{ this.about_text2 }} +
+
+ {{ this.about_text3 }} + +
+
+
+
+ Next +
+ +{% for blk in this.sections.blocks %} +
+ {{ blk }} + Next +
+{% endfor %} + + +
+
+
+

{{ this.icons_header }}

+ {{ this.icons_text }} +
+
+
+
+ + + +

{{ this.icons_1_2 }}

+ {{ this.icons_1_3 }} +
+
+ + + +

{{ this.icons_2_2 }}

+ {{ this.icons_2_3 }} +
+
+ + + +

{{ this.icons_3_2 }}

+ {{ this.icons_3_3 }} +
+
+ + + +

{{ this.icons_4_2 }}

+ {{ this.icons_4_3 }} +
+
+ + + +

{{ this.icons_5_2 }}

+ {{ this.icons_5_3 }} +
+
+ + + +

{{ this.icons_6_2 }}

+ {{ this.icons_6_3 }} +
+
+
+ +
+
+ + +
+
+
+

{{ this.red_1 }}

+ {{ this.red_2 }} +
+ {{ this.red_3 }} +

{{ this.red_4 }}

+
+
+ + +{% endblock %} diff --git a/templates/vereinsheim.html b/templates/vereinsheim.html new file mode 100644 index 0000000..6a192be --- /dev/null +++ b/templates/vereinsheim.html @@ -0,0 +1,42 @@ +{% extends "layout.html" %} +{% block title %}{{ this.title }}{% endblock %} +{% block expand_header %} + + + +{% endblock %} +{% block body %} +
+
+
+

{{ this.title }}

+

{{ this.slogan }}

+
+ +
+ {{ this.precontent }} + +
+
+ {{ this.content }} + {% if this.project %} +
{% + for blk in this.project.blocks %} + {{ blk }} + {% endfor + %}
{% + endif %} +
+
+
+ + + + + +{% endblock %}