:root {
  --color-orange: #fc763d;
  --color-blue: #5345fc;
  --color-black: #000000;
  --color-white: #ffffff;
  --font-scale: 1;
  --padding-scale: 1;
}

@media screen and (max-width: 768px) {
  :root {
    --font-scale: 0.8;
    --padding-scale: 0.6;
  }
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: Arial, sans-serif;
  line-height: 1.5;
  margin: 0;
  padding: 0;
}

h1 {}

h2 {
  font-family: "cy", sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: calc(50px * var(--font-scale));
  line-height: calc(58px * var(--font-scale));
  text-transform: uppercase;
  margin-bottom: 20px;
}

h3 {
  font-family: "cy", sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: calc(40px * var(--font-scale));
  line-height: calc(50px * var(--font-scale));
  text-transform: uppercase;
}

p {
  font-family: "neue-haas-grotesk-display", sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: calc(25px * var(--font-scale));
  line-height: 29px;
  letter-spacing: 1.2px;
  word-spacing: 1px;
  margin-bottom: 29px;
}

p strong {
  font-family: "neue-haas-grotesk-display", sans-serif;
  font-weight: 600;
  font-style: normal;
}

.container {
  display: flex;
  flex-direction: column;
  width: 100vw;
  max-width: 1600px;
  margin: 0 auto 30px auto;

  @media screen and (max-width: 1600px) {
    margin-bottom: 0;
  }
}

.animation {
  background-color: var(--color-white);
  color: var(--color-black);
  padding: 10px;
}

.animation-mobile {
  background-color: var(--color-white);
  color: var(--color-black);
  padding: 7px;
  display: none;
}

@media screen and (max-width: 768px) {
  .animation {
    display: none;
  }

  .animation-mobile {
    display: block;
  }
}

.animation video, .animation-mobile video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.content {
  display: flex;
}

.column {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.column.left {
}

.column.right {
}

.call-for-contributions {
  background-color: var(--color-blue);
  color: var(--color-black);
  border-style: solid;
  border-color: var(--color-black);
  border-width: 2px 1px 1px 2px;
  padding: calc(30px * var(--padding-scale));
  height: 200px;
  align-content: center;

  @media screen and (max-width: 768px) {
    border-width: 1px;
  }
}

.call-for-contributions h2 {
  margin-bottom: 10px;
}

.sdnc-2025-information {
  background-color: var(--color-black);
  color: var(--color-white);
  border-style: solid;
  border-color: var(--color-black);
  border-width: 1px 1px 1px 2px;
  padding: calc(30px * var(--padding-scale));

  @media screen and (max-width: 768px) {
    border-width: 1px;
  }
}

.important-dates-title {
  background-color: var(--color-blue);
  color: var(--color-black);
  border-style: solid;
  border-color: var(--color-black);
  border-width: 1px 1px 1px 2px;
  padding: calc(30px * var(--padding-scale));
  height: 200px;
  align-content: center;

  @media screen and (max-width: 768px) {
    border-width: 1px 1px 0 1px;
  }
}

.important-dates-title h2 {
  margin-bottom: 10px;
}

.important-dates {
  background-color: var(--color-white);
  color: var(--color-black);
  border-style: solid;
  border-color: var(--color-black);
  border-width: 0 1px 1px 2px;

  @media screen and (max-width: 768px) {
    border-width: 1px 1px 0 1px;
  }
}

.phase {
  display: flex;
  flex-direction: row;
}

.period {
  border-style: solid;
  border-color: var(--color-black);
  border-width: 1px 1px 1px 0;
  padding: calc(30px * var(--padding-scale));
  width: 40%;

  @media screen and (max-width: 768px) {
    border-width: 0 1px 1px 0;
  }
}

.period-information {
  border-style: solid;
  border-color: var(--color-black);
  border-width: 1px 0 1px 1px;
  padding: calc(30px * var(--padding-scale));
  width: 60%;

  @media screen and (max-width: 768px) {
    border-width: 0 0 1px 0;
  }
}

.disclaimer {
  background-color: var(--color-blue);
  color: var(--color-black);
  border-style: solid;
  border-color: var(--color-black);
  border-width: 0 1px 1px 2px;
  padding: calc(30px * var(--padding-scale));
  align-content: center;

  @media screen and (max-width: 768px) {
    border-width: 0 1px 0 1px;
  }
}

.disclaimer p {
  margin-bottom: 10px;
}

.hosts-sponsors, .hosts-sponsors-mobile {
  flex: 1; /* fill height to match other column */
  align-content: flex-end;
  background-color: var(--color-black);
  color: var(--color-white);
  border-style: solid;
  border-color: var(--color-black);
  border-width: 1px 1px 1px 2px;
  padding: calc(30px * var(--padding-scale));

  @media screen and (max-width: 768px) {
    border-width: 1px;
  }
}

.hosts-sponsors {
  @media screen and (max-width: 768px) {
    display: none;
  }
}

.hosts-sponsors-mobile {
  display: none;
  @media screen and (max-width: 768px) {
    display: block;
  }
}

.hosts-logos, .sponsors-logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap: 0 40px;
  margin: 0 0 40px -30px;
  border-style: solid;
  border-color: var(--color-black);
  border-width: 1px 1px 2px 2px;
  padding: 0 calc(30px * var(--padding-scale));

  @media screen and (max-width: 768px) {
    border-width: 1px;
    margin-left: calc(-30px * var(--padding-scale));
  }
}

.sponsors-logos {
  gap: 30px;
  margin-bottom: 0;
}

.hosts-logos img {
  max-height: 80px;
  object-fit: contain;
}

.sponsors-logos img {
  max-height: 40px;
  object-fit: contain;
}

.submission-link, .submission-link-mobile {
  background-color: var(--color-orange);
  color: var(--color-black);
  border-style: solid;
  border-color: var(--color-black);
  border-width: 2px 2px 1px 1px;
  padding: calc(30px * var(--padding-scale));
  height: 200px;
  align-content: center;

  @media screen and (max-width: 768px) {
    border-width: 1px 1px 0 1px;
  }
}

.submission-link {
  @media screen and (max-width: 768px) {
    display: none;
  }
}

.submission-link-mobile {
  display: none;
  @media screen and (max-width: 768px) {
      display: block;
  }
}

.submission-link h2, .submission-link-mobile h2 {
  margin-bottom: 10px;
}

.submission-link a, .submission-link-mobile a, .period-information a, .disclaimer a {
  color: var(--color-black);
  text-decoration: underline;
}

.description {
  flex: 1; /* fill height to match other column */
  background-color: var(--color-white);
  color: var(--color-black);
  border-style: solid;
  border-color: var(--color-black);
  border-width: 1px 2px 2px 1px;
  padding: calc(30px * var(--padding-scale));

  @media screen and (max-width: 768px) {
    border-width: 1px;
  }
}

@media screen and (max-width: 1024px) {
  .content {
    flex-direction: column;
  }
}
