@font-face {
  font-family: 'Cera Pro';
  src: url('assets/Cera-Pro-Bold.woff2') format('woff2'),
    url('assets/Cera-Pro-Bold.woff') format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Cera Pro';
  src: url('assets/Cera-Pro-Medium.woff2') format('woff2'),
    url('assets/Cera-Pro-Medium.woff') format('woff');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Cera Pro';
  src: url('assets/Cera-Pro-Regular.woff2') format('woff2'),
    url('assets/Cera-Pro-Regular.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Cera Stencil';
  src: url('assets/Cera-Stencil-Medium.woff2') format('woff2'),
    url('assets/Cera-Stencil-Medium.woff') format('woff');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

:root {
  --blue: #126DFF;
  --sky-blue: #97E7FF;
  --dark-blue: #00203F;
  --white: #FFFFFF;
  --pad: 80px;
  --red: #FF4D5B;
}

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

html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Cera Pro', sans-serif;
  font-weight: 400;
  color: var(--dark-blue);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 20px;
  line-height: 26px;
  letter-spacing: -4%;
  --hsf-default-background__padding: 32px;
  text-wrap-style: pretty;
}

.wrap {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 var(--pad);
}

/* ─── HERO ─── */
.hero {
  background: var(--blue);
  position: relative;
  overflow: hidden;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 10.19vw), 0 100%);
}

.hero-copy {
  padding-top: 80px;
  padding-bottom: 288px;
  max-width: 761px;
  color: white;
  position: relative;
  z-index: 2;
}

h1 {
  font-family: 'Cera Stencil', sans-serif;
  font-size: 130px;
  line-height: 130px;
  font-weight: 500;
  margin-bottom: 32px;
}

.hero-copy h1 span {
  display: block;
}

h2 {
  font-family: 'Cera Pro', sans-serif;
  font-size: 30px;
  line-height: 34px;
  font-weight: 500;
  margin-bottom: 32px;
  max-width: 435px;
}

h3 {
  font-weight: 500;
  font-size: 24px;
  line-height: 26px;
  text-align: center;
  margin-bottom: 8px;
}

a {
  color: var(--dark-blue);
}

input {
  letter-spacing: -4%;
}

.form-box [data-hsfc-id=Renderer] .hsfc-Button,
.btn {
  display: inline-block;
  width: 302px;
  padding: 16px;
  text-align: center;
  background: var(--white);
  color: var(--blue);
  text-decoration: none;
  border-radius: 100px;
  font-family: 'Cera Pro', sans-serif;
  font-size: 30px;
  line-height: 34px;
  font-weight: 500;
  letter-spacing: -4%;
  transition: background 0.2s ease, color 0.2s ease;
}

@media (hover: hover) {
  .form-box [data-hsfc-id=Renderer] .hsfc-Button:hover,
  .btn:hover {
    background: var(--dark-blue) !important;
    transform: none !important;
    color: var(--white) !important;
  }
}

.hero-art {
  position: absolute;
  right: 0;
  top: 0;
  width: 667px;
  z-index: 1;
  pointer-events: none;
}

.hero-art img {
  width: 100%;
  height: auto;
  display: block;
}

/* ─── ANIMATIONS ─── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

.fade-up {
  opacity: 0;
}
.fade-up.in-view {
  animation: fadeUp 0.6s ease-out forwards;
}
@media (prefers-reduced-motion: reduce) {
  .fade-up, .fade-up.in-view { opacity: 1; transform: none; animation: none; }
}

/* ─── CONTENT ─── */
.content {
  padding: 80px 0 100px;
}

.content-grid {
  display: flex;
  gap: 133px;
  align-items: flex-start;
}

.col-left {
  flex: 1;
  position: sticky;
  top: 32px;
}

.confirmation-page .col-left img {
  width: 100%;
  margin-top: 32px;
  border-radius: 12px;
}

.instagram-handle {
  margin-top: 20px;
  display: flex;
  gap: 8px;
  font-weight: 500;
  font-size: 24px;
  line-height: 26px;
  text-decoration: none;
}

.col-right {
  min-width: 0;
  flex: 0 0 628px;
}

