/* Scss Document */
html {
  font-family: "Muli", sans-serif; }

body {
  height: 100vh;
  background: linear-gradient(#FFF, #FFF 20%, #cdcac6);
  margin: 0;
  background-attachment: fixed;
  font-family: "Muli", sans-serif;
  font-weight: 300;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

h1, h2 {
  font-family: "Raleway", sans-serif;
  letter-spacing: 0.1em;
  text-transform: uppercase; }

h1 {
  font-weight: 400; }

h2 {
  font-weight: 700;
  font-size: 1.3rem; }

p {
  font-size: 0.875rem;
  line-height: 1.5em;
  font-family: "Muli", sans-serif;
  font-weight: 300; }

.container {
  width: auto;
  padding: 0 1rem 1rem;
  display: block;
  overflow: auto;
  box-sizing: border-box;
  z-index: 0;
  min-height: 100vh;
  max-width: 1600px;
  margin: auto; }

.header {
  background: white;
  width: 100%;
  height: 140px;
  display: block;
  margin-bottom: 1rem; }

.headerblock {
  background: white;
  width: calc(100% - 2.875rem);
  padding: 0 1.4375rem;
  height: 140px;
  position: fixed;
  top: -20px;
  left: 0;
  z-index: 2;
  transition: 500ms cubic-bezier(0.17, 0.67, 0.48, 1); }

.minimise {
  height: 80px !important; }

.clearfix {
  clear: both;
  margin: 0;
  width: 100%; }

.diodelogo {
  position: relative;
  height: 60px;
  float: left;
  top: 42px;
  padding: 0;
  margin: 0;
  transition: 300ms cubic-bezier(0.17, 0.67, 0.48, 1);
  -webkit-transition: 300ms cubic-bezier(0.17, 0.67, 0.48, 1); }
  .diodelogo.collapse-top {
    top: 10px;
    margin-left: -13px; }

.diodelogo .logomark {
  width: 56px;
  height: 60px;
  margin-left: 0;
  background-image: url(../images/diode-logo-colour@2x.png);
  background-size: cover;
  background-position: left;
  display: inline-block;
  padding: 0;
  transform: scale(1);
  transition: 300ms cubic-bezier(0.17, 0.67, 0.48, 1); }

.diodelogo .logotext {
  width: 128px;
  height: 60px;
  background-image: url(../images/diode-logo-colour@2x.png);
  background-size: cover;
  background-position: right;
  display: inline-block;
  padding: 0;
  opacity: 1;
  transition: 300ms cubic-bezier(0.17, 0.67, 0.48, 1); }

.invisible {
  opacity: 0 !important; }

.item {
  position: relative;
  width: calc( 33.33% - 0.875rem );
  margin: 0.4375rem;
  float: left;
  animation: fadein .5s;
  box-sizing: border-box;
  min-height: 230px; }

.frame {
  position: absolute;
  background: #64696e;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  cursor: pointer;
  overflow: hidden; }

.item-wide {
  position: relative;
  width: calc( 66.66% - 0.875rem );
  float: left;
  margin: 0.4375rem;
  animation: fadein .5s;
  box-sizing: border-box;
  min-height: 230px; }

.frame-wide {
  position: absolute;
  background: #64696e;
  width: 100%;
  height: 100%;
  /*margin:1%;*/
  top: 0;
  left: 0;
  cursor: pointer;
  overflow: hidden; }

.grad-overlay, .imageoverlay, .ro-overlay, .title-overlay {
  position: absolute;
  width: 100%;
  height: 100%; }

.imageoverlay {
  transition: 300ms cubic-bezier(0.17, 0.67, 0.48, 1);
  -webkit-transition: 300ms cubic-bezier(0.17, 0.67, 0.48, 1);
  background-position: center;
  background-size: 100% auto; }
  .imageoverlay.poster-ratio {
    background-size: 100% auto; }
    .imageoverlay.poster-ratio.zoomin {
      background-size: 110% auto; }
  .imageoverlay.standard-ratio {
    background-size: 100% auto; }
    .imageoverlay.standard-ratio.zoomin {
      background-size: 120% auto; }

.tileborder {
  border: 1px solid #eee; }

.grad-overlay {
  background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.4));
  pointer-events: none; }

.ro-overlay {
  background: rgba(204, 38, 0, 0.9);
  opacity: 0;
  transition: 300ms cubic-bezier(0.17, 0.67, 0.48, 1);
  -webkit-transition: 300ms cubic-bezier(0.17, 0.67, 0.48, 1);
  pointer-events: none;
  margin-left: 0; }

.title-overlay {
  pointer-events: none;
  transition: 300ms cubic-bezier(0.17, 0.67, 0.48, 1);
  -webkit-transition: 300ms cubic-bezier(0.17, 0.67, 0.48, 1);
  margin-left: 0px;
  opacity: 0; }

.fadeinanim {
  animation: fadein 1s; }

.title-overlay h1 {
  position: absolute;
  margin: 5px 15px;
  color: white;
  bottom: 10px;
  font-size: 1.5em; }

.footer {
  width: auto;
  padding: 0 1.4375rem;
  display: block;
  box-sizing: border-box;
  text-align: center;
  min-height: 60px;
  margin: auto;
  max-width: 1600px; }
  .footer .loader-icon {
    margin: 1rem auto;
    width: 50px;
    height: 50px;
    overflow: hidden;
    animation: scaler 1s cubic-bezier(0, 0.62, 0.34, 1);
    opacity: 0.5;
    transition: 0.4s;
    -webkit-transition: 0.4s; }
  .footer p {
    border-top: 1px dashed white;
    padding-top: 1rem;
    margin: 1rem 0;
    font-size: 0.75rem; }

#line1, #line2 {
  opacity: 0; }

