/* VARIABLES */
:root {
  --color-purple: #35212C;
  --color-purple-dark: #34202A;

  --color-green: #95AB7F;
  --color-green-dark: #687960;
  --color-green-grad: #4A4B44;
  --color-green-grad-light: #869D77;

  --color-red: #D36F60;
  --color-red-dark: #785C4E;
  
  --color-orange: #F58F69;
  --color-orange-light: #FCB66C;
  --color-orange-dark: #C86055;

  --color-yellow: #EEC03D;
  --color-yellow-dark: #F8AB53;

  --color-tan: #F8E4BB;
  --color-tan-contrast: #B5B686;

  --pad-page-top: 60px;
  --pad-spacer: 32px;
}

/* LAYOUT */
html, body {
  font-family: 'Exo';
  font-size: 12px;
  margin: 0;
  padding: 0;
  background-image: linear-gradient(var(--color-yellow-dark) 33%, var(--color-red) 100%);
}
#container {
  margin: 0;
  width: calc(960px + (100vw - 960px) / 2);
  max-width: 1200px;
  min-height: 100vh;
  display: flex;
  flex-direction: row;
}
#left {
  position: relative;
  display: flex;
  flex: 1;
  width: 480px;
  overflow: hidden;
  box-sizing: border-box;
}
#right {
  width: 480px;
  padding: 0 32px;
  background-color: var(--color-tan);
  color: var(--color-green-dark);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.1),
    0 1px 2px rgba(0,0,0,0.3),
    0 0 10px rgba(0,0,0,0.15);
}
#purple {
  padding: 692px var(--pad-spacer) 0;
  box-sizing: content-box;
  background-image: linear-gradient(var(--color-purple), var(--color-purple-dark));
  height: 100%;
  flex: 1;
  color: var(--color-red);
  font-size: 12px;
  display: flex;
  flex-direction: column;
  align-items: end;
}
#purple > div {
  width: 176px;
}
#purple p {
  padding-top: 6px;
  display: block;
  width: 176px;
}
#green {
  padding: 692px var(--pad-spacer) 0;
  box-sizing: border-box;
  background-image: linear-gradient(var(--color-green), var(--color-green-dark));
  height: 100%;
  width: 240px;
  color: var(--color-purple);
}
#green .heading {
  margin-bottom: 11px;
}
#green .row {
  color: var(--color-tan-contrast);
  transition: color 0.2s;
  padding: 8px 0;
}
#green .row i {
  font-size: 20px;
  width: 32px;
  margin-right: 10px;
}
#green .row:hover {
  color: var(--color-tan);
}
#green .row > div {
  min-width: 32px;
  font-size: 14px;
}
#green a {
  line-height: 24px;
  font-weight: 600;
  transition: color 0.2s;
  color: var(--color-purple);
}
#green a > div {
  display: flex;
  flex-direction: row;
  align-items: center;
}
#green .row:hover > div {
  color: var(--color-tan);
}

/* HEADER */
#header {
  top: 60px;
  right: 0;
  position: absolute;
  width: 480px;
  text-transform: uppercase;
}
#header .description {
  color: var(--color-yellow);
  font-style: italic;
  font-weight: 600;
  font-size: 30px;
}
#header .name {
  font-size: 64px;
  font-weight: 600;
  line-height: 50px;
  font-family: 'Exo', sans-serif;
}
#header .name .first {
  color: var(--color-red);
}
#header .name .last {
  color: var(--color-tan);
}

/* Portrait */
#frame {
width: 480px;
height: 480px;
position: relative;
right: -20px;
}

#base {
  width: 100%;
 height: 100%;
 margin: 28px auto;
 border-radius: 50%;
 background: #b25244;
 background: linear-gradient(var(--color-yellow-dark), var(--color-red));
 position: relative;
 box-shadow:
   inset 0 2px 3px rgba(255,255,255,0.13),
   3px 3px 5px rgba(0,0,0,0.5);
}

