:root {
  --page:#FFFDF7;
  --card:#F2EEE3;
  --text:#16302B;
  --text-2:#5B6F6A;
  --brand:#0F766E;
  --on-brand:#FFFFFF;
  --brand-deep:#0B5A54;
  --line:#D9D4C5;
  --display:"Josefin Sans","Avenir Next","Century Gothic",sans-serif;
  --serif:"Cardo","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --gutter:1.25rem;
  --radius:6px;
  --measure:620px;
}

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

html {
  background-color:var(--page);
  color:var(--text);
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

body {
  margin:0;
  background-color:var(--page);
  color:var(--text);
  font-family:var(--serif);
  font-size:clamp(1.175rem,1.13rem + .22vw,1.3rem);
  line-height:1.62;
  text-rendering:optimizeLegibility;
  overflow-wrap:break-word;
}

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

img,video {
  display:block;
  height:auto;
}

h1,h2,h3,p,ul,ol,figure,table,fieldset,legend,dl,dd {
  margin:0;
}

ul,ol {
  padding:0;
  list-style:none;
}

fieldset {
  border:0;
  padding:0;
  min-width:0;
}

a {
  color:var(--brand);
  text-underline-offset:4px;
  transition:color .2s ease;
}

a:hover {
  color:var(--brand-deep);
}

:focus-visible {
  outline:2px dashed var(--brand);
  outline-offset:4px;
}

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

.shell {
  width:100%;
  max-width:46rem;
  margin:0 auto;
  padding:0 var(--gutter);
  background-color:var(--page);
  color:var(--text);
}

.masthead {
  display:flex;
  align-items:center;
  padding:.5rem 0;
  border-bottom:1px solid var(--line);
  background-color:var(--page);
  color:var(--text);
}

.masthead__brand {
  display:inline-flex;
  align-items:center;
  gap:.85rem;
  min-height:48px;
  color:var(--text);
  text-decoration:none;
}

.masthead__brand:hover {
  color:var(--text);
}

.masthead__mark {
  flex:none;
  display:block;
  width:36px;
  height:36px;
  color:var(--brand);
}

.masthead__mark-core {
  fill:var(--page);
}

.masthead__name {
  font-family:var(--display);
  font-weight:700;
  font-size:1.1rem;
  line-height:1;
  letter-spacing:.38em;
  text-transform:uppercase;
  transition:color .2s ease;
}

.masthead__brand:hover .masthead__name {
  color:var(--brand);
}

.issue {
  padding:0 0 4rem;
  background-color:var(--page);
  color:var(--text);
}

.issue__inner {
  width:100%;
  max-width:880px;
}

.label {
  padding:1rem 0 1.25rem;
  text-align:center;
  font-size:.95rem;
  line-height:1.2;
  letter-spacing:.14em;
  color:var(--text-2);
}

.hero {
  margin:0;
}

.hero__frame {
  position:relative;
  aspect-ratio:4 / 5;
  overflow:hidden;
  border-radius:var(--radius);
  background-color:var(--card);
}

.hero__img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:60% 0;
}

.hero__shade {
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(8,24,21,0) 0%,rgba(8,24,21,.3) 32%,rgba(8,24,21,.78) 58%,rgba(8,24,21,.93) 100%);
}

.hero__copy {
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:1.25rem 1.1rem 1.4rem;
  color:var(--on-brand);
}

.hero__title {
  font-family:var(--display);
  font-weight:700;
  font-size:clamp(1.75rem,1.2rem + 2.6vw,3.25rem);
  line-height:1.08;
  letter-spacing:-.012em;
  color:var(--on-brand);
  max-width:19em;
}

.hero__dek {
  margin-top:.9rem;
  max-width:34rem;
  font-size:clamp(1rem,.95rem + .3vw,1.2rem);
  line-height:1.45;
  color:var(--on-brand);
}

