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

:root {
  -moz-tab-size: 4;
  tab-size: 4; }

html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%; }

body {
  margin: 0; }

hr {
  height: 0;
  color: inherit; }

abbr[title] {
  text-decoration: underline dotted; }

b,
strong {
  font-weight: bolder; }

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Consolas, 'Liberation Mono', Menlo, monospace;
  font-size: 1em; }

small {
  font-size: 80%; }

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

table {
  text-indent: 0;
  border-color: inherit; }

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0; }

button,
select {
  text-transform: none; }

button,
[type='button'],
[type='reset'],
[type='submit'] {
  -webkit-appearance: button; }

::-moz-focus-inner {
  border-style: none;
  padding: 0; }

:-moz-focusring {
  outline: none; }

:-moz-ui-invalid {
  box-shadow: none; }

legend {
  padding: 0; }

progress {
  vertical-align: baseline; }

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto; }

[type='search'] {
  -webkit-appearance: textfield;
  outline-offset: -2px; }

::-webkit-search-decoration {
  -webkit-appearance: none; }

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit; }

summary {
  display: list-item; }

@font-face {
  font-family: "Newsreader";
  src: url("../fonts/newsreader-latin-ext.woff2") format("woff2");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

@font-face {
  font-family: "Newsreader";
  src: url("../fonts/newsreader-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

@font-face {
  font-family: "Inter";
  src: url("../fonts/inter-latin-ext.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

@font-face {
  font-family: "Inter";
  src: url("../fonts/inter-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --ink: #111;
  --paper: #fff;
  --mint: #79dfc8;
  --yellow: #fce68a;
  --violet: #8c87f7;
  --rule: #d9d9d9;
  --font-sans: "Inter", Arial, sans-serif;
  --font-serif: "Newsreader", Georgia, serif; }

html {
  background: var(--paper);
  color: var(--ink); }

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  font-optical-sizing: auto; }

a {
  color: inherit; }

a:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 3px; }

img,
svg {
  display: block;
  max-width: 100%; }

img {
  height: auto; }

h1,
h2,
h3,
p,
ul {
  margin: 0; }

h1,
h2,
h3 {
  font-weight: 600; }

[hidden] {
  display: none !important; }

::selection {
  color: var(--ink);
  background: var(--yellow); }

.sr-only,
.skip-link:not(:focus) {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap; }

.skip-link:focus {
  position: fixed;
  z-index: 2;
  top: 8px;
  left: 8px;
  padding: 10px 16px;
  background: var(--yellow); }

:root {
  --container-padding: 20px;
  --content-width: calc(920px + (2 * var(--container-padding)));
  --grid-row-gap: 16px;
  --grid-column-gap: 16px; }
  @media (min-width: 460px) {
    :root {
      --grid-row-gap: 16px;
      --grid-column-gap: 16px;
      --container-padding: 16px; } }
  @media (min-width: 769px) {
    :root {
      --grid-row-gap: 24px;
      --grid-column-gap: 24px;
      --container-padding: 24px; } }
  @media (min-width: 1024px) {
    :root {
      --grid-row-gap: 24px;
      --grid-column-gap: 24px;
      --container-padding: 24px; } }
.container {
  padding-left: var(--container-padding);
  padding-right: var(--container-padding);
  width: 100%;
  margin: 0 auto; }
  .container:not(.container--fluid) {
    max-width: var(--content-width); }

.grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-gap: var(--grid-row-gap) var(--grid-column-gap); }
  .grid.no-gap {
    grid-gap: 0 0; }
  .grid.no-row-gap {
    grid-row-gap: 0; }
  .grid.no-column-gap {
    grid-column-gap: 0; }

.col-1 {
  grid-column-end: span 1; }

.col-2 {
  grid-column-end: span 2; }

.col-3 {
  grid-column-end: span 3; }

.col-4 {
  grid-column-end: span 4; }

.col-5 {
  grid-column-end: span 5; }

.col-6 {
  grid-column-end: span 6; }

.col-7 {
  grid-column-end: span 7; }

.col-8 {
  grid-column-end: span 8; }

.col-9 {
  grid-column-end: span 9; }

.col-10 {
  grid-column-end: span 10; }

.col-11 {
  grid-column-end: span 11; }

.col-12 {
  grid-column-end: span 12; }

@media (min-width: 460px) {
  .col-xs-1 {
    grid-column-end: span 1; }
  .col-xs-2 {
    grid-column-end: span 2; }
  .col-xs-3 {
    grid-column-end: span 3; }
  .col-xs-4 {
    grid-column-end: span 4; }
  .col-xs-5 {
    grid-column-end: span 5; }
  .col-xs-6 {
    grid-column-end: span 6; }
  .col-xs-7 {
    grid-column-end: span 7; }
  .col-xs-8 {
    grid-column-end: span 8; }
  .col-xs-9 {
    grid-column-end: span 9; }
  .col-xs-10 {
    grid-column-end: span 10; }
  .col-xs-11 {
    grid-column-end: span 11; }
  .col-xs-12 {
    grid-column-end: span 12; }
  .hide-xs-up {
    display: none; } }

@media (max-width: 459px) {
  .hide-xs-down {
    display: none; } }

@media (min-width: 545px) {
  .col-sm-1 {
    grid-column-end: span 1; }
  .col-sm-2 {
    grid-column-end: span 2; }
  .col-sm-3 {
    grid-column-end: span 3; }
  .col-sm-4 {
    grid-column-end: span 4; }
  .col-sm-5 {
    grid-column-end: span 5; }
  .col-sm-6 {
    grid-column-end: span 6; }
  .col-sm-7 {
    grid-column-end: span 7; }
  .col-sm-8 {
    grid-column-end: span 8; }
  .col-sm-9 {
    grid-column-end: span 9; }
  .col-sm-10 {
    grid-column-end: span 10; }
  .col-sm-11 {
    grid-column-end: span 11; }
  .col-sm-12 {
    grid-column-end: span 12; }
  .hide-sm-up {
    display: none; } }

@media (max-width: 544px) {
  .hide-sm-down {
    display: none; } }

@media (min-width: 769px) {
  .col-md-1 {
    grid-column-end: span 1; }
  .col-md-2 {
    grid-column-end: span 2; }
  .col-md-3 {
    grid-column-end: span 3; }
  .col-md-4 {
    grid-column-end: span 4; }
  .col-md-5 {
    grid-column-end: span 5; }
  .col-md-6 {
    grid-column-end: span 6; }
  .col-md-7 {
    grid-column-end: span 7; }
  .col-md-8 {
    grid-column-end: span 8; }
  .col-md-9 {
    grid-column-end: span 9; }
  .col-md-10 {
    grid-column-end: span 10; }
  .col-md-11 {
    grid-column-end: span 11; }
  .col-md-12 {
    grid-column-end: span 12; }
  .hide-md-up {
    display: none; } }

@media (max-width: 768px) {
  .hide-md-down {
    display: none; } }

@media (min-width: 1024px) {
  .col-lg-1 {
    grid-column-end: span 1; }
  .col-lg-2 {
    grid-column-end: span 2; }
  .col-lg-3 {
    grid-column-end: span 3; }
  .col-lg-4 {
    grid-column-end: span 4; }
  .col-lg-5 {
    grid-column-end: span 5; }
  .col-lg-6 {
    grid-column-end: span 6; }
  .col-lg-7 {
    grid-column-end: span 7; }
  .col-lg-8 {
    grid-column-end: span 8; }
  .col-lg-9 {
    grid-column-end: span 9; }
  .col-lg-10 {
    grid-column-end: span 10; }
  .col-lg-11 {
    grid-column-end: span 11; }
  .col-lg-12 {
    grid-column-end: span 12; }
  .hide-lg-up {
    display: none; } }

@media (max-width: 1023px) {
  .hide-lg-down {
    display: none; } }

.site-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-top: 18px; }

.site-logo {
  display: block;
  width: 300px;
  flex-shrink: 0; }
  .site-logo img {
    width: 100%; }

.site-nav {
  border: 1px solid var(--ink);
  border-radius: 999px;
  padding: 4px; }
  .site-nav ul {
    display: flex;
    gap: 5px;
    align-items: center;
    padding: 0;
    list-style: none; }
  .site-nav a {
    display: block;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 20px;
    font-weight: 500;
    letter-spacing: -.02em;
    line-height: 24px;
    text-decoration: none; }
    .site-nav a[aria-current], .site-nav a:hover {
      background: var(--yellow); }
    .site-nav a:focus-visible {
      outline-offset: -2px; }

@media (max-width: 740px) {
  .site-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding-top: 18px; }
  .site-logo {
    width: 350px;
    max-width: 100%; } }

@media (max-width: 460px) {
  .site-nav {
    width: 100%;
    padding: 4px; }
    .site-nav ul {
      gap: 0; }
    .site-nav li {
      flex: 1 1 auto;
      text-align: center; }
    .site-nav a {
      padding: 6px 4px;
      font-size: 15px;
      line-height: 20px; } }

.calls-page {
  padding-top: 36px; }

.project-intro {
  max-width: 640px;
  font-family: var(--font-serif);
  font-size: 23px;
  font-weight: 400;
  line-height: 1.33; }
  .project-intro a {
    font-family: var(--font-sans);
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 3px; }
    .project-intro a:hover, .project-intro a:focus-visible {
      color: var(--violet);
      text-decoration-thickness: 2.5px; }

.project-intro + .call-section {
  margin-top: 40px; }

.call-section + .call-section {
  margin-top: 56px; }

.section-label,
.eyebrow,
.call-ribbon__label {
  font-weight: 600;
  text-transform: uppercase; }

.section-label {
  margin-bottom: 16px;
  font-size: 14px;
  line-height: 17px;
  letter-spacing: .08em; }

.open-calls,
.upcoming-calls {
  display: grid;
  gap: 16px; }

.upcoming-calls {
  grid-template-columns: repeat(2, minmax(0, 1fr)); }

.call-card--open {
  --card-color: var(--mint);
  --ribbon-color: var(--violet);
  --badge-ink: var(--violet); }

.call-card--upcoming {
  --card-color: var(--yellow);
  --ribbon-color: var(--mint);
  --badge-ink: var(--ink); }

.call-card {
  min-width: 0;
  background: var(--card-color); }

.call-ribbon {
  --ribbon-offset: 0px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 6px 12px;
  background: var(--ribbon-color) url("../media/wwrite/ribbon.svg") repeat-x var(--ribbon-offset) center;
  background-size: 90.5px 28px;
  animation: ribbon-scroll 6s linear infinite; }

@keyframes ribbon-scroll {
  from {
    background-position: var(--ribbon-offset) center; }
  to {
    background-position: calc(var(--ribbon-offset) + 90.5px) center; } }

@media (prefers-reduced-motion: reduce) {
  .call-ribbon {
    animation: none; } }

.call-ribbon__label {
  padding: 7px 20px;
  border-radius: 99px;
  background: var(--paper);
  box-shadow: 0 0 0 5px var(--ribbon-color);
  color: var(--badge-ink);
  font-size: 14px;
  line-height: 17px;
  letter-spacing: .06em;
  text-align: center; }
  .call-ribbon__label time {
    text-transform: none;
    white-space: nowrap; }

.eyebrow {
  font-size: 12px;
  line-height: 1.3;
  letter-spacing: .08em; }

.call-card__body {
  padding: 20px 24px 44px; }

.call-card__title {
  margin-top: 10px;
  font-size: 22px;
  line-height: 1.2; }

.call-card__summary {
  margin-top: 10px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6; }

.call-card--open .call-ribbon {
  --ribbon-offset: 2.5px; }

.call-card--open .call-card__body {
  padding: 24px 40px 32px; }

.call-card--open .call-card__title {
  max-width: 760px;
  margin-top: 14px;
  font-size: 34px;
  line-height: 1.15; }

.call-card--open .call-card__summary {
  max-width: 600px;
  margin-top: 14px; }

.call-button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin-top: 20px;
  padding: 10px 23px;
  border: 1px solid var(--ink);
  border-radius: 999px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 600;
  line-height: 16px;
  text-transform: uppercase;
  text-decoration: none; }
  .call-button:hover, .call-button:focus-visible {
    color: var(--card-color, var(--paper));
    background: var(--ink); }

