/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

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

.btn {
  color: white;
  display: block;
  border: 4px solid white;
  padding: 20px;
  text-decoration: none;
  transition: all 100ms ease-in-out;
  opacity: 1;
  text-transform: uppercase;
  font-weight: 200;
  margin-bottom: 22px; }
  @media print {
    .btn {
      display: none; } }
  @media (min-width: 768px) {
    .btn {
      margin-right: 12px;
      display: inline-block;
      margin-left: 0;
      margin-bottom: 0; }
      .btn:last-of-type {
        margin-right: 0; } }
  .btn:hover {
    background: white;
    color: #000815; }
  .btn:active {
    background: #d5d5d5;
    color: black;
    border-color: #d5d5d5;
    transform: scale(0.96); }

.presets {
  background: #000815;
  color: white; }
  .presets .container {
    max-width: 850px;
    margin: 40px auto; }
    .presets .container h1, .presets .container h2 {
      text-align: left;
      padding: 20px 0; }
    .presets .container h3 {
      font-family: 'Roboto', sans-serif;
      font-size: 18px;
      text-transform: uppercase;
      margin-bottom: 20px; }
      .presets .container h3:first-of-type {
        margin-top: 40px; }
    .presets .container p {
      line-height: 200%; }
    .presets .container .sample {
      margin: 20px 0;
      background: #000d23; }
  .presets .btn {
    color: white;
    display: block;
    border: 4px solid white;
    padding: 20px;
    text-decoration: none;
    transition: all 100ms ease-in-out;
    opacity: 1;
    text-transform: uppercase;
    font-weight: 200;
    margin-right: 12px;
    margin-left: 12px;
    margin-bottom: 22px; }
    @media (min-width: 768px) {
      .presets .btn {
        display: inline-block;
        margin-left: 0;
        margin-bottom: 0; }
        .presets .btn:last-of-type {
          margin-right: 0; } }
    .presets .btn:hover {
      background: white;
      color: #000815; }
    .presets .btn:active {
      background: #d5d5d5;
      color: black;
      border-color: #d5d5d5;
      transform: scale(0.96); }

.cv h1, .cv h2, .cv h3 {
  text-align: left;
  padding: 48px 0 24px; }

.cv h2, .cv h3 {
  padding-top: 0; }

.cv .print__only {
  display: none; }
  @media print {
    .cv .print__only {
      display: inline; } }
@media (min-width: 900px) {
  .cv header .header__primary {
    float: left;
    width: 80%; } }

.cv header .header__sub {
  margin-bottom: 24px; }
  @media (min-width: 900px) {
    .cv header .header__sub {
      float: left;
      width: 20%;
      text-align: right;
      padding: 48px 0 24px;
      margin-bottom: auto; } }
  @media print {
    .cv header .header__sub ul {
      display: none; } }
  .cv header .header__sub ul li {
    display: inline-block; }
  .cv header .header__sub a {
    color: #2a2829; }

.cv header:after {
  clear: both;
  content: '';
  display: block; }

.cv .content {
  max-width: 900px;
  margin: 24px; }
  @media (min-width: 900px) {
    .cv .content {
      margin: 0 auto; } }
  .cv .content p {
    font-size: 16px;
    line-height: 20px;
    margin-bottom: 24px;
    text-align: justify; }

.cv .experience {
  padding: 12px 0; }
  @media (min-width: 900px) {
    .cv .experience {
      padding: 24px 0; } }
  @media print {
    .cv .experience {
      padding: 0; } }
  .cv .experience h4 {
    text-transform: uppercase;
    font-size: 24px;
    margin-bottom: 12px; }
    @media print {
      .cv .experience h4 {
        text-transform: none; } }
  .cv .experience h5 {
    font-size: 14px;
    margin-bottom: 12px; }
    @media (min-width: 900px) {
      .cv .experience h5 {
        font-size: 18px; } }
    .cv .experience h5.role {
      color: #6c6c6c; }
  @media (min-width: 900px) {
    .cv .experience .experience__content .intro {
      width: 60%;
      float: left; } }
  @media (min-width: 900px) {
    .cv .experience .experience__content .tech {
      width: 40%;
      float: left;
      padding-left: 24px; } }
  .cv .experience .experience__content .tech ul li {
    display: inline-block;
    padding: 12px;
    background: white;
    color: #3098FF;
    margin-bottom: 12px;
    margin-right: 6px;
    transition: all 100ms ease-in-out; }
    .cv .experience .experience__content .tech ul li:hover {
      transform: scale(1.1); }
  .cv .experience .experience__content:after {
    content: '';
    display: block;
    clear: both; }
  .cv .experience.experience--spotlight .tech ul li {
    color: #04255b;
    border: 1px solid #04255b; }
  .cv .experience.experience--spotlight .btn {
    border-color: #04255b;
    color: #04255b; }
    .cv .experience.experience--spotlight .btn:hover {
      background: #04255b;
      color: white; }
  .cv .experience.experience--hunchbuzz .tech ul li {
    color: #3098FF;
    border: 1px solid #3098FF; }
  .cv .experience.experience--hunchbuzz .btn {
    border-color: #3098FF;
    color: #3098FF; }
    .cv .experience.experience--hunchbuzz .btn:hover {
      background: #3098FF;
      color: white; }
  .cv .experience.experience--overlandnz .tech ul li {
    border: 1px solid #2a2829;
    color: #2a2829; }
    @media (prefers-color-scheme: dark) {
      .cv .experience.experience--overlandnz .tech ul li {
        color: #000d23;
        border-color: white; } }
  .cv .experience.experience--overlandnz .btn {
    border-color: #2a2829;
    color: #2a2829; }
    .cv .experience.experience--overlandnz .btn:hover {
      background: #2a2829;
      color: white; }
    @media (prefers-color-scheme: dark) {
      .cv .experience.experience--overlandnz .btn {
        color: white;
        border-color: white; } }
  .cv .experience.experience--shnappy .tech ul li {
    border: 1px solid #ea2378;
    color: #ea2378; }
  .cv .experience.experience--shnappy .btn {
    border-color: #ea2378;
    color: #ea2378; }
    .cv .experience.experience--shnappy .btn:hover {
      background: #ea2378;
      color: white; }
  .cv .experience.experience--raygun .tech ul li {
    border: 1px solid #1072bf;
    color: #1072bf; }
  .cv .experience.experience--raygun .btn {
    border-color: #1072bf;
    color: #1072bf; }
    .cv .experience.experience--raygun .btn:hover {
      background: #1072bf;
      color: white; }
  .cv .experience.experience--nv .tech ul li {
    color: #000000;
    border: 1px solid #000000; }
  .cv .experience.experience--nv .btn {
    border-color: #000000;
    color: #000000; }
    .cv .experience.experience--nv .btn:hover {
      background: #000000;
      color: white; }
  .cv .experience.experience--xero .tech ul li {
    color: #0078c8;
    border: 1px solid #0078c8; }
  .cv .experience.experience--xero .btn {
    border-color: #0078c8;
    color: #0078c8; }
    .cv .experience.experience--xero .btn:hover {
      background: #0078c8;
      color: white; }

*,
*:before,
*:after {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

body {
  font-family: 'Roboto', sans-serif; }
  @media (prefers-color-scheme: dark) {
    body {
      background: #000d23;
      color: #d5d5d5; } }
a {
  color: white; }

.panel {
  background: #000815;
  color: white; }
  @media (min-width: 768px) {
    .panel {
      width: 50%;
      position: fixed;
      top: 0; } }
  .panel.panel--content {
    position: absolute;
    top: 40%;
    left: 0;
    right: 0;
    bottom: 0;
    height: auto;
    z-index: 999;
    padding-bottom: 40px; }
    @media (min-width: 768px) {
      .panel.panel--content {
        height: 100%;
        position: fixed;
        width: 70%;
        box-shadow: 0 0 5px 0 #1d1d1d;
        bottom: 0;
        top: 0;
        padding-bottom: 0; } }
    @media (min-width: 768px) {
      .panel.panel--content .content {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 100%; } }
  .panel.panel--photo {
    background: black url(/img/hero4.jpg) no-repeat center 30%;
    background-size: cover;
    position: fixed;
    width: 100%;
    top: 0;
    height: 40%; }
    @media (min-width: 768px) {
      .panel.panel--photo {
        right: 0;
        height: auto;
        width: 30%;
        bottom: 0; } }
h1 {
  font-family: 'Roboto', sans-serif;
  font-size: 32px;
  padding: 48px;
  text-align: center;
  font-weight: 500;
  text-transform: uppercase;
  width: 100%;
  background: rgba(255, 255, 255, 0.2);
  text-align: center;
  margin: 0 auto; }
  @media (min-width: 768px) {
    h1 {
      width: 600px;
      font-size: 48px;
      border-radius: 20px; } }
h2 {
  font-family: 'Roboto', sans-serif;
  font-size: 24px;
  padding: 24px;
  text-align: center; }

h3 {
  font-family: 'Roboto', sans-serif;
  font-size: 18px;
  padding: 24px;
  text-align: center; }

.buttons {
  padding-top: 24px;
  text-align: center;
  width: 100%; }
  .buttons div {
    color: white;
    display: block;
    border: 4px solid white;
    padding: 20px;
    text-decoration: none;
    transition: all 100ms ease-in-out;
    opacity: 1;
    text-transform: uppercase;
    font-weight: 200;
    margin-right: 12px;
    margin-left: 12px;
    margin-bottom: 22px; }
    @media (min-width: 768px) {
      .buttons div {
        display: inline-block;
        margin-left: 0;
        margin-bottom: 0; }
        .buttons div:last-of-type {
          margin-right: 0; } }
.links {
  margin-top: 48px;
  text-align: center; }
  .links a {
    position: relative;
    display: inline-block;
    opacity: 1;
    text-transform: uppercase;
    text-decoration: none;
    border-right: 2px solid white;
    padding-right: 10px;
    margin-right: 10px; }
    .links a:after {
      content: '';
      display: block;
      background: white;
      position: absolute;
      width: 0;
      height: 2px;
      margin: 2px;
      left: 50%;
      transform: translateX(-50%);
      transition: all 100ms ease-in-out; }
    .links a:hover:after {
      width: 40%; }
    .links a:active:after {
      width: 35%; }
    .links a:last-of-type {
      padding-right: 0;
      margin-right: 0;
      border-right: none; }

footer {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 10px; }

.modal .modal__body {
  position: fixed;
  width: 400px;
  height: 400px;
  top: 50%;
  left: 50%;
  background: white;
  z-index: 1000;
  box-shadow: 0 0 5px 0 white;
  color: white;
  padding: 22px;
  transform: translateY(150%) translateX(-50%);
  transition: all 200ms ease-in-out; }

.modal .modal__backing {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  content: '';
  background: rgba(0, 0, 0, 0.6);
  opacity: 0;
  z-index: -1;
  transition: all 200ms ease-in-out; }

.modal.modal--in .modal__backing {
  z-index: 1000;
  opacity: 1; }

.modal.modal--in .modal__body {
  transform: translateY(-50%) translateX(-50%); }

.modal .modal__head h4 {
  width: 200px;
  float: left;
  font-size: 32px;
  text-transform: uppercase;
  display: block; }

.modal .modal__head a {
  display: block;
  float: right;
  color: black;
  background: white;
  font-size: 14px;
  font-weight: bold;
  width: 32px;
  height: 32px;
  opacity: 1;
  border-radius: 50%;
  text-align: center;
  text-decoration: none;
  padding-top: 9px; }
  .modal .modal__head a:hover {
    opacity: 0.9; }

.modal .modal__head:after {
  display: table;
  content: '';
  clear: both; }

.modal .modal__body .text__right {
  text-align: right; }

.modal .modal__body a {
  color: #6e6e6e;
  background: transparent;
  text-decoration: none;
  margin-right: 10px; }

.modal .modal__body label {
  color: #000815;
  display: block;
  width: 100%; }
  .modal .modal__body label input,
  .modal .modal__body label textarea {
    display: block;
    width: 100%;
    margin: 10px 0;
    padding: 12px;
    font-size: 12px;
    border: 1px solid #efefef; }
  .modal .modal__body label textarea {
    height: 128px; }

.modal .modal__body input[type='submit'] {
  margin: 10px 0;
  padding: 12px;
  font-size: 12px;
  background: green;
  border-radius: 4px;
  border: none; }
