/* SOURCE SANS 3**/
/* HANKEN GROTESQUE */
@import url('https://fonts.googleapis.com/css2?family=Hanken+Grotesk:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Monoton&family=Montserrat:wght@300&family=Source+Sans+3:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

*{
  margin: 0;
  padding: 0; 
}

html{
  scroll-behavior: smooth;
  scroll-snap-type:y mandatory;     
  overflow-y: scroll;    
}

.green {
  color:#A2FF00;
}

#loader {
  position: fixed;
  left: 0px;
  top: 0px;
  width: 100%;
  height: 100%;
  z-index: 9999;
  background: 50% 50% no-repeat rgb(0, 0, 0);
  display: flex;
  align-items: center;
  justify-content: center;
}

.loader {
  border: 3px solid #A2FF00;  
  border-radius: 50%;
  border-top: 3px solid #000000;
  width: 40px;
  height: 40px;
  -webkit-animation: spin 2s linear infinite;
  animation: spin 2s linear infinite;
}

.text-loader {
  position: fixed;
  left: 0px;
  bottom: 15%;
  width: 100%;
  height: 50%;
  z-index: 9999; 
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Safari */
@-webkit-keyframes spin {
  0% { -webkit-transform: rotate(0deg); }
  100% { -webkit-transform: rotate(360deg); }
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

body {    
  font-size: 100%;  
  font-family: 'Source Sans 3', sans-serif; 
  font-weight: 200;
  color: #ffffff;
  background-color: #000000;   
}

a {
  color: #a2ff00;     
  font-weight: 200;
  text-decoration: line;     
}

a:hover {      
  color: #00A2FF; 
  color: #FF00A2; 
}

html::-webkit-scrollbar {
  display: none;
}

/* HEADER */
/* MENU HAMBURGER */
header { 
  width: 100%;
  top: 0;
  padding-top: 10px;
  height: 60px;    
  position: fixed;     
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;   
  color: #000000;  
  z-index: 999;
}

#logo {      
  width: 80px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}

#logo a {
  display: flex;
}

header img {  
  content:'images/logo2.jpg';  
  width: 50px;                     
}
  
.menu {   
  display: flex;
  flex-direction: row;
  list-style-type: none;
  margin-right: 20px;
}

.menu ul {    
  height: 100%;
}

.menu > li {
  margin: 0 1rem;
  overflow: hidden;
  background-color: #000000;
  padding-left: 10px;
  padding-right: 10px;
}

.menu > li:last-child > a {
  font-style: normal;
  color: #ff00a2;
  font-weight: 400;
}

.menu li a {                
  color: #a2ff00;  
  text-decoration: none;
  font-size: 16px;   
  font-weight: 300;
  letter-spacing: 4px;    
}

.menu li a:after {    
  content:'';
  width: 0%;
  height: 2px;  
  background: #a2ff00;
  display: block;   
  margin: auto;
  transition: 0.3s;
}

.menu li a:hover:after {
  width: 100%;
  height: 1px;  
}

/* MENU BUTTON X */  
.menu-button-container {
  display: none;
  height: 100%;
  width: 30px;
  cursor: pointer;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
  
#menu-toggle {
  display: none;
}

.menu-button,
.menu-button::before,
.menu-button::after {  
  display: block;  
  background-color: #a2ff00;
  position: absolute;
  height: 4px;
  width: 30px;
  transition: transform 400ms cubic-bezier(0.23, 1, 0.32, 1);
  border-radius: 2px;
  margin-right: 40px;
  z-index: 1;
}
  
.menu-button::before {
  content: '';
  margin-top: -8px;
}
  
.menu-button::after {
  content: '';
  margin-top: 8px;
}
  
#menu-toggle:checked + .menu-button-container .menu-button::before {
  margin-top: 0px;
  transform: rotate(405deg);
}
  
#menu-toggle:checked + .menu-button-container .menu-button {
  background: rgba(255, 255, 255, 0);
}
  
#menu-toggle:checked + .menu-button-container .menu-button::after {
  margin-top: 0px;
  transform: rotate(-405deg);
}
  
