@font-face {
  font-family: 'Geist Mono';
  src: url('assets/fonts/GeistMono-Variable.woff2') format('woff2');
  font-weight: 100 900;
  font-display: swap;
}

:root {

  --obsidian: #0B0B0D;
  --jet: #0B0B0B;
  --chalk: #F4F4F1;
  --stone: #968D7F;
  --ash: #7C7C7C;

  --bg: var(--jet);
  --ink: var(--chalk);
  --accent: var(--chalk);
  --dim: var(--ash);
  --line: rgba(244, 244, 241, 0.15);

  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 20px;
  --s-5: 28px;
  --s-6: 48px;
  --s-7: 80px;
  --s-8: 120px;
  --s-9: 160px;

  --font-mono: 'Geist Mono', monospace;
  --type-size: 14px;
  --line-height: 1.2;

  --corner-pad: 6px;

  --type-fine: 10px;
  --fine-lead: calc((var(--type-fine) * var(--line-height) - var(--type-fine)) / 2);
  --furniture: calc(var(--type-size) * var(--line-height) + var(--corner-pad) * 2);
  --corner-row: calc(var(--type-size) * var(--line-height));
  --corner-lead: calc((var(--corner-row) - var(--type-size)) / 2);
  --clear: calc(var(--corner-top) + var(--furniture) + var(--s-5));

  --safe-b: env(safe-area-inset-bottom, 0px);

  --safe-l: env(safe-area-inset-left, 0px);
  --safe-r: env(safe-area-inset-right, 0px);

  --ring: 2px;
  --ring-reach: calc(var(--ring) * 2);

  --slide: 240ms cubic-bezier(0.2, 0, 0, 1);

  --r: 5px;

  --corner-top: 5px;
  --chip-inset: 3px;

  --burger-w: 18px;
  --burger-t: 2px;
  --burger-gap: 6px;

  --menu-gap: 1px;

  --page-left: var(--s-4);
  --menu-reserve: 530px;

  --datum: calc(var(--furniture) * 3);
  --datum-gap: var(--s-6);

}

html {
  color-scheme: dark;
}

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

html {
  overscroll-behavior: none;
  background: var(--bg);
  scrollbar-gutter: stable;

  -webkit-text-size-adjust: 100%;
          text-size-adjust: 100%;
}

body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: var(--type-size);
  font-weight: 400;
  letter-spacing: normal;
  line-height: var(--line-height);
  text-transform: uppercase;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

button,
input,
select,
textarea {
  font: inherit;
  letter-spacing: inherit;
  color: inherit;
}

a,
button {
  touch-action: manipulation;
}

h1,
h2,
h3 {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}

input,
textarea {
  text-transform: none;
}

::placeholder {
  color: var(--dim);
  opacity: 1;
}

:focus-visible {
  outline: var(--ring) solid var(--accent);
  outline-offset: var(--ring);
}

.corner:focus-visible,
.corner *:focus-visible,
.legal a:focus-visible {
  outline-offset: calc(var(--ring) * -1);
}

.legal > a:focus-visible,
.legal > button:focus-visible {
  outline: none;
}

.holding-done:focus-visible {
  outline: none;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 20;
  padding: var(--corner-pad) var(--s-4);
  background: var(--accent);
  color: var(--bg);
  text-decoration: none;
  transform: translateY(-200%);
}

.skip-link:focus {
  transform: translateY(calc(var(--corner-top) + var(--furniture) + var(--s-3)));
}

.corner {
  position: fixed;
  color: var(--ink);
  z-index: 10;
}

.top-left  { top: var(--corner-top); left: 0; }

.doc .corner {
  background: var(--bg);
}

.doc::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: var(--clear);
  background: var(--bg);
  pointer-events: none;
  z-index: 4;
}

.corner a {
  display: inline-block;
  color: var(--ink);
  text-decoration: none;
  padding: var(--corner-pad) var(--s-4);
}

#menu {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
}

#menu .wordmark {
  padding: var(--corner-pad) var(--s-4);
  color: var(--ink);
  text-decoration: none;
}

#menu-trigger {
  border: none;
  border-radius: var(--r);
  padding: var(--corner-pad) var(--s-4);
  background: var(--accent);
  color: var(--bg);
}

html.js .menu-items {
  visibility: hidden;
}

html:not(.js) #menu-trigger {
  display: none;
}

.menu-items {
  display: inline-flex;
  column-gap: var(--menu-gap);
}

.menu-items a:empty {
  padding: 0;
  margin: 0;
}

.menu-items a:not(:empty) {
  background: var(--bg);
  color: var(--dim);
  border-radius: var(--r);
}

.menu-items a:not(:empty):hover,
.menu-items a:not(:empty):focus-visible {
  background: var(--accent);
  color: var(--bg);
}

