@font-face {
    font-family: ns;
    src: url(/ns.ttf);
}
:root, * {
   margin: 0px;
   padding: 0px;
   --ci-black: #221f1f;
   --ci-white: #fff;
   --ci-green: #038e53;
   --ci-space: 1.5rem;
      box-sizing: border-box;
          scrollbar-color: var(--ci-white) var(--ci-black);
}
body{
   font-family: "ns", sans-serif;
   font-size:15px;
   font-weight: 100;
   hyphens: auto;
   background-color: var(--ci-black);
   color: var(--ci-white);
   line-height: 1.5em;

}
a{
   color:var(--ci-white);
   text-decoration: none;
   &:hover{
      color:var(--ci-green);
   }
}
h1,h2,h3,h4,h5,h6{
   font-weight:100;
       text-wrap-style: balance;
}
h1{
   font-size:2.1em;
   line-height: 1.1em;
}
h2{
   line-height:1.2em;
}
p{
   margin-bottom:calc(2 * var(--ci-space));
}
b{
   font-weight: 100;
    opacity: 0.5;
    text-transform: uppercase;
}
ul{
   margin-left: var(--ci-space);
   margin-bottom:calc(2 * var(--ci-space));
}
ul.plus{
   list-style-type:"+  ";

}
.shadow{
   box-shadow: 0 -0.2rem 1rem #00000080 ;
}

form{
    display: contents;
}

label, .label{
    margin-bottom: calc(var(--ci-space) / 3.6);
    font-size: 0.8rem;
    display:block;
    line-height: 1.3em;
}
input, select, textarea{
    border: 1px solid var(--ci-white);
    padding: 10px;
    width: 100%;
    background-color: var(--ci-black);
    color: var(--ci-white);
    margin-bottom: var(--ci-space);
    &:focus-visible{
        outline-color: var(--ci-green);
        outline-style: solid;
        outline-width: 2px;
    }
    &:-webkit-autofill, &:-webkit-autofill:focus{
      background-color: var(--ci-black);
    }
    &:user-invalid{
        outline-color: #690000;
        outline-style: solid;
        outline-width: 1px;
        border-color: red;
        background-color: #690000;
    }
}

textarea{
   min-height:150px;
}


  input:-webkit-autofill,
  input:-webkit-autofill:hover, 
  input:-webkit-autofill:focus, 
  input:-webkit-autofill:active  {
    color : black !important;
    -webkit-text-fill-color: black !important;
    -webkit-box-shadow: 0 0 0 1000px white inset !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
  }


input[type="checkbox"]{
   display:none;
   + label{
      border: 1px solid var(--ci-white);
      cursor: pointer;
      padding: 10px;
      text-align: center;
      margin-bottom: calc(var(--ci-space) / 2);
   }
   :last-child + label{
      margin-bottom: var(--ci-space);
   }
   &:checked + label{
      background-color:var(--ci-green);
      color:var(--ci-white);
      border:1px solid var(--ci-green);
   }
   &:user-invalid + label{
      background-color:#690000;
      color:var(--ci-white);
      border:1px solid red
   }
}
.checkboxbox{
   display: flex;
   align-items: center;
   border: 1px solid #028e5436;
   margin-bottom: var(--ci-space);
   background-color: #028e5424;
   input[type="checkbox"]{
      display: unset;
      margin: 0px var(--ci-space) 0 calc(var(--ci-space) * 2);
      width: auto;
   
      + label{
         margin:0px;
         border:0px;
         flex-grow:1;
         text-align: left;
         background-color: unset;
         padding:var(--ci-space);
      }
      &:checked + label{
         background-color:var(--ci-green);
      }
      &:user-invalid + label{
         background-color:#690000;
      }
   }
   &:has( > input:checked){
      background-color:var(--ci-green);
   }
   &:has( > input:user-invalid){
      background-color:#690000;
   }
}

.buttons{
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: var(--ci-space);
    .button{
        flex-grow: 1;
    }
}
.button{
    background-color: var(--ci-green);
    color: var(--ci-white);
    border:1px solid var(--ci-green);
    padding: 10px;
    text-decoration: none;
    text-align: center;
    cursor: pointer;
    &:hover{
        background-color:var(--ci-black);
        color:var(--ci-white);
    }
    &.back{
      background-color:var(--ci-black);
      &:hover{
         color:var(--ci-green);
      }
    }
}