.hero__caption {
  margin-top:.7rem;
  max-width:var(--measure);
  font-size:.95rem;
  line-height:1.45;
  font-style:italic;
  color:var(--text-2);
}

.byline {
  margin-top:1.1rem;
  padding-bottom:1.1rem;
  font-size:1rem;
  line-height:1.4;
  letter-spacing:.03em;
  color:var(--text-2);
}

.byline__sep {
  display:inline-block;
  width:.3rem;
  height:.3rem;
  margin:0 .6rem .18rem;
  background-color:var(--brand);
  transform:rotate(45deg);
}

.opening {
  display:grid;
  gap:1.25rem;
  margin-top:2.25rem;
}

.opening__text {
  max-width:var(--measure);
}

.opening__text:first-child::first-letter {
  float:left;
  margin:.12em .1em 0 0;
  font-weight:700;
  font-size:3.3em;
  line-height:.78;
  color:var(--brand);
}

.story {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:1.25rem;
  margin-top:clamp(3.75rem,2.6rem + 4.6vw,6.5rem);
}

.story__title {
  font-family:var(--display);
  font-weight:600;
  font-size:clamp(1.5rem,1.2rem + 1.2vw,2.05rem);
  line-height:1.18;
  letter-spacing:-.005em;
  color:var(--text);
  max-width:19em;
}

.story__title::before {
  content:"";
  display:block;
  width:.7rem;
  height:.7rem;
  margin-bottom:1rem;
  background-color:var(--brand);
  clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);
}

.story__text {
  max-width:var(--measure);
}

.story__wide {
  min-width:0;
}

.figure {
  margin:.5rem 0;
}

.figure__frame {
  position:relative;
  aspect-ratio:3 / 2;
  overflow:hidden;
  border-radius:var(--radius);
  background-color:var(--card);
}

.figure__frame--wide {
  aspect-ratio:16 / 10;
}

.figure__frame--video {
  aspect-ratio:16 / 9;
}

.figure__img {
  width:100%;
  height:100%;
  object-fit:cover;
}

.figure__img--top {
  object-position:50% 12%;
}

.figure__img--left {
  object-position:30% 20%;
}

.figure__img--right {
  object-position:68% 30%;
}

.figure__video {
  width:100%;
  height:100%;
  object-fit:cover;
}

.note {
  padding-left:1rem;
  border-left:2px solid var(--brand);
  font-size:1rem;
  line-height:1.5;
  font-style:italic;
  color:var(--text-2);
  max-width:var(--measure);
}

.note__tag {
  display:block;
  margin-bottom:.3rem;
  font-style:normal;
  font-weight:700;
  font-size:.9rem;
  letter-spacing:.1em;
  color:var(--brand);
}

.note--pull {
  font-size:1.2rem;
  line-height:1.4;
  color:var(--text);
}

.steps {
  display:grid;
  gap:1.15rem;
  max-width:var(--measure);
}

.steps__item {
  position:relative;
  padding-left:1.1rem;
}

.steps__item::before {
  content:"";
  position:absolute;
  left:0;
  top:.62em;
  width:.45rem;
  height:.45rem;
  background-color:var(--brand);
  clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);
}

.steps__lead {
  display:block;
  font-weight:700;
  color:var(--brand);
  letter-spacing:.02em;
}

.cta {
  margin-top:.75rem;
}

.cta__lead {
  max-width:var(--measure);
  margin-bottom:.25rem;
}

.cta__link {
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  min-height:48px;
  font-family:var(--serif);
  font-weight:700;
  font-size:1.2rem;
  line-height:1.2;
  color:var(--brand);
  text-decoration:none;
  text-decoration-thickness:2px;
  text-underline-offset:6px;
}

.cta__link:hover {
  color:var(--brand-deep);
  text-decoration:underline;
}

.cta__icon {
  flex:none;
  width:12px;
  height:12px;
  transition:transform .2s ease;
}