#menu.menu-pinned #menu-trigger {
  display: none;
}

@media (min-width: 768px) and (min-height: 501px) {
  #menu {
    min-height: 26px;
  }

  #menu:has(#menu-trigger[aria-expanded="true"]) {
    min-width: var(--menu-reserve);
  }

  #menu[data-keep-trigger] #menu-trigger {
    margin-right: var(--menu-gap);
  }
}

#terrain {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  pointer-events: auto;
  touch-action: none;
}

.intro {
  bottom: calc(var(--s-4) - var(--corner-lead) + var(--safe-b));
  width: calc(45ch + 2 * var(--s-4));
}

.intro,
.readout {
  pointer-events: none;
}

.intro {
  left: 0;
  width: calc(70ch + 2 * var(--s-4));
  padding: 0 var(--s-4);
  text-align: left;
}

.readout {
  padding:
    var(--corner-pad)
    calc(var(--s-4) - 1ch)
    var(--corner-pad)
    var(--s-4);
  color: var(--dim);
}

.doc main {
  position: relative;
}

.masthead {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: end;
  min-height: var(--datum);
  padding-bottom: var(--corner-pad);
  margin-bottom: var(--datum-gap);
  color: var(--dim);
}

.mh-name {
  color: var(--ink);
}

.masthead::after {
  content: "";
  position: absolute;
  top: var(--datum);
  left: 0;
  right: 0;
  height: 1px;
  z-index: 6;
  background: var(--ink);
}

@media (min-width: 768px) and (min-height: 501px) {
  .masthead {
    position: sticky;
    top: 0;
    z-index: 5;
    background: var(--bg);
  }

  .masthead::after {
    left: calc(var(--page-left) * -1);
    right: calc(var(--s-5) * -1);
  }
}

.cta-chip {
  display: inline-block;
  width: fit-content;
  background: var(--accent);
  color: var(--bg);
  border: 1px solid var(--accent);
  border-radius: var(--r);
  text-decoration: none;
  padding: var(--s-3) var(--s-4);
  margin-top: auto;
}

.cta-chip:hover,
.cta-chip:focus-visible {
  background: var(--bg);
  color: var(--accent);
}

.cta-chip.ghost {
  background: var(--bg);
  color: var(--accent);
}

.cta-chip.ghost:hover,
.cta-chip.ghost:focus-visible {
  background: var(--accent);
  color: var(--bg);
}

button.cta-chip {
  cursor: pointer;
  margin-top: var(--s-4);
}

button.cta-chip:disabled {
  background: var(--dim);
  border-color: var(--dim);
  cursor: default;
}

.legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;

  align-items: baseline;

  gap: var(--s-4);
  padding: var(--s-4) var(--s-5) calc(var(--s-4) + var(--safe-b));
  font-size: var(--type-fine);
  pointer-events: none;
}

.legal a,
.rd-regen {
  padding: 0;
  pointer-events: auto;
  color: var(--dim);
  text-decoration: none;
}

.rd-regen {
  background: none;
  border: none;
}

.legal a:hover,
.legal a:focus-visible,
.rd-regen:hover,
.rd-regen:focus-visible {
  color: var(--accent);
}

.rd-regen:focus-visible {
  outline-offset: calc(var(--ring) * -1);
}

.privacy-open,
.privacy-close,
.privacy-panel {
  display: none;
}

