')
- .append(i.clone())
- .remove()
- .html()
- .replace(/type="password"/i, 'type="text"')
- .replace(/type=password/i, 'type=text')
- );
-
- if (i.attr('id') != '')
- x.attr('id', i.attr('id') + '-polyfill-field');
-
- if (i.attr('name') != '')
- x.attr('name', i.attr('name') + '-polyfill-field');
-
- x.addClass('polyfill-placeholder')
- .val(x.attr('placeholder')).insertAfter(i);
-
- if (i.val() == '')
- i.hide();
- else
- x.hide();
-
- i
- .on('blur', function(event) {
-
- event.preventDefault();
-
- var x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
-
- if (i.val() == '') {
-
- i.hide();
- x.show();
-
- }
-
- });
-
- x
- .on('focus', function(event) {
-
- event.preventDefault();
-
- var i = x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + ']');
-
- x.hide();
-
- i
- .show()
- .focus();
-
- })
- .on('keypress', function(event) {
-
- event.preventDefault();
- x.val('');
-
- });
-
- });
-
- // Events.
- $this
- .on('submit', function() {
-
- $this.find('input[type=text],input[type=password],textarea')
- .each(function(event) {
-
- var i = $(this);
-
- if (i.attr('name').match(/-polyfill-field$/))
- i.attr('name', '');
-
- if (i.val() == i.attr('placeholder')) {
-
- i.removeClass('polyfill-placeholder');
- i.val('');
-
- }
-
- });
-
- })
- .on('reset', function(event) {
-
- event.preventDefault();
-
- $this.find('select')
- .val($('option:first').val());
-
- $this.find('input,textarea')
- .each(function() {
-
- var i = $(this),
- x;
-
- i.removeClass('polyfill-placeholder');
-
- switch (this.type) {
-
- case 'submit':
- case 'reset':
- break;
-
- case 'password':
- i.val(i.attr('defaultValue'));
-
- x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
-
- if (i.val() == '') {
- i.hide();
- x.show();
- }
- else {
- i.show();
- x.hide();
- }
-
- break;
-
- case 'checkbox':
- case 'radio':
- i.attr('checked', i.attr('defaultValue'));
- break;
-
- case 'text':
- case 'textarea':
- i.val(i.attr('defaultValue'));
-
- if (i.val() == '') {
- i.addClass('polyfill-placeholder');
- i.val(i.attr('placeholder'));
- }
-
- break;
-
- default:
- i.val(i.attr('defaultValue'));
- break;
-
- }
- });
-
- });
-
- return $this;
-
- };
-
- /**
- * Moves elements to/from the first positions of their respective parents.
- * @param {jQuery} $elements Elements (or selector) to move.
- * @param {bool} condition If true, moves elements to the top. Otherwise, moves elements back to their original locations.
- */
- $.prioritize = function($elements, condition) {
-
- var key = '__prioritize';
-
- // Expand $elements if it's not already a jQuery object.
- if (typeof $elements != 'jQuery')
- $elements = $($elements);
-
- // Step through elements.
- $elements.each(function() {
-
- var $e = $(this), $p,
- $parent = $e.parent();
-
- // No parent? Bail.
- if ($parent.length == 0)
- return;
-
- // Not moved? Move it.
- if (!$e.data(key)) {
-
- // Condition is false? Bail.
- if (!condition)
- return;
-
- // Get placeholder (which will serve as our point of reference for when this element needs to move back).
- $p = $e.prev();
-
- // Couldn't find anything? Means this element's already at the top, so bail.
- if ($p.length == 0)
- return;
-
- // Move element to top of parent.
- $e.prependTo($parent);
-
- // Mark element as moved.
- $e.data(key, $p);
-
- }
-
- // Moved already?
- else {
-
- // Condition is true? Bail.
- if (condition)
- return;
-
- $p = $e.data(key);
-
- // Move element back to its original location (using our placeholder).
- $e.insertAfter($p);
-
- // Unmark element as moved.
- $e.removeData(key);
-
- }
-
- });
-
- };
-
-})(jQuery);
\ No newline at end of file
diff --git a/website/assets/sass/libs/_breakpoints.scss b/website/assets/sass/libs/_breakpoints.scss
deleted file mode 100644
index c5301d8..0000000
--- a/website/assets/sass/libs/_breakpoints.scss
+++ /dev/null
@@ -1,223 +0,0 @@
-// breakpoints.scss v1.0 | @ajlkn | MIT licensed */
-
-// Vars.
-
- /// Breakpoints.
- /// @var {list}
- $breakpoints: () !global;
-
-// Mixins.
-
- /// Sets breakpoints.
- /// @param {map} $x Breakpoints.
- @mixin breakpoints($x: ()) {
- $breakpoints: $x !global;
- }
-
- /// Wraps @content in a @media block targeting a specific orientation.
- /// @param {string} $orientation Orientation.
- @mixin orientation($orientation) {
- @media screen and (orientation: #{$orientation}) {
- @content;
- }
- }
-
- /// Wraps @content in a @media block using a given query.
- /// @param {string} $query Query.
- @mixin breakpoint($query: null) {
-
- $breakpoint: null;
- $op: null;
- $media: null;
-
- // Determine operator, breakpoint.
-
- // Greater than or equal.
- @if (str-slice($query, 0, 2) == '>=') {
-
- $op: 'gte';
- $breakpoint: str-slice($query, 3);
-
- }
-
- // Less than or equal.
- @elseif (str-slice($query, 0, 2) == '<=') {
-
- $op: 'lte';
- $breakpoint: str-slice($query, 3);
-
- }
-
- // Greater than.
- @elseif (str-slice($query, 0, 1) == '>') {
-
- $op: 'gt';
- $breakpoint: str-slice($query, 2);
-
- }
-
- // Less than.
- @elseif (str-slice($query, 0, 1) == '<') {
-
- $op: 'lt';
- $breakpoint: str-slice($query, 2);
-
- }
-
- // Not.
- @elseif (str-slice($query, 0, 1) == '!') {
-
- $op: 'not';
- $breakpoint: str-slice($query, 2);
-
- }
-
- // Equal.
- @else {
-
- $op: 'eq';
- $breakpoint: $query;
-
- }
-
- // Build media.
- @if ($breakpoint and map-has-key($breakpoints, $breakpoint)) {
-
- $a: map-get($breakpoints, $breakpoint);
-
- // Range.
- @if (type-of($a) == 'list') {
-
- $x: nth($a, 1);
- $y: nth($a, 2);
-
- // Max only.
- @if ($x == null) {
-
- // Greater than or equal (>= 0 / anything)
- @if ($op == 'gte') {
- $media: 'screen';
- }
-
- // Less than or equal (<= y)
- @elseif ($op == 'lte') {
- $media: 'screen and (max-width: ' + $y + ')';
- }
-
- // Greater than (> y)
- @elseif ($op == 'gt') {
- $media: 'screen and (min-width: ' + ($y + 1) + ')';
- }
-
- // Less than (< 0 / invalid)
- @elseif ($op == 'lt') {
- $media: 'screen and (max-width: -1px)';
- }
-
- // Not (> y)
- @elseif ($op == 'not') {
- $media: 'screen and (min-width: ' + ($y + 1) + ')';
- }
-
- // Equal (<= y)
- @else {
- $media: 'screen and (max-width: ' + $y + ')';
- }
-
- }
-
- // Min only.
- @else if ($y == null) {
-
- // Greater than or equal (>= x)
- @if ($op == 'gte') {
- $media: 'screen and (min-width: ' + $x + ')';
- }
-
- // Less than or equal (<= inf / anything)
- @elseif ($op == 'lte') {
- $media: 'screen';
- }
-
- // Greater than (> inf / invalid)
- @elseif ($op == 'gt') {
- $media: 'screen and (max-width: -1px)';
- }
-
- // Less than (< x)
- @elseif ($op == 'lt') {
- $media: 'screen and (max-width: ' + ($x - 1) + ')';
- }
-
- // Not (< x)
- @elseif ($op == 'not') {
- $media: 'screen and (max-width: ' + ($x - 1) + ')';
- }
-
- // Equal (>= x)
- @else {
- $media: 'screen and (min-width: ' + $x + ')';
- }
-
- }
-
- // Min and max.
- @else {
-
- // Greater than or equal (>= x)
- @if ($op == 'gte') {
- $media: 'screen and (min-width: ' + $x + ')';
- }
-
- // Less than or equal (<= y)
- @elseif ($op == 'lte') {
- $media: 'screen and (max-width: ' + $y + ')';
- }
-
- // Greater than (> y)
- @elseif ($op == 'gt') {
- $media: 'screen and (min-width: ' + ($y + 1) + ')';
- }
-
- // Less than (< x)
- @elseif ($op == 'lt') {
- $media: 'screen and (max-width: ' + ($x - 1) + ')';
- }
-
- // Not (< x and > y)
- @elseif ($op == 'not') {
- $media: 'screen and (max-width: ' + ($x - 1) + '), screen and (min-width: ' + ($y + 1) + ')';
- }
-
- // Equal (>= x and <= y)
- @else {
- $media: 'screen and (min-width: ' + $x + ') and (max-width: ' + $y + ')';
- }
-
- }
-
- }
-
- // String.
- @else {
-
- // Missing a media type? Prefix with "screen".
- @if (str-slice($a, 0, 1) == '(') {
- $media: 'screen and ' + $a;
- }
-
- // Otherwise, use as-is.
- @else {
- $media: $a;
- }
-
- }
-
- }
-
- // Output.
- @media #{$media} {
- @content;
- }
-
- }
\ No newline at end of file
diff --git a/website/assets/sass/libs/_functions.scss b/website/assets/sass/libs/_functions.scss
deleted file mode 100644
index f563aab..0000000
--- a/website/assets/sass/libs/_functions.scss
+++ /dev/null
@@ -1,90 +0,0 @@
-/// 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;
-
- @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);
-
- @for $i from 1 through length($list) {
-
- @if $i != $index {
- $result: append($result, nth($list, $i));
- }
-
- }
-
- }
-
- @return $result;
-
-}
-
-/// 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;
-
-}
-
-/// Gets a duration value.
-/// @param {string} $keys Key(s).
-/// @return {string} Value.
-@function _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...);
-}
-
-/// Gets a misc value.
-/// @param {string} $keys Key(s).
-/// @return {string} Value.
-@function _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...);
-}
-
-/// Gets a size value.
-/// @param {string} $keys Key(s).
-/// @return {string} Value.
-@function _size($keys...) {
- @return val($size, $keys...);
-}
\ No newline at end of file
diff --git a/website/assets/sass/libs/_html-grid.scss b/website/assets/sass/libs/_html-grid.scss
deleted file mode 100644
index 7438a8c..0000000
--- a/website/assets/sass/libs/_html-grid.scss
+++ /dev/null
@@ -1,149 +0,0 @@
-// html-grid.scss v1.0 | @ajlkn | MIT licensed */
-
-// Mixins.
-
- /// Initializes the current element as an HTML grid.
- /// @param {mixed} $gutters Gutters (either a single number to set both column/row gutters, or a list to set them individually).
- /// @param {mixed} $suffix Column class suffix (optional; either a single suffix or a list).
- @mixin html-grid($gutters: 1.5em, $suffix: '') {
-
- // Initialize.
- $cols: 12;
- $multipliers: 0, 0.25, 0.5, 1, 1.50, 2.00;
- $unit: 100% / $cols;
-
- // Suffixes.
- $suffixes: null;
-
- @if (type-of($suffix) == 'list') {
- $suffixes: $suffix;
- }
- @else {
- $suffixes: ($suffix);
- }
-
- // Gutters.
- $guttersCols: null;
- $guttersRows: null;
-
- @if (type-of($gutters) == 'list') {
-
- $guttersCols: nth($gutters, 1);
- $guttersRows: nth($gutters, 2);
-
- }
- @else {
-
- $guttersCols: $gutters;
- $guttersRows: 0;
-
- }
-
- // Row.
- display: flex;
- flex-wrap: wrap;
- box-sizing: border-box;
- align-items: stretch;
-
- // Columns.
- > * {
- box-sizing: border-box;
- }
-
- // Gutters.
- &.gtr-uniform {
- > * {
- > :last-child {
- margin-bottom: 0;
- }
- }
- }
-
- // Alignment.
- &.aln-left {
- justify-content: flex-start;
- }
-
- &.aln-center {
- justify-content: center;
- }
-
- &.aln-right {
- justify-content: flex-end;
- }
-
- &.aln-top {
- align-items: flex-start;
- }
-
- &.aln-middle {
- align-items: center;
- }
-
- &.aln-bottom {
- align-items: flex-end;
- }
-
- // Step through suffixes.
- @each $suffix in $suffixes {
-
- // Suffix.
- @if ($suffix != '') {
- $suffix: '-' + $suffix;
- }
- @else {
- $suffix: '';
- }
-
- // Row.
-
- // Important.
- > .imp#{$suffix} {
- order: -1;
- }
-
- // Columns, offsets.
- @for $i from 1 through $cols {
- > .col-#{$i}#{$suffix} {
- width: $unit * $i;
- }
-
- > .off-#{$i}#{$suffix} {
- margin-left: $unit * $i;
- }
- }
-
- // Step through multipliers.
- @each $multiplier in $multipliers {
-
- // Gutters.
- $class: null;
-
- @if ($multiplier != 1) {
- $class: '.gtr-' + ($multiplier * 100);
- }
-
- {$class} {
- margin-top: ($guttersRows * $multiplier * -1);
- margin-left: ($guttersCols * $multiplier * -1);
-
- > * {
- padding: ($guttersRows * $multiplier) 0 0 ($guttersCols * $multiplier);
- }
-
- // Uniform.
- &.gtr-uniform {
- margin-top: $guttersCols * $multiplier * -1;
-
- > * {
- padding-top: $guttersCols * $multiplier;
- }
- }
-
- }
-
- }
-
- }
-
- }
\ No newline at end of file
diff --git a/website/assets/sass/libs/_mixins.scss b/website/assets/sass/libs/_mixins.scss
deleted file mode 100644
index a331483..0000000
--- a/website/assets/sass/libs/_mixins.scss
+++ /dev/null
@@ -1,78 +0,0 @@
-/// Makes an element's :before pseudoelement a FontAwesome icon.
-/// @param {string} $content Optional content value to use.
-/// @param {string} $category Optional category to use.
-/// @param {string} $where Optional pseudoelement to target (before or after).
-@mixin icon($content: false, $category: regular, $where: before) {
-
- text-decoration: none;
-
- &:#{$where} {
-
- @if $content {
- content: $content;
- }
-
- -moz-osx-font-smoothing: grayscale;
- -webkit-font-smoothing: antialiased;
- display: inline-block;
- font-style: normal;
- font-variant: normal;
- text-rendering: auto;
- line-height: 1;
- text-transform: none !important;
-
- @if ($category == brands) {
- font-family: 'Font Awesome 5 Brands';
- }
- @elseif ($category == solid) {
- font-family: 'Font Awesome 5 Free';
- font-weight: 900;
- }
- @else {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400;
- }
-
- }
-
-}
-
-/// Applies padding to an element, taking the current element-margin value into account.
-/// @param {mixed} $tb Top/bottom padding.
-/// @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) {
-
- @if $important {
- $important: '!important';
- }
-
- $x: 0.1em;
-
- @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};
-
-}
-
-/// Encodes a SVG data URL so IE doesn't choke (via codepen.io/jakob-e/pen/YXXBrp).
-/// @param {string} $svg SVG data URL.
-/// @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');
-
- @return url("data:image/svg+xml;charset=utf8,#{$svg}");
-
-}
\ No newline at end of file
diff --git a/website/assets/sass/libs/_vars.scss b/website/assets/sass/libs/_vars.scss
deleted file mode 100644
index f2c0066..0000000
--- a/website/assets/sass/libs/_vars.scss
+++ /dev/null
@@ -1,59 +0,0 @@
-// Misc.
- $misc: (
- z-index-base: 10000
- );
-
-// Duration.
- $duration: (
- transition: 0.2s
- );
-
-// Size.
- $size: (
- border-radius: 0.35em,
- element-height: 2.75em,
- element-margin: 2em,
- container-width: 100%
- );
-
-// Font.
- $font: (
- family: ('Source Sans Pro', Helvetica, sans-serif),
- family-fixed: ('Courier New', monospace),
- weight: 400,
- weight-bold: 400
- );
-
-// Palette.
- $palette: (
- bg: #fff,
- fg: #a2a2a2,
- fg-bold: #787878,
- fg-light: #b2b2b2,
- border: #efefef,
- border-bg: #f7f7f7,
- border2: #dfdfdf,
- border2-bg: #e7e7e7,
-
- accent1: (
- bg: #49bf9d,
- fg: mix(#49bf9d, #ffffff, 25%),
- fg-bold: #ffffff,
- fg-light: mix(#49bf9d, #ffffff, 40%),
- border: rgba(255,255,255,0.25),
- border-bg: rgba(255,255,255,0.075),
- border2: rgba(255,255,255,0.5),
- border2-bg: rgba(255,255,255,0.2)
- ),
-
- accent2: (
- bg: #1f1815,
- fg: rgba(255,255,255,0.5),
- fg-bold: #ffffff,
- fg-light: rgba(255,255,255,0.4),
- border: rgba(255,255,255,0.25),
- border-bg: rgba(255,255,255,0.075),
- border2: rgba(255,255,255,0.5),
- border2-bg: rgba(255,255,255,0.2)
- )
- );
\ No newline at end of file
diff --git a/website/assets/sass/libs/_vendor.scss b/website/assets/sass/libs/_vendor.scss
deleted file mode 100644
index 6599a3f..0000000
--- a/website/assets/sass/libs/_vendor.scss
+++ /dev/null
@@ -1,376 +0,0 @@
-// vendor.scss v1.0 | @ajlkn | MIT licensed */
-
-// Vars.
-
- /// Vendor prefixes.
- /// @var {list}
- $vendor-prefixes: (
- '-moz-',
- '-webkit-',
- '-ms-',
- ''
- );
-
- /// Properties that should be vendorized.
- /// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org
- /// @var {list}
- $vendor-properties: (
-
- // Animation.
- 'animation',
- 'animation-delay',
- 'animation-direction',
- 'animation-duration',
- 'animation-fill-mode',
- 'animation-iteration-count',
- 'animation-name',
- 'animation-play-state',
- 'animation-timing-function',
-
- // Appearance.
- 'appearance',
-
- // Backdrop filter.
- 'backdrop-filter',
-
- // Background image options.
- 'background-clip',
- 'background-origin',
- 'background-size',
-
- // Box sizing.
- 'box-sizing',
-
- // Clip path.
- 'clip-path',
-
- // Filter effects.
- 'filter',
-
- // Flexbox.
- 'align-content',
- 'align-items',
- 'align-self',
- 'flex',
- 'flex-basis',
- 'flex-direction',
- 'flex-flow',
- 'flex-grow',
- 'flex-shrink',
- 'flex-wrap',
- 'justify-content',
- 'order',
-
- // Font feature.
- 'font-feature-settings',
- 'font-language-override',
- 'font-variant-ligatures',
-
- // Font kerning.
- 'font-kerning',
-
- // Fragmented borders and backgrounds.
- 'box-decoration-break',
-
- // Grid layout.
- 'grid-column',
- 'grid-column-align',
- 'grid-column-end',
- 'grid-column-start',
- 'grid-row',
- 'grid-row-align',
- 'grid-row-end',
- 'grid-row-start',
- 'grid-template-columns',
- 'grid-template-rows',
-
- // Hyphens.
- 'hyphens',
- 'word-break',
-
- // Masks.
- 'mask',
- 'mask-border',
- 'mask-border-outset',
- 'mask-border-repeat',
- 'mask-border-slice',
- 'mask-border-source',
- 'mask-border-width',
- 'mask-clip',
- 'mask-composite',
- 'mask-image',
- 'mask-origin',
- 'mask-position',
- 'mask-repeat',
- 'mask-size',
-
- // Multicolumn.
- 'break-after',
- 'break-before',
- 'break-inside',
- 'column-count',
- 'column-fill',
- 'column-gap',
- 'column-rule',
- 'column-rule-color',
- 'column-rule-style',
- 'column-rule-width',
- 'column-span',
- 'column-width',
- 'columns',
-
- // Object fit.
- 'object-fit',
- 'object-position',
-
- // Regions.
- 'flow-from',
- 'flow-into',
- 'region-fragment',
-
- // Scroll snap points.
- 'scroll-snap-coordinate',
- 'scroll-snap-destination',
- 'scroll-snap-points-x',
- 'scroll-snap-points-y',
- 'scroll-snap-type',
-
- // Shapes.
- 'shape-image-threshold',
- 'shape-margin',
- 'shape-outside',
-
- // Tab size.
- 'tab-size',
-
- // Text align last.
- 'text-align-last',
-
- // Text decoration.
- 'text-decoration-color',
- 'text-decoration-line',
- 'text-decoration-skip',
- 'text-decoration-style',
-
- // Text emphasis.
- 'text-emphasis',
- 'text-emphasis-color',
- 'text-emphasis-position',
- 'text-emphasis-style',
-
- // Text size adjust.
- 'text-size-adjust',
-
- // Text spacing.
- 'text-spacing',
-
- // Transform.
- 'transform',
- 'transform-origin',
-
- // Transform 3D.
- 'backface-visibility',
- 'perspective',
- 'perspective-origin',
- 'transform-style',
-
- // Transition.
- 'transition',
- 'transition-delay',
- 'transition-duration',
- 'transition-property',
- 'transition-timing-function',
-
- // Unicode bidi.
- 'unicode-bidi',
-
- // User select.
- 'user-select',
-
- // Writing mode.
- 'writing-mode',
-
- );
-
- /// Values that should be vendorized.
- /// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org
- /// @var {list}
- $vendor-values: (
-
- // Cross fade.
- 'cross-fade',
-
- // Element function.
- 'element',
-
- // Filter function.
- 'filter',
-
- // Flexbox.
- 'flex',
- 'inline-flex',
-
- // Grab cursors.
- 'grab',
- 'grabbing',
-
- // Gradients.
- 'linear-gradient',
- 'repeating-linear-gradient',
- 'radial-gradient',
- 'repeating-radial-gradient',
-
- // Grid layout.
- 'grid',
- 'inline-grid',
-
- // Image set.
- 'image-set',
-
- // Intrinsic width.
- 'max-content',
- 'min-content',
- 'fit-content',
- 'fill',
- 'fill-available',
- 'stretch',
-
- // Sticky position.
- 'sticky',
-
- // Transform.
- 'transform',
-
- // Zoom cursors.
- 'zoom-in',
- 'zoom-out',
-
- );
-
-// 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) {
-
- $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 {
-
- $result: ();
- $index: if($index < 0, length($list) + $index + 1, $index);
-
- @for $i from 1 through length($list) {
-
- @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);
-
- @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: '') {
-
- @each $string in $strings {
- $strings: set-nth($strings, index($strings, $string), str-replace($string, $search, $replace));
- }
-
- @return $strings;
-
- }
-
-// Mixins.
-
- /// 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; }
-
- }
-
- /// 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/website/assets/sass/main.scss b/website/assets/sass/main.scss
deleted file mode 100644
index c905048..0000000
--- a/website/assets/sass/main.scss
+++ /dev/null
@@ -1,1633 +0,0 @@
-@import 'libs/vars';
-@import 'libs/functions';
-@import 'libs/mixins';
-@import 'libs/vendor';
-@import 'libs/breakpoints';
-@import 'libs/html-grid';
-@import url('fontawesome-all.min.css');
-@import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400italic");
-
-/*
- Strata by HTML5 UP
- html5up.net | @ajlkn
- Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-*/
-
-$size-header-width: 35%;
-$size-header-pad: 4em;
-
-// Breakpoints.
-
- @include breakpoints((
- xlarge: ( 1281px, 1800px ),
- large: ( 981px, 1280px ),
- medium: ( 737px, 980px ),
- small: ( 481px, 736px ),
- xsmall: ( null, 480px ),
- ));
-
-// Reset.
-// Based on meyerweb.com/eric/tools/css/reset (v2.0 | 20110126 | License: 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;
-
- &:before,
- &:after {
- content: '';
- content: none;
- }
- }
-
- table {
- border-collapse: collapse;
- border-spacing: 0;
- }
-
- body {
- -webkit-text-size-adjust: none;
- }
-
- mark {
- background-color: transparent;
- color: inherit;
- }
-
- input::-moz-focus-inner {
- border: 0;
- padding: 0;
- }
-
- input, select, textarea {
- -moz-appearance: none;
- -webkit-appearance: none;
- -ms-appearance: none;
- appearance: none;
- }
-
-/* Basic */
-
- // Set box model to border-box.
- // Based on css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice
- html {
- box-sizing: border-box;
- }
-
- *, *:before, *:after {
- box-sizing: inherit;
- }
-
- body {
- background: _palette(bg);
-
- // Stops initial animations until page loads.
- &.is-preload {
- *, *:before, *:after {
- @include vendor('animation', 'none !important');
- @include vendor('transition', 'none !important');
- }
- }
-
- }
-
- body, input, select, textarea {
- color: _palette(fg);
- font-family: _font(family);
- font-size: 16pt;
- font-weight: _font(weight);
- line-height: 1.75em;
- }
-
- a {
- @include vendor('transition', ('color #{_duration(transition)} ease-in-out', 'border-color #{_duration(transition)} ease-in-out'));
- border-bottom: dotted 1px;
- color: _palette(accent1, bg);
- text-decoration: none;
-
- &:hover {
- border-bottom-color: transparent;
- color: _palette(accent1, bg) !important;
- text-decoration: none;
- }
- }
-
- 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;
- text-decoration: none;
- }
- }
-
- h1 {
- font-size: 2em;
- line-height: 1.5em;
- }
-
- h2 {
- font-size: 1.5em;
- line-height: 1.5em;
- }
-
- h3 {
- font-size: 1.25em;
- line-height: 1.5em;
- }
-
- h4 {
- font-size: 1.1em;
- line-height: 1.5em;
- }
-
- 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 2px _palette(border);
-
- // This is the *only* instance where we need to rely on margin collapse.
- margin: _size(element-margin) 0;
-
- &.major {
- margin: (_size(element-margin) * 1.5) 0;
- }
- }
-
- blockquote {
- border-left: solid 6px _palette(border);
- font-style: italic;
- margin: 0 0 _size(element-margin) 0;
- padding: 0.5em 0 0.5em 1.5em;
- }
-
- 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;
- }
- }
-
- .align-left {
- text-align: left;
- }
-
- .align-center {
- text-align: center;
- }
-
- .align-right {
- text-align: right;
- }
-
-/* Container */
-
- .container {
- margin: 0 auto;
- max-width: calc(100% - #{_size(element-margin) * 2});
- width: _size(container-width);
-
- &.xsmall {
- width: (_size(container-width) * 0.25);
- }
-
- &.small {
- width: (_size(container-width) * 0.5);
- }
-
- &.medium {
- width: (_size(container-width) * 0.75);
- }
-
- &.large {
- width: (_size(container-width) * 1.25);
- }
-
- &.xlarge {
- width: (_size(container-width) * 1.5);
- }
-
- &.max {
- width: 100%;
- }
-
- @include breakpoint('<=medium') {
- width: 100% !important;
- max-width: 100% !important;
- }
-
- @include breakpoint('<=xsmall') {
- max-width: calc(100% - #{_size(element-margin) * 1.5});
- }
- }
-
-/* Row */
-
- .row {
- @include html-grid(2.5em);
-
- @include breakpoint('<=xlarge') {
- @include html-grid(2.5em, 'xlarge');
- }
-
- @include breakpoint('<=large') {
- @include html-grid(2em, 'large');
- }
-
- @include breakpoint('<=medium') {
- @include html-grid(2em, 'medium');
- }
-
- @include breakpoint('<=small') {
- @include html-grid(1.5em, 'small');
- }
-
- @include breakpoint('<=xsmall') {
- @include html-grid(1.5em, 'xsmall');
- }
- }
-
-/* Section/Article */
-
- section, article {
- &.special {
- text-align: center;
- }
- }
-
- header {
- p {
- color: _palette(fg-light);
- position: relative;
- margin: 0 0 (_size(element-margin) * 0.75) 0;
- }
-
- h2 + p {
- font-size: 1.25em;
- margin-top: (_size(element-margin) * -0.5);
- line-height: 1.5em;
- }
-
- h3 + p {
- font-size: 1.1em;
- margin-top: (_size(element-margin) * -0.4);
- line-height: 1.5em;
- }
-
- h4 + p,
- h5 + p,
- h6 + p {
- font-size: 0.9em;
- margin-top: (_size(element-margin) * -0.3);
- line-height: 1.5em;
- }
-
- &.major {
- h2 {
- font-size: 2em;
- }
- }
- }
-
-/* 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');
- background: _palette(border-bg);
- border-radius: _size(border-radius);
- border: solid 2px transparent;
- color: inherit;
- display: block;
- outline: 0;
- padding: 0 0.75em;
- text-decoration: none;
- width: 100%;
-
- &:invalid {
- box-shadow: none;
- }
-
- &:focus {
- border-color: _palette(accent1, bg);
- }
- }
-
- select {
- background-image: svg-url("
");
- background-size: 1.25rem;
- background-repeat: no-repeat;
- background-position: calc(100% - 1rem) center;
- height: _size(element-height);
- padding-right: _size(element-height);
- text-overflow: ellipsis;
-
- option {
- color: _palette(fg-bold);
- background: _palette(bg);
- }
-
- &:focus {
- &::-ms-value {
- background-color: transparent;
- }
- }
-
- &::-ms-expand {
- display: none;
- }
- }
-
- input[type="text"],
- input[type="password"],
- input[type="email"],
- select {
- height: _size(element-height);
- }
-
- textarea {
- padding: 0.75em;
- }
-
- 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(false, solid);
- 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 {
- background: _palette(border-bg);
- border-radius: _size(border-radius);
- border: solid 2px transparent;
- content: '';
- display: inline-block;
- font-size: 0.8em;
- height: (_size(element-height) * 0.75);
- left: 0;
- line-height: (_size(element-height) * 0.675);
- position: absolute;
- text-align: center;
- top: 0;
- width: (_size(element-height) * 0.75);
- }
- }
-
- &:checked + label {
- &:before {
- background: _palette(fg-bold);
- border-color: _palette(fg-bold);
- color: _palette(bg);
- content: '\f00c';
- }
- }
-
- &:focus + label {
- &:before {
- border-color: _palette(accent1, bg);
- }
- }
- }
-
- 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;
- }
-
-/* 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;
- }
- }
-
-/* Icon */
-
- .icon {
- @include icon;
- border-bottom: none;
- position: relative;
-
- > .label {
- display: none;
- }
-
- &:before {
- line-height: inherit;
- }
-
- &.solid {
- &:before {
- font-weight: 900;
- }
- }
-
- &.brands {
- &:before {
- font-family: 'Font Awesome 5 Brands';
- }
- }
- }
-
-/* Image */
-
- .image {
- border-radius: _size(border-radius);
- border: 0;
- display: inline-block;
- position: relative;
-
- &:before {
- @include vendor('transition', 'opacity #{_duration(transition)} ease-in-out');
- background: url('images/overlay.png');
- border-radius: _size(border-radius);
- content: '';
- display: block;
- height: 100%;
- left: 0;
- opacity: 0.5;
- position: absolute;
- top: 0;
- width: 100%;
- }
-
- &.thumb {
- text-align: center;
-
- &:after {
- @include vendor('transition', 'opacity #{_duration(transition)} ease-in-out');
- border-radius: _size(border-radius);
- border: solid 3px rgba(255,255,255,0.5);
- color: #fff;
- content: 'View';
- display: inline-block;
- font-size: 0.8em;
- font-weight: _font(weight-bold);
- left: 50%;
- line-height: 2.25em;
- margin: -1.25em 0 0 -3em;
- opacity: 0;
- padding: 0 1.5em;
- position: absolute;
- text-align: center;
- text-decoration: none;
- top: 50%;
- white-space: nowrap;
- }
-
- &:hover {
- &:after {
- opacity: 1.0;
- }
-
- &:before {
- background: url('images/overlay.png'), url('images/overlay.png');
- opacity: 1.0;
- }
- }
- }
-
- 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%;
- }
- }
-
- &.avatar {
- border-radius: 100%;
-
- &:before {
- display: none;
- }
-
- img {
- border-radius: 100%;
- width: 100%;
- }
- }
- }
-
-/* 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 2px _palette(border);
- padding: 0.5em 0;
-
- &:first-child {
- border-top: 0;
- padding-top: 0;
- }
- }
- }
- }
-
- dl {
- margin: 0 0 _size(element-margin) 0;
- }
-
-/* Icons */
-
- ul.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.5em;
- }
- }
- }
- }
-
-/* Labeled Icons */
-
- ul.labeled-icons {
- list-style: none;
- padding: 0;
-
- li {
- line-height: 1.75em;
- margin: 1.5em 0 0 0;
- padding-left: 2.25em;
- position: relative;
-
- &:first-child {
- margin-top: 0;
- }
-
- a {
- color: inherit;
- }
-
- h3 {
- color: _palette(fg-light);
- left: 0;
- position: absolute;
- text-align: center;
- top: 0;
- width: 1em;
- }
- }
- }
-
-/* Actions */
-
- ul.actions {
- @include vendor('display', 'flex');
- cursor: default;
- list-style: none;
- margin-left: (_size(element-margin) * -0.5);
- padding-left: 0;
-
- li {
- padding: 0 0 0 (_size(element-margin) * 0.5);
- vertical-align: middle;
- }
-
- &.special {
- @include vendor('justify-content', 'center');
- width: 100%;
- margin-left: 0;
-
- li {
- &:first-child {
- padding-left: 0;
- }
- }
- }
-
- &.stacked {
- @include vendor('flex-direction', 'column');
- margin-left: 0;
-
- li {
- padding: (_size(element-margin) * 0.65) 0 0 0;
-
- &:first-child {
- padding-top: 0;
- }
- }
- }
-
- &.fit {
- width: calc(100% + #{_size(element-margin) * 0.5});
-
- li {
- @include vendor('flex-grow', '1');
- @include vendor('flex-shrink', '1');
- width: 100%;
-
- > * {
- width: 100%;
- }
- }
-
- &.stacked {
- width: 100%;
- }
- }
-
- @include breakpoint('<=xsmall') {
- &:not(.fixed) {
- @include vendor('flex-direction', 'column');
- margin-left: 0;
- width: 100% !important;
-
- li {
- @include vendor('flex-grow', '1');
- @include vendor('flex-shrink', '1');
- padding: (_size(element-margin) * 0.5) 0 0 0;
- text-align: center;
- width: 100%;
-
- > * {
- width: 100%;
- }
-
- &:first-child {
- padding-top: 0;
- }
-
- input[type="submit"],
- input[type="reset"],
- input[type="button"],
- button,
- .button {
- width: 100%;
-
- &.icon {
- &:before {
- margin-left: -0.5em;
- }
- }
- }
- }
- }
- }
- }
-
-/* 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 2px _palette(border);
- border-left-width: 0;
- border-top-width: 0;
-
- &:first-child {
- border-left-width: 2px;
- }
- }
-
- &:first-child {
- td {
- border-top-width: 2px;
- }
- }
- }
- }
-
- thead {
- border-bottom: 0;
- }
-
- tfoot {
- border-top: 0;
- }
- }
- }
-
-/* 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', 'border-color #{_duration(transition)} ease-in-out'));
- background-color: transparent;
- border-radius: _size(border-radius);
- border: solid 3px _palette(border);
- color: _palette(fg-bold) !important;
- cursor: pointer;
- display: inline-block;
- font-weight: _font(weight-bold);
- height: 3.15em;
- height: calc(2.75em + 6px);
- line-height: 2.75em;
- min-width: 10em;
- padding: 0 1.5em;
- text-align: center;
- text-decoration: none;
- white-space: nowrap;
-
- &:hover {
- border-color: _palette(accent1, bg);
- color: _palette(accent1, bg) !important;
- }
-
- &:active {
- background-color: transparentize(_palette(accent1, bg), 0.9);
- border-color: _palette(accent1, bg);
- color: _palette(accent1, bg) !important;
- }
-
- &.icon {
- padding-left: 1.35em;
-
- &:before {
- margin-right: 0.5em;
- }
- }
-
- &.fit {
- min-width: 0;
- width: 100%;
- }
-
- &.small {
- font-size: 0.8em;
- }
-
- &.large {
- font-size: 1.35em;
- }
-
- &.primary {
- background-color: _palette(accent1, bg);
- border-color: _palette(accent1, bg);
- color: _palette(accent1, fg-bold) !important;
-
- &:hover {
- background-color: lighten(_palette(accent1, bg), 5);
- border-color: lighten(_palette(accent1, bg), 5);
- }
-
- &:active {
- background-color: darken(_palette(accent1, bg), 5);
- border-color: darken(_palette(accent1, bg), 5);
- }
- }
-
- &.disabled,
- &:disabled {
- background-color: _palette(border2-bg) !important;
- border-color: _palette(border2-bg) !important;
- color: _palette(fg-light) !important;
- cursor: default;
- }
- }
-
-/* Work Item */
-
- .work-item {
- margin: 0 0 _size(element-margin) 0;
-
- .image {
- margin: 0 0 (_size(element-margin) * 0.75) 0;
- }
-
- h3 {
- font-size: 1em;
- margin: 0 0 (_size(element-margin) * 0.25) 0;
- }
-
- p {
- font-size: 0.8em;
- line-height: 1.5em;
- margin: 0;
- }
- }
-
-/* Header */
-
- #header {
- @include vendor('display', 'flex');
- @include vendor('flex-direction', 'column');
- @include vendor('align-items', 'flex-end');
- @include vendor('justify-content', 'space-between');
- background-color: _palette(accent2, bg);
- background-attachment: scroll, scroll;
- background-image: url('images/overlay.png'), url('../../images/bg.jpg');
- background-position: top left, top left;
- background-repeat: repeat, no-repeat;
- background-size: auto, 150%;
- color: _palette(accent2, fg);
- height: 100%;
- left: 0;
- padding: ($size-header-pad * 2) $size-header-pad;
- position: fixed;
- text-align: right;
- top: 0;
- width: $size-header-width;
-
- > * {
- @include vendor('flex-shrink', '0');
- width: 100%;
- }
-
- > .inner {
- @include vendor('flex-grow', '1');
- margin: 0 0 ($size-header-pad * 0.5) 0;
- }
-
- strong, b {
- color: _palette(accent2, fg-bold);
- }
-
- h2, h3, h4, h5, h6 {
- color: _palette(accent2, fg-bold);
- }
-
- h1 {
- color: _palette(accent2, fg);
- font-size: 1.35em;
- line-height: 1.75em;
- margin: 0;
- }
-
- .image.avatar {
- margin: 0 0 (_size(element-margin) * 0.5) 0;
- width: 6.25em;
- }
- }
-
-/* Footer */
-
- #footer {
- .icons {
- margin: (_size(element-margin) * 0.5) 0 0 0;
-
- a {
- color: _palette(accent2, fg-light);
- }
- }
-
- .copyright {
- color: _palette(accent2, fg-light);
- font-size: 0.8em;
- list-style: none;
- margin: (_size(element-margin) * 0.5) 0 0 0;
- padding: 0;
-
- li {
- border-left: solid 1px _palette(accent2, border);
- display: inline-block;
- line-height: 1em;
- margin-left: 0.75em;
- padding-left: 0.75em;
-
- &:first-child {
- border-left: 0;
- margin-left: 0;
- padding-left: 0;
- }
-
- a {
- color: inherit;
- }
- }
- }
- }
-
-/* Main */
-
- #main {
- margin-left: $size-header-width;
- max-width: 50em + $size-header-pad;
- padding: ($size-header-pad * 2) $size-header-pad $size-header-pad $size-header-pad;
- width: calc(100% - #{$size-header-width});
-
- > section {
- border-top: solid 2px _palette(border);
- margin: $size-header-pad 0 0 0;
- padding: $size-header-pad 0 0 0;
-
- &:first-child {
- border-top: 0;
- margin-top: 0;
- padding-top: 0;
- }
- }
- }
-
-/* Poptrox */
-
- @include keyframes('spin') {
- 0% { @include vendor('transform', 'rotate(0deg)'); }
- 100% { @include vendor('transform', 'rotate(360deg)'); }
- };
-
- .poptrox-popup {
- @include vendor('box-sizing', 'content-box');
- -webkit-tap-highlight-color: rgba(255,255,255,0);
- background: #fff;
- border-radius: _size(border-radius);
- box-shadow: 0 0.1em 0.15em 0 rgba(0,0,0,0.15);
- overflow: hidden;
- padding-bottom: 3em;
-
- .loader {
- @include icon(false, solid);
- @include vendor('animation', 'spin 1s linear infinite');
- font-size: 1.5em;
- height: 1em;
- left: 50%;
- line-height: 1em;
- margin: -0.5em 0 0 -0.5em;
- position: absolute;
- top: 50%;
- width: 1em;
-
- &:before {
- content: '\f1ce';
- }
- }
-
- .caption {
- background: #fff;
- bottom: 0;
- cursor: default;
- font-size: 0.9em;
- height: 3em;
- left: 0;
- line-height: 2.8em;
- position: absolute;
- text-align: center;
- width: 100%;
- z-index: 1;
- }
-
- .nav-next,
- .nav-previous {
- @include icon(false, solid);
- @include vendor('transition', 'opacity #{_duration(transition)} ease-in-out');
- -webkit-tap-highlight-color: rgba(255,255,255,0);
- background: rgba(0,0,0,0.01);
- cursor: pointer;
- height: 100%;
- opacity: 0;
- position: absolute;
- top: 0;
- width: 50%;
-
- &:before {
- color: #fff;
- font-size: 2.5em;
- height: 1em;
- line-height: 1em;
- margin-top: -0.75em;
- position: absolute;
- text-align: center;
- top: 50%;
- width: 1.5em;
- }
- }
-
- .nav-next {
- right: 0;
-
- &:before {
- content: '\f105';
- right: 0;
- }
- }
-
- .nav-previous {
- left: 0;
-
- &:before {
- content: '\f104';
- left: 0;
- }
- }
-
- .closer {
- @include icon(false, solid);
- @include vendor('transition', 'opacity #{_duration(transition)} ease-in-out');
- -webkit-tap-highlight-color: rgba(255,255,255,0);
- color: #fff;
- height: 4em;
- line-height: 4em;
- opacity: 0;
- position: absolute;
- right: 0;
- text-align: center;
- top: 0;
- width: 4em;
- z-index: 2;
-
- &:before {
- @include vendor('box-sizing', 'content-box');
- border-radius: 100%;
- border: solid 3px rgba(255,255,255,0.5);
- content: '\f00d';
- display: block;
- font-size: 1em;
- height: 1.75em;
- left: 50%;
- line-height: 1.75em;
- margin: -0.875em 0 0 -0.875em;
- position: absolute;
- top: 50%;
- width: 1.75em;
- }
- }
-
- &:hover {
- .nav-next,
- .nav-previous {
- opacity: 0.5;
-
- &:hover {
- opacity: 1.0;
- }
- }
-
- .closer {
- opacity: 0.5;
-
- &:hover {
- opacity: 1.0;
- }
- }
- }
- }
-
-/* Touch */
-
- body.is-touch {
-
- .image {
- &.thumb {
- &:before {
- opacity: 0.5 !important;
- }
-
- &:after {
- display: none !important;
- }
- }
- }
-
- #header {
- background-attachment: scroll;
- background-size: auto, cover;
- }
-
- .poptrox-popup {
- .nav-next,
- .nav-previous,
- .closer {
- opacity: 1.0 !important;
- }
- }
-
- }
-
-/* XLarge */
-
- @include breakpoint('<=xlarge') {
-
- /* Basic */
-
- body, input, select, textarea {
- font-size: 12pt;
- }
-
- }
-
-/* Large */
-
- @include breakpoint('<=large') {
-
- $size-header-width: 30%;
- $size-header-pad: 3em;
-
- /* Header */
-
- #header {
- padding: ($size-header-pad * 2) $size-header-pad $size-header-pad $size-header-pad;
- width: $size-header-width;
-
- h1 {
- font-size: 1.25em;
-
- br {
- display: none;
- }
- }
-
- > .inner {
- margin-bottom: 0;
- }
- }
-
- /* Footer */
-
- #footer {
- .copyright {
- li {
- border-left-width: 0;
- display: block;
- line-height: 2.25em;
- margin-left: 0;
- padding-left: 0;
- }
- }
- }
-
- /* Main */
-
- #main {
- margin-left: $size-header-width;
- max-width: none;
- padding: ($size-header-pad * 2) $size-header-pad $size-header-pad $size-header-pad;
- width: calc(100% - #{$size-header-width});
- }
-
- }
-
-/* Medium */
-
- @include breakpoint('<=medium') {
-
- $size-header-pad: 4em;
-
- /* Basic */
-
- h1, h2, h3, h4, h5, h6 {
- br {
- display: none;
- }
- }
-
- /* List */
-
- ul {
- &.icons {
- li {
- .icon {
- font-size: 1.25em;
- }
- }
- }
- }
-
- /* Header */
-
- #header {
- background-attachment: scroll;
- background-position: top left, center center;
- background-size: auto, cover;
- left: auto;
- padding: ($size-header-pad * 1.5) $size-header-pad;
- position: relative;
- text-align: center;
- top: auto;
- width: 100%;
- display: block;
-
- h1 {
- font-size: 1.75em;
-
- br {
- display: inline;
- }
- }
- }
-
- /* Footer */
-
- #footer {
- background-attachment: scroll;
- background-color: _palette(accent2, bg);
- background-image: url('images/overlay.png'), url('../../images/bg.jpg');
- background-position: top left, bottom center;
- background-repeat: repeat, no-repeat;
- background-size: auto, cover;
- bottom: auto;
- left: auto;
- padding: $size-header-pad $size-header-pad ($size-header-pad * 1.5) $size-header-pad;
- position: relative;
- text-align: center;
- width: 100%;
-
- .icons {
- margin: 0 0 (_size(element-margin) * 0.5) 0;
- }
-
- .copyright {
- margin: 0 0 (_size(element-margin) * 0.5) 0;
-
- li {
- border-left-width: 1px;
- display: inline-block;
- line-height: 1em;
- margin-left: 0.75em;
- padding-left: 0.75em;
- }
- }
- }
-
- /* Main */
-
- #main {
- margin: 0;
- padding: ($size-header-pad * 1.5) $size-header-pad;
- width: 100%;
- }
-
- }
-
-/* Small */
-
- @include breakpoint('<=small') {
-
- $size-header-pad: 1.5em;
-
- /* Basic */
-
- h1 {
- font-size: 1.5em;
- }
-
- h2 {
- font-size: 1.2em;
- }
-
- h3 {
- font-size: 1em;
- }
-
- /* Section/Article */
-
- section, article {
- &.special {
- text-align: center;
- }
- }
-
- header {
- &.major {
- h2 {
- font-size: 1.35em;
- }
- }
- }
-
- /* List */
-
- ul {
- &.labeled-icons {
- li {
- padding-left: 2em;
-
- h3 {
- line-height: 1.75em;
- }
- }
- }
- }
-
- /* Header */
-
- #header {
- padding: ($size-header-pad * 1.5) $size-header-pad;
-
- h1 {
- font-size: 1.35em;
- }
- }
-
- /* Footer */
-
- #footer {
- padding: ($size-header-pad * 1.5) $size-header-pad;
- }
-
- /* Main */
-
- #main {
- padding: ($size-header-pad * 1.5) $size-header-pad (($size-header-pad * 1.5) - _size(element-margin)) $size-header-pad;
-
- > section {
- margin: ($size-header-pad * 1.5) 0 0 0;
- padding: ($size-header-pad * 1.5) 0 0 0;
- }
- }
-
- /* Poptrox */
-
- .poptrox-popup {
- border-radius: 0;
-
- .nav-next,
- .nav-previous {
- &:before {
- margin-top: -1em;
- }
- }
- }
-
- }
-
-/* XSmall */
-
- @include breakpoint('<=xsmall') {
-
- $size-header-pad: 1.5em;
-
- /* Header */
-
- #header {
- padding: ($size-header-pad * 3) $size-header-pad;
-
- h1 {
- br {
- display: none;
- }
- }
- }
-
- /* Footer */
-
- #footer {
- .copyright {
- li {
- border-left-width: 0;
- display: block;
- line-height: 2.25em;
- margin-left: 0;
- padding-left: 0;
- }
- }
- }
-
- }
\ No newline at end of file
diff --git a/website/assets/webfonts/fa-brands-400.eot b/website/assets/webfonts/fa-brands-400.eot
deleted file mode 100644
index cba6c6c..0000000
Binary files a/website/assets/webfonts/fa-brands-400.eot and /dev/null differ
diff --git a/website/assets/webfonts/fa-brands-400.svg b/website/assets/webfonts/fa-brands-400.svg
deleted file mode 100644
index b9881a4..0000000
--- a/website/assets/webfonts/fa-brands-400.svg
+++ /dev/null
@@ -1,3717 +0,0 @@
-
-
-
-
-Created by FontForge 20201107 at Wed Aug 4 12:25:29 2021
- By Robert Madole
-Copyright (c) Font Awesome
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/website/assets/webfonts/fa-brands-400.ttf b/website/assets/webfonts/fa-brands-400.ttf
deleted file mode 100644
index 8d75ded..0000000
Binary files a/website/assets/webfonts/fa-brands-400.ttf and /dev/null differ
diff --git a/website/assets/webfonts/fa-brands-400.woff b/website/assets/webfonts/fa-brands-400.woff
deleted file mode 100644
index 3375bef..0000000
Binary files a/website/assets/webfonts/fa-brands-400.woff and /dev/null differ
diff --git a/website/assets/webfonts/fa-brands-400.woff2 b/website/assets/webfonts/fa-brands-400.woff2
deleted file mode 100644
index 402f81c..0000000
Binary files a/website/assets/webfonts/fa-brands-400.woff2 and /dev/null differ
diff --git a/website/assets/webfonts/fa-regular-400.eot b/website/assets/webfonts/fa-regular-400.eot
deleted file mode 100644
index a4e5989..0000000
Binary files a/website/assets/webfonts/fa-regular-400.eot and /dev/null differ
diff --git a/website/assets/webfonts/fa-regular-400.svg b/website/assets/webfonts/fa-regular-400.svg
deleted file mode 100644
index 463af27..0000000
--- a/website/assets/webfonts/fa-regular-400.svg
+++ /dev/null
@@ -1,801 +0,0 @@
-
-
-
-
-Created by FontForge 20201107 at Wed Aug 4 12:25:29 2021
- By Robert Madole
-Copyright (c) Font Awesome
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/website/assets/webfonts/fa-regular-400.ttf b/website/assets/webfonts/fa-regular-400.ttf
deleted file mode 100644
index 7157aaf..0000000
Binary files a/website/assets/webfonts/fa-regular-400.ttf and /dev/null differ
diff --git a/website/assets/webfonts/fa-regular-400.woff b/website/assets/webfonts/fa-regular-400.woff
deleted file mode 100644
index ad077c6..0000000
Binary files a/website/assets/webfonts/fa-regular-400.woff and /dev/null differ
diff --git a/website/assets/webfonts/fa-regular-400.woff2 b/website/assets/webfonts/fa-regular-400.woff2
deleted file mode 100644
index 5632894..0000000
Binary files a/website/assets/webfonts/fa-regular-400.woff2 and /dev/null differ
diff --git a/website/assets/webfonts/fa-solid-900.eot b/website/assets/webfonts/fa-solid-900.eot
deleted file mode 100644
index e994171..0000000
Binary files a/website/assets/webfonts/fa-solid-900.eot and /dev/null differ
diff --git a/website/assets/webfonts/fa-solid-900.svg b/website/assets/webfonts/fa-solid-900.svg
deleted file mode 100644
index 00296e9..0000000
--- a/website/assets/webfonts/fa-solid-900.svg
+++ /dev/null
@@ -1,5034 +0,0 @@
-
-
-
-
-Created by FontForge 20201107 at Wed Aug 4 12:25:29 2021
- By Robert Madole
-Copyright (c) Font Awesome
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/website/assets/webfonts/fa-solid-900.ttf b/website/assets/webfonts/fa-solid-900.ttf
deleted file mode 100644
index 25abf38..0000000
Binary files a/website/assets/webfonts/fa-solid-900.ttf and /dev/null differ
diff --git a/website/assets/webfonts/fa-solid-900.woff b/website/assets/webfonts/fa-solid-900.woff
deleted file mode 100644
index 23ee663..0000000
Binary files a/website/assets/webfonts/fa-solid-900.woff and /dev/null differ
diff --git a/website/assets/webfonts/fa-solid-900.woff2 b/website/assets/webfonts/fa-solid-900.woff2
deleted file mode 100644
index 2217164..0000000
Binary files a/website/assets/webfonts/fa-solid-900.woff2 and /dev/null differ
diff --git a/website/code.html b/website/code.html
index d68ea13..3f62f22 100644
--- a/website/code.html
+++ b/website/code.html
@@ -1,91 +1,64 @@
-
-
-
-
+
+
-
Code
-
-
-
+
+
+
Code — Dynamic Programming
+
+
+
+
+
+
+
+
-
-
-
-
-