@media (max-width: 740px) {
  .calls-page {
    padding-top: 32px; }
  .call-card--open .call-card__body {
    padding: 24px 28px 32px; } }

@media (max-width: 620px) {
  .upcoming-calls {
    grid-template-columns: minmax(0, 1fr); }
  .project-intro {
    font-size: 21px; }
  .project-intro + .call-section,
  .call-section + .call-section {
    margin-top: 36px; }
  .call-card__body {
    padding: 20px 22px 28px; }
  .call-card--open .call-card__body {
    padding: 22px 22px 28px; }
  .call-card--open .call-card__title {
    font-size: 28px; } }

@media (max-width: 430px) {
  .call-ribbon__label {
    padding: 6px 12px;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: .045em; } }

.text-page,
.call-detail {
  margin-top: 48px; }

.text-page {
  max-width: 650px; }

.error-page {
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column; }
  .error-page main {
    flex: 1 0 auto; }
  .error-page .site-footer {
    margin-top: 0; }

.not-found-page {
  overflow: hidden;
  padding-top: 40px;
  padding-bottom: 80px; }

.not-found-page__content h1 {
  font-size: 40px;
  letter-spacing: -.04em;
  line-height: 1.2; }

.not-found-page__content p {
  max-width: 650px;
  margin-top: 16px;
  font-family: var(--font-serif);
  font-size: 23px;
  line-height: 31px; }