@supports selector(:popover-open) {

  .privacy-fallback {
    display: none;
  }

  .privacy-open,
  .privacy-close {
    display: inline-block;
    background: none;
    border: none;
    padding: 0;
    color: var(--dim);
    pointer-events: auto;
  }

  .privacy-open:hover,
  .privacy-open:focus-visible,
  .privacy-close:hover,
  .privacy-close:focus-visible {
    color: var(--accent);
  }

  .privacy-open:focus-visible {
    outline: none;
  }

  .privacy-close:focus-visible {
    outline-offset: calc(var(--ring) * -1);
  }

  .privacy-panel {
    --privacy-foot: calc(var(--s-6) + var(--safe-b));

    position: fixed;
    inset: auto var(--s-4) var(--privacy-foot);
    margin: 0 auto;
    width: auto;
    max-width: 820px;
    max-height: calc(
      100dvh - var(--furniture) - var(--s-7) - var(--safe-b)
    );
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
    background: var(--bg);
    color: var(--ink);
    border: 1px solid var(--dim);
    border-radius: var(--r);
    pointer-events: auto;

    transform: translateY(calc(100% + var(--privacy-foot)));
    transition:
      transform var(--slide),
      display var(--slide) allow-discrete,
      overlay var(--slide) allow-discrete;
  }

  .privacy-panel:popover-open {
    display: grid;
    transform: none;
  }

  @starting-style {
    .privacy-panel:popover-open {
      transform: translateY(calc(100% + var(--privacy-foot)));
    }
  }

  .privacy-head {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: baseline;
    column-gap: var(--s-6);
    padding: var(--s-3) var(--s-4);
    border-bottom: 1px solid var(--line);
  }

  .privacy-title {
    display: block;
  }

  .privacy-close {
    padding: var(--s-2);
    margin: calc(var(--s-2) * -1);
  }

  .privacy-copy {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: var(--s-5) var(--s-4);
    font-size: inherit;
    line-height: 1.4;
    text-transform: none;
    scrollbar-width: thin;
    scrollbar-color: var(--dim) transparent;
  }

  .privacy-copy::-webkit-scrollbar {
    width: var(--s-1);
  }

  .privacy-copy::-webkit-scrollbar-track {
    background: transparent;
  }

  .privacy-copy::-webkit-scrollbar-thumb {
    background: var(--dim);
    border-radius: var(--r);
  }

  .privacy-copy::-webkit-scrollbar-thumb:hover {
    background: var(--accent);
  }

  .privacy-copy p {
    max-width: 88ch;
  }

  .privacy-copy p + p {
    margin-top: var(--s-3);
  }

  .privacy-copy h3 {
    margin-top: var(--s-5);
    margin-bottom: var(--s-2);
    text-transform: uppercase;
  }

  .privacy-updated {
    color: var(--dim);
    margin-top: var(--s-5);
  }

  .privacy-panel a {
    color: var(--ink);
  }

  .privacy-panel a:hover,
  .privacy-panel a:focus-visible {
    color: var(--accent);
  }

  @media (max-width: 767px), (max-height: 500px) {
    .privacy-panel {
      inset: var(--furniture) var(--s-4) var(--privacy-foot);
      height: auto;
      max-height: none;
    }
  }

  @media (min-width: 768px) and (min-height: 501px) {
    .privacy-panel {
      --privacy-foot: calc(
        4px - var(--fine-lead)
        + var(--type-fine) * var(--line-height)
        + var(--s-3)
        + var(--safe-b)
      );

      left: 0;
      right: 0;
      width: min(92ch, calc(100vw - 2 * var(--s-5)));
      max-height: min(46dvh, 440px);
    }
  }

  @media (min-width: 1320px) {
    .privacy-panel {
      --privacy-foot: calc(
        var(--s-4)
        + var(--type-fine) * var(--line-height)
        + var(--s-3)
        + var(--safe-b)
      );
    }
  }
}

