text: 
  (function($) {
  
  	var $window = $(window),
  		$body = $('body'),
  		$wrapper = $('#wrapper'),
  		$main = $('#main'),
  		$panels = $main.children('.panel'),
  		$nav = $('#nav'), $nav_links = $nav.children('a');
  
  	// Breakpoints.
  		breakpoints({
  			xlarge:  [ '1281px',  '1680px' ],
  			large:   [ '981px',   '1280px' ],
  			medium:  [ '737px',   '980px'  ],
  			small:   [ '361px',   '736px'  ],
  			xsmall:  [ null,      '360px'  ]
  		});
  
  	// Play initial animations on page load.
  		$window.on('load', function() {
  			window.setTimeout(function() {
  				$body.removeClass('is-preload');
  			}, 100);
  		});
  
  	// Nav.
  		$nav_links
  			.on('click', function(event) {
  
  				var href = $(this).attr('href');
  
  				// Not a panel link? Bail.
  				
  					if (href.charAt(0) != '#'){
  						return;
  					}
  				
  					if ($panels.filter(href).length == 0)
  						return;
  				
  				// Prevent default.
  					event.preventDefault();
  					event.stopPropagation();
  
  				// Change panels.
  					if (window.location.hash != href)
  						window.location.hash = href;
  
  			});
  
  	// Panels.
  
  		// Initialize.
  			(function() {
  
  				var $panel, $link;
  
  				// Get panel, link.
  					if (window.location.hash) {
  
  				 		$panel = $panels.filter(window.location.hash);
  						$link = $nav_links.filter('[href="' + window.location.hash + '"]');
  
  					}
  
  				// No panel/link? Default to first.
  					if (!$panel
  					||	$panel.length == 0) {
  
  						$panel = $panels.first();
  						$link = $nav_links.first();
  
  					}
  
  				// Deactivate all panels except this one.
  					$panels.not($panel)
  						.addClass('inactive')
  						.hide();
  
  				// Activate link.
  					$link
  						.addClass('active');
  
  				// Reset scroll.
  					$window.scrollTop(0);
  
  			})();
  
  		// Hashchange event.
  			$window.on('hashchange', function(event) {
  
  				var $panel, $link;
  
  				// Get panel, link.
  					if (window.location.hash) {
  
  				 		$panel = $panels.filter(window.location.hash);
  						$link = $nav_links.filter('[href="' + window.location.hash + '"]');
  
  						// No target panel? Bail.
  							if ($panel.length == 0)
  								return;
  
  					}
  
  				// No panel/link? Default to first.
  					else {
  
  						$panel = $panels.first();
  						$link = $nav_links.first();
  
  					}
  
  				// Deactivate all panels.
  					$panels.addClass('inactive');
  
  				
  				// Deactivate all links.
  					$nav_links.removeClass('active');
  					$nav_links.removeClass('active_no_arrow');
  					
  
  				// Activate target link.
  					$link.addClass('active');
  
  
  				// Set max/min height.
  					$main
  						.css('max-height', $main.height() + 'px')
  						.css('min-height', $main.height() + 'px');
  
  				// Delay.
  					setTimeout(function() {
  
  						// Hide all panels.
  							$panels.hide();
  
  						// Show target panel.
  							$panel.show();
  
  						// Set new max/min height.
  							$main
  								.css('max-height', $panel.outerHeight() + 'px')
  								.css('min-height', $panel.outerHeight() + 'px');
  
  						// Reset scroll.
  							$window.scrollTop(0);
  
  						// Delay.
  							window.setTimeout(function() {
  
  								// Activate target panel.
  									$panel.removeClass('inactive');
  
  								// Clear max/min height.
  									$main
  										.css('max-height', '')
  										.css('min-height', '');
  
  								// IE: Refresh.
  									$window.triggerHandler('--refresh');
  
  								// Unlock.
  									locked = false;
  
  							}, (breakpoints.active('small') ? 0 : 500));
  
  						setTimeout(() => {
  							// Make sure nav bar is not stickied
  							// Func is defined in sticky_nav_bar.js
  								resetNavBarSticky();
  
  							// Pause and reset all project preview media
  								resetAllProjectMedia();
  			
  							// Check if project preview media should be played when switched to new tab
  								checkMedia()
  							
  							// Adjust timeline display height
  								offsetDiff();
  								adjustTimelineHeight();
  
  						}, 200);
  						
  						
  					}, 250);
  
  			});
  
  	// IE: Fixes.
  		if (browser.name == 'ie') {
  
  			// Fix min-height/flexbox.
  				$window.on('--refresh', function() {
  
  					$wrapper.css('height', 'auto');
  
  					window.setTimeout(function() {
  
  						var h = $wrapper.height(),
  							wh = $window.height();
  
  						if (h < wh)
  							$wrapper.css('height', '100vh');
  
  					}, 0);
  
  				});
  
  				$window.on('resize load', function() {
  					$window.triggerHandler('--refresh');
  				});
  
  			// Fix intro pic.
  				$('.panel.intro').each(function() {
  
  					var $pic = $(this).children('.pic'),
  						$img = $pic.children('img');
  
  					$pic
  						.css('background-image', 'url(' + $img.attr('src') + ')')
  						.css('background-size', 'cover')
  						.css('background-position', 'center');
  
  					$img
  						.css('visibility', 'hidden');
  
  				});
  
  		}
  
  })(jQuery);