.not-found-page__content .call-button {
  margin-top: 16px;
  border-color: transparent;
  background: var(--violet);
  letter-spacing: -.04em; }
  .not-found-page__content .call-button:hover, .not-found-page__content .call-button:focus-visible {
    color: var(--paper);
    background: var(--ink); }

.not-found-page__image {
  width: 100%;
  max-width: none;
  height: auto;
  margin-top: 141px; }

.text-page h1,
.call-detail h1 {
  font-size: 34px;
  line-height: 1.15; }

.prose {
  margin-top: 20px;
  font-family: var(--font-serif);
  font-size: 21px;
  line-height: 1.5; }

.prose > * + * {
  margin-top: 1em; }

.prose a,
.page-list a {
  text-underline-offset: .15em; }

.page-list {
  margin-top: 24px;
  padding-left: 1.2em; }

.call-detail {
  background: var(--card-color); }

.call-detail__body {
  padding: 32px 40px; }
  .call-detail__body h1 {
    max-width: 760px;
    margin-top: 12px; }
  .call-detail__body .prose {
    max-width: 640px; }

@media (max-width: 620px) {
  .not-found-page {
    padding-top: 32px;
    padding-bottom: 64px; }
  .not-found-page__content h1 {
    font-size: 32px; }
  .not-found-page__content p {
    font-size: 23px;
    line-height: 31px; }
  .not-found-page__image {
    width: 100%;
    height: 140px;
    margin-top: 80px;
    object-fit: cover;
    object-position: center; }
  .call-detail__body {
    padding: 24px 22px; }
  .call-detail h1,
  .text-page h1 {
    font-size: 28px; } }