body.doc {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

body.doc main {
  flex: 1 0 auto;
}

body:not(.doc) .legal {
  position: fixed;
  left: 0;
  right: 0;
  bottom: calc(4px - var(--fine-lead) + var(--safe-b));
  padding: 0;
  z-index: 10;
}

@media (min-width: 1320px) {
  body:not(.doc) .legal {
    bottom: calc(var(--s-4) + var(--safe-b));
  }
}

@media (max-width: 767px), (max-height: 500px) {

  :root {
    --type-size: 16px;

    --corner-top: 0px;

    --corner-row: 20px;
    --corner-pad: var(--s-3);
    --furniture: calc(var(--corner-row) + var(--corner-pad) * 2);

    --clear: var(--furniture);

    --datum: var(--furniture);
    --datum-gap: var(--s-6);
  }

    #menu {
    left: 0;
    right: 0;
    background: none;
  }

  #menu .wordmark,
  #menu-trigger {
    height: var(--furniture);
    display: flex;
    align-items: center;
  }

  html.js #menu {
    height: var(--furniture);
    overflow: hidden;
  }

  html.js #menu:has(.menu-items a:not(:empty)) {
    height: 100dvh;
    z-index: 15;
    background: var(--bg);
  }

  html.js #menu:has(.menu-items a:not(:empty)) .menu-items {
    position: absolute;
    top: var(--furniture);
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
  }

  html.js #menu:has(.menu-items a:not(:empty)) .menu-items a {
    flex: 0 0 auto;
    padding: var(--s-3) var(--s-2);
  }

  @supports (mask-image: url("assets/logo-mark.png")) or
            (-webkit-mask-image: url("assets/logo-mark.png")) {
    html.js #menu:has(.menu-items a:not(:empty)) .menu-items::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      top: calc(70dvh - var(--furniture));
      height: 19dvh;
      background: var(--accent);
      -webkit-mask-image: url("assets/logo-mark.png");
              mask-image: url("assets/logo-mark.png");
      -webkit-mask-repeat: no-repeat;
              mask-repeat: no-repeat;
      -webkit-mask-size: auto 100%;
              mask-size: auto 100%;
      -webkit-mask-position: center;
              mask-position: center;
    }
  }

  html.js .legal {
    display: none;
  }

  html.js body:has(.menu-items a:not(:empty)) .legal {
    display: flex;
    position: fixed;
    left: 0;
    right: 0;
    bottom: calc(var(--s-4) - var(--fine-lead) + var(--safe-b));
    padding: 0;
    z-index: 16;
    }

  .doc #menu .wordmark {
    color: var(--ink);
  }

  #menu-trigger {
    position: absolute;
    top: var(--chip-inset);
    right: var(--chip-inset);
    height: calc(var(--furniture) - var(--chip-inset) * 2);
    padding-left: calc(var(--s-4) - var(--chip-inset));
    padding-right: calc(var(--s-4) - var(--chip-inset));

    width: calc(var(--burger-w) + (var(--s-4) - var(--chip-inset)) * 2);

    background: var(--bg);
    color: var(--accent);
  }

  .menu-word {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
  }

  #menu-trigger::before,
  #menu-trigger::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: var(--burger-w);
    height: var(--burger-t);
    margin-left: calc(var(--burger-w) / -2);
    background: currentColor;
  }

  #menu-trigger::before {
    margin-top: calc((var(--burger-gap) + var(--burger-t) / 2) * -1);
    box-shadow: 0 var(--burger-gap) 0 currentColor;
  }

  #menu-trigger::after {
    margin-top: calc(var(--burger-gap) - var(--burger-t) / 2);
  }

  #menu-trigger[aria-expanded="true"]::before,
  #menu-trigger[aria-expanded="true"]::after {
    margin-top: calc(var(--burger-t) / -2);
  }

   #menu-trigger[aria-expanded="true"]::before {
    box-shadow: none;
    transform: rotate(45deg);
  }

  #menu-trigger[aria-expanded="true"]::after {
    transform: rotate(-45deg);
  }

  body.holding #menu-trigger:not([aria-expanded="true"])::before,
  body.holding #menu-trigger:not([aria-expanded="true"])::after {
    content: none;
  }

  .menu-items {
    display: block;
    flex: 0 0 100%;
  }

  .menu-items a {
    display: block;
    width: auto;
    text-align: center;
  }

      .menu-items a:not(:empty) {
    padding: var(--s-4) var(--s-2);
    margin: 0 var(--chip-inset);
  }

  .intro {
  width: auto;
  right: 0;
  padding: 0 var(--s-4);
  bottom: calc(11px - var(--corner-lead) + var(--safe-b));
  text-align: left;
}

  .readout,
  .rd-regen {
    display: none;
  }

  .mh-name {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 5;
    height: var(--furniture);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg);

    padding: 0 calc(8ch + var(--s-4) * 2);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .masthead {
    position: sticky;
    top: 0;
    z-index: 5;
    background: var(--bg);
  }

  .masthead::after {
    content: none;
  }
}

html:has(body.holding) {
  scrollbar-gutter: auto;
}

.holding {
  --hero-face: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --hero-weight: 500;
  --hero: min(6.6667vw, clamp(28px, min(3.3333vw - 20px, 2.3vw), 38px));
  --margin: round(down, var(--hero), 4px);
  --gutter: round(down, calc(var(--margin) / 2), 4px);
  --lead: round(up, calc(var(--hero) * 0.95), 4px);
  --cap-ratio: 0.714;
  --bar: calc(2 * var(--margin) + var(--hero) * var(--cap-ratio));
  --cols: 4;
  --half: 2;

  --corner-top: 0px;
  --furniture: var(--bar);
  --clear: var(--bar);
}

@media (min-width: 768px) and (min-height: 501px) {
  .holding {
    --cols: 8;
    --half: 4;
  }
}

@media (min-width: 1440px) and (min-height: 501px) {
  .holding {
    --cols: 12;
    --half: 6;
  }
}

.holding #menu,
.holding .intro,
.holding .ml-corner {
  font-family: var(--hero-face);
  font-size: var(--hero);
  font-weight: var(--hero-weight);
  line-height: 1cap;
  letter-spacing: -0.02em;
  white-space: nowrap;
  color: var(--ink);
}

.holding #menu .wordmark,
.holding #menu #menu-trigger,
.holding .menu-items a,
.holding .menu-items #ml-toggle,
.holding .intro-primary,
.holding .holding-label,
.holding .holding-row .cta-chip,
.holding .holding-done-line {
  text-box: trim-both cap alphabetic;
}

.holding .holding-row .cta-chip:hover,
.holding .holding-row .cta-chip:focus-visible {
  text-decoration-line: underline;
  text-decoration-thickness: max(1px, 0.05em);
  text-underline-offset: 0.12em;
}

