@charset "UTF-8";

/**
*   This file was built from several sources and attempts to normalize all elements to 
*   establish a normalized CSS template.
*
*   Included are my standardized declarations with which I begin projects.
*/



/* ---------------------------------------------------------------------------------------
					============= NORMALIZATION ============= 				
--------------------------------------------------------------------------------------- */

/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 * 3. Always force a scrollbar in non-IE (prevents the appx 20px 'jog' when going back and 
 *    forth between above-fold pages and scrolled pages)
 */

html {
  font-size: 16px;
  font-family: sans-serif; /* 1 */
  -ms-text-size-adjust: 100%; /* 2 */
  -webkit-text-size-adjust: 100%; /* 2 */
  overflow-y: scroll; /* 3 */

  scroll-behavior: smooth; 
	transition: all 0.5s ease-in-out;
	-webkit-transition: all 0.5s ease-in-out;
}

/**
 * Remove default margin.
 */

body {
  margin: 0;
}

/**
 * Normalize the box model.
 */
body * {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

/* HTML5 display definitions
========================================================================== */

/**
 * Correct 'block' display not defined for any HTML5 element in IE 8/9.
 * Correct 'block' display not defined for 'details' or 'summary' in IE 10/11
 * and Firefox.
 * Correct 'block' display not defined for 'main' in IE 11.
 */

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}


/**
* Remove default margins & padding
*/
body, div, dl, dt, dd, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, p, blockquote, th, td {
  margin: 0;
  padding: 0; 
}

/**
 * 1. Correct 'inline-block' display not defined in IE 8/9.
 * 2. Normalize vertical alignment of 'progress' in Chrome, Firefox, and Opera.
 */

audio,
canvas,
progress,
video {
  display: inline-block; /* 1 */
  vertical-align: baseline; /* 2 */
  *display: inline; 
  *zoom: 1;
}

/**
 * Prevent modern browsers from displaying 'audio' without controls.
 * Remove excess height in iOS 5 devices.
 */

audio:not([controls]) {
  display: none;
  height: 0;
}

/**
 * Address '[hidden]' styling not present in IE 8/9/10.
 * Hide the 'template' element in IE 8/9/11, Safari, and Firefox < 22.
 */

[hidden],
template {
  display: none;
}

/* Links
========================================================================== */

/**
 * Remove the gray background color from active links in IE 10.
 */

a {
  background-color: transparent;
}

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */

a:active,
a:hover {
  outline: 0;
}

/* Text-level semantics
========================================================================== */
   
/**
* Set Font Weight and Style.
*/
address, caption, cite, code, dfn, th, var, h1, h2, h3, h4, h5 {
  font-weight: 300;
  font-style: normal;
}

strong { font-weight: bold; font-style: normal; }
em { font-style: italic; font-weight: normal; }

/**
* Position subscript and superscript content without affecting line-height.
*/
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sup { top: -0.5em; }
sub { bottom: -0.25em; }

/**
* Redeclare monospace font family.
*/
pre, code, kbd, samp { font-family: monospace, monospace; _font-family: 'courier new', monospace; font-size: 1em; }

/**
* Improve readability of pre-formatted text in all browsers
*/
pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; }

a:focus, a:active {
  outline: none;
}

/**
* Remove focus outline on elements..
*/
:focus {outline:none;}
::-moz-focus-inner {border:0;}


/**
* Left Align Defaulted Centering.
*/
caption {
  text-align: left;
}

/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */

abbr[title] {
  border-bottom: 1px dotted;
}

/**
 * Address style set to 'bolder' in Firefox 4+, Safari, and Chrome.
 */

b,
strong {
  font-weight: bold;
}

/**
 * Address styling not present in Safari and Chrome.
 */

dfn {
  font-style: italic;
}

/**
 * Address styling not present in IE 8/9.
 */

mark {
  background: #ff0;
  color: #000;
}

/**
 * Address inconsistent and variable font size in all browsers.
 */

small {
  font-size: 80%;
}


/* Embedded content
========================================================================== */

/**
 * Remove border when inside 'a' element in IE 8/9/10.
 */

img {
  border: 0;
}

/**
 * Correct overflow not hidden in IE 9/10/11.
 */

svg:not(:root) {
  overflow: hidden;
}

/* Grouping content
 ========================================================================== */

/**
 * Address margin not present in IE 8/9 and Safari.
 */

figure {
  margin: 1em 40px;
}

/**
 * Address differences between Firefox and other browsers.
 */

hr {
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  height: 0;
}

/**
 * Contain overflow in all browsers.
 */

pre {
  overflow: auto;
}

/**
 * Address odd 'em'-unit font size rendering in all browsers.
 */

code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

/* Forms
========================================================================== */

/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of 'select', unless a 'border' property is set.
 */

/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */

button,
input,
optgroup,
select,
textarea {
  color: inherit; /* 1 */
  font: inherit; /* 2 */
  margin: 0; /* 3 */
}

/**
 * Address 'overflow' set to 'hidden' in IE 8/9/10/11.
 */

button {
  width: auto; overflow: visible;
}

/**
 * Address inconsistent 'text-transform' inheritance for 'button' and 'select'.
 * All other form control elements do not inherit 'text-transform' values.
 * Correct 'button' style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct 'select' style inheritance in Firefox.
 */

button,
select {
  text-transform: none;
}

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native 'audio'
 *    and 'video' controls.
 * 2. Correct inability to style clickable 'input' types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    'input' and others.
 */

button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button; /* 2 */
  cursor: pointer; /* 3 */
}

label { cursor: pointer; }

/**
 * Re-set default cursor for disabled elements.
 */

button[disabled],
html input[disabled] {
  cursor: default;
}

/**
 * Remove inner padding and border in Firefox 4+.
 */

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

/**
 * Address Firefox 4+ setting 'line-height' on 'input' using '!important' in
 * the UA stylesheet.
 */

input {
  line-height: normal;
}

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to 'content-box' in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */

input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
* Align checkboxes, radios, text inputs with their label.
*/
input[type="radio"] { vertical-align: text-bottom; }
input[type="checkbox"] { vertical-align: sup; }

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * 'font-size' values of the 'input', it causes the cursor style of the
 * decrement button to change from 'default' to 'text'.
 */

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Address 'appearance' set to 'searchfield' in Safari and Chrome.
 * 2. Address 'box-sizing' set to 'border-box' in Safari and Chrome
 *    (include '-moz' to future-proof).
 */

input[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box; /* 2 */
  box-sizing: content-box;
}

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and 'textfield' appearance).
 */

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * Define consistent border, margin, and padding.
 */

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

/**
 * 1. Correct 'color' not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */

legend {
  border: 0; /* 1 */
  padding: 0; /* 2 */
}

/*
 * 1. Remove default vertical scrollbar in IE 8/9/10/11
 * 2. Allow only vertical resizing
 */

 textarea { overflow: auto; vertical-align: top; resize: vertical; }

/**
 * Don't inherit the 'font-weight' (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */

optgroup {
  font-weight: bold;
}

/**
* Remove box shadow firefox, chrome and opera put around required fields.
*/
input:required, textarea:required {
  -moz-box-shadow: none;
  -webkit-box-shadow: none;
  -o-box-shadow: none;
  box-shadow: none;
}

/* chrome, safari */
::-webkit-input-placeholder {
  color: #CCC;
  font-style: italic;
}

/* mozilla */
input:-moz-placeholder, textarea:-moz-placeholder {
  color: #CCC;
  font-style: italic;
}
      
/* ie (faux placeholder) */
input.placeholder-text, textarea.placeholder-text  {
  color: #CCC;
  font-style: italic;
}


/* Tables
   ========================================================================== */

/**
 * Remove most spacing between table cells.
 */

table {
  border-collapse: collapse;
  border-spacing: 0;
}

td,
th {
  padding: 0;
}

/**
* Left Align Defaulted Centering.
*/
th {
  text-align: left;
}

/* ---------------------------------------------------------------------------------------
					============= End Normalization ============= 
--------------------------------------------------------------------------------------- */


/* ---------------------------------------------------------------------------------------
          ============= STANDARDIZATION ============= 
          My preferred standardization for projects
--------------------------------------------------------------------------------------- */

/* 
   Lists
   I use lists for layout often. By default remove the 
   built in styling and use the classes below to style 'real' lists
  ========================================================================== */
ul, ol, li {
  list-style: none;
  margin: 0;
  padding: 0;
}

ol.decimal {
  margin: 0 44px 12px 44px;
  padding: 0;
}

ol.decimal li {
  margin: 0 0 12px;
  padding: 0;
  list-style: decimal;
}

ol.decimal li p {
  text-indent: 0;
}

ol.upperalpha {
  margin: 0 0 12px 34px;
  padding: 0;
}

ol.upperalpha li {
  margin: 0;
  padding: 0;
  list-style: upper-alpha;
}

ol.loweralpha {
  margin: 0 0 12px 34px;
  padding: 0;
}

ol.loweralpha li {
  margin: 0;
  padding: 0;
  list-style: lower-alpha;
}

ul.bullet {
  margin: 0 0 12px 34px;
  padding: 0;
}

ul.bullet li {
  margin: 0 0 12px;
  padding: 0;
  list-style: disc;
}

ul.stack {
  margin: 0 0 12px 34px;
  padding: 0;
}

ul.stack li {
  margin: 0 0 12px;
  padding: 0;
}

dl.definition {
  margin: 0 0 12px 34px;
  padding: 0;
}

dl.definition dd {
  margin: 0 0 0 22px;
  padding: 0;
}