.project-page {
  max-width: 650px;
  padding-top: 40px; }

.project-page__title {
  font-size: 40px;
  letter-spacing: -.04em;
  line-height: 1.2; }

.project-copy {
  margin-top: 40px;
  font-family: var(--font-serif);
  font-size: 23px;
  line-height: 31px; }
  .project-copy h2 {
    margin-bottom: 16px;
    font-family: var(--font-sans);
    font-size: 26px;
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: 30px; }
  .project-copy h3 {
    margin: 16px 0;
    font-family: var(--font-sans);
    font-size: 20px;
    letter-spacing: -.02em;
    line-height: 26px; }
  .project-copy > p + p {
    margin-top: 16px; }
  .project-copy blockquote {
    margin: 16px 0 24px;
    color: var(--violet);
    font-size: 48px;
    font-optical-sizing: none;
    line-height: 50px;
    font-weight: 400; }
  .project-copy blockquote p + p {
    margin-top: 8px;
    font-size: 23px;
    line-height: 31px; }

.compact-copy {
  display: none; }

.contact-page {
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column; }
  .contact-page main {
    flex: 1 0 auto; }

.contact-copy p + p {
  margin-top: 16px; }

.contact-copy a {
  white-space: nowrap;
  text-decoration-thickness: 1px;
  text-underline-offset: .15em; }
  .contact-copy a:hover, .contact-copy a:focus-visible {
    color: var(--violet); }