body.holding {
  display: grid;
  grid-template-columns: [start] repeat(var(--half), minmax(0, 1fr)) [half] repeat(var(--half), minmax(0, 1fr)) [end];
  grid-template-rows: minmax(0, 1fr) auto;
  column-gap: var(--gutter);
  align-items: end;
  align-items: last baseline;
  height: 100vh;
  height: 100dvh;
  padding:
    var(--margin)
    calc(var(--margin) + var(--safe-r))
    calc(var(--margin) + var(--safe-b))
    calc(var(--margin) + var(--safe-l));
  background: none;
  pointer-events: none;
}

.holding .skip-link,
.holding #menu > *,
.holding .ml-corner {
  pointer-events: auto;
}

.holding main {
  grid-row: 2;
  grid-column: start / end;
}

.holding .intro {
  position: fixed;
  top: calc(var(--margin) + var(--lead));
  left: calc(var(--margin) + var(--safe-l));
  display: grid;
  grid-auto-rows: var(--lead);
  align-items: start;
  width: auto;
  padding: 0;
  text-align: left;
  text-align-last: auto;
  color: var(--dim);
  z-index: 10;
}

.holding .intro p {
  line-height: 1;
}

.holding .intro-primary {
  line-height: 1cap;
}

.holding #menu {
  top: 0;
  left: 0;
  right: 0;
  display: grid;
  grid-template-columns: [start] repeat(var(--half), minmax(0, 1fr)) [half] repeat(var(--half), minmax(0, 1fr)) [end];
  column-gap: var(--gutter);
  align-items: start;
  min-width: 0;
  min-height: 0;
  padding:
    var(--margin)
    calc(var(--margin) + var(--safe-r))
    0
    calc(var(--margin) + var(--safe-l));
  background: none;
}

.holding #menu .wordmark {
  grid-row: 1;
  grid-column: start / half;
  justify-self: start;
  display: block;
  height: auto;
  padding: 0;
}

.holding #menu #menu-trigger,
.holding .panel-x {
  --burger-w: 1em;
  --burger-t: 3px;
  --burger-gap: calc((1cap - var(--burger-t)) / 2);

  position: relative;
  box-sizing: content-box;
  width: var(--burger-w);
  height: 1cap;
  padding: calc((44px - 1cap) / 2) calc((44px - var(--burger-w)) / 2);
  margin: calc((1cap - 44px) / 2) calc((var(--burger-w) - 44px) / 2);
  border: 0;
  border-radius: 0;
  background: none;
  color: var(--ink);
}

.holding #menu #menu-trigger {
  grid-row: 1;
  grid-column: half / end;
  justify-self: end;
  inset: auto;
}

.holding .menu-word {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

.holding .menu-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1.4em;
  height: 1.4em;
  transform: translate(-50%, -50%);
  fill: currentColor;
}

.holding #menu-trigger[aria-expanded="true"] .menu-icon {
  visibility: hidden;
}

.holding #menu-trigger[aria-expanded="true"]::before,
.holding #menu-trigger[aria-expanded="true"]::after,
.holding .panel-x::before,
.holding .panel-x::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: var(--burger-w);
  height: var(--burger-t);
  margin-top: calc(var(--burger-t) / -2);
  margin-left: calc(var(--burger-w) / -2);
  background: currentColor;
}

.holding #menu-trigger[aria-expanded="true"]::before,
.holding .panel-x::before {
  transform: rotate(45deg);
}

.holding #menu-trigger[aria-expanded="true"]::after,
.holding .panel-x::after {
  transform: rotate(-45deg);
}

.holding .panel-x {
  display: inline-block;
  flex: none;
  font-family: var(--hero-face);
  font-size: var(--hero);
  font-weight: var(--hero-weight);
  line-height: 1cap;
}

.holding .privacy-head {
  align-items: center;
}

.holding .privacy-head .panel-x {
  --burger-w: 14px;
  --burger-t: 1.5px;
  width: 10px;
  height: 10px;
  padding: 17px;
  margin: -17px;
}

.holding .menu-items {
  grid-row: 2;
  grid-column: start / end;
}

.holding .menu-items a:not(:empty),
.holding .menu-items #ml-toggle {
  margin: 0;
  padding-inline: 0;
  padding-block: calc((var(--lead) - 1cap) / 2);
  border: 0;
  border-radius: 0;
  background: none;
  color: var(--dim);
}

.holding .menu-items #ml-toggle {
  font: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  text-transform: inherit;
  white-space: nowrap;
}

.holding .menu-contact {
  display: none;
  margin-top: var(--lead);
  padding-inline: 0;
  padding-block: calc((var(--lead) - 1cap) / 2);
  color: var(--ink);
  text-box: trim-both cap alphabetic;
  white-space: nowrap;
}

.holding #menu:has(.menu-items a:not(:empty)) .menu-contact {
  display: block;
}

