.ds-foot{
  --ft-left:  calc(6.2 * var(--ds-cell));
  --ft-right: calc(6 * var(--ds-cell));
  --ft-gap:   calc(1.2 * var(--ds-cell));
  --ft-msg:   clamp(8rem, calc(.3 * var(--ds-sec-h)), 22rem);
  --ft-space: calc(.5 * var(--ds-cell));
  --ft-icon:  2.5rem;
  --ft-apart: calc(.6 * var(--ds-cell));
  --ft-text:  clamp(.9375rem, calc(.47rem + .125 * var(--ds-cell)), 1.25rem);

  position: absolute;
  inset: 0;
  z-index: 2;

  display: grid;
  grid-template-columns: minmax(0, var(--ft-left)) minmax(0, var(--ft-right));
  justify-content: center;
  align-content: center;
  column-gap: var(--ft-gap);
  padding: calc(1.5 * var(--ds-cell)) calc(1.4 * var(--ds-cell)) calc(.95 * var(--ds-cell));
}

.ds-pagefoot{
  --ds-sec-h: 100vh;
  --pf-fade: clamp(8rem, 16vw, 14rem);

  position: relative;
  height: var(--ds-sec-h);
  margin-top: calc(var(--pf-fade) / 2);
  background: var(--ds-ink);
}
@supports (height: 100svh){
  .ds-pagefoot{ --ds-sec-h: 100svh; }
}

.ds-pagefoot::before{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100%;
  height: var(--pf-fade);
  background: linear-gradient(to bottom,
    rgb(23 23 23 / 0) 0%,
    rgb(23 23 23 / .013) 8.1%,
    rgb(23 23 23 / .049) 15.5%,
    rgb(23 23 23 / .104) 22.5%,
    rgb(23 23 23 / .175) 29%,
    rgb(23 23 23 / .259) 35.3%,
    rgb(23 23 23 / .352) 41.2%,
    rgb(23 23 23 / .45) 47.1%,
    rgb(23 23 23 / .55) 52.9%,
    rgb(23 23 23 / .648) 58.8%,
    rgb(23 23 23 / .741) 64.7%,
    rgb(23 23 23 / .825) 71%,
    rgb(23 23 23 / .896) 77.5%,
    rgb(23 23 23 / .951) 84.5%,
    rgb(23 23 23 / .987) 91.9%,
    rgb(23 23 23) 100%);
  pointer-events: none;
}

.ds-foot__left{
  align-self: stretch;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
}

.ds-foot__title{
  --ds-title-size: clamp(1.5rem, calc(.76 * var(--ds-cell)), 4.75rem);
  --ds-title-leading: 1.2;
  --ds-title-color: var(--ds-paper);
}

.ds-foot__lead{
  max-width: 26em;
  margin: calc(.12 * var(--ds-cell)) 0 0;
  font-family: var(--ds-font-alt);
  font-size: var(--ft-text);
  font-weight: 300;
  line-height: 1.45;
  color: rgb(240 240 240 / .86);
}

.ds-foot__world{
  flex: 1 1 0;
  min-height: 0;
  contain: size;
  width: 100%;
  margin-top: var(--ft-space);
  display: flex;
}

.ds-foot__frame{
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--ft-apart);
  height: 100%;
}
.ds-foot__frame::before,
.ds-foot__frame::after{
  content: "";
  position: absolute;
  width: 1.1rem;
  height: 1.1rem;
  border: 0 solid rgb(240 240 240 / .55);
  pointer-events: none;
}
.ds-foot__frame::before{ top: 0; left: 0; border-top-width: 2px; border-left-width: 2px; }
.ds-foot__frame::after{ right: 0; bottom: 0; border-right-width: 2px; border-bottom-width: 2px; }

.ds-globe{
  position: relative;
  flex: none;
  height: 100%;
  aspect-ratio: 1;
  touch-action: pan-y;
}
.ds-globe__canvas{
  position: absolute;
  inset: 0;
  margin: auto;
  display: block;
}

