 :root {
  --bg: #1b1b1b;
  --white: #f7f7f7;
  --blue: #a8bfd8;
  --max-width: 1360px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--bg); }
body {
  margin: 0;
  background: var(--bg);
  color: var(--white);
  font-family: "Outfit", Arial, sans-serif;
  font-size: 17px;
  line-height: 1.65;
}
.site-header {
  position: absolute;
  z-index: 10;
  top: 0; left: 0;
  width: 100%;
  padding: 18px 2.2%;
  pointer-events: none;
}
.brand { display: inline-block; pointer-events: auto; }
.brand img { display: block; width: clamp(100px, 7.2vw, 145px); height: auto; }
.hero {
  position: relative;
  min-height: min(700px, 75vw);
  height: 82vh;
  max-height: 850px;
  display: flex;
  align-items: flex-start;
  background: #111 url("assets/hero-cyclist.jpg") center 53% / cover no-repeat;
  overflow: hidden;
}
.hero-shade {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.22) 47%, rgba(0,0,0,.12) 100%);
}
.hero-copy {
  position: relative;
  z-index: 1;
  width: min(68%, 1000px);
  margin: 0 auto;
  padding-top: clamp(150px, 10vw, 225px);
}
.hero h1 {
  color: var(--blue);
  font-size: clamp(30px, 2.7vw, 54px);
  line-height: 1.16;
  font-weight: 700;
  margin: 0 0 24px;
  letter-spacing: -.025em;
}
.hero p {
  color: var(--white);
  max-width: 1000px;
  margin: 0;
  font-weight: 800;
  font-size: clamp(16px, 1.25vw, 23px);
  line-height: 1.5;
}
.content-section {
  position: relative;
  isolation: isolate;
  min-height: 330px;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding: 68px 5.5%;
}
.section-copy {
  position: relative;
  z-index: 2;
  width: min(68%, 1080px);
  margin-left: max(0px, calc((100vw - var(--max-width)) / 2));
}
.content-section h2 {
  font-size: clamp(25px, 1.9vw, 38px);
  line-height: 1.25;
  margin: 0 0 28px;
  font-weight: 700;
  letter-spacing: -.018em;
}
.content-section p {
  color: var(--blue);
  font-size: clamp(16px, 1.12vw, 22px);
  line-height: 1.6;
  font-weight: 500;
  margin: 0 0 22px;
}
.section-with-mark { min-height: 360px; }
.letter-mark {
  position: absolute;
  z-index: 1;
  right: 10%;
  top: 50%;
  transform: translateY(-50%);
  /* All letter artwork uses the same square transparent canvas.
     A shared height keeps the visible V / E / L / O lettering consistent. */
  width: clamp(150px, 13vw, 220px);
  height: clamp(150px, 13vw, 220px);
  object-fit: contain;
  object-position: center;
}
.mark-v, .mark-f, .mark-l, .mark-o { width: clamp(150px, 13vw, 220px); }
.join { min-height: 390px; }
.survey { min-height: 330px; }
.survey .section-copy > p:first-child { max-width: 1050px; }
.survey-button {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
  padding: 10px 16px;
  color: #202020;
  background: #f7f7f7;
  border: 1px solid #f7f7f7;
  border-radius: 5px;
  text-decoration: none;
  font-size: 17px;
  line-height: 1.5;
  font-weight: 800;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
.survey-button:hover { background: var(--blue); border-color: var(--blue); transform: translateY(-2px); }
.form-note { display: none; font-size: 13px !important; opacity: .75; margin-top: 10px !important; }
.closing { min-height: 330px; }
.bear-section {
  min-height: 440px;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 55px 24px 70px;
}
.bear-section img {
  width: min(330px, 55vw);
  max-height: 500px;
  object-fit: contain;
}
.site-footer {
  border-top: 1px solid rgba(255,255,255,.12);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 28px 5.5%;
  color: var(--blue);
  font-size: 14px;
}
.footer-wordmark { width: 105px; height: auto; }
.site-footer p { margin: 0; }
.site-footer span { white-space: nowrap; }
@media (min-width: 1600px) {
  .hero { height: 82vh; }
  .content-section { padding-left: max(5.5%, calc((100vw - 1360px) / 2)); padding-right: max(5.5%, calc((100vw - 1360px) / 2)); }
}
@media (max-width: 700px) {
  body { font-size: 16px; }
  .site-header { padding: 16px 7.2%; }
  .brand img { width: clamp(145px, 31vw, 225px); }

  /* Keep the hero image-led on mobile, while leaving room for the larger wordmark. */
  .hero {
    min-height: 590px;
    height: 78vh;
    max-height: 760px;
    background-position: 52% center;
  }
  .hero-shade { background: linear-gradient(180deg, rgba(0,0,0,.58), rgba(0,0,0,.18) 80%); }
  .hero-copy { width: auto; margin: 0 7.2%; padding-top: 160px; }
  .hero h1 { font-size: clamp(30px, 8vw, 42px); margin-bottom: 20px; }
  .hero p { font-size: 16px; max-width: 490px; }

  /* Mobile layout follows the Google Sites reference: copy first, then a bold
     oversized white letter as its own visual beat rather than a faint watermark. */
  .content-section,
  .section-with-mark {
    min-height: unset;
    padding: 54px 7.2% 48px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }
  .section-copy { width: 100%; margin: 0; }
  .content-section h2 {
    font-size: clamp(27px, 5.8vw, 36px);
    line-height: 1.38;
    margin-bottom: 28px;
    max-width: 100%;
  }
  .content-section p {
    font-size: clamp(17px, 4.5vw, 22px);
    line-height: 1.62;
    max-width: 100%;
    margin-bottom: 26px;
  }

  .letter-mark,
  .mark-v, .mark-f, .mark-l, .mark-o {
    position: static;
    display: block;
    transform: none;
    width: min(42vw, 220px);
    height: auto;
    max-height: none;
    object-fit: contain;
    object-position: center;
    opacity: 1;
    align-self: center;
    margin: 46px auto 2px;
  }
  .about .letter-mark { margin-top: 48px; }
  .join .letter-mark { margin-top: 42px; }
  .survey .letter-mark { margin-top: 46px; }
  .closing .letter-mark { margin-top: 44px; }

  .join { padding-top: 38px; }
  .survey { padding-top: 44px; }
  .survey .section-copy > p:first-child { max-width: 100%; }
  .survey-button {
    font-size: clamp(15px, 4.1vw, 19px);
    padding: 10px 13px;
    max-width: 100%;
    white-space: normal;
  }
  .form-note { font-size: 13px !important; }

  .closing { padding-top: 42px; }
  .bear-section {
    min-height: 300px;
    padding: 20px 7.2% 55px;
  }
  .bear-section img { width: min(76vw, 340px); }

  .site-footer {
    align-items: flex-start;
    flex-wrap: wrap;
    padding: 25px 7.2%;
    gap: 12px 20px;
  }
  .site-footer p { width: calc(100% - 130px); text-align: right; }
  .site-footer > span { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
