/* ---------------------------------------------------------------
   Adeia — the "where this stands" page

   Layout for contact.html only. Every selector is scoped under
   .page-contact, which sits on the page's <body>, so nothing here can
   reach another page's markup. Colour, type, spacing and easing come
   from tokens.css; .display, .h2, .h3, .lead, .body, .label, .mono,
   .quiet, .plus-link and .visually-hidden come from base.css and are
   not restated.

   The masthead and the footer are the exceptions. Their rules live in
   styles/hero.css and styles/closing.css, which this page does not
   load, so the parts of them this page needs are restated here under
   the page scope rather than pulled in wholesale.

   Contrast, measured against the ground each element sits on:
     hero        --orchid on --ink        6.40:1   display heading
                 --mist on --ink         11.90:1   lead copy
                 --on-ink-quiet on --ink  5.77:1   10px eyebrow
     state       --on-bone on --bone     11.79:1   headings and list items
                 --on-bone-quiet          6.04:1   the closing note
     involved    --on-paper on --paper   15.35:1   headings and copy
                 --on-paper-quiet         6.69:1   secondary copy
   Every one clears WCAG AA at the size it is used.

   This page is deliberately short. Its two columns — what is built and
   what is not — are told apart by their headings and by the rule down
   the left of the second, never by colour alone.
   --------------------------------------------------------------- */

/* =====================================================================
   Masthead — restated, scoped. See the note at the top of this file.
   ===================================================================== */

.page-contact .masthead {
  --rule: var(--rule-on-ink);

  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gap);
  padding: 1.375rem var(--pad-x);
  color: var(--mist);
}

/* An ink scrim under the bar. Invisible over the hero; over the pale
   grounds further down it is what keeps the wordmark above 4.5:1. */
.page-contact .masthead::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(
    to bottom,
    rgba(34, 34, 34, 0.92),
    rgba(34, 34, 34, 0.62) 55%,
    rgba(34, 34, 34, 0)
  );
  pointer-events: none;
}

.page-contact .masthead__mark {
  font-size: var(--t-body);
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1;
  text-decoration: none;
  color: var(--mist);
}

/* A <button> needs its own reset before .plus-link's flexbox applies. */
.page-contact .masthead__menu {
  appearance: none;
  -webkit-appearance: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font-family: var(--sans);
  color: var(--mist);
  cursor: pointer;
}

.page-contact .masthead__menu-label {
  font-size: var(--t-small);
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

/* =====================================================================
   Shared marks
   ===================================================================== */

.page-contact .ct-code {
  font-family: var(--mono);
  font-size: 0.875em;
  letter-spacing: -0.01em;
  word-break: break-word;
  padding: 0.1em 0.32em;
  border: 1px solid var(--rule);
  border-radius: 2px;
  background: rgba(34, 34, 34, 0.04);
}

.page-contact .ground--ink .ct-code,
.page-contact .ground--forest .ct-code {
  background: rgba(237, 223, 238, 0.08);
}

/* =====================================================================
   Hero — ink
   ===================================================================== */

.page-contact .ct-hero {
  display: flex;
  align-items: flex-end;
  min-height: min(72svh, 40rem);
  padding-block: clamp(8rem, 18vh, 12rem) clamp(3rem, 7vw, 5.5rem);
}

.page-contact .ct-hero__inner {
  display: grid;
  gap: clamp(1.25rem, 2.5vw, 2rem);
}

.page-contact .ct-hero__eyebrow {
  margin: 0;
}

.page-contact .ct-hero__title {
  margin: 0;
  max-width: 15ch;
  color: var(--orchid);
}

.page-contact .ct-hero__body {
  margin: 0;
  max-width: 58ch;
}

/* =====================================================================
   Section scaffold
   ===================================================================== */

.page-contact .ct-part__head {
  display: grid;
  gap: clamp(0.75rem, 1.5vw, 1.25rem);
  margin-bottom: clamp(1.75rem, 3.5vw, 2.5rem);
}

.page-contact .ct-part__head > * {
  margin: 0;
}

.page-contact .ct-part__title {
  max-width: 20ch;
}

.page-contact .ct-part__intro {
  max-width: 62ch;
  color: var(--quiet);
}

.page-contact .ct-part__note {
  margin: clamp(2rem, 4vw, 3rem) 0 0;
  max-width: 62ch;
  color: var(--quiet);
}

.page-contact .ct-part__more {
  margin: clamp(2rem, 4vw, 3rem) 0 0;
}

/* =====================================================================
   Built / not built
   ===================================================================== */

.page-contact .ct-columns {
  display: grid;
  gap: clamp(2rem, 4vw, 3rem);
}

@media (min-width: 54rem) {
  .page-contact .ct-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

.page-contact .ct-column__title {
  margin: 0 0 clamp(1rem, 2vw, 1.25rem);
  padding-bottom: clamp(0.625rem, 1.2vw, 0.875rem);
  border-bottom: 1px solid var(--rule);
}

.page-contact .ct-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: clamp(0.75rem, 1.5vw, 1rem);
}

.page-contact .ct-list__item {
  font-size: var(--t-body);
  line-height: var(--lh-body);
  max-width: 46ch;
  padding-left: 1.125rem;
  position: relative;
}

/* A dash rather than a bullet — quieter, and it matches the rules used
   as dividers elsewhere on the site. */
.page-contact .ct-list__item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.7em;
  width: 0.5rem;
  height: 1px;
  background: var(--quiet);
}

