* {
  margin: 0;
  padding: 0;
}

a {
  text-decoration: none;
  color: black;
}

@font-face {
  font-family: Avenir;
  src: url(../font/Avenir\ Regular.ttf);
}

@font-face {
  font-family: Avenir Black;
  src: url(../font/Avenir\ Black.ttf);
}

@font-face {
  font-family: Avenir Book;
  src: url(../font/Avenir\ Book.ttf);
}

@font-face {
  font-family: Avenir Heavy;
  src: url(../font/Avenir\ Heavy.ttf);
}

@font-face {
  font-family: Avenir Light;
  src: url(../font/Avenir\ Light.ttf);
}

body {
  font-family: Avenir;
}

/******************************************
 *             Burger Menu
 ******************************************/
.menu {
  position: fixed;
  right: 0;
  top: 0;
  z-index: 9999;
}
.burger {
  position: absolute;
  top: 14px;
  right: 7px;
  border-radius: 50%;
  border: 1px solid white;
  display: block;
  width: 45px;
  height: 45px;
  z-index: 999999;
}

.menu-open {
  display: none;
}
.menu-open:target {
  display: block;
  width: 100vw;
}
.menu-open nav {
  position: fixed;
  padding-top: 75px;
  padding-bottom: 30px;
  background: white;
  width: 100vw;
  text-align: center;
}

.burger-open {
  background: url(../img/burger.svg);
}
.burger-close {
  background: url(../img/close.svg);
}
nav#menu {
  display: none;
}
nav li {
  list-style: none;
  font-size: 30px;
}

@media (min-width: 820px) {
  .burger {
    width: 65px;
    height: 65px;
  }
  .menu .burger {
    right: 33px;
    top: 36px;
  }
  .menu-open nav {
    right: 0;
    top: 0;
    padding-top: 150px;
    padding-right: 65px;
    height: 100vh;
    max-width: 200px;
    text-align: right;
  }
}

@media (min-width: 1090px) {
  .burger {
    width: 66px;
    height: 66px;
  }
  .menu .burger {
    right: 26px;
  }
  .menu-open nav {
    padding-top: 150px;
    padding-right: 66px;
    height: 100vh;
    max-width: 200px;
    text-align: right;
  }
}

/******************************************
 *                 HOME
 ******************************************/

#home img {
  object-fit: cover;
  width: 100vw;
  height: 100vh;
}

#home nav {
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  font-size: 53px;
  letter-spacing: 1.1;
}

#about-link {
  position: absolute;
  top: 34%;
  left: 26%;
  transform: rotate(-10deg);
}

#portfolio-link {
  position: absolute;
  top: 60%;
  left: 50px;
}

#contact-link {
  position: absolute;
  top: 74%;
  left: 13%;
  transform: rotate(-40deg);
}

/******************************************
 *             Portfolio List
 ******************************************/
#portfolio-list {
  column-count: 1;

  margin-right: 20px;
  margin-left: 20px;
  margin-top: 16px;
  margin-bottom: 16px;

  line-height: 1.2;
}

#portfolio-list .item {
  display: block;
  width: 100%;
  box-sizing: border-box;
  text-decoration: none;
  color: black;
  margin-bottom: 24px;
  overflow: hidden;
}

#portfolio-list .item img {
  margin-bottom: 8px;
}
#portfolio-list .item h2 {
  font-size: 30px;
}

#portfolio-list .item h3 {
  font-weight: normal;
  font-size: 20px;
}

@media (min-width: 820px) {
  #portfolio-list {
    column-count: 2;

    margin-right: 53px;
    margin-left: 53px;
    margin-top: 43px;
    margin-bottom: 43px;
  }
}

@media (min-width: 1090px) {
  #portfolio-list {
    column-count: 3;

    margin-right: 46px;
    margin-left: 46px;
    margin-top: 43px;
    margin-bottom: 43px;
  }
}

/******************************************
 *             Portfolio Detail
 ******************************************/

#portfolio {
  margin-left: 22px;
  margin-right: 22px;
  margin-top: 16px;
  margin-bottom: 16px;
  line-height: 1.45;
}

.row-12 {
  margin-bottom: 9px;
}

img {
  object-fit: cover;
  max-width: 100%;
}

.image {
  margin-top: 15px;
  margin-bottom: 15px;
}

.image.fullWidth img {
  left: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  max-width: 100vw;
  position: relative;
  right: 50%;
  width: 100vw;
}
.below,
.above {
  margin: 0 !important;
}

.image div {
  font-style: italic;
  font-size: 10pt;
  line-height: 1.2;
}

.image div p {
  display: inline;
}

@media (max-width: 820px) {
  .tuned {
    margin-top: 0 !important;
    margin-bottom: 6px !important;
  }
}

#portfolio .empty {
  display: none;
}

