///
/// Paradigm Shift by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///

/* Wrapper */

	@mixin wrapper-pad($pad) {
		padding: 0 0 ($pad * 2) 0;

		// Sections (all).
			section {
				margin: ($pad * 1.5) 0 0 0;

				> header {
					padding: 0 ($pad * 2) 0 ($pad);
					width: _size(header-width) + ($pad * 2);
				}

				> .content {
					padding: 0 $pad;
				}

				> footer {
					padding: 0 ($pad * 2);
				}
			}

		// Sections (top level).
			> section {
				> header {

					// Line.
						&:before {
							height: calc(100% + #{$pad * 2});
							left: calc(50vw - #{$pad});
						}

					// Headings.
						h1, h2 {

							// Line connector.
								&:before {
									right: ($pad * -1);
									width: ($pad * 0.5);
								}

							// Terminator.
								&:after {
									right: ($pad * -0.5);
								}

						}

				}

				> .content {
					> section {
						left: calc(-50vw - #{$pad});

						> header {
							width: _size(subheader-width) + ($pad * 2);
						}
					}
				}

				// Intro.
					&.intro {
						> header {

							// Hack: Chrome's grid implementation screws up absolute element placement within a static child element.

								// Set width on all child elements and right-align.
									> * {
										width: (_size(header-width) - $pad);
									}

								// Line.
									&:before {
										margin-left: calc(50vw - #{$pad * 2});
									}

								@include breakpoint('<=medium') {
									> * {
										width: 100%;
									}

									&:before {
										margin-left: 0;
									}
								}

						}
					}

				// Last.
					&:last-of-type {
						> header {

							// Terminator.
								&:after {
									left: calc(50vw - #{$pad} - 0.25rem + #{_size(line-width) * 0.5});
								}

						}
					}

			}

		// Copyright.
			.copyright {
				padding: 0 $pad;
			}

	}

	@mixin wrapper-pad-portrait($pad, $tbFactor: 1) {

		// Sections (all).
			section {
				margin: ($pad * 1.5) 0 0 0;
			}

		// Sections (top level).
			> section {
				margin: 0;

				> header {
					padding: ($pad * $tbFactor) $pad;
				}

				> .content {
					padding: ($pad * $tbFactor) $pad;

					> section {
						margin: ($pad * $tbFactor) 0;
					}
				}

				> footer {
					padding: 0 $pad ($pad * $tbFactor) $pad;
				}

				// Intro.
					&.intro {
						> header {
							padding: (($pad * 1.25) + 3rem) $pad ($pad * 1.25) $pad;
						}
					}

			}

		// Copyright.
			.copyright {
				padding: 0 $pad $pad $pad;
			}

	}

	#wrapper {
		$pad: 5rem;

		position: relative;
		width: 100vw;

		// Background.
			&:before {
				background-attachment: fixed;
				background-color: _palette(accent);
				background-image: svg-url('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 920 1750" x="0px" y="0px"> <path style="fill: #{transparentize(_palette(accent-border), 0.75)}" d="M889.72,1137.55l-2.91-0.75l-364.39,282.94l-0.7-0.9l-0.51,0.11l-94.77-451.5l-32.51-15.75l-16.73-8.11l0,0.68 l-1.46,0l0-1.39l-1.89-0.92l-112.41-54.47l-0.29,1.03l-1.41-0.37l0.37-1.31l-34.14-16.54l-98.56-47.76l-0.59,0.81l-1.16-0.88 l0.42-0.57L11.43,766.33l-0.25,0.2l-0.9-1.15l102.87-79.98l0.08-0.1l0.02,0.02l116.68-90.72l-0.18-0.34l1.3-0.66l0.05,0.09 l100.5-78.14l-0.07-0.32l0.65-0.14l42.3-32.89l-0.15-54.54l-0.59,0.29l-0.64-1.31l1.23-0.6l-0.01-4.54l-0.33-122.47l-0.99,0.18 l-0.28-1.43l1.27-0.23l-0.4-147.49l-0.87-0.16l0.28-1.43l0.58,0.1l-0.35-127.48l-0.13-0.06l0.64-1.31L489.97,76.8l0.73,0.19 l-0.04,0.14l132.63,65.11l0.33-0.45l1.16,0.88l-0.16,0.22l114.21,56.07l0.45-0.35l0.72,0.93l47.89,23.51l2.76-1.36l0.56,4.61 l-3.32-1.63L571.52,330.88L375.95,482.93l0.66,239.95l51.12,243.57l222.53,107.83l236.23,60.93l2.27-1.77 M375.8,425.34l17.25-8.47 l36.13-127.75l-53.73,9.66L375.8,425.34z M551,241.05l38.19-52.2l-123.83-22.27l-34.13,120.68l98.99-17.81L551,241.05z M532.3,269.09l151.34-27.22l37.63-29.25l-130.48-23.47L532.3,269.09z M303.38,733.9l-2.36-4.48l-44.18-83.78L182.5,747.25 l40.78,36.46l52.69,47.11L303.38,733.9z M277.18,831.91l56.95,50.93L375.69,920l-0.13-49.23l-71.19-135L277.18,831.91z M303.96,731.86l41.93-148.25l-9.74-46.39L257.8,644.33L303.96,731.86z M304.94,733.73l9.55,18.12l61.05,115.78l-0.39-144.6 l-16.9-80.53l-11.71-55.81L304.94,733.73z M375.21,211.79l0.23,85.51l54.17-9.74l34.29-121.23l-88.87-15.98L375.21,211.79z M430.78,288.83l-17.88,63.21L394.81,416l44.01-21.6l90.15-123.23L430.78,288.83z M287.76,898.62l87.99,42.64l-0.05-19.29 l-91.37-81.71l-7.59-6.78l-14.88,52.59L287.76,898.62z M174.26,843.62l86.26,41.8l15-53.03l-93.89-83.95l-53.34,72.91L174.26,843.62 z M113.18,687.22L12.71,765.33l55.69,26.99l58.56,28.38l53.58-73.24l-34.83-31.14L113.18,687.22z M230.62,595.92l-116.27,90.4 l63.02,56.36l4.03,3.61l74.67-102.08l-7.47-14.17L230.62,595.92z M331.94,517.15l-100.15,77.86l25.25,47.88l78.71-107.59l-1.71-8.14 L331.94,517.15z M333.22,516.15l2.02,9.64l1.66,7.92l34.65-47.37L333.22,516.15z M337.31,535.63l9.43,44.95l26.67-94.3 L337.31,535.63z M347.39,583.66l27.74,132.16l-0.62-228.04L347.39,583.66z M374.7,21.83l0.35,127.02l89.27,16.06l24.61-87 L374.7,21.83z M490.25,78.56l-22.26,78.7l-2.24,7.91l124.39,22.37l10.23-13.99l22.04-30.12L490.25,78.56z M623.74,144.09 l-12.29,16.8l-19.71,26.95l131.07,23.58l14.73-11.45L623.74,144.09z M739,200.67l-13.3,10.34l-0.96,0.74l58.14,10.46L739,200.67z M723.19,212.96l-25.33,19.69l-11.14,8.66l97.03-17.45L723.19,212.96z M782.89,225.5l-98.64,17.74l-107.06,83.23L782.89,225.5z M631.68,282.26l49.48-38.47l-150.1,27l-89.41,122.22l129.1-63.37L631.68,282.26z M565.06,334.05l-125.28,61.5l-45.94,62.8 l-14.96,20.44L565.06,334.05z M425.31,412.87l11.65-15.93l-42.69,20.96l-13.66,48.3l-3.58,12.67L425.31,412.87z M392.51,418.76 l-16.71,8.2l0.01,4.72l0.12,45.68L392.51,418.76z M377.21,941.96l21.37,10.36l24.14,11.7l-45.56-40.74L377.21,941.96z M377.15,921.31l34.83,31.15l12.57,11.24l-47.53-90.14L377.15,921.31z M376.63,730.07l0.38,140.33l48.29,91.59L376.63,730.07z M806.29,1197.48l75.8-58.86l-28.56,11.47l-25.6,10.28l14.96,7.25l-0.64,1.31l-16.16-7.83l-124.76,50.1l40.56,36.27L806.29,1197.48z M522.43,1146.18l58.88,111.66l52.71-21.17l64.61-25.95l-75.11-67.17L522.43,1146.18z M621.92,1142.14l-115.78-103.53l-46.8-12.07 l62.33,118.2l7.06-0.18L621.92,1142.14z M700.14,1210.12l124.19-49.87l-42.89-20.78l-155.8,4.04L700.14,1210.12z M679.7,1295.77 l61.03-47.39l-40.9-36.57l-117.85,47.32l42.09,79.82L679.7,1295.77z M522.48,1417.85l1.83-1.42l98.6-76.56l-42.28-80.19 l-84.25,33.83L522.48,1417.85z M496.08,1292.06l83.87-33.68l-59.14-112.16l-55.04,1.43L496.08,1292.06z M465.46,1146.2l54.58-1.42 l-62.61-118.74l-18.03-4.65l0.36-1.41l16.74,4.32l-27.63-52.4L465.46,1146.2z M458.42,1024.79l45.35,11.7l-74.14-66.29 L458.42,1024.79z M431.46,969.87l75.38,67.41l136.26,35.15L431.46,969.87z M649.76,1075.65l-140.54-36.25l114.83,102.68l154.53-4.01 L649.76,1075.65z M656.92,1077.5l124.84,60.5l51.97-1.35l47.7-1.24L656.92,1077.5z M784.62,1139.38l41.54,20.13l56.45-22.67 L784.62,1139.38z"/> </svg>');
				background-position: -50% 10%;
				background-repeat: repeat-y;
				background-size: 75% auto;
				content: '';
				display: block;
				height: 100%;
				left: 0;
				position: absolute;
				top: 0;
				width: 50vw;
				z-index: -1;
			}

		// Sections (all).
			section {
				display: grid;
				grid-template-areas: "header content" "footer content";
				grid-template-columns: 50vw 50vw;
				grid-template-rows: 1fr;

				&:first-child {
					margin-top: 0;
				}

				> header {
					grid-area: header;
					justify-self: end;
					text-align: right;

					h2 {
						margin: 0 0 (_size(element-margin) * 2.5) 0;
					}

					h1 + p {
						font-family: _font(family-heading);
						font-size: 0.8rem;
						font-weight: _font(weight-heading-extralight);
						letter-spacing: _font(kerning-heading);
						line-height: 2.5;
						text-transform: uppercase;
					}

					ul.actions {
						justify-content: flex-end;
					}
				}

				> .content {
					grid-area: content;
					max-width: _size(content-width);
					position: relative;
				}

				> footer {
					grid-area: footer;
					text-align: right;

					ul.actions {
						justify-content: flex-end;
					}
				}
			}

		// Sections (top level).
			> section {
				position: relative;

				> header {

					// Line.
						&:before {
							background: _palette(accent-border);
							content: '';
							display: block;
							margin-top: 1rem;
							position: absolute;
							width: _size(line-width);
						}

					// Headings.
						h1, h2 {
							position: relative;

							// Line connector.
								&:before {
									background: _palette(accent-border);
									content: '';
									display: block;
									height: _size(line-width);
									position: absolute;
									top: 1rem;
								}

							// Terminator.
								&:after {
									background: _palette(accent-border);
									border-radius: 0.5rem;
									content: '';
									display: block;
									height: 0.5rem;
									position: absolute;
									top: 0.75rem;
									width: 0.5rem;
								}

						}

						h1 {
							margin-top: -2rem;

							&:before {
								top: 3rem;
							}

							&:after {
								top: 2.75rem;
							}
						}

				}

				> .content {
					> section {
						position: relative;

						&:first-child {
							margin-top: 6rem;
						}
					}
				}

				// Intro.
					&.intro {
						align-items: center;

						> header {
							padding-top: 4rem;

							// Hack: Chrome's grid implementation screws up absolute element placement within a static child element.
								width: 100%;

								// Set width on all child elements and right-align.
									> * {
										margin-left: auto;
									}

								// Line.
									&:before {
										left: auto;
									}

						}

						> .content {
							height: 100vh;
							max-width: none;
						}
					}

				// Last.
					&:last-of-type {
						> header {

							// Line.
								&:before {
									height: 100%;
								}

							// Terminator.
								&:after {
									background: _palette(accent-border);
									border-radius: 0.5rem;
									bottom: -1.5rem;
									content: '';
									display: block;
									height: 0.5rem;
									position: absolute;
									width: 0.5rem;
									z-index: 1;
								}

						}
					}

			}

		// Copyright.
			.copyright {
				color: _palette(fg-light);
				font-size: 1rem;
				left: 50vw;
				position: relative;
				width: 50vw;

				a {
					color: inherit;
				}
			}

		// Pad.
			@include wrapper-pad($pad);

		@include breakpoint('<=large') {
			$pad: 4rem;

			// Pad.
				@include wrapper-pad($pad);

		}

		@include breakpoint('<=medium') {
			$pad: 4rem;

			padding: 0;

			// Background.
				&:before {
					display: none;
				}

			// Sections (all).
				section {
					grid-template-areas: "header" "content" "footer";
					grid-template-columns: 1fr;
					grid-template-rows: 3fr;

					> header {
						justify-self: start;
						padding: 0;
						text-align: left;
						width: 100%;

						ul.actions {
							justify-content: flex-start;
						}
					}

					> .content {
						padding: 0;
						width: 100%;
						overflow-x: hidden;
					}

					> footer {
						padding: 0;
						text-align: left;

						ul.actions {
							justify-content: flex-start;
						}
					}
				}

			// Sections (top level).
				> section {
					margin: 0;

					> header {
						background-attachment: fixed;
						background-color: _palette(accent);
						background-image: svg-url('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 920 1750" x="0px" y="0px"> <path style="fill: #{transparentize(_palette(accent-border), 0.5)}" d="M889.72,1137.55l-2.91-0.75l-364.39,282.94l-0.7-0.9l-0.51,0.11l-94.77-451.5l-32.51-15.75l-16.73-8.11l0,0.68 l-1.46,0l0-1.39l-1.89-0.92l-112.41-54.47l-0.29,1.03l-1.41-0.37l0.37-1.31l-34.14-16.54l-98.56-47.76l-0.59,0.81l-1.16-0.88 l0.42-0.57L11.43,766.33l-0.25,0.2l-0.9-1.15l102.87-79.98l0.08-0.1l0.02,0.02l116.68-90.72l-0.18-0.34l1.3-0.66l0.05,0.09 l100.5-78.14l-0.07-0.32l0.65-0.14l42.3-32.89l-0.15-54.54l-0.59,0.29l-0.64-1.31l1.23-0.6l-0.01-4.54l-0.33-122.47l-0.99,0.18 l-0.28-1.43l1.27-0.23l-0.4-147.49l-0.87-0.16l0.28-1.43l0.58,0.1l-0.35-127.48l-0.13-0.06l0.64-1.31L489.97,76.8l0.73,0.19 l-0.04,0.14l132.63,65.11l0.33-0.45l1.16,0.88l-0.16,0.22l114.21,56.07l0.45-0.35l0.72,0.93l47.89,23.51l2.76-1.36l0.56,4.61 l-3.32-1.63L571.52,330.88L375.95,482.93l0.66,239.95l51.12,243.57l222.53,107.83l236.23,60.93l2.27-1.77 M375.8,425.34l17.25-8.47 l36.13-127.75l-53.73,9.66L375.8,425.34z M551,241.05l38.19-52.2l-123.83-22.27l-34.13,120.68l98.99-17.81L551,241.05z M532.3,269.09l151.34-27.22l37.63-29.25l-130.48-23.47L532.3,269.09z M303.38,733.9l-2.36-4.48l-44.18-83.78L182.5,747.25 l40.78,36.46l52.69,47.11L303.38,733.9z M277.18,831.91l56.95,50.93L375.69,920l-0.13-49.23l-71.19-135L277.18,831.91z M303.96,731.86l41.93-148.25l-9.74-46.39L257.8,644.33L303.96,731.86z M304.94,733.73l9.55,18.12l61.05,115.78l-0.39-144.6 l-16.9-80.53l-11.71-55.81L304.94,733.73z M375.21,211.79l0.23,85.51l54.17-9.74l34.29-121.23l-88.87-15.98L375.21,211.79z M430.78,288.83l-17.88,63.21L394.81,416l44.01-21.6l90.15-123.23L430.78,288.83z M287.76,898.62l87.99,42.64l-0.05-19.29 l-91.37-81.71l-7.59-6.78l-14.88,52.59L287.76,898.62z M174.26,843.62l86.26,41.8l15-53.03l-93.89-83.95l-53.34,72.91L174.26,843.62 z M113.18,687.22L12.71,765.33l55.69,26.99l58.56,28.38l53.58-73.24l-34.83-31.14L113.18,687.22z M230.62,595.92l-116.27,90.4 l63.02,56.36l4.03,3.61l74.67-102.08l-7.47-14.17L230.62,595.92z M331.94,517.15l-100.15,77.86l25.25,47.88l78.71-107.59l-1.71-8.14 L331.94,517.15z M333.22,516.15l2.02,9.64l1.66,7.92l34.65-47.37L333.22,516.15z M337.31,535.63l9.43,44.95l26.67-94.3 L337.31,535.63z M347.39,583.66l27.74,132.16l-0.62-228.04L347.39,583.66z M374.7,21.83l0.35,127.02l89.27,16.06l24.61-87 L374.7,21.83z M490.25,78.56l-22.26,78.7l-2.24,7.91l124.39,22.37l10.23-13.99l22.04-30.12L490.25,78.56z M623.74,144.09 l-12.29,16.8l-19.71,26.95l131.07,23.58l14.73-11.45L623.74,144.09z M739,200.67l-13.3,10.34l-0.96,0.74l58.14,10.46L739,200.67z M723.19,212.96l-25.33,19.69l-11.14,8.66l97.03-17.45L723.19,212.96z M782.89,225.5l-98.64,17.74l-107.06,83.23L782.89,225.5z M631.68,282.26l49.48-38.47l-150.1,27l-89.41,122.22l129.1-63.37L631.68,282.26z M565.06,334.05l-125.28,61.5l-45.94,62.8 l-14.96,20.44L565.06,334.05z M425.31,412.87l11.65-15.93l-42.69,20.96l-13.66,48.3l-3.58,12.67L425.31,412.87z M392.51,418.76 l-16.71,8.2l0.01,4.72l0.12,45.68L392.51,418.76z M377.21,941.96l21.37,10.36l24.14,11.7l-45.56-40.74L377.21,941.96z M377.15,921.31l34.83,31.15l12.57,11.24l-47.53-90.14L377.15,921.31z M376.63,730.07l0.38,140.33l48.29,91.59L376.63,730.07z M806.29,1197.48l75.8-58.86l-28.56,11.47l-25.6,10.28l14.96,7.25l-0.64,1.31l-16.16-7.83l-124.76,50.1l40.56,36.27L806.29,1197.48z M522.43,1146.18l58.88,111.66l52.71-21.17l64.61-25.95l-75.11-67.17L522.43,1146.18z M621.92,1142.14l-115.78-103.53l-46.8-12.07 l62.33,118.2l7.06-0.18L621.92,1142.14z M700.14,1210.12l124.19-49.87l-42.89-20.78l-155.8,4.04L700.14,1210.12z M679.7,1295.77 l61.03-47.39l-40.9-36.57l-117.85,47.32l42.09,79.82L679.7,1295.77z M522.48,1417.85l1.83-1.42l98.6-76.56l-42.28-80.19 l-84.25,33.83L522.48,1417.85z M496.08,1292.06l83.87-33.68l-59.14-112.16l-55.04,1.43L496.08,1292.06z M465.46,1146.2l54.58-1.42 l-62.61-118.74l-18.03-4.65l0.36-1.41l16.74,4.32l-27.63-52.4L465.46,1146.2z M458.42,1024.79l45.35,11.7l-74.14-66.29 L458.42,1024.79z M431.46,969.87l75.38,67.41l136.26,35.15L431.46,969.87z M649.76,1075.65l-140.54-36.25l114.83,102.68l154.53-4.01 L649.76,1075.65z M656.92,1077.5l124.84,60.5l51.97-1.35l47.7-1.24L656.92,1077.5z M784.62,1139.38l41.54,20.13l56.45-22.67 L784.62,1139.38z"/> </svg>');
						background-position: 25% 50%;
						background-repeat: repeat-y;
						background-size: 40rem auto;

						> * {
							max-width: 25rem;
						}

						> :last-child {
							margin-bottom: 0;
						}

						// Line.
							&:before {
								display: none;
							}

						// Headings.
							h1, h2 {

								// Line connector.
									&:before {
										display: none;
									}

								// Terminator.
									&:after {
										display: none;
									}

							}

					}

					> .content {
						> :last-child {
							margin-bottom: 0;
						}

						> section {
							left: 0;

							&:first-child {
								margin-top: 0;
							}

							> header {
								width: 100%;
							}

							&:last-child {
								margin-bottom: 0;
							}
						}
					}

					> footer {
						> :last-child {
							margin-bottom: 0;
						}
					}

					// Intro.
						&.intro {
							margin-bottom: 0;

							> header {
								margin-bottom: 0;

								ul.actions {
									display: none;
								}

								// Hack: Undo Chrome grid hack.
									> * {
										margin-left: 0;
										margin-right: 0;
										width: 100%;
									}

									> ul.actions {
										margin-left: (_size(element-margin) * -0.5);
									}

									&:before {
										margin-left: 0;
									}

							}
						}

					// Last.
						&:last-of-type {
							> header {

								// Terminator.
									&:after {
										display: none;
									}

							}
						}

				}

			// Copyright.
				.copyright {
					left: 0;
					width: 100%;
				}

			// Pad.
				@include wrapper-pad-portrait($pad);

		}

		@include breakpoint('<=small') {
			$pad: 2rem;

			// Pad.
				@include wrapper-pad-portrait($pad, 1.5);

		}

		@include breakpoint('<=xxsmall') {
			$pad: 1.5rem;

			// Pad.
				@include wrapper-pad-portrait($pad, 1.5);

		}

	}

	// Mobile.
		body.is-mobile {
			#wrapper {

				// Background.
					&:before {
						background-attachment: scroll;
						background-position: 50% -3%;
						background-repeat: repeat-y;
						background-size: 150% auto;
					}

				// Sections (top level).
					> section {
						> header {
							background-attachment: scroll;
							background-position: 25% 50%;
						}

						// Intro.
							&.intro {
								> header {
									background-position: 25% 23%;
								}
							}

					}

			}
		}

	// Preload.
		#wrapper {

			// Background.
				&:before {
					transition: opacity 1s ease;

					body.is-preload & {
						opacity: 0;
					}
				}

			// Sections (top level).
				> section {

					// Intro.
						&.intro {
							transition: opacity 1s ease;
							opacity: 1;

							> header {
								transition: transform 1s ease;
							}

							> .content {
								transition: transform 1s ease;
							}

							body.is-preload & {
								opacity: 0;

								> header {
									transform: translateY(1rem);
								}

								> .content {
									transform: translateY(-1rem);
								}
							}

							@include breakpoint('<=large') {
								> header {
									> * {
										transition: transform 1s ease, opacity 1s ease;
									}
								}

								body.is-preload & {
									> header {
										transform: none;

										> * {
											transform: translate(-0.5rem);
											opacity: 0;
										}
									}

									> .content {
										transform: none;
									}
								}
							}
						}

				}

		}

	// IE.
		body.is-ie {
			#wrapper {
				$pad: 5rem;

				// Sections (all).
					section {
						display: flex;
						flex-wrap: wrap;

						> header {
							width: 50%;
						}

						> .content {
							width: 50%;
						}

						> footer {
							width: 50%;
							text-align: left;
							margin-left: 50%;
							padding: $pad;
						}
					}

				// Sections (top level).
					> section {
						> .content {
							> section {
								width: 100vw;
							}
						}
					}

				@include breakpoint('<=large') {
					$pad: 4rem;

					// Sections (all).
						section {
							> footer {
								padding: $pad;
							}
						}

				}

			}
		}