.holding .menu-items a:not(:empty):hover,
.holding .menu-items a:not(:empty):focus-visible,
.holding .menu-items #ml-toggle:hover,
.holding .menu-items #ml-toggle:focus-visible {
  background: none;
  color: var(--ink);
  text-decoration: none;
}

.holding .holding-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: var(--gutter);
  height: var(--lead);
}

.holding .holding-label {
  flex: none;
  color: var(--dim);
}

.holding .holding-row input[type="email"] {
  --rule: max(1px, 0.04em);

  flex: 1 1 auto;
  min-width: 0;
  height: var(--lead);
  padding: 0;
  border: 0;
  border-bottom: var(--rule) solid var(--ink);
  border-radius: 0;
  background: none;
  color: var(--ink);
  line-height: normal;
  text-align: left;
}

.holding .holding-row input[type="email"]::placeholder {
  color: var(--dim);
  opacity: 1;
}

.holding .holding-row input[type="email"]:focus,
.holding .holding-field.invalid input[type="email"] {
  outline: none;
  border-bottom: var(--rule) solid var(--ink);
  padding-bottom: 0;
  box-shadow: inset 0 calc(var(--rule) * -1) 0 var(--ink);
}

.holding .holding-row .cta-chip {
  flex: none;
  margin: 0;
  padding: calc((var(--lead) - 1cap) / 2) 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: var(--ink);
  white-space: nowrap;
}

.holding .holding-row .cta-chip::before {
  content: "[\00a0";
  display: inline-block;
}

.holding .holding-row .cta-chip::after {
  content: "\00a0]";
  display: inline-block;
}

.holding .holding-row .cta-chip:hover,
.holding .holding-row .cta-chip:focus-visible {
  background: none;
  border: 0;
  color: var(--dim);
  text-decoration: none;
}

.holding .holding-row .cta-chip:disabled {
  background: none;
  border: 0;
  color: inherit;
}

.holding .holding-error {
  padding-bottom: var(--s-2);
  font-family: var(--font-mono);
  font-size: var(--type-fine);
  font-weight: 400;
  line-height: var(--line-height);
  letter-spacing: normal;
  color: var(--accent);
}

.holding .holding-done .holding-row {
  justify-content: flex-start;
}

.holding .holding-done-line {
  flex: 1 1 auto;
  font-size: inherit;
  text-align: left;
  white-space: nowrap;
  color: var(--dim);
}

.holding .holding-done.ml-corner .holding-row {
  justify-content: space-between;
}

.holding .holding-done.ml-corner .holding-done-line {
  flex: 0 0 auto;
  text-align: right;
}

@media (max-width: 767px),
       (min-width: 768px) and (max-width: 1439px) and (orientation: portrait),
       (max-height: 500px) {
  .holding .privacy-panel {
    right: calc(var(--margin) / 2 + var(--safe-r));
    left: calc(var(--margin) / 2 + var(--safe-l));
  }

  .holding .privacy-head {
    padding-right: calc(var(--margin) / 2 - 1px);
    padding-left: calc(var(--margin) / 2 - 1px);
  }
}

@media (min-width: 1440px) and (min-height: 501px) {

  .holding #menu .wordmark {
    pointer-events: none;
  }

  .holding .menu-items {
    grid-column: half / end;
    justify-self: end;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    column-gap: 0;
  }

  .holding #menu:has(.menu-items a:not(:empty)) .menu-items {
    padding-top: calc((3 * var(--lead) - 1cap) / 2);
  }

  .holding .menu-mailing {
    display: none;
  }

  .holding .ml-corner {
    position: static;
    grid-row: 2;
    grid-column: half / end;
    width: auto;
    padding: 0;
    margin-bottom: calc((1cap - var(--lead)) / 2);
    text-align: left;
  }

  body.holding .legal {
    position: static;
    grid-row: 2;
    grid-column: start / half;
    justify-self: start;
    flex-wrap: nowrap;
    padding: 0;
  }

  .holding .legal > :not([popover]) {
    white-space: nowrap;
    text-box: trim-both cap alphabetic;
    padding-block: var(--s-2);
    margin-block: calc(var(--s-2) * -1);
  }

  .holding .legal .readout {
    padding: 0;
    color: var(--dim);
  }

  .holding .privacy-panel {
    --privacy-foot: calc(var(--margin) + var(--type-fine) + var(--s-3) + var(--safe-b));
    width: calc(72ch + 2 * var(--s-4));
  }

  @supports (anchor-name: --legal) {
    .holding .legal {
      anchor-name: --legal;
    }

    .holding .privacy-panel {
      position-anchor: --legal;
      left: anchor(left);
      right: auto;
      margin: 0;
      translate: 0 0;
    }
  }
}

