Guide_Wii/assets/css/main.css.map

118 lines
304 KiB
Text
Raw Normal View History

{
"version": 3,
"file": "main.css",
"sources": [
"main.scss",
"_theme/_sass/minimal-mistakes/skins/_dark.scss",
"_theme/_sass/minimal-mistakes.scss",
"_theme/_sass/minimal-mistakes/_variables.scss",
"_theme/_sass/minimal-mistakes/vendor/breakpoint/_breakpoint.scss",
"_theme/_sass/minimal-mistakes/vendor/breakpoint/_settings.scss",
"_theme/_sass/minimal-mistakes/vendor/breakpoint/_context.scss",
"_theme/_sass/minimal-mistakes/vendor/breakpoint/_helpers.scss",
"_theme/_sass/minimal-mistakes/vendor/breakpoint/_parsers.scss",
"_theme/_sass/minimal-mistakes/vendor/breakpoint/parsers/_query.scss",
"_theme/_sass/minimal-mistakes/vendor/breakpoint/parsers/_single.scss",
"_theme/_sass/minimal-mistakes/vendor/breakpoint/parsers/single/_default.scss",
"_theme/_sass/minimal-mistakes/vendor/breakpoint/parsers/_double.scss",
"_theme/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default-pair.scss",
"_theme/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_double-string.scss",
"_theme/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default.scss",
"_theme/_sass/minimal-mistakes/vendor/breakpoint/parsers/_triple.scss",
"_theme/_sass/minimal-mistakes/vendor/breakpoint/parsers/triple/_default.scss",
"_theme/_sass/minimal-mistakes/vendor/breakpoint/parsers/_resolution.scss",
"_theme/_sass/minimal-mistakes/vendor/breakpoint/parsers/resolution/_resolution.scss",
"_theme/_sass/minimal-mistakes/vendor/breakpoint/_no-query.scss",
"_theme/_sass/minimal-mistakes/vendor/breakpoint/_respond-to.scss",
"_theme/_sass/minimal-mistakes/vendor/breakpoint/_legacy-settings.scss",
"_theme/_sass/minimal-mistakes/vendor/magnific-popup/_magnific-popup.scss",
"_theme/_sass/minimal-mistakes/vendor/magnific-popup/_settings.scss",
"_theme/_sass/minimal-mistakes/vendor/susy/_susy.scss",
"_theme/_sass/minimal-mistakes/vendor/susy/_susy-prefix.scss",
"_theme/_sass/minimal-mistakes/vendor/susy/susy/_utilities.scss",
"_theme/_sass/minimal-mistakes/vendor/susy/susy/_su-validate.scss",
"_theme/_sass/minimal-mistakes/vendor/susy/susy/_su-math.scss",
"_theme/_sass/minimal-mistakes/vendor/susy/susy/_settings.scss",
"_theme/_sass/minimal-mistakes/vendor/susy/susy/_normalize.scss",
"_theme/_sass/minimal-mistakes/vendor/susy/susy/_parse.scss",
"_theme/_sass/minimal-mistakes/vendor/susy/susy/_syntax-helpers.scss",
"_theme/_sass/minimal-mistakes/vendor/susy/susy/_api.scss",
"_theme/_sass/minimal-mistakes/vendor/susy/susy/_unprefix.scss",
"_theme/_sass/minimal-mistakes/_mixins.scss",
"_theme/_sass/minimal-mistakes/_reset.scss",
"_theme/_sass/minimal-mistakes/_base.scss",
"_theme/_sass/minimal-mistakes/_forms.scss",
"_theme/_sass/minimal-mistakes/_tables.scss",
"_theme/_sass/minimal-mistakes/_animations.scss",
"_theme/_sass/minimal-mistakes/_buttons.scss",
"_theme/_sass/minimal-mistakes/_notices.scss",
"_theme/_sass/minimal-mistakes/_masthead.scss",
"_theme/_sass/minimal-mistakes/_navigation.scss",
"_theme/_sass/minimal-mistakes/_footer.scss",
"_theme/_sass/minimal-mistakes/_search.scss",
"_theme/_sass/minimal-mistakes/_syntax.scss",
"_theme/_sass/minimal-mistakes/_utilities.scss",
"_theme/_sass/minimal-mistakes/_page.scss",
"_theme/_sass/minimal-mistakes/_archive.scss",
"_theme/_sass/minimal-mistakes/_sidebar.scss",
"_theme/_sass/minimal-mistakes/_print.scss"
],
"sourcesContent": [
"@charset \"utf-8\";\n\n@import \"minimal-mistakes/skins/dark\"; // skin\n@import \"minimal-mistakes\"; // main partials\n\n .revisiontable {\n display: grid;\n }\n \n .auto-grid-width {\n grid-auto-columns: minmax(0, 1fr);\n }\n\n .auto-grid-height {\n grid-template-rows: 0fr;\n }\n\n .revisiontable div {\n border: 1px solid;\n }\n\n .console-img {\n margin-top: auto;\n margin-bottom: auto;\n }\n \n .r1 { grid-row: 1; }\n .r2 { grid-row: 2; }\n .c1 { grid-column: 1; }\n .c2 { grid-column: 2; }\n .c3 { grid-column: 3; }\n .c4 { grid-column: 4; }\n",
"/* ==========================================================================\n Dark skin\n ========================================================================== */\n\n/* Colors */\n/* hacks guide changes begin */\n$background-color: #28282b !default;\n$text-highlight-color: #ffffff26 !default;\n/* hacks guide changes end */\n$text-color: #eaeaea !default;\n$primary-color: #00adb5 !default;\n$border-color: mix(#fff, $background-color, 20%) !default;\n$code-background-color: mix(#000, $background-color, 15%) !default;\n$code-background-color-dark: mix(#000, $background-color, 20%) !default;\n$form-background-color: mix(#000, $background-color, 15%) !default;\n$footer-background-color: mix(#000, $background-color, 30%) !default;\n$link-color: mix($primary-color, $text-color, 40%) !default;\n$link-color-hover: mix(#fff, $link-color, 25%) !default;\n$link-color-visited: mix(#000, $link-color, 25%) !default;\n$masthead-link-color: $text-color !default;\n$masthead-link-color-hover: mix(#000, $text-color, 20%) !default;\n$navicon-link-color-hover: mix(#000, $background-color, 30%) !default;\n\n.author__urls.social-icons i,\n.author__urls.social-icons .svg-inline--fa,\n.page__footer-follow .social-icons i,\n.page__footer-follow .social-icons .svg-inline--fa {\n color: inherit;\n}\n\n.ais-search-box .ais-search-box--input {\n background-color: $form-background-color;\n}\n",
"/*!\n * Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose\n * Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes\n * Licensed under MIT (https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE)\n*/\n\n/* Variables */\n@import \"minimal-mistakes/variables\";\n\n/* Mixins and functions */\n@import \"minimal-mistakes/vendor/breakpoint/breakpoint\";\n@include breakpoint-set(\"to ems\", true);\n@import \"minimal-mistakes/vendor/magnific-popup/magnific-popup\"; // Magnific Popup\n@import \"minimal-mistakes/vendor/susy/susy\";\n@import \"minimal-mistakes/mixins\";\n\n/* Core CSS */\n@import \"minimal-mistakes/reset\";\n@import \"minimal-mistakes/base\";\n@import \"minimal-mistakes/forms\";\n@import \"minimal-mistakes/tables\";\n@import \"minimal-mistakes/animations\";\n\n/* Components */\n@import \"minimal-mistakes/buttons\";\n@import \"minimal-mistakes/notices\";\n@import \"minimal-mistakes/masthead\";\n@import \"minimal-mistakes/navigation\";\n@import \"minimal-mistakes/footer\";\n@import \"minimal-mistakes/search\";\n@import \"minimal-mistakes/syntax\";\n\n/* Utility classes */\n@import \"minimal-mistakes/utilities\";\n\n/* Layout specific */\n@import \"minimal-mistakes/page\";\n@import \"minimal-mistakes/archive\";\n@import \"minimal-mistakes/sidebar\";\n@import \"minimal-mistakes/print\";\n",
"/* ==========================================================================\n Variables\n ========================================================================== */\n\n/*\n Typography\n ========================================================================== */\n\n$doc-font-size: 16 !default;\n\n/* paragraph indention */\n$paragraph-indent: false !default; // true, false (default)\n$indent-var: 1.3em !default;\n\n/* system typefaces */\n$serif: Georgia, Times, serif !default;\n$sans-serif: -apple-system, BlinkMacSystemFont, \"Roboto\", \"Segoe UI\",\n \"Helvetica Neue\", \"Lucida Grande\", Arial, sans-serif !default;\n$monospace: Monaco, Consolas, \"Lucida Console\", monospace !default;\n\n/* sans serif typefaces */\n$sans-serif-narrow: $sans-serif !default;\n$helvetica: Helvetica, \"Helvetica Neue\", Arial, sans-serif !default;\n\n/* serif typefaces */\n$georgia: Georgia, serif !default;\n$times: Times, serif !default;\n$bodoni: \"Bodoni MT\", serif !default;\n$calisto: \"Calisto MT\", serif !default;\n$garamond: Garamond, serif !default;\n\n$global-font-family: $sans-serif !default;\n$header-font-family: $sans-serif !default;\n$caption-font-family: $serif !default;\n\n/* type scale */\n$type-size-1: 2.441em !default; // ~39.056px\n$type-size-2: 1.953em !default; // ~31.248px\n$type-size-3: 1.563em !default; // ~25.008px\n$type-size-4: 1.25em !default; // ~20px\n$type-size-5: 1em !default; // ~16px\n$type-size-6: 0.75em !default; // ~12px\n$type-size-7: 0.6875em !default; // ~11px\n$type-size-8: 0.625em !default; // ~10px\n\n/* headline scale */\n$h-size-1: 1.563em !default; // ~25.008px\n$h-size-2: 1.25em !default; // ~20px\n$h-size-3: 1.125em !default; // ~18px\n$h-size-4: 1.0625em !default; // ~17px\n$h-size-5: 1.03125em !default; // ~16.5px\n$h-size-6: 1em !default; // ~16px\n\n/*\n Colors\n ========================================================================== */\n\n$gray: #7a8288 !default;\n$dark-gray: mix(#000, $gray, 50%) !default;\n$darker-gray: mix(#000, $gray, 60%) !default;\n$light-gray: mix(#fff, $gray, 50%) !default;\n$lighter-gray: mix(#fff, $gray, 90%) !default;\n\n$background-color: #fff !default;\n$code-background-color: #fafafa !default;\n$code-background-color-dark: $light-gray !default;\n$text-color: $dark-gray !default;\n$muted-text-color: mix(#fff, $text-color, 20%) !default;\n$border-color: $lighter-gray !default;\n$form-background-color: $lighter-gray !default;\n$footer-background-color: $lighter-gray !default;\n\n$primary-color: #6f777d !default;\n$success-color: #3fa63f !default;\n$warning-color: #d67f05 !default;\n$danger-color: #ee5f5b !default;\n$info-color: #3b9cba !default;\n$focus-color: $primary-color !default;\n$active-color: mix(#fff, $primary-color, 80%) !default;\n\n/* YIQ color contrast */\n$yiq-contrasted-dark-default: $dark-gray !default;\n$yiq-contrasted-light-default: #fff !default;\n$yiq-contrasted-threshold: 175 !default;\n$yiq-debug: false !default;\n\n/* brands */\n$behance-color: #1769ff !default;\n$bitbucket-color: #205081 !default;\n$dribbble-color: #ea4c89 !default;\n$facebook-color: #3b5998 !default;\n$flickr-color: #ff0084 !default;\n$foursquare-color: #0072b1 !default;\n$github-color: #171516 !default;\n$gitlab-color: #e24329 !default;\n$instagram-color: #517fa4 !default;\n$keybase-color: #ef7639 !default;\n$lastfm-color: #d51007 !default;\n$linkedin-color: #007bb6 !default;\n$mastodon-color: #2b90d9 !default;\n$pinterest-color: #cb2027 !default;\n$reddit-color: #ff4500 !default;\n$rss-color: #fa9b39 !default;\n$soundcloud-color: #ff3300 !default;\n$stackoverflow-color: #fe7a15 !default;\n$tumblr-color: #32506d !default;\n$twitter-color: #55acee !default;\n$vimeo-color: #1ab7ea !default;\n$vine-color: #00bf8f !default;\n$youtube-color: #bb0000 !default;\n$xing-color: #006567 !default;\n\n/* links */\n$link-color: mix(#000, $info-color, 20%) !default;\n$link-color-hover: mix(#000, $link-color, 25%) !default;\n$link-color-visited: mix(#fff, $link-color, 15%) !default;\n$masthead-link-color: $primary-color !default;\n$masthead-link-color-hove
"//////////////////////////////\n// Default Variables\n//////////////////////////////\n$Breakpoint-Settings: (\n 'default media': all,\n 'default feature': min-width,\n 'default pair': width,\n\n 'force all media type': false,\n 'to ems': false,\n 'transform resolutions': true,\n\n 'no queries': false,\n 'no query fallbacks': false,\n\n 'base font size': 16px,\n\n 'legacy syntax': false\n);\n\n$breakpoint: () !default;\n\n//////////////////////////////\n// Imports\n//////////////////////////////\n@import \"settings\";\n@import \"context\";\n@import \"helpers\";\n@import \"parsers\";\n@import \"no-query\";\n\n@import \"respond-to\";\n\n@import \"legacy-settings\";\n\n//////////////////////////////\n// Breakpoint Mixin\n//////////////////////////////\n\n@mixin breakpoint($query, $no-query: false) {\n @include legacy-settings-warning;\n\n // Reset contexts\n @include private-breakpoint-reset-contexts();\n\n $breakpoint: breakpoint($query, false);\n\n $query-string: map-get($breakpoint, 'query');\n $query-fallback: map-get($breakpoint, 'fallback');\n\n $private-breakpoint-context-holder: map-get($breakpoint, 'context holder') !global;\n $private-breakpoint-query-count: map-get($breakpoint, 'query count') !global;\n\n // Allow for an as-needed override or usage of no query fallback.\n @if $no-query != false {\n $query-fallback: $no-query;\n }\n\n @if $query-fallback != false {\n $context-setter: private-breakpoint-set-context('no-query', $query-fallback);\n }\n\n // Print Out Query String\n @if not breakpoint-get('no queries') {\n @media #{$query-string} {\n @content;\n }\n }\n\n @if breakpoint-get('no query fallbacks') != false or breakpoint-get('no queries') == true {\n\n $type: type-of(breakpoint-get('no query fallbacks'));\n $print: false;\n\n @if ($type == 'bool') {\n $print: true;\n }\n @else if ($type == 'string') {\n @if $query-fallback == breakpoint-get('no query fallbacks') {\n $print: true;\n }\n }\n @else if ($type == 'list') {\n @each $wrapper in breakpoint-get('no query fallbacks') {\n @if $query-fallback == $wrapper {\n $print: true;\n }\n }\n }\n\n // Write Fallback\n @if ($query-fallback != false) and ($print == true) {\n $type-fallback: type-of($query-fallback);\n\n @if ($type-fallback != 'bool') {\n #{$query-fallback} & {\n @content;\n }\n }\n @else {\n @content;\n }\n }\n }\n\n @include private-breakpoint-reset-contexts();\n}\n\n\n@mixin mq($query, $no-query: false) {\n @include breakpoint($query, $no-query) {\n @content;\n }\n}\n",
"//////////////////////////////\n// Has Setting\n//////////////////////////////\n@function breakpoint-has($setting) {\n @if map-has-key($breakpoint, $setting) {\n @return true;\n }\n @else {\n @return false;\n }\n}\n\n//////////////////////////////\n// Get Settings\n//////////////////////////////\n@function breakpoint-get($setting) {\n @if breakpoint-has($setting) {\n @return map-get($breakpoint, $setting);\n }\n @else {\n @return map-get($Breakpoint-Settings, $setting);\n }\n}\n\n//////////////////////////////\n// Set Settings\n//////////////////////////////\n@function breakpoint-set($setting, $value) {\n @if (str-index($setting, '-') or str-index($setting, '_')) and str-index($setting, ' ') == null {\n @warn \"Words in Breakpoint settings should be separated by spaces, not dashes or underscores. Please replace dashes and underscores between words with spaces. Settings will not work as expected until changed.\";\n }\n $breakpoint: map-merge($breakpoint, ($setting: $value)) !global;\n @return true;\n}\n\n@mixin breakpoint-change($setting, $value) {\n $breakpoint-change: breakpoint-set($setting, $value);\n}\n\n@mixin breakpoint-set($setting, $value) {\n @include breakpoint-change($setting, $value);\n}\n\n@mixin bkpt-change($setting, $value) {\n @include breakpoint-change($setting, $value);\n}\n@mixin bkpt-set($setting, $value) {\n @include breakpoint-change($setting, $value);\n}\n\n//////////////////////////////\n// Remove Setting\n//////////////////////////////\n@function breakpoint-reset($settings...) {\n @if length($settings) == 1 {\n $settings: nth($settings, 1);\n }\n\n @each $setting in $settings {\n $breakpoint: map-remove($breakpoint, $setting) !global;\n }\n @return true;\n}\n\n@mixin breakpoint-reset($settings...) {\n $breakpoint-reset: breakpoint-reset($settings);\n}\n\n@mixin bkpt-reset($settings...) {\n $breakpoint-reset: breakpoint-reset($settings);\n}",
"//////////////////////////////\n// Private Breakpoint Variables\n//////////////////////////////\n$private-breakpoint-context-holder: ();\n$private-breakpoint-query-count: 0 !default;\n\n//////////////////////////////\n// Breakpoint Has Context\n// Returns whether or not you are inside a Breakpoint query\n//////////////////////////////\n@function breakpoint-has-context() {\n @if length($private-breakpoint-query-count) {\n @return true;\n }\n @else {\n @return false;\n }\n}\n\n//////////////////////////////\n// Breakpoint Get Context\n// $feature: Input feature to get it's current MQ context. Returns false if no context\n//////////////////////////////\n@function breakpoint-get-context($feature) {\n @if map-has-key($private-breakpoint-context-holder, $feature) {\n $get: map-get($private-breakpoint-context-holder, $feature);\n // Special handling of no-query from get side so /false/ prepends aren't returned\n @if $feature == 'no-query' {\n @if type-of($get) == 'list' and length($get) > 1 and nth($get, 1) == false {\n $get: nth($get, length($get));\n }\n }\n @return $get;\n }\n @else {\n @if breakpoint-has-context() and $feature == 'media' {\n @return breakpoint-get('default media');\n }\n @else {\n @return false;\n }\n }\n}\n\n//////////////////////////////\n// Private function to set context\n//////////////////////////////\n@function private-breakpoint-set-context($feature, $value) {\n @if $value == 'monochrome' {\n $feature: 'monochrome';\n }\n\n $current: map-get($private-breakpoint-context-holder, $feature);\n @if $current and length($current) == $private-breakpoint-query-count {\n @warn \"You have already queried against `#{$feature}`. Unexpected things may happen if you query against the same feature more than once in the same `and` query. Breakpoint is overwriting the current context with `#{$value}`\";\n }\n\n @if not map-has-key($private-breakpoint-context-holder, $feature) {\n $v-holder: ();\n @for $i from 1 to $private-breakpoint-query-count {\n @if $feature == 'media' {\n $v-holder: append($v-holder, breakpoint-get('default media'));\n }\n @else {\n $v-holder: append($v-holder, false);\n }\n }\n $v-holder: append($v-holder, $value);\n $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($feature: $v-holder)) !global;\n }\n @else {\n $v-holder: map-get($private-breakpoint-context-holder, $feature);\n $length: length($v-holder);\n @for $i from $length to $private-breakpoint-query-count - 1 {\n @if $feature == 'media' {\n $v-holder: append($v-holder, breakpoint-get('default media'));\n }\n @else {\n $v-holder: append($v-holder, false);\n }\n }\n $v-holder: append($v-holder, $value);\n $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($feature: $v-holder)) !global;\n }\n\n @return true;\n}\n\n//////////////////////////////\n// Private function to reset context\n//////////////////////////////\n@mixin private-breakpoint-reset-contexts {\n $private-breakpoint-context-holder: () !global;\n $private-breakpoint-query-count: 0 !global;\n}",
"//////////////////////////////\n// Converts the input value to Base EMs\n//////////////////////////////\n@function breakpoint-to-base-em($value) {\n $value-unit: unit($value);\n\n // Will convert relative EMs into root EMs.\n @if breakpoint-get('base font size') and type-of(breakpoint-get('base font size')) == 'number' and $value-unit == 'em' {\n $base-unit: unit(breakpoint-get('base font size'));\n\n @if $base-unit == 'px' or $base-unit == '%' or $base-unit == 'em' or $base-unit == 'pt' {\n @return base-conversion($value) / base-conversion(breakpoint-get('base font size')) * 1em;\n }\n @else {\n @warn '#{breakpoint-get(\\'base font size\\')} is not set in valid units for font size!';\n @return false;\n }\n }\n @else {\n @return base-conversion($value);\n }\n}\n\n@function base-conversion($value) {\n $unit: unit($value);\n\n @if $unit == 'px' {\n @return $value / 16px * 1em;\n }\n @else if $unit == '%' {\n @return $value / 100% * 1em;\n }\n @else if $unit == 'em' {\n @return $value;\n }\n @else if $unit == 'pt' {\n @return $value / 12pt * 1em;\n }\n @else {\n @return $value;\n// @warn 'Everything is terrible! What have you done?!';\n }\n}\n\n//////////////////////////////\n// Returns whether the feature can have a min/max pair\n//////////////////////////////\n$breakpoint-min-max-features: 'color',\n 'color-index',\n 'aspect-ratio',\n 'device-aspect-ratio',\n 'device-height',\n 'device-width',\n 'height',\n 'monochrome',\n 'resolution',\n 'width';\n\n@function breakpoint-min-max($feature) {\n @each $item in $breakpoint-min-max-features {\n @if $feature == $item {\n @return true;\n }\n }\n @return false;\n}\n\n//////////////////////////////\n// Returns whether the feature can have a string value\n//////////////////////////////\n$breakpoint-string-features: 'orientation',\n 'scan',\n 'color',\n 'aspect-ratio',\n 'device-aspect-ratio',\n 'pointer',\n 'luminosity';\n\n@function breakpoint-string-value($feature) {\n @each $item in $breakpoint-string-features {\n @if breakpoint-min-max($item) {\n @if $feature == 'min-#{$item}' or $feature == 'max-#{$item}' {\n @return true;\n }\n }\n @else if $feature == $item {\n @return true;\n }\n }\n @return false;\n}\n\n//////////////////////////////\n// Returns whether the feature is a media type\n//////////////////////////////\n$breakpoint-media-types: 'all',\n 'braille',\n 'embossed',\n 'handheld',\n 'print',\n 'projection',\n 'screen',\n 'speech',\n 'tty',\n 'tv';\n\n@function breakpoint-is-media($feature) {\n @each $media in $breakpoint-media-types {\n @if ($feature == $media) or ($feature == 'not #{$media}') or ($feature == 'only #{$media}') {\n @return true;\n }\n }\n\n @return false;\n}\n\n//////////////////////////////\n// Returns whether the feature can stand alone\n//////////////////////////////\n$breakpoint-single-string-features: 'color',\n 'color-index',\n 'grid',\n 'monochrome';\n\n@function breakpoint-single-string($feature) {\n @each $item in $breakpoint-single-string-features {\n @if $feature == $item {\n @return true;\n }\n }\n @return false;\n}\n\n//////////////////////////////\n// Returns whether the feature\n//////////////////////////////\n@function breakpoint-is-reso
"//////////////////////////////\n// Import Parser Pieces\n//////////////////////////////\n@import \"parsers/query\";\n@import \"parsers/single\";\n@import \"parsers/double\";\n@import \"parsers/triple\";\n@import \"parsers/resolution\";\n\n$Memo-Exists: function-exists(memo-get) and function-exists(memo-set);\n\n//////////////////////////////\n// Breakpoint Function\n//////////////////////////////\n@function breakpoint($query, $contexts...) {\n $run: true;\n $return: ();\n\n // Grab the Memo Output if Memoization can be a thing\n @if $Memo-Exists {\n $return: memo-get(breakpoint, breakpoint $query $contexts);\n\n @if $return != null {\n $run: false;\n }\n }\n\n @if not $Memo-Exists or $run {\n // Internal Variables\n $query-string: '';\n $query-fallback: false;\n $return: ();\n\n // Reserve Global Private Breakpoint Context\n $holder-context: $private-breakpoint-context-holder;\n $holder-query-count: $private-breakpoint-query-count;\n\n // Reset Global Private Breakpoint Context\n $private-breakpoint-context-holder: () !global;\n $private-breakpoint-query-count: 0 !global;\n\n\n // Test to see if it's a comma-separated list\n $or-list: if(list-separator($query) == 'comma', true, false);\n\n\n @if ($or-list == false and breakpoint-get('legacy syntax') == false) {\n $query-string: breakpoint-parse($query);\n }\n @else {\n $length: length($query);\n\n $last: nth($query, $length);\n $query-fallback: breakpoint-no-query($last);\n\n @if ($query-fallback != false) {\n $length: $length - 1;\n }\n\n @if (breakpoint-get('legacy syntax') == true) {\n $mq: ();\n\n @for $i from 1 through $length {\n $mq: append($mq, nth($query, $i), comma);\n }\n\n $query-string: breakpoint-parse($mq);\n }\n @else {\n $query-string: '';\n @for $i from 1 through $length {\n $query-string: $query-string + if($i == 1, '', ', ') + breakpoint-parse(nth($query, $i));\n }\n }\n }\n\n $return: ('query': $query-string,\n 'fallback': $query-fallback,\n 'context holder': $private-breakpoint-context-holder,\n 'query count': $private-breakpoint-query-count\n );\n @if length($contexts) > 0 and nth($contexts, 1) != false {\n @if $query-fallback != false {\n $context-setter: private-breakpoint-set-context('no-query', $query-fallback);\n }\n $context-map: ();\n @each $context in $contexts {\n $context-map: map-merge($context-map, ($context: breakpoint-get-context($context)));\n }\n $return: map-merge($return, (context: $context-map));\n }\n\n // Reset Global Private Breakpoint Context\n $private-breakpoint-context-holder: () !global;\n $private-breakpoint-query-count: 0 !global;\n\n @if $Memo-Exists {\n $holder: memo-set(breakpoint, breakpoint $query $contexts, $return);\n }\n }\n\n @return $return;\n}\n\n//////////////////////////////\n// General Breakpoint Parser\n//////////////////////////////\n@function breakpoint-parse($query) {\n // Increase number of 'and' queries\n $private-breakpoint-query-count: $private-breakpoint-query-count + 1 !global;\n\n // Set up Media Type\n $query-print: '';\n\n $force-all: ((breakpoint-get('force all media type') == true) and (breakpoint-get('default media') == 'all'));\n $empty-media: true;\n @if ($force-all == true) or (breakpoint-get('default media') != 'all') {\n // Force the print of the default media type if (force all is true and default media type is all) or (default media type is not all)\n $query-print: breakpoint-get('default media');\n $empty-media: false;\n }\n\n\n $query-resolution: false;\n\n $query-holder: breakpoint-parse-query($query);\n\n\n\n // Loop over each parsed out query and write it to $query-print\n $first: true;\n\n @each $feature in $query-holder {\n $length: length($feature);\n\n // Parse a single feature\n @if ($length == 1) {\n // Feature is currently a list, grab the actual
"@function breakpoint-parse-query($query) {\n // Parse features out of an individual query\n $feature-holder: ();\n $query-holder: ();\n $length: length($query);\n\n @if $length == 2 {\n // If we've got a string/number, number/string, check to see if it's a valid string/number pair or two singles\n @if (type-of(nth($query, 1)) == 'string' and type-of(nth($query, 2)) == 'number') or (type-of(nth($query, 1)) == 'number' and type-of(nth($query, 2)) == 'string') {\n\n $number: '';\n $value: '';\n\n @if type-of(nth($query, 1)) == 'string' {\n $number: nth($query, 2);\n $value: nth($query, 1);\n }\n @else {\n $number: nth($query, 1);\n $value: nth($query, 2);\n }\n\n // If the string value can be a single value, check to see if the number passed in is a valid input for said single value. Fortunately, all current single-value options only accept unitless numbers, so this check is easy.\n @if breakpoint-single-string($value) {\n @if unitless($number) {\n $feature-holder: append($value, $number, space);\n $query-holder: append($query-holder, $feature-holder, comma);\n @return $query-holder;\n }\n }\n // If the string is a media type, split the query\n @if breakpoint-is-media($value) {\n $query-holder: append($query-holder, nth($query, 1));\n $query-holder: append($query-holder, nth($query, 2));\n @return $query-holder;\n }\n // If it's not a single feature, we're just going to assume it's a proper string/value pair, and roll with it.\n @else {\n $feature-holder: append($value, $number, space);\n $query-holder: append($query-holder, $feature-holder, comma);\n @return $query-holder;\n }\n\n }\n // If they're both numbers, we assume it's a double and roll with that\n @else if (type-of(nth($query, 1)) == 'number' and type-of(nth($query, 2)) == 'number') {\n $feature-holder: append(nth($query, 1), nth($query, 2), space);\n $query-holder: append($query-holder, $feature-holder, comma);\n @return $query-holder;\n }\n // If they're both strings and neither are singles, we roll with that.\n @else if (type-of(nth($query, 1)) == 'string' and type-of(nth($query, 2)) == 'string') {\n @if not breakpoint-single-string(nth($query, 1)) and not breakpoint-single-string(nth($query, 2)) {\n $feature-holder: append(nth($query, 1), nth($query, 2), space);\n $query-holder: append($query-holder, $feature-holder, comma);\n @return $query-holder;\n }\n }\n }\n @else if $length == 3 {\n // If we've got three items and none is a list, we check to see\n @if type-of(nth($query, 1)) != 'list' and type-of(nth($query, 2)) != 'list' and type-of(nth($query, 3)) != 'list' {\n // If none of the items are single string values and none of the values are media values, we're good.\n @if (not breakpoint-single-string(nth($query, 1)) and not breakpoint-single-string(nth($query, 2)) and not breakpoint-single-string(nth($query, 3))) and ((not breakpoint-is-media(nth($query, 1)) and not breakpoint-is-media(nth($query, 2)) and not breakpoint-is-media(nth($query, 3)))) {\n $feature-holder: append(nth($query, 1), nth($query, 2), space);\n $feature-holder: append($feature-holder, nth($query, 3), space);\n $query-holder: append($query-holder, $feature-holder, comma);\n @return $query-holder;\n }\n // let's check to see if the first item is a media type\n @else if breakpoint-is-media(nth($query, 1)) {\n $query-holder: append($query-holder, nth($query, 1));\n $feature-holder: append(nth($query, 2), nth($query, 3), space);\n $query-holder: append($query-holder, $feature-holder);\n @return $query-holder;\n }\n }\n }\n\n // If it's a single item, or if it's not a special case double or triple, we can simply return the query.\n @return $query;\n}\n",
"//////////////////////////////\n// Import Pieces\n//////////////////////////////\n@import \"single/default\";\n\n@function breakpoint-parse-single($feature, $empty-media, $first) {\n $parsed: '';\n $leader: '';\n // If we're forcing\n @if not ($empty-media) or not ($first) {\n $leader: 'and ';\n }\n\n // If it's a single feature that can stand alone, we let it\n @if (breakpoint-single-string($feature)) {\n $parsed: $feature;\n // Set Context\n $context-setter: private-breakpoint-set-context($feature, $feature);\n }\n // If it's not a stand alone feature, we pass it off to the default handler.\n @else {\n $parsed: breakpoint-parse-default($feature);\n }\n\n @return $leader + '(' + $parsed + ')';\n}\n",
"@function breakpoint-parse-default($feature) {\n $default: breakpoint-get('default feature');\n\n // Set Context\n $context-setter: private-breakpoint-set-context($default, $feature);\n\n @if (breakpoint-get('to ems') == true) and (type-of($feature) == 'number') {\n @return '#{$default}: #{breakpoint-to-base-em($feature)}';\n }\n @else {\n @return '#{$default}: #{$feature}';\n }\n}\n",
"//////////////////////////////\n// Import Pieces\n//////////////////////////////\n@import \"double/default-pair\";\n@import \"double/double-string\";\n@import \"double/default\";\n\n@function breakpoint-parse-double($feature, $empty-media, $first) {\n $parsed: '';\n $leader: '';\n // If we're forcing\n @if not ($empty-media) or not ($first) {\n $leader: 'and ';\n }\n\n $first: nth($feature, 1);\n $second: nth($feature, 2);\n\n // If we've got two numbers, we know we need to use the default pair because there are no media queries that has a media feature that is a number\n @if type-of($first) == 'number' and type-of($second) == 'number' {\n $parsed: breakpoint-parse-default-pair($first, $second);\n }\n // If they are both strings, we send it through the string parser\n @else if type-of($first) == 'string' and type-of($second) == 'string' {\n $parsed: breakpoint-parse-double-string($first, $second);\n }\n // If it's a string/number pair, we parse it as a normal double\n @else {\n $parsed: breakpoint-parse-double-default($first, $second);\n }\n\n @return $leader + $parsed;\n}\n",
"@function breakpoint-parse-default-pair($first, $second) {\n $default: breakpoint-get('default pair');\n $min: '';\n $max: '';\n\n // Sort into min and max\n $min: min($first, $second);\n $max: max($first, $second);\n\n // Set Context\n $context-setter: private-breakpoint-set-context(min-#{$default}, $min);\n $context-setter: private-breakpoint-set-context(max-#{$default}, $max);\n\n // Make them EMs if need be\n @if (breakpoint-get('to ems') == true) {\n $min: breakpoint-to-base-em($min);\n $max: breakpoint-to-base-em($max);\n }\n\n @return '(min-#{$default}: #{$min}) and (max-#{$default}: #{$max})';\n}\n",
"@function breakpoint-parse-double-string($first, $second) {\n $feature: '';\n $value: '';\n\n // Test to see which is the feature and which is the value\n @if (breakpoint-string-value($first) == true) {\n $feature: $first;\n $value: $second;\n }\n @else if (breakpoint-string-value($second) == true) {\n $feature: $second;\n $value: $first;\n }\n @else {\n @warn \"Neither #{$first} nor #{$second} is a valid media query name.\";\n }\n\n // Set Context\n $context-setter: private-breakpoint-set-context($feature, $value);\n\n @return '(#{$feature}: #{$value})';\n}",
"@function breakpoint-parse-double-default($first, $second) {\n $feature: '';\n $value: '';\n\n @if type-of($first) == 'string' {\n $feature: $first;\n $value: $second;\n }\n @else {\n $feature: $second;\n $value: $first;\n }\n\n // Set Context\n $context-setter: private-breakpoint-set-context($feature, $value);\n\n @if (breakpoint-get('to ems') == true) {\n $value: breakpoint-to-base-em($value);\n }\n\n @return '(#{$feature}: #{$value})'\n}\n",
"//////////////////////////////\n// Import Pieces\n//////////////////////////////\n@import \"triple/default\";\n\n@function breakpoint-parse-triple($feature, $empty-media, $first) {\n $parsed: '';\n $leader: '';\n\n // If we're forcing\n @if not ($empty-media) or not ($first) {\n $leader: 'and ';\n }\n\n // separate the string features from the value numbers\n $string: null;\n $numbers: null;\n @each $val in $feature {\n @if type-of($val) == string {\n $string: $val;\n }\n @else {\n @if type-of($numbers) == 'null' {\n $numbers: $val;\n }\n @else {\n $numbers: append($numbers, $val);\n }\n }\n }\n\n $parsed: breakpoint-parse-triple-default($string, nth($numbers, 1), nth($numbers, 2));\n\n @return $leader + $parsed;\n\n}\n",
"@function breakpoint-parse-triple-default($feature, $first, $second) {\n\n // Sort into min and max\n $min: min($first, $second);\n $max: max($first, $second);\n\n // Set Context\n $context-setter: private-breakpoint-set-context(min-#{$feature}, $min);\n $context-setter: private-breakpoint-set-context(max-#{$feature}, $max);\n\n // Make them EMs if need be\n @if (breakpoint-get('to ems') == true) {\n $min: breakpoint-to-base-em($min);\n $max: breakpoint-to-base-em($max);\n }\n\n @return '(min-#{$feature}: #{$min}) and (max-#{$feature}: #{$max})';\n}\n",
"@import \"resolution/resolution\";\n\n@function breakpoint-build-resolution($query-print, $query-resolution, $empty-media, $first) {\n $leader: '';\n // If we're forcing\n @if not ($empty-media) or not ($first) {\n $leader: 'and ';\n }\n\n @if breakpoint-get('transform resolutions') and $query-resolution {\n $resolutions: breakpoint-make-resolutions($query-resolution);\n $length: length($resolutions);\n $query-holder: '';\n\n @for $i from 1 through $length {\n $query: '#{$query-print} #{$leader}#{nth($resolutions, $i)}';\n @if $i == 1 {\n $query-holder: $query;\n }\n @else {\n $query-holder: '#{$query-holder}, #{$query}';\n }\n }\n\n @return $query-holder;\n }\n @else {\n // Return with attached resolution\n @return $query-print;\n }\n}\n",
"@function breakpoint-make-resolutions($resolution) {\n $length: length($resolution);\n\n $output: ();\n\n @if $length == 2 {\n $feature: '';\n $value: '';\n\n // Find which is number\n @if type-of(nth($resolution, 1)) == 'number' {\n $value: nth($resolution, 1);\n }\n @else {\n $value: nth($resolution, 2);\n }\n\n // Determine min/max/standard\n @if index($resolution, 'min-resolution') {\n $feature: 'min-';\n }\n @else if index($resolution, 'max-resolution') {\n $feature: 'max-';\n }\n\n $standard: '(#{$feature}resolution: #{$value})';\n\n // If we're not dealing with dppx,\n @if unit($value) != 'dppx' {\n $base: 96dpi;\n @if unit($value) == 'dpcm' {\n $base: 243.84dpcm;\n }\n // Write out feature tests\n $webkit: '';\n $moz: '';\n $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / $base})';\n $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / $base})';\n // Append to output\n $output: append($output, $standard, space);\n $output: append($output, $webkit, space);\n $output: append($output, $moz, space);\n }\n @else {\n $webkit: '';\n $moz: '';\n $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / 1dppx})';\n $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / 1dppx})';\n $fallback: '(#{$feature}resolution: #{$value / 1dppx * 96dpi})';\n // Append to output\n $output: append($output, $standard, space);\n $output: append($output, $webkit, space);\n $output: append($output, $moz, space);\n $output: append($output, $fallback, space);\n }\n\n }\n\n @return $output;\n}\n",
"@function breakpoint-no-query($query) {\n @if type-of($query) == 'list' {\n $keyword: nth($query, 1);\n\n @if type-of($keyword) == 'string' and ($keyword == 'no-query' or $keyword == 'no query' or $keyword == 'fallback') {\n @return nth($query, 2);\n }\n @else {\n @return false;\n }\n }\n @else {\n @return false;\n }\n}\n",
"////////////////////////\n// Default the Breakpoints variable\n////////////////////////\n$breakpoints: () !default;\n$BREAKPOINTS: () !default;\n\n////////////////////////\n// Respond-to API Mixin\n////////////////////////\n@mixin respond-to($context, $no-query: false) {\n @if length($breakpoints) > 0 and length($BREAKPOINTS) == 0 {\n @warn \"In order to avoid variable namespace collisions, we have updated the way to add breakpoints for respond-to. Please change all instances of `$breakpoints: add-breakpoint()` to `@include add-breakpoint()`. The `add-breakpoint()` function will be deprecated in a future release.\";\n $BREAKPOINTS: $breakpoints !global;\n $breakpoints: () !global;\n }\n\n @if type-of($BREAKPOINTS) != 'map' {\n // Just in case someone writes gibberish to the $breakpoints variable.\n @warn \"Your breakpoints aren't a map! `respond-to` expects a map. Please check the value of $BREAKPOINTS variable.\";\n @content;\n }\n @else if map-has-key($BREAKPOINTS, $context) {\n @include breakpoint(map-get($BREAKPOINTS, $context), $no-query) {\n @content;\n }\n }\n @else if not map-has-key($BREAKPOINTS, $context) {\n @warn \"`#{$context}` isn't a defined breakpoint! Please add it using `$breakpoints: add-breakpoint(`#{$context}`, $value);`\";\n @content;\n }\n @else {\n @warn \"You haven't created any breakpoints yet! Make some already! `@include add-breakpoint($name, $bkpt)`\";\n @content;\n }\n}\n\n//////////////////////////////\n// Add Breakpoint to Breakpoints\n// TODO: Remove function in next release\n//////////////////////////////\n@function add-breakpoint($name, $bkpt, $overwrite: false) {\n $output: ($name: $bkpt);\n\n @if length($breakpoints) == 0 {\n @return $output;\n }\n @else {\n @if map-has-key($breakpoints, $name) and $overwrite != true {\n @warn \"You already have a breakpoint named `#{$name}`, please choose another breakpoint name, or pass in `$overwrite: true` to overwrite the previous breakpoint.\";\n @return $breakpoints;\n }\n @else if not map-has-key($breakpoints, $name) or $overwrite == true {\n @return map-merge($breakpoints, $output);\n }\n }\n}\n\n@mixin add-breakpoint($name, $bkpt, $overwrite: false) {\n $output: ($name: $bkpt);\n\n @if length($BREAKPOINTS) == 0 {\n $BREAKPOINTS: $output !global;\n }\n @else {\n @if map-has-key($BREAKPOINTS, $name) and $overwrite != true {\n @warn \"You already have a breakpoint named `#{$name}`, please choose another breakpoint name, or pass in `$overwrite: true` to overwrite the previous breakpoint.\";\n $BREAKPOINTS: $BREAKPOINTS !global;\n }\n @else if not map-has-key($BREAKPOINTS, $name) or $overwrite == true {\n $BREAKPOINTS: map-merge($BREAKPOINTS, $output) !global;\n }\n }\n}\n\n@function get-breakpoint($name: false) {\n @if $name == false {\n @return $BREAKPOINTS;\n }\n @else {\n @return map-get($BREAKPOINTS, $name);\n }\n}\n",
"@mixin legacy-settings-warning {\n $legacyVars: (\n 'default-media': 'default media',\n 'default-feature': 'default feature',\n 'force-media-all': 'force all media type',\n 'to-ems': 'to ems',\n 'resolutions': 'transform resolutions',\n 'no-queries': 'no queries',\n 'no-query-fallbacks': 'no query fallbacks',\n 'base-font-size': 'base font size',\n 'legacy-syntax': 'legacy syntax'\n );\n\n @each $legacy, $new in $legacyVars {\n @if global-variable-exists('breakpoint-' + $legacy) {\n @warn \"In order to avoid variable namspace collisions, we have updated the way to change settings for Breakpoint. Please change all instances of `$breakpoint-#{$legacy}: {{setting}}` to `@include breakpoint-set('#{$new}', {{setting}})`. Variable settings, as well as this warning will be deprecated in a future release.\"\n }\n };\n\n //////////////////////////////\n // Hand correct each setting\n //////////////////////////////\n @if global-variable-exists('breakpoint-default-media') and $breakpoint-default-media != breakpoint-get('default media') {\n @include breakpoint-set('default media', $breakpoint-default-media);\n }\n @if global-variable-exists('breakpoint-default-feature') and $breakpoint-default-feature != breakpoint-get('default feature') {\n @include breakpoint-set('default feature', $breakpoint-default-feature);\n }\n @if global-variable-exists('breakpoint-force-media-all') and $breakpoint-force-media-all != breakpoint-get('force all media type') {\n @include breakpoint-set('force all media type', $breakpoint-force-media-all);\n }\n @if global-variable-exists('breakpoint-to-ems') and $breakpoint-to-ems != breakpoint-get('to ems') {\n @include breakpoint-set('to ems', $breakpoint-to-ems);\n }\n @if global-variable-exists('breakpoint-resolutions') and $breakpoint-resolutions != breakpoint-get('transform resolutions') {\n @include breakpoint-set('transform resolutions', $breakpoint-resolutions);\n }\n @if global-variable-exists('breakpoint-no-queries') and $breakpoint-no-queries != breakpoint-get('no queries') {\n @include breakpoint-set('no queries', $breakpoint-no-queries);\n }\n @if global-variable-exists('breakpoint-no-query-fallbacks') and $breakpoint-no-query-fallbacks != breakpoint-get('no query fallbacks') {\n @include breakpoint-set('no query fallbacks', $breakpoint-no-query-fallbacks);\n }\n @if global-variable-exists('breakpoint-base-font-size') and $breakpoint-base-font-size != breakpoint-get('base font size') {\n @include breakpoint-set('base font size', $breakpoint-base-font-size);\n }\n @if global-variable-exists('breakpoint-legacy-syntax') and $breakpoint-legacy-syntax != breakpoint-get('legacy syntax') {\n @include breakpoint-set('legacy syntax', $breakpoint-legacy-syntax);\n }\n}",
"/* Magnific Popup CSS */\n\n@import \"settings\";\n\n////////////////////////\n//\n// Contents:\n//\n// 1. Default Settings\n// 2. General styles\n// - Transluscent overlay\n// - Containers, wrappers\n// - Cursors\n// - Helper classes\n// 3. Appearance\n// - Preloader & text that displays error messages\n// - CSS reset for buttons\n// - Close icon\n// - \"1 of X\" counter\n// - Navigation (left/right) arrows\n// - Iframe content type styles\n// - Image content type styles\n// - Media query where size of arrows is reduced\n// - IE7 support\n//\n////////////////////////\n\n\n\n////////////////////////\n// 1. Default Settings\n////////////////////////\n\n$mfp-overlay-color: #0b0b0b !default;\n$mfp-overlay-opacity: 0.8 !default;\n$mfp-shadow: 0 0 8px rgba(0, 0, 0, 0.6) !default; // shadow on image or iframe\n$mfp-popup-padding-left: 8px !default; // Padding from left and from right side\n$mfp-popup-padding-left-mobile: 6px !default; // Same as above, but is applied when width of window is less than 800px\n\n$mfp-z-index-base: 1040 !default; // Base z-index of popup\n$mfp-include-arrows: true !default; // include styles for nav arrows\n$mfp-controls-opacity: 0.65 !default;\n$mfp-controls-color: #FFF !default;\n$mfp-controls-border-color: #3F3F3F !default;\n$mfp-inner-close-icon-color: #333 !default;\n$mfp-controls-text-color: #CCC !default; // Color of preloader and \"1 of X\" indicator\n$mfp-controls-text-color-hover: #FFF !default;\n$mfp-IE7support: true !default; // Very basic IE7 support\n\n// Iframe-type options\n$mfp-include-iframe-type: true !default;\n$mfp-iframe-padding-top: 40px !default;\n$mfp-iframe-background: #000 !default;\n$mfp-iframe-max-width: 900px !default;\n$mfp-iframe-ratio: 9/16 !default;\n\n// Image-type options\n$mfp-include-image-type: true !default;\n$mfp-image-background: #444 !default;\n$mfp-image-padding-top: 40px !default;\n$mfp-image-padding-bottom: 40px !default;\n$mfp-include-mobile-layout-for-image: true !default; // Removes paddings from top and bottom\n\n// Image caption options\n$mfp-caption-title-color: #F3F3F3 !default;\n$mfp-caption-subtitle-color: #BDBDBD !default;\n\n// A11y\n$mfp-use-visuallyhidden: false !default; // Hide content from browsers, but make it available for screen readers\n\n\n\n////////////////////////\n// 2. General styles\n////////////////////////\n\n// Transluscent overlay\n.mfp-bg {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: $mfp-z-index-base + 2;\n overflow: hidden;\n position: fixed;\n\n background: $mfp-overlay-color;\n opacity: $mfp-overlay-opacity;\n @if $mfp-IE7support {\n filter: unquote(\"alpha(opacity=#{$mfp-overlay-opacity*100})\");\n }\n}\n\n// Wrapper for popup\n.mfp-wrap {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: $mfp-z-index-base + 3;\n position: fixed;\n outline: none !important;\n -webkit-backface-visibility: hidden; // fixes webkit bug that can cause \"false\" scrollbar\n}\n\n// Root container\n.mfp-container {\n text-align: center;\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n padding: 0 $mfp-popup-padding-left;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n// Vertical centerer helper\n.mfp-container {\n &:before {\n content: '';\n display: inline-block;\n height: 100%;\n vertical-align: middle;\n }\n}\n\n// Remove vertical centering when popup has class `mfp-align-top`\n.mfp-align-top {\n .mfp-container {\n &:before {\n display: none;\n }\n }\n}\n\n// Popup content holder\n.mfp-content {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n ma
"////////////////////////\n// Settings //\n////////////////////////\n\n// overlay\n$mfp-overlay-color: #000; // Color of overlay screen\n$mfp-overlay-opacity: 0.8; // Opacity of overlay screen\n$mfp-shadow: 0 0 8px rgba(0, 0, 0, 0.6); // Shadow on image or iframe\n\n// spacing\n$mfp-popup-padding-left: 8px; // Padding from left and from right side\n$mfp-popup-padding-left-mobile: 6px; // Same as above, but is applied when width of window is less than 800px\n\n$mfp-z-index-base: 1040; // Base z-index of popup\n\n// controls\n$mfp-include-arrows: true; // Include styles for nav arrows\n$mfp-controls-opacity: 1; // Opacity of controls\n$mfp-controls-color: #fff; // Color of controls\n$mfp-controls-border-color: #fff; // Border color of controls\n$mfp-inner-close-icon-color: #fff; // Color of close button when inside\n$mfp-controls-text-color: #ccc; // Color of preloader and \"1 of X\" indicator\n$mfp-controls-text-color-hover: #fff; // Hover color of preloader and \"1 of X\" indicator\n$mfp-IE7support: true; // Very basic IE7 support\n\n// Iframe-type options\n$mfp-include-iframe-type: true; // Enable Iframe-type popups\n$mfp-iframe-padding-top: 40px; // Iframe padding top\n$mfp-iframe-background: #000; // Background color of iframes\n$mfp-iframe-max-width: 900px; // Maximum width of iframes\n$mfp-iframe-ratio: 9/16; // Ratio of iframe (9/16 = widescreen, 3/4 = standard, etc.)\n\n// Image-type options\n$mfp-include-image-type: true; // Enable Image-type popups\n$mfp-image-background: #444 !default;\n$mfp-image-padding-top: 40px; // Image padding top\n$mfp-image-padding-bottom: 40px; // Image padding bottom\n$mfp-include-mobile-layout-for-image: true; // Removes paddings from top and bottom\n\n// Image caption options\n$mfp-caption-title-color: #f3f3f3; // Caption title color\n$mfp-caption-subtitle-color: #bdbdbd; // Caption subtitle color\n.mfp-counter { font-family: $serif; } // Caption font family\n\n// A11y\n$mfp-use-visuallyhidden: false;",
"// Susy (Un-Prefixed)\n// ==================\n\n@import 'susy-prefix';\n@import 'susy/unprefix';\n",
"// Susy (Prefixed)\n// ===============\n\n$susy-version: 3;\n\n@import 'susy/utilities';\n@import 'susy/su-validate';\n@import 'susy/su-math';\n@import 'susy/settings';\n@import 'susy/normalize';\n@import 'susy/parse';\n@import 'susy/syntax-helpers';\n@import 'susy/api';\n",
"// Sass Utilities\n// ==============\n// - Susy Error Output Override [variable]\n// - Susy Error [function]\n\n\n\n// Susy Error Output Override\n// --------------------------\n/// Turn off error output for testing\n/// @group x-utility\n/// @access private\n$_susy-error-output-override: false !default;\n\n\n\n// Susy Error\n// ----------\n/// Optionally return error messages without failing,\n/// as a way to test error cases\n///\n/// @group x-utility\n/// @access private\n///\n/// @param {string} $message -\n/// A useful error message, explaining the problem\n/// @param {string} $source -\n/// The original source of the error for debugging\n/// @param {bool} $override [$_susy-error-output-override] -\n/// Optionally return the error rather than failing\n/// @return {string} -\n/// Combined error with source and message\n/// @throws When `$override == true`\n@function _susy-error(\n $message,\n $source,\n $override: $_susy-error-output-override\n) {\n @if $override {\n @return 'ERROR [#{$source}] #{$message}';\n }\n\n @error '[#{$source}] #{$message}';\n}\n\n\n// Su Is Comparable\n// ----------------\n/// Check that the units in a grid are comparable\n///\n/// @group x-validation\n/// @access private\n///\n/// @param {numbers} $lengths… -\n/// Arglist of all the number values to compare\n/// (columns, gutters, span, etc)\n///\n/// @return {'fluid' | 'static' | false} -\n/// The type of span (fluid or static) when units match,\n/// or `false` for mismatched units\n@function _su-is-comparable(\n $lengths...\n) {\n $first: nth($lengths, 1);\n\n @if (length($lengths) == 1) {\n @return if(unitless($first), 'fluid', 'static');\n }\n\n @for $i from 2 through length($lengths) {\n $comp: nth($lengths, $i);\n\n $fail: not comparable($first, $comp);\n $fail: $fail or (unitless($first) and not unitless($comp));\n $fail: $fail or (unitless($comp) and not unitless($first));\n\n @if $fail {\n @return false;\n }\n }\n\n @return if(unitless($first), 'fluid', 'static');\n}\n\n\n// Su Map Add Units\n// ----------------\n/// The calc features use a map of units and values\n/// to compile the proper algorythm.\n/// This function adds a new value to any comparable existing unit/value,\n/// or adds a new unit/value pair to the map\n///\n/// @group x-utility\n/// @access private\n///\n/// @param {map} $map -\n/// A map of unit/value pairs, e.g. ('px': 120px)\n/// @param {length} $value -\n/// A new length to be added to the map\n/// @return {map} -\n/// The updated map, with new value added\n///\n/// @example scss -\n/// $map: (0px: 120px);\n/// $map: _su-map-add-units($map, 1in); // add a comparable unit\n/// $map: _su-map-add-units($map, 3vw); // add a new unit\n///\n/// @each $units, $value in $map {\n/// /* #{$units}: #{$value} */\n/// }\n@function _su-map-add-units(\n $map,\n $value\n) {\n $unit: $value * 0;\n $has: map-get($map, $unit) or 0;\n\n @if ($has == 0) {\n @each $try, $could in $map {\n $match: comparable($try, $value);\n $unit: if($match, $try, $unit);\n $has: if($match, $could, $has);\n }\n }\n\n @return map-merge($map, ($unit: $has + $value));\n}\n\n\n// Susy Flatten\n// ------------\n/// Flatten a multidimensional list\n///\n/// @group x-utility\n/// @access private\n///\n/// @param {list} $list -\n/// The list to be flattened\n/// @return {list} -\n/// The flattened list\n///\n/// @example scss -\n/// $list: 120px (30em 30em) 120px;\n/// /* #{_susy-flatten($list)} */\n@function _susy-flatten(\n $list\n) {\n $flat: ();\n\n // Don't iterate over maps\n @if (type-of($list) == 'map') {\n @return $list;\n }\n\n // Iterate over lists (or single items)\n @each $item in $list {\n @if (type-of($item) == 'list') {\n $item: _susy-flatten($item);\n $flat: join($flat, $item);\n } @else {\n $flat: append($flat, $item);\n }\n }\n\n // Return flattened list\n @return $flat;\n}\n",
"/// Validation\n/// ==========\n/// Each argument to Su has a single canonical syntax.\n/// These validation functions check to ensure\n/// that each argument is valid,\n/// in order to provide useful errors\n/// before attempting to calculate the results/\n///\n/// @group x-validation\n///\n/// @see su-valid-columns\n/// @see su-valid-gutters\n/// @see su-valid-spread\n/// @see su-valid-location\n\n\n\n// Valid Span\n// ----------\n/// Check that the `span` argument\n/// is a number, length, or column-list\n///\n/// @group x-validation\n///\n/// @param {number | list} $span -\n/// Number of columns, or length of span\n///\n/// @return {number | list} -\n/// Validated `$span` number, length, or columns list\n///\n/// @throw\n/// when span value is not a number, or valid column list\n@function su-valid-span(\n $span\n) {\n $type: type-of($span);\n @if ($type == 'number') {\n @return $span;\n } @else if ($type == 'list') and su-valid-columns($span, 'silent-failure') {\n @return $span;\n }\n\n $actual: '[#{type-of($span)}] `#{inspect($span)}`';\n @return _susy-error(\n '#{$actual} is not a valid number, length, or column-list for $span.',\n 'su-valid-span');\n}\n\n\n\n// Valid Columns\n// -------------\n/// Check that the `columns` argument is a valid\n/// list of column-lengths\n///\n/// @group x-validation\n///\n/// @param {list} $columns -\n/// List of column-lengths\n/// @param {bool} $silent-failure [true] -\n/// Set false to return null on failure\n///\n/// @return {list} -\n/// Validated `$columns` list\n///\n/// @throw\n/// when column value is not a valid list of numbers\n@function su-valid-columns(\n $columns,\n $silent-failure: false\n) {\n @if (type-of($columns) == 'list') {\n $fail: false;\n\n @each $col in $columns {\n @if (type-of($col) != 'number') {\n $fail: true;\n }\n }\n\n @if not $fail {\n @return $columns;\n }\n }\n\n // Silent Failure\n @if $silent-failure {\n @return null;\n }\n\n // Error Message\n $actual: '[#{type-of($columns)}] `#{inspect($columns)}`';\n\n @return _susy-error(\n '#{$actual} is not a valid list of numbers for $columns.',\n 'su-valid-columns');\n}\n\n\n\n// Valid Gutters\n// -------------\n/// Check that the `gutters` argument is a valid number\n///\n/// @group x-validation\n///\n/// @param {number} $gutters -\n/// Width of a gutter\n///\n/// @return {number} -\n/// Validated `$gutters` number\n///\n/// @throw\n/// when gutter value is not a number\n@function su-valid-gutters(\n $gutters\n) {\n $type: type-of($gutters);\n\n @if ($type == 'number') {\n @return $gutters;\n }\n\n $actual: '[#{$type}] `#{inspect($gutters)}`';\n @return _susy-error(\n '#{$actual} is not a number or length for $gutters.',\n 'su-valid-gutters');\n}\n\n\n\n// Valid Spread\n// ------------\n/// Check that the `spread` argument is a valid\n/// intiger between `-1` and `1`\n///\n/// @group x-validation\n///\n/// @param {0 | 1 | -1} $spread -\n/// Number of gutters to include in a span,\n/// relative to the number columns\n///\n/// @return {0 | 1 | -1} -\n/// Validated `$spread` number\n///\n/// @throw\n/// when spread value is not a valid spread\n@function su-valid-spread(\n $spread\n) {\n @if index(0 1 -1, $spread) {\n @return $spread;\n }\n\n $actual: '[#{type-of($spread)}] `#{inspect($spread)}`';\n @return _susy-error(\n '#{$actual} is not a normalized [0 | 1 | -1] value for `$spread`.',\n 'su-valid-spread');\n}\n\n\n\n// Valid Location\n// --------------\n/// Check that the `location` argument is a valid number,\n/// within the scope of available columns\n///\n/// @group x-validation\n///\n/// @param {number} $span -\n/// Number of grid-columns to be spanned\n/// @param {integer | string} $location -\n/// Starting (1-indexed) column-position of that span\n/// @param {list} $columns -\n/// List of available columns in the grid\n///\n/// @return {integer} -\n/// Validated `$location` intiger\n///\n/// @throw\n/// when location value is not a valid index,\n/// gi
"/// Grid Math Engine\n/// ================\n/// The `su` functions give you direct access to the math layer,\n/// without any syntax-sugar like shorthand parsing, and normalization.\n/// If you prefer named arguments, and stripped-down syntax,\n/// you can use these functions directly in your code \n/// replacing `span`, `gutter`, and `slice`.\n///\n/// These functions are also useful\n/// for building mixins or other extensions to Susy.\n/// Apply the Susy syntax to new mixins and functions,\n/// using our \"Plugin Helpers\",\n/// or write your own syntax and pass the normalized results along\n/// to `su` for compilation.\n///\n/// @group su-math\n///\n/// @see su-span\n/// @see su-gutter\n/// @see su-slice\n/// @ignore _su-sum\n/// @ignore _su-calc-span\n/// @ignore _su-calc-sum\n/// @ignore _su-needs-calc-output\n\n\n\n// Su Span\n// -------\n/// Calculates and returns a CSS-ready span width,\n/// based on normalized span and context data \n/// a low-level version of `susy-span`,\n/// with all of the logic and none of the syntax sugar.\n///\n/// - Grids defined with unitless numbers will return `%` values.\n/// - Grids defined with comparable units\n/// will return a value in the units provided.\n/// - Grids defined with a mix of units,\n/// or a combination of untiless numbers and unit-lengths,\n/// will return a `calc()` string.\n///\n/// @group su-math\n/// @see susy-span\n///\n/// @param {number | list} $span -\n/// Number or list of grid columns to span\n/// @param {list} $columns -\n/// List of columns available\n/// @param {number} $gutters -\n/// Width of a gutter in column-comparable units\n/// @param {0 | 1 | -1} $spread -\n/// Number of gutters spanned,\n/// relative to `span` count\n/// @param {0 | 1 | -1} $container-spread [$spread] -\n/// Number of gutters spanned,\n/// relative to `columns` count\n/// @param {integer} $location [1] -\n/// Optional position of sub-span among full set of columns\n///\n/// @return {length} -\n/// Relative or static length of a span on the grid\n@function su-span(\n $span,\n $columns,\n $gutters,\n $spread,\n $container-spread: $spread,\n $location: 1\n) {\n $span: su-valid-span($span);\n $columns: su-valid-columns($columns);\n $gutters: su-valid-gutters($gutters);\n $spread: su-valid-spread($spread);\n\n @if (type-of($span) == 'number') {\n @if (not unitless($span)) {\n @return $span;\n }\n\n $location: su-valid-location($span, $location, $columns);\n $span: su-slice($span, $columns, $location, $validate: false);\n }\n\n @if _su-needs-calc-output($span, $columns, $gutters, $spread, not 'validate') {\n @return _su-calc-span($span, $columns, $gutters, $spread, $container-spread, not 'validate');\n }\n\n $span-width: _su-sum($span, $gutters, $spread, $validate: false);\n\n @if unitless($span-width) {\n $container-spread: su-valid-spread($container-spread);\n $container: _su-sum($columns, $gutters, $container-spread, $validate: false);\n @return percentage($span-width / $container);\n }\n\n @return $span-width;\n}\n\n\n\n// Su Gutter\n// ---------\n/// Calculates and returns a CSS-ready gutter width,\n/// based on normalized grid data \n/// a low-level version of `susy-gutter`,\n/// with all of the logic and none of the syntax sugar.\n///\n/// - Grids defined with unitless numbers will return `%` values.\n/// - Grids defined with comparable units\n/// will return a value in the units provided.\n/// - Grids defined with a mix of units,\n/// or a combination of untiless numbers and unit-lengths,\n/// will return a `calc()` string.\n///\n/// @group su-math\n/// @see susy-gutter\n///\n/// @param {list} $columns -\n/// List of columns in the grid\n/// @param {number} $gutters -\n/// Width of a gutter in column-comparable units\n/// @param {0 | 1 | -1} $container-spread -\n/// Number of gutters spanned,\n/// relative to `columns` count\n///\n/// @return {length} -\n/// Relative or static length of one gutter in a grid\n@function su-gutter(\n $columns,\n $gutters,\n $container-sprea
"/// Susy3 Configuration\n/// ===================\n/// Susy3 has 4 core settings, in a single settings map.\n/// You'll notice a few differences from Susy2:\n///\n/// **Columns** no longer accept a single number, like `12`,\n/// but use a syntax more similar to the new\n/// CSS [grid-template-columns][columns] \n/// a list of relative sizes for each column on the grid.\n/// Unitless numbers in Susy act very similar to `fr` units in CSS,\n/// and the `susy-repeat()` function (similar to the css `repeat()`)\n/// helps quickly establish equal-width columns.\n///\n/// [columns]: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns\n///\n/// - `susy-repeat(12)` will create 12 fluid, equal-width columns\n/// - `susy-repeat(6, 120px)` will create 6 equal `120px`-wide columns\n/// - `120px susy-repeat(4) 120px` will create 6 columns,\n/// the first and last are `120px`,\n/// while the middle 4 are equal fractions of the remainder.\n/// Susy will output `calc()` values in order to achieve this.\n///\n/// **Gutters** haven't changed \n/// a single fraction or explicit width \n/// but the `calc()` output feature\n/// means you can now use any combination of units and fractions\n/// to create static-gutters on a fluid grid, etc.\n///\n/// **Spread** existed in the Susy2 API as a span option,\n/// and was otherwise handled behind the scenes.\n/// Now we're giving you full control over all spread issues.\n/// You can find a more [detailed explanation of spread on the blog][spread].\n///\n/// [spread]: http://oddbird.net/2017/06/13/susy-spread/\n///\n/// You can access your global settings at any time\n/// with the `susy-settings()` function,\n/// or grab a single setting from the global scope\n/// with `susy-get('columns')`, `susy-get('gutters')` etc.\n///\n/// @group a-config\n/// @link http://oddbird.net/2017/06/13/susy-spread/\n/// Article: Understanding Spread in Susy3\n///\n/// @see $susy\n/// @see susy-settings\n/// @see susy-get\n\n\n\n// Susy\n// ----\n/// The grid is defined in a single map variable,\n/// with four initial properties:\n/// `columns`, `gutters`, `spread` and `container-spread`.\n/// Anything you put in the root `$susy` variable map\n/// will be treated as a global project default.\n/// You can create similar configuration maps\n/// under different variable names,\n/// to override the defaults as-needed.\n///\n/// @group a-config\n/// @type Map\n///\n/// @see $_susy-defaults\n/// @see {function} susy-repeat\n/// @link\n/// https://codepen.io/mirisuzanne/pen/EgmJJp?editors=1100\n/// Spread examples on CodePen\n///\n/// @prop {list} columns -\n/// Columns are described by a list of numbers,\n/// representing the relative width of each column.\n/// The syntax is a simplified version of CSS native\n/// `grid-template-columns`,\n/// expecting a list of grid-column widths.\n/// Unitless numbers create fractional fluid columns\n/// (similar to the CSS-native `fr` unit),\n/// while length values (united numbers)\n/// are used to define static columns.\n/// You can mix-and match units and fractions,\n/// to create a mixed grid.\n/// Susy will generate `calc()` values when necessary,\n/// to make all your units work together.\n///\n/// Use the `susy-repeat($count, $value)` function\n/// to more easily repetative columns,\n/// similar to the CSS-native `repeat()`.\n///\n/// - `susy-repeat(8)`:\n/// an 8-column, symmetrical, fluid grid.\n/// <br />Identical to `(1 1 1 1 1 1 1 1)`.\n/// - `susy-repeat(6, 8em)`:\n/// a 6-column, symmetrical, em-based grid.\n/// <br />Identical to `(8em 8em 8em 8em 8em 8em)`.\n/// - `(300px susy-repeat(4) 300px)`:\n/// a 6-column, asymmetrical, mixed fluid/static grid\n/// using `calc()` output.\n/// <br />Identical to `(300px 1 1 1 1 300px)`.\n///\n/// **NOTE** that `12` is no longer a valid 12-column grid definition,\n/// and you must list all the columns individually\n/// (or by using the `susy-repeat()` function).\n///\n/// @prop {number} gutters -\n/// Gutters are defined a
"/// Syntax Normalization\n/// ====================\n/// Susy is divided into two layers:\n/// \"Su\" provides the core math functions with a stripped-down syntax,\n/// while \"Susy\" adds global settings, shorthand syntax,\n/// and other helpers.\n/// Each setting (e.g. span, location, columns, spread, etc.)\n/// has a single canonical syntax in Su.\n///\n/// This normalization module helps translate between those layers,\n/// transforming parsed Susy input into\n/// values that Su will understand.\n///\n/// @group x-normal\n///\n/// @see susy-normalize\n/// @see susy-normalize-span\n/// @see susy-normalize-columns\n/// @see susy-normalize-spread\n/// @see susy-normalize-location\n\n\n\n// Susy Normalize\n// --------------\n/// Normalize the values in a configuration map.\n/// In addition to the global `$susy` properties,\n/// this map can include local span-related imformation,\n/// like `span` and `location`.\n///\n/// Normalization does not check that values are valid,\n/// which will happen in the Su math layer.\n/// These functions merely look for known Susy syntax \n/// returning a map with those shorthand values\n/// converted into low-level data for Su.\n/// For example `span: all` and `location: first`\n/// will be converted into specific numbers.\n///\n/// @group x-normal\n/// @see $susy\n/// @see susy-parse\n///\n/// @param {map} $config -\n/// Map of Susy configuration settings to normalize.\n/// See `$susy` and `susy-parse()` documentation for details.\n/// @param {map | null} $context [null] -\n/// Map of Susy configuration settings to use as global reference,\n/// or `null` to use global settings.\n///\n/// @return {map} -\n/// Map of Susy configuration settings,\n/// with all values normalized for Su math functions.\n@function susy-normalize(\n $config,\n $context: null\n) {\n // Spread\n @each $setting in ('spread', 'container-spread') {\n $value: map-get($config, $setting);\n\n @if $value {\n $value: susy-normalize-spread($value);\n $config: map-merge($config, ($setting: $value));\n }\n }\n\n // Columns\n $columns: map-get($config, 'columns');\n\n @if $columns {\n $columns: susy-normalize-columns($columns, $context);\n $config: map-merge($config, ('columns': $columns));\n }\n\n @if not $columns {\n $map: type-of($context) == 'map';\n $columns: if($map, map-get($context, 'columns'), null);\n $columns: $columns or susy-get('columns');\n }\n\n // Span\n $span: map-get($config, 'span');\n\n @if $span {\n $span: susy-normalize-span($span, $columns);\n $config: map-merge($config, ('span': $span));\n }\n\n // Location\n $location: map-get($config, 'location');\n\n @if $location {\n $location: susy-normalize-location($span, $location, $columns);\n $config: map-merge($config, ('location': $location));\n }\n\n @return $config;\n}\n\n\n\n// Normalize Span\n// --------------\n/// Normalize `span` shorthand for Su.\n/// Su span syntax allows an explicit length (e.g. `3em`),\n/// unitless column-span number (e.g. `3` columns),\n/// or an explicit list of columns (e.g. `(3 5 8)`).\n///\n/// Susy span syntax also allows the `all` keyword,\n/// which will be converted to a slice of the context\n/// in normalization.\n///\n/// @group x-normal\n///\n/// @param {number | list | 'all'} $span -\n/// Span value to normalize.\n/// @param {list} $columns -\n/// Normalized list of columns in the grid\n///\n/// @return {number | list} -\n/// Number or list value for `$span`\n@function susy-normalize-span(\n $span,\n $columns: susy-get('columns')\n) {\n @if ($span == 'all') {\n @return length($columns);\n }\n\n @return $span;\n}\n\n\n\n// Normalize Columns\n// -----------------\n/// Normalize `column` shorthand for Su.\n/// Su column syntax only allows column lists (e.g. `120px 1 1 1 120px`).\n///\n/// Susy span syntax also allows a unitless `slice` number (e.g `of 5`),\n/// which will be converted to a slice of the context\n/// in normalization.\n///\n/// @group x-normal\n///\n/// @param {list | integer} $columns -\n/// List of av
"/// Shorthand Syntax Parser\n/// =======================\n/// The syntax parser converts [shorthand syntax][short]\n/// into a map of settings that can be compared/merged with\n/// other config maps and global setting.\n///\n/// [short]: b-api.html\n///\n/// @group x-parser\n\n\n\n// Parse\n// -----\n/// The `parse` function provides all the syntax-sugar in Susy,\n/// converting user shorthand\n/// into a usable map of keys and values\n/// that can be normalized and passed to Su.\n///\n/// @group x-parser\n/// @see $susy\n///\n/// @param {list} $shorthand -\n/// Shorthand expression to define the width of the span,\n/// optionally containing:\n/// - a count, length, or column-list span;\n/// - `at $n`, `first`, or `last` location on asymmetrical grids;\n/// - `narrow`, `wide`, or `wider` for optionally spreading\n/// across adjacent gutters;\n/// - `of $n <spread>` for available grid columns\n/// and spread of the container\n/// (span counts like `of 6` are only valid\n/// in the context of symmetrical grids);\n/// - and `set-gutters $n` to override global gutter settings\n/// @param {bool} $context-only [false] -\n/// Allow the parser to ignore span and span-spread values,\n/// only parsing context and container-spread.\n/// This makes it possible to accept spanless values,\n/// like the `gutters()` syntax.\n/// When parsing context-only,\n/// the `of` indicator is optional.\n///\n/// @return {map} -\n/// Map of span and grid settings\n/// parsed from shorthand input \n/// including all the properties available globally \n/// `columns`, `gutters`, `spread`, `container-spread` \n/// along with the span-specific properties\n/// `span`, and `location`.\n///\n/// @throw\n/// when a shorthand value is not recognized\n@function susy-parse(\n $shorthand,\n $context-only: false\n) {\n $parse-error: 'Unknown shorthand property:';\n $options: (\n 'first': 'location',\n 'last': 'location',\n 'alpha': 'location',\n 'omega': 'location',\n 'narrow': 'spread',\n 'wide': 'spread',\n 'wider': 'spread',\n );\n\n $return: ();\n $span: null;\n $columns: null;\n\n $of: null;\n $next: false;\n\n // Allow context-only shorthand, without span\n @if ($context-only) and (not index($shorthand, 'of')) {\n @if su-valid-columns($shorthand, 'fail-silent') {\n $shorthand: 'of' $shorthand;\n } @else {\n $shorthand: join('of', $shorthand);\n }\n }\n\n // loop through the shorthand list\n @for $i from 1 through length($shorthand) {\n $item: nth($shorthand, $i);\n $type: type-of($item);\n $error: false;\n $details: '[#{$type}] `#{$item}`';\n\n // if we know what's supposed to be coming next…\n @if $next {\n\n // Add to the return map\n $return: map-merge($return, ($next: $item));\n\n // Reset next to `false`\n $next: false;\n\n } @else { // If we don't know what's supposed to be coming…\n\n // Keywords…\n @if ($type == 'string') {\n // Check the map for keywords…\n @if map-has-key($options, $item) {\n $setting: map-get($options, $item);\n\n // Spread could be on the span or the container…\n @if ($setting == 'spread') and ($of) {\n $return: map-merge($return, ('container-spread': $item));\n } @else {\n $return: map-merge($return, ($setting: $item));\n }\n\n } @else if ($item == 'all') {\n // `All` is a span shortcut\n $span: 'all';\n } @else if ($item == 'at') {\n // Some keywords setup what's next…\n $next: 'location';\n } @else if ($item == 'set-gutters') {\n $next: 'gutters';\n } @else if ($item == 'of') {\n $of: true;\n } @else {\n $error: true;\n }\n\n } @else if ($type == 'number') or ($type == 'list') { // Numbers & lists…\n\n @if not ($span or $of) {\n // We don't have a span, and we're not expecting context…\n $span: $item;\n } @else if ($of
"/// Syntax Utilities for Extending Susy\n/// ===================================\n/// There are many steps involved\n/// when translating between the Susy syntax layer,\n/// and the Su core math.\n/// That entire process can be condensed with these two functions.\n/// For anyone that wants to access the full power of Susy,\n/// and build their own plugins, functions, or mixins \n/// this is the primary API for compiling user input,\n/// and accessing the core math.\n///\n/// This is the same technique we use internally,\n/// to keep our API layer simple and light-weight.\n/// Every function accepts two arguments,\n/// a \"shorthand\" description of the span or context,\n/// and an optional settings-map to override global defaults.\n///\n/// - Use `susy-compile()` to parse, merge, and normalize\n/// all the user settings into a single map.\n/// - Then use `su-call()` to call one of the core math functions,\n/// with whatever data is needed for that function.\n///\n/// @group plugin-utils\n/// @see susy-compile\n/// @see su-call\n///\n/// @example scss - Susy API `gutter` function\n/// @function susy-gutter(\n/// $context: susy-get('columns'),\n/// $config: ()\n/// ) {\n/// // compile and normalize all user arguments and global settings\n/// $context: susy-compile($context, $config, 'context-only');\n/// // call `su-gutter` with the appropriate data\n/// @return su-call('su-gutter', $context);\n/// }\n///\n/// @example scss - Sample `span` mixin for floated grids\n/// @mixin span(\n/// $span,\n/// $config: ()\n/// ) {\n/// $context: susy-compile($span, $config);\n/// width: su-call('su-span', $context);\n///\n/// @if index($span, 'last') {\n/// float: right;\n/// } @else {\n/// float: left;\n/// margin-right: su-call('su-gutter', $context);\n/// }\n/// }\n\n\n\n// Compile\n// -------\n/// Susy's syntax layer has various moving parts,\n/// with syntax-parsing for the grid/span shorthand,\n/// and normalization for each of the resulting values.\n/// The compile function rolls this all together\n/// in a single call \n/// for quick access from our internal API functions,\n/// or any additional functions and mixins you add to your project.\n/// Pass user input and configuration maps to the compiler,\n/// and it will hand back a map of values ready for Su.\n/// Combine this with the `su-call` function\n/// to quickly parse, normalize, and process grid calculations.\n///\n/// @group plugin-utils\n/// @see su-call\n///\n/// @param {list | map} $shorthand -\n/// Shorthand expression to define the width of the span,\n/// optionally containing:\n/// - a count, length, or column-list span;\n/// - `at $n`, `first`, or `last` location on asymmetrical grids;\n/// - `narrow`, `wide`, or `wider` for optionally spreading\n/// across adjacent gutters;\n/// - `of $n <spread>` for available grid columns\n/// and spread of the container\n/// (span counts like `of 6` are only valid\n/// in the context of symmetrical grids);\n/// - and `set-gutters $n` to override global gutter settings\n/// @param {map} $config [null] -\n/// Optional map of Susy grid configuration settings\n/// @param {bool} $context-only [false] -\n/// Allow the parser to ignore span and span-spread values,\n/// only parsing context and container-spread\n///\n/// @return {map} -\n/// Parsed and normalized map of settings,\n/// based on global and local configuration,\n/// alongwith shorthad adjustments.\n///\n/// @example scss -\n/// $user-input: 3 wide of susy-repeat(6, 120px) set-gutters 10px;\n/// $grid-data: susy-compile($user-input, $susy);\n///\n/// @each $key, $value in $grid-data {\n/// /* #{$key}: #{$value}, */\n/// }\n@function susy-compile(\n $short,\n $config: null,\n $context-only: false\n) {\n // Get and normalize config\n $config: if($config, susy-settings($config), susy-settings());\n $normal-config: susy-normalize($config);\n\n // Parse and normalize shorthand\n @if (type-of($short) != 'map') and (length(
"/// Susy3 API Functions\n/// ===================\n/// These three functions form the core of Susy's\n/// layout-building grid API.\n///\n/// - Use `span()` and `gutter()` to return any grid-width,\n/// and apply the results wherever you need them:\n/// CSS `width`, `margin`, `padding`, `flex-basis`, `transform`, etc.\n/// - For asymmetrical-fluid grids,\n/// `slice()` can help manage your nesting context.\n///\n/// All three functions come with an unprefixed alias by default,\n/// using the `susy` import.\n/// Import the `susy-prefix` partial instead,\n/// if you only only want prefixed versions of the API.\n///\n/// This is a thin syntax-sugar shell around\n/// the \"Su\" core-math functions: `su-span`, `su-gutter`, and `su-slice`.\n/// If you prefer the more constrained syntax of the math engine,\n/// you are welcome to use those functions instead.\n///\n/// @group b-api\n/// @see susy-span\n/// @see susy-gutter\n/// @see susy-slice\n/// @see su-span\n/// @see su-gutter\n/// @see su-slice\n\n\n\n/// ## Shorthand\n///\n/// All functions draw on the same shorthand syntax in two parts,\n/// seperated by the word `of`.\n///\n/// ### Span Syntax: `<width>` [`<location>` `<spread>`]\n/// The first part describes the\n/// **span** width, location, and spread in any order.\n/// Only the width is required:\n///\n/// - `span(2)` will return the width of 2 columns.\n/// - `span(3 wide)` will return 3-columns, with an additional gutter.\n/// - location is only needed with asymmetrical grids,\n/// where `span(3 at 2)` will return the width of\n/// specific columns on the grid.\n/// Since these are functions, they will not handle placement for you.\n///\n/// ### Context Syntax: `[of <columns> <container-spread> <gutters>]`\n/// The second half of Susy's shorthand\n/// describes the grid-**context** \n/// available columns, container-spread, and optional gutter override \n/// in any order.\n/// All of these settings have globally-defined defaults:\n///\n/// - `span(2 of 6)` will set the context to\n/// a slice of 6 columns from the global grid.\n/// More details below.\n/// - `span(2 of 12 wide)` changes the container-spread\n/// as well as the column-context.\n/// - `span(2 of 12 set-gutters 0.5em)`\n/// will override the global gutters setting\n/// for this one calculation.\n///\n/// A single unitless number for `columns`\n/// will be treated as a slice of the parent grid.\n/// On a grid with `columns: susy-repeat(12, 120px)`,\n/// the shorthand `of 4` will use the parent `120px` column-width.\n/// You can also be more explicit,\n/// and say `of susy-repeat(4, 100px)`.\n/// If you are using asymmetrical grids,\n/// like `columns: (1 1 2 3 5 8)`,\n/// Susy can't slice it for you without knowing which columns you want.\n/// The `slice` function accepts exactly the same syntax as `span`,\n/// but returns a list of columns rather than a width.\n/// Use it in your context like `of slice(first 3)`.\n///\n/// @group b-api\n\n\n\n// Susy Span\n// ---------\n/// This is the primary function in Susy —\n/// used to return the width of a span across one or more columns,\n/// and any relevant gutters along the way.\n/// With the default settings,\n/// `span(3)` will return the width of 3 columns,\n/// and the 2 intermediate gutters.\n/// This can be used to set the `width` property of grid elements,\n/// or `margin` and `padding`\n/// to push, pull, and pad your elements.\n///\n/// - This is a thin syntax-sugar shell around\n/// the core-math `su-span()` function.\n/// - The un-prefixed alias `span()` is available by default.\n///\n/// @group b-api\n/// @see su-span\n/// @see $susy\n///\n/// @param {list} $span -\n/// Shorthand expression to define the width of the span,\n/// optionally containing:\n/// - a count, length, or column-list span.\n/// - `at $n`, `first`, or `last` location on asymmetrical grids,\n/// where `at 1 == first`,\n/// and `last` will calculate the proper location\n/// based on columns and span.\n/// - `narrow`, `wide`, or `wider` for optionally spreading\n/// a
"// Unprefix Susy\n// =============\n\n\n// Span\n// ----\n/// Un-prefixed alias for `susy-span`\n/// (available by default)\n///\n/// @group api\n/// @alias susy-span\n///\n/// @param {list} $span\n/// @param {map} $config [()]\n@function span(\n $span,\n $config: ()\n) {\n @return susy-span($span, $config);\n}\n\n\n// Gutter\n// ------\n/// Un-prefixed alias for `susy-gutter`\n/// (available by default)\n///\n/// @group api\n/// @alias susy-gutter\n///\n/// @param {integer | list} $context [null] -\n/// @param {map} $config [()]\n@function gutter(\n $context: susy-get('columns'),\n $config: ()\n) {\n @return susy-gutter($context, $config);\n}\n\n\n// Slice\n// -----\n/// Un-prefixed alias for `susy-slice`\n/// (available by default)\n///\n/// @group api\n/// @alias susy-slice\n///\n/// @param {list} $span\n/// @param {map} $config [()]\n@function slice(\n $span,\n $config: ()\n) {\n @return susy-slice($span, $config);\n}\n",
"/* ==========================================================================\n MIXINS\n ========================================================================== */\n\n%tab-focus {\n /* Default*/\n outline: thin dotted $focus-color;\n /* Webkit*/\n outline: 5px auto $focus-color;\n outline-offset: -2px;\n}\n\n/*\n em function\n ========================================================================== */\n\n@function em($target, $context: $doc-font-size) {\n @return ($target / $context) * 1em;\n}\n\n\n/*\n Bourbon clearfix\n ========================================================================== */\n\n/*\n * Provides an easy way to include a clearfix for containing floats.\n * link http://cssmojo.com/latest_new_clearfix_so_far/\n *\n * example scss - Usage\n *\n * .element {\n * @include clearfix;\n * }\n *\n * example css - CSS Output\n *\n * .element::after {\n * clear: both;\n * content: \"\";\n * display: table;\n * }\n*/\n\n@mixin clearfix {\n clear: both;\n\n &::after {\n clear: both;\n content: \"\";\n display: table;\n }\n}\n\n/*\n Compass YIQ Color Contrast\n https://github.com/easy-designs/yiq-color-contrast\n ========================================================================== */\n\n@function yiq-is-light(\n $color,\n $threshold: $yiq-contrasted-threshold\n) {\n $red: red($color);\n $green: green($color);\n $blue: blue($color);\n\n $yiq: (($red*299)+($green*587)+($blue*114))/1000;\n\n @if $yiq-debug { @debug $yiq, $threshold; }\n\n @return if($yiq >= $threshold, true, false);\n}\n\n@function yiq-contrast-color(\n $color,\n $dark: $yiq-contrasted-dark-default,\n $light: $yiq-contrasted-light-default,\n $threshold: $yiq-contrasted-threshold\n) {\n @return if(yiq-is-light($color, $threshold), $yiq-contrasted-dark-default, $yiq-contrasted-light-default);\n}\n\n@mixin yiq-contrasted(\n $background-color,\n $dark: $yiq-contrasted-dark-default,\n $light: $yiq-contrasted-light-default,\n $threshold: $yiq-contrasted-threshold\n) {\n background-color: $background-color;\n color: yiq-contrast-color($background-color, $dark, $light, $threshold);\n}",
"/* ==========================================================================\n STYLE RESETS\n ========================================================================== */\n\n* { box-sizing: border-box; }\n\nhtml {\n /* apply a natural box layout model to all elements */\n box-sizing: border-box;\n background-color: $background-color;\n font-size: 16px;\n\n @include breakpoint($medium) {\n font-size: 18px;\n }\n\n @include breakpoint($large) {\n font-size: 20px;\n }\n\n @include breakpoint($x-large) {\n font-size: 22px;\n }\n\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n}\n\n/* Remove margin */\n\nbody { margin: 0; }\n\n/* Selected elements */\n\n::-moz-selection {\n color: #fff;\n background: #000;\n}\n\n::selection {\n color: #fff;\n background: #000;\n}\n\n/* Display HTML5 elements in IE6-9 and FF3 */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection {\n display: block;\n}\n\n/* Display block in IE6-9 and FF3 */\n\naudio,\ncanvas,\nvideo {\n display: inline-block;\n *display: inline;\n *zoom: 1;\n}\n\n/* Prevents modern browsers from displaying 'audio' without controls */\n\naudio:not([controls]) {\n display: none;\n}\n\na {\n color: $link-color;\n}\n\n/* Apply focus state */\n\na:focus {\n @extend %tab-focus;\n}\n\n/* Remove outline from links */\n\na:hover,\na:active {\n outline: 0;\n}\n\n/* Prevent sub and sup affecting line-height in all browsers */\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/* img border in anchor's and image quality */\n\nimg {\n /* Responsive images (ensure images don't scale beyond their parents) */\n max-width: 100%; /* part 1: Set a maximum relative to the parent*/\n width: auto\\9; /* IE7-8 need help adjusting responsive images*/\n height: auto; /* part 2: Scale the height according to the width, otherwise you get stretching*/\n\n vertical-align: middle;\n border: 0;\n -ms-interpolation-mode: bicubic;\n}\n\n/* Prevent max-width from affecting Google Maps */\n\n#map_canvas img,\n.google-maps img {\n max-width: none;\n}\n\n/* Consistent form font size in all browsers, margin changes, misc */\n\nbutton,\ninput,\nselect,\ntextarea {\n margin: 0;\n font-size: 100%;\n vertical-align: middle;\n}\n\nbutton,\ninput {\n *overflow: visible; /* inner spacing ie IE6/7*/\n line-height: normal; /* FF3/4 have !important on line-height in UA stylesheet*/\n}\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner { /* inner padding and border oddities in FF3/4*/\n padding: 0;\n border: 0;\n}\n\nbutton,\nhtml input[type=\"button\"], // avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; /* corrects inability to style clickable `input` types in iOS*/\n cursor: pointer; /* improves usability and consistency of cursor style between image-type `input` and others*/\n}\n\nlabel,\nselect,\nbutton,\ninput[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"],\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n cursor: pointer; /* improves usability and consistency of cursor style between image-type `input` and others*/\n}\n\ninput[type=\"search\"] { /* Appearance in Safari/Chrome*/\n box-sizing: border-box;\n -webkit-appearance: textfield;\n}\n\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-cancel-button {\n -webkit-appearance: none; /* inner-padding issues in Chrome OSX, Safari 5*/\n}\n\ntextarea {\n overflow: auto; /* remove vertical scrollbar in IE6-9*/\n vertical-align: top; /* readability and alignment cross-browser*/\n}",
"/* ==========================================================================\n BASE ELEMENTS\n ========================================================================== */\n\nhtml {\n /* sticky footer fix */\n position: relative;\n min-height: 100%;\n/* hacks-guide change start: add text selection custom colours */\n::selection {\n color: $text-color;\n background: $text-highlight-color;\n}\n/* hacks-guide change end */\n}\n\nbody {\n margin: 0;\n padding: 0;\n color: $text-color;\n font-family: $global-font-family;\n line-height: 1.5;\n\n &.overflow--hidden {\n /* when primary navigation is visible, the content in the background won't scroll */\n overflow: hidden;\n }\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin: 2em 0 0.5em;\n line-height: 1.2;\n font-family: $header-font-family;\n font-weight: bold;\n}\n\nh1 {\n margin-top: 0;\n font-size: $h-size-1;\n}\n\nh2 {\n font-size: $h-size-2;\n}\n\nh3 {\n font-size: $h-size-3;\n}\n\nh4 {\n font-size: $h-size-4;\n}\n\nh5 {\n font-size: $h-size-5;\n}\n\nh6 {\n font-size: $h-size-6;\n}\n\nsmall,\n.small {\n font-size: $type-size-6;\n}\n\np {\n margin-bottom: 1.3em;\n}\n\nu,\nins {\n text-decoration: none;\n border-bottom: 1px solid $text-color;\n a {\n color: inherit;\n }\n}\n\ndel a {\n color: inherit;\n}\n\n/* reduce orphans and widows when printing */\n\np,\npre,\nblockquote,\nul,\nol,\ndl,\nfigure,\ntable,\nfieldset {\n orphans: 3;\n widows: 3;\n}\n\n/* abbreviations */\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: none;\n cursor: help;\n border-bottom: 1px dotted $text-color;\n}\n\n/* blockquotes */\n\nblockquote {\n margin: 2em 1em 2em 0;\n padding-left: 1em;\n padding-right: 1em;\n font-style: italic;\n border-left: 0.25em solid $primary-color;\n\n cite {\n font-style: italic;\n\n &:before {\n content: \"\\2014\";\n padding-right: 5px;\n }\n }\n}\n\n/* links */\n\na {\n &:focus {\n @extend %tab-focus;\n }\n\n &:visited {\n color: $link-color-visited;\n }\n\n &:hover {\n color: $link-color-hover;\n outline: 0;\n }\n}\n\n/* buttons */\n\nbutton:focus {\n @extend %tab-focus;\n}\n\n/* code */\n\ntt,\ncode,\nkbd,\nsamp,\npre {\n font-family: $monospace;\n}\n\npre {\n overflow-x: auto; /* add scrollbars to wide code blocks*/\n}\n\np > code,\na > code,\nli > code,\nfigcaption > code,\ntd > code {\n padding-top: 0.1rem;\n padding-bottom: 0.1rem;\n font-size: 0.8em;\n background: $code-background-color;\n border-radius: $border-radius;\n\n &:before,\n &:after {\n letter-spacing: -0.2em;\n content: \"\\00a0\"; /* non-breaking space*/\n }\n}\n\n/* horizontal rule */\n\nhr {\n display: block;\n margin: 1em 0;\n border: 0;\n border-top: 1px solid $border-color;\n}\n\n/* lists */\n\nul li,\nol li {\n margin-bottom: 0.5em;\n}\n\nli ul,\nli ol {\n margin-top: 0.5em;\n}\n\n/*\n Media and embeds\n ========================================================================== */\n\n/* Figures and images */\n\nfigure {\n display: -webkit-box;\n display: flex;\n -webkit-box-pack: justify;\n justify-content: space-between;\n -webkit-box-align: start;\n align-items: flex-start;\n flex-wrap: wrap;\n margin: 2em 0;\n\n img,\n iframe,\n .fluid-width-video-wrapper {\n margin-bottom: 1em;\n }\n\n img {\n width: 100%;\n border-radius: $border-radius;\n -webkit-transition: $global-transition;\n transition: $global-transition;\n }\n\n > a {\n display: block;\n }\n\n &.half {\n > a,\n > img {\n @include breakpoint($small) {\n width: calc(50% - 0.5em);\n }\n }\n\n figcaption {\n width: 100%;\n }\n }\n\n &.third {\n > a,\n > img {\n @include breakpoint($small) {\n width: calc(33.3333% - 0.5em);\n }\n }\n\n figcaption {\n width: 100%;\n }\n }\n}\n\n/* Figure captions */\n\nfigcaption {\n margin-bottom: 0.5em;\n color: $muted-text-color;\n font-family: $caption-font-family;\n font-size: $type-size-6;\n\n a {\n -webkit-transition: $global-transition;\n
"/* ==========================================================================\n Forms\n ========================================================================== */\n\nform {\n margin: 0 0 5px 0;\n padding: 1em;\n background-color: $form-background-color;\n\n fieldset {\n margin-bottom: 5px;\n padding: 0;\n border-width: 0;\n }\n\n legend {\n display: block;\n width: 100%;\n margin-bottom: 5px * 2;\n *margin-left: -7px;\n padding: 0;\n color: $text-color;\n border: 0;\n white-space: normal;\n }\n\n p {\n margin-bottom: (5px / 2);\n }\n\n ul {\n list-style-type: none;\n margin: 0 0 5px 0;\n padding: 0;\n }\n\n br {\n display: none;\n }\n}\n\nlabel,\ninput,\nbutton,\nselect,\ntextarea {\n vertical-align: baseline;\n *vertical-align: middle;\n}\n\ninput,\nbutton,\nselect,\ntextarea {\n box-sizing: border-box;\n font-family: $sans-serif;\n}\n\nlabel {\n display: block;\n margin-bottom: 0.25em;\n color: $text-color;\n cursor: pointer;\n\n small {\n font-size: $type-size-6;\n }\n\n input,\n textarea,\n select {\n display: block;\n }\n}\n\ninput,\ntextarea,\nselect {\n display: inline-block;\n width: 100%;\n padding: 0.25em;\n margin-bottom: 0.5em;\n color: $text-color;\n background-color: $background-color;\n border: $border-color;\n border-radius: $border-radius;\n box-shadow: $box-shadow;\n}\n\n.input-mini {\n width: 60px;\n}\n\n.input-small {\n width: 90px;\n}\n\ninput[type=\"image\"],\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n width: auto;\n height: auto;\n padding: 0;\n margin: 3px 0;\n *margin-top: 0;\n line-height: normal;\n cursor: pointer;\n border-radius: 0;\n border: 0 \\9;\n box-shadow: none;\n}\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0;\n *width: 13px;\n *height: 13px;\n}\n\ninput[type=\"image\"] {\n border: 0;\n}\n\ninput[type=\"file\"] {\n width: auto;\n padding: initial;\n line-height: initial;\n border: initial;\n background-color: transparent;\n background-color: initial;\n box-shadow: none;\n}\n\ninput[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n width: auto;\n height: auto;\n cursor: pointer;\n *overflow: visible;\n}\n\nselect,\ninput[type=\"file\"] {\n *margin-top: 4px;\n}\n\nselect {\n width: auto;\n background-color: #fff;\n}\n\nselect[multiple],\nselect[size] {\n height: auto;\n}\n\ntextarea {\n resize: vertical;\n height: auto;\n overflow: auto;\n vertical-align: top;\n}\n\ninput[type=\"hidden\"] {\n display: none;\n}\n\n.form {\n position: relative;\n}\n\n.radio,\n.checkbox {\n padding-left: 18px;\n font-weight: normal;\n}\n\n.radio input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"] {\n float: left;\n margin-left: -18px;\n}\n\n.radio.inline,\n.checkbox.inline {\n display: inline-block;\n padding-top: 5px;\n margin-bottom: 0;\n vertical-align: middle;\n}\n\n.radio.inline + .radio.inline,\n.checkbox.inline + .checkbox.inline {\n margin-left: 10px;\n}\n\n/*\n Disabled state\n ========================================================================== */\n\ninput[disabled],\nselect[disabled],\ntextarea[disabled],\ninput[readonly],\nselect[readonly],\ntextarea[readonly] {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/*\n Focus & active state\n ========================================================================== */\n\ninput:focus,\ntextarea:focus {\n border-color: $primary-color;\n outline: 0;\n outline: thin dotted \\9;\n box-shadow: inset 0 1px 3px rgba($text-color, 0.06),\n 0 0 5px rgba($primary-color, 0.7);\n}\n\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus,\nselect:focus {\n box-shadow: none;\n}\n\n/*\n Help text\n ========================================================================== */\n\n.help-block,\n.help-inline {\n color: $muted-text-color;\n}\n\n.help-block {\n display: block;\n margin-bottom: 1em;\n line-height: 1em;\n}\n\n.help-inline {\n display: inline-block;\n v
"/* ==========================================================================\n TABLES\n ========================================================================== */\n\n table {\n display: table; /* hacks-guide change */\n margin-bottom: 1em;\n width: 100%;\n font-family: $global-font-family;\n font-size: $type-size-6;\n border-collapse: collapse;\n border: 1px solid $light-gray; /* hacks-guide change */\n overflow-x: auto;\n\n & + table {\n margin-top: 1em;\n }\n}\n\nthead {\n background-color: $border-color;\n/* hacks-guide change start */\n // border-bottom: 2px solid mix(#000, $border-color, 25%);\n border-bottom: 1px solid $light-gray;\n/* hacks-guide change end */\n}\n\nth {\n padding: 0.5em;\n font-weight: bold;\n text-align: left;\n border-right: 1px solid $light-gray; /* hacks-guide change */\n}\n\ntd {\n padding: 0.5em;\n/* hacks-guide change start */\n // border-bottom: 1px solid mix(#000, $border-color, 25%);\n border-bottom: 1px solid $light-gray;\n border-right: 1px solid $light-gray;\n/* hacks-guide change end */\n}\n\ntr,\ntd,\nth {\n vertical-align: middle;\n}",
"/* ==========================================================================\n ANIMATIONS\n ========================================================================== */\n\n@-webkit-keyframes intro {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes intro {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}",
"/* ==========================================================================\n BUTTONS\n ========================================================================== */\n\n/*\n Default button\n ========================================================================== */\n\n.btn {\n /* default */\n display: inline-block;\n margin-bottom: 0.25em;\n padding: 0.5em 1em;\n font-family: $sans-serif;\n font-size: $type-size-6;\n font-weight: bold;\n text-align: center;\n text-decoration: none;\n border-width: 0;\n border-radius: $border-radius;\n cursor: pointer;\n\n .icon {\n margin-right: 0.5em;\n }\n\n .icon + .hidden {\n margin-left: -0.5em; /* override for hidden text*/\n }\n\n /* button colors */\n $buttoncolors:\n (primary, $primary-color),\n (inverse, #fff),\n (light-outline, transparent),\n (success, $success-color),\n (warning, $warning-color),\n (danger, $danger-color),\n (info, $info-color),\n (facebook, $facebook-color),\n (twitter, $twitter-color),\n (linkedin, $linkedin-color);\n\n @each $buttoncolor, $color in $buttoncolors {\n &--#{$buttoncolor} {\n @include yiq-contrasted($color);\n @if ($buttoncolor == inverse) {\n border: 1px solid $border-color;\n }\n @if ($buttoncolor == light-outline) {\n border: 1px solid #fff;\n }\n\n &:visited {\n @include yiq-contrasted($color);\n }\n\n &:hover {\n @include yiq-contrasted(mix(#000, $color, 20%));\n }\n }\n }\n\n /* fills width of parent container */\n &--block {\n display: block;\n width: 100%;\n\n + .btn--block {\n margin-top: 0.25em;\n }\n }\n\n /* disabled */\n &--disabled {\n pointer-events: none;\n cursor: not-allowed;\n filter: alpha(opacity=65);\n box-shadow: none;\n opacity: 0.65;\n }\n\n /* extra large button */\n &--x-large {\n font-size: $type-size-4;\n }\n\n /* large button */\n &--large {\n font-size: $type-size-5;\n }\n\n /* small button */\n &--small {\n font-size: $type-size-7;\n }\n}",
"/* ==========================================================================\n NOTICE TEXT BLOCKS\n ========================================================================== */\n\n/**\n * Default Kramdown usage (no indents!):\n * <div class=\"notice\" markdown=\"1\">\n * #### Headline for the Notice\n * Text for the notice\n * </div>\n */\n\n@mixin notice($notice-color) {\n margin: 2em 0 !important; /* override*/\n padding: 1em;\n color: $text-color;\n font-family: $global-font-family;\n font-size: $type-size-6 !important;\n text-indent: initial; /* override*/\n font-weight: bold; /* hacks-guide change: override font-weight on notices for readability */\n background-color: mix($background-color, $notice-color, $notice-background-mix);\n border-radius: $border-radius;\n box-shadow: 0 1px 1px rgba($notice-color, 0.25);\n\n h4 {\n margin-top: 0 !important; /* override*/\n margin-bottom: 0.75em;\n line-height: inherit;\n }\n\n @at-root .page__content #{&} h4 {\n /* using at-root to override .page-content h4 font size*/\n margin-bottom: 0;\n font-size: 1em;\n }\n\n p {\n &:last-child {\n margin-bottom: 0 !important; /* override*/\n }\n }\n\n h4 + p {\n /* remove space above paragraphs that appear directly after notice headline*/\n margin-top: 0;\n padding-top: 0;\n }\n\n a {\n/* hacks-guide change start: adjust colours for links in notices for readability */\n color: mix(#fff, $notice-color, 30%);\n\n &:hover {\n color: mix(#fff, $notice-color, 70%);\n }\n/* hacks-guide change end */\n }\n\n code {\n background-color: mix($background-color, $notice-color, $code-notice-background-mix)\n }\n\n\tpre code {\n\t\tbackground-color: inherit;\n\t}\n\n ul {\n &:last-child {\n margin-bottom: 0; /* override*/\n }\n }\n}\n\n/* Default notice */\n\n.notice {\n @include notice($light-gray);\n}\n\n/* Primary notice */\n\n.notice--primary {\n @include notice($primary-color);\n}\n\n/* Info notice */\n\n.notice--info {\n @include notice($info-color);\n}\n\n/* Warning notice */\n\n.notice--warning {\n @include notice($warning-color);\n}\n\n/* Success notice */\n\n.notice--success {\n @include notice($success-color);\n}\n\n/* Danger notice */\n\n.notice--danger {\n @include notice($danger-color);\n}\n",
"/* ==========================================================================\n MASTHEAD\n ========================================================================== */\n\n.masthead {\n position: relative;\n border-bottom: 1px solid $border-color;\n -webkit-animation: $intro-transition;\n animation: $intro-transition;\n -webkit-animation-delay: 0.15s;\n animation-delay: 0.15s;\n z-index: 20;\n\n &__inner-wrap {\n @include clearfix;\n margin-left: auto;\n margin-right: auto;\n padding: 1em;\n max-width: 100%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n font-family: $sans-serif-narrow;\n\n @include breakpoint($x-large) {\n max-width: $max-width;\n }\n\n nav {\n z-index: 10;\n }\n\n a {\n text-decoration: none;\n }\n }\n}\n\n.site-logo img {\n max-height: 2rem;\n}\n\n.site-title {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-item-align: center;\n align-self: center;\n font-weight: bold;\n // z-index: 20;\n}\n\n.site-subtitle {\n display: block;\n font-size: $type-size-8;\n}\n\n.masthead__menu {\n float: left;\n margin-left: 0;\n margin-right: 0;\n width: 100%;\n clear: both;\n\n .site-nav {\n margin-left: 0;\n\n @include breakpoint($small) {\n float: right;\n }\n }\n\n ul {\n margin: 0;\n padding: 0;\n clear: both;\n list-style-type: none;\n }\n}\n\n.masthead__menu-item {\n display: block;\n list-style-type: none;\n white-space: nowrap;\n\n &--lg {\n padding-right: 2em;\n font-weight: 700;\n }\n}\n",
"/* ==========================================================================\n NAVIGATION\n ========================================================================== */\n\n/*\n Breadcrumb navigation links\n ========================================================================== */\n\n.breadcrumbs {\n @include clearfix;\n margin: 0 auto;\n max-width: 100%;\n padding-left: 1em;\n padding-right: 1em;\n font-family: $sans-serif;\n -webkit-animation: $intro-transition;\n animation: $intro-transition;\n -webkit-animation-delay: 0.3s;\n animation-delay: 0.3s;\n\n @include breakpoint($x-large) {\n max-width: $x-large;\n }\n\n ol {\n padding: 0;\n list-style: none;\n font-size: $type-size-6;\n\n @include breakpoint($large) {\n float: right;\n width: calc(100% - #{$right-sidebar-width-narrow});\n }\n\n @include breakpoint($x-large) {\n width: calc(100% - #{$right-sidebar-width});\n }\n }\n\n li {\n display: inline;\n }\n\n .current {\n font-weight: bold;\n }\n}\n\n/*\n Post pagination navigation links\n ========================================================================== */\n\n.pagination {\n @include clearfix();\n float: left;\n margin-top: 1em;\n padding-top: 1em;\n width: 100%;\n\n ul {\n margin: 0;\n padding: 0;\n list-style-type: none;\n font-family: $sans-serif;\n }\n\n li {\n display: block;\n float: left;\n margin-left: -1px;\n\n a {\n display: block;\n margin-bottom: 0.25em;\n padding: 0.5em 1em;\n font-family: $sans-serif;\n font-size: 14px;\n font-weight: bold;\n line-height: 1.5;\n text-align: center;\n text-decoration: none;\n color: $muted-text-color;\n border: 1px solid mix(#000, $border-color, 25%);\n border-radius: 0;\n\n &:hover {\n color: $link-color-hover;\n }\n\n &.current,\n &.current.disabled {\n color: #fff;\n background: $primary-color;\n }\n\n &.disabled {\n color: rgba($muted-text-color, 0.5);\n pointer-events: none;\n cursor: not-allowed;\n }\n }\n\n &:first-child {\n margin-left: 0;\n\n a {\n border-top-left-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n }\n }\n\n &:last-child {\n a {\n border-top-right-radius: $border-radius;\n border-bottom-right-radius: $border-radius;\n }\n }\n }\n\n /* next/previous buttons */\n &--pager {\n display: block;\n padding: 1em 2em;\n float: left;\n width: 50%;\n font-family: $sans-serif;\n font-size: $type-size-5;\n font-weight: bold;\n text-align: center;\n text-decoration: none;\n color: $muted-text-color;\n border: 1px solid mix(#000, $border-color, 25%);\n border-radius: $border-radius;\n\n &:hover {\n @include yiq-contrasted($muted-text-color);\n }\n\n &:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n &:last-child {\n margin-left: -1px;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n &.disabled {\n color: rgba($muted-text-color, 0.5);\n pointer-events: none;\n cursor: not-allowed;\n }\n }\n}\n\n.page__content + .pagination,\n.page__meta + .pagination,\n.page__share + .pagination,\n.page__comments + .pagination {\n margin-top: 2em;\n padding-top: 2em;\n border-top: 1px solid $border-color;\n}\n\n/*\n Priority plus navigation\n ========================================================================== */\n\n.greedy-nav {\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n min-height: $nav-height;\n background: $background-color;\n\n a {\n display: block;\n margin: 0 1rem;\n color: $masthead-link-color;\n text-decoration: none;\n -webkit-transition: none;\n transition: none;\n\n &:hover {\n color
"/* ==========================================================================\n FOOTER\n ========================================================================== */\n\n.page__footer {\n @include clearfix;\n float: left;\n margin-left: 0;\n margin-right: 0;\n width: 100%;\n margin-top: 3em;\n color: $muted-text-color;\n -webkit-animation: $intro-transition;\n animation: $intro-transition;\n -webkit-animation-delay: 0.45s;\n animation-delay: 0.45s;\n background-color: $footer-background-color;\n\n footer {\n @include clearfix;\n margin-left: auto;\n margin-right: auto;\n margin-top: 2em;\n max-width: 100%;\n padding: 0 1em 2em;\n\n @include breakpoint($x-large) {\n max-width: $x-large;\n }\n }\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n .fas,\n .fab,\n .far,\n .fal {\n color: $muted-text-color;\n }\n}\n\n.page__footer-copyright {\n font-family: $global-font-family;\n font-size: $type-size-7;\n}\n\n.page__footer-follow {\n ul {\n margin: 0;\n padding: 0;\n list-style-type: none;\n }\n\n li {\n display: inline-block;\n padding-top: 5px;\n padding-bottom: 5px;\n font-family: $sans-serif-narrow;\n font-size: $type-size-6;\n text-transform: uppercase;\n }\n\n li + li:before {\n content: \"\";\n padding-right: 5px;\n }\n\n a {\n padding-right: 10px;\n font-weight: bold;\n }\n\n .social-icons {\n a {\n white-space: nowrap;\n }\n }\n}\n",
"/* ==========================================================================\n SEARCH\n ========================================================================== */\n\n.layout--search {\n .archive__item-teaser {\n margin-bottom: 0.25em;\n }\n}\n\n.search__toggle {\n margin-left: 1rem;\n margin-right: 1rem;\n height: $nav-toggle-height;\n border: 0;\n outline: none;\n color: $primary-color;\n background-color: transparent;\n cursor: pointer;\n -webkit-transition: 0.2s;\n transition: 0.2s;\n\n &:hover {\n color: mix(#000, $primary-color, 25%);\n }\n}\n\n.search-icon {\n width: 100%;\n height: 100%;\n}\n\n.search-content {\n display: none;\n visibility: hidden;\n padding-top: 1em;\n padding-bottom: 1em;\n\n &__inner-wrap {\n width: 100%;\n margin-left: auto;\n margin-right: auto;\n padding-left: 1em;\n padding-right: 1em;\n -webkit-animation: $intro-transition;\n animation: $intro-transition;\n -webkit-animation-delay: 0.15s;\n animation-delay: 0.15s;\n\n @include breakpoint($x-large) {\n max-width: $max-width;\n }\n\n }\n\n &__form {\n background-color: transparent;\n }\n\n .search-input {\n display: block;\n margin-bottom: 0;\n padding: 0;\n border: none;\n outline: none;\n box-shadow: none;\n background-color: transparent;\n font-size: $type-size-3;\n\n @include breakpoint($large) {\n font-size: $type-size-2;\n }\n\n @include breakpoint($x-large) {\n font-size: $type-size-1;\n }\n }\n\n &.is--visible {\n display: block;\n visibility: visible;\n\n &::after {\n content: \"\";\n display: block;\n }\n }\n\n .results__found {\n margin-top: 0.5em;\n font-size: $type-size-6;\n }\n\n .archive__item {\n margin-bottom: 2em;\n\n @include breakpoint($large) {\n width: 75%;\n }\n\n @include breakpoint($x-large) {\n width: 50%;\n }\n }\n\n .archive__item-title {\n margin-top: 0;\n }\n\n .archive__item-excerpt {\n margin-bottom: 0;\n }\n}\n\n/* Algolia search */\n\n.ais-search-box {\n max-width: 100% !important;\n margin-bottom: 2em;\n}\n\n.archive__item-title .ais-Highlight {\n color: $primary-color;\n font-style: normal;\n text-decoration: underline;\n}\n\n.archive__item-excerpt .ais-Highlight {\n color: $primary-color;\n font-style: normal;\n font-weight: bold;\n}\n",
"/* ==========================================================================\n Syntax highlighting\n ========================================================================== */\n\ndiv.highlighter-rouge,\nfigure.highlight {\n position: relative;\n margin-bottom: 1em;\n background: $base00;\n color: $base05;\n font-family: $monospace;\n font-size: $type-size-6;\n line-height: 1.8;\n border-radius: $border-radius;\n\n > pre,\n pre.highlight {\n margin: 0;\n padding: 1em;\n }\n}\n\n.highlight table {\n margin-bottom: 0;\n font-size: 1em;\n border: 0;\n\n td {\n padding: 0;\n width: calc(100% - 1em);\n border: 0;\n\n /* line numbers*/\n &.gutter,\n &.rouge-gutter {\n padding-right: 1em;\n width: 1em;\n color: $base04;\n border-right: 1px solid $base04;\n text-align: right;\n }\n\n /* code */\n &.code,\n &.rouge-code {\n padding-left: 1em;\n }\n }\n\n pre {\n margin: 0;\n }\n}\n\n.highlight pre {\n width: 100%;\n}\n\n.highlight .hll {\n background-color: $base06;\n}\n.highlight {\n .c {\n /* Comment */\n color: $base04;\n }\n .err {\n /* Error */\n color: $base08;\n }\n .k {\n /* Keyword */\n color: $base0e;\n }\n .l {\n /* Literal */\n color: $base09;\n }\n .n {\n /* Name */\n color: $base05;\n }\n .o {\n /* Operator */\n color: $base0c;\n }\n .p {\n /* Punctuation */\n color: $base05;\n }\n .cm {\n /* Comment.Multiline */\n color: $base04;\n }\n .cp {\n /* Comment.Preproc */\n color: $base04;\n }\n .c1 {\n /* Comment.Single */\n color: $base04;\n }\n .cs {\n /* Comment.Special */\n color: $base04;\n }\n .gd {\n /* Generic.Deleted */\n color: $base08;\n }\n .ge {\n /* Generic.Emph */\n font-style: italic;\n }\n .gh {\n /* Generic.Heading */\n color: $base05;\n font-weight: bold;\n }\n .gi {\n /* Generic.Inserted */\n color: $base0b;\n }\n .gp {\n /* Generic.Prompt */\n color: $base04;\n font-weight: bold;\n }\n .gs {\n /* Generic.Strong */\n font-weight: bold;\n }\n .gu {\n /* Generic.Subheading */\n color: $base0c;\n font-weight: bold;\n }\n .kc {\n /* Keyword.Constant */\n color: $base0e;\n }\n .kd {\n /* Keyword.Declaration */\n color: $base0e;\n }\n .kn {\n /* Keyword.Namespace */\n color: $base0c;\n }\n .kp {\n /* Keyword.Pseudo */\n color: $base0e;\n }\n .kr {\n /* Keyword.Reserved */\n color: $base0e;\n }\n .kt {\n /* Keyword.Type */\n color: $base0a;\n }\n .ld {\n /* Literal.Date */\n color: $base0b;\n }\n .m {\n /* Literal.Number */\n color: $base09;\n }\n .s {\n /* Literal.String */\n color: $base0b;\n }\n .na {\n /* Name.Attribute */\n color: $base0d;\n }\n .nb {\n /* Name.Builtin */\n color: $base05;\n }\n .nc {\n /* Name.Class */\n color: $base0a;\n }\n .no {\n /* Name.Constant */\n color: $base08;\n }\n .nd {\n /* Name.Decorator */\n color: $base0c;\n }\n .ni {\n /* Name.Entity */\n color: $base05;\n }\n .ne {\n /* Name.Exception */\n color: $base08;\n }\n .nf {\n /* Name.Function */\n color: $base0d;\n }\n .nl {\n /* Name.Label */\n color: $base05;\n }\n .nn {\n /* Name.Namespace */\n color: $base0a;\n }\n .nx {\n /* Name.Other */\n color: $base0d;\n }\n .py {\n /* Name.Property */\n color: $base05;\n }\n .nt {\n /* Name.Tag */\n color: $base0c;\n }\n .nv {\n /* Name.Variable */\n color: $base08;\n }\n .ow {\n /* Operator.Word */\n color: $base0c;\n }\n .w {\n /* Text.Whitespace */\n color: $base05;\n }\n .mf {\n /* Literal.Number.Float */\n color: $base09;\n }\n .mh {\n /* Literal.Number.Hex */\n color: $base09;\n }\n .mi {\n /* Literal.Number.Integer */\n color: $base09;\n }\n .mo {\n /* Literal.Number.Oct */\n color: $base09;\n }\n .sb {\n /* Literal.String.Backtick */\n color: $base0b;\n }\n .sc {\n /* Literal.String
"/* ==========================================================================\n UTILITY CLASSES\n ========================================================================== */\n\n/*\n Visibility\n ========================================================================== */\n\n/* http://www.456bereastreet.com/archive/200711/screen_readers_sometimes_ignore_displaynone/ */\n\n.hidden,\n.is--hidden {\n display: none;\n visibility: hidden;\n}\n\n/* for preloading images */\n\n.load {\n display: none;\n}\n\n.transparent {\n opacity: 0;\n}\n\n/* https://developer.yahoo.com/blogs/ydn/clip-hidden-content-better-accessibility-53456.html */\n\n.visually-hidden,\n.screen-reader-text,\n.screen-reader-text span,\n.screen-reader-shortcut {\n position: absolute !important;\n clip: rect(1px, 1px, 1px, 1px);\n height: 1px !important;\n width: 1px !important;\n border: 0 !important;\n overflow: hidden;\n}\n\nbody:hover .visually-hidden a,\nbody:hover .visually-hidden input,\nbody:hover .visually-hidden button {\n display: none !important;\n}\n\n/* screen readers */\n\n.screen-reader-text:focus,\n.screen-reader-shortcut:focus {\n clip: auto !important;\n height: auto !important;\n width: auto !important;\n display: block;\n font-size: 1em;\n font-weight: bold;\n padding: 15px 23px 14px;\n background: #fff;\n z-index: 100000;\n text-decoration: none;\n box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);\n}\n\n/*\n Skip links\n ========================================================================== */\n\n.skip-link {\n position: fixed;\n z-index: 20;\n margin: 0;\n font-family: $sans-serif;\n white-space: nowrap;\n}\n\n.skip-link li {\n height: 0;\n width: 0;\n list-style: none;\n}\n\n/*\n Type\n ========================================================================== */\n\n.text-left {\n text-align: left;\n}\n\n.text-center {\n text-align: center;\n}\n\n.text-right {\n text-align: right;\n}\n\n.text-justify {\n text-align: justify;\n}\n\n.text-nowrap {\n white-space: nowrap;\n}\n\n/*\n Task lists\n ========================================================================== */\n\n.task-list {\n padding:0;\n\n li {\n list-style-type: none;\n }\n\n .task-list-item-checkbox {\n margin-right: 0.5em;\n opacity: 1;\n }\n}\n\n.task-list .task-list {\n margin-left: 1em;\n}\n\n/*\n Alignment\n ========================================================================== */\n\n/* clearfix */\n\n.cf {\n clear: both;\n}\n\n.wrapper {\n margin-left: auto;\n margin-right: auto;\n width: 100%;\n}\n\n/*\n Images\n ========================================================================== */\n\n/* image align left */\n\n.align-left {\n display: block;\n margin-left: auto;\n margin-right: auto;\n\n @include breakpoint($small) {\n float: left;\n margin-right: 1em;\n }\n}\n\n/* image align right */\n\n.align-right {\n display: block;\n margin-left: auto;\n margin-right: auto;\n\n @include breakpoint($small) {\n float: right;\n margin-left: 1em;\n }\n}\n\n/* image align center */\n\n.align-center {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n\n/* file page content container */\n\n.full {\n @include breakpoint($large) {\n margin-right: -1 * span(2.5 of 12) !important;\n }\n}\n\n/*\n Icons\n ========================================================================== */\n\n.icon {\n display: inline-block;\n fill: currentColor;\n width: 1em;\n height: 1.1em;\n line-height: 1;\n position: relative;\n top: -0.1em;\n vertical-align: middle;\n}\n\n/* social icons*/\n\n.social-icons {\n .fas,\n .fab,\n .far,\n .fal {\n color: $text-color;\n }\n\n .fa-behance,\n .fa-behance-square {\n color: $behance-color;\n }\n\n .fa-bitbucket {\n color: $bitbucket-color;\n }\n\n .fa-dribbble,\n .fa-dribble-square {\n color: $dribbble-color;\n }\n\n .fa-facebook,\n .fa-facebook-square,\n .fa-facebook-f {\n color: $facebook-color;\n }\n\n .fa-flickr {\n color: $flickr-color;\n }\n\n .fa-foursquare {\n color:
"/* ==========================================================================\n SINGLE PAGE/POST\n ========================================================================== */\n\n#main {\n @include clearfix;\n margin-left: auto;\n margin-right: auto;\n padding-left: 1em;\n padding-right: 1em;\n -webkit-animation: $intro-transition;\n animation: $intro-transition;\n max-width: 100%;\n -webkit-animation-delay: 0.15s;\n animation-delay: 0.15s;\n\n @include breakpoint($x-large) {\n max-width: $max-width;\n }\n}\n\nbody {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n min-height: 100vh;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.initial-content,\n.search-content {\n flex: 1 0 auto;\n}\n\n.page {\n @include breakpoint($large) {\n float: right;\n width: calc(100% - #{$right-sidebar-width-narrow});\n padding-right: $right-sidebar-width-narrow;\n }\n\n @include breakpoint($x-large) {\n width: calc(100% - #{$right-sidebar-width});\n padding-right: $right-sidebar-width;\n }\n\n .page__inner-wrap {\n float: left;\n margin-top: 1em;\n margin-left: 0;\n margin-right: 0;\n width: 100%;\n clear: both;\n\n .page__content,\n .page__meta,\n .page__share {\n position: relative;\n float: left;\n margin-left: 0;\n margin-right: 0;\n width: 100%;\n clear: both;\n }\n }\n}\n\n.page__title {\n margin-top: 0;\n line-height: 1;\n\n & + .page__meta {\n margin-top: -0.5em;\n }\n}\n\n.page__lead {\n font-family: $global-font-family;\n font-size: $type-size-4;\n}\n\n.page__content {\n h2 {\n padding-bottom: 0.5em;\n border-bottom: 1px solid $border-color;\n }\n\n\th1, h2, h3, h4, h5, h6 {\n\t\t.header-link {\n\t\t\tposition: relative;\n\t\t\tleft: 0.5em;\n\t\t\topacity: 0;\n\t\t\tfont-size: 0.8em;\n\t\t\t-webkit-transition: opacity 0.2s ease-in-out 0.1s;\n\t\t\t-moz-transition: opacity 0.2s ease-in-out 0.1s;\n\t\t\t-o-transition: opacity 0.2s ease-in-out 0.1s;\n\t\t\ttransition: opacity 0.2s ease-in-out 0.1s;\n user-select: none; /* hacks-guide change: do not change link colour as it hurts readability */\n\t\t}\n\n\t\t&:hover .header-link {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n p,\n li,\n dl {\n font-size: 1em;\n }\n\n /* paragraph indents */\n p {\n margin: 0 0 $indent-var;\n\n /* sibling indentation*/\n @if $paragraph-indent == true {\n & + p {\n text-indent: $indent-var;\n margin-top: -($indent-var);\n }\n }\n }\n\n a:not(.btn) {\n &:hover {\n text-decoration: underline;\n\n img {\n box-shadow: 0 0 10px rgba(#000, 0.25);\n }\n }\n }\n\n dt {\n margin-top: 1em;\n font-family: $sans-serif;\n font-weight: bold;\n }\n\n dd {\n margin-left: 1em;\n font-family: $sans-serif;\n font-size: $type-size-6;\n }\n\n .small {\n font-size: $type-size-6;\n }\n\n /* blockquote citations */\n blockquote + .small {\n margin-top: -1.5em;\n padding-left: 1.25rem;\n }\n}\n\n.page__hero {\n position: relative;\n margin-bottom: 2em;\n @include clearfix;\n -webkit-animation: $intro-transition;\n animation: $intro-transition;\n -webkit-animation-delay: 0.25s;\n animation-delay: 0.25s;\n\n &--overlay {\n position: relative;\n margin-bottom: 2em;\n padding: 3em 0;\n @include clearfix;\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n -webkit-animation: $intro-transition;\n animation: $intro-transition;\n -webkit-animation-delay: 0.25s;\n animation-delay: 0.25s;\n\n a {\n color: #fff;\n }\n\n .wrapper {\n padding-left: 1em;\n padding-right: 1em;\n\n @include breakpoint($x-large) {\n max-width: $x-large;\n }\n }\n\n .page__title,\n .page__meta,\n .page__lead,\n .btn {\n color: #fff;\n text-shadow: 1px 1px 4px rgba(#000, 0.5);\n }\n\n .page__lead {\n max-width: $medium;\n
"/* ==========================================================================\n ARCHIVE\n ========================================================================== */\n\n.archive {\n margin-top: 1em;\n margin-bottom: 2em;\n\n @include breakpoint($large) {\n float: right;\n width: calc(100% - #{$right-sidebar-width-narrow});\n padding-right: $right-sidebar-width-narrow;\n }\n\n @include breakpoint($x-large) {\n width: calc(100% - #{$right-sidebar-width});\n padding-right: $right-sidebar-width;\n }\n}\n\n.archive__item {\n position: relative;\n\n a {\n position: relative;\n z-index: 10;\n }\n\n a[rel=\"permalink\"] {\n position: static;\n }\n}\n\n.archive__subtitle {\n margin: 1.414em 0 0.5em;\n padding-bottom: 0.5em;\n font-size: $type-size-5;\n color: $muted-text-color;\n border-bottom: 1px solid $border-color;\n\n + .list__item .archive__item-title {\n margin-top: 0.5em;\n }\n}\n\n.archive__item-title {\n margin-bottom: 0.25em;\n font-family: $sans-serif-narrow;\n line-height: initial;\n overflow: hidden;\n text-overflow: ellipsis;\n\n a[rel=\"permalink\"]::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n }\n\n a + a {\n opacity: 0.5;\n }\n}\n\n/* remove border*/\n.page__content {\n .archive__item-title {\n margin-top: 1em;\n border-bottom: none;\n }\n}\n\n.archive__item-excerpt {\n margin-top: 0;\n font-size: $type-size-6;\n\n & + p {\n text-indent: 0;\n }\n\n a {\n position: relative;\n }\n}\n\n.archive__item-teaser {\n position: relative;\n border-radius: $border-radius;\n overflow: hidden;\n\n img {\n width: 100%;\n }\n}\n\n.archive__item-caption {\n position: absolute;\n bottom: 0;\n right: 0;\n margin: 0 auto;\n padding: 2px 5px;\n color: #fff;\n font-family: $caption-font-family;\n font-size: $type-size-8;\n background: #000;\n text-align: right;\n z-index: 5;\n opacity: 0.5;\n border-radius: $border-radius 0 0 0;\n\n @include breakpoint($large) {\n padding: 5px 10px;\n }\n\n a {\n color: #fff;\n text-decoration: none;\n }\n}\n\n/*\n List view\n ========================================================================== */\n\n.list__item {\n .page__meta {\n margin: 0 0 4px;\n font-size: 0.6em;\n }\n}\n\n/*\n Grid view\n ========================================================================== */\n\n.archive {\n .grid__wrapper {\n /* extend grid elements to the right */\n\n @include breakpoint($large) {\n margin-right: -1 * $right-sidebar-width-narrow;\n }\n\n @include breakpoint($x-large) {\n margin-right: -1 * $right-sidebar-width;\n }\n }\n}\n\n.grid__item {\n margin-bottom: 2em;\n\n @include breakpoint($small) {\n float: left;\n width: span(5 of 10);\n\n &:nth-child(2n + 1) {\n clear: both;\n margin-left: 0;\n }\n\n &:nth-child(2n + 2) {\n clear: none;\n margin-left: gutter(of 10);\n }\n }\n\n @include breakpoint($medium) {\n margin-left: 0; /* override margin*/\n margin-right: 0; /* override margin*/\n width: span(3 of 12);\n\n &:nth-child(2n + 1) {\n clear: none;\n }\n\n &:nth-child(4n + 1) {\n clear: both;\n }\n\n &:nth-child(4n + 2) {\n clear: none;\n margin-left: gutter(1 of 12);\n }\n\n &:nth-child(4n + 3) {\n clear: none;\n margin-left: gutter(1 of 12);\n }\n\n &:nth-child(4n + 4) {\n clear: none;\n margin-left: gutter(1 of 12);\n }\n }\n\n .page__meta {\n margin: 0 0 4px;\n font-size: 0.6em;\n }\n\n .page__meta-sep {\n display: block;\n\n &::before {\n display: none;\n }\n }\n\n .archive__item-title {\n margin-top: 0.5em;\n font-size: $type-size-5;\n }\n\n .archive__item-excerpt {\n display: none;\n\n @include breakpoint($medium) {\n display: block;\n font-size: $type-size-6;\n }\n }\n\n .archive__item-teaser {\n @include breakpoint($small) {\n max-height: 200px;\n }\n\n @include breakpoint($me
"/* ==========================================================================\n SIDEBAR\n ========================================================================== */\n\n/*\n Default\n ========================================================================== */\n\n.sidebar {\n @include clearfix();\n // @include breakpoint(max-width $large) {\n // /* fix z-index order of follow links */\n // position: relative;\n // z-index: 10;\n // -webkit-transform: translate3d(0, 0, 0);\n // transform: translate3d(0, 0, 0);\n // }\n\n @include breakpoint($large) {\n float: left;\n width: calc(#{$right-sidebar-width-narrow} - 1em);\n opacity: 0.75;\n -webkit-transition: opacity 0.2s ease-in-out;\n transition: opacity 0.2s ease-in-out;\n\n &:hover {\n opacity: 1;\n }\n\n &.sticky {\n overflow-y: auto;\n /* calculate height of nav list\n viewport height - nav height - masthead x-padding\n */\n max-height: calc(100vh - #{$nav-height} - 2em);\n }\n }\n\n @include breakpoint($x-large) {\n width: calc(#{$right-sidebar-width} - 1em);\n }\n\n > * {\n margin-top: 1em;\n margin-bottom: 1em;\n }\n\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-bottom: 0;\n font-family: $sans-serif-narrow;\n }\n\n p,\n li {\n font-family: $sans-serif;\n font-size: $type-size-6;\n line-height: 1.5;\n }\n\n img {\n width: 100%;\n\n &.emoji {\n width: 20px;\n height: 20px;\n }\n }\n}\n\n.sidebar__right {\n margin-bottom: 1em;\n\n @include breakpoint($large) {\n position: absolute;\n top: 0;\n right: 0;\n width: $right-sidebar-width-narrow;\n margin-right: -1 * $right-sidebar-width-narrow;\n padding-left: 1em;\n z-index: 10;\n\n &.sticky {\n @include clearfix();\n position: -webkit-sticky;\n position: sticky;\n top: 2em;\n float: right;\n }\n }\n\n @include breakpoint($x-large) {\n width: $right-sidebar-width;\n margin-right: -1 * $right-sidebar-width;\n }\n}\n\n.splash .sidebar__right {\n @include breakpoint($large) {\n position: relative;\n float: right;\n margin-right: 0;\n }\n\n @include breakpoint($x-large) {\n margin-right: 0;\n }\n}\n\n/*\n Author profile and links\n ========================================================================== */\n\n.author__avatar {\n display: table-cell;\n vertical-align: top;\n width: 36px;\n height: 36px;\n\n @include breakpoint($large) {\n display: block;\n width: auto;\n height: auto;\n }\n\n img {\n max-width: 110px;\n border-radius: 50%;\n\n @include breakpoint($large) {\n padding: 5px;\n border: 1px solid $border-color;\n }\n }\n}\n\n.author__content {\n display: table-cell;\n vertical-align: top;\n padding-left: 15px;\n padding-right: 25px;\n line-height: 1;\n\n @include breakpoint($large) {\n display: block;\n width: 100%;\n padding-left: 0;\n padding-right: 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n}\n\n.author__name {\n margin: 0;\n\n @include breakpoint($large) {\n margin-top: 10px;\n margin-bottom: 10px;\n }\n}\n.sidebar .author__name {\n font-family: $sans-serif;\n font-size: $type-size-5;\n}\n\n.author__bio {\n margin: 0;\n\n @include breakpoint($large) {\n margin-top: 10px;\n margin-bottom: 20px;\n }\n}\n\n.author__urls-wrapper {\n position: relative;\n display: table-cell;\n vertical-align: middle;\n font-family: $sans-serif;\n z-index: 20;\n cursor: pointer;\n\n li:last-child {\n a {\n margin-bottom: 0;\n }\n }\n\n .author__urls {\n span.label {\n padding-left: 5px;\n }\n }\n\n @include breakpoint($large) {\n display: block;\n }\n\n button {\n position: relative;\n margin-bottom: 0;\n\n &:before {\n @supports (pointer-events: none) {\n content: '';\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n }\n }\n\n &.open {\n &:b
"/* ==========================================================================\n PRINT STYLES\n ========================================================================== */\n\n@media print {\n\n [hidden] {\n display: none;\n }\n\n * {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n html {\n margin: 0;\n padding: 0;\n min-height: auto !important;\n font-size: 16px;\n }\n\n body {\n margin: 0 auto;\n background: #fff !important;\n color: #000 !important;\n font-size: 1rem;\n line-height: 1.5;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n text-rendering: optimizeLegibility;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n color: #000;\n line-height: 1.2;\n margin-bottom: 0.75rem;\n margin-top: 0;\n }\n\n h1 {\n font-size: 2.5rem;\n }\n\n h2 {\n font-size: 2rem;\n }\n\n h3 {\n font-size: 1.75rem;\n }\n\n h4 {\n font-size: 1.5rem;\n }\n\n h5 {\n font-size: 1.25rem;\n }\n\n h6 {\n font-size: 1rem;\n }\n\n a,\n a:visited {\n color: #000;\n text-decoration: underline;\n word-wrap: break-word;\n }\n\n table {\n border-collapse: collapse;\n }\n\n thead {\n display: table-header-group;\n }\n\n table,\n th,\n td {\n border-bottom: 1px solid #000;\n }\n\n td,\n th {\n padding: 8px 16px;\n }\n\n img {\n border: 0;\n display: block;\n max-width: 100% !important;\n vertical-align: middle;\n }\n\n hr {\n border: 0;\n border-bottom: 2px solid #bbb;\n height: 0;\n margin: 2.25rem 0;\n padding: 0;\n }\n\n dt {\n font-weight: bold;\n }\n\n dd {\n margin: 0;\n margin-bottom: 0.75rem;\n }\n\n abbr[title],\n acronym[title] {\n border: 0;\n text-decoration: none;\n }\n\n table,\n blockquote,\n pre,\n code,\n figure,\n li,\n hr,\n ul,\n ol,\n a,\n tr {\n page-break-inside: avoid;\n }\n\n h2,\n h3,\n h4,\n p,\n a {\n orphans: 3;\n widows: 3;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n page-break-after: avoid;\n page-break-inside: avoid;\n }\n\n h1 + p,\n h2 + p,\n h3 + p {\n page-break-before: avoid;\n }\n\n img {\n page-break-after: auto;\n page-break-before: auto;\n page-break-inside: avoid;\n }\n\n pre {\n white-space: pre-wrap !important;\n word-wrap: break-word;\n }\n\n a[href^='http://']:after,\n a[href^='https://']:after,\n a[href^='ftp://']:after {\n content: \" (\" attr(href) \")\";\n font-size: 80%;\n }\n\n abbr[title]:after,\n acronym[title]:after {\n content: \" (\" attr(title) \")\";\n }\n\n #main {\n max-width: 100%;\n }\n\n .page {\n margin: 0;\n padding: 0;\n width: 100%;\n }\n\n .page-break,\n .page-break-before {\n page-break-before: always;\n }\n\n .page-break-after {\n page-break-after: always;\n }\n\n .no-print {\n display: none;\n }\n\n a.no-reformat:after {\n content: '';\n }\n\n abbr[title].no-reformat:after,\n acronym[title].no-reformat:after {\n content: '';\n }\n\n .page__hero-caption {\n color: #000 !important;\n background: #fff !important;\n opacity: 1;\n\n a {\n color: #000 !important;\n }\n }\n\n/*\n Hide the following elements on print\n ========================================================================== */\n\n .masthead,\n .toc,\n .page__share,\n .page__related,\n .pagination,\n .ads,\n .page__footer,\n .page__comments-form,\n .author__avatar,\n .author__content,\n .author__urls-wrapper,\n .nav__list,\n .sidebar,\n .adsbygoogle {\n display: none !important;\n height: 1px !important;\n }\n}"
],
"names": [],
"mappings": "ACuBA,AAAA,aAAa,AAAA,aAAa,CAAC,CAAC,CAC5B,aAAa,AAAA,aAAa,CAAC,eAAe,CAC1C,oBAAoB,CAAC,aAAa,CAAC,CAAC,CACpC,oBAAoB,CAAC,aAAa,CAAC,eAAe,AAAE,CAClD,KAAK,CAAE,OAAO,CACf,AAED,AAAA,eAAe,CAAC,sBAAsB,AAAC,CACrC,gBAAgB,CAjBM,OAAiC,CAkBxD,AChCD;;;;EAIE,AsBsCF,AAAA,YAAY,AAAC,CAAE,WAAW,CrB3BlB,OAAO,CAAE,KAAK,CAAE,KAAK,CqB2BS,ADmCtC,AAAA,OAAO,AAAC,CACN,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,OAAO,CCrE6B,IAAI,CDsExC,QAAQ,CAAE,MAAM,CAChB,QAAQ,CAAE,KAAK,CAEf,UAAU,CCjF0B,IAAI,CDkFxC,OAAO,CCjF6B,EAAG,CDmFrC,MAAM,CAAE,iBAA6E,CAExF,AAGD,AAAA,SAAS,AAAC,CACR,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,OAAO,CCtF6B,IAAI,CDuFxC,QAAQ,CAAE,KAAK,CACf,OAAO,CAAE,eAAe,CACxB,2BAA2B,CAAE,MAAM,CACpC,AAGD,AAAA,cAAc,AAAC,CACb,UAAU,CAAE,MAAM,CAClB,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,IAAI,CAAE,CAAC,CACP,GAAG,CAAE,CAAC,CACN,OAAO,CAAE,CAAC,CCvG0B,GAAG,CDwGvC,kBAAkB,CAAE,UAAU,CAC9B,eAAe,CAAE,UAAU,CAC3B,UAAU,CAAE,UAAU,CACvB,AAGD,AACE,cADY,CACV,MAAM,AAAC,CACP,OAAO,CAAE,EAAE,CACX,OAAO,CAAE,YAAY,CACrB,MAAM,CAAE,IAAI,CACZ,cAAc,CAAE,MAAM,CACvB,AAIH,AAEI,cAFU,CACZ,cAAc,CACV,MAAM,AAAC,CACP,OAAO,CAAE,IAAI,CACd,AAKL,AAAA,YAAY,AAAC,CACX,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,YAAY,CACrB,cAAc,CAAE,MAAM,CACtB,MAAM,CAAE,MAAM,CACd,UAAU,CAAE,IAAI,CAChB,OAAO,CCpI6B,IAAI,CDqIzC,AACD,AAEE,kBAFgB,CAEhB,YAAY,CADd,gBAAgB,CACd,YAAY,AAAC,CACX,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACb,AAIH,AAAA,aAAa,AAAC,CACZ,MAAM,CAAE,QAAQ,CACjB,AACD,AACE,iBADe,CAAjB,iBAAiB,CACZ,iBAAiB,CAAC,UAAU,AAAC,CAC9B,MAAM,CAAE,aAAa,CACrB,MAAM,CAAE,gBAAgB,CACxB,MAAM,CAAE,QAAQ,CACjB,AAEH,AAAA,SAAS,AAAC,CACR,MAAM,CAAE,OAAO,CACf,MAAM,CAAE,eAAe,CACvB,MAAM,CAAE,YAAY,CACpB,MAAM,CAAE,OAAO,CAChB,AACD,AACE,gBADc,CACd,YAAY,AAAC,CACX,MAAM,CAAE,IAAI,CACb,AAGH,AAAA,UAAU,CACV,UAAU,CACV,cAAc,CACd,YAAY,AAAC,CACX,mBAAmB,CAAC,IAAI,CACxB,gBAAgB,CAAE,IAAI,CACtB,WAAW,CAAE,IAAI,CAClB,AAGD,AACE,YADU,AACT,WAAW,AAAC,CACX,OAAO,CAAE,IAAI,CACd,AAiBD,AAAA,SAAS,AAAC,CACR,OAAO,CAAE,eAAe,CACzB,AASH,AAAA,cAAc,AAAC,CACb,KAAK,CCvM+B,IAAI,CDwMxC,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,GAAG,CACR,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,MAAM,CAClB,UAAU,CAAE,MAAM,CAClB,IAAI,CAAE,GAAG,CACT,KAAK,CAAE,GAAG,CACV,OAAO,CCvN6B,IAAI,CD8NzC,AAhBD,AAUE,cAVY,CAUZ,CAAC,AAAC,CACA,KAAK,CCjN6B,IAAI,CDqNvC,AAfH,AAYI,cAZU,CAUZ,CAAC,CAEG,KAAK,AAAC,CACN,KAAK,CClN2B,IAAI,CDmNrC,AAKL,AACE,YADU,CACV,cAAc,AAAC,CACb,OAAO,CAAE,IAAI,CACd,AAIH,AACE,YADU,CACV,YAAY,AAAC,CACX,OAAO,CAAE,IAAI,CACd,AAIH,AACE,MADI,AACH,UAAU,CADb,MAAM,AAEH,UAAU,AAAC,CACV,QAAQ,CAAE,OAAO,CACjB,MAAM,CAAE,OAAO,CACf,UAAU,CAAE,WAAW,CACvB,MAAM,CAAE,CAAC,CACT,kBAAkB,CAAE,IAAI,CACxB,OAAO,CAAE,KAAK,CACd,OAAO,CAAE,IAAI,CACb,OAAO,CAAE,CAAC,CACV,OAAO,CC1P2B,IAAI,CD2PtC,kBAAkB,CAAE,IAAI,CACxB,UAAU,CAAE,IAAI,CACjB,AAdH,AAeE,MAfI,EAeD,gBAAgB,AAAC,CAChB,OAAO,CAAE,CAAC,CACV,MAAM,CAAE,CACZ,CAAC,AAKH,AAAA,UAAU,AAAC,CACT,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,WAAW,CAAE,IAAI,CAEjB,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,CAAC,CACR,GAAG,CAAE,CAAC,CACN,eAAe,CAAE,IAAI,CACrB,UAAU,CAAE,MAAM,CAClB,OAAO,CC5Q6B,CAAC,CD8QnC,MAAM,CAAE,kBAA+E,CAEzF,OAAO,CAAE,aAAa,CACtB,KAAK,CChR+B,IAAI,CDkRxC,UAAU,CAAE,MAAM,CAClB,SAAS,CAAE,IAAI,CACf,WAAW,CpBvRL,OAAO,CAAE,KAAK,CAAE,KAAK,CoBoS5B,AAhCD,AAqBE,UArBQ,CAqBN,KAAK,CArBT,UAAU,CAsBN,KAAK,AAAC,CACN,OAAO,CAAE,CAAC,CAER,MAAM,CAAE,kBAAuC,CAElD,AA3BH,AA6BE,UA7BQ,CA6BN,MAAM,AAAC,CACP,GAAG,CAAE,GAAG,CACT,AAEH,AACE,iBADe,CACf,UAAU,AAAC,CACT,KAAK,CClS6B,IAAI,CDmSvC,AAEH,AAEE,iBAFe,CAEf,UAAU,CADZ,kBAAkB,CAChB,UAAU,AAAC,CACT,KAAK,CC1S6B,IAAI,CD2StC,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,KAAK,CACjB,aAAa,CAAE,GAAG,CAClB,KAAK,CAAE,IAAI,CACZ,AAIH,AAAA,YAAY,AAAC,CACX,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,CAAC,CACN,KAAK,CAAE,CAAC,CACR,KAAK,CCpT+B,IAAI,CDqTxC,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CAClB,AAIC,AAAA,UAAU,AAAC,CACT,QAAQ,CAAE,QAAQ,CAClB,OAAO,CCjU2B,CAAC,CDmUjC,MAAM,CAAE,kBAA+E,CAEzF,MAAM,CAAE,CAAC,CACT,GAAG,CAAE,GAAG,CACR,UAAU,CAAE,KAAK,CACjB,OAAO,CAAE,CAAC,CACV,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,KAAK,CACb,2BAA2B,CAAE,aAAa,CA0C3C,AAtDD,AAaE,UAbQ,CAaN,MAAM,AAAC,CACP,UAAU,CAAE,KAAK,CAClB,AAfH,AAgBE,UAhBQ,CAgBN,KAAK,CAhBT,UAAU,CAiBN,KAAK,AAAC,CACN,OAAO,CA
}