#line1 {
  animation: fadeinDrop 0.4s 3s forwards ease-out; }

#line2 {
  animation: fadein 0.4s 3.25s forwards ease-out; }

/*--------- Loader icon ---------*/
/*-------------------------------*/
.image-loader-icon {
  position: absolute;
  left: 50%;
  margin-left: -25px;
  width: 50px;
  height: 50px;
  overflow: hidden;
  animation: scaler 1s cubic-bezier(0, 0.62, 0.34, 1);
  opacity: 0.5;
  transition: 0.4s;
  -webkit-transition: 0.4s;
  top: 50%;
  margin-top: -25px; }

.inner-circuit {
  background: url(../images/inner-circ2.png) center center no-repeat;
  animation: rotatecounter 1s linear infinite;
  opacity: .3; }

.outer-circuit {
  background: url(../images/outer-circ2.png) center center no-repeat;
  animation: rotateclock .75s linear infinite;
  opacity: .3; }

.inner-circuit-white {
  background: url(../images/inner-circ2-white.png) center center no-repeat;
  animation: rotatecounter 1s linear infinite;
  opacity: 1; }

.outer-circuit-white {
  background: url(../images/outer-circ2-white.png) center center no-repeat;
  animation: rotateclock .75s linear infinite;
  opacity: 1; }

.inner-circuit, .outer-circuit, .inner-circuit-white, .outer-circuit-white {
  position: absolute;
  width: 50px;
  height: 50px;
  background-size: 100%; }

