/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
/* 1. Use a more-intuitive box-sizing model */
*, *::before, *::after {
  box-sizing: border-box;
}

/* 2. Remove default margin */
* {
  margin: 0;
}

body {
  /* 3. Add accessible line-height */
  line-height: 1.5;

  /* 4. Improve text rendering */
  -webkit-font-smoothing: antialiased;
}

/* 5. Improve media defaults */
img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}

/* 6. Inherit fonts for form controls */
input, button, textarea, select {
  font: inherit;
}

/* 7. Avoid text overflows */
p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}

/* 8. Improve line wrapping */
p {
  text-wrap: pretty;
}
h1, h2, h3, h4, h5, h6 {
  text-wrap: balance;
}

/*
  9. Create a root stacking context
*/
#root, #__next {
  isolation: isolate;
}

@font-face {
  font-family: "Redaction 70";
  font-style: italic;
  src: url(./fonts/Redaction70-Italic.otf);
}

.ibm-plex-mono-thin {
  font-family: "IBM Plex Mono", serif;
  font-weight: 100;
  font-style: normal;
}

.ibm-plex-mono-extralight {
  font-family: "IBM Plex Mono", serif;
  font-weight: 200;
  font-style: normal;
}

.ibm-plex-mono-light {
  font-family: "IBM Plex Mono", serif;
  font-weight: 300;
  font-style: normal;
}

.ibm-plex-mono-regular {
  font-family: "IBM Plex Mono", serif;
  font-weight: 400;
  font-style: normal;
}

.ibm-plex-mono-medium {
  font-family: "IBM Plex Mono", serif;
  font-weight: 500;
  font-style: normal;
}

.ibm-plex-mono-semibold {
  font-family: "IBM Plex Mono", serif;
  font-weight: 600;
  font-style: normal;
}

.ibm-plex-mono-bold {
  font-family: "IBM Plex Mono", serif;
  font-weight: 700;
  font-style: normal;
}

.ibm-plex-mono-thin-italic {
  font-family: "IBM Plex Mono", serif;
  font-weight: 100;
  font-style: italic;
}

.ibm-plex-mono-extralight-italic {
  font-family: "IBM Plex Mono", serif;
  font-weight: 200;
  font-style: italic;
}

.ibm-plex-mono-light-italic {
  font-family: "IBM Plex Mono", serif;
  font-weight: 300;
  font-style: italic;
}

.ibm-plex-mono-regular-italic {
  font-family: "IBM Plex Mono", serif;
  font-weight: 400;
  font-style: italic;
}

.ibm-plex-mono-medium-italic {
  font-family: "IBM Plex Mono", serif;
  font-weight: 500;
  font-style: italic;
}

.ibm-plex-mono-semibold-italic {
  font-family: "IBM Plex Mono", serif;
  font-weight: 600;
  font-style: italic;
}

.ibm-plex-mono-bold-italic {
  font-family: "IBM Plex Mono", serif;
  font-weight: 700;
  font-style: italic;
}

* {
  box-sizing: border-box;
}



@media only screen and (min-width: 768px) {
  /* For desktop: */
  .col-1 {width: 8.33%;}
  .col-2 {width: 16.66%;}
  .col-3 {width: 25%;}
  .col-4 {width: 33.33%;}
  .col-5 {width: 41.66%;}
  .col-6 {width: 50%;}
  .col-7 {width: 58.33%;}
  .col-8 {width: 66.66%;}
  .col-9 {width: 75%;}
  .col-10 {width: 83.33%;}
  .col-11 {width: 91.66%;}
  .col-12 {width: 100%;}
}

  [class*="col-"] {
    float: left;
    padding: 0;
    margin: 0;
  }
  
  .row::after {
    content: "";
    clear: both; /* La proprietà clear serve a impedire che al fianco di un elemento float compaiano altri elementi */
    display: table;
  }
  
html, body {
  margin: 0;
  background-color: #060606;
  color: white;
  cursor: crosshair;
  padding: 0;
}

body {
  overscroll-behavior: none;
  padding: 1.5vh 1vw;
  overflow: hidden;
}

/* scroll bar */
/* larghezza */
::-webkit-scrollbar {
  width: 5px;
}

/* traccia di scorrimento: sorta di binario su cui si muove la barra di scorrimento */
::-webkit-scrollbar-track {
  background: none;
}

