:root{
  --col-beige-dark : #ffeedd;
  --col-beige-light: #f3e8de;

  --col-brown-dark : #746054;
  --col-brown-light: #847064;
  
  --col-red-light  : #bf5858; 
  --col-red-lighter: #cf6868; 

  --col-blackBlue  : #2e5a97;
}

@font-face {
  font-family: "Montserrat";
  src: local("Montserrat"), url("/RESOURCES/font/Montserrat/Montserrat-VariableFont_wght.ttf");
}


body {
  margin: 0; padding: 0;
  background-color: var(--col-beige-light);
}
.no-scroll{/*used in navjs with hamburger*/
  overflow: hidden;
  height: 100vh;
}

header {
  background-image: linear-gradient(var(--col-beige-dark), var(--col-beige-light));
  font-family: Montserrat, sans-serif;
  display: grid; grid-template-columns: 20% 60% 20%;
  width: 98%; padding: 1%;
  vertical-align: middle;
  h1{
    margin: 0;
    font-weight: 400;
    color: var(--col-brown-dark);
  }
  nav {
    display: grid;
    grid-template-columns: repeat(5, 20%);
    a { 
      width: 100%; 
      text-align: left; 
      text-decoration: none; 
      font-size: 2em;
      font-weight: 300;
      color: var(--col-brown-dark);
      text-shadow: 0px 1px 1px white;
      transition: text-shadow 0.3s;
      &:hover{
        color: var(--col-red-light);
        text-shadow: 0px 1px 2px var(--col-brown-dark);
        transition: text-shadow 0.1s;
        cursor: pointer;
      }
    }
    .activePage {
      font-weight: 500;
      font-size: 2.5em;
    }
    #hamburger {
      display: none;
    }
  }
}

#hamburger {
  padding   : 0;
  border    : none;
  background: none;
  cursor    : pointer;
  width     : 32px;
  height    : 24px;
  position  : absolute; right:32px; top:32px;
  transform : scale(2);
  span, span::before, span::after {
    position: absolute;
    left: 0;
    right: 0;
    height: 3px;
    background: #222;
    border-radius: 999px;
    content: "";
  }
  span { top: 50%; transform: translateY(-50%); }
  span::before { top: -8px; }
  span::after  { top:  8px; }
}

@media only screen and (max-width:1400px) { 
  header nav a          { display: none;  }
  header nav #hamburger { display: block; }
  header nav.open {
    display: flex;
    background: white;
    position: absolute;
    text-align: center;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: center;
    align-items: flex-start;
    height: 100vh;
    width: 100vw;
    margin: 0;
    padding: 0;
    top: 0;
    left: 0;
    z-index: 9;
    align-content: center;
    a { display: block; text-align: center; padding-block: 5%;}
  }
}

main {
  background-color: var(--col-beige-light);
  min-height: 80vh;
}
footer{
  color: var(--col-beige-dark);
  background-color: var(--col-blackBlue);
  height: 300px;
  text-align: center;
  font-family: Montserrat;
  display: flex;
  justify-content:center;
  align-items    :center;
  font-size: 1.5em;
  border-top: 1px solid var(--col-blackBlue);
  .social img { width: 100px; height: 100px; }
  .invertOnHover{transition:0.3s}
  .invertOnHover:hover{
    filter: invert(1);
    cursor: pointer;
  }

}

dialog {
  margin: 0;
  padding: 0;
  width : 90vw; margin-inline: 5vw;
  height: 98vh; margin-block : 1vh;
  background-color   : transparent;
  background-position: center;
  background-size    : contain;
  background-repeat  : no-repeat;
  border: none;
  &:focus-visible{border:none;outline: none;}
  &::backdrop{background-image: radial-gradient(#333333aa, #111111ee);}
}

#img-gallery{
  width: 98%; margin: 1%;
  column-width : 32rem;
  column-gap   : 1rem;
  .card {
    display      : block;            
    break-inside : avoid;      
    margin-bottom: 1rem;     
    border-radius: 12px;
    overflow     : hidden;
    box-shadow   : 0 2px 8px rgba(0,0,0,0.1);
    content-visibility: auto;
    contain-intrinsic-size: 300px;
    transition: box-shadow 0.2s;
    &:hover{
      box-shadow : 0 2px 8px rgba(0,0,0,0.1), 0 2px 10px 2px rgba(0,0,0,0.4);
      cursor     : pointer;
    }
    img {
      display      : block;
      width        : 100%;
      height       : auto; /* keep aspect ratio */
      opacity      : 0; 
      will-change  : opacity;
      transition   : opacity 1s ease-out;
      &.loaded { opacity:1; }
      /* height: 220px; object-fit: cover; */
    }
  }
}

#text { 
  margin-top: 3%;
  font-family: Montserrat;
  width: 90%; margin-inline: 5%;
  display: grid; 
  grid-template-columns: repeat(3, 33.33%);

  .cv-card {
    display: block;
    border-bottom: 1px solid var(--col-brown-dark);
    h3 { transition: color 0.3s; color: var(--col-brown-dark ); display: grid; grid-template-columns:20% 50% 30%; }
    p  { transition: color 0.3s; color: var(--col-brown-light);                                                   }
    &:hover > h3 { color: black; }
    &:hover > p { color: black; }
  }

  h2 { 
    margin-top: 0;
    margin-bottom: 50px;
  }

  img {
    border-radius: 2px;
  }

  form {
    display: grid;
    row-gap: 10px;
    width: 90%; margin-inline: 5%;
    margin-bottom: 10vh;
    textarea{resize: vertical;}
    animation: fadeIn 1s forwards;
  }
  .social      { filter: invert(1); transition: 0.2s; display: flex; justify-content: center; animation: fadeIn 1s forwards;}
  .social:hover{ filter: drop-shadow(0px 0px 5px black)}

}
@media only screen and (max-width:1400px) { #text { grid-template-columns: repeat(2, 50%); } }
@media only screen and (max-width:1000px) { #text { grid-template-columns: repeat(1,100%); } }

#sentinel{
  display    : grid;
  padding    : 1rem 0 3rem;
  place-items: center;
}
.spinner{
  width : 28px; 
  height: 28px;
  border: 3px solid transparent;
  border-radius     : 50%;
  border-top-color  : rgba(0,0,0,.3);
  border-right-color: rgba(0,0,0,.3);
  animation: spin 0.7s linear infinite;
} @keyframes spin { to { transform: rotate(360deg); } }



.fadeIn { opacity: 0; animation: fadeIn var(--duration) var(--wait) forwards; }
@keyframes fadeIn { from{opacity:0;} to{opacity:1;} } 


.social {
  position: relative;
  display: inline-block;
}
.social-tooltip {
  position: absolute;
  bottom: 100%; /* above the icon */
  left: 50%;
  transform: translateX(-50%);
  background: rgba(0,0,0,0.75);
  color: white;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 12px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
}
.social:hover .social-tooltip {
  opacity: 1;
  transform: translateX(-50%) translateY(-4px);
}