.partners {
  margin-top: 44px; }
  .partners .section-label {
    margin-bottom: 12px; }

.about-page .site-footer {
  margin-top: 64px; }

.partner {
  padding: 16px 0 24px;
  border-bottom: 1px solid var(--rule); }
  .partner:first-of-type {
    padding-top: 0; }

.partner__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 120px;
  align-items: start;
  gap: 12px; }
  .partner__header h3 {
    font-size: 22px;
    letter-spacing: -.02em;
    line-height: 1.2; }

.partner__logo {
  width: 120px;
  height: 64px;
  object-fit: contain;
  object-position: center; }

.partner__logo--short {
  height: 52px; }

.partner__logo--natural {
  object-fit: scale-down; }

.partner__logo--inset {
  padding: 0 2px; }

.partner__logo--compact {
  padding: 15px 8px; }

.partner__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 9px;
  margin-top: 8px;
  font-size: 13px;
  letter-spacing: -.04em;
  line-height: 1.5; }
  .partner__meta > span > span {
    padding-left: 6px; }

.partner__copy {
  margin-top: 15px;
  font-family: var(--font-serif);
  font-size: 18px;
  line-height: 1.25; }

.partner a,
.camp__text a {
  text-decoration-thickness: 1px;
  text-underline-offset: .13em; }

.camp__text a:hover,
.camp__text a:focus-visible {
  color: var(--violet); }

.partner__meta a:hover,
.partner__meta a:focus-visible {
  color: var(--violet); }

.partner__copy a:hover,
.partner__copy a:focus-visible {
  color: var(--violet); }

.partner--spaced .partner__copy p + p {
  margin-top: 1.25em; }

.camp {
  margin-top: 16px; }

.camp__header {
  background: var(--card-color); }
  .camp__header .call-ribbon__label {
    letter-spacing: .02em; }

.camp__intro {
  padding-top: 24px;
  padding-bottom: 36px; }
  .camp__intro h1 {
    max-width: 700px;
    margin-top: 16px;
    font-size: 40px;
    letter-spacing: -.034em;
    line-height: 1.13; }

.camp__summary {
  max-width: 670px;
  margin-top: 16px;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: -.04em;
  line-height: 27px; }
  .camp__summary span {
    display: inline-block; }

.camp__apply {
  min-height: 38px;
  margin-top: 20px;
  letter-spacing: -.04em;
  padding: 10px 22px;
  border-color: transparent;
  background: var(--violet); }