/* barra di scorrimento: elemento che viene trascinato per scorrere nella pagina */
::-webkit-scrollbar-thumb {
  background: none;
  border-radius: 100px;
}

/* barra di scorrimento al passaggio del mouse */
::-webkit-scrollbar-thumb:hover {
  background: #616161;
}

/* @@@@@@@@@@@@@@@@@@@@@@@@@ HOMEPAGE @@@@@@@@@@@@@@@@@@@@@@@@@ */

#intro {
  width: auto;
  margin-left: auto;
  height: 8vh;
  margin-top: 42vh;
  /* border: 1px solid green; */
  line-height: normal;
  font-family: "IBM Plex Mono", serif;
  font-size: 0.7rem;
  font-weight: 400;
  text-transform: uppercase;
  text-align: left;
}


#click {
  display: none;
  height: 3vh;
  margin-top: 26vh;
  /* border: 1px solid green; */
  line-height: normal;
  font-family: "IBM Plex Mono", serif;
  font-size: 0.7rem;
  font-weight: 400;
  text-transform: uppercase;
  color: #616161;
}

#type {
  font-family: monospace;
  color:#0000;
  background:
    linear-gradient(-90deg,white 5px,#0000 0) 10px 0,
    linear-gradient(white 0 0) 0 0;
  background-size:calc(var(--n)*1ch) 200%;
  -webkit-background-clip:padding-box,text;
  background-clip:padding-box,text;
  background-repeat:no-repeat;
  animation: 
   b .8s infinite steps(1),   
   t calc(var(--n)*.15s) steps(var(--n)) forwards;
}

@keyframes t{
  /* from {background-size:var(--start) 200%} */
  from {background-size:0 200%}

}

@keyframes b{
  50% {background-position:0 -100%,0 0}
}

/* @@@@@@@@@@@@@@@@@@@@@@@@@ HEADER @@@@@@@@@@@@@@@@@@@@@@@@@ */

header {
  height: 2.5vh;
  vertical-align: middle;
}

.blank {
  height: 1px;
}

.header-butt {
  line-height: normal;
  font-family: "IBM Plex Mono", serif;
  font-size: 0.7rem;
  font-weight: 400;
  text-transform: uppercase;
  text-align: left;
  align-content: baseline;
  white-space: nowrap;
}

.header-butt:hover {
  text-decoration: underline;
}

.header-butt.active {
  font-family: "Redaction 70";
  font-style: italic;
}

#butt-3 {
  text-align: right;

}

/* @@@@@@@@@@@@@@@@@@@@@@@@@ LAYOUT @@@@@@@@@@@@@@@@@@@@@@@@@ */


.content {
  line-height: normal;
  font-family: "IBM Plex Mono", serif;
  font-size: 0.7rem;
  font-weight: 400;
  /* border: 1px solid green; */
  height: 92vh;
  padding-top: none;
}

.left-col {
  align-items: center;
  height: 90vh;
  display: flex;
  justify-content: center;
}

.centre-col {
  padding-top: 9vh;
  overflow-y: scroll;
  align-items: center;
  display: flex;
  height: 90vh;
}

.right-col {
  height: 90vh;
  padding-left: 1.5vw;
}

.description {
  display: block;
  padding-bottom: 4vh;
  /* border: 1px solid red; */
}

.font-change {
  font-family: "Redaction 70";
  font-style: italic;
  color:white;
  opacity: 40%;
}

.font-change:hover {
    opacity: 80%;

}

#see-projects:hover {
  opacity: 100%;

 text-decoration: underline;
}

/* @@@@@@@@@@@@@@@@@@@@@@@@@ CONTACTS @@@@@@@@@@@@@@@@@@@@@@@@@ */

#contacts-content {
  width: 100%;
}

/* @@@@@@@@@@@@@@@@@@@@@@@@@ PROJECT LIST @@@@@@@@@@@@@@@@@@@@@@@@@ */

#prj-list {
 width: 100%;
}

#hide-prj {
  display: none;
}

.list-butt {
  height: min-content;
  display: flex;
  padding: 10px;
  width: 100%;
  margin: 0;
  border-top: 1px solid #FFF;
  text-transform: uppercase;
  justify-content: space-between;
  align-items: center;
}

#testo-mobile {
  display: none;
}

.list-butt:hover {
  background-color: white;
  color: black;
}