.cta__link:hover .cta__icon {
  transform:translateX(3px);
}

.compare__caption {
  margin-bottom:.5rem;
  text-align:left;
  font-weight:700;
  color:var(--text);
}

.compare__table {
  display:block;
  width:100%;
  font-size:1.02rem;
  line-height:1.5;
}

.compare__body {
  display:block;
}

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

.compare__row {
  display:block;
  padding:1.1rem 0;
  border-top:1px solid var(--line);
}

.compare__row:last-child {
  border-bottom:1px solid var(--line);
}

.compare__cell {
  display:block;
  padding:0;
  text-align:left;
}

.compare__cell + .compare__cell {
  margin-top:.55rem;
}

.compare__cell::before {
  content:attr(data-label);
  display:block;
  font-size:.88rem;
  font-weight:700;
  letter-spacing:.06em;
  color:var(--text-2);
}

.compare__cell--lead {
  font-weight:700;
  color:var(--text);
}

.compare__cell--lead::before {
  display:none;
}

.compare__caption {
  display:block;
}

.selfcheck {
  display:grid;
  gap:1.25rem;
  margin-top:.5rem;
}

.selfcheck__fieldset {
  display:grid;
  gap:.6rem;
}

.selfcheck__legend {
  padding:0;
  margin-bottom:.9rem;
  font-weight:700;
  font-size:1.2rem;
  line-height:1.35;
  color:var(--text);
}

.selfcheck__option {
  display:flex;
  align-items:flex-start;
  gap:.85rem;
  min-height:48px;
  padding:.8rem 1rem;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background-color:var(--page);
  color:var(--text);
  cursor:pointer;
  transition:border-color .2s ease,background-color .2s ease;
}

.selfcheck__option:hover {
  border-color:var(--brand);
}

.selfcheck__option:focus-within {
  outline:2px dashed var(--brand);
  outline-offset:4px;
}

.selfcheck__option:has(.selfcheck__input:checked) {
  border-color:var(--brand);
  background-color:var(--card);
}

.selfcheck__input {
  flex:none;
  width:1.25rem;
  height:1.25rem;
  margin:.2rem 0 0;
  accent-color:var(--brand);
}

.selfcheck__text {
  line-height:1.45;
}

.selfcheck__answer {
  padding-left:1rem;
  border-left:2px solid var(--brand);
  max-width:var(--measure);
}

.selfcheck__results {
  display:grid;
  gap:1rem;
}

.selfcheck__answer p + p {
  margin-top:.25rem;
}

.selfcheck__verdict {
  font-weight:700;
  color:var(--brand);
}

.endnote {
  margin-top:clamp(3.5rem,2.6rem + 3.6vw,5.5rem);
  max-width:var(--measure);
  font-size:.95rem;
  line-height:1.5;
  font-style:italic;
  color:var(--text-2);
}

.bottom {
  padding:3.25rem var(--gutter) 3rem;
  border-top:1px solid var(--line);
  background-color:var(--page);
  color:var(--text);
  text-align:center;
}

.small-docs {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.1rem 1.5rem;
  max-width:66rem;
  margin:0 auto;
}

.small-docs__link {
  display:inline-flex;
  align-items:center;
  min-height:48px;
  font-size:1.02rem;
  color:var(--text);
  text-decoration:none;
}

.small-docs__link:hover {
  color:var(--brand);
  text-decoration:underline;
}

.byline-remark {
  max-width:65ch;
  margin:1.75rem auto 0;
  font-size:1rem;
  line-height:1.6;
  color:var(--text-2);
}

.address-row {
  max-width:46rem;
  margin:2.25rem auto 0;
  font-size:.95rem;
  line-height:1.65;
  color:var(--text-2);
}

.address-row__name {
  margin-bottom:.25rem;
  font-weight:700;
  color:var(--text);
}

.address-row__facts {
  text-wrap:pretty;
}