@media (max-width: 724px) {
 
  .menu-button-container {      
    display: flex;
  }
  
  .menu {    
    position:absolute;    
    height: 100vh;
    top: 0;
    margin-top: 0px;    
    left: 0;        
    flex-direction: column;
    width: 70%;   
    align-items: center;
    overflow:hidden;
  } 

  .menu li a {
    font-weight: 500;
  }

  /* .menu li:last-child a {   
    color:#00a2ff;    
  }
   */
   
  #menu-toggle ~ .menu {
    height: 0; 
    padding-top: 0px;                  
    transition: height 400ms cubic-bezier(0.23, 1, 0.32, 1);
  }

  #menu-toggle:checked ~ .menu {
    height: 100vh;
    padding-top: 80px; 
    transition: height 400ms cubic-bezier(0.23, 1, 0.32, 1);
  } 

  #menu-toggle ~ .menu li {      
    height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    transition: height 400ms cubic-bezier(0.23, 1, 0.32, 1);
  }

  #menu-toggle:checked ~ .menu li {
    border: 0px solid #ffffff;
    height: 2.5em;
    padding: 0.5em;    
    transition: height 400ms cubic-bezier(0.23, 1, 0.32, 1);
  }

  .menu > li {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0.5em 0;
    width: 100%;      
    color: white;   
  }
  
  .menu > li:not(:last-child) {
    border-bottom: 0px solid #444;
  }

  header {
    height: 40px;
  }

  header img {  
    content:'images/logo2.jpg';  
    width: 40px;        
  }
}

/* FOOTER */
footer {     
  position: fixed;
  width: 100%;
  height: 40px; 
  display: flex;
  align-items: center;
  justify-content: center;	
  bottom: 0;  
  color: #ffffff;
  /* color: #ff00a2; */
  font-size: 14px;    
  font-weight: 200;   
  z-index: 999;    
}

footer ul {
  height: 40px;
  display: flex;
  align-items: center;

}

footer li {  
  list-style: none;
  display: inline-block;
  margin: 0.5rem;  
}

footer a {            
  font-weight: 200; 
  font-style:normal;
}

footer img {
  max-width: 14px;  
}

/* @media (max-width: 300px) {
  footer {  
    height: 40px;
    font-size: 9px; 
  }
} */

#cookie-banner {
  display: none;             /* nascosto finché JS non lo mostra */
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  background: #000000;
  color: #fff;
  padding: 15px;
  text-align: center;
  font-size: 14px;
  z-index: 9999;
}
#cookie-banner a {
  color: #00A2FF;
  text-decoration: underline;
}
#cookie-banner button {
  margin-left: 10px;
  padding: 6px 12px;
  border: 0;
  cursor: pointer;
  background: #FF00A2;
  color: #ffffff;
}