#filter-list {
  font-size: 0.7rem;
  width: 100%;
}

.icon-align {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.side-text {
  padding-bottom: 0.25rem;
  font-size: 0.7rem;
  width: 100%;
}

.divider {
  color: black;
  font-family: "IBM Plex Mono", serif;
  font-weight: 500;
}

.filter-butt {
  display: flex;
  gap: 1.5rem;
  align-self: stretch;
  opacity: 40%;
  padding: 0.25rem 0;
}

.filter-butt:hover {
  opacity: 80%;
}

.filter-active {
  opacity: 100%;
}

.icon {
  width: 1rem;
  height: 1rem;
}

.imgList {
  height: 100%;
  width: 100%;
  object-fit: cover;
  border: 1px solid white;
  display: none;
}

.imgOver {
  display: block;
}


/* @@@@@@@@@@@@@@@@@@@@@@@@@ ABOUT @@@@@@@@@@@@@@@@@@@@@@@@@ */

.iconColor {
  fill: white;
}

.list-butt:hover .iconColor {
  fill: black;
}

#aboutDescription {
  font-size: 1rem;

}

#about-content {
  padding-bottom: 1vh;
}

.mini-title-abt {
  font-family: "Redaction 70";
  font-style: italic; 
  font-weight: 400;
  line-height: normal;
  font-size: 1.6rem;
  padding-bottom: 2vh;
}

.abt-title {
  color: white;
  font-weight: 500;
}

.abt-date {
  color: #616161;
}

.abt-text {
  color: #BABABA;
  font-weight: 300;
}

/* @@@@@@@@@@@@@@@@@@@@@@@@@ PROJECT PAGES @@@@@@@@@@@@@@@@@@@@@@@@@ */

.prj-title {
  font-family: "Redaction 70";
  font-style: italic; 
  font-weight: 400;
  line-height: normal;
  font-size: 1.6rem;
}

#desc-button {
  display: none;
}

.date {
  color: #616161; 
  font-size: 0.7rem;
  font-family: "IBM Plex Mono";
  font-style: normal;
  text-transform: none;
  /* padding-left: 1vw; */
}

.prj-scroll {
  display: flex;
  height: 100%;
  padding-right: 0;
}

a {
  color: white;
    opacity: 80%;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
  opacity: 100%;
font-family: "Redaction 70";
  font-style: italic;
  color:white;
  text-transform: uppercase;
    font-size: 0.7rem;

}

/* @@@@@@@@@@@@@@ LAYOUT @@@@@@@@@@@@@@ */


.left-col-prj {
  padding-top: 5vh;
  padding-right: 1vw;
  height: 100%;
  justify-content: space-between;
  flex-direction: column;
  display: flex;
}

.right-col-prj {
  padding-top: 5vh;
  padding-left: 1vw;
  height: 100%;
  width: 33.3333%;
  justify-content: space-between;
  flex-direction: column;
  display: flex;
}

.centre-col-prj {
  margin-top: 5vh;
  width: 66.6666%;
  overflow-y: scroll;
  align-items: center;
}


.side-text-prj {
  color:#616161;
  font-size: 0.7rem;
  width: 100%;
  align-items: center;
  height: 100%;
}

/* @@@@@@@@@@@@@@ LIST ON THE RIGHT @@@@@@@@@@@@@@ */


.specs-list {
  border-top: 1px solid #616161;
}

.specs-title {
  display: block;
  padding: 10px;
  color: #616161;
  text-transform: uppercase;
  justify-content: space-between;
  align-items: center;
}

.button-content {
  padding: 10px;
}

.prj-descr {
  padding-top: 2vh;
}

/* @@@@@@@@@@@@@@ PRJ CONTENT @@@@@@@@@@@@@@ */

footer {
  line-height: normal;
  font-family: "IBM Plex Mono", serif;
  font-size: 0.7rem;
  font-weight: 400;
  color:#616161;
  text-transform: uppercase;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: 3vh;
  padding: 0;
}

.footer-mobile {
  display: none;
}

.footer-butt {
  font-family: "IBM Plex Mono";
  opacity: 100%;
}

.footer-butt:hover {
  text-decoration: underline;
  font-family: "Redaction 70";
  font-style: italic;
  color: white;
}

.nxt-butt {
  padding: 0;
  justify-content: flex-end;
  display: flex;
  text-align: right;
}