.ds-foot__social{
  flex: none;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ds-foot__social a{
  display: block;
  width: var(--ft-icon);
  height: var(--ft-icon);
  color: rgb(240 240 240 / .9);
  transition: color .2s ease, translate .25s var(--ds-ease-out);
}
.ds-foot__social svg{ display: block; width: 100%; height: 100%; }
@media (hover: hover){
  .ds-foot__social a:hover{ color: var(--ds-red); translate: 0 -2px; }
}
.ds-foot__social a:focus-visible{
  outline: 2px solid var(--ds-paper);
  outline-offset: 4px;
}

.ds-foot__right{
  align-self: stretch;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.ds-foot__ask{
  margin: 0 0 calc(.32 * var(--ds-cell));
  font-family: var(--ds-font-display);
  font-size: clamp(1.25rem, calc(.38 * var(--ds-cell)), 2.1rem);
  font-weight: var(--ds-fw-bold);
  line-height: 1.18;
  letter-spacing: -.005em;
  color: var(--ds-paper);
}
.ds-foot__ask > span{ display: block; }


.ds-foot__ask .ds-mark{
  --ds-mark-height: .32em;
  --ds-mark-offset: .08em;
}

.ds-form{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: .75rem;
  margin: 0;
}
.ds-form__field{ display: block; min-width: 0; }
.ds-form__field--full{ grid-column: 1 / -1; }

.ds-form__label{
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.ds-form input,
.ds-form textarea{
  display: block;
  width: 100%;
  margin: 0;
  padding: .9em 1em;
  box-sizing: border-box;

  font-family: var(--ds-font-alt);
  font-size: max(1rem, calc(.85 * var(--ft-text)));
  font-weight: 300;
  line-height: 1.4;
  color: var(--ds-paper);

  background: rgb(240 240 240 / .05);
  border: 1px solid rgb(240 240 240 / .24);
  border-radius: 0;
  outline: 0;
  -webkit-appearance: none;
          appearance: none;
  transition: border-color .2s ease, background-color .2s ease;
}
.ds-form textarea{
  height: var(--ft-msg);
  resize: none;
}
.ds-form input::placeholder,
.ds-form textarea::placeholder{ color: rgb(240 240 240 / .5); opacity: 1; }

@media (hover: hover){
  .ds-form input:hover,
  .ds-form textarea:hover{ border-color: rgb(240 240 240 / .45); }
}
.ds-form input:focus,
.ds-form textarea:focus{
  border-color: var(--ds-red);
  background: rgb(240 240 240 / .08);
}
.ds-form input:-webkit-autofill{
  -webkit-text-fill-color: var(--ds-paper);
  -webkit-box-shadow: 0 0 0 100px #262626 inset;
  caret-color: var(--ds-paper);
}

.ds-form__trap{
  position: absolute !important;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.ds-form__foot{
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 1.2rem;
  margin-top: .35rem;
}

.ds-form__send{
  display: inline-flex;
  align-items: center;
  gap: .6em;
  margin: 0;
  padding: 1em 1.2em 1em 1.35em;
  border: 0;
  border-radius: 0;

  font-family: var(--ds-font-display);
  font-size: clamp(.8125rem, calc(.42rem + .1 * var(--ds-cell)), 1rem);
  font-weight: var(--ds-fw-bold);
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ds-paper);
  background: var(--ds-red);
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease, opacity .2s ease;
}
.ds-form__send svg{
  width: 1.1em;
  height: 1.1em;
  flex: none;
  transition: translate .25s var(--ds-ease-out);
}
@media (hover: hover){
  .ds-form__send:hover{ background: var(--ds-paper); color: var(--ds-ink); }
  .ds-form__send:hover svg{ translate: .14em -.14em; }
}
.ds-form__send:focus-visible{
  outline: 2px solid var(--ds-paper);
  outline-offset: 3px;
}
.ds-form__send:disabled{ opacity: .55; cursor: progress; }

.ds-form__send{ flex: none; }
.ds-form__status{
  min-width: 0;
  margin: 0;
  font-family: var(--ds-font-alt);
  font-size: .9375rem;
  font-weight: 300;
  color: rgb(240 240 240 / .8);
}
.ds-form__status:empty{ display: none; }
.ds-form__status.is-done{ color: var(--ds-paper); }
.ds-form__status.is-fail{ color: #ff8a8a; }

.ds-foot__privacy{
  position: absolute;
  left: 50%;
  bottom: calc(.32 * var(--ds-cell));
  translate: -50% 0;
  font-family: var(--ds-font-alt);
  font-size: .8125rem;
  font-weight: 400;
  letter-spacing: .1em;
  text-transform: uppercase;
  white-space: nowrap;
  color: rgb(240 240 240 / .65);
  text-decoration: underline dashed rgb(240 240 240 / .4);
  text-decoration-thickness: 1px;
  text-underline-offset: .4em;
  transition: color .2s ease, text-decoration-color .2s ease;
}
@media (hover: hover){
  .ds-foot__privacy:hover{ color: var(--ds-paper); text-decoration-color: rgb(240 240 240 / .8); }
}
.ds-foot__privacy:focus-visible{
  outline: 2px solid var(--ds-paper);
  outline-offset: 4px;
}

@media (max-height: 700px) and (min-width: 721px){
  .ds-form{ gap: .6rem; }
  .ds-form input,
  .ds-form textarea{ padding: .75em .9em; }
}

@media (max-width: 720px), (orientation: portrait){
  .ds-sec--8,
  .ds-pagefoot{
    height: auto;
    min-height: var(--ds-sec-h);
  }
  .ds-foot{
    position: relative;
    inset: auto;
    min-height: var(--ds-sec-h);
    grid-template-columns: minmax(0, 1fr);
    row-gap: 3rem;
    padding: calc(1.9 * var(--ds-cell)) var(--ds-gutter, 1.25rem) 7rem;
  }
  .ds-foot__left,
  .ds-foot__right{ width: 100%; max-width: 36rem; justify-self: center; }
  .ds-foot__world{
    flex: none;
    contain: none;
    justify-content: flex-start;
  }
  .ds-foot__frame{ height: auto; gap: 1.5rem; }
  .ds-globe{
    height: auto;
    width: min(calc(100vw - 2 * var(--ds-gutter, 1.25rem) - var(--ft-icon) - 1.5rem), 20rem);
  }
  .ds-form textarea{ height: calc(6 * 1.4em + 1.8em); }
  .ds-foot__privacy{ bottom: 3rem; }
}

@media (max-width: 480px){
  .ds-form{ grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce){
  .ds-foot__social a,
  .ds-form__send svg{ transition: none; }
}
