@import "fonts.css";
@import "animations.css";

body, html {
  background-color: #D4D3D2;
  color: #105769;
  font-family: 'Bliss2Light', 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, sans-serif;
  font-size-adjust: 0.47;
  font-weight: 200;
  font-style: normal;
  font-size: .9em;
  margin: 0;
  padding: 0;
  height: 100%;
  width: 100%;
  overflow: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  box-shadow: inset 0 0 0 1em rgba(255,255,255,0);
  background: #d4d3d2 url("../img/poly_bg.jpg") no-repeat;
  background-size: cover;
  box-sizing: border-box;
}

* { box-sizing: border-box; }

::selection {
  color: #105769;
  background: #fff;
}

html, input, textarea, button, select, a {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

a:link, a:visited {
  position: relative;
  text-decoration: none;
  color: inherit;
  transform: scale(1.0);
  transition: all .2s ease-in-out;
}

a:hover, a:active { color: inherit; }

a:before {
  content: "";
  position: absolute;
  width: 100%; /* 106 */
  height: 2px;
  bottom: -2px;
  left: 0; /* -11px */
  background-color: white;
  visibility: hidden;
  -webkit-transform: scaleX(0);
  transform: scaleX(0);
  -webkit-transition: all 0.2s ease-in-out 0s;
  transition: all 0.2s ease-in-out 0s;
}

a:hover:before,
a.hovered:before {
  visibility: visible;
  -webkit-transform: scaleX(1);
  transform: scaleX(1);
}

.hide { display: none; }
*:focus { outline: none; }

strong {
  font-family: 'BlissRegular', 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, sans-serif;
}

.main {
  width: 100%;
  height: 100%;
  display: block;
  text-align: center;
  position: absolute;
}

.content {
  position: absolute;
  display: block;
  width: 100%;
  height: 0;
  max-height: 0;
  bottom: 0px;
  background-color: #105769;
  transition: all 1.7s cubic-bezier(0, 1, 0.5, 1);
  overflow: hidden;
}

.contact .content {
  bottom: 0;
  width: 100%;
  height: calc(58% + 1.4em);
  max-height: calc(58% + 1.4em);
  transition: 1s cubic-bezier(0, 1, 0.5, 1);
}

.frametop, .framebottom, .frameleft, .frameright {
  position: fixed;
  display: block;
  background-color: #fff;
  z-index: 1000;
}
.frametop    { width: 100%; height: 1em; top: 0; }
.framebottom { width: 100%; height: 1em; bottom: 0; }
.frameleft   { width: 1em; height: 100%; top: 0; left: 0; }
.frameright  { width: 1em; height: 100%; top: 0; right: 0; }

h1 {
  position: absolute;
  left: 48%;
  left: calc(49% - 3em);
  bottom: 66%;
  font-family: 'BlissRegular', 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, sans-serif;
  font-size: 3em;
  font-weight: 600;
  margin-bottom: 10px;
  text-transform: uppercase;
  letter-spacing: .01em;
  transform: translateZ(0) scale(1.0, 1.0);
}

h2 {
  position: absolute;
  left: 49%;
  left: calc(49% - 2.8em);
  bottom: 63.5%;
  font-family: 'Bliss2Light', 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, sans-serif;
  font-size: 2.2em;
  font-weight: 100;
  letter-spacing: .02em;
  margin: 0;
  transform: translateZ(0) scale(1.0, 1.0);
  z-index: 999;
}

/* Signet */
.logo {
  position: absolute;
  left: 49%;
  top: calc(50% - 90px);
  margin-left: -75px;
  font-size: 11em;
  line-height: 1em;
  transform: translateZ(0) scale(1.0, 1.0);
  animation: anim-intro 3s 3s infinite alternate;
}

.logo a {
  display: block;
  color: #D4D3D2;
  width: 1em;
  height: 1em;
}

.logo a::before {
  display: none;
}

.logo svg {
  width: 1em;
  height: 1em;
  fill: currentColor;
}

.logo span {
  display: none
}

.logo:hover {
  -webkit-animation: anim-scale 1s 1;
  -moz-animation: anim-scale 1s 1;
  -o-animation: anim-scale 1s 1;
  animation: anim-scale 1s 1;
  cursor: pointer
}
.contact .logo {
  animation: anim-home .6s .1s 1 ease-out forwards;
}
.reverse .logo {
  animation: anim-home-back .7s 1 ease forwards;
  transition-delay: 0s;
}
.contact h1 {
  animation: anim-h1 1s 1 ease forwards;
}
.reverse h1 {
  animation: anim-h1-back .7s 1 ease forwards;
}
.contact h2 {
  animation: anim-h2 1s 1 ease forwards;
}
.reverse h2 {
  animation: anim-h2-back .7s 1 ease forwards;
}

/* Info Box */
.info {
  color: #D4D3D2;
  width: 400px;
  font-size: 1.6em;
  line-height: 2.4em;
  transition: all .5s .6s ease;
  opacity: 0;
  margin-top: 100px;
  position: relative;
  left: calc(50vw - 200px);
}

.contact .info { opacity: 1; }

.info p {
  margin: 0;
  padding: 0;
  display: block;
}

.info p.quote {
  text-transform: uppercase;
  min-width: 700px !important;
  font-family: "Bliss2Light";
  font-weight: 100;
  margin: -30px 0 30px calc(200px - 375px)
}

.quote::before, p.quote::after {
  content: "“";
  font-size: 3em;
  vertical-align: text-top;
  opacity: .4;
}

p.quote::after {
  content: "”";
}

/* Inline SVG icons in info rows */
.info p svg.ic {
  font-size: 2em;
  width: 1em;
  height: 1em;
  line-height: 1.1em;
  vertical-align: middle;
  fill: currentColor;
  margin-right: 3px;
  border: 2px solid transparent;
  border-radius: 100px;
  padding-top: 1px;
  box-sizing: content-box;
}

.info p.paused:not(.quote):hover svg.ic,
.info p.linky svg.ic {
  border: 2px solid white;
}

p.inf svg.ic { font-size: 2.85em; }

p.mail a {
  unicode-bidi: bidi-override;
  direction: rtl;
}

p.mail a::before { width: 106%; left: -11px; }
p.loc a::before  { width: 103%; left: -11px; }

p.loc span { color: #105769; margin-right: -2px; }
p.loc span::before { content: "°"; color: #D4D3D2; vertical-align: sub; }

p.inf { font-size: .7em; opacity: 0.7; }

.readme {
  transform: translate(365px, -55px);
  padding: 20px 5px 5px 5px;
  margin-bottom: -60px;
  font-size: .8em;
  line-height: 1em;
  text-align: center;
  vertical-align: middle;
  border-radius: 50px;
  background-color: rgba(151, 166, 168, 0.33);
  width: 60px;
  height: 60px;
  cursor: pointer;
  color: #fff;
  text-decoration: underline;
  letter-spacing: .1;
}

/* User info */
.close {
  position: absolute;
  left: calc(50vw + 425px);
  top: 5%;
  display: inline-block;
  width: 40px;
  height: 40px;
  overflow: hidden;
  cursor: pointer;
}

.close:hover::before, .close:hover::after { background: #fff; height: 2px; }

.close::before, .close::after {
  content: '';
  position: absolute;
  height: 1px;
  width: 100%;
  top: 50%;
  left: 0;
  margin-top: -1px;
  background: #D4D3D2;
}

.close::before { transform: rotate(45deg); }
.close::after  { transform: rotate(-45deg); }

.userinfo {
  color: #D4D3D2;
  width: 900px;
  font-size: 1.3em;
  line-height: 1.5em;
  position: absolute;
  top: 30px;
  left: 100vw;
  opacity: 0;
  overflow-y: auto;
  transition: all .1s .6s ease;
}

.outleft {
  transition: left .7s ease;
  left: calc(-100vw);
}

.inleft {
  transition: left .2s .7s ease;
  left: calc(50vw - 450px);
  opacity: 1;
}

.userinfo h3 {
  text-transform: uppercase;
  font-weight: 200;
  margin-bottom: -5px;
}

ul {
  width: 100%;
  padding: 0 0 0 18px;
  margin: 0 0 20px -1em;
  columns: 2;
  list-style-position: outside;
}

li {
  line-height: 1.5em;
  padding-left: .2em;
  margin-left: 1em;
}

.userinfo p:last-child { margin-bottom: 20px; }

@media only screen and (max-width: 667px) and (orientation: portrait) {
  h1 { bottom: 66%; font-size: 20px !important; }
  h2 { bottom: 62.5%; font-size: 16px !important; }
  .logo { bottom: 38%; }
  .info { font-size: 1.3em; line-height: 1em; margin-top: 30px; width: 86%; left: calc(50vw - 43%); }
  p.quote::before, p.quote::after { font-size: 2em; line-height: .7em; }
  p.quote a.hovered::before, p.quote a:hover::before { visibility: hidden; }
  p.quote a.hovered, p.quote a:hover { text-decoration: underline; }
  .info p.quote { text-align: center; font-size: 1.2em; min-width: 10% !important; width: 100%; margin: 0 0 30px 0; }
  .info p svg.ic { font-size: 2.3em; padding-left: 1px; }
  p.inf { font-size: 1em; padding-left: 51px; text-indent: -3px; }
  p.inf svg.ic { font-size: 2.3em; margin-left: -48px; }
  .userinfo { width: 88%; padding: 0 10px; top: 0px; height: 100%; }
  .userinfo h3 { font-size: 1em; }
  .outleft { left: -120%; }
  .inleft { left: calc(50vw - 45%); }
  .close { left: calc(50vw + 33%); }
  ul { columns: 1; }
}

@media only screen and (max-width: 667px) and (orientation: landscape) {
  h1 { bottom: 60%; }
  h2 { bottom: 52.5%; }
  .logo { top: 50%; }
  .info { font-size: 1em; line-height: 1.5em; margin-top: 15px; width: 90%; left: calc(50vw - 45%); }
  p.quote::before, p.quote::after { font-size: 2em; line-height: .7em; }
  .info p.quote { text-align: center; font-size: 1.4em; min-width: 10% !important; width: 100%; margin: 0 0 20px 0; }
  a.hovered::before { transform: scaleX(2); overflow: visible; }
  .info p svg.ic { font-size: 2.4em; line-height: 1.3em; padding-left: 1px; }
  p.inf { font-size: 1em; padding-left: 51px; text-indent: -3px; }
  p.inf svg.ic { font-size: 2.3em; margin-left: -48px; }
  .userinfo { width: 85%; padding-left: 0px; top: 0px; height: 100%; font-size: .8em; }
  .userinfo strong { font-size: 1.8em; }
  .userinfo h3 { font-size: 1em; }
  .outleft { left: -120%; }
  .inleft { left: calc(50vw - 45%); }
  .close { left: calc(50vw + 40%); }
  ul { columns: 1; }
}

@media screen and (min-width: 668px) and (max-width: 1024px) and (orientation: portrait) {
  .close { left: calc(50vw + 38%); }
  .userinfo { width: 88%; top: 50px; }
  .inleft { left: calc(50vw - 46%); }
  li { margin-left: 3em; }
  ul { margin-left: -3em; }
}

@media screen and (min-width: 668px) and (max-width: 1024px) and (orientation: landscape) {
  h2 { bottom: 62.5%; }
  .logo { top: 42%; }
  .info { margin-top: 40px; left: 0; width: 100vw; justify-content: space-around; display: flex; flex-flow: row wrap; padding: 0px 40px 20px; }
  .info p { min-width: 270px; }
  .info p.quote { text-align: center; min-width: 100% !important; margin: 0 auto; }
}

@media screen and (max-width: 920px) and (min-device-width: 1025px) {
  .userinfo { width: 92%; }
  .inleft { left: calc(50vw - 46%); }
  .close { left: calc(50vw + 41%); }
}

@media screen and (max-width: 600px) and (min-device-width: 1025px) {
  .info p.quote { font-size: .9em; margin-left: -30px; }
  .content { overflow-y: auto; }
  .userinfo { width: 88%; }
  .inleft { left: calc(50vw - 44%); }
  .close { left: calc(50vw + 38%); }
  .userinfo p:last-child { margin-bottom: 50px; }
}