.prv-butt {
  padding: 0;
  text-align: left;
  display: flex;
}

.mini-title {
  padding-top: 3vh;
  display: block;
  font-family: "Redaction 70";
  font-style: italic; 
  font-weight: 400;
  line-height: normal;
  font-size: 1.6rem;
}

.butt-1 {
  padding-top: 0;
}

.vid-frame {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* border: 1px solid white; */
}

.video-box {
  display: block;
  width: 100%;
  height: 51vh;

}

.prj-text {
  /* font-family: Helvetica; */
  /* font-size: 0.8rem; */
  padding: 3vh 0;
}

.single-img {
  width: 100%;
  border: 0.2px solid #616161;
}

.img-row {
  display: grid;
  grid-template-columns: auto auto;
  gap: 10px;
}

.img-row div {
  text-align: center;
}

#img-strane {
  grid-template-columns: 70% auto;
}

#img-strane1 {
  grid-template-columns: 60% auto;
}

.double-img {
   border: 0.2px solid #616161;
   display: block;
   height: 100%;
   object-fit: cover;
   object-position: center; 
}


@media only screen and (max-width: 768px) {

[class*="col-"] {
  width: 100%;
  padding: 0;
}

body {
  padding: 0 2vh 0 2vh;
}

header {
  padding-top: 2vh;
  background-color: #060606;
}

footer {
  display: none;
}

.footer-mobile {
  display: flex;
  text-transform: uppercase;
  justify-content: space-between;
  align-items: center;
  padding: 1vh 0 0 0;
  bottom: 0;
  margin-bottom: 3vh;
  position: relative;

  line-height: normal;
  font-family: "IBM Plex Mono", serif;
  font-size: 0.7rem;
  font-weight: 400;
  color:#616161;
  width: 100%;
  height: min-content;
}

.content {
  overflow-x: hidden;
   overflow-y: hidden;
}

.footer-butt {
  width: 49%;
  color: #616161;
  padding: 0;
}

.footer-butt:hover {
  text-decoration: underline;
  font-family: "Redaction 70";
  font-style: italic;
  color: white;
}

.nxt-butt {
  padding: 0;
  justify-content: flex-end;
  display: flex;
  text-align: right;
}

.prv-butt {
  padding: 0;
  text-align: left;
  display: flex;
}

.left-col {
  display: none;
}

.blank {
  display: none;
}

#butt-3 {
  text-align: left;  
}

#testo-mobile {
position:absolute;
opacity: 50%;
display: block;
padding-bottom: 2vh;
  bottom: env(safe-area-inset-bottom, 5vh);
color:#616161;
  font-family: "Redaction 70";
  font-style: italic; 
  font-weight: 400;
  line-height: normal;
  font-size: 0.8rem;
}


.prj-scroll {
  display: block;
  overflow-y: scroll;
  height: 100%;
  padding-bottom: 7vh;
  bottom: 0;
  /* border: 1px solid red; */
  /* min-height: 80%;
  max-height: 90%; */
}

.left-col-prj {
  overflow-y: hidden;

  padding: 2vh 3vh 2vh 0;
  position: static;
  /* background-color: #060606; */
  display: block;
  height: min-content;
  width: 98vw;
}

.centre-col-prj {
  margin: 0;
  
  /* border: 1px solid green;
  background-color: orange; */
  display: block;

  /* margin-top: 100px; */
  height: max-content;
  padding: 0 0 4vh 0;
  overflow-y: hidden;
  width: 100%;
}

.right-col-prj {
  padding: 0;
  height: min-content;
  width: 100%;
}

.side-text-prj {
  padding: 0;
  height: min-content;
}

.prj-title {
  font-family: "Redaction 70";
  font-style: italic; 
  font-weight: 400;
  line-height: normal;
  font-size: 1.8rem;

  display: flex;
  align-items: baseline;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: min-content;
}
  
.prj-descr {
  padding-top: 2vh;
  display: none;
}

#desc-button {
  text-align: right;
  width: fit-content;
  padding: 0;
  justify-content: flex-end;
  display: flex;
  text-align: right;
}

.opened-box {
  display:flex;
}

.plus-inactive, .minus-inactive {
  display: none;
}

.plus-active, .minus-active {
  display: block;
}

#filter-list {
 display: none;
}

}