dl.definition dt {
  font-weight: bold;
}

/* 
   Typography
   ========================================================================== */

h1 { font-size: 2.8rem; }
h2 { font-size: 1.8rem; }
h3 { font-size: 1.6rem; }
h4 { 
     font-size: 1.3rem; }
h5 { font-size: 1.2rem; font-weight: 700; }

h2,h3,h4 {
  margin: 0 0 10px;
}




/* 
   Cursor Classes
   ========================================================================== */
.auto            { cursor: auto; }
.default         { cursor: default; }
.none            { cursor: none; }
.context-menu    { cursor: context-menu; }
.help            { cursor: help; }
.pointer         { cursor: pointer; }
.progress        { cursor: progress; }
.wait            { cursor: wait; }
.cell            { cursor: cell; }
.crosshair       { cursor: crosshair; }
.text            { cursor: text; }
.vertical-text   { cursor: vertical-text; }
.alias           { cursor: alias; }
.copy            { cursor: copy; }
.move            { cursor: move; }
.no-drop         { cursor: no-drop; }
.not-allowed     { cursor: not-allowed; }
.all-scroll      { cursor: all-scroll; }
.col-resize      { cursor: col-resize; }
.row-resize      { cursor: row-resize; }
.n-resize        { cursor: n-resize; }
.e-resize        { cursor: e-resize; }
.s-resize        { cursor: s-resize; }
.w-resize        { cursor: w-resize; }
.ns-resize       { cursor: ns-resize; }
.ew-resize       { cursor: ew-resize; }
.ne-resize       { cursor: ne-resize; }
.nw-resize       { cursor: nw-resize; }
.se-resize       { cursor: se-resize; }
.sw-resize       { cursor: sw-resize; }
.nesw-resize     { cursor: nesw-resize; }
.nwse-resize     { cursor: nwse-resize; }
.custom {
   cursor: url(images/my-cursor.png), auto;
}

.grab { cursor: -moz-grab; }
.grabbing { cursor: -moz-grabbing; }
.grab { cursor: -webkit-grab; }
.grabbing { cursor: -webkit-grabbing; }
.grab {
  cursor: move;
  cursor: -webkit-grab; /* NOT WORKING */
}


/* 
   Float clearing
   ========================================================================== */

.clearfloats {
  clear: both;
  float: none;
  display: block;
  margin: 0;
  padding: 0;
  height: 0px;
  font-size: 1px;
  line-height: 0em;
  background: none;
}

.clearfix:before, .clearfix:after { content: ""; display: table; }
.clearfix:after { clear: both; }
.clearfix { zoom: 1; }


/* 
   Misc
   ========================================================================== */





/*
   Print styles
   ========================================================================== */
 
@media print {
  pre { border: 1px solid #999;  }
  thead { display: table-header-group; } 
  tr, img { page-break-inside: avoid; }
  img { max-width: 100% !important; }
  /* @page { margin: 0.5cm; } */
  p, h2, h3 { orphans: 3; widows: 3; }
  h2, h3 { page-break-after: avoid; }

  .pagebreak {
    display: block !important;
    page-break-before: always !important;
  }

  body {
    background: transparent !important;
    font-family: helvetica !important;
    font-size: 16px !important;
    padding: 0 10px !important;
    color: #2C3E50 !important;
  }

  .noprint, .pointer, #download {
    display: none !important;
  }

  #page {
    max-width: auto !important;
  }

  article {
    width: 100% !important;
    border: none !important;
  }

  section {
    display: block !important;
    page-break-before: always !important; 
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
    padding: 32px 16px;
  }

  section#home {
    page-break-before: avoid !important;
  }

  section#colors {
    display: none !important;
  }

  /* IF EACH SECTION IS DESIRED TO BEGIN ON A SEPARATE PAGE 
  article {
    page-break-before: always !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
    padding: 32px 16px;
  }
  */

  header {
    position: relative !important;
  } 

  header h1 {
    font-size: 3.5rem !important;
  }

  header h1 span {
    display: inline-block;
    padding: 0 10px;
    text-transform: capitalize;
  }

  article h3 {
    border-bottom: 1px solid #E74C3C !important;
  }

  header.hdr-sdw {
    box-shadow: none;
  }

  hgroup {
    border-bottom: none;
  }

  #toc {
    background: transparent !important;
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
  }

  section > div {
    display: block !important;
  }

  figure.right {
    max-width: 180px !important;
  }

  footer {
    font-size: 1em;
  }
  
  footer a {
    color: #333;
  }


  /* default for all pages 
  @page { 
    margin: 1.5cm;     
  } 
  */ 

  /* margin on left page */ 
  @page :left { 
      
  } 

  
  /* margin on right page */ 
  @page :right { 
      
  } 
  
  /* top margin on first page */ 
  @page :first { 
       
  } 
}



