
.page { padding-top: var(--s-6); }
.page__header { padding-bottom: var(--s-6); }

.page__title {
  margin: 0;
  font-size: var(--t-display);
  font-weight: var(--display);
  font-stretch: 112%;
  line-height: 0.88;
  letter-spacing: var(--track-display);
}

.page__lede, .page__promise { max-width: 34rem; }
.page__lede { margin: var(--s-5) 0 0; font-size: var(--t-lead); font-weight: var(--medium); line-height: 1.3; letter-spacing: -0.01em; }
.page__header .button { margin-top: var(--s-6); }
.page__promise { margin: var(--s-4) 0 0; font-size: var(--t-body); line-height: 1.5; }

.about { padding: var(--s-5) 0 var(--s-6); border-top: var(--rule); }
.about__title { margin: 0 0 var(--s-4); color: var(--ink-2); font: var(--regular) var(--t-meta) / 1rem var(--mono); }

.about__body { display: grid; grid-template-columns: 5rem minmax(0, 1fr); gap: var(--s-5); align-items: start; max-width: 40rem; }
.about__photo { display: block; width: 5rem; height: 5rem; border-radius: 50%; object-fit: cover; }
.about__line { margin: 0; font-size: var(--t-read); line-height: 1.55; }
.about__roles { margin: var(--s-4) 0 0; padding: 0; list-style: none; }
.about__role { padding: var(--s-1) 0; line-height: 1.4; }
.about__years { color: var(--ink-2); font-family: var(--mono); font-size: var(--t-meta); white-space: nowrap; }
.about__links { display: flex; gap: var(--s-1); margin: var(--s-3) 0 0 calc(-1 * var(--s-3)); padding: 0; list-style: none; }
.about__icon { display: inline-flex; align-items: center; justify-content: center; width: var(--target); height: var(--target); color: var(--ink); }
.about__icon:hover { color: var(--ink-2); }
.about__icon:focus-visible { outline: var(--focus); outline-offset: -2px; }

.helps { display: grid; gap: var(--s-4) var(--s-6); padding: 0 0 var(--s-5); }
.helps__group-title { margin: 0 0 var(--s-1); color: var(--ink-2); font: var(--regular) var(--t-meta) / 1rem var(--mono); }
.helps__list { margin: 0; padding: 0; list-style: none; }
.helps__notes { margin: calc(-1 * var(--s-2)) 0 var(--s-5); }
.helps__notes > :first-child { margin-top: 0; }
.help { padding: var(--s-2) 0; border-bottom: var(--rule-hair); font-size: var(--t-body); font-weight: var(--strong); line-height: 1.35; }

.page--offer .about { padding: 0 0 var(--s-5); border-top: 0; }
.page--offer { max-width: 46rem; }
.page--offer .page__header { padding-bottom: var(--s-5); }
.page--offer .page__title { max-width: 40rem; font-size: var(--t-h2); line-height: 1.05; letter-spacing: var(--track-h2); }
.page--offer .page__lede { margin-top: var(--s-4); font-size: var(--t-read); line-height: 1.5; }
.page--offer .page__header .button { margin-top: var(--s-5); }
.page--offer .about__title { margin-bottom: var(--s-3); }
.page--offer .page__act { padding: var(--s-2) 0 var(--s-6); }
.page--offer .page__header .button + .page__promise { margin-top: var(--s-3); }

.page__section { padding: 0 0 var(--s-5); }
.page__label { margin: 0 0 var(--s-3); color: var(--ink-2); font: var(--regular) var(--t-meta) / 1rem var(--mono); }
.page__section .page__label + .page__promise { margin-top: 0; }
.about__line + .about__line { margin-top: var(--s-3); }

.page__act-title { margin: 0; font-size: var(--t-lead); font-weight: var(--strong); line-height: 1.25; letter-spacing: var(--track-h3); text-wrap: balance; }
.page__act-title + .page__promise { margin-top: var(--s-2); }
.page__act-title ~ .button { margin-top: var(--s-5); }

@media (min-width: 48rem) {
    .helps { grid-template-columns: 1fr 1fr; }
  .helps__group { display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: 0; }
  .about__body { grid-template-columns: 7.5rem minmax(0, 1fr); }
  .about__photo { width: 7.5rem; height: 7.5rem; }
}

.page--legal { max-width: 46rem; padding-bottom: var(--s-6); }
.page--legal .page__title { font-size: var(--t-h2); line-height: 1.05; letter-spacing: var(--track-h2); }
.page--legal .page__header { padding-bottom: var(--s-5); }
.legal__date { margin: var(--s-3) 0 0; color: var(--ink-2); font: var(--regular) var(--t-meta) / 1rem var(--mono); }
.legal__intro, .legal__section { max-width: 40rem; font-size: var(--t-read); line-height: 1.6; }
.legal__intro { padding-bottom: var(--s-3); }
.legal__section { padding: var(--s-4) 0 var(--s-2); border-top: var(--rule-hair); }
.legal__section h2 { margin: 0 0 var(--s-3); font-size: var(--t-lead); font-weight: var(--strong); line-height: 1.25; letter-spacing: var(--track-h3); }
.legal__section h3 { margin: var(--s-4) 0 var(--s-2); font-size: var(--t-body); font-weight: var(--strong); }
:is(.legal__intro, .legal__section) :is(p, ul) { margin: 0 0 var(--s-3); }
:is(.legal__intro, .legal__section) li + li { margin-top: var(--s-2); }
:is(.legal__intro, .legal__section) a { overflow-wrap: anywhere; }
.legal__caps { font-size: var(--t-body); }

.field { min-width: 0; margin: 0; padding: 0; border: 0; }
.field__label { display: block; margin-bottom: var(--s-2); padding: 0; font-weight: var(--strong); }

