diff --git a/index.html b/index.html index fb6e2bb9..b9ade53d 100644 --- a/index.html +++ b/index.html @@ -1,5 +1,4225 @@ -Freedomotic IoT Framework

What is Freedomotic?

Freedomotic is an open source, flexible and secure Internet of Things (IoT) development framework. It can be used to build and manage modern smart spaces. It is targeted at individuals (home automation) as well as businesses (smart retail environments, ambient aware marketing, monitoring and analytics, etc).
Freedomotic can interact with well-known automation protocols as well as with “do it yourself” solutions. It treats the web, social networks and branded frontends as first class components of the system.

Features

Identity: All things have a persistent unique identifier.

Services: The framework is centered around the concept of services for users.

Simulation: Freedomotic allows you to fully run it without any sensor or actuator connected. You can configure and test your automation before buying the hardware.

Distributed: Freedomotic can be run as a decentralized peer to peer network with no single point of failure.

Plugins: You can install new plugins at runtime enriching the features.

Auto discovery: Freedomotic can autodiscover the objects (eg: home automation devices) deployed in your real environment. No more diving into complex configuration files.

History aware: It can track any status change in the environment and update them in a database for analysis.

Secure, Multilanguage and Multiuser ...

Learn and Contribute

Learn how to use Freedomotic and how to work internally or develop your own plugin.

Plugins

Download and install a plugin to extend the functionalities of your framework.

Developer Manual

Learn the framework architecture, explore internals and write your own plugins.

User Manual

How to download, install and configure your instance of Freedomotic.

Join our community

We have an international and an Italian community

Want to try it?

*** Dailybuilds are experimental ***