/*--------- Single project overlay ---------*/
/*---------------------------------*/
.OLcontainer {
  position: fixed;
  width: 100%;
  height: 100%;
  background: white;
  top: 0px;
  left: 100%;
  transition: 300ms cubic-bezier(0.17, 0.67, 0.48, 1);
  font-family: "Muli", sans-serif;
  font-weight: 100;
  overflow: auto;
  padding-bottom: 5rem;
  box-sizing: border-box;
  z-index: 3; }
  .OLcontainer.active {
    left: 0px; }
  .OLcontainer.dark {
    background: linear-gradient(#4b5055 0%, #323334 80%, #262728 100%); }
    .OLcontainer.dark .projDetails h2 {
      color: white; }
    .OLcontainer.dark .projText {
      color: white; }
      .OLcontainer.dark .projText li::before {
        color: white; }
      .OLcontainer.dark .projText a:hover {
        background: white; }
    .OLcontainer.dark .tileborder {
      border-color: #666; }

.OLheader {
  width: 100%;
  height: 70px;
  padding: 1rem;
  box-sizing: border-box; }

.OLcontent {
  width: 100%;
  min-height: 100vh;
  padding: 1rem;
  box-sizing: border-box;
  max-width: 1600px;
  margin: auto; }
  .OLcontent .projDetails {
    width: 99%;
    margin: 0.5rem; }
    .OLcontent .projDetails h2 {
      margin-left: 15px; }
  .OLcontent .heroimg, .OLcontent .projimg, .OLcontent .projimg-half {
    position: relative;
    float: left;
    margin: 0.5rem;
    animation: fadein .5s;
    background-size: cover;
    background-color: #CC2600; }
  .OLcontent .heroimg {
    width: calc( 66.66% - 1rem );
    height: 500px; }
  .OLcontent .projimg {
    width: calc( 33.33% - 1rem );
    height: 300px; }
  .OLcontent .projimg-half {
    width: calc( 16.66% - 1rem );
    height: 300px; }
  .OLcontent .projText {
    position: relative;
    width: calc( 33.33% - 1rem );
    float: left;
    background-size: cover;
    margin: 0.5rem 0.5rem 2rem;
    animation: fadein .5s;
    border-top: solid 1px #889088; }
    .OLcontent .projText p, .OLcontent .projText a {
      margin: 15px; }
    .OLcontent .projText ul {
      font-size: 0.875rem;
      padding-left: 15px;
      list-style: none; }
      .OLcontent .projText ul li {
        margin-top: 0.5rem; }
        .OLcontent .projText ul li::before {
          content: '> ';
          color: #555955; }
    .OLcontent .projText a {
      color: white;
      background-color: #CC2600;
      padding: 0.2rem;
      text-decoration: none;
      line-height: 2;
      transition: all 0.2s ease-in-out;
      font-size: 0.875rem; }
      .OLcontent .projText a:hover {
        background-color: #2e3338;
        color: #ff3d33; }

.closeBtn {
  position: absolute;
  width: 50px;
  height: 50px;
  top: 42px;
  right: 1.4375rem;
  border: 1px solid #CC2600;
  cursor: pointer; }
  .closeBtn .closebg {
    position: absolute;
    width: 50px;
    height: 50px;
    background: #CC2600;
    transform: scale(0);
    transition: 150ms ease-in-out; }
    .closeBtn .closebg.close-ro {
      transform: scale(1); }
  .closeBtn .cross {
    position: absolute;
    width: 50px;
    height: 50px;
    top: 50%;
    left: 50%;
    margin-left: -25px;
    margin-top: -25px; }
    .closeBtn .cross.spin {
      animation: rotatestroke1 .3s ease-in-out; }
      .closeBtn .cross.spin .crossStrokeOne, .closeBtn .cross.spin .crossStrokeTwo {
        background-color: white; }
    .closeBtn .cross .crossStrokeOne, .closeBtn .cross .crossStrokeTwo {
      position: absolute;
      background-color: #CC2600;
      width: 2px;
      height: 20px;
      top: 50%;
      left: 50%;
      margin-left: -1px;
      margin-top: -10px; }
    .closeBtn .cross .crossStrokeOne {
      transform: rotate(45deg); }
    .closeBtn .cross .crossStrokeTwo {
      transform: rotate(-45deg); }

.arrow {
  height: 20px;
  position: absolute;
  bottom: 20px;
  left: -40px;
  transition: 300ms cubic-bezier(0.17, 0.67, 0.48, 1); }

/*--------- about overlay ---------*/
/*---------------------------------*/
.aboutoverlay {
  width: 100vw;
  height: 0vh;
  background: linear-gradient(#4b5055, #7d8287);
  position: fixed;
  top: 0;
  z-index: 1;
  transition: 300ms cubic-bezier(0.17, 0.67, 0.48, 1);
  overflow: hidden;
  color: white; }
  .aboutoverlay .gridlines {
    width: 100%;
    max-width: 1200px;
    left: 50%;
    transform: translate(-50%, 0);
    border-left: #CCC dashed 1px;
    opacity: 0.2; }
    .aboutoverlay .gridlines .grid-column {
      margin: 0;
      padding: 0;
      width: calc( 8.33% - 1px );
      height: 100vh;
      border-right: #CCC dashed 1px;
      display: inline-block; }
  .aboutoverlay a {
    color: #ff3d33;
    background-color: #2e3338;
    padding: 0.2rem;
    text-decoration: none;
    line-height: 2;
    transition: all 0.2s ease-in-out; }
    .aboutoverlay a:hover {
      background-color: white;
      color: #CC2600; }
  .aboutoverlay h2 {
    color: #91969b; }

.wireframebg {
  width: 100vw;
  position: absolute;
  z-index: -3;
  top: 0; }

.genContainer {
  position: absolute;
  top: 0;
  width: 100%;
  max-width: 1200px;
  margin: auto;
  margin-top: calc( 100vh / 3.6 );
  left: 50%;
  transform: translate(-50%, 0); }
  .genContainer h2 {
    margin-left: 8.33%;
    border-left: 5px solid #91969b;
    padding-left: 0.4375rem; }

.column {
  display: inline-grid; }
  .column.left-col {
    width: 41.66%;
    margin-left: 8.33%; }
  .column.right-col {
    width: 24.99%; }
    .column.right-col h2 {
      margin-left: -11px; }
  .column .content {
    margin: 0 2rem 0 0.625rem; }

.about {
  display: block;
  font-family: "Merriweather", serif;
  font-size: 1.8rem;
  line-height: 2.6rem;
  widows: 3; }

.contact-no {
  margin-top: 0; }

/*---------- menu ----------*/
/*--------------------------*/
.menuoverlay {
  position: fixed;
  background: rgba(204, 38, 0, 0.9);
  height: 100vh;
  width: 100%;
  left: -100%;
  top: 140px;
  transition: 300ms cubic-bezier(0.17, 0.67, 0.48, 1);
  z-index: 2; }

.menuoverlaymin {
  top: 80px !important; }

.menu {
  position: relative;
  list-style: none;
  width: 100%;
  padding: 0;
  margin: 40px 0; }

.menuitem {
  line-height: 7em;
  width: 100%;
  text-align: center;
  display: block;
  opacity: 0;
  transition: 300ms cubic-bezier(0.17, 0.67, 0.48, 1);
  margin-left: -200px; }

.itemshow {
  opacity: 1;
  margin-left: 0px; }

.menuItemText {
  cursor: pointer;
  width: fit-content;
  margin: auto;
  transition: 300ms cubic-bezier(0.17, 0.67, 0.48, 1);
  color: white;
  opacity: 1;
  display: inline-block; }

.menuItemText:hover {
  transform: scale(0.9); }

.menuitem span {
  vertical-align: middle;
  font-size: 4em;
  letter-spacing: 0.1em;
  text-transform: uppercase; }

.navline {
  width: 0px;
  height: 1px;
  border-bottom: 1px solid white;
  display: inline-block;
  transition: 300ms cubic-bezier(0.17, 0.67, 0.48, 1); }

.menuicon {
  position: relative;
  width: 50px;
  height: 50px;
  background: none;
  transition: 300ms cubic-bezier(0.17, 0.67, 0.48, 1);
  border: 1px solid #CC2600;
  cursor: pointer;
  top: 42px;
  float: right; }
  .menuicon .menubg {
    position: absolute;
    width: 50px;
    height: 50px;
    background-color: #CC2600;
    transform: scale(0);
    transition: 150ms ease-in-out; }
  .menuicon.alt {
    border-color: white; }
    .menuicon.alt .menuinner .stroke {
      background-color: white; }
  .menuicon:hover .menubg {
    transform: scale(1); }
  .menuicon:hover .menuinner .stroke {
    background-color: white; }
  .menuicon.collapse-top {
    top: 15px; }
  .menuicon .menuinner {
    position: absolute;
    top: 14px;
    left: 14px;
    width: 22px;
    height: 22px; }
    .menuicon .menuinner .stroke {
      position: absolute;
      width: 22px;
      height: 2px;
      background-color: #CC2600;
      transition: .2s; }

.menuclose {
  position: absolute;
  top: 14px;
  left: 14px;
  width: 22px;
  height: 22px;
  transform: scale(0); }

#upper {
  top: 17px; }

#bottom {
  bottom: 17px; }

#middle {
  top: 10px; }

#crossleft {
  transform: rotate(45deg);
  top: 13px; }

#crossright {
  transform: rotate(-45deg);
  top: 13px; }

.nojs {
  font-family: "Gill Sans", "Gill Sans MT", "Myriad Pro", "DejaVu Sans Condensed", Helvetica, Arial, "sans-serif";
  font-size: 13px;
  color: grey; }

.menuspin {
  -webkit-animation: spinshrink 0.3s forwards;
  -moz-animation: spinshrink 0.3s forwards;
  -o-animation: spinshrink 0.3s forwards;
  animation: spinshrink 0.3s forwards; }

.closespin {
  -webkit-animation: spingrow 0.3s forwards;
  -moz-animation: spingrow 0.3s forwards;
  -o-animation: spingrow 0.3s forwards;
  animation: spingrow 0.3s forwards;
  animation-delay: 0.2s forwards; }

/*-- Animation --*/
@keyframes rotateloader {
  from {
    transform: rotate(0deg); }
  to {
    transform: rotate(360deg); } }
@keyframes fadein {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
@keyframes fadeinDrop {
  from {
    opacity: 0;
    margin-top: 0px; }
  to {
    opacity: 1;
    margin-top: 5px; } }
@keyframes rotateclock {
  from {
    transform: rotate(0deg); }
  to {
    transform: rotate(360deg); } }
@keyframes rotatecounter {
  from {
    transform: rotate(360deg); }
  to {
    transform: rotate(0deg); } }
@keyframes scaler {
  from {
    transform: scale(0, 0); }
  to {
    transform: scale(1, 1); } }
@keyframes rotatestroke1 {
  from {
    transform: rotate(0deg); }
  to {
    transform: rotate(180deg); } }
@-webkit-keyframes spinshrink {
  0% {
    transform: rotate(0deg) scale(1); }
  100% {
    transform: rotate(180deg) scale(0); } }
@-moz-keyframes spinshrink {
  0% {
    transform: rotate(0deg) scale(1); }
  100% {
    transform: rotate(180deg) scale(0); } }
@keyframes spinshrink {
  0% {
    transform: rotate(0deg) scale(1); }
  100% {
    transform: rotate(180deg) scale(0); } }
@-webkit-keyframes spingrow {
  0% {
    transform: rotate(0deg) scale(0); }
  100% {
    transform: rotate(180deg) scale(1); } }
@-moz-keyframes spingrow {
  0% {
    transform: rotate(0deg) scale(0); }
  100% {
    transform: rotate(180deg) scale(1); } }
@keyframes spingrow {
  0% {
    transform: rotate(0deg) scale(0); }
  100% {
    transform: rotate(180deg) scale(1); } }
@media screen and (max-width: 1024px) {
  .item-wide {
    width: calc( 100% - 0.875rem );
    min-height: 200px; }

  .item {
    width: calc( 50% - 0.875rem );
    min-height: 200px; }

  .imageoverlay h1 {
    font-size: 1.8em; }

  .OLcontent .projText, .OLcontent .heroimg {
    width: calc( 100% - 1rem ); }
  .OLcontent .projimg {
    width: calc( 50% - 1rem ); }
  .OLcontent .projimg-half {
    width: calc( 25% - 1rem ); }

  .aboutoverlay {
    overflow-y: auto;
    overflow-x: hidden; }
    .aboutoverlay .genContainer .column {
      width: 83.34%; }
      .aboutoverlay .genContainer .column.right-col {
        margin-left: 8.33%;
        margin-bottom: 7rem; }
      .aboutoverlay .genContainer .column .content {
        margin-right: 0; } }
@media screen and (max-width: 610px) {
  .headerblock {
    width: calc(100% - 2rem);
    padding: 0 1rem; }

  .item, .item-wide {
    width: 100%;
    margin: 0.4375rem 0; }

  .item {
    min-height: 200px; }

  .item-wide {
    min-height: 230px; }

  .imageoverlay.poster-ratio {
    background-size: auto 100%; }
    .imageoverlay.poster-ratio.zoomin {
      background-size: auto 110%; }
  .imageoverlay h1 {
    font-size: 1.6em; }

  .menuitem span {
    font-size: 3em; }

  .OLcontent .projDetails {
    margin: 0; }
    .OLcontent .projDetails h2 {
      margin-left: 0; }
  .OLcontent .heroimg, .OLcontent .projimg {
    height: 250px; }
  .OLcontent .projText, .OLcontent .heroimg, .OLcontent .projimg {
    width: 100%;
    margin: 0.5rem 0; }
  .OLcontent .projimg-half {
    width: 50%;
    margin: 0.5rem 0; }
  .OLcontent .projText {
    margin-bottom: 1rem; }
    .OLcontent .projText p {
      margin-left: 0; }
    .OLcontent .projText ul {
      padding-left: 0px; }
    .OLcontent .projText a {
      margin: 0; }

  .aboutoverlay {
    overflow-y: auto;
    overflow-x: hidden; }
    .aboutoverlay .genContainer {
      margin-top: calc( 100vh / 5 ); }
      .aboutoverlay .genContainer .column {
        width: 83.34%; }
        .aboutoverlay .genContainer .column.right-col {
          margin-left: 8.33%;
          margin-bottom: 7rem; } }
@media screen and (max-width: 400px) {
  .item, .item-wide {
    width: 100%;
    margin: 0.4375rem 0; }

  .imageoverlay h1 {
    font-size: 1.8em; }

  .OLcontent .projDetails {
    margin: 0; }
    .OLcontent .projDetails h2 {
      margin-left: 0; }
  .OLcontent .heroimg, .OLcontent .projimg {
    height: 250px; }
  .OLcontent .projText, .OLcontent .heroimg, .OLcontent .projimg {
    width: 100%;
    margin: 0.5rem 0; }
  .OLcontent h2 {
    margin-left: 0; } }
@media only screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) {
  .item, .item-wide {
    width: 100%;
    margin: 0.4375rem 0; }

  .imageoverlay h1 {
    font-size: 1.8em; }

  .header {
    height: 120px; }

  .headerblock {
    height: 120px; }

  .diodelogo {
    top: 32px; }

  .menuicon {
    top: 32px; }

  .menuoverlay {
    top: 120px; }

  .OLcontent .projDetails {
    margin: 0; }
    .OLcontent .projDetails h2 {
      margin-left: 0; }
  .OLcontent .heroimg, .OLcontent .projimg {
    height: 250px; }
  .OLcontent .projText, .OLcontent .heroimg, .OLcontent .projimg {
    width: 100%;
    margin: 0.5rem 0; }
  .OLcontent .projText {
    margin-bottom: 1rem; }
  .OLcontent h2 {
    margin-left: 0; } }
