*{margin: 0;
  box-sizing: border-box;
}

body { padding-bottom: 80px; }

/* SCROLLING MARQUEE */
.marquee {
  overflow: hidden;
  width: 100%;
  flex: none;
  padding-top: 4px;
}

.marquee-track {
  display: flex;
  width: max-content;
  gap: 4px;
  padding-right: 4px;      
  animation: scroll 80s linear infinite;
}

.marquee-track img {
  display: block;
  height: clamp(120px, 7.8vw, 200px);
  width: auto;
  min-width: clamp(120px, 7.8vw, 200px);     
}

@keyframes scroll {
  to { transform: translateX(-50%); }
}


/* NAME AND TITLE */
.name { flex: 1; padding: 0 0.8vw;
}

h1 {
  font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
  margin: 0.6vw 0 0;
  font-size: 10.3vw;                  
  font-weight: bold;
  line-height: 1;
  letter-spacing: -0.035em;
}


.role {
  font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
  margin: 0.5vw 0 0;
  font-size: 4.8vw;
  font-weight: bold;
  line-height: 1.1;
  letter-spacing: -0.03em;
}

@media (max-width: 700px) {
  main { padding: 0 2vw; }

  h1 {
    margin-top: 2vw;
    font-size: 17vw;
    line-height: 0.95;
  }

  h1 span { display: block; }

  .role {
    margin-top: 2.5vw;
    font-size: 8.5vw;
  }
}


/* NAV BAR */
.bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding:10px 10px 10px;
  background: #fff;
}

.nav {
  display: flex;
  gap: 4px;
}

.btn {
  display: inline-block;
  padding: 1px 4px;
  border: 1px solid #000000;
  background: #fff;
  color: #000;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 30px;
  text-decoration: none;
  cursor: pointer;
}

.info{
  padding: 2px 15px 0px 15px;
}

.info-pop {
  position: fixed;
  inset: auto;         
  right: 25px;         
  bottom: 55px;         
  margin: 0;
  padding: 6px 8px;
  border: 1px solid #000;
  background: #fff;
  color: #000;
  font: 14px/1.4 "Helvetica Neue", Helvetica, Arial, sans-serif;
  text-align: left;
  opacity: 0;
  transition:
    opacity 0.25s ease,
    display 0.25s allow-discrete,
    overlay 0.25s allow-discrete;
}

.info-pop:popover-open {
  opacity: 1;
}

.info-pop p{
  font-size: 18px;
}

.info-pop a {
  color: blue;
}

@starting-style {
  .info-pop:popover-open {
    opacity: 0;
  }
}

.btn:hover {
  background: #000;
  color: #fff;
}


/* PROJECTS PAGE */
.page-title {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 5vw;
  font-weight: bold;
  line-height: 1;
  letter-spacing: -0.03em;
  margin: 1vw 1vw 6vw;
}

.projects {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2vw;
  padding: 10px;
}

.project {
  display: block;
  color: #000;
  text-decoration: none;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.project-head {
  display: flex;
  justify-content: space-between;
  font-size: 30px;
  margin-bottom: 4px;
}

.project img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.project-type {
  font-size: 20px;
  color: #888;
  margin-top: 6px;
}

.project:hover .project-name { font-weight: bold; }


@media (max-width: 1200px) {
  .projects { grid-template-columns: repeat(2, 1fr); gap: 4vw 3vw; }
  .page-title { font-size: 9vw; margin-bottom: 8vw; }
}


@media (max-width: 620px) {
  .projects { grid-template-columns: 1fr; }
}


/* PROJECT SPECIFIC PAGE */
/* PROJECTS IMAGES */
  .splitpage{
    height: 100dvh;
    overflow: hidden;
  }


.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 100%;
  height: 100dvh;
}

.images {
  overflow-y: auto;
}

.images img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.images button {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: zoom-in;
}

.split .images button{
  border: solid rgb(203, 203, 203) 2px;
}


/* PROJECT VIDEOS */
.lightbox video {
  max-width: 100%;
  max-height: 100%;
}

.images button.is-video {
  position: relative;
}

.images button.is-video::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-style: solid;
  border-width: 22px 0 22px 36px;
  border-color: transparent transparent transparent #fff;

}


/* LIGHTBOX */
.lightbox {
  width: 100vw;
  height: 100dvh;
  max-width: none;
  max-height: none;
  padding: 2vw;
  border: 0;
  background: transparent;
  cursor: zoom-out;
}

.lightbox::backdrop {
  background: rgba(0, 0, 0, 0.5);
}

.lightbox[open] {
  display: flex;
  align-items: center;
  justify-content: center;
}

.lightbox img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.text {
  overflow-y: auto;
  padding: 0 1.6vw;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  padding-bottom: 8vw;
}


/* PROJECTS TEXT */
.text h1 {
  margin: 0 0 1vw;
  padding-bottom: 6px;
  border-bottom: 1px solid #000;
  font-size:clamp(50px, 4.8vw, 1000px);
  font-weight: bold;
  line-height: 1.1;
}

.text p {
  font-size: 24px;
  line-height: 1.25;
  padding-bottom: 10px;
}

.columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 1.5vw;
  margin-top: 2vw;
}

.column h2 {
  font-size: 24px;
  font-weight: bold;
  margin-bottom: 4px;
}

.column ul {
  
  padding-left: 10;
}

.column li {
  font-size: 24px;
  line-height: 1.25;
}


/* ABOUT PAGE */
.page-title-tight {
  margin-bottom: 0;
}

.about {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: 2vw;
}

.about-text {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: clamp(20px, 1.35vw, 50px);
  line-height: 1.2;
  padding-left: 4vw;
}

.about-image {
  display: block;
  width: 28vw;
  margin-left: 12vw;
}

@media (max-width: 1000px) {
  .about {
    grid-template-columns: 1fr;
    gap: 6vw;
  }

  .about-image {
    width: 100%;
    margin-left: 0;
    padding: 15px
  }
}