\ No newline at end of file + */ + @font-face { + font-family: FontAwesome; + src: url(/static/fontawesome-webfont-674f50d287a8c48dc19ba404d20fe713.eot); + src: url(/static/fontawesome-webfont-674f50d287a8c48dc19ba404d20fe713.eot?#iefix&v=4.7.0) + format("embedded-opentype"), + url(/static/fontawesome-webfont-af7ae505a9eed503f8b8e6982036873e.woff2) + format("woff2"), + url(/static/fontawesome-webfont-fee66e712a8a08eef5805a46892932ad.woff) + format("woff"), + url(/static/fontawesome-webfont-b06871f281fee6b241d60582ae9369b9.ttf) + format("truetype"), + url(/static/fontawesome-webfont-912ec66d7572ff821749319396470bde.svg#fontawesomeregular) + format("svg"); + font-weight: 400; + font-style: normal; + } + .fa { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + .fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; + } + .fa-2x { + font-size: 2em; + } + .fa-3x { + font-size: 3em; + } + .fa-4x { + font-size: 4em; + } + .fa-5x { + font-size: 5em; + } + .fa-fw { + width: 1.28571429em; + text-align: center; + } + .fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; + } + .fa-ul > li { + position: relative; + } + .fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; + } + .fa-li.fa-lg { + left: -1.85714286em; + } + .fa-border { + padding: 0.2em 0.25em 0.15em; + border: 0.08em solid #eee; + border-radius: 0.1em; + } + .fa-pull-left { + float: left; + } + .fa-pull-right { + float: right; + } + .fa.fa-pull-left { + margin-right: 0.3em; + } + .fa.fa-pull-right { + margin-left: 0.3em; + } + .pull-right { + float: right; + } + .pull-left { + float: left; + } + .fa.pull-left { + margin-right: 0.3em; + } + .fa.pull-right { + margin-left: 0.3em; + } + .fa-spin { + animation: fa-spin 2s linear infinite; + } + .fa-pulse { + animation: fa-spin 1s steps(8) infinite; + } + @keyframes fa-spin { + 0% { + transform: rotate(0deg); + } + to { + transform: rotate(359deg); + } + } + .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 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + transform: scaleY(-1); + } + :root .fa-flip-horizontal, + :root .fa-flip-vertical, + :root .fa-rotate-90, + :root .fa-rotate-180, + :root .fa-rotate-270 { + filter: none; + } + .fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; + } + .fa-stack-1x, + .fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; + } + .fa-stack-1x { + line-height: inherit; + } + .fa-stack-2x { + font-size: 2em; + } + .fa-inverse { + color: #fff; + } + .fa-glass:before { + content: "\F000"; + } + .fa-music:before { + content: "\F001"; + } + .fa-search:before { + content: "\F002"; + } + .fa-envelope-o:before { + content: "\F003"; + } + .fa-heart:before { + content: "\F004"; + } + .fa-star:before { + content: "\F005"; + } + .fa-star-o:before { + content: "\F006"; + } + .fa-user:before { + content: "\F007"; + } + .fa-film:before { + content: "\F008"; + } + .fa-th-large:before { + content: "\F009"; + } + .fa-th:before { + content: "\F00A"; + } + .fa-th-list:before { + content: "\F00B"; + } + .fa-check:before { + content: "\F00C"; + } + .fa-close:before, + .fa-remove:before, + .fa-times:before { + content: "\F00D"; + } + .fa-search-plus:before { + content: "\F00E"; + } + .fa-search-minus:before { + content: "\F010"; + } + .fa-power-off:before { + content: "\F011"; + } + .fa-signal:before { + content: "\F012"; + } + .fa-cog:before, + .fa-gear:before { + content: "\F013"; + } + .fa-trash-o:before { + content: "\F014"; + } + .fa-home:before { + content: "\F015"; + } + .fa-file-o:before { + content: "\F016"; + } + .fa-clock-o:before { + content: "\F017"; + } + .fa-road:before { + content: "\F018"; + } + .fa-download:before { + content: "\F019"; + } + .fa-arrow-circle-o-down:before { + content: "\F01A"; + } + .fa-arrow-circle-o-up:before { + content: "\F01B"; + } + .fa-inbox:before { + content: "\F01C"; + } + .fa-play-circle-o:before { + content: "\F01D"; + } + .fa-repeat:before, + .fa-rotate-right:before { + content: "\F01E"; + } + .fa-refresh:before { + content: "\F021"; + } + .fa-list-alt:before { + content: "\F022"; + } + .fa-lock:before { + content: "\F023"; + } + .fa-flag:before { + content: "\F024"; + } + .fa-headphones:before { + content: "\F025"; + } + .fa-volume-off:before { + content: "\F026"; + } + .fa-volume-down:before { + content: "\F027"; + } + .fa-volume-up:before { + content: "\F028"; + } + .fa-qrcode:before { + content: "\F029"; + } + .fa-barcode:before { + content: "\F02A"; + } + .fa-tag:before { + content: "\F02B"; + } + .fa-tags:before { + content: "\F02C"; + } + .fa-book:before { + content: "\F02D"; + } + .fa-bookmark:before { + content: "\F02E"; + } + .fa-print:before { + content: "\F02F"; + } + .fa-camera:before { + content: "\F030"; + } + .fa-font:before { + content: "\F031"; + } + .fa-bold:before { + content: "\F032"; + } + .fa-italic:before { + content: "\F033"; + } + .fa-text-height:before { + content: "\F034"; + } + .fa-text-width:before { + content: "\F035"; + } + .fa-align-left:before { + content: "\F036"; + } + .fa-align-center:before { + content: "\F037"; + } + .fa-align-right:before { + content: "\F038"; + } + .fa-align-justify:before { + content: "\F039"; + } + .fa-list:before { + content: "\F03A"; + } + .fa-dedent:before, + .fa-outdent:before { + content: "\F03B"; + } + .fa-indent:before { + content: "\F03C"; + } + .fa-video-camera:before { + content: "\F03D"; + } + .fa-image:before, + .fa-photo:before, + .fa-picture-o:before { + content: "\F03E"; + } + .fa-pencil:before { + content: "\F040"; + } + .fa-map-marker:before { + content: "\F041"; + } + .fa-adjust:before { + content: "\F042"; + } + .fa-tint:before { + content: "\F043"; + } + .fa-edit:before, + .fa-pencil-square-o:before { + content: "\F044"; + } + .fa-share-square-o:before { + content: "\F045"; + } + .fa-check-square-o:before { + content: "\F046"; + } + .fa-arrows:before { + content: "\F047"; + } + .fa-step-backward:before { + content: "\F048"; + } + .fa-fast-backward:before { + content: "\F049"; + } + .fa-backward:before { + content: "\F04A"; + } + .fa-play:before { + content: "\F04B"; + } + .fa-pause:before { + content: "\F04C"; + } + .fa-stop:before { + content: "\F04D"; + } + .fa-forward:before { + content: "\F04E"; + } + .fa-fast-forward:before { + content: "\F050"; + } + .fa-step-forward:before { + content: "\F051"; + } + .fa-eject:before { + content: "\F052"; + } + .fa-chevron-left:before { + content: "\F053"; + } + .fa-chevron-right:before { + content: "\F054"; + } + .fa-plus-circle:before { + content: "\F055"; + } + .fa-minus-circle:before { + content: "\F056"; + } + .fa-times-circle:before { + content: "\F057"; + } + .fa-check-circle:before { + content: "\F058"; + } + .fa-question-circle:before { + content: "\F059"; + } + .fa-info-circle:before { + content: "\F05A"; + } + .fa-crosshairs:before { + content: "\F05B"; + } + .fa-times-circle-o:before { + content: "\F05C"; + } + .fa-check-circle-o:before { + content: "\F05D"; + } + .fa-ban:before { + content: "\F05E"; + } + .fa-arrow-left:before { + content: "\F060"; + } + .fa-arrow-right:before { + content: "\F061"; + } + .fa-arrow-up:before { + content: "\F062"; + } + .fa-arrow-down:before { + content: "\F063"; + } + .fa-mail-forward:before, + .fa-share:before { + content: "\F064"; + } + .fa-expand:before { + content: "\F065"; + } + .fa-compress:before { + content: "\F066"; + } + .fa-plus:before { + content: "\F067"; + } + .fa-minus:before { + content: "\F068"; + } + .fa-asterisk:before { + content: "\F069"; + } + .fa-exclamation-circle:before { + content: "\F06A"; + } + .fa-gift:before { + content: "\F06B"; + } + .fa-leaf:before { + content: "\F06C"; + } + .fa-fire:before { + content: "\F06D"; + } + .fa-eye:before { + content: "\F06E"; + } + .fa-eye-slash:before { + content: "\F070"; + } + .fa-exclamation-triangle:before, + .fa-warning:before { + content: "\F071"; + } + .fa-plane:before { + content: "\F072"; + } + .fa-calendar:before { + content: "\F073"; + } + .fa-random:before { + content: "\F074"; + } + .fa-comment:before { + content: "\F075"; + } + .fa-magnet:before { + content: "\F076"; + } + .fa-chevron-up:before { + content: "\F077"; + } + .fa-chevron-down:before { + content: "\F078"; + } + .fa-retweet:before { + content: "\F079"; + } + .fa-shopping-cart:before { + content: "\F07A"; + } + .fa-folder:before { + content: "\F07B"; + } + .fa-folder-open:before { + content: "\F07C"; + } + .fa-arrows-v:before { + content: "\F07D"; + } + .fa-arrows-h:before { + content: "\F07E"; + } + .fa-bar-chart-o:before, + .fa-bar-chart:before { + content: "\F080"; + } + .fa-twitter-square:before { + content: "\F081"; + } + .fa-facebook-square:before { + content: "\F082"; + } + .fa-camera-retro:before { + content: "\F083"; + } + .fa-key:before { + content: "\F084"; + } + .fa-cogs:before, + .fa-gears:before { + content: "\F085"; + } + .fa-comments:before { + content: "\F086"; + } + .fa-thumbs-o-up:before { + content: "\F087"; + } + .fa-thumbs-o-down:before { + content: "\F088"; + } + .fa-star-half:before { + content: "\F089"; + } + .fa-heart-o:before { + content: "\F08A"; + } + .fa-sign-out:before { + content: "\F08B"; + } + .fa-linkedin-square:before { + content: "\F08C"; + } + .fa-thumb-tack:before { + content: "\F08D"; + } + .fa-external-link:before { + content: "\F08E"; + } + .fa-sign-in:before { + content: "\F090"; + } + .fa-trophy:before { + content: "\F091"; + } + .fa-github-square:before { + content: "\F092"; + } + .fa-upload:before { + content: "\F093"; + } + .fa-lemon-o:before { + content: "\F094"; + } + .fa-phone:before { + content: "\F095"; + } + .fa-square-o:before { + content: "\F096"; + } + .fa-bookmark-o:before { + content: "\F097"; + } + .fa-phone-square:before { + content: "\F098"; + } + .fa-twitter:before { + content: "\F099"; + } + .fa-facebook-f:before, + .fa-facebook:before { + content: "\F09A"; + } + .fa-github:before { + content: "\F09B"; + } + .fa-unlock:before { + content: "\F09C"; + } + .fa-credit-card:before { + content: "\F09D"; + } + .fa-feed:before, + .fa-rss:before { + content: "\F09E"; + } + .fa-hdd-o:before { + content: "\F0A0"; + } + .fa-bullhorn:before { + content: "\F0A1"; + } + .fa-bell:before { + content: "\F0F3"; + } + .fa-certificate:before { + content: "\F0A3"; + } + .fa-hand-o-right:before { + content: "\F0A4"; + } + .fa-hand-o-left:before { + content: "\F0A5"; + } + .fa-hand-o-up:before { + content: "\F0A6"; + } + .fa-hand-o-down:before { + content: "\F0A7"; + } + .fa-arrow-circle-left:before { + content: "\F0A8"; + } + .fa-arrow-circle-right:before { + content: "\F0A9"; + } + .fa-arrow-circle-up:before { + content: "\F0AA"; + } + .fa-arrow-circle-down:before { + content: "\F0AB"; + } + .fa-globe:before { + content: "\F0AC"; + } + .fa-wrench:before { + content: "\F0AD"; + } + .fa-tasks:before { + content: "\F0AE"; + } + .fa-filter:before { + content: "\F0B0"; + } + .fa-briefcase:before { + content: "\F0B1"; + } + .fa-arrows-alt:before { + content: "\F0B2"; + } + .fa-group:before, + .fa-users:before { + content: "\F0C0"; + } + .fa-chain:before, + .fa-link:before { + content: "\F0C1"; + } + .fa-cloud:before { + content: "\F0C2"; + } + .fa-flask:before { + content: "\F0C3"; + } + .fa-cut:before, + .fa-scissors:before { + content: "\F0C4"; + } + .fa-copy:before, + .fa-files-o:before { + content: "\F0C5"; + } + .fa-paperclip:before { + content: "\F0C6"; + } + .fa-floppy-o:before, + .fa-save:before { + content: "\F0C7"; + } + .fa-square:before { + content: "\F0C8"; + } + .fa-bars:before, + .fa-navicon:before, + .fa-reorder:before { + content: "\F0C9"; + } + .fa-list-ul:before { + content: "\F0CA"; + } + .fa-list-ol:before { + content: "\F0CB"; + } + .fa-strikethrough:before { + content: "\F0CC"; + } + .fa-underline:before { + content: "\F0CD"; + } + .fa-table:before { + content: "\F0CE"; + } + .fa-magic:before { + content: "\F0D0"; + } + .fa-truck:before { + content: "\F0D1"; + } + .fa-pinterest:before { + content: "\F0D2"; + } + .fa-pinterest-square:before { + content: "\F0D3"; + } + .fa-google-plus-square:before { + content: "\F0D4"; + } + .fa-google-plus:before { + content: "\F0D5"; + } + .fa-money:before { + content: "\F0D6"; + } + .fa-caret-down:before { + content: "\F0D7"; + } + .fa-caret-up:before { + content: "\F0D8"; + } + .fa-caret-left:before { + content: "\F0D9"; + } + .fa-caret-right:before { + content: "\F0DA"; + } + .fa-columns:before { + content: "\F0DB"; + } + .fa-sort:before, + .fa-unsorted:before { + content: "\F0DC"; + } + .fa-sort-desc:before, + .fa-sort-down:before { + content: "\F0DD"; + } + .fa-sort-asc:before, + .fa-sort-up:before { + content: "\F0DE"; + } + .fa-envelope:before { + content: "\F0E0"; + } + .fa-linkedin:before { + content: "\F0E1"; + } + .fa-rotate-left:before, + .fa-undo:before { + content: "\F0E2"; + } + .fa-gavel:before, + .fa-legal:before { + content: "\F0E3"; + } + .fa-dashboard:before, + .fa-tachometer:before { + content: "\F0E4"; + } + .fa-comment-o:before { + content: "\F0E5"; + } + .fa-comments-o:before { + content: "\F0E6"; + } + .fa-bolt:before, + .fa-flash:before { + content: "\F0E7"; + } + .fa-sitemap:before { + content: "\F0E8"; + } + .fa-umbrella:before { + content: "\F0E9"; + } + .fa-clipboard:before, + .fa-paste:before { + content: "\F0EA"; + } + .fa-lightbulb-o:before { + content: "\F0EB"; + } + .fa-exchange:before { + content: "\F0EC"; + } + .fa-cloud-download:before { + content: "\F0ED"; + } + .fa-cloud-upload:before { + content: "\F0EE"; + } + .fa-user-md:before { + content: "\F0F0"; + } + .fa-stethoscope:before { + content: "\F0F1"; + } + .fa-suitcase:before { + content: "\F0F2"; + } + .fa-bell-o:before { + content: "\F0A2"; + } + .fa-coffee:before { + content: "\F0F4"; + } + .fa-cutlery:before { + content: "\F0F5"; + } + .fa-file-text-o:before { + content: "\F0F6"; + } + .fa-building-o:before { + content: "\F0F7"; + } + .fa-hospital-o:before { + content: "\F0F8"; + } + .fa-ambulance:before { + content: "\F0F9"; + } + .fa-medkit:before { + content: "\F0FA"; + } + .fa-fighter-jet:before { + content: "\F0FB"; + } + .fa-beer:before { + content: "\F0FC"; + } + .fa-h-square:before { + content: "\F0FD"; + } + .fa-plus-square:before { + content: "\F0FE"; + } + .fa-angle-double-left:before { + content: "\F100"; + } + .fa-angle-double-right:before { + content: "\F101"; + } + .fa-angle-double-up:before { + content: "\F102"; + } + .fa-angle-double-down:before { + content: "\F103"; + } + .fa-angle-left:before { + content: "\F104"; + } + .fa-angle-right:before { + content: "\F105"; + } + .fa-angle-up:before { + content: "\F106"; + } + .fa-angle-down:before { + content: "\F107"; + } + .fa-desktop:before { + content: "\F108"; + } + .fa-laptop:before { + content: "\F109"; + } + .fa-tablet:before { + content: "\F10A"; + } + .fa-mobile-phone:before, + .fa-mobile:before { + content: "\F10B"; + } + .fa-circle-o:before { + content: "\F10C"; + } + .fa-quote-left:before { + content: "\F10D"; + } + .fa-quote-right:before { + content: "\F10E"; + } + .fa-spinner:before { + content: "\F110"; + } + .fa-circle:before { + content: "\F111"; + } + .fa-mail-reply:before, + .fa-reply:before { + content: "\F112"; + } + .fa-github-alt:before { + content: "\F113"; + } + .fa-folder-o:before { + content: "\F114"; + } + .fa-folder-open-o:before { + content: "\F115"; + } + .fa-smile-o:before { + content: "\F118"; + } + .fa-frown-o:before { + content: "\F119"; + } + .fa-meh-o:before { + content: "\F11A"; + } + .fa-gamepad:before { + content: "\F11B"; + } + .fa-keyboard-o:before { + content: "\F11C"; + } + .fa-flag-o:before { + content: "\F11D"; + } + .fa-flag-checkered:before { + content: "\F11E"; + } + .fa-terminal:before { + content: "\F120"; + } + .fa-code:before { + content: "\F121"; + } + .fa-mail-reply-all:before, + .fa-reply-all:before { + content: "\F122"; + } + .fa-star-half-empty:before, + .fa-star-half-full:before, + .fa-star-half-o:before { + content: "\F123"; + } + .fa-location-arrow:before { + content: "\F124"; + } + .fa-crop:before { + content: "\F125"; + } + .fa-code-fork:before { + content: "\F126"; + } + .fa-chain-broken:before, + .fa-unlink:before { + content: "\F127"; + } + .fa-question:before { + content: "\F128"; + } + .fa-info:before { + content: "\F129"; + } + .fa-exclamation:before { + content: "\F12A"; + } + .fa-superscript:before { + content: "\F12B"; + } + .fa-subscript:before { + content: "\F12C"; + } + .fa-eraser:before { + content: "\F12D"; + } + .fa-puzzle-piece:before { + content: "\F12E"; + } + .fa-microphone:before { + content: "\F130"; + } + .fa-microphone-slash:before { + content: "\F131"; + } + .fa-shield:before { + content: "\F132"; + } + .fa-calendar-o:before { + content: "\F133"; + } + .fa-fire-extinguisher:before { + content: "\F134"; + } + .fa-rocket:before { + content: "\F135"; + } + .fa-maxcdn:before { + content: "\F136"; + } + .fa-chevron-circle-left:before { + content: "\F137"; + } + .fa-chevron-circle-right:before { + content: "\F138"; + } + .fa-chevron-circle-up:before { + content: "\F139"; + } + .fa-chevron-circle-down:before { + content: "\F13A"; + } + .fa-html5:before { + content: "\F13B"; + } + .fa-css3:before { + content: "\F13C"; + } + .fa-anchor:before { + content: "\F13D"; + } + .fa-unlock-alt:before { + content: "\F13E"; + } + .fa-bullseye:before { + content: "\F140"; + } + .fa-ellipsis-h:before { + content: "\F141"; + } + .fa-ellipsis-v:before { + content: "\F142"; + } + .fa-rss-square:before { + content: "\F143"; + } + .fa-play-circle:before { + content: "\F144"; + } + .fa-ticket:before { + content: "\F145"; + } + .fa-minus-square:before { + content: "\F146"; + } + .fa-minus-square-o:before { + content: "\F147"; + } + .fa-level-up:before { + content: "\F148"; + } + .fa-level-down:before { + content: "\F149"; + } + .fa-check-square:before { + content: "\F14A"; + } + .fa-pencil-square:before { + content: "\F14B"; + } + .fa-external-link-square:before { + content: "\F14C"; + } + .fa-share-square:before { + content: "\F14D"; + } + .fa-compass:before { + content: "\F14E"; + } + .fa-caret-square-o-down:before, + .fa-toggle-down:before { + content: "\F150"; + } + .fa-caret-square-o-up:before, + .fa-toggle-up:before { + content: "\F151"; + } + .fa-caret-square-o-right:before, + .fa-toggle-right:before { + content: "\F152"; + } + .fa-eur:before, + .fa-euro:before { + content: "\F153"; + } + .fa-gbp:before { + content: "\F154"; + } + .fa-dollar:before, + .fa-usd:before { + content: "\F155"; + } + .fa-inr:before, + .fa-rupee:before { + content: "\F156"; + } + .fa-cny:before, + .fa-jpy:before, + .fa-rmb:before, + .fa-yen:before { + content: "\F157"; + } + .fa-rouble:before, + .fa-rub:before, + .fa-ruble:before { + content: "\F158"; + } + .fa-krw:before, + .fa-won:before { + content: "\F159"; + } + .fa-bitcoin:before, + .fa-btc:before { + content: "\F15A"; + } + .fa-file:before { + content: "\F15B"; + } + .fa-file-text:before { + content: "\F15C"; + } + .fa-sort-alpha-asc:before { + content: "\F15D"; + } + .fa-sort-alpha-desc:before { + content: "\F15E"; + } + .fa-sort-amount-asc:before { + content: "\F160"; + } + .fa-sort-amount-desc:before { + content: "\F161"; + } + .fa-sort-numeric-asc:before { + content: "\F162"; + } + .fa-sort-numeric-desc:before { + content: "\F163"; + } + .fa-thumbs-up:before { + content: "\F164"; + } + .fa-thumbs-down:before { + content: "\F165"; + } + .fa-youtube-square:before { + content: "\F166"; + } + .fa-youtube:before { + content: "\F167"; + } + .fa-xing:before { + content: "\F168"; + } + .fa-xing-square:before { + content: "\F169"; + } + .fa-youtube-play:before { + content: "\F16A"; + } + .fa-dropbox:before { + content: "\F16B"; + } + .fa-stack-overflow:before { + content: "\F16C"; + } + .fa-instagram:before { + content: "\F16D"; + } + .fa-flickr:before { + content: "\F16E"; + } + .fa-adn:before { + content: "\F170"; + } + .fa-bitbucket:before { + content: "\F171"; + } + .fa-bitbucket-square:before { + content: "\F172"; + } + .fa-tumblr:before { + content: "\F173"; + } + .fa-tumblr-square:before { + content: "\F174"; + } + .fa-long-arrow-down:before { + content: "\F175"; + } + .fa-long-arrow-up:before { + content: "\F176"; + } + .fa-long-arrow-left:before { + content: "\F177"; + } + .fa-long-arrow-right:before { + content: "\F178"; + } + .fa-apple:before { + content: "\F179"; + } + .fa-windows:before { + content: "\F17A"; + } + .fa-android:before { + content: "\F17B"; + } + .fa-linux:before { + content: "\F17C"; + } + .fa-dribbble:before { + content: "\F17D"; + } + .fa-skype:before { + content: "\F17E"; + } + .fa-foursquare:before { + content: "\F180"; + } + .fa-trello:before { + content: "\F181"; + } + .fa-female:before { + content: "\F182"; + } + .fa-male:before { + content: "\F183"; + } + .fa-gittip:before, + .fa-gratipay:before { + content: "\F184"; + } + .fa-sun-o:before { + content: "\F185"; + } + .fa-moon-o:before { + content: "\F186"; + } + .fa-archive:before { + content: "\F187"; + } + .fa-bug:before { + content: "\F188"; + } + .fa-vk:before { + content: "\F189"; + } + .fa-weibo:before { + content: "\F18A"; + } + .fa-renren:before { + content: "\F18B"; + } + .fa-pagelines:before { + content: "\F18C"; + } + .fa-stack-exchange:before { + content: "\F18D"; + } + .fa-arrow-circle-o-right:before { + content: "\F18E"; + } + .fa-arrow-circle-o-left:before { + content: "\F190"; + } + .fa-caret-square-o-left:before, + .fa-toggle-left:before { + content: "\F191"; + } + .fa-dot-circle-o:before { + content: "\F192"; + } + .fa-wheelchair:before { + content: "\F193"; + } + .fa-vimeo-square:before { + content: "\F194"; + } + .fa-try:before, + .fa-turkish-lira:before { + content: "\F195"; + } + .fa-plus-square-o:before { + content: "\F196"; + } + .fa-space-shuttle:before { + content: "\F197"; + } + .fa-slack:before { + content: "\F198"; + } + .fa-envelope-square:before { + content: "\F199"; + } + .fa-wordpress:before { + content: "\F19A"; + } + .fa-openid:before { + content: "\F19B"; + } + .fa-bank:before, + .fa-institution:before, + .fa-university:before { + content: "\F19C"; + } + .fa-graduation-cap:before, + .fa-mortar-board:before { + content: "\F19D"; + } + .fa-yahoo:before { + content: "\F19E"; + } + .fa-google:before { + content: "\F1A0"; + } + .fa-reddit:before { + content: "\F1A1"; + } + .fa-reddit-square:before { + content: "\F1A2"; + } + .fa-stumbleupon-circle:before { + content: "\F1A3"; + } + .fa-stumbleupon:before { + content: "\F1A4"; + } + .fa-delicious:before { + content: "\F1A5"; + } + .fa-digg:before { + content: "\F1A6"; + } + .fa-pied-piper-pp:before { + content: "\F1A7"; + } + .fa-pied-piper-alt:before { + content: "\F1A8"; + } + .fa-drupal:before { + content: "\F1A9"; + } + .fa-joomla:before { + content: "\F1AA"; + } + .fa-language:before { + content: "\F1AB"; + } + .fa-fax:before { + content: "\F1AC"; + } + .fa-building:before { + content: "\F1AD"; + } + .fa-child:before { + content: "\F1AE"; + } + .fa-paw:before { + content: "\F1B0"; + } + .fa-spoon:before { + content: "\F1B1"; + } + .fa-cube:before { + content: "\F1B2"; + } + .fa-cubes:before { + content: "\F1B3"; + } + .fa-behance:before { + content: "\F1B4"; + } + .fa-behance-square:before { + content: "\F1B5"; + } + .fa-steam:before { + content: "\F1B6"; + } + .fa-steam-square:before { + content: "\F1B7"; + } + .fa-recycle:before { + content: "\F1B8"; + } + .fa-automobile:before, + .fa-car:before { + content: "\F1B9"; + } + .fa-cab:before, + .fa-taxi:before { + content: "\F1BA"; + } + .fa-tree:before { + content: "\F1BB"; + } + .fa-spotify:before { + content: "\F1BC"; + } + .fa-deviantart:before { + content: "\F1BD"; + } + .fa-soundcloud:before { + content: "\F1BE"; + } + .fa-database:before { + content: "\F1C0"; + } + .fa-file-pdf-o:before { + content: "\F1C1"; + } + .fa-file-word-o:before { + content: "\F1C2"; + } + .fa-file-excel-o:before { + content: "\F1C3"; + } + .fa-file-powerpoint-o:before { + content: "\F1C4"; + } + .fa-file-image-o:before, + .fa-file-photo-o:before, + .fa-file-picture-o:before { + content: "\F1C5"; + } + .fa-file-archive-o:before, + .fa-file-zip-o:before { + content: "\F1C6"; + } + .fa-file-audio-o:before, + .fa-file-sound-o:before { + content: "\F1C7"; + } + .fa-file-movie-o:before, + .fa-file-video-o:before { + content: "\F1C8"; + } + .fa-file-code-o:before { + content: "\F1C9"; + } + .fa-vine:before { + content: "\F1CA"; + } + .fa-codepen:before { + content: "\F1CB"; + } + .fa-jsfiddle:before { + content: "\F1CC"; + } + .fa-life-bouy:before, + .fa-life-buoy:before, + .fa-life-ring:before, + .fa-life-saver:before, + .fa-support:before { + content: "\F1CD"; + } + .fa-circle-o-notch:before { + content: "\F1CE"; + } + .fa-ra:before, + .fa-rebel:before, + .fa-resistance:before { + content: "\F1D0"; + } + .fa-empire:before, + .fa-ge:before { + content: "\F1D1"; + } + .fa-git-square:before { + content: "\F1D2"; + } + .fa-git:before { + content: "\F1D3"; + } + .fa-hacker-news:before, + .fa-y-combinator-square:before, + .fa-yc-square:before { + content: "\F1D4"; + } + .fa-tencent-weibo:before { + content: "\F1D5"; + } + .fa-qq:before { + content: "\F1D6"; + } + .fa-wechat:before, + .fa-weixin:before { + content: "\F1D7"; + } + .fa-paper-plane:before, + .fa-send:before { + content: "\F1D8"; + } + .fa-paper-plane-o:before, + .fa-send-o:before { + content: "\F1D9"; + } + .fa-history:before { + content: "\F1DA"; + } + .fa-circle-thin:before { + content: "\F1DB"; + } + .fa-header:before { + content: "\F1DC"; + } + .fa-paragraph:before { + content: "\F1DD"; + } + .fa-sliders:before { + content: "\F1DE"; + } + .fa-share-alt:before { + content: "\F1E0"; + } + .fa-share-alt-square:before { + content: "\F1E1"; + } + .fa-bomb:before { + content: "\F1E2"; + } + .fa-futbol-o:before, + .fa-soccer-ball-o:before { + content: "\F1E3"; + } + .fa-tty:before { + content: "\F1E4"; + } + .fa-binoculars:before { + content: "\F1E5"; + } + .fa-plug:before { + content: "\F1E6"; + } + .fa-slideshare:before { + content: "\F1E7"; + } + .fa-twitch:before { + content: "\F1E8"; + } + .fa-yelp:before { + content: "\F1E9"; + } + .fa-newspaper-o:before { + content: "\F1EA"; + } + .fa-wifi:before { + content: "\F1EB"; + } + .fa-calculator:before { + content: "\F1EC"; + } + .fa-paypal:before { + content: "\F1ED"; + } + .fa-google-wallet:before { + content: "\F1EE"; + } + .fa-cc-visa:before { + content: "\F1F0"; + } + .fa-cc-mastercard:before { + content: "\F1F1"; + } + .fa-cc-discover:before { + content: "\F1F2"; + } + .fa-cc-amex:before { + content: "\F1F3"; + } + .fa-cc-paypal:before { + content: "\F1F4"; + } + .fa-cc-stripe:before { + content: "\F1F5"; + } + .fa-bell-slash:before { + content: "\F1F6"; + } + .fa-bell-slash-o:before { + content: "\F1F7"; + } + .fa-trash:before { + content: "\F1F8"; + } + .fa-copyright:before { + content: "\F1F9"; + } + .fa-at:before { + content: "\F1FA"; + } + .fa-eyedropper:before { + content: "\F1FB"; + } + .fa-paint-brush:before { + content: "\F1FC"; + } + .fa-birthday-cake:before { + content: "\F1FD"; + } + .fa-area-chart:before { + content: "\F1FE"; + } + .fa-pie-chart:before { + content: "\F200"; + } + .fa-line-chart:before { + content: "\F201"; + } + .fa-lastfm:before { + content: "\F202"; + } + .fa-lastfm-square:before { + content: "\F203"; + } + .fa-toggle-off:before { + content: "\F204"; + } + .fa-toggle-on:before { + content: "\F205"; + } + .fa-bicycle:before { + content: "\F206"; + } + .fa-bus:before { + content: "\F207"; + } + .fa-ioxhost:before { + content: "\F208"; + } + .fa-angellist:before { + content: "\F209"; + } + .fa-cc:before { + content: "\F20A"; + } + .fa-ils:before, + .fa-shekel:before, + .fa-sheqel:before { + content: "\F20B"; + } + .fa-meanpath:before { + content: "\F20C"; + } + .fa-buysellads:before { + content: "\F20D"; + } + .fa-connectdevelop:before { + content: "\F20E"; + } + .fa-dashcube:before { + content: "\F210"; + } + .fa-forumbee:before { + content: "\F211"; + } + .fa-leanpub:before { + content: "\F212"; + } + .fa-sellsy:before { + content: "\F213"; + } + .fa-shirtsinbulk:before { + content: "\F214"; + } + .fa-simplybuilt:before { + content: "\F215"; + } + .fa-skyatlas:before { + content: "\F216"; + } + .fa-cart-plus:before { + content: "\F217"; + } + .fa-cart-arrow-down:before { + content: "\F218"; + } + .fa-diamond:before { + content: "\F219"; + } + .fa-ship:before { + content: "\F21A"; + } + .fa-user-secret:before { + content: "\F21B"; + } + .fa-motorcycle:before { + content: "\F21C"; + } + .fa-street-view:before { + content: "\F21D"; + } + .fa-heartbeat:before { + content: "\F21E"; + } + .fa-venus:before { + content: "\F221"; + } + .fa-mars:before { + content: "\F222"; + } + .fa-mercury:before { + content: "\F223"; + } + .fa-intersex:before, + .fa-transgender:before { + content: "\F224"; + } + .fa-transgender-alt:before { + content: "\F225"; + } + .fa-venus-double:before { + content: "\F226"; + } + .fa-mars-double:before { + content: "\F227"; + } + .fa-venus-mars:before { + content: "\F228"; + } + .fa-mars-stroke:before { + content: "\F229"; + } + .fa-mars-stroke-v:before { + content: "\F22A"; + } + .fa-mars-stroke-h:before { + content: "\F22B"; + } + .fa-neuter:before { + content: "\F22C"; + } + .fa-genderless:before { + content: "\F22D"; + } + .fa-facebook-official:before { + content: "\F230"; + } + .fa-pinterest-p:before { + content: "\F231"; + } + .fa-whatsapp:before { + content: "\F232"; + } + .fa-server:before { + content: "\F233"; + } + .fa-user-plus:before { + content: "\F234"; + } + .fa-user-times:before { + content: "\F235"; + } + .fa-bed:before, + .fa-hotel:before { + content: "\F236"; + } + .fa-viacoin:before { + content: "\F237"; + } + .fa-train:before { + content: "\F238"; + } + .fa-subway:before { + content: "\F239"; + } + .fa-medium:before { + content: "\F23A"; + } + .fa-y-combinator:before, + .fa-yc:before { + content: "\F23B"; + } + .fa-optin-monster:before { + content: "\F23C"; + } + .fa-opencart:before { + content: "\F23D"; + } + .fa-expeditedssl:before { + content: "\F23E"; + } + .fa-battery-4:before, + .fa-battery-full:before, + .fa-battery:before { + content: "\F240"; + } + .fa-battery-3:before, + .fa-battery-three-quarters:before { + content: "\F241"; + } + .fa-battery-2:before, + .fa-battery-half:before { + content: "\F242"; + } + .fa-battery-1:before, + .fa-battery-quarter:before { + content: "\F243"; + } + .fa-battery-0:before, + .fa-battery-empty:before { + content: "\F244"; + } + .fa-mouse-pointer:before { + content: "\F245"; + } + .fa-i-cursor:before { + content: "\F246"; + } + .fa-object-group:before { + content: "\F247"; + } + .fa-object-ungroup:before { + content: "\F248"; + } + .fa-sticky-note:before { + content: "\F249"; + } + .fa-sticky-note-o:before { + content: "\F24A"; + } + .fa-cc-jcb:before { + content: "\F24B"; + } + .fa-cc-diners-club:before { + content: "\F24C"; + } + .fa-clone:before { + content: "\F24D"; + } + .fa-balance-scale:before { + content: "\F24E"; + } + .fa-hourglass-o:before { + content: "\F250"; + } + .fa-hourglass-1:before, + .fa-hourglass-start:before { + content: "\F251"; + } + .fa-hourglass-2:before, + .fa-hourglass-half:before { + content: "\F252"; + } + .fa-hourglass-3:before, + .fa-hourglass-end:before { + content: "\F253"; + } + .fa-hourglass:before { + content: "\F254"; + } + .fa-hand-grab-o:before, + .fa-hand-rock-o:before { + content: "\F255"; + } + .fa-hand-paper-o:before, + .fa-hand-stop-o:before { + content: "\F256"; + } + .fa-hand-scissors-o:before { + content: "\F257"; + } + .fa-hand-lizard-o:before { + content: "\F258"; + } + .fa-hand-spock-o:before { + content: "\F259"; + } + .fa-hand-pointer-o:before { + content: "\F25A"; + } + .fa-hand-peace-o:before { + content: "\F25B"; + } + .fa-trademark:before { + content: "\F25C"; + } + .fa-registered:before { + content: "\F25D"; + } + .fa-creative-commons:before { + content: "\F25E"; + } + .fa-gg:before { + content: "\F260"; + } + .fa-gg-circle:before { + content: "\F261"; + } + .fa-tripadvisor:before { + content: "\F262"; + } + .fa-odnoklassniki:before { + content: "\F263"; + } + .fa-odnoklassniki-square:before { + content: "\F264"; + } + .fa-get-pocket:before { + content: "\F265"; + } + .fa-wikipedia-w:before { + content: "\F266"; + } + .fa-safari:before { + content: "\F267"; + } + .fa-chrome:before { + content: "\F268"; + } + .fa-firefox:before { + content: "\F269"; + } + .fa-opera:before { + content: "\F26A"; + } + .fa-internet-explorer:before { + content: "\F26B"; + } + .fa-television:before, + .fa-tv:before { + content: "\F26C"; + } + .fa-contao:before { + content: "\F26D"; + } + .fa-500px:before { + content: "\F26E"; + } + .fa-amazon:before { + content: "\F270"; + } + .fa-calendar-plus-o:before { + content: "\F271"; + } + .fa-calendar-minus-o:before { + content: "\F272"; + } + .fa-calendar-times-o:before { + content: "\F273"; + } + .fa-calendar-check-o:before { + content: "\F274"; + } + .fa-industry:before { + content: "\F275"; + } + .fa-map-pin:before { + content: "\F276"; + } + .fa-map-signs:before { + content: "\F277"; + } + .fa-map-o:before { + content: "\F278"; + } + .fa-map:before { + content: "\F279"; + } + .fa-commenting:before { + content: "\F27A"; + } + .fa-commenting-o:before { + content: "\F27B"; + } + .fa-houzz:before { + content: "\F27C"; + } + .fa-vimeo:before { + content: "\F27D"; + } + .fa-black-tie:before { + content: "\F27E"; + } + .fa-fonticons:before { + content: "\F280"; + } + .fa-reddit-alien:before { + content: "\F281"; + } + .fa-edge:before { + content: "\F282"; + } + .fa-credit-card-alt:before { + content: "\F283"; + } + .fa-codiepie:before { + content: "\F284"; + } + .fa-modx:before { + content: "\F285"; + } + .fa-fort-awesome:before { + content: "\F286"; + } + .fa-usb:before { + content: "\F287"; + } + .fa-product-hunt:before { + content: "\F288"; + } + .fa-mixcloud:before { + content: "\F289"; + } + .fa-scribd:before { + content: "\F28A"; + } + .fa-pause-circle:before { + content: "\F28B"; + } + .fa-pause-circle-o:before { + content: "\F28C"; + } + .fa-stop-circle:before { + content: "\F28D"; + } + .fa-stop-circle-o:before { + content: "\F28E"; + } + .fa-shopping-bag:before { + content: "\F290"; + } + .fa-shopping-basket:before { + content: "\F291"; + } + .fa-hashtag:before { + content: "\F292"; + } + .fa-bluetooth:before { + content: "\F293"; + } + .fa-bluetooth-b:before { + content: "\F294"; + } + .fa-percent:before { + content: "\F295"; + } + .fa-gitlab:before { + content: "\F296"; + } + .fa-wpbeginner:before { + content: "\F297"; + } + .fa-wpforms:before { + content: "\F298"; + } + .fa-envira:before { + content: "\F299"; + } + .fa-universal-access:before { + content: "\F29A"; + } + .fa-wheelchair-alt:before { + content: "\F29B"; + } + .fa-question-circle-o:before { + content: "\F29C"; + } + .fa-blind:before { + content: "\F29D"; + } + .fa-audio-description:before { + content: "\F29E"; + } + .fa-volume-control-phone:before { + content: "\F2A0"; + } + .fa-braille:before { + content: "\F2A1"; + } + .fa-assistive-listening-systems:before { + content: "\F2A2"; + } + .fa-american-sign-language-interpreting:before, + .fa-asl-interpreting:before { + content: "\F2A3"; + } + .fa-deaf:before, + .fa-deafness:before, + .fa-hard-of-hearing:before { + content: "\F2A4"; + } + .fa-glide:before { + content: "\F2A5"; + } + .fa-glide-g:before { + content: "\F2A6"; + } + .fa-sign-language:before, + .fa-signing:before { + content: "\F2A7"; + } + .fa-low-vision:before { + content: "\F2A8"; + } + .fa-viadeo:before { + content: "\F2A9"; + } + .fa-viadeo-square:before { + content: "\F2AA"; + } + .fa-snapchat:before { + content: "\F2AB"; + } + .fa-snapchat-ghost:before { + content: "\F2AC"; + } + .fa-snapchat-square:before { + content: "\F2AD"; + } + .fa-pied-piper:before { + content: "\F2AE"; + } + .fa-first-order:before { + content: "\F2B0"; + } + .fa-yoast:before { + content: "\F2B1"; + } + .fa-themeisle:before { + content: "\F2B2"; + } + .fa-google-plus-circle:before, + .fa-google-plus-official:before { + content: "\F2B3"; + } + .fa-fa:before, + .fa-font-awesome:before { + content: "\F2B4"; + } + .fa-handshake-o:before { + content: "\F2B5"; + } + .fa-envelope-open:before { + content: "\F2B6"; + } + .fa-envelope-open-o:before { + content: "\F2B7"; + } + .fa-linode:before { + content: "\F2B8"; + } + .fa-address-book:before { + content: "\F2B9"; + } + .fa-address-book-o:before { + content: "\F2BA"; + } + .fa-address-card:before, + .fa-vcard:before { + content: "\F2BB"; + } + .fa-address-card-o:before, + .fa-vcard-o:before { + content: "\F2BC"; + } + .fa-user-circle:before { + content: "\F2BD"; + } + .fa-user-circle-o:before { + content: "\F2BE"; + } + .fa-user-o:before { + content: "\F2C0"; + } + .fa-id-badge:before { + content: "\F2C1"; + } + .fa-drivers-license:before, + .fa-id-card:before { + content: "\F2C2"; + } + .fa-drivers-license-o:before, + .fa-id-card-o:before { + content: "\F2C3"; + } + .fa-quora:before { + content: "\F2C4"; + } + .fa-free-code-camp:before { + content: "\F2C5"; + } + .fa-telegram:before { + content: "\F2C6"; + } + .fa-thermometer-4:before, + .fa-thermometer-full:before, + .fa-thermometer:before { + content: "\F2C7"; + } + .fa-thermometer-3:before, + .fa-thermometer-three-quarters:before { + content: "\F2C8"; + } + .fa-thermometer-2:before, + .fa-thermometer-half:before { + content: "\F2C9"; + } + .fa-thermometer-1:before, + .fa-thermometer-quarter:before { + content: "\F2CA"; + } + .fa-thermometer-0:before, + .fa-thermometer-empty:before { + content: "\F2CB"; + } + .fa-shower:before { + content: "\F2CC"; + } + .fa-bath:before, + .fa-bathtub:before, + .fa-s15:before { + content: "\F2CD"; + } + .fa-podcast:before { + content: "\F2CE"; + } + .fa-window-maximize:before { + content: "\F2D0"; + } + .fa-window-minimize:before { + content: "\F2D1"; + } + .fa-window-restore:before { + content: "\F2D2"; + } + .fa-times-rectangle:before, + .fa-window-close:before { + content: "\F2D3"; + } + .fa-times-rectangle-o:before, + .fa-window-close-o:before { + content: "\F2D4"; + } + .fa-bandcamp:before { + content: "\F2D5"; + } + .fa-grav:before { + content: "\F2D6"; + } + .fa-etsy:before { + content: "\F2D7"; + } + .fa-imdb:before { + content: "\F2D8"; + } + .fa-ravelry:before { + content: "\F2D9"; + } + .fa-eercast:before { + content: "\F2DA"; + } + .fa-microchip:before { + content: "\F2DB"; + } + .fa-snowflake-o:before { + content: "\F2DC"; + } + .fa-superpowers:before { + content: "\F2DD"; + } + .fa-wpexplorer:before { + content: "\F2DE"; + } + .fa-meetup:before { + content: "\F2E0"; + } + .sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; + } + .sr-only-focusable:active, + .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } + @media screen and (min-width: 981px) { + .grid-wrapper { + display: grid; + grid-gap: 0 2.25em; + grid-template-columns: repeat(12, 1fr); + margin: 0 auto; + width: 90%; + } + .col-1 { + grid-column: span 1; + } + .col-2 { + grid-column: span 2; + } + .col-3 { + grid-column: span 3; + } + .col-4 { + grid-column: span 4; + } + .col-5 { + grid-column: span 5; + } + .col-6 { + grid-column: span 6; + } + .col-7 { + grid-column: span 7; + } + .col-8 { + grid-column: span 8; + } + .col-9 { + grid-column: span 9; + } + .col-10 { + grid-column: span 10; + } + .col-11 { + grid-column: span 11; + } + .col-12 { + grid-column: span 12; + } + } + @media screen and (min-width: 1141px) { + .grid-wrapper { + grid-gap: 0 3em; + width: 60em; + } + } + 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-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:after, + blockquote:before, + q:after, + q:before { + content: ""; + content: none; + } + table { + border-collapse: collapse; + border-spacing: 0; + } + body { + -webkit-text-size-adjust: none; + } + *, + :after, + :before { + box-sizing: border-box; + } + body { + background: #fff; + } + body .body.is-loading *, + body .body.is-loading :after, + body .body.is-loading :before { + animation: none !important; + transition: none !important; + } + body, + input, + select, + textarea { + color: #666; + font-family: Source Sans Pro, Helvetica, sans-serif; + font-size: 16pt; + font-weight: 300; + line-height: 1.65em; + } + a { + transition: color 0.2s ease-in-out, border-color 0.2s ease-in-out; + border-bottom: 1px dotted #666; + color: inherit; + text-decoration: none; + } + a:hover { + border-bottom-color: transparent !important; + color: #6bd4c8; + } + b, + strong { + color: #555; + font-weight: 400; + } + em, + i { + font-style: italic; + } + p { + margin: 0 0 2em; + } + h1, + h2, + h3, + h4, + h5, + h6 { + color: #555; + line-height: 1em; + margin: 0 0 1em; + } + h1 a, + h2 a, + h3 a, + h4 a, + h5 a, + h6 a { + color: inherit; + text-decoration: none; + } + h1 { + font-size: 2.25em; + } + h1, + h2 { + line-height: 1.35em; + } + h2 { + font-size: 2em; + } + h3 { + font-size: 1.35em; + } + h3, + h4 { + line-height: 1.5em; + } + h4 { + font-size: 1.25em; + } + h5 { + font-size: 0.9em; + } + h5, + h6 { + line-height: 1.5em; + } + h6 { + font-size: 0.7em; + } + sub { + top: 0.5em; + } + sub, + sup { + font-size: 0.8em; + position: relative; + } + sup { + top: -0.5em; + } + hr { + border: 0; + border-bottom: 1px solid hsla(0, 0%, 56.5%, 0.5); + margin: 2em 0; + } + hr.major { + margin: 3em 0; + } + blockquote { + border-left: 4px solid hsla(0, 0%, 56.5%, 0.5); + font-style: italic; + margin: 0 0 2em; + padding: 0.5em 0 0.5em 2em; + } + code { + background: hsla(0, 0%, 56.5%, 0.075); + border-radius: 4px; + border: 1px solid hsla(0, 0%, 56.5%, 0.5); + margin: 0 0.25em; + padding: 0.25em 0.65em; + } + code, + pre { + font-family: Courier New, monospace; + font-size: 0.9em; + } + pre { + -webkit-overflow-scrolling: touch; + margin: 0 0 2em; + } + 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; + } + article.special, + section.special { + text-align: center; + } + header p { + color: #999; + margin: 0 0 1.5em; + position: relative; + } + header h2 + p { + font-size: 1.25em; + line-height: 1.5em; + margin-top: -1em; + } + header h3 + p { + font-size: 1.1em; + line-height: 1.5em; + margin-top: -0.8em; + } + header h4 + p, + header h5 + p, + header h6 + p { + font-size: 0.9em; + line-height: 1.5em; + margin-top: -0.6em; + } + header.major { + margin: 0 0 1em; + } + header.major:after { + background: hsla(0, 0%, 56.5%, 0.5); + content: ""; + display: inline-block; + height: 1px; + margin-top: 1.5em; + width: 6em; + } + header.major h2, + header.major h3, + header.major h4, + header.major h5, + header.major h6 { + margin: 0; + } + header.major p { + margin: 0.7em 0 0; + } + header.special { + text-align: center; + } + form { + margin: 0 0 2em; + } + label { + color: #555; + display: block; + font-size: 0.9em; + font-weight: 400; + margin: 0 0 1em; + } + input[type="email"], + input[type="password"], + input[type="text"], + select, + textarea { + -webkit-appearance: none; + appearance: none; + background: hsla(0, 0%, 56.5%, 0.075); + border-radius: 4px; + border: none; + border: 1px solid hsla(0, 0%, 56.5%, 0.5); + color: inherit; + display: block; + outline: 0; + padding: 0 1em; + text-decoration: none; + width: 100%; + } + input[type="email"]:invalid, + input[type="password"]:invalid, + input[type="text"]:invalid, + select:invalid, + textarea:invalid { + box-shadow: none; + } + input[type="email"]:focus, + input[type="password"]:focus, + input[type="text"]:focus, + select:focus, + textarea:focus { + border-color: #6bd4c8; + } + .select-wrapper { + text-decoration: none; + display: block; + position: relative; + } + .select-wrapper:before { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + font-family: FontAwesome; + font-style: normal; + font-weight: 400; + text-transform: none !important; + color: hsla(0, 0%, 56.5%, 0.5); + content: "\F078"; + display: block; + height: 2.75em; + line-height: 2.75em; + pointer-events: none; + position: absolute; + right: 0; + text-align: center; + top: 0; + width: 2.75em; + } + .select-wrapper select::-ms-expand { + display: none; + } + input[type="email"], + input[type="password"], + input[type="text"], + select { + height: 2.75em; + } + textarea { + padding: 0.75em 1em; + } + input[type="checkbox"], + input[type="radio"] { + -webkit-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: #666; + cursor: pointer; + display: inline-block; + font-size: 1em; + font-weight: 300; + padding-left: 2.4em; + padding-right: 0.75em; + position: relative; + } + input[type="checkbox"] + label:before, + input[type="radio"] + label:before { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + font-family: FontAwesome; + font-style: normal; + font-weight: 400; + text-transform: none !important; + background: hsla(0, 0%, 56.5%, 0.075); + border-radius: 4px; + border: 1px solid hsla(0, 0%, 56.5%, 0.5); + content: ""; + display: inline-block; + height: 1.65em; + left: 0; + line-height: 1.58125em; + position: absolute; + text-align: center; + top: 0; + width: 1.65em; + } + input[type="checkbox"]:checked + label:before, + input[type="radio"]:checked + label:before { + background: #666; + border-color: #666; + color: #fff; + content: "\F00C"; + } + input[type="checkbox"]:focus + label:before, + input[type="radio"]:focus + label:before { + border-color: #6bd4c8; + } + input[type="checkbox"] + label:before { + border-radius: 4px; + } + input[type="radio"] + label:before { + border-radius: 100%; + } + ::-webkit-input-placeholder { + color: #999 !important; + opacity: 1; + } + :-moz-placeholder, + ::-moz-placeholder { + color: #999 !important; + opacity: 1; + } + :-ms-input-placeholder { + color: #999 !important; + opacity: 1; + } + .formerize-placeholder { + color: #999 !important; + opacity: 1; + } + .box { + border-radius: 4px; + border: 1px solid hsla(0, 0%, 56.5%, 0.5); + 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 { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + font-family: FontAwesome; + font-style: normal; + font-weight: 400; + text-transform: none !important; + } + .icon > .label { + display: none; + } + .icon.style1:before { + color: #c3e895; + } + .icon.style2:before { + color: #8addaa; + } + .icon.style3:before { + color: #6bd4c8; + } + .icon.style4:before { + color: #57aed3; + } + .icon.style5:before { + color: #4a87d3; + } + .icon.style6:before { + color: #6b88e6; + } + .icon.major { + text-decoration: none; + color: #555; + cursor: default; + display: inline-block; + margin: 0 0 1.5em; + } + .icon.major:before { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + font-family: FontAwesome; + font-style: normal; + font-weight: 400; + text-transform: none !important; + font-size: 4em; + line-height: 1em; + } + .image { + border-radius: 4px; + border: 0; + display: inline-block; + position: relative; + } + .image img { + border-radius: 4px; + display: block; + } + .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.left, + .image.right { + max-width: 40%; + } + .image.left img, + .image.right img { + width: 100%; + } + .image.fit { + display: block; + margin: 0 0 2em; + width: 100%; + } + .image.fit img { + width: 100%; + } + ol { + list-style: decimal; + margin: 0 0 2em; + padding-left: 1.25em; + } + ol li { + padding-left: 0.25em; + } + ul { + list-style: disc; + margin: 0 0 2em; + padding-left: 1em; + } + ul li { + padding-left: 0.5em; + } + ul.alt { + list-style: none; + padding-left: 0; + } + ul.alt li { + border-top: 1px solid hsla(0, 0%, 56.5%, 0.5); + 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; + padding: 0 1.25em 0 0; + } + ul.icons li:last-child { + padding-right: 0; + } + ul.icons li .icon:before { + font-size: 1.5em; + } + ul.major-icons { + list-style: none; + padding-left: 0; + } + ul.major-icons li { + display: inline-block; + padding: 2.5em; + text-align: center; + } + ul.major-icons li .icon { + transform: rotate(45deg); + border-radius: 4px; + border: 1px solid hsla(0, 0%, 56.5%, 0.5); + display: inline-block; + height: 8em; + line-height: 8em; + margin: 0; + text-align: center; + width: 8em; + } + ul.major-icons li .icon:before { + transform: rotate(-45deg); + display: inline-block; + line-height: inherit; + } + ul.actions { + cursor: default; + list-style: none; + padding-left: 0; + } + ul.actions li { + display: inline-block; + padding: 0 1em 0 0; + vertical-align: middle; + } + ul.actions li:last-child { + padding-right: 0; + } + ul.actions.small li { + padding: 0 0.5em 0 0; + } + ul.actions.vertical li { + display: block; + padding: 1em 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; + } + ul.actions.vertical.small li:first-child { + padding-top: 0; + } + ul.actions.uniform li > * { + min-width: 12em; + } + 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; + } + .table-wrapper { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + } + table { + margin: 0 0 2em; + width: 100%; + } + table tbody tr { + border-left: 0; + border-right: 0; + } + table tbody tr:nth-child(odd) { + background-color: hsla(0, 0%, 56.5%, 0.075); + } + table td { + padding: 0.75em; + } + table th { + color: #555; + font-size: 0.9em; + font-weight: 400; + padding: 0 0.75em 0.75em; + text-align: left; + } + table thead { + border-bottom: 1px solid hsla(0, 0%, 56.5%, 0.5); + } + table tfoot { + border-top: 1px solid hsla(0, 0%, 56.5%, 0.5); + } + table.alt { + border-collapse: separate; + } + table.alt tbody tr td { + border-color: hsla(0, 0%, 56.5%, 0.5); + border-style: solid; + border-width: 0 1px 1px 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, + button, + input[type="button"], + input[type="reset"], + input[type="submit"] { + -webkit-appearance: none; + appearance: none; + transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; + background-color: transparent; + border-radius: 4px; + border: 0; + box-shadow: inset 0 0 0 1px hsla(0, 0%, 56.5%, 0.5); + color: #555 !important; + cursor: pointer; + display: inline-block; + font-size: 0.9em; + font-weight: 400; + height: 2.75em; + letter-spacing: 0.125em; + line-height: 2.75em; + padding: 0 2em; + text-align: center; + text-decoration: none; + text-indent: 0.125em; + text-transform: uppercase; + white-space: nowrap; + } + .button:hover, + button:hover, + input[type="button"]:hover, + input[type="reset"]:hover, + input[type="submit"]:hover { + background-color: hsla(0, 0%, 56.5%, 0.075); + } + .button:active, + button:active, + input[type="button"]:active, + input[type="reset"]:active, + input[type="submit"]:active { + background-color: hsla(0, 0%, 56.5%, 0.2); + } + .button.icon, + button.icon, + input[type="button"].icon, + input[type="reset"].icon, + input[type="submit"].icon { + padding-left: 1.35em; + } + .button.icon:before, + button.icon:before, + input[type="button"].icon:before, + input[type="reset"].icon:before, + input[type="submit"].icon:before { + margin-right: 0.5em; + } + .button.fit, + button.fit, + input[type="button"].fit, + input[type="reset"].fit, + input[type="submit"].fit { + display: block; + margin: 0 0 1em; + width: 100%; + } + .button.small, + button.small, + input[type="button"].small, + input[type="reset"].small, + input[type="submit"].small { + font-size: 0.7em; + } + .button.big, + button.big, + input[type="button"].big, + input[type="reset"].big, + input[type="submit"].big { + font-size: 1.25em; + } + .button.special, + button.special, + input[type="button"].special, + input[type="reset"].special, + input[type="submit"].special { + background-color: #555; + box-shadow: none !important; + color: #fff !important; + } + .button.special:hover, + button.special:hover, + input[type="button"].special:hover, + input[type="reset"].special:hover, + input[type="submit"].special:hover { + background-color: #626262; + } + .button.special:active, + button.special:active, + input[type="button"].special:active, + input[type="reset"].special:active, + input[type="submit"].special:active { + background-color: #484848; + } + .button.disabled, + .button:disabled, + button.disabled, + button:disabled, + input[type="button"].disabled, + input[type="button"]:disabled, + input[type="reset"].disabled, + input[type="reset"]:disabled, + input[type="submit"].disabled, + input[type="submit"]:disabled { + cursor: default; + opacity: 0.25; + } + .main { + padding: 6em 0 4em; + } + .main.style1 { + background: #fff; + } + .main.style2 { + background-color: #333; + color: hsla(0, 0%, 100%, 0.75); + background-attachment: fixed, fixed; + background-image: url(data:image/png;base64,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), + url(/static/header-9a79c1e4b6ee359af63593cfcc5a5528.jpg); + background-size: auto, cover; + } + .main.style2 a { + border-bottom-color: hsla(0, 0%, 100%, 0.5); + } + .main.style2 a:hover, + .main.style2 b, + .main.style2 h1, + .main.style2 h2, + .main.style2 h3, + .main.style2 h4, + .main.style2 h5, + .main.style2 h6, + .main.style2 header p, + .main.style2 strong { + color: #fff; + } + .main.style2 header.major:after { + background: #fff; + } + .main.style2 .button, + .main.style2 button, + .main.style2 input[type="button"], + .main.style2 input[type="reset"], + .main.style2 input[type="submit"] { + box-shadow: inset 0 0 0 1px #fff; + color: #fff !important; + } + .main.style2 .button:hover, + .main.style2 button:hover, + .main.style2 input[type="button"]:hover, + .main.style2 input[type="reset"]:hover, + .main.style2 input[type="submit"]:hover { + background-color: hsla(0, 0%, 100%, 0.125); + } + .main.style2 .button:active, + .main.style2 button:active, + .main.style2 input[type="button"]:active, + .main.style2 input[type="reset"]:active, + .main.style2 input[type="submit"]:active { + background-color: hsla(0, 0%, 100%, 0.25); + } + .main.style2 .button.special, + .main.style2 button.special, + .main.style2 input[type="button"].special, + .main.style2 input[type="reset"].special, + .main.style2 input[type="submit"].special { + background-color: #fff; + box-shadow: inset 0 0 0 1px #fff !important; + color: #333 !important; + } + .main.style2 .button.special:hover, + .main.style2 button.special:hover, + .main.style2 input[type="button"].special:hover, + .main.style2 input[type="reset"].special:hover, + .main.style2 input[type="submit"].special:hover { + background-color: hsla(0, 0%, 100%, 0.125) !important; + color: #fff !important; + } + .main.style2 .button.special:active, + .main.style2 button.special:active, + .main.style2 input[type="button"].special:active, + .main.style2 input[type="reset"].special:active, + .main.style2 input[type="submit"].special:active { + background-color: hsla(0, 0%, 100%, 0.25) !important; + } + .main.style2 ul.major-icons li .icon { + border-color: #fff; + } + .main.style2 .icon.major { + color: #fff; + } + #header { + padding: 9em 0; + background-color: #4686a0; + color: hsla(0, 0%, 100%, 0.75); + background-attachment: fixed, fixed, fixed; + background-image: url(data:image/png;base64,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), + url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTAwMHB4IiBoZWlnaHQ9IjEwMDBweCIgdmlld0JveD0iMCAwIDEwMDAgMTAwMCIgem9vbUFuZFBhbj0iZGlzYWJsZSI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsNCgkJLnAtNCB7IGZpbGw6IHJnYmEoMjU1LDI1NSwyNTUsMC4xNik7IH0NCgkJLnAtMyB7IGZpbGw6IHJnYmEoMjU1LDI1NSwyNTUsMC4xMik7IH0NCgkJLnAtMiB7IGZpbGw6IHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7IH0NCgkJLnAtMSB7IGZpbGw6IHJnYmEoMjU1LDI1NSwyNTUsMC4wNCk7IH0NCgkJLnAwIHsgZmlsbDogbm9uZTsgfQ0KCQkucDEgeyBmaWxsOiByZ2JhKDAsMCwwLDAuMDI1KTsgfQ0KCQkucDIgeyBmaWxsOiByZ2JhKDAsMCwwLDAuMDUpOyB9DQoJCS5wMyB7IGZpbGw6IHJnYmEoMCwwLDAsMC4wNzUpOyB9DQoJCS5wNCB7IGZpbGw6IHJnYmEoMCwwLDAsMC4xKTsgfQ0KICAgIF1dPjwvc3R5bGU+PHBvbHlnb24gY2xhc3M9InAtNCIgcG9pbnRzPSItMTEyNSwwIC0zNzUsMTAwMCAxMjUsMTAwMCAtODc1LDAiLz48cG9seWdvbiBjbGFzcz0icC0zIiBwb2ludHM9Ii04NzUsMCAxMjUsMTAwMCAzNzUsMTAwMCAtNjI1LDAiLz48cG9seWdvbiBjbGFzcz0icC0yIiBwb2ludHM9Ii02MjUsMCAzNzUsMTAwMCA2MjUsMTAwMCAtMzc1LDAiLz48cG9seWdvbiBjbGFzcz0icC0xIiBwb2ludHM9Ii0zNzUsMCA2MjUsMTAwMCA4NzUsMTAwMCAtMTI1LDAiLz48cG9seWdvbiBjbGFzcz0icDAiIHBvaW50cz0iLTEyNSwwIDg3NSwxMDAwIDExMjUsMTAwMCAxMjUsMCIvPjxwb2x5Z29uIGNsYXNzPSJwMSIgcG9pbnRzPSIxMjUsMCAxMTI1LDEwMDAgMTM3NSwxMDAwIDM3NSwwIi8+PHBvbHlnb24gY2xhc3M9InAyIiBwb2ludHM9IjM3NSwwIDEzNzUsMTAwMCAxNjI1LDEwMDAgNjI1LDAiLz48cG9seWdvbiBjbGFzcz0icDMiIHBvaW50cz0iNjI1LDAgMTYyNSwxMDAwIDE4NzUsMTAwMCA4NzUsMCIvPjxwb2x5Z29uIGNsYXNzPSJwNCIgcG9pbnRzPSI4NzUsMCAxODc1LDEwMDAgMjEyNSwxMDAwIDExMjUsMCIvPjwvc3ZnPg==), + linear-gradient(45deg, #9dc66b 5%, #4fa49a 30%, #4361c2); + background-position: 0 0, 50%, 50%; + background-size: auto, cover, cover; + overflow: hidden; + position: relative; + text-align: center; + } + #header a { + border-bottom-color: hsla(0, 0%, 100%, 0.5); + } + #header a:hover, + #header b, + #header h1, + #header h2, + #header h3, + #header h4, + #header h5, + #header h6, + #header header p, + #header strong { + color: #fff; + } + #header header.major:after { + background: #fff; + } + #header .button, + #header button, + #header input[type="button"], + #header input[type="reset"], + #header input[type="submit"] { + box-shadow: inset 0 0 0 1px #fff; + color: #fff !important; + } + #header .button:hover, + #header button:hover, + #header input[type="button"]:hover, + #header input[type="reset"]:hover, + #header input[type="submit"]:hover { + background-color: hsla(0, 0%, 100%, 0.125); + } + #header .button:active, + #header button:active, + #header input[type="button"]:active, + #header input[type="reset"]:active, + #header input[type="submit"]:active { + background-color: hsla(0, 0%, 100%, 0.25); + } + #header .button.special, + #header button.special, + #header input[type="button"].special, + #header input[type="reset"].special, + #header input[type="submit"].special { + background-color: #fff; + box-shadow: inset 0 0 0 1px #fff !important; + color: #4686a0 !important; + } + #header .button.special:hover, + #header button.special:hover, + #header input[type="button"].special:hover, + #header input[type="reset"].special:hover, + #header input[type="submit"].special:hover { + background-color: hsla(0, 0%, 100%, 0.125) !important; + color: #fff !important; + } + #header .button.special:active, + #header button.special:active, + #header input[type="button"].special:active, + #header input[type="reset"].special:active, + #header input[type="submit"].special:active { + background-color: hsla(0, 0%, 100%, 0.25) !important; + } + #header ul.major-icons li .icon { + border-color: #fff; + } + #header .icon.major { + color: #fff; + } + #header h1 { + margin: 0; + } + #header p { + margin: 1em 0 0; + } + #header .actions { + margin: 2.5em 0 0; + position: relative; + } + #header .actions:after { + background: #fff; + content: ""; + height: 100vh; + left: 50%; + position: absolute; + top: 100%; + width: 1px; + } + #header .inner { + transition: transform 1.5s ease, opacity 2s ease; + transition-delay: 0.25s; + transform: scale(1); + opacity: 1; + position: relative; + z-index: 1; + } + #header .inner .actions { + transition: transform 1.25s ease; + transition-delay: 1s; + transform: translateY(0); + opacity: 1; + } + #header:after { + transition: opacity 1s ease; + background-image: linear-gradient(45deg, #4fa49a, #4361c2); + content: ""; + height: 100%; + left: 0; + opacity: 0; + position: absolute; + top: 0; + width: 100%; + } + .body.is-loading #header .inner { + transform: scale(1.05); + opacity: 0; + } + .body.is-loading #header .inner .actions { + transform: translateY(30em); + opacity: 0; + } + .body.is-loading #header:after { + opacity: 1; + } + #footer { + padding: 6em 0; + background-color: #4686a0; + color: hsla(0, 0%, 100%, 0.75); + background-attachment: fixed, fixed, fixed; + background-image: url(data:image/png;base64,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), + url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTAwMHB4IiBoZWlnaHQ9IjEwMDBweCIgdmlld0JveD0iMCAwIDEwMDAgMTAwMCIgem9vbUFuZFBhbj0iZGlzYWJsZSI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsNCgkJLnAtNCB7IGZpbGw6IHJnYmEoMjU1LDI1NSwyNTUsMC4xNik7IH0NCgkJLnAtMyB7IGZpbGw6IHJnYmEoMjU1LDI1NSwyNTUsMC4xMik7IH0NCgkJLnAtMiB7IGZpbGw6IHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7IH0NCgkJLnAtMSB7IGZpbGw6IHJnYmEoMjU1LDI1NSwyNTUsMC4wNCk7IH0NCgkJLnAwIHsgZmlsbDogbm9uZTsgfQ0KCQkucDEgeyBmaWxsOiByZ2JhKDAsMCwwLDAuMDI1KTsgfQ0KCQkucDIgeyBmaWxsOiByZ2JhKDAsMCwwLDAuMDUpOyB9DQoJCS5wMyB7IGZpbGw6IHJnYmEoMCwwLDAsMC4wNzUpOyB9DQoJCS5wNCB7IGZpbGw6IHJnYmEoMCwwLDAsMC4xKTsgfQ0KICAgIF1dPjwvc3R5bGU+PHBvbHlnb24gY2xhc3M9InA0IiBwb2ludHM9Ii0xMTI1LDAgLTM3NSwxMDAwIDEyNSwxMDAwIC04NzUsMCIvPjxwb2x5Z29uIGNsYXNzPSJwMyIgcG9pbnRzPSItODc1LDAgMTI1LDEwMDAgMzc1LDEwMDAgLTYyNSwwIi8+PHBvbHlnb24gY2xhc3M9InAyIiBwb2ludHM9Ii02MjUsMCAzNzUsMTAwMCA2MjUsMTAwMCAtMzc1LDAiLz48cG9seWdvbiBjbGFzcz0icDEiIHBvaW50cz0iLTM3NSwwIDYyNSwxMDAwIDg3NSwxMDAwIC0xMjUsMCIvPjxwb2x5Z29uIGNsYXNzPSJwMCIgcG9pbnRzPSItMTI1LDAgODc1LDEwMDAgMTEyNSwxMDAwIDEyNSwwIi8+PHBvbHlnb24gY2xhc3M9InAtMSIgcG9pbnRzPSIxMjUsMCAxMTI1LDEwMDAgMTM3NSwxMDAwIDM3NSwwIi8+PHBvbHlnb24gY2xhc3M9InAtMiIgcG9pbnRzPSIzNzUsMCAxMzc1LDEwMDAgMTYyNSwxMDAwIDYyNSwwIi8+PHBvbHlnb24gY2xhc3M9InAtMyIgcG9pbnRzPSI2MjUsMCAxNjI1LDEwMDAgMTg3NSwxMDAwIDg3NSwwIi8+PHBvbHlnb24gY2xhc3M9InAtNCIgcG9pbnRzPSI4NzUsMCAxODc1LDEwMDAgMjEyNSwxMDAwIDExMjUsMCIvPjwvc3ZnPg==), + linear-gradient(45deg, #4361c2, #4fa49a 50%, #9dc66b 95%); + background-position: 0 0, 50%, 50%; + background-size: auto, cover, cover; + text-align: center; + } + #footer a { + border-bottom-color: hsla(0, 0%, 100%, 0.5); + } + #footer a:hover, + #footer b, + #footer h1, + #footer h2, + #footer h3, + #footer h4, + #footer h5, + #footer h6, + #footer header p, + #footer strong { + color: #fff; + } + #footer header.major:after { + background: #fff; + } + #footer .button, + #footer button, + #footer input[type="button"], + #footer input[type="reset"], + #footer input[type="submit"] { + box-shadow: inset 0 0 0 1px #fff; + color: #fff !important; + } + #footer .button:hover, + #footer button:hover, + #footer input[type="button"]:hover, + #footer input[type="reset"]:hover, + #footer input[type="submit"]:hover { + background-color: hsla(0, 0%, 100%, 0.125); + } + #footer .button:active, + #footer button:active, + #footer input[type="button"]:active, + #footer input[type="reset"]:active, + #footer input[type="submit"]:active { + background-color: hsla(0, 0%, 100%, 0.25); + } + #footer .button.special, + #footer button.special, + #footer input[type="button"].special, + #footer input[type="reset"].special, + #footer input[type="submit"].special { + background-color: #fff; + box-shadow: inset 0 0 0 1px #fff !important; + color: #4686a0 !important; + } + #footer .button.special:hover, + #footer button.special:hover, + #footer input[type="button"].special:hover, + #footer input[type="reset"].special:hover, + #footer input[type="submit"].special:hover { + background-color: hsla(0, 0%, 100%, 0.125) !important; + color: #fff !important; + } + #footer .button.special:active, + #footer button.special:active, + #footer input[type="button"].special:active, + #footer input[type="reset"].special:active, + #footer input[type="submit"].special:active { + background-color: hsla(0, 0%, 100%, 0.25) !important; + } + #footer ul.major-icons li .icon { + border-color: #fff; + } + #footer .icon.major { + color: #fff; + } + #footer .icons { + margin: 0; + } + #footer .copyright { + font-size: 0.8em; + list-style: none; + margin: 2em 0 0; + padding: 0; + } + #footer .copyright li { + border-left: 1px solid; + display: inline-block; + line-height: 1em; + margin-left: 1em; + padding: 0 0 0 1em; + } + #footer .copyright li:first-child { + border-left: 0; + margin-left: 0; + padding: 0; + } + @media screen and (max-width: 1680px) { + body, + input, + select, + textarea { + font-size: 14pt; + } + #header { + padding: 6em 0; + } + } + @media screen and (max-width: 1280px) { + body, + input, + select, + textarea { + font-size: 13pt; + } + h1 br, + h2 br, + h3 br, + h4 br, + h5 br, + h6 br { + display: none; + } + ul.major-icons li { + padding: 2em; + } + ul.major-icons li .icon { + height: 8em; + line-height: 8em; + width: 8em; + } + .main { + padding: 4em 0 2em; + } + #header, + .main.style2 { + background-attachment: scroll; + } + #header { + padding: 5em 0; + } + #header br { + display: inline; + } + #footer { + padding: 4em 0; + background-attachment: scroll; + } + } + @media screen and (max-width: 980px) { + ul.major-icons li { + padding: 2em; + } + ul.major-icons li .icon { + height: 7em; + line-height: 7em; + width: 7em; + } + .main { + padding: 5em 3em 3em; + } + #header { + padding: 8em 3em; + } + #footer { + padding: 5em 3em; + } + #one, + #two { + text-align: center; + } + } + @media screen and (max-width: 736px) { + body, + input, + select, + textarea { + font-size: 12pt; + } + h1 { + font-size: 1.75em; + } + h2 { + font-size: 1.5em; + } + h3 { + font-size: 1.1em; + } + h4 { + font-size: 1em; + } + ul.major-icons li { + padding: 1.5em; + } + ul.major-icons li .icon { + height: 5em; + line-height: 5em; + width: 5em; + } + ul.major-icons li .icon:before { + font-size: 42px; + } + .icon.major { + margin: 0 0 1em; + } + .button, + button, + input[type="button"], + input[type="reset"], + input[type="submit"] { + height: 3em; + line-height: 3em; + } + .main { + padding: 3em 1.5em 1em; + } + #header { + padding: 4em 3em; + } + #header .actions { + margin: 2em 0 0; + } + #footer { + padding: 3em 1.5em; + } + } + @media screen and (max-width: 480px) { + .inner img { + max-width: 400; + width: 100%; + height: auto; + } + 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 li > .icon:before { + margin-left: -2em; + } + ul.actions.small li { + padding: 0.5em 0 0; + } + ul.actions.small li:first-child { + padding-top: 0; + } + .button, + input[type="button"], + input[type="reset"], + input[type="submit"] { + padding: 0; + } + .main { + padding: 2em 1.5em 0.1em; + } + #header { + padding: 4em 2em; + } + #header br { + display: none; + } + #footer { + padding: 2em 1.5em; + } + #footer .copyright { + margin: 1.5em 0 0; + } + #footer .copyright li { + border: 0; + display: block; + margin: 1em 0 0; + padding: 0; + } + #footer .copyright li:first-child { + margin-top: 0; + } + } + @media screen and (max-width: 360px) { + body, + html { + min-width: 320px; + } + .main { + padding: 2em 1em 0.1em; + } + #header { + padding: 3em 1em; + } + #footer { + padding: 2em 1em; + } + } + + + Freedomotic IoT Framework + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+
+
+

What is Freedomotic?

+
+

+ Freedomotic is an open source, flexible and secure Internet of + Things (IoT) development framework. It can be used to build + and manage modern smart spaces. It is targeted at individuals + (home automation) as well as businesses (smart retail + environments, ambient aware marketing, monitoring and + analytics, etc).
Freedomotic can interact with + well-known automation protocols as well as with “do it + yourself” solutions. It treats the web, social networks and + branded frontends as first class components of the system. +

+
+
+ +
+
+
+
+
+
+
    +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
+
+
+

Features

+

+ Identity: All things have a persistent unique + identifier. +

+

+ Services: The framework is centered around the concept + of services for users. +

+

+ Simulation: Freedomotic allows you to fully run it + without any sensor or actuator connected. You can configure + and test your automation before buying the hardware. +

+

+ Distributed: Freedomotic can be run as a decentralized + peer to peer network with no single point of failure. +

+

+ Plugins: You can install new plugins at runtime + enriching the features. +

+

+ Auto discovery: Freedomotic can autodiscover the + objects (eg: home automation devices) deployed in your real + environment. No more diving into complex configuration files. +

+

+ History aware: It can track any status change in the + environment and update them in a database for analysis. +

+

Secure, Multilanguage and Multiuser ...

+
+
+
+
+
+
+
+

Learn and Contribute

+
+

+ Learn how to use Freedomotic and how to work internally or + develop your own plugin. +

+
+
+ +

Plugins

+

+ Download and install a plugin to extend the functionalities of + your framework. +

+ +
+
+ +

Developer Manual

+

+ Learn the framework architecture, explore internals and write + your own plugins. +

+ +
+
+ +

User Manual

+

+ How to download, install and configure your instance of + Freedomotic. +

+ +
+
+
+
+
+

Join our community

+

We have an international and an Italian community

+ +
+
+
+
+

Want to try it?

+

*** Dailybuilds are experimental ***

+ +
+
+ +
+
+
+
+ + + + + + + + + +