@charset "utf-8";

@font-face {
  font-family: 'Apprentice';
  src: local('Apprentice'),
  url('Apprentice.woff2') format('woff2');
}

:root {
  --white: #fff;
  --light: #e2e2e2;
  --bronze: #b09b79;
  --dark-bronze: #4f442c;
  --green: #4cb744;
  --dark: #000;
}

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

a {
  color: var(--bronze);

  &, img {
    transition: all .25s ease;
  }

  &:hover {
    color: var(--white);
  }
}

h1, h2, h3, h4, h5, h6, p {
  overflow-wrap: break-word;
  margin: 0;
}

h1, h2, h3 {
  font-family: Apprentice, serif;
  text-align: center;
  letter-spacing: 2px;
  color: var(--bronze);
}

h4 {
  color: var(--white);
}

h5 {
  color: var(--bronze);
}

ul, li {
  margin: 0;
  padding: 0;
  list-style: none;
}

ul li {
  img {
    vertical-align: text-top;
  }
}

.green {
  color: #4cb744;
}

html {
  font-family: Verdana, sans-serif;
  font-size: 12px;
  color: var(--light);
  text-shadow: 1px 1px 0 var(--dark);
  min-width: 21cm;
  background: var(--dark) url('bg.jpg') no-repeat center top/cover;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  min-height: 100dvh;
  margin: 0;
  line-height: 1.5;
}

.layer {
  overflow: hidden;
  pointer-events: none;
  touch-action: none;
  position: absolute;
  inset: 0;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  width: 100%;
  height: 100%;

  &.video {
    opacity: .1;
    object-fit: cover;
  }

  &:before, &:after {
    position: absolute;
    left: 0;
    top: 0;
    content: '';
  }

  &.clouds-bg {
    &:before, &:after {
      opacity: .1;
      right: 0;
      bottom: 0;
      background: url('clouds.png') no-repeat center bottom/cover;
      animation: clouds-before 60s infinite;
    }

    &:after {
      background: url('clouds-top.png') no-repeat center top/cover;
      animation: clouds-after 30s infinite;
    }
  }

  &.clouds, &.snow {
    &:before {
      opacity: .1;
      width: 200%;
      height: 200%;
      background-repeat: repeat;
      background-size: 50% 50%;
      will-change: transform;
    }
  }

  &.clouds:before {
    background-image: url('clouds-tile-v5.png');
    animation: clouds-drift 120s infinite;
  }

  &.snow:before {
    opacity: .25;
    background-image: url('snow-tile-tiny.png');
    animation: snow-fall 120s linear infinite;
  }

  &.snow-fg:before {
    opacity: .5;
    animation: snow-fall-fg 60s linear infinite;
  }
}


@keyframes clouds-before {
  0%, 100% {
    transform: scale(1.2);
  }
  50% {
    transform: scale(1);
  }
}

@keyframes clouds-after {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
}

@keyframes clouds-drift {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-50%, 0, 0);
  }
}