/* The second column is what is missing. The rule down its left is the
   same mark the site uses for a disclosure, so the two lists are
   distinguishable without reading the headings. */
.page-contact .ct-list--gap .ct-list__item {
  padding-left: clamp(0.875rem, 2vw, 1.25rem);
  border-left: 1px solid var(--orchid);
}

.page-contact .ct-list--gap .ct-list__item::before {
  content: none;
}

/* =====================================================================
   Ways to get involved
   ===================================================================== */

.page-contact .ct-ways {
  display: grid;
  gap: clamp(1.5rem, 3vw, 2.25rem);
}

@media (min-width: 62rem) {
  .page-contact .ct-ways {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: clamp(2rem, 4vw, 3.5rem);
  }
}

.page-contact .ct-way {
  padding-top: clamp(0.875rem, 1.8vw, 1.125rem);
  border-top: 1px solid var(--rule);
}

.page-contact .ct-way__title {
  margin: 0 0 0.5rem;
  max-width: 22ch;
}

.page-contact .ct-way__copy {
  margin: 0;
  max-width: 44ch;
}

/* =====================================================================
   Footer — restated, scoped
   ===================================================================== */

.page-contact .site-footer__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1.25rem, 2.5vw, 2rem);
  padding-block: clamp(2rem, 4vw, 3.5rem);
  border-top: 1px solid var(--rule);
}

.page-contact .site-footer__nav {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(1.25rem, 3vw, 2.5rem);
}

.page-contact .site-footer__link {
  text-decoration: none;
  font-size: var(--t-body);
  line-height: 1.4;
  padding-block: 0.25rem;
  border-bottom: 1px solid transparent;
  transition:
    color var(--d-hover) var(--ease-out),
    border-color var(--d-hover) var(--ease-out);
}

.page-contact .site-footer__link:hover,
.page-contact .site-footer__link:focus-visible {
  color: var(--orchid);
  border-bottom-color: var(--orchid);
}

.page-contact .site-footer__meta {
  margin: 0;
  color: var(--quiet);
}

.page-contact .site-footer__note {
  margin: 0;
  max-width: 62ch;
  font-size: var(--t-body);
  line-height: var(--lh-body);
  border-left: 1px solid var(--orchid);
  padding-left: clamp(0.75rem, 1.5vw, 1.25rem);
}

/* =====================================================================
   Motion off
   ===================================================================== */

@media (prefers-reduced-motion: reduce) {
  .page-contact .site-footer__link {
    transition: none;
  }
}