@media (min-width: 820px) {
  #portfolio {
    --page-margin: 80px;
    margin-left: var(--page-margin);
    margin-right: var(--page-margin);
    margin-top: 36px;
    margin-bottom: 36px;
  }

  #portfolio .empty {
    display: block;
  }

  .row-12 {
    --cols: 12;
    --gap: 28px;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;

    margin-bottom: 22px;
  }

  .row-12 > .col-12 {
    flex-basis: 100%;
  }
  .row-12 > .col-11 {
    flex-basis: calc((100% / 12 * 11) - var(--gap) / 2);
  }
  .row-12 > .col-10 {
    flex-basis: calc((100% / 12 * 10) - var(--gap) / 2);
  }
  .row-12 > .col-9 {
    flex-basis: calc((100% / 12 * 9) - var(--gap) / 2);
  }
  .row-12 > .col-8 {
    flex-basis: calc((100% / 12 * 8) - var(--gap) / 2);
  }
  .row-12 > .col-7 {
    flex-basis: calc((100% / 12 * 7) - var(--gap) / 2);
  }
  .row-12 > .col-6 {
    flex-basis: calc((100% / 12 * 6) - var(--gap) / 2);
  }
  .row-12 > .col-5 {
    flex-basis: calc((100% / 12 * 5) - var(--gap) / 2);
  }
  .row-12 > .col-4 {
    flex-basis: calc((100% / 12 * 4) - var(--gap) / 2);
  }
  .row-12 > .col-3 {
    flex-basis: calc((100% / 12 * 3) - var(--gap) / 2);
  }
  .row-12 > .col-2 {
    flex-basis: calc((100% / 12 * 2) - var(--gap) / 2);
  }
  .row-12 > .col-1 {
    flex-basis: calc((100% / 12 * 1) - var(--gap) / 2);
  }

  .row-12 > .col-11.overlap {
    flex-basis: calc((100% / 12 * 11) - var(--gap) / 2 + var(--page-margin));
  }
  .row-12 > .col-10.overlap {
    flex-basis: calc((100% / 12 * 10) - var(--gap) / 2 + var(--page-margin));
  }
  .row-12 > .col-9.overlap {
    flex-basis: calc((100% / 12 * 9) - var(--gap) / 2 + var(--page-margin));
  }
  .row-12 > .col-8.overlap {
    flex-basis: calc((100% / 12 * 8) - var(--gap) / 2 + var(--page-margin));
  }
  .row-12 > .col-7.overlap {
    flex-basis: calc((100% / 12 * 7) - var(--gap) / 2 + var(--page-margin));
  }
  .row-12 > .col-6.overlap {
    flex-basis: calc((100% / 12 * 6) - var(--gap) / 2 + var(--page-margin));
  }
  .row-12 > .col-5.overlap {
    flex-basis: calc((100% / 12 * 5) - var(--gap) / 2 + var(--page-margin));
  }
  .row-12 > .col-4.overlap {
    flex-basis: calc((100% / 12 * 4) - var(--gap) / 2 + var(--page-margin));
  }
  .row-12 > .col-3.overlap {
    flex-basis: calc((100% / 12 * 3) - var(--gap) / 2 + var(--page-margin));
  }
  .row-12 > .col-2.overlap {
    flex-basis: calc((100% / 12 * 2) - var(--gap) / 2 + var(--page-margin));
  }
  .row-12 > .col-1.overlap {
    flex-basis: calc((100% / 12 * 1) - var(--gap) / 2 + var(--page-margin));
  }

  .row-12 > div {
    align-self: start;
  }
  .row-12.alignBottom > div {
    align-self: end;
  }

  .row-7 {
    --cols: 7;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }

  .row-7 > * {
    width: 100%;
  }
  .row-7 > .col-7 {
    flex-basis: 100%;
  }
  .row-7 > .col-5 {
    flex-basis: calc((100% / 7 * 5) - var(--gap) / 2);
  }
  .row-7 > .col-5.overlap {
    flex-basis: calc((100% / 7 * 5) - var(--gap) / 2 + var(--page-margin));
  }
  .row-7 > .col-2 {
    flex-basis: calc((100% / 7 * 2) - var(--gap) / 2);
  }
  .row-7 > .col-2.overlap {
    flex-basis: calc((100% / 7 * 2) - var(--gap) / 2 + var(--page-margin));
  }

  h1 {
    font-size: 36pt;
  }

  .text h2 {
    font-size: 26pt;
    line-height: 1.2;
    margin-bottom: 24px;
    font-style: italic;
    font-family: Avenir Heavy;
  }

  .text div {
    text-align: justify;
    font-size: 12pt;
    line-height: 1.35;
  }

  .image {
    position: relative;
    margin-top: 0;
    margin-bottom: 0;
  }

  .image div {
    max-width: 300px;
    width: 100%;

    font-size: 11pt;
    line-height: 1.2;
  }

  .image.rightOverlap {
    margin-right: calc(-1 * var(--page-margin));
  }
  .image.leftOverlap {
    margin-left: calc(-1 * var(--page-margin));
  }

  .image .no-space {
    position: relative;
    width: 0;
  }
  .image .no-space div {
    position: absolute;
    width: 180px;
  }

  .image .below,
  .image .above {
    margin-right: auto;
  }
  .image .left,
  .image .right {
    margin-bottom: auto;
  }

  .image .below.tune-100,
  .image .above.tune-100 div {
    text-align: right;
  }
  .image .left {
    text-align: right;
  }

  .image .no-space.above div {
    bottom: 22px;
  }
  .image .no-space.below.tune-100 div {
    top: 22px;
    right: 0;
  }
  .image .no-space.above.tune-100 div {
    bottom: 22px;
    right: 0;
  }

  .image .below.tune-100,
  .image .above.tune-100 {
    margin-left: calc(100% - 300px) !important;
  }
  .image.rightOverlap .below.tune-100,
  .image.rightOverlap .above.tune-100 {
    margin-left: calc(100% - 300px - var(--page-margin)) !important;
  }

  .image .no-space.left,
  .image .no-space.right {
    position: absolute;
  }

  .image .no-space.right {
    right: 0;
    top: 0;
  }
  .image .no-space.left div {
    right: 22px;
  }
  .image .no-space.right div {
    left: 22px;
  }
}

@media (min-width: 900px) {
  .image .no-space div {
    position: absolute;
    width: 200px;
  }
}
@media (min-width: 1090px) {
  #portfolio {
    --page-margin: 122px;
    margin-top: 36px;
    margin-bottom: 36px;
  }

  .image .no-space div {
    position: absolute;
    width: 260px;
  }
}