.rule {
  border: none;
  border-top: 1px solid rgba(0, 0, 0, 0.13);
  margin-bottom: 8px;
}

.label {
  color: var(--dark-blue);
  margin-bottom: 8px;
  font-weight: 400;
  font-size: 20px;
  line-height: 26px;
}

.body-text {
  font-weight: 500;
  font-size: 24px;
  line-height: 26px;
}

/* Prize */
.left-row2 {
  margin-top: 32px;
}

.prize-card {
  display: flex;
  overflow: hidden;
  margin-bottom: 12px;
  border-radius: 12px;
}

.prize-logo-panel {
  width: 50%;
  background: #000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 28px 28px;
}

.prize-logo-panel img {
  max-width: 230px;
  width: 100%;
  height: auto;
}

.prize-info-panel {
  width: 50%;
  padding: 40px 36px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
}

.porter .prize-logo-panel {
  background: #152C55;
}
.yzd .prize-logo-panel {
  background: #00203F;
}
.yzd .prize-logo-panel img {
  width: 85%;
}

.porter .prize-info-panel {
  background: #D4FF50;
}

.monos .prize-info-panel {
  background: #FF4D5B;
}
.yzd .prize-info-panel {
  background: #A3E8CF;
}

.prize-info-panel strong {
  display: block;
  margin-bottom: 8px;
}

.whats-next h2 {
  font-size: 48px;
  line-height: 48px;
  max-width: none;
}

.whats-next {
  background-color: var(--sky-blue);
  padding: 126px 32px 111px 32px;
  clip-path: polygon(0 4.44vw, 100% 0, 100% calc(100% - 4.44vw), 0 100%);
  margin-top: -4.44vw;
  font-weight: 500;
  font-size: 24px;
  line-height: 26px;
}

/* Form box */
.form-box {
  background: var(--blue);
  color: white;
  position: relative;
  min-height: 1000px;
  padding: 126px 32px 111px 32px;
  clip-path: polygon(0 4.44vw, 100% 0, 100% calc(100% - 4.44vw), 0 100%);
  margin-top: -4.44vw;
}

.form-box * {
  font-family: 'Cera Pro', sans-serif !important;
}

.form-box [data-hsfc-id=Renderer] input[aria-invalid="true"] {
  border: 1.5px solid var(--red);
  background: linear-gradient(0deg, rgba(255, 77, 91, 0.25), rgba(255, 77, 91, 0.25)), #FFFFFF;
}

.form-box h2 {
  font-weight: 500;
  font-size: 48px;
  line-height: 48px;
  letter-spacing: -4%;
  margin: 0 0 20px;
}

/* ─── HS overwrites ─── */
.form-box [data-hsfc-id=Renderer] .hsfc-Step .hsfc-Step__Content {
  padding: 0;
}

.form-box [data-hsfc-id=Renderer] .hsfc-RichText p,
.form-box [data-hsfc-id=Renderer] .hsfc-FieldLabel {
  font-weight: 400;
  font-size: 20px;
  line-height: 24px;
  letter-spacing: -4%;
}

.form-box [data-hsfc-id=Renderer] .hsfc-ErrorAlert {
  color: white;
  background-color: var(--red);
  font-weight: 400;
  font-size: 16px;
  line-height: 20px;
  text-align: center;
  color: #000000;
  padding-top: 8px;
  padding-bottom: 8px;
  border-radius: 4px;
}
.form-box [data-hsfc-id=Renderer] .hsfc-NavigationRow {
  margin-top: 20px;
}
.form-box [data-hsfc-id=Renderer] .hsfc-NavigationRow .hsfc-ErrorAlert {
  padding-top: 16px;
  padding-bottom: 16px;
}

.form-box [data-hsfc-id=Renderer] .hsfc-CheckboxInput,
.form-box [data-hsfc-id=Renderer] .hsfc-CheckboxFieldGroup__Options label>input {
  width: 26px;
  height: 26px;
  border-radius: 4px;
  margin-right: 4px;
}

.form-box [data-hsfc-id=Renderer] .hsfc-RadioFieldGroup__Options label>input {
  width: 20px;
  height: 20px;
}

