:root{
    --white: #FFFFFF;
    --light: #FFFFED;

    --dark: #393939;
    --black: #000000;
    --gray: rgba(0, 0, 0, 0.1);

    --red: #E80051;
    --pink: #FF12AF;

    --orange: #FF6542;

    --yellow: #F6AD00;
    --yellow-10: #FFF1D0;
    --yellow-20: #FFE7A8;

    --green: #009B72;
    --emrald: #24CF54;

    --purple: #9747FF;

    --blue: #0017E8;

    --themed-primary: var(--orange);
    --themed-secondary: var(--dark);
}

/* ==========================================
BASE STYLES
========================================== */

/* Regular */
@font-face {
  font-family: "FT88";
  src: url("../fonts/FT88-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* Bold */
@font-face {
  font-family: "FT88";
  src: url("../fonts/FT88-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* Italic */
@font-face {
  font-family: "FT88";
  src: url("../fonts/FT88-Italic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

/* Gothique */
@font-face {
  font-family: "FT88 Gothique";
  src: url("../fonts/FT88-Gothique.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* School */
@font-face {
  font-family: "FT88 School";
  src: url("../fonts/FT88-School.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* ==========================================
TYPOGRAPHY
========================================== */

header{
  transition: transform 0.3s ease, background-color 0.5s ease;
}

h1{
    font-family: "IBM Plex Mono", monospace;
    font-weight: 400;
    font-style: normal;
    font-size: 14px;
    margin: 0;
    text-transform: uppercase;
    margin-bottom: 10px;
    opacity: 0.5;
}

h2{
    font-family: "IBM Plex Mono", monospace;
    font-weight: 400;
    font-style: normal;
    font-size: 14px;
    margin: 0;
    text-transform: uppercase;
    opacity: 0.5;
}

h3{
  font-family: Geologica, sans-serif;
  font-weight: 500;
  margin-bottom: 0.3rem;
}

p{
  margin: 0;
  margin-bottom: 1em;  
  line-height: 1.6; 
}

.light-text {
    opacity: 0.6;
}


/* ==========================================
LINKS
========================================== */

a {
  font-weight: 400;
  transition: all 0.2s ease;
  text-decoration: underline;
  text-decoration-style: wavy ;
  text-decoration-color: var(--gray);
  color: var(--themed-primary);
  text-underline-offset: 3px;
}

a:hover {
  background-color: var(--yellow-10);
  text-decoration-color: var(--themed-primary);
}

.navigation a.active {
  background-color: var(--yellow-20);
  text-decoration-color: var(--themed-primary);
}

img {
  max-width: 100%;
  height: auto;
}


/* ==========================================
LAYOUT
========================================== */
body {
    font-family: "Geologica", sans-serif;
    font-weight: 300;
    font-style: normal;
    background-color: var(--themed-primary);
    margin: 0;
    font-size: 14px;
    position: relative;
}

::selection {
  background-color: var(--themed-primary);
  color: var(--themed-secondary);
}

hr {
  border: none;
  border-top: 2px solid var(--gray);
  margin-bottom: 1em;
}

.container {
  padding: 3em 0;
}

.narrow-container {
  max-width: 550px;
}

/* ==========================================
HEADER
========================================== */

.header-content{
  position: relative;
  transition: padding 0.1s ease-out;
  overflow: hidden;
  min-height: 180px;
}

.navigation{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
    padding: 20px;
    position: sticky;
    top: 0;
    transition: color 0.3s ease;
    margin-bottom: 5rem;
    background-color: var(--white);
    z-index: 99;
    flex-wrap: wrap;
}

.navigation > a {
    white-space: nowrap;
}

.navigation-center{
  display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
}
.navigation-right {
    display: flex;
    gap: 30px;
    white-space: nowrap;
}

/* Tablet and smaller */
@media (max-width: 768px) {
    .navigation {
        gap: 20px;
        padding: 15px;
    }
    
    .navigation-right {
        position: static !important;
        gap: 20px;
    }
}

/* Mobile */
@media (max-width: 480px) {
    .navigation {
        flex-direction: column;
        gap: 15px;
        padding: 15px;
    }
    
    .navigation-right {
        gap: 15px;
    }
}

.heading-content{
    padding: 40px 6em;
    text-align: center;
    color: var(--themed-secondary);
    position: relative;
    z-index: 3;
    transition: padding-top 400ms cubic-bezier(0.25, 0.46, 0.45, 0.94), 
              padding-bottom 400ms cubic-bezier(0.25, 0.46, 0.45, 0.94);

}
.heading-quote {
    margin: 5px 0;
    font-family: 'FT88 School', sans-serif;
    font-size: xx-large;
    margin-bottom: 0px;
    transition: color 0.3s ease;
    transition: color 400ms cubic-bezier(0.25, 0.46, 0.45, 0.94);

}

.pixel-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}


/* ==========================================
MAIN CONTENT
========================================== */


.main-content{
    border-radius: 20px;
    background: var(--white);
    min-height: 100vh;
    margin: 0 2em;
    border-top: 3px solid var(--gray);;
    padding: 0 6em;
    color: var(--dark);
    z-index: 50;
    box-shadow: rgba(50, 50, 93, 0.15) 0px 50px 100px 20px, rgba(0, 0, 0, 0.1) 0px 30px 60px -30px, rgba(10, 37, 64, 0.35) 0px -2px 6px 0px inset;
    transition: all 0.6s ease;
    position: relative;
}

.main-content.expanded {
  margin: 0;
  min-height: 100vh;
  border-radius: 0;
  transform: translateY(-13em);
}

.main-content.default-expanded {
  margin: 0;
  min-height: 100vh;
  border-radius: 0;
  padding-bottom: 6em;
}

.main-content.collapsed {
  margin: 0 2em;
  border-radius: 20px;
  transform: translateY(13em);
}


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


footer {
  border-radius: 20px;
  background: var(--white);
  margin: 2em;
  border-bottom: 3px solid var(--gray);
  padding: 2em 6em;
  color: var(--dark);
  z-index: 10;
  box-shadow: rgba(50, 50, 93, 0.15) 0px 50px 100px 20px, rgba(0, 0, 0, 0.1) 0px 30px 60px -30px, rgba(10, 37, 64, 0.35) 0px -2px 6px 0px inset;
}

.footer-head {
  font-family: "FT88 Gothique", sans-serif;
  font-size: 3rem;
  margin: auto 0;
  margin: 3rem 0;
  color: var(--themed-primary);
  line-height: 1;
  text-align: center;
}

.footer-content {
  max-width: 100%;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 4rem 2rem;
}

.footer-column ul {
  list-style: none;
  padding: 0;
}

.footer-column li {
  margin-bottom: 0.75rem;
}

.footer-bottom {
  margin: 1rem auto 0;
  padding-top: 2rem;
  border-top: 1px solid #e0e0e0;
  font-size: 0.9rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  color: var(--dark);
}

.footer-bottom p {
  margin-bottom: 0.5rem;
}

.footer-bottom li {
  list-style: none;
  margin-top: 0.5rem;
}

/* ==========================================
RESPONSIVE BREAKPOINTS
========================================== */

/* Tablet and below (max-width: 1024px) */
@media (max-width: 1024px) {
  .heading-content {
    padding: 40px 3em;
  }

  .main-content {
    padding: 0 2em;
  }

  footer {
    padding: 2em 2em;
  }

  .footer-content {
    gap: 3rem 1.5rem;
  }
}

/* Small tablet and large mobile (max-width: 768px) */
@media (max-width: 768px) {
  body {
    font-size: 13px;
  }

  h1, h2 {
    font-size: 12px;
  }

  .navigation {
    gap: 20px;
    padding: 15px 10px;
    margin-bottom: 3rem;
    flex-wrap: wrap;
  }

  .heading-content {
    padding: 30px 2em;
  }

  .heading-quote {
    font-size: x-large;
  }

  .main-content {
    margin: 0 1em;
    padding: 0 2em;
    border-radius: 15px;
  }

  .main-content.expanded {
    transform: translateY(-10em);
  }

  .main-content.collapsed {
    margin: 0 1em;
    border-radius: 15px;
    transform: translateY(10em);
  }

  footer {
    margin: 1em;
    padding: 2em 2em;
    border-radius: 15px;
  }

  .footer-head {
    font-size: 2rem;
    margin: 2rem 0;
  }

  .footer-content {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 2rem 1rem;
  }

  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
  }
}

/* Mobile (max-width: 480px) */
@media (max-width: 480px) {
  body {
    font-size: 12px;
  }

  h1, h2 {
    font-size: 11px;
  }

  .navigation {
    gap: 15px;
    padding: 12px 5px;
    margin-bottom: 2rem;
    border-bottom: solid 1px var(--gray);
  }

  .navigation a {
    font-size: 0.9em;
  }

  .heading-content {
    padding: 20px 1em;
  }

  .heading-quote {
    font-size: large;
  }

  .header-content {
    min-height: 120px;
  }

  .main-content {
    margin: 0 0.5em;
    padding: 0 1.5em;
    border-radius: 10px;
  }

  .main-content.expanded {
    transform: translateY(-8em);
  }

  .main-content.collapsed {
    margin: 0 0.5em;
    border-radius: 10px;
    transform: translateY(8em);
  }

  .main-content.default-expanded {
    margin: 0;
    border-radius: 0;
    padding-bottom: 4em;
  }

  footer {
    margin: 2em 0.5em;
    padding: 1.5em 1.5em;
    border-radius: 10px;
  }

  .footer-head {
    font-size: 1.5rem;
    margin: 1.5rem 0;
  }

  .footer-content {
    grid-template-columns: 1fr;
    gap: 0;
  }
  
  .footer-column ul {
    display: flex;
    gap: 0 15px;
    flex-wrap: wrap;
  }
  .footer-bottom {
    font-size: 0.8rem;
    gap: 10px;
  }

  .container {
    margin-bottom: 2em;
  }
}

/* Extra small mobile (max-width: 320px) */
@media (max-width: 320px) {
  .navigation {
    gap: 10px;
    padding: 10px 5px;
  }

  .heading-content {
    padding: 15px 0.75em;
  }

  .main-content {
    padding: 0 1em;
  }

  footer {
    padding: 1.5em 1em;
  }

  .footer-head {
    font-size: 1.25rem;
  }
}