@media (max-width: 1439px), (max-height: 500px) {

  .holding .menu-items {
    padding-top: calc((3 * var(--lead) - 1cap) / 2);
  }

  .holding .menu-items a,
  .holding .menu-items #ml-toggle {
    display: block;
    text-align: left;
  }

  html:not(.js) body.holding {
    padding-bottom: calc(var(--margin) + var(--type-fine) * var(--line-height) + var(--s-2) + var(--safe-b));
  }

  html.js .holding #menu {
    height: var(--bar);
    overflow: hidden;
  }

  html.js .holding #menu:has(.menu-items a:not(:empty)) {
    height: 100dvh;
    z-index: 15;
    background: var(--bg);
    pointer-events: auto;
  }

  html.js .holding #menu:has(.menu-items a:not(:empty)) .menu-items {
    grid-row: auto;
    grid-column: auto;
    position: absolute;
    top: var(--bar);
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    padding-top: max(0px, calc((3 * var(--lead) - 1cap) / 2 - var(--margin)));
    padding-right: calc(var(--margin) + var(--safe-r));
    padding-left: calc(var(--margin) + var(--safe-l));
  }

  html.js .holding #menu:has(.menu-items a:not(:empty)) .menu-items a,
  html.js .holding #menu:has(.menu-items a:not(:empty)) .menu-items #ml-toggle {
    flex: 0 0 auto;
    display: block;
    width: auto;
    margin-inline: 0;
    padding-inline: 0;
    padding-block: calc((var(--lead) - 1cap) / 2);
    text-align: left;
  }

  .holding .menu-mailing {
    flex: 0 0 auto;
    width: 100%;
  }

  .holding .menu-mailing-head {
    position: relative;
    height: var(--lead);
  }

  .holding .menu-mailing-head .menu-mailing-submit {
    display: none;
    position: absolute;
    top: calc((var(--lead) - 1cap) / 2);
    right: 0;
  }

  .holding #menu.mailing-open .menu-mailing-head .menu-mailing-submit {
    display: inline-block;
  }

  .holding #menu.mailing-success .menu-mailing-head .menu-mailing-submit {
    display: none;
  }

  html.js .holding .menu-mailing-extra {
    display: none;
  }

  html.js .holding #menu.mailing-open .menu-mailing-extra {
    display: block;
  }

  .holding .menu-mailing-extra[hidden],
  .holding .menu-mailing-form[hidden],
  .holding .menu-mailing-done[hidden] {
    display: none;
  }

  .holding .menu-mailing-extra {
    height: calc(var(--lead) * 3);
  }

  .holding .menu-mailing-form,
  .holding .menu-mailing-done {
    height: calc(var(--lead) * 3);
    color: var(--ink);
  }

  .holding .menu-mailing-form .holding-field {
    display: grid;
    grid-template-rows: repeat(3, var(--lead));
    min-height: calc(var(--lead) * 3);
  }

  .holding .menu-mailing-form .holding-error {
    grid-row: 1;
    align-self: center;
    padding: 0;
  }

  .holding .menu-mailing-email {
    --rule: max(1px, 0.04em);

    grid-row: 2;
    align-self: stretch;
    width: 100%;
    min-width: 0;
    height: var(--lead);
    padding: 0;
    border: 0;
    border-bottom: var(--rule) solid var(--ink);
    border-radius: 0;
    background: none;
    color: var(--ink);
    font: inherit;
    line-height: normal;
    text-align: left;
  }

  .holding .menu-mailing-email::placeholder {
    color: var(--dim);
    opacity: 1;
  }

  .holding .menu-mailing-email:focus::placeholder {
    color: transparent;
  }

  .holding .menu-mailing-email:focus,
  .holding .menu-mailing-form .holding-field.invalid .menu-mailing-email {
    outline: none;
    border-bottom-color: var(--ink);
    box-shadow: inset 0 calc(var(--rule) * -1) 0 var(--ink);
  }

  .holding .menu-mailing-submit {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    color: var(--ink);
    font: inherit;
    line-height: 1cap;
    white-space: nowrap;
    text-box: trim-both cap alphabetic;
  }

  .holding .menu-mailing-submit::before {
    content: "[\00a0";
  }

  .holding .menu-mailing-submit::after {
    content: "\00a0]";
  }

  .holding .menu-mailing-submit:hover,
  .holding .menu-mailing-submit:focus-visible {
    color: var(--ink);
    text-decoration: none;
  }

  .holding #menu.mailing-open .menu-items #ml-toggle,
  .holding #menu.mailing-open .menu-items #ml-toggle:hover,
  .holding #menu.mailing-open .menu-items #ml-toggle:focus-visible {
    color: var(--dim);
  }

  .holding .menu-mailing-done {
    display: grid;
    grid-template-rows: repeat(3, var(--lead));
  }

  .holding .menu-mailing-done .holding-done-line {
    grid-row: 2;
    align-self: center;
    justify-self: stretch;
    flex: none;
    color: var(--dim);
    text-align: left;
  }

  @supports (mask-image: url("assets/logo-mark.png")) or
            (-webkit-mask-image: url("assets/logo-mark.png")) {
    html.js .holding #menu:has(.menu-items a:not(:empty)) .menu-items::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      top: calc(70dvh - var(--furniture));
      height: 19dvh;
      background: var(--accent);
      -webkit-mask-image: url("assets/logo-mark.png");
              mask-image: url("assets/logo-mark.png");
      -webkit-mask-repeat: no-repeat;
              mask-repeat: no-repeat;
      -webkit-mask-size: auto 100%;
              mask-size: auto 100%;
      -webkit-mask-position: center;
              mask-position: center;
    }
  }

  @supports (mask-image: url("assets/logo-mark.png")) or
            (-webkit-mask-image: url("assets/logo-mark.png")) {
    html.js .holding #menu.mailing-open:has(.menu-items a:not(:empty)) .menu-items::after {
      top: max(calc(70dvh - var(--furniture)), calc(var(--lead) * 12));
    }
  }

  .holding .ml-corner {
    display: none;
  }

  .holding .holding-error {
    text-align: left;
  }

  .holding .menu-items #ml-toggle:focus-visible {
    color: var(--dim);
  }

  html.js body.holding .legal {
    display: none;
  }

  html.js body.holding:has(#menu-trigger[aria-expanded="true"]) .legal {
    display: flex;
    position: fixed;
    left: 0;
    right: 0;
    bottom: calc(var(--s-4) - var(--fine-lead) + var(--safe-b));
    padding: 0;
    z-index: 16;
  }

  .holding .rd-regen,
  .holding .readout {
    display: none;
  }
}