.camp__text {
  max-width: 660px;
  padding-top: 48px;
  font-family: var(--font-serif);
  font-size: 19px;
  line-height: 26.25px; }
  .camp__text h2 {
    margin: 40px 0 16px;
    font-family: var(--font-sans);
    font-size: 25px;
    font-weight: 500;
    letter-spacing: -.04em;
    line-height: 30.4px;
    scroll-margin-top: 20px; }
  .camp__text h2:first-child {
    margin-top: 0; }
  .camp__text h3,
  .camp__text h4 {
    font-family: var(--font-sans);
    font-size: 20px;
    font-weight: 600;
    letter-spacing: -.04em;
    line-height: 24px; }
  .camp__text h3 {
    margin: 16px 0;
    letter-spacing: -.02em; }
  .camp__text #eligibility {
    margin-top: 40px; }
  .camp__text h4 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 16px 0 8px; }
  .camp__text h4::before {
    width: 23px;
    height: 20px;
    flex: 0 0 23px;
    background: url("../media/wwrite/arrow.svg") center/contain no-repeat;
    content: ""; }
  .camp__text p + p,
  .camp__text ul + p,
  .camp__text p + ul {
    margin-top: 16px; }
  .camp__text ul {
    padding-left: 28px; }
  .camp__text li + li {
    margin-top: 16px; }
  .camp__text #key-dates-and-contacts + ul {
    padding-left: 22px; }
    .camp__text #key-dates-and-contacts + ul li + li {
      margin-top: 11px; }
  .camp__text #how-to-apply ~ ul {
    padding-left: 0;
    list-style: none; }
    .camp__text #how-to-apply ~ ul li {
      position: relative;
      padding-left: 33px; }
    .camp__text #how-to-apply ~ ul li::before {
      position: absolute;
      top: 50%;
      left: 0;
      width: 23px;
      height: 20px;
      transform: translateY(-50%);
      background: url("../media/wwrite/arrow.svg") center/contain no-repeat;
      content: ""; }
  .camp__text strong {
    font-weight: 600; }

@media (max-width: 620px) {
  .project-copy h2 {
    font-size: 26px; }
  .project-copy blockquote {
    font-size: 30px;
    line-height: 1.15; }
  .wide-copy {
    display: none; }
  .compact-copy {
    display: block; }
  .about-page .site-footer {
    margin-top: 20px; }
  .partner__header {
    grid-template-columns: minmax(0, 1fr) minmax(80px, 34%);
    gap: 8px; }
  .partner__logo {
    justify-self: end; }
  .partner__copy {
    margin-top: 12px; }
  .camp {
    margin-top: 20px; }
  .camp__intro {
    padding-bottom: 32px; }
    .camp__intro h1 {
      max-width: 315px;
      font-size: 26px;
      line-height: 1.12; }
  .camp__summary {
    max-width: 310px;
    margin-top: 14px;
    font-size: 14px;
    line-height: 1.65; }
  .camp__apply {
    margin-top: 16px; }
  .camp__text {
    padding-top: 20px;
    font-size: 20px;
    line-height: 1.35; }
    .camp__text h2 {
      margin-top: 36px;
      font-size: 26px; } }

@media (min-width: 360px) and (max-width: 430px) {
  .camp .call-ribbon__label {
    padding: 7px 20px;
    font-size: 14px;
    line-height: 17px;
    letter-spacing: .06em; } }

.site-footer {
  margin-top: 72px;
  border-top: 1px solid var(--rule); }

.site-footer__inner {
  display: grid;
  grid-template-columns: 186px minmax(0, 650px);
  gap: 40px;
  align-items: start;
  padding-top: 24px;
  padding-bottom: 32px; }
  .site-footer__inner p {
    font-size: 12px;
    letter-spacing: -.5px;
    line-height: 18px; }

.camp-page .site-footer {
  margin-top: 104px; }
  .camp-page .site-footer .site-footer__inner {
    grid-template-columns: 240px minmax(0, 640px); }
  .camp-page .site-footer img {
    width: 240px; }

@media (max-width: 620px) {
  .site-footer,
  .camp-page .site-footer {
    margin-top: 48px; }
  .site-footer__inner,
  .camp-page .site-footer .site-footer__inner {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px; } }