@keyframes snow-fall {
  from {
    transform: translate3d(-50%, -50%, 0);
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes snow-fall-fg {
  from {
    transform: translate3d(-50%, -50%, 0) scaleX(-1);
  }
  to {
    transform: translate3d(0, 0, 0) scaleX(-1);
  }
}

header, main {
  position: relative;
  z-index: 2;
  width: 21cm;
  padding: 16px;
}

header {
  padding-bottom: 0;
}

header {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.frame {
  display: flex;

  &.top, &.bottom {
    flex-shrink: 0;
    width: 100%;
    height: 64px;
  }

  &.top {
    &:before {
      pointer-events: none;
      touch-action: none;
      position: absolute;
      left: 0;
      right: 0;
      width: 100%;
      height: 63px;
      content: '';
      background: url('snow-cap-left.png') no-repeat 10px top, url('snow-cap-center.png') no-repeat 100px top, url('snow-cap-right.png') no-repeat 500px top;
    }
  }

  &.middle {
    width: 100%;
  }

  &.bottom {
    height: 32px;
  }

  .top-tile, &.middle, .content, .bottom-tile {
    flex-grow: 1;
  }

  .top-left, .top-center, .top-right, .bottom-left, .bottom-right, .left-tile, .right-tile {
    flex-shrink: 0;
  }

  .top-left, .top-right {
    width: 32px;
  }

  .top-left {
    background: url('Frame_DF_Hor_Large_Left.png') no-repeat left top;
  }

  .top-tile {
    background: url('Frame_DF_Hor_Large_Tile.png') repeat-x center top;
  }

  .top-center {
    width: 128px;
    padding-top: 17px;
    text-align: center;
    background: url('Frame_DF_Hor_Large_Center.png') no-repeat center top;

    h1 {
      font-size: 21px;
    }
  }

  .top-right {
    background: url('Frame_DF_Hor_Large_Right.png') no-repeat right top;
  }

  .left-tile, .right-tile {
    width: 10px;
    background: url('left.png') no-repeat left center/10px 100%;
  }

  .content {
    position: relative;
    background: url('content.png');

    .inner {
      margin: -24px 0 -16px;
      padding: 0 8px;
    }
  }

  .right-tile {
    background-image: url('right.png');
    background-position-x: right;
  }

  .bottom-left, .bottom-right {
    width: 24px;
  }

  .bottom-left {
    background: url('bottom-left.png') no-repeat left top;
  }

  .bottom-tile {
    background: url('bottom-tile.png') repeat-x center bottom;
  }

  .bottom-right {
    background: url('bottom-right.png') no-repeat right top;
  }
}

.img {
  display: block;
  position: relative;
  width: 134px;
  margin: 4px auto;
  padding: 2px;
  border: 1px solid var(--dark-bronze);
  box-shadow: 1px 1px 0 var(--dark);

  &:before {
    pointer-events: none;
    touch-action: none;
    position: absolute;
    left: 50%;
    top: 50%;
    width: 128px;
    height: 128px;
    margin: -68px 0 0 -68px;
    content: '';
    background: url('refinegrade3-sprite.png') no-repeat 0 0;
    transition: all .25s ease;
  }

  &:hover:before {
    transform: scale(3.6);
    animation: grade-play 4s steps(50) 1;
  }

  img {
    position: relative;
    z-index: 2;
    display: block;
    max-width: 100%;
  }
}

@keyframes grade-play {
  to {
    background-position: -6400px 0;
  }
}

.core {
  display: flex;

  article {
    width: 100%;

    &.center {
      width: 58%;
    }

    &:not(.center) {
      padding-top: 48px;
    }
  }
}

.education {
  font-family: Apprentice, serif;
  color: var(--bronze);
  text-align: center;

  img {
    width: 16px;
    height: 16px;
    vertical-align: top;
  }
}

.header-summary {
  text-align: left;
}

.summary {
  display: flex;
  padding: 4px 0;
}

.skills {
  display: flex;
  flex-wrap: wrap;
  flex-shrink: 0;
  position: relative;
  align-content: flex-start;
  width: 240px;
  height: 147px;
  margin: 6px 12px 0 0;
  padding: 29px 13px 0;
  background: var(--dark-bronze) url('skills.png') no-repeat left top;

  &:before {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    text-align: center;
    content: attr(title);
  }

  li {
    width: 32px;
    height: 32px;
    margin: 3px 0 0 3px;

    img {
      display: block;
      position: relative;
      z-index: 2;
      width: 100%;
      height: 100%;
      object-fit: contain;
    }

    a {
      position: relative;

      &:before {
        opacity: 0;
        pointer-events: none;
        touch-action: none;
        position: absolute;
        left: 50%;
        top: 50%;
        width: 256px;
        height: 256px;
        margin: -128px 0 0 -128px;
        content: '';
        background: url('skill.apng') no-repeat center center;
        transition: all .25s ease;
      }

      &:hover {
        &:before {
          z-index: 1;
          opacity: 1;
        }

        img {
          transform: scale(1.25);
          /*animation: 1s heartbeat .25s ease infinite;*/
        }
      }
    }
  }
}

/*@keyframes heartbeat {*/
/*  0%, 40%, 80%, 100% {*/
/*    transform: scale(1.25);*/
/*  }*/
/*  20%, 60% {*/
/*    transform: scale(1);*/
/*  }*/
/*}*/

.experience {
  &:after {
    font-family: Verdana, sans-serif;
    display: inline-block;
    width: 322px;
    height: 15px;
    margin: 0 0 0 8px;
    font-size: 11px;
    font-weight: normal;
    line-height: 1.1;
    color: var(--light);
    content: '100.00%';
    vertical-align: middle;
    text-shadow: 1px 1px 0 var(--dark), -1px -1px 0 var(--dark), 1px -1px 0 var(--dark), -1px 1px 0 var(--dark);
    background: url('exp.png');
  }
}

.job-list {
  > li {
    margin: 2px 0 0;
    padding: 4px;
    border: 1px solid var(--dark-bronze);
    box-shadow: 1px 1px 0 var(--dark);

    .skill-list {
      font-size: 0;
      vertical-align: top;

      img {
        width: 16px;
        height: 16px;
        object-fit: contain;
      }
    }
  }

  h3 {
    text-align: left;
  }

  hgroup {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
}

@media print {
  header div {
    display: none;
  }
}

iframe {
  border: 0 none !important;
  outline: 0 none !important;
}

#ho_adv {
  display: none !important;
}

header div {
  position: absolute;
  right: 16px;
}