#base:after {
  content: ""; 
 position: absolute;
 left: -20px;
 right: -20px;
 top: -20px;
 bottom: -20px;
 z-index: -2;
 border-radius: inherit;
 box-shadow:
   inset 0 1px 0 rgba(255,255,255,0.1),
   0 1px 2px rgba(0,0,0,0.3),
   0 0 10px rgba(0,0,0,0.15);
 
}

#base:before {
  content: ""; 
 position: absolute;
 left: -10px;
 right: -10px;
 top: -10px;
 bottom: -10px;
 z-index: -1;
 border-radius: inherit;
 box-shadow: inset 0 16px 16px rgba(0,0,0,0.13); 
 -webkit-filter:blur(1px);
 filter: blur(1px); 
}

#ring-outer {
 position: relative;
 width: calc(100% - 24px);
 height: calc(100% - 24px);
 left: 12px;
 top: 12px;
 border-radius: inherit;
 background: linear-gradient(135deg, var(--color-green) 33%, var(--color-green-grad));
 display: block;
 box-shadow:
   0 3px 5px rgba(255,255,255,0.05),
   0 3px 5px rgba(255,255,255,0.1);
}

#ring-outer:after {
  position: absolute;
 width: calc(100% - 32px);
 height: calc(100% - 32px);
 background: linear-gradient(135deg, var(--color-green) 33%, var(--color-green-grad-light) 67%, var(--color-green-dark));
 left: 50%;
 top: 50%;
 content: "";
 border-radius: inherit;
 margin: calc((100% - 32px) / 2 * -1) 0 0 calc((100% - 32px) / 2 * -1);
 box-shadow: 1px 1px rgba(128, 128, 128, 0.2);
} 

#ring-outer:before {
  position: absolute;
 content: "";
 width: calc(100% - 48px);
 height: calc(100% - 48px);
 left: 50%;
 top: 50%;
 border-radius: inherit;
 background: inherit;
 margin: calc((100% - 48px) / 2 * -1) 0 0 calc((100% - 48px) / 2 * -1);
 z-index: 2;
 box-shadow: inset 0 3px 5px rgba(0,0,0,0.3), 0 1px 2px rgba(255,255,255,1);
}

#ring-inner {
  width: calc(100% - 48px);
  height: calc(100% - 48px);
  position: relative;
  top: 24px;
  left: 24px;
  z-index: 2;
  border-radius: inherit;
  background: center / contain no-repeat url('assets/balbi.png');
}

#lines {
  position: absolute;
  z-index: 100;
  right: 260px;
  bottom: 60px;
  width: calc((100vw - 960px) / 2 + 240px);
  max-width: 480px;
  z-index: 0;
}
#lines .line {
  width: 100%;
  height: 4px;
  margin-bottom: 18px;
}
#lines .line.red {
  background: var(--color-red);
}
#lines .line.yellow {
  background: var(--color-yellow-dark);
}
#lines .line:nth-child(1) {
  height: 3px;
}
#lines .line:nth-child(3) {
  margin-bottom: 36px;
}

.heading {
  font-size: 20px;
  font-weight: 900;
  text-transform: uppercase;
  width: 100%;
  border-bottom: 2px solid;
}
#purple .heading {
  border-color: var(--color-yellow);
}
#green .heading {
  border-color: var(--color-red-dark);
}
#right .heading {
  color: var(--color-purple);
  border-color: var(--color-green);
  margin: 16px 0;
}

table {
  width: 100%;
}

.job-title, .project-title {
  color: var(--color-purple);
  font-size: 16px;
  font-weight: 600;
}
.company-name {
  font-weight: 400;
  color: var(--color-purple);
  text-transform: uppercase;
}
.company-location {
  font-weight: 300;
  color: var(--color-purple);
  font-style: italic;
  font-size: 9px;
  text-transform: uppercase;
}
.employment-date, .project-link {
  color: var(--color-red);
  font-weight: 600;
  text-transform: uppercase;
}

a, a:visited {
  color: currentColor;
  text-decoration: none;
}

.skills {
  margin: 16px 0;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}
.skills img {
  max-height: 48px;
  max-width: 48px;
}