@page{
    size: letter portrait;
    margin: 0;
  }
  
  *{
    box-sizing: border-box;
  }
  
  :root{
    --page-width: 12.1in;
    --page-height: 9in;
    --main-width: 9.3in;
    --sidebar-width: calc(var(--page-width) - var(--main-width));
    --decorator-horizontal-margin: 0.2in;
  
    --sidebar-horizontal-padding: 0.2in;
  
    /* XXX: using px for very good precision control */
    --decorator-outer-offset-top: 10px;
    --decorator-outer-offset-left: -5.5px;
    --decorator-border-width: 1px;
    --decorator-outer-dim: 9px;
    --decorator-border: 1px solid #ccc;
  
    --row-blocks-padding-top: 5pt;
    --date-block-width: 0.6in;
  
    --main-blocks-title-icon-offset-left: -19pt;
  }
  
  body{
    width: var(--page-width);
    height: var(--page-height);
    margin: 0;
    font-family: "Open Sans", sans-serif; 
    font-weight: 300;
    line-height: 1.6;
    color: #444;
    hyphens: auto;
  }

  img {
    height: 230px;
    width: 190px;
    display: inline-block;
    border-radius: 30%;
    border: solid #b3e5fc 9px;
  }


  .name {
    display: inline-block;
    padding-left: 5px;
    text-align: center;
  }

  .softdev {
    font-weight: 400;
    font-size: 11pt;
    color: #555;
    padding-left: 80px;
  }
  
  h1, h2, h3{
    margin: 0;
    color: #000;
  }
  
  li{
    list-style-type: none;
  }
  
  #main{
    float: left;
    width: var(--main-width);
    padding: 0.25in 0.25in 0 0.25in;
    font-size: 7pt;
  }
  
  #sidebar{
    float: right;
    position: relative; /* for disclaimer */
    width: var(--sidebar-width);
    height: 100%;
    padding: 0.6in var(--sidebar-horizontal-padding);
    background-color: #b3e5fc;
    font-size: 8.5pt;
  }
  
  /* main */
  
  /** big title **/
  #title, h1, h2{
    text-transform: uppercase;
  }
  
  #title{
    position: relative;
    left: 0.55in;
    margin-bottom: 0.3in;
    line-height: 1.2;
  }
  
  #title h1{
    font-weight: 300;
    font-size: 18pt;
    line-height: 1.5;
  }
  
  #title h1 strong{
    margin: auto 2pt auto 4pt;
    font-weight: 600;
  }
  
  .subtitle{
    font-size: 8pt;
  }
  
  /*** categorial blocks ***/
  
  .main-block{
    margin-top: 0.1in;
    padding-left: 150px;
  }
  
  #main h2{
    position: relative;
    top: var(--row-blocks-padding-top);
    /* XXX: 0.5px for aligning fx printing */
    left: calc((var(--date-block-width) + var(--decorator-horizontal-margin)));
    font-weight: 400;
    font-size: 15pt;
    color: #555;
  }
  
  #main h2 > i{
    /* use absolute position to prevent icon's width from misaligning title */
    /* assigning a fixed width here is no better due to needing to align decorator
       line too */
    position: absolute;
    left: var(--main-blocks-title-icon-offset-left);
    z-index: 1; /* over decorator line */
    color: #444;
  }
  
  #main h2::after{ /* extends the decorator line */
    height: calc(var(--row-blocks-padding-top) * 2);
    position: relative;
    top: calc(-1 * var(--row-blocks-padding-top));
    /* XXX: 0.5px for aligning fx printing */
    left: calc(-1 * var(--decorator-horizontal-margin));
    display: block;
    border-left: var(--decorator-border);
    z-index: 0;
    line-height: 0;
    font-size: 0;
    content: ' ';
  }
  
  /**** minor tweaks on the icon fonts ****/
  #main h2 > .fa-graduation-cap{
    left: calc(var(--main-blocks-title-icon-offset-left) - 2pt);
    top: 2pt;
  }
  
  #main h2 > .fa-suitcase{
    top: 1pt;
  }
  
  #main h2 > .fa-folder-open{
    top: 1.5pt;
  }

  .fa-phone, .fa-globe, .fa-envelope {
    margin-right: 5px;
  }
  
  /**** individual row blocks (date - decorator - details) ****/
  
  .blocks{
    display: flex;
    flex-flow: row nowrap;
  }
  
  .blocks > div{
    padding-top: var(--row-blocks-padding-top);
  }
  
  .date{
    flex: 0 0 var(--date-block-width);
    padding-top: calc(var(--row-blocks-padding-top) + 2.5pt) !important;
    padding-right: var(--decorator-horizontal-margin);
    font-size: 7pt;
    text-align: right;
    line-height: 1.5;
  }
  
  .date span{
    display: block;
  }
  
  .date span:nth-child(2)::before{
    position: relative;
    top: 1pt;
    right: 5.5pt;
    display: block;
    height: 10pt;
  
  }
  
  .decorator{
    flex: 0 0 0;
    position: relative;
    width: 2pt;
    min-height: 100%;
    border-left: var(--decorator-border);
  }
  
  /*
   * XXX: Use two filled circles to achieve the circle-with-white-border effect.
   * The normal technique of only using one pseudo element and
   * border: 1px solid white; style makes firefox erroneously either:
   * 1) overflows the grayshade background (if no background-clip is set), or
   * 2) shows decorator line which should've been masked by the white border
   *
   */
  
  .decorator::before{
    position: absolute;
    top: var(--decorator-outer-offset-top);
    left: var(--decorator-outer-offset-left);
    content: ' ';
    display: block;
    width: var(--decorator-outer-dim);
    height: var(--decorator-outer-dim);
    border-radius: calc(var(--decorator-outer-dim) / 2);
    background-color: #fff;
  }
  
  .decorator::after{
    position: absolute;
    top: calc(var(--decorator-outer-offset-top) + var(--decorator-border-width));
    left: calc(var(--decorator-outer-offset-left) + var(--decorator-border-width));
    content: ' ';
    display: block;
    width: calc(var(--decorator-outer-dim) - (var(--decorator-border-width) * 2));
    height: calc(var(--decorator-outer-dim) - (var(--decorator-border-width) * 2));
    border-radius: calc((var(--decorator-outer-dim) - (var(--decorator-border-width) * 2)) / 2);
    background-color: #555;
  }
  
  .blocks:last-child .decorator{ /* slightly shortens it */
    margin-bottom: 0.25in;
  }
  
  /***** fine-tunes on the details block where the real juice is *****/
  
  .details{
    flex: 1 0 0;
    padding-left: var(--decorator-horizontal-margin);
    padding-top: calc(var(--row-blocks-padding-top) - 0.5pt) !important; /* not sure why but this is needed for better alignment */
  }
  
  .details header{
    color: #000;
  }
  
  .details h3{
    font-size: 12pt;
  }
  
  .main-block:not(.concise) .details div{
    margin: 0.18in 0 0.1in 0; 
  }
  
  .main-block:not(.concise) .blocks:last-child .details div{
    margin-bottom: 0;
  }
  
  .main-block.concise .details div:not(.concise){
    /* use padding to work around the fact that margin doesn't affect floated
       neighboring elements */
    padding: 0.05in 0 0.07in 0;
  }
  
  .details .place{
    float: left;
    font-size: 9pt;
  }
  
  .details .location{
    float: right;
    font-size: 9pt;
  }
  
  .details div{
    clear: both;
  }
  
  .details .location::before{
    display: inline-block;
    position: relative;
    right: 3pt;
    top: 0.25pt;
    font-family: FontAwesome;
    font-weight: normal;
    font-style: normal;
    text-decoration: inherit;
    content: "\f041";
  }
  
  /***** fine-tunes on the lists... *****/
  
  #main ul{
    padding-left: 0.07in;
    margin: 0.08in 0;
  }
  
  #main li{
    margin: 0 0 0.025in 0;
    font-size: 10pt;
  }
  
  /* ***** customize list symbol style *****
  #main li::before{
    position: relative;
    margin-left: -4.25pt;
    content: '•';
  }
   */
  .details .concise ul{
    margin: 0 !important;
    -webkit-columns: 2;
    -moz-columns: 2;
    columns: 2;
  }
  
  .details .concise li{
    margin: 0 !important;
  }
  
  .details .concise li{
    margin-left: 0 !important;
  }
  
  
  
  /* sidebar */

  
  
  #sidebar h1{
    font-weight: 400;
    font-size: 15pt;
  }
  
  .side-block{
    margin-top: 0in; 
  }
  
  #contact ul{
    margin-top: 0.25in;
    padding-left: 0;
    font-family: "Source Code Pro";
    font-weight: 400;
    line-height: 2;
    font-size: medium;
  }
  
  #contact li > i{
    width: 9pt; /* for text alignment */
    text-align: right;
  }
  
  #skills{
    line-height: 2.1;
    font-size: 9.5pt;
  }
  
  #skills ul{
    margin: 0.05in 0 0.15in;
    padding: 0;
  }
  