/* IMPOSTAZIONE PAGINA*/
section {
  width: 100%;  
  height: 100vh;
  scroll-snap-align: center;
  position: relative;
  display: flex;  
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

canvas {   
  box-sizing: border-box;     
  position:fixed;
  width: 100%; 
  height: auto;   
  top: 0%;
  z-index: -10;
}

.sub-up-down {
  border-top:1px solid white; 
  border-bottom:1px solid white;
  padding-top: 20px;
  padding-bottom: 20px;  
}

.sub-up {
  border-top:0px solid white;
  padding-top: 20px;
  padding-bottom: 20px;
}

.sub-down {
  border-bottom:0px solid white;
  padding-top: 20px;
  padding-bottom: 20px;
}

.video-container {
  position: fixed;
  width: 1920px;
  margin: 0 auto;
  object-fit: cover;
  z-index: -1;
  opacity: 0.25;
}

.home1-text { 
  width: 40%;
  height: 50vh;  
  margin-left: 34%;
}

.data-text {
  width: 40%;  
  height: 44vh; 
  margin-left: 52%;
}

.cinematic-text { 
  width: 40%;
  height: 50vh;   
  margin-left: 56%; 
}

.writing-text { 
  margin-left: 50%;
  width: 40%;
  height: 50vh; 
}

.gallery-text { 
  margin-left: 60%;
  width: 40%;
  height: 50vh; 
}

.home-title{ 
  width: 100%;
  margin-left: 0%;
  height: 36%;
  align-items: center;  
}

.home-title h1 { 
  color: #a2ff00;      
  font-family: 'Source Sans 3', sans-serif;          
  font-size: 80px;    
  font-weight: 800; 
  font-style: italic;
}

.home-title h2 { 
  color: #a2ff00;      
  font-family: 'Source Sans 3', sans-serif;        
  font-size: 50px;      
  font-weight: 800; 
  font-style: italic; 
}

.home-paragraph { 
  width: 96%;
  height: auto;
  margin-left: 0%;
  font-size: 24px;
  line-height: 30px;
}

.home-paragraph a {  
  font-weight: 200;  
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.p-italic { 
  font-style: italic; font-weight: 400;
}

.p-italic-s { 
  font-style: italic;
}
.p-bold {
  font-weight: 600;
}

.tab {
  display: flex;
  justify-content: space-around;
}

.tab a {
  text-decoration: none;
  background-color: black;
  font-size: 18px;
  line-height: 30px;
}

.tableft {
  width: 50%;
}

.tabright {
  width: 50%;
}

.images-div {
  width: 100%;
  height: 50%;
  display: flex;
  flex-direction: row;  
  gap: 25px;
  margin-right: 25px;
  margin-top: 25px;
  margin-bottom: 25px;
}

.images-text-left { 
  width: 50%; 
  height: auto;
  overflow: hidden; 
  position: relative;
}

.images-text-right { 
  width: 50%; 
  height: auto;
  overflow: hidden; 
  position: relative; 
}

.images-text-right img {
  position: absolute; 
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 200%;
  max-height: 200%;
  object-fit: cover; 
}

.images-text-left img {
  position: absolute; 
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 200%;
  max-height: 200%;
  object-fit: cover; 
}

.scrolling {  
  position: relative;
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
  height: 40px;
  bottom: -50px;
}
 
.scrolling img {
  filter: invert(1);
  width: auto;
  height: 24px;
}

/*--------1240---------HALF SCREEN-----*/

@media (max-width: 1240px) {

  .home1-text { 
    width: 60%;
    height: 50vh;  
    margin-left: 30%;       
  }

  .home-title {
    width: 90%;
    margin-left: 0%;
    height: 30%;    
  }

  .home-title h1 {         
    font-size: 64px; 
    line-height: 50px; 
  }

  .home-text {
    width: 50%;
    height: auto; 
    display: flex;
    align-items: center;
    align-content: center;
  }
  
  .home-paragraph {  
    width: 100%;
    height: 60%;   
    font-size: 22px;     
    line-height: 26px;    
  }

  .data-text {
    width: 60%;
    height: 50vh;
    margin-left: 350px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .writing-text {
    width: 60%;
    height: 50vh;
    margin-left: 340px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .gallery-text {
    width: 60%;
    height: 50vh;
    margin-left: 340px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .scrolling {
    position: relative;
    display: flex;
    width: auto;
    height: 26px;  
    bottom: 0px; 
  }
}

/*--------724----------*/

@media (max-width: 724px) { 
  section  {
    width: 100%;
    height: 100vh;
  }

  .home1-text {  
    width: 90%;
    height: 70vh;
    margin-left: 0px;
    margin-bottom: 0px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: scenter;
  }

  .data-text {
    width: 90%;
    height: 90vh;
    margin-left: 0px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .cinematic-text {
    width: 90%;
    height: 90vh;
    margin-left: 0px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;     
  }

  .writing-text {
      width: 90%;
      height: 90vh;
      margin-left: 0px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;         
  }

  .gallery-text {
    width: 90%;
    height: 90vh;
    margin-left: 0px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;         
  }

  .home-title{    
    width: 90%;  
    height: 20%;
    align-items: center;
    margin-bottom: 20px;
  }

  .home-title h1 {         
    font-size: 36px;       
    line-height: 40px;  
  }
  
  .home-paragraph {        
    width: 90%;
    height: 65%;    
    margin-left: 0px;
  }

  .home-paragraph p {
    font-size: 22px;     
    line-height: 26px;    
  }

  .scrolling {
    position: absolute;
    display: flex;
    width: auto;
    height: 26px;  
    bottom: 150px; 
  }
   
  .scrolling img {
    filter: invert(1);
    width: auto;
    height: 22px;
  }
} 

/*--------280----------*/

@media (max-width: 280px) {
  .home-text {
    height: 90vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;     
  }

  .home-title{    
    width: 90%;  
    height: 16%;
    align-items: center;
    margin-bottom: 20px;
  }

  .home-title h1 {         
    font-size: 50px;       
    line-height: 40px;  
  }
  
  .home-paragraph {         
    width: 90%;
    height: 50%;    
    margin-left: 0px;
  }

  .home-paragraph p {
    font-size: 15px;     
    line-height: 16px;    
  }
}

  #conigliobcg {
        position: fixed;
        inset: 0;
        display: block;
        z-index: -1;         
        pointer-events: none;   /* non intercetta i click/scroll */
      }
      #threejs-error {
        display: none;
        padding: 1rem;
        background: #111;
        color: #fff;
      }
      noscript {
        display: block;
        padding: 1rem;
        background: #300;
        color: #fff;
        font-weight: 600;
      }
      #loader {
        position: fixed;
        inset: 0;
        display: grid;
        place-items: center;
        background: #000;
        color: #fff;
        z-index: 9999;
      }