video{
   max-width: 900px;
   width: 100%;
}

.scroll {
   scroll-behavior: smooth;
   scroll-snap-type: y mandatory;
   overflow-y: scroll;
   height: 100dvh;
   margin: 0px;
   padding: 0px;
   width: 100%;
   display: flex;
   flex-direction: column;
   align-items: center;

   header {
      position: sticky;
      top: 0px;
      width: 100%;
      display: flex;
      justify-content: center;
      flex-direction: column;
      align-items: center;
      background-color:var(--ci-black);
      z-index: 1;
      .logo {
         background-image: url(/img/logo.svg);
         height: 34px;
         margin: calc(var(--ci-space) * 1.8) 0 calc(var(--ci-space) * 2) 0;
         background-size: contain;
         width: 80%;
         background-repeat: no-repeat;
         background-position: center;
      }
      div {
         display: flex;
         margin-bottom: var(--ci-space);
         gap: var(--ci-space);
         a {
            cursor: pointer;
            text-decoration: none;
            &.highlighted {
               color: var(--ci-green);
            }
         }
      }
   }

   section {
      scroll-snap-align: start;
      width: 100%;
      padding: var(--headerheight) 0dvh;
      > div{
         min-height: calc(100dvh - 2 * var(--headerheight));
      }
      .center-v {
         padding: var(--ci-space);

         display: flex;
         align-items: center;
      }
      .center-h{
         padding: var(--ci-space);
         display: flex;
         justify-content: center;
         margin: 0 auto;
      }
      .column{
         flex-direction: column;
      }
      .space{
         padding: var(--ci-space);
      }
      &.start-1 {
         .social {
            padding: calc(var(--ci-space) * 0.5) var(--ci-space);
            background-color: var(--ci-green);
            display: flex;
            justify-content: center;
         }
         > div{
            gap: calc(var(--ci-space) * 2);
            max-width: 700px;
            > div:last-child{
               display: flex;
               align-items: center;
               gap: calc(var(--ci-space) * 1.5);
               img{
                  width: 110px;
                  aspect-ratio: 1;
                  object-fit: cover;
                  border-radius: 100%;
               }
            }
         }
      }
      &.start-2 {
         > div{
            gap:var(--ci-space);
            max-width: 700px;
         }
      }
      &.form-1{
         text-align:center;
         .button{
            width: 80%;
            max-width: 600px;
         }
      }
      &.form-1, &.form-2, &.form-3, &.form-4, &.form-5, &.form-6, &.form-7, &.form-8, &.form-9, &.form-10{
         video{
            margin-bottom:var(--ci-space);
         }
        > div > div{
            display: flex;
            flex-direction: column;
            width: 100%;
            max-width: 350px;
        }
      }
   }
   footer {
      scroll-snap-align: center;
      min-height: unset;
      padding: var(--ci-space);
      display: flex;
      width: 100%;
      justify-content: space-between;
      align-items: center;
      gap: var(--ci-space);
      flex-direction: column;
      img {
         height: calc(var(--ci-space)*2);
             flex-grow: 1;
    object-fit: contain;
      }
   }
}








@media only screen and (min-width: 800px) {
   .scroll{
      footer{
         flex-direction: row;
      }
   }

}






@view-transition {
    navigation: auto
}

@keyframes out {
    0% {
        opacity: 1;
        z-index: 1;
        filter: blur(0px)
    }

    100% {
        opacity: 0;
        z-index: 1;
        filter: blur(2px)
    }
}

@keyframes in {
    0% {
        opacity: 0;
        z-index: 2;
        filter: blur(2px)
    }

    50%,100% {
        opacity: 1;
        z-index: 2;
        filter: blur(0px)
    }
}

::view-transition-old(root) {
    animation: out 1.5s;
    animation-timing-function: cubic-bezier(0.89, 0.01, 0.23, 1.04)
}

::view-transition-new(root) {
    animation: in 1.5s;
    animation-timing-function: cubic-bezier(0.89, 0.01, 0.23, 1.04)
}