.doc {
  padding-top:2rem;
}

.doc__title {
  font-family:var(--display);
  font-weight:700;
  font-size:clamp(1.9rem,1.3rem + 2.4vw,3rem);
  line-height:1.1;
  letter-spacing:-.012em;
  color:var(--text);
  max-width:16em;
}

.legal-date {
  margin-top:.9rem;
  font-size:1rem;
  letter-spacing:.04em;
  color:var(--text-2);
}

.doc__section {
  display:grid;
  gap:1rem;
  max-width:var(--measure);
  margin-top:clamp(2.5rem,2rem + 2vw,3.5rem);
}

.doc__heading {
  font-family:var(--display);
  font-weight:600;
  font-size:clamp(1.3rem,1.15rem + .8vw,1.65rem);
  line-height:1.2;
  color:var(--text);
}

.doc__heading::before {
  content:"";
  display:block;
  width:.6rem;
  height:.6rem;
  margin-bottom:.85rem;
  background-color:var(--brand);
  clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);
}

.doc__text a {
  font-weight:700;
}

.view-form-desk {
  background-color:var(--card);
  color:var(--text);
}

.desk-bar {
  background-color:var(--page);
  color:var(--text);
  border-bottom:1px solid var(--line);
}

.desk-bar__inner {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:.25rem 1.5rem;
  width:100%;
  max-width:72rem;
  margin:0 auto;
  padding:.4rem var(--gutter);
}

.desk-bar__back {
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  min-height:48px;
  font-weight:700;
  color:var(--brand);
  text-decoration:none;
}

.desk-bar__back:hover {
  text-decoration:underline;
  color:var(--brand-deep);
}

.desk-bar__icon {
  flex:none;
  width:12px;
  height:12px;
}

.desk {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:2.5rem;
  width:100%;
  max-width:72rem;
  margin:0 auto;
  padding:2.5rem var(--gutter) 4rem;
  background-color:var(--card);
  color:var(--text);
}

.desk__kicker {
  font-weight:700;
  font-size:1rem;
  letter-spacing:.14em;
  color:var(--brand);
}

.desk__title {
  margin-top:.75rem;
  font-family:var(--display);
  font-weight:700;
  font-size:clamp(1.8rem,1.3rem + 2vw,2.6rem);
  line-height:1.1;
  letter-spacing:-.012em;
  color:var(--text);
  max-width:16em;
}

.desk__lead {
  margin-top:1.25rem;
  max-width:34rem;
  color:var(--text);
}

.desk__list {
  display:grid;
  gap:1rem;
  margin-top:2rem;
  max-width:34rem;
}

.desk__item {
  position:relative;
  padding-left:1.9rem;
  color:var(--text);
}

.desk__item::before {
  content:"";
  position:absolute;
  left:0;
  top:.5em;
  width:.95rem;
  height:.55rem;
  border-left:2px solid var(--brand);
  border-bottom:2px solid var(--brand);
  transform:rotate(-45deg);
}

.desk__prep {
  margin-top:2rem;
  max-width:34rem;
  font-style:italic;
  color:var(--text-2);
}

.sheet {
  padding:1.5rem 1.25rem 1.75rem;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background-color:var(--page);
  color:var(--text);
  scroll-margin-top:1rem;
}

.sheet__title {
  font-family:var(--display);
  font-weight:600;
  font-size:1.6rem;
  line-height:1.2;
  color:var(--text);
}

.sheet__intro {
  margin-top:.5rem;
  font-size:1rem;
  line-height:1.5;
  color:var(--text-2);
}

.sheet__status {
  margin-top:1.25rem;
  padding:1rem 1.1rem;
  border-left:2px solid var(--brand);
  background-color:var(--card);
  color:var(--text);
}

.sheet__status-title {
  font-family:var(--display);
  font-weight:600;
  font-size:1.3rem;
  line-height:1.25;
}