@media (min-width: 768px) and (max-width: 1439px) and (orientation: landscape) and (min-height: 501px) {

  .holding .menu-mailing {
    display: none;
  }

  .holding .ml-corner:not([hidden]) {
    display: block;
    position: static;
    grid-row: 2;
    grid-column: half / end;
    width: auto;
    margin-bottom: calc((1cap - var(--lead)) / 2);
  }

  .holding .ml-corner .holding-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: var(--gutter);
    height: var(--lead);
  }

  .holding .ml-corner .holding-label,
  .holding .ml-corner .holding-row input[type="email"],
  .holding .ml-corner .holding-row .cta-chip,
  .holding .holding-done.ml-corner .holding-done-line {
    grid-column: auto;
    grid-row: auto;
  }
}

@media (min-width: 768px) and (max-width: 1439px) and (min-height: 501px) {

  .holding .privacy-panel {
    --privacy-foot: calc(var(--s-4) + var(--type-fine) * var(--line-height) + var(--s-3) + var(--safe-b));
  }
}

.privacy-page .privacy-page-main {
  padding: 0 var(--s-5) var(--s-6);
}

.privacy-page .privacy-page-copy {
  max-width: 88ch;
  font-size: var(--type-fine);
  line-height: 1.4;
  text-transform: none;
}

.privacy-page .privacy-page-updated {
  color: var(--dim);
  margin-top: var(--s-5);
}

.privacy-page .privacy-page-copy > p + p {
  margin-top: var(--s-3);
}

.privacy-page .privacy-page-section {
  margin-top: var(--s-5);
}

.privacy-page .privacy-page-section h2 {
  margin-bottom: var(--s-2);
  text-transform: uppercase;
}

.privacy-page .privacy-page-section p + p {
  margin-top: var(--s-3);
}

.privacy-page .privacy-page-copy a {
  color: var(--ink);
  text-decoration: none;
}

.privacy-page .privacy-page-copy a:hover,
.privacy-page .privacy-page-copy a:focus-visible {
  color: var(--accent);
}

@media (min-width: 768px) and (min-height: 501px) {
  .privacy-page .privacy-page-main {
    padding-left: var(--page-left);
  }
}

@media (max-width: 767px), (max-height: 500px) {
  .privacy-page .privacy-page-main {
    padding-left: var(--s-4);
    padding-right: var(--s-4);
  }
}

@media (max-height: 500px) {

  html.js #menu:has(.menu-items a:not(:empty)) .menu-items {
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-bottom: var(--s-6);
  }

  html.js #menu:has(.menu-items a:not(:empty)) .menu-items::after,
  html.js .holding #menu:has(.menu-items a:not(:empty)) .menu-items::after {
    content: none;
  }
}

@media (max-height: 500px) and (min-width: 768px) {

  :root {
    --type-size: 14px;
  }

  body:not(.holding) #menu .wordmark {
    padding-left: var(--s-5);
  }

  .holding {
    --hero: min(24px, 3vw);
  }
}

@media (prefers-reduced-motion: reduce) {

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}