* { box-sizing: border-box; margin: 0; padding: 0; font-family: 'AlteHaasGrotesk', sans-serif; }

html {
  background-color: #000;
}

:root {
  --text-base: 16px;
  --text-small: 14px;
  --h1: clamp(40px, 5vw, 48px);
  --h2: clamp(24px, 1.4vw, 36px);
  --h3: 20px;
  --h4: 18px;
  --h5: 16px;
  --h6: 14px;
  --fixed-bar-height: auto;
  --mobile-header-height: 120px;
}


h1 { font-size: var(--h1); }
h2 { font-size: var(--h2); }
h3 { font-size: var(--h3); }
h4 { font-size: var(--h4); }
h5 { font-size: var(--h5); }
h6 { font-size: var(--h6); }

h1, h2, h3, h4, h5, h6 {
    font-weight: normal;
    line-height: 1;
    margin: 0;
}

body { 
  font-size: var(--text-base); 
  line-height: 1;
 
}

p {
    margin: 0;
    line-height: 1;
}

small {
    font-size: var(--text-small);
}

video {
    overflow: hidden;
    overscroll-behavior: none;
    touch-action: manipulation;
}

html,
body {
  width: 100%;
  min-height: 100vh;
  background-color: #000;
}

body.home {
  background: #000;
}


body.home,
body.about,
body.contact {
  background: linear-gradient(
    180deg,
    #ceabff 0%,
    #dedede 60%,
    #665a4f 82%,
    #4722ff 98%
  );
  background-attachment: fixed;
}

/* =========================
   FIXED BAR CONTAINER
========================= */

.fixed-bar-container {
    position: sticky;
    top: 0;
    width: 100%;
    gap: 20px;

    background: #000;
    color: #dedede;

    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: var(--h6);

    padding: 10px 20px;
    z-index: 100;
}

.fixed-bar-container * {
    color: #dedede;
    text-align: center;
    font-weight: normal;
}


/* =========================
   STAR ZONE (NAV + HERO)
========================= */

.star-zone {
    position: relative;
    min-height: 98vh;
}

/* STARS */
#stars-container {
  position: fixed;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  cursor: grab;

}

.star {
  position: absolute;
  font-size: 35px;
  line-height: 1;
  user-select: none;
  will-change: transform;
  pointer-events: auto;
}

.star,
.star * {
  user-select: none;
  -webkit-user-select: none;
}

@media (max-width: 768px) {
  .star {
    pointer-events: none;
    cursor: default;

    left: 0 !important;
    top: 0 !important;

    will-change: transform;
  }
  
  #stars-container {
    position: fixed;
    inset: 0;
    overflow: visible;
    z-index: 3;
  }

}



/* =========================
   NAV
========================= */

.header { 
    background: transparent;
    position: relative; 
    z-index: 10; 
    padding: 0 20px;
    box-sizing: border-box;
   }
    
.header,
.header * {
  -webkit-user-select: none;
  user-select: none;
} 

.main-nav {
    display: grid;
    grid-template-columns: 1fr auto 1fr; 
    padding: 20px 0 0;
}

.logo { 
    text-decoration: none; 
    color: #000; 
    font-weight: normal; 
}

.logo:hover { 
    text-decoration: underline; 
}

.random-button {
  width: 200px;

  padding: 10px 0; /* controls vertical ellipse */
  border: 1px solid #000;
  border-radius: 50%;

  background: transparent;
  color: inherit;
  text-decoration: none;
  text-align: center;
  font-size: var(--h6);

  display: flex;
  align-items: center;
  justify-content: center;

  cursor: pointer;
  user-select: none;

  transition: transform 0.6s ease, background-color 0.2s ease;
}

@media (hover: hover) {
  .random-button:hover {
    background: #dedede;
    transform: rotateY(360deg);
  }
}


.nav-links {
    list-style: none;
    text-align: right;
    font-weight: normal;
    line-height: 1.1;
}

.nav-links a {
    color: #000;
    text-decoration: none;
}

.nav-links a:hover {
    text-decoration: underline;
}


/* =========================
   HERO
========================= */

.hero {
    height: calc(100svh - 140px);
    mix-blend-mode: multiply;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 2;
}

.hero img {
    max-width: 90vw;
    max-height: 90%;
    mix-blend-mode: multiply;
    pointer-events: none;
    margin-bottom: 20px;
}



/* =========================
   FOOTER
========================= */

.footer {
    background: #000;
    color: #dedede;
    padding: 20px 20px;   
    font-size: 14px;
    position: relative;
    flex-shrink: 0;
    z-index: 1;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 40px;            /* restored spacing */
    align-items: start; /* IMPORTANT */
}

/* Left */
.footer-left {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.footer-title {
    font-weight: normal;
}

/* Center */
.footer-center {
    display: flex;
    justify-content: center;
    align-items: center;
}

.footer-center img {
    width: 30px;
}

/* Right */
.footer-right {
    display: flex;
    justify-content: flex-end;
}

.footer-nav {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 2px;
    text-align: right;
}

/* Links */
.footer a {
    color: #dedede;
    text-decoration: none;
}

.footer a:hover {
    text-decoration: underline;
}






/* =========================
   RESPONSIVE + MOBILE
========================= */

@media (max-width: 768px) {

body.home,
body.about,
body.contact {
  background: linear-gradient(
    180deg,
    #ceabff 0%,
    #dedede 60%,
    #665a4f 72%,
    #4722ff 88%
  );
  background-attachment: fixed;
}

  body.projects {
  background: linear-gradient(
    180deg,
    #ceabff 0%,
    #dedede 8%,
    #665a4f 12%,
    #4722ff 14%,
    #ceabff 22%,
    #dedede 30%,
    #665a4f 35%,
    #4722ff 40%,
    #ceabff 56%,
    #dedede 60%,
    #665a4f 65%,
    #4722ff 75%,
    #ceabff 80%,
    #dedede 85%,
    #665a4f 96%,
    #4722ff 98%
  );
  }

  .nav-logo {
    text-align: left;
  }

  .nav-button {
    justify-self: center;
  }

  .nav-menu {
    justify-self: end;
    text-align: right;
  }

  .nav-links {
    text-align: right;
  }

    .random-button {
    width: 170px;
    height: 46px;

    padding: 14px 0 12px;
    border-radius: 50%;

    font-size: var(--text-small);
    line-height: 1;

    transform: none;
    transition: background-color 0.2s ease;

    -webkit-tap-highlight-color: transparent;
  }

  .random-button:hover {
    background: transparent;
    transform: none;
  }

  .random-button:active {
    background: #dedede;
  }

.hero {
    height: calc(100vh - 110px);
  }


  .footer {
    display: flex;
  }

  .footer-grid {
    flex-direction: column;
    width: 100%;
    gap: 20px;
  }

  .footer-left {
    align-items: flex-start;
    text-align: left;
  }

  .footer-center img {
    display: none;
}

  .footer-right {
    align-self: flex-end;
    text-align: right;
  }

  .footer-nav {
    align-items: flex-end;
  }
}

@media (hover: none) {
  .star {
    cursor: default;
  }
}