.sheet__status-text {
  margin-top:.4rem;
}

.sheet__form {
  display:grid;
  gap:1.35rem;
  margin-top:1.5rem;
}

.field {
  display:grid;
  gap:.4rem;
}

.field__label {
  font-weight:700;
  font-size:1.05rem;
  line-height:1.3;
  color:var(--text);
}

.field__req {
  font-weight:400;
  font-size:.92rem;
  color:var(--text-2);
}

.field__input, .field__select {
  width:100%;
  min-height:52px;
  padding:.65rem .9rem;
  border:1px solid var(--text-2);
  border-radius:var(--radius);
  background-color:var(--page);
  color:var(--text);
  font-family:var(--serif);
  font-size:1.0625rem;
  line-height:1.3;
  transition:border-color .2s ease;
}

.field__select {
  appearance:auto;
}

.field__input:hover, .field__select:hover {
  border-color:var(--brand);
}

.field__input::placeholder {
  color:var(--text-2);
  opacity:1;
}

.field__hint {
  font-size:.95rem;
  line-height:1.4;
  color:var(--text-2);
}

.field__error {
  font-weight:700;
  font-size:.98rem;
  line-height:1.4;
  color:var(--text);
}

.field__error::before {
  content:"";
  display:inline-block;
  width:.45rem;
  height:.45rem;
  margin-right:.5rem;
  background-color:var(--brand);
  transform:rotate(45deg);
}

.field--invalid .field__input, .field--invalid .field__select, .areas--invalid .areas__option, .consent--invalid {
  border-color:var(--text);
  border-width:2px;
}

.areas {
  display:grid;
  gap:.5rem;
}

.areas__legend {
  padding:0;
  margin-bottom:.35rem;
  font-weight:700;
  font-size:1.05rem;
  line-height:1.3;
  color:var(--text);
}

.areas__grid {
  display:grid;
  gap:.5rem;
}

.areas__option, .consent {
  display:flex;
  align-items:flex-start;
  gap:.8rem;
  min-height:48px;
  padding:.7rem .9rem;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background-color:var(--page);
  color:var(--text);
  cursor:pointer;
  transition:border-color .2s ease,background-color .2s ease;
}

.areas__option:hover, .consent:hover {
  border-color:var(--brand);
}

.areas__option:focus-within, .consent:focus-within {
  outline:2px dashed var(--brand);
  outline-offset:4px;
}

.areas__option:has(.areas__input:checked), .consent:has(.consent__input:checked) {
  border-color:var(--brand);
  background-color:var(--card);
}

.areas__input, .consent__input {
  flex:none;
  width:1.25rem;
  height:1.25rem;
  margin:.2rem 0 0;
  accent-color:var(--brand);
}

.areas__text, .consent__text {
  font-size:1rem;
  line-height:1.45;
}

.sheet__submit {
  width:100%;
  min-height:56px;
  padding:.8rem 1.25rem;
  border:0;
  border-radius:var(--radius);
  background-color:var(--brand);
  color:var(--on-brand);
  font-family:var(--serif);
  font-weight:700;
  font-size:1.2rem;
  line-height:1.2;
  cursor:pointer;
  transition:background-color .2s ease;
}

.sheet__submit:hover {
  background-color:var(--brand-deep);
}