.form-box [data-hsfc-id=Renderer] .hsfc-Step__Content .hsfc-Row:nth-child(3),
.form-box [data-hsfc-id=Renderer] .hsfc-Step__Content .hsfc-Row:nth-child(4) {
  margin-bottom: 32px;
}

.form-box [data-hsfc-id=Renderer] .hsfc-Step__Content .hsfc-Row:nth-child(5)>div:after {
  content: '';
  display: block;
  height: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.5);
  margin-top: 20px;
}

.form-box [data-hsfc-id=Renderer] .hsfc-CheckboxField label {
  align-items: self-start;
}

.form-box [data-hsfc-id=Renderer] .hsfc-Button {
  width: 229px;
}

/* ─── STRIPES ─── */
.stripes {
  background: var(--dark-blue) url('assets/stripes.svg') 7px bottom / contain repeat-x;
  height: 303px;
}

/* ─── FOOTER ─── */
footer {
  background: var(--dark-blue);
  color: white;
  clip-path: polygon(0 10.19vw, 100% 0, 100% 100%, 0 100%);
}

footer .wrap {
  padding-top: 160px;
  padding-bottom: 80px;
}

.footer-inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

.footer-logo img {
  width: 200px;
  display: block;
}

.footer-tagline {
  font-weight: 500;
  font-size: 60.62px;
  line-height: 65.68px;
  letter-spacing: -4%;
  margin-bottom: 12px;
}

.footer-copy {
  font-weight: 400;
  font-size: 16px;
  line-height: 26px;
  letter-spacing: -4%;
}

/* ─── Confirmation Page ─── */
.confirmation-page .hero-copy {
  max-width: 100%;
  padding-bottom: 164px;
}

/* ─── SMALL DESKTOP ─── */
@media (max-width: 1280px) {
  .content-grid {
    flex-direction: column;
    gap: 64px;
  }

  .col-right {
    flex: none;
    width: 100%;
  }

  .form-box {
    clip-path: none;
    padding: 32px;
    margin-top: auto;
  }

  .col-left {
    position: relative;
    top: auto;
  }
}

.mobile-only {
  display: none;
}

.desktop-only {
  display: block;
}