.field__input {
  width: 100%;
  min-height: var(--target);
  padding: 0 var(--s-3);
  border: var(--rule-hair);
  border-radius: var(--radius-control);
  background: var(--surface);
  font-size: 1.125rem;
  font-weight: var(--medium);
  appearance: none;
}

.field__input::placeholder { color: var(--ink-2); opacity: 1; }
.field__input:focus-visible { outline: var(--focus); outline-offset: 2px; }

.field__input[aria-invalid] { border-color: var(--ink); }
.field__error { margin: var(--s-2) 0 0; font-weight: var(--strong); }

.call { max-width: 32rem; padding-top: var(--s-6); }
.call__title { margin: 0; font-size: var(--t-h2); font-weight: var(--display); font-stretch: 112%; line-height: 1; letter-spacing: var(--track-h2); }
.call__lede { margin: var(--s-3) 0 var(--s-5); max-width: 32rem; color: var(--ink-2); }
.call__form { display: grid; gap: var(--s-5); }
.call__form .button { justify-self: start; }
.call__thanks { margin: 0; font-size: var(--t-lead); font-weight: var(--medium); line-height: 1.3; overflow-wrap: anywhere; }

.contact-form { max-width: 40rem; }
textarea.field__input { min-height: 10rem; padding: var(--s-3); line-height: 1.5; resize: vertical; }

.call-dialog {
  width: min(34rem, calc(100vw - 2 * var(--margin)));
  max-height: calc(100dvh - 2 * var(--s-5));
  padding: var(--s-5);
  border: var(--rule-hair);
  border-radius: var(--radius-control);
  background: var(--paper);
  color: var(--ink);
}
.call-dialog::backdrop { background: rgb(0 0 0 / 0.5); } .call-dialog .call { padding-top: 0; }
.call-dialog__close { float: right; min-height: var(--target); margin: calc(-1 * var(--s-3)) calc(-1 * var(--s-2)) 0 var(--s-3); padding: 0 var(--s-3); }
.call-dialog__close:focus-visible { outline-offset: -2px; }

.auth { display: grid; gap: var(--s-5); max-width: 24rem; padding: var(--s-7) 0 var(--s-8); }
.auth__title { margin: 0; font-size: var(--t-h3); font-weight: var(--strong); line-height: 1.1; letter-spacing: var(--track-h3); }
.auth__form { display: grid; gap: var(--s-5); }
.auth__form .button { justify-self: start; }
.auth__alert { margin: 0; padding: var(--s-3) var(--s-4); border: var(--rule-hair); border-radius: var(--radius-control); background: var(--surface); font-weight: var(--medium); }
.auth__aside { margin: 0; }


.door { display: block; max-width: 52rem; padding-top: var(--s-6); } .door__header { padding-bottom: var(--s-5); }

.door__title {
  margin: 0;
  font-size: var(--t-h1);
  font-weight: var(--display);
  font-stretch: 112%;
  line-height: 0.95;
  letter-spacing: var(--track-h1);
  text-wrap: balance;
}

.door__lede { max-width: 34rem; margin: var(--s-4) 0 0; font-size: var(--t-lead); font-weight: var(--medium); line-height: 1.3; letter-spacing: -0.01em; text-wrap: pretty; }

.page--post { display: block; }
.page--offer .post-form { padding-top: 0; border-top: 0; }
.page--offer .post-form__submit + .post-form__promise { margin-top: calc(-1 * var(--s-2)); }
.post-form { display: grid; gap: var(--s-5); max-width: 40rem; padding-top: var(--s-5); border-top: var(--rule); }
.post-form__submit { display: grid; gap: var(--s-3); }
.post-form__submit .button { width: 100%; min-width: 0; text-align: center; }
.post-form__promise { margin: 0; color: var(--ink-2); font-size: var(--t-small); }

@media (min-width: 48rem) {
  .post-form__submit { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3) var(--s-5); }
  .post-form__submit .button { width: auto; }
}

.door__note { max-width: 40rem; margin: 0; color: var(--ink-2); }
.door__note--after { margin-top: var(--s-5); }
.door__address { overflow-wrap: anywhere; }
.door__header + .door__note + .weekly { margin-top: var(--s-3); padding-top: 0; border-top: 0; }
.door__header + .door__note + .weekly .weekly__heading, .door__header + .door__note + .weekly .weekly__lede { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.door__first { margin-top: var(--s-2); }
.door__subhead { margin: 0 0 var(--s-3); font-size: var(--t-body); font-weight: var(--strong); }
.door__rows { border-top: var(--rule-heavy); }
.door .weekly { margin-top: 0; }

.door__after { display: grid; justify-items: start; gap: var(--s-2); margin-top: var(--s-6); }

.door__plate { display: none; }
.plate--next .o { fill: var(--ink); }
.plate--next .n { fill: none; stroke: var(--ink); stroke-width: 0.5; } 
@media (prefers-color-scheme: dark) {
  .plate--next .o { fill: var(--ink-2); } }

@media (forced-colors: active) {
  .plate--next { forced-color-adjust: none; }
  .plate--next .o { fill: CanvasText; }
  .plate--next .n { fill: Canvas; stroke: CanvasText; }
}

@media (min-width: 64rem) {
  .door--plate { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: var(--gutter); align-items: start; max-width: none; }
  .door--plate .door__main { grid-column: 1; min-width: 0; }
  .door__plate { display: block; grid-column: 2; grid-row: 1; width: 100%; height: auto; margin: var(--s-4) 0 var(--s-6); }
}
.door__again { display: inline-flex; align-items: center; min-height: var(--target); font-weight: var(--medium); }