@media (min-width:720px) {
  :root {
    --gutter:2rem;
  }
  .masthead {
    padding:.75rem 0;
  }
  .masthead__name {
    font-size:1.2rem;
  }
  .hero__frame {
    aspect-ratio:3 / 2;
  }
  .hero__copy {
    padding:1.75rem 1.9rem 2rem;
  }
  .hero__dek {
    margin-top:1.1rem;
  }
  .figure__frame--wide {
    aspect-ratio:2 / 1;
  }
  .story__wide.compare {
    margin:.5rem 0;
  }
  .compare__table {
    display:table;
    border-collapse:collapse;
  }
  .compare__caption {
    display:table-caption;
    padding-bottom:.9rem;
  }
  .compare__head {
    position:static;
    width:auto;
    height:auto;
    margin:0;
    overflow:visible;
    clip:auto;
    white-space:normal;
    display:table-header-group;
  }
  .compare__head th {
    padding:.65rem 1.5rem .65rem 0;
    border-bottom:1px solid var(--text);
    text-align:left;
    font-weight:700;
    font-size:.95rem;
    letter-spacing:.04em;
    color:var(--text-2);
  }
  .compare__body {
    display:table-row-group;
  }
  .compare__row {
    display:table-row;
    padding:0;
    border:0;
  }
  .compare__row:last-child {
    border-bottom:0;
  }
  .compare__cell {
    display:table-cell;
    padding:1.15rem 1.5rem 1.15rem 0;
    border-top:1px solid var(--line);
    vertical-align:top;
    text-align:left;
  }
  .compare__row:first-child .compare__cell {
    border-top:0;
  }
  .compare__cell + .compare__cell {
    margin-top:0;
  }
  .compare__cell::before {
    display:none;
  }
  .compare__cell--lead {
    width:22%;
  }
  .selfcheck__option {
    padding:.9rem 1.15rem;
  }
  .bottom {
    padding:4rem var(--gutter) 3.5rem;
  }
  .desk {
    padding:3.5rem var(--gutter) 5rem;
  }
  .sheet {
    padding:2.25rem 2rem 2.25rem;
  }
  .areas__grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (min-width:1140px) {
  .shell {
    display:grid;
    grid-template-columns:10.5rem minmax(0,1fr);
    align-items:start;
    max-width:73rem;
    padding:0 1.5rem;
  }
  .masthead {
    position:sticky;
    top:0;
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start;
    padding:2rem 1.5rem 2rem 0;
    border-bottom:0;
  }
  .masthead .masthead__brand {
    flex-direction:column;
    align-items:flex-start;
    gap:1.1rem;
  }
  .masthead .masthead__mark {
    width:52px;
    height:52px;
  }
  .masthead .masthead__name {
    font-size:1.02rem;
    letter-spacing:.3em;
  }
  .issue {
    min-height:100vh;
    padding:2rem 0 5rem 2.5rem;
    border-left:1px solid var(--line);
  }
  .label {
    padding-top:1.1rem;
    border-top:1px solid var(--line);
  }
  .hero__frame {
    aspect-ratio:880 / 600;
  }
  .hero__img {
    object-position:55% 0;
  }
  .hero__copy {
    padding:2.25rem 2.5rem 2.5rem;
  }
  .opening {
    grid-template-columns:minmax(0,620px);
  }
  .story {
    grid-template-columns:minmax(0,1fr) 220px;
    column-gap:40px;
  }
  .story > * {
    grid-column:1;
  }
  .story > .story__wide {
    grid-column:1 / -1;
  }
  .story > .note {
    grid-column:2;
    grid-row:2 / span 2;
    align-self:start;
    max-width:none;
    padding-left:1.1rem;
    border-left:1px solid var(--line);
    font-size:.98rem;
  }
  .story > .note--at-3 {
    grid-row:3 / span 2;
  }
  .story > .note--at-4 {
    grid-row:4 / span 2;
  }
  .story > .note--one {
    grid-row-end:span 1;
  }
  .story > .note--pull {
    font-size:1.15rem;
  }
  .endnote {
    margin-left:0;
  }
  .issue--doc .doc {
    max-width:var(--measure);
  }
  .desk {
    grid-template-columns:minmax(0,1fr) minmax(0,34rem);
    column-gap:5rem;
    align-items:start;
    padding:4.5rem 2rem 6rem;
  }
  .desk__intro {
    padding-top:1rem;
  }
  .sheet {
    position:sticky;
    top:1.5rem;
  }
}