/* ─── MOBILE ─── */
@media (max-width: 1024px) {
  .mobile-only {
    display: block;
  }

  .desktop-only {
    display: none;
  }

  :root {
    --pad: 16px;
  }

  body {
    font-size: 16px;
    line-height: 20px;
  }

  .hero {
    clip-path: none;
  }

  .confirmation-page .hero {
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 10.19vw), 0 100%);
  }

  .confirmation-page .hero-copy {
    padding-bottom: 56px;
    padding-top: 40px;
  }

  .confirmation-page h1 {
    margin-bottom: 24px;
  }

  .confirmation-page .col-left {
    margin-bottom: 84px;
  }

  .confirmation-page .whats-next h2 {
    font-weight: 400;
    font-size: 16px;
    line-height: 20px;
  }

  .hero::after {
    display: none;
  }

  .hero-copy-mobile {
    color: white;
    max-width: 100%;
    height: 603px;
    padding: 32px 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }

  .form-box [data-hsfc-id=Renderer] .hsfc-Button {
    font-size: 20px;
    line-height: 24px;
    width: 187px;
  }
  .btn {
    width: 187px;
    font-size: 20px;
    line-height: 24px;
    color: var(--dark-blue);
  }
  @media (hover: hover) {
    .btn:hover {
      color: white !important;
      background-color: var(--blue) !important;
    }
  }

  h1 {
    font-size: 56px;
    line-height: 56px;
    margin: 0;
    z-index: 1;
  }

  h2 {
    font-size: 20px;
    line-height: 24px;
  }

  h3 {
    font-size: 20px;
    line-height: 24px;
    margin: 0;
  }

  h1.takeoff {
    left: calc(100% - 193px);
    bottom: 7.5vw;
    display: block;
    position: relative;
  }

  .hero-art {
    width: 100%;
    height: 100%;
    z-index: 0;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    margin-top: 30px;
  }

  .hero-art img {
    width: 400px;
  }

  .hero-tagline-mobile {
    margin-top: -10.19vw;
    display: block;
    background: var(--dark-blue);
    color: white;
    padding: calc(10.19vw + 40px) 64px;
    text-align: center;
    clip-path: polygon(0 10.19vw, 100% 0, 100% 100%, 0 calc(100% - 10.19vw));
  }

  .hero-tagline-mobile h2 {
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 21px;
  }

  .hsfc-RadioFieldGroup__Options label>input {
    width: 16px;
    height: 16px;
  }

  .label {
    font-size: 16px;
    line-height: 20px;
  }

  .body-text {
    font-size: 20px;
    line-height: 24px;
  }

  .left-row2 {
    margin-top: 64px;
  }

  .content {
    padding: 40px 0 0 0;
  }

  .content-grid {
    flex-direction: column;
    gap: 0;
  }

  .col-left {
    flex: none;
    width: 100%;
    margin-bottom: 48px;
  }

  .col-right {
    flex: none;
    width: calc(100% + 2 * var(--pad));
    margin-left: calc(-1 * var(--pad));
    margin-right: calc(-1 * var(--pad));
  }

  .prize-card {
    flex-direction: column;
  }

  .prize-logo-panel, .prize-info-panel {
    flex: none;
    width: 100%;
  }

  .prize-logo-panel {
    min-height: 169px;
  }

  .prize-info-panel {
    padding: 16px;
  }

  .prize-info-panel h3 br {
    display: none;
  }

  .whats-next {
    clip-path: polygon(0 10.19vw, 100% 0, 100% calc(100% - 10.19vw), 0 100%);
    margin-top: -10.19vw;
    padding-top: calc(10.19vw + 40px);
    padding-bottom: calc(20vw + 40px);
    text-align: center;
    font-size: 20px;
    line-height: 24px;
  }

  .instagram-handle {
    font-size: 20px;
    margin-top: 8px;
    line-height: 24px;
  }

  .form-box {
    padding-bottom: 28vw;
    padding-left: 16px;
    padding-right: 16px;
  }

  .whats-next h2,
  .form-box h2 {
    font-size: 36px;
    line-height: 40px;
  }

  .form-box [data-hsfc-id=Renderer] .hsfc-RichText p, .form-box [data-hsfc-id=Renderer] .hsfc-FieldLabel {
    font-size: 16px;
    line-height: 20px;
  }

  .form-box [data-hsfc-id=Renderer] .hsfc-Row {
    display: block;
  }

  .form-box [data-hsfc-id=Renderer] .hsfc-Step__Content .hsfc-Row:nth-child(3),
  .form-box [data-hsfc-id=Renderer] .hsfc-Step__Content .hsfc-Row:nth-child(4) {
    margin-bottom: 24px;
  }

  .form-box [data-hsfc-id=Renderer] .hsfc-Step__Content .hsfc-Row:nth-child(2)>div:first-child,
  .form-box [data-hsfc-id=Renderer] .hsfc-Step__Content .hsfc-Row:nth-child(3)>div:first-child {
    margin-bottom: 24px;
  }

  .form-box [data-hsfc-id=Renderer] .hsfc-CheckboxInput, .form-box [data-hsfc-id=Renderer] .hsfc-CheckboxFieldGroup__Options label>input {
    width: 20px;
    height: 20px;
  }
  .form-box [data-hsfc-id=Renderer] .hsfc-RadioFieldGroup__Options>*:not(:last-child),
  .form-box [data-hsfc-id=Renderer] .hsfc-CheckboxFieldGroup__Options>*:not(:last-child) {
    margin-bottom: 16px;
  }

  footer {
    padding: 0;
    margin-top: -20vw;
    clip-path: polygon(0 10.19vw, 100% 0, 100% 100%, 0 100%);
  }

  footer .wrap {
    padding: 96px 32px 52px 32px;
  }

  .footer-logo img {
    width: 96px;
  }

  .footer-tagline {
    font-size: 24px;
    line-height: 26px;
  }

  .footer-inner {
    align-items: center;
  }

  .footer-copy {
    text-align: center;
    padding-top: 20px;
    font-size: 16px;
    line-height: 20px;
  }

  .stripes {
    background-size: 284px;
    height: 157px;
  }
}