
@layer sections {

  .page-contact .contact-routes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 var(--s-5);
    margin-block-start: var(--s-6);
  }
  .page-contact .contact-routes a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--s-2);
    min-block-size: 2.75rem;
    padding-block: var(--s-3);
    border-block-end: var(--bw) solid var(--rule);
    background-image: none;
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    line-height: var(--lh-snug);
  }
  .page-contact .contact-routes a span { color: var(--accent); }
  .page-contact .contact-routes a:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
  }
  :is(.page-contact, .page-thanks) .link-mono { overflow-wrap: anywhere; }
  .page-contact .field { min-inline-size: 0; }
  .page-contact .field__input { inline-size: 100%; }
  .page-contact .field__hint { line-height: var(--lh-body); }
  .page-contact .contact-count { text-align: end; font-variant-numeric: tabular-nums; }
  .page-contact .contact-feedback,
  .page-ctf .ctf-feedback {
    grid-column: 1 / -1;
    padding: var(--s-4);
    border: var(--bw) solid var(--status-closed);
    border-inline-start-width: 3px;
    background: var(--paper-raised);
    color: var(--ink);
    font-size: var(--fs-sm);
    line-height: var(--lh-body);
    overflow-wrap: anywhere;
  }
  .page-ctf .ctf-feedback { scroll-margin-block-start: calc(var(--header-h) + var(--s-4)); }
  .page-contact .contact-feedback[hidden],
  .page-ctf .ctf-feedback[hidden],
  .page-contact .contact-count[hidden],
  .page-contact .field__error[hidden] { display: none; }
  .page-contact .form__foot { align-items: flex-start; }
  .page-contact .form__foot .note-sm { max-inline-size: 55ch; }
  .page-contact .contact-status { flex-basis: 100%; }
  .page-contact .contact-status:empty { display: none; }
  .page-contact #direct .card { scroll-margin-block-start: calc(var(--header-h) + var(--s-5)); }
  .page-contact #direct .card__meta { margin-block-start: auto; padding-block-start: var(--s-4); }
  .page-contact #direct .link-mono {
    display: inline-block;
    max-inline-size: 100%;
    min-block-size: 2.75rem;
    padding-block: var(--s-2);
    text-transform: none;
  }
  @media (max-width: 70rem) {
    .page-contact #form .split { grid-template-columns: minmax(0, 1fr); }
    .page-contact #form :is(.split__a, .split__b) { grid-column: 1 / -1; }
    .page-contact #form .form { max-inline-size: none; }
  }
  @media (max-width: 30rem) {
    .page-contact .contact-routes { gap: 0 var(--s-3); }
    .page-contact .form__foot .btn { inline-size: 100%; }
    :is(.page-contact, .page-thanks) .page-hero__aside .spec-list > div { grid-template-columns: minmax(0, 1fr); }
  }

  .timeline {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--gutter);
    list-style: none;
    padding: 0;
    margin-block-start: var(--s-7);
    border-block-start: var(--bw-strong) solid var(--rule-strong);
    counter-reset: none;
  }

  .timeline__step {
    position: relative;
    margin-block-start: 0;
    padding-block-start: var(--s-6);
    display: grid;
    gap: var(--s-2);
    align-content: start;
  }

  .timeline__step::before {
    content: "";
    position: absolute;
    inset-block-start: calc(var(--bw-strong) * -1);
    inset-inline-start: 0;
    inline-size: 0.5rem;
    block-size: 0.5rem;
    background: var(--rule-strong);
    transform: translateY(-50%);
    transition: background-color var(--dur) var(--ease);
  }

  .timeline__date {
    font-family: var(--font-mono);
    font-size: var(--fs-label);
    text-transform: uppercase;
    letter-spacing: var(--track-label);
    color: var(--ink-3);
    font-variant-numeric: tabular-nums;
  }

  .timeline__label {
    font-size: var(--fs-lg);
    font-weight: var(--fw-medium);
    letter-spacing: -0.015em;
    line-height: var(--lh-snug);
    color: var(--timeline-label, var(--ink));
  }

  .timeline__note {
    font-size: var(--fs-sm);
    line-height: var(--lh-body);
    color: var(--timeline-note, var(--ink-2));
  }

  :root[data-cfp-state="before"] .timeline__step--opens,
  :root[data-cfp-state="open"]   .timeline__step--closes,
  :root[data-cfp-state="closed"] .timeline__step--notify {
    box-shadow: 0 calc(var(--bw-strong) * -1) 0 0 var(--accent);
  }

  :root[data-cfp-state="before"] .timeline__step--opens::before,
  :root[data-cfp-state="open"]   .timeline__step--closes::before,
  :root[data-cfp-state="closed"] .timeline__step--notify::before {
    background: var(--accent);
  }

  :root[data-cfp-state="before"] .timeline__step--opens :is(.timeline__date, .timeline__label),
  :root[data-cfp-state="open"]   .timeline__step--closes :is(.timeline__date, .timeline__label),
  :root[data-cfp-state="closed"] .timeline__step--notify :is(.timeline__date, .timeline__label) {
    color: var(--accent);
  }

  :root[data-cfp-state="open"]   .timeline__step--opens,
  :root[data-cfp-state="closed"] .timeline__step--opens,
  :root[data-cfp-state="closed"] .timeline__step--closes {
    --timeline-label: var(--ink-2);
    --timeline-note:  var(--ink-3);
  }

  .timeline--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .timeline + * {
    margin-block-start: var(--head-y);
  }

  @media (max-width: 60rem) {
    .timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 40rem) {
    .timeline {
      grid-template-columns: minmax(0, 1fr);
      gap: 0;
      border-block-start: 0;
    }

    .timeline__step {
      padding-block: var(--s-5);
      padding-inline-start: var(--s-5);
      border-block-start: var(--bw) solid var(--rule);
    }

    .timeline__step::before {
      inset-block-start: var(--s-6);
      transform: none;
    }

    :root[data-cfp-state="before"] .timeline__step--opens,
    :root[data-cfp-state="open"]   .timeline__step--closes,
    :root[data-cfp-state="closed"] .timeline__step--notify {
      box-shadow: inset var(--bw-strong) 0 0 0 var(--accent);
    }
  }

  .submit-box {
    display: grid;
    gap: var(--s-5);
    padding: clamp(var(--s-5), 4vw, var(--s-7));
    border: var(--bw-strong) solid var(--ink);
  }

  .submit-box__label {
    font-family: var(--font-mono);
    font-size: var(--fs-label);
    text-transform: uppercase;
    letter-spacing: var(--track-label);
    color: var(--ink-3);
  }

  .submit-box__what {
    font-size: var(--fs-2xl);
    line-height: 1.1;
    letter-spacing: var(--track-2xl);
    font-weight: var(--fw-medium);
    color: var(--ink);
  }

  .submit-box__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s-3);
  }

  .village-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 var(--gutter);
    list-style: none;
    padding: 0;
    margin-block-start: var(--s-7);
    border-block-start: var(--bw) solid var(--rule);
  }

  .village {
    margin-block-start: 0;
    padding-block: var(--s-5);
    border-block-end: var(--bw) solid var(--rule);
    display: grid;
    gap: var(--s-3);
    align-content: start;
  }

  .village__id {
    font-family: var(--font-mono);
    font-size: var(--fs-label);
    text-transform: uppercase;
    letter-spacing: var(--track-label);
    color: var(--accent);
    font-variant-numeric: tabular-nums;
  }

  .village__name {
    font-size: var(--fs-xl);
    line-height: var(--lh-snug);
    letter-spacing: var(--track-xl);
    font-weight: var(--fw-medium);
    color: var(--ink);
    text-wrap: balance;
  }

  .village__what {
    font-size: var(--fs-sm);
    line-height: var(--lh-body);
    color: var(--ink-2);
  }

  @media (max-width: 60rem) {
    .village-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }

  @media (max-width: 40rem) {
    .village-grid { grid-template-columns: minmax(0, 1fr); }
  }

  .ctf-claim {
    padding-inline-start: var(--s-6);
    border-inline-start: var(--bw-strong) solid var(--accent);
  }

  .ctf-claim__text {
    font-family: var(--font-serif);
    font-size: var(--fs-2xl);
    line-height: 1.24;
    letter-spacing: -0.01em;
    color: var(--ink);
    text-wrap: pretty;
    max-width: var(--measure-lead);
  }

  .tier-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--gutter);
    margin-block-start: var(--s-7);
    list-style: none;
    padding: 0;
  }

  .tier-card {
    margin-block-start: 0;
    padding-block-start: var(--s-5);
    border-block-start: var(--bw) solid var(--rule-strong);
    display: flex;
    flex-direction: column;
    gap: var(--s-4);
  }

  .tier-card--lead {
    border-block-start-color: var(--accent);
    border-block-start-width: var(--bw-strong);
  }

  .tier-card--community {
    border-block-start-style: dashed;
  }

  .tier-card__name {
    font-size: var(--fs-xl);
    line-height: 1;
    letter-spacing: var(--track-xl);
    font-weight: var(--fw-medium);
    color: var(--ink);
  }

  .tier-card--lead .tier-card__name { color: var(--accent); }

  .tier-card__char {
    font-family: var(--font-mono);
    font-size: var(--fs-label);
    text-transform: uppercase;
    letter-spacing: var(--track-label);
    color: var(--ink-3);
  }

  .tier-card__list {
    list-style: none;
    padding: 0;
    display: grid;
    gap: var(--s-3);
    font-size: var(--fs-sm);
    line-height: var(--lh-snug);
    color: var(--ink-2);
  }

  .tier-card__list li {
    margin-block-start: 0;
    padding-inline-start: var(--s-4);
    position: relative;
  }

  .tier-card__list li::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    inset-block-start: 0.62em;
    inline-size: 0.5rem;
    block-size: var(--bw);
    background: var(--rule-strong);
  }

  .tier-card__foot {
    margin-block-start: auto;
    padding-block-start: var(--s-4);
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    letter-spacing: var(--track-mono);
    color: var(--ink-3);
  }

  @media (max-width: 68rem) {
    .tier-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }

  @media (max-width: 40rem) {
    .tier-cards {
      grid-template-columns: minmax(0, 1fr);
      gap: var(--s-6);
    }
  }

  .person-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: var(--s-7) var(--gutter);
    list-style: none;
    padding: 0;
    margin-block-start: var(--s-7);
  }

  .person {
    margin-block-start: 0;
    padding-block-start: var(--s-5);
    border-block-start: var(--bw) solid var(--rule);
    display: flex;
    flex-direction: column;
    gap: var(--s-3);
  }

  .person__portrait {
    position: relative;
    inline-size: 100%;
    max-inline-size: 15rem;
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--paper-sunk);
    border: var(--bw) solid var(--rule);
  }

  .person__photo {
    position: absolute;
    inset: 0;
    z-index: 1;
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
    object-position: 50% 30%;
  }

  .person__monogram {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    font-family: var(--font-mono);
    font-size: var(--fs-2xl);
    letter-spacing: var(--track-mono);
    color: var(--ink-3);
    user-select: none;
  }

  .person__name {
    font-size: var(--fs-lg);
    line-height: var(--lh-snug);
    letter-spacing: -0.015em;
    font-weight: var(--fw-medium);
    color: var(--ink);
    text-wrap: balance;
  }

  .person__role {
    font-size: var(--fs-sm);
    line-height: var(--lh-snug);
    color: var(--ink);
  }

  .person__org {
    font-family: var(--font-mono);
    font-size: var(--fs-label);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: var(--track-label);
    color: var(--ink-3);
  }

  .person__bio {
    font-size: var(--fs-sm);
    line-height: var(--lh-body);
    color: var(--ink-2);
  }

  .person__link {
    font-size: var(--fs-xs);
    margin-block-start: auto;
    padding-block-start: var(--s-3);
    align-self: start;
  }

  .person--tba :is(.person__name, .person__role, .person__bio) {
    color: var(--ink-3);
  }

  .person__bio--tba {
    color: var(--ink-3);
  }

  .person__link--tba {
    font-family: var(--font-mono);
    letter-spacing: var(--track-mono);
    color: var(--ink-3);
  }

  @media (max-width: 75rem) {
    .person-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .person__portrait { max-inline-size: none; }
  }

  @media (max-width: 52rem) {
    .person-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }

  @media (max-width: 34rem) {
    .person-grid {
      grid-template-columns: minmax(0, 1fr);
      gap: 0;
      border-block-start: var(--bw) solid var(--rule);
    }

    .person {
      display: grid;
      grid-template-columns: 5.5rem minmax(0, 1fr);
      column-gap: var(--s-4);
      row-gap: var(--s-2);
      padding-block: var(--s-5);
      border-block-start: 0;
      border-block-end: var(--bw) solid var(--rule);
    }

    .person__portrait {
      grid-column: 1;
      grid-row: 1 / span 5;
      align-self: start;
      max-inline-size: none;
    }

    .person :is(.person__name, .person__role, .person__org, .person__bio, .person__link) {
      grid-column: 2;
    }

    .person__link {
      margin-block-start: var(--s-2);
      padding-block-start: 0;
      justify-self: start;
    }
  }

  .page-advisory-board .person-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .page-advisory-board .person { min-inline-size: 0; }
  .page-advisory-board .person__portrait { max-inline-size: none; }
  .page-advisory-board .person__bio { font-size: var(--fs-base); }
  .page-advisory-board .person__name { overflow-wrap: anywhere; }

  .page-advisory-board a.person__link {
    display: inline-flex;
    align-items: center;
    min-block-size: 44px;
    padding-block: var(--s-2);
  }

  .page-advisory-board a.person__link:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 4px;
  }

  .page-advisory-board #conflicts .link-mono { overflow-wrap: anywhere; }

  @media (max-width: 75rem) {
    .page-advisory-board .person-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }

  @media (max-width: 52rem) {
    .page-advisory-board .person-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }

  @media (min-width: 34.0625rem) {
    .page-advisory-board .person__role {
      min-block-size: calc(2em * var(--lh-snug));
    }
  }

  /* Review profiles stay readable without hover, including at keyboard focus. */
  .page-review-board .person { min-inline-size: 0; }
  .page-review-board .person__bio { font-size: var(--fs-base); }
  .page-review-board .person__name { overflow-wrap: anywhere; }

  .page-review-board a.person__link {
    display: inline-flex;
    align-items: center;
    min-block-size: 2.75rem;
    padding: var(--s-2) var(--s-3);
  }

  .page-review-board :is(a.person__link, .review-jumps a):focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
  }

  .page-review-board :is(#board, #conflicts) .link-mono { overflow-wrap: anywhere; }

  .page-review-board #scoring .ruled-list__index {
    font-size: var(--fs-base);
    letter-spacing: 0;
    white-space: nowrap;
    padding-block-start: 0;
  }

  .review-jumps { margin-block-start: var(--s-5); }

  .review-jumps__label {
    font-family: var(--font-mono);
    font-size: var(--fs-label);
    letter-spacing: var(--track-label);
    text-transform: uppercase;
    color: var(--ink-3);
  }

  .review-jumps ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 var(--s-4);
    margin: var(--s-2) 0 0;
    padding: 0;
    list-style: none;
  }

  .review-jumps li + li { margin-block-start: 0; }

  .review-jumps a {
    display: flex;
    align-items: center;
    min-block-size: 2.75rem;
    padding-block: var(--s-2);
    border-block-end: var(--bw) solid var(--rule);
    color: var(--ink-2);
    font-size: var(--fs-sm);
    line-height: var(--lh-snug);
    text-decoration: none;
    background-image: none;
  }

  .review-jumps a:hover { color: var(--accent); }

  @media (min-width: 34.0625rem) {
    .page-review-board .person__role { min-block-size: calc(2 * var(--lh-snug) * 1em); }
  }

  @media (min-width: 40.0625rem) {
    .page-review-board #scoring .ruled-list > li {
      grid-template-columns: 3.5rem minmax(0, 1fr);
    }
  }

  @media (max-width: 34rem) {
    .page-advisory-board .person-grid { grid-template-columns: minmax(0, 1fr); }
    .page-advisory-board .person__portrait { grid-row: 1 / span 3; }
    .page-advisory-board .person :is(.person__bio, .person__link) {
      grid-column: 1 / -1;
    }
    .page-advisory-board .person__bio { margin-block-start: var(--s-3); }
    .page-advisory-board .person__link { margin-block-start: 0; }
    .page-review-board .person__portrait { grid-row: 1 / span 3; }
    .page-review-board .person :is(.person__bio, .person__link) { grid-column: 1 / -1; }
    .page-review-board .person__bio { margin-block-start: var(--s-3); }
    .page-review-board .person__link { margin-block-start: 0; }
  }

  .page-coc .site-header { background: var(--paper); }
  .page-coc .page-hero__lead { margin-block-start: var(--s-5); }

  .page-coc .toc__list a {
    display: flex;
    align-items: center;
    min-block-size: 2.75rem;
  }

  .page-coc .conduct-reader-nav { display: none; }

  .page-coc .conduct-report-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s-3);
    margin-block: var(--s-5);
  }

  .page-coc .conduct-report-actions .btn {
    min-block-size: 2.75rem;
    font-family: var(--font-sans);
    font-size: var(--fs-base);
    background-image: none;
  }

  .page-coc .conduct-emergency {
    padding: var(--s-4) var(--s-5);
    border-inline-start: var(--bw-strong) solid var(--accent);
    background: var(--accent-tint);
    font-family: var(--font-sans);
    font-size: var(--fs-base);
    line-height: var(--lh-body);
    color: var(--ink-2);
  }

  .page-coc .report-box { margin-block: var(--s-5); }
  .page-coc .report-box__what a,
  .page-coc .page-hero__aside a[href^="mailto:"],
  .page-coc .conduct-next-link {
    display: inline-flex;
    align-items: center;
    min-block-size: 2.75rem;
  }

  .page-coc main a[href^="mailto:"] {
    text-transform: none;
    letter-spacing: normal;
    overflow-wrap: anywhere;
  }

  .page-coc :is(.conduct-reader-nav a, .conduct-report-actions a,
    .conduct-next-link, .toc a, main a[href^="mailto:"]):focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 4px;
  }

  @media (max-width: 60rem) {
    .page-coc .conduct-reader-nav {
      display: block;
      position: sticky;
      inset-block-start: var(--header-h);
      z-index: 20;
      padding-block: var(--s-2);
      background: var(--paper);
      border-block: var(--bw) solid var(--rule);
    }
    .page-coc .conduct-reader-nav__inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: var(--s-4);
    }
    .page-coc .conduct-reader-nav a {
      display: inline-flex;
      align-items: center;
      min-block-size: 2.75rem;
      font-family: var(--font-sans);
      font-size: var(--fs-sm);
      color: var(--ink);
      text-decoration: underline;
      text-underline-offset: 0.25em;
    }
    .page-coc :is(.prose h2[id], #contents) {
      scroll-margin-block-start: 4rem;
    }
  }

  @media (max-width: 40rem) {
    .page-coc .conduct-report-actions { display: grid; }
    .page-coc .conduct-report-actions .btn { width: 100%; }
    .page-coc .conduct-emergency { padding-inline: var(--s-4); }
  }

  .prose-page {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--s-7) var(--gutter);
    align-items: start;
  }

  .prose-page__toc  { grid-column: 1 / span 3; }
  .prose-page__body { grid-column: 5 / span 7; }

  .prose-page__toc { align-self: stretch; }

  @media (max-width: 60rem) {
    .prose-page { grid-template-columns: minmax(0, 1fr); }

    .prose-page__toc,
    .prose-page__body { grid-column: 1 / -1; }
  }

  .toc {
    position: sticky;
    inset-block-start: calc(var(--header-h) + var(--s-5));

    max-block-size: calc(100svh - var(--header-h) - var(--s-7));
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
  }

  .toc__title {
    font-family: var(--font-mono);
    font-size: var(--fs-label);
    font-weight: var(--fw-regular);
    text-transform: uppercase;
    letter-spacing: var(--track-label);
    color: var(--ink-3);
    padding-block-end: var(--s-4);
    border-block-end: var(--bw) solid var(--rule);
  }

  .toc__list {
    list-style: none;
    padding: 0;
    display: grid;
    gap: 0;
  }

  .toc__list li {
    margin-block-start: 0;
    border-block-end: var(--bw) solid var(--rule);
  }

  .toc__list a {
    display: block;
    padding-block: var(--s-3);
    font-size: var(--fs-sm);
    line-height: var(--lh-snug);
    color: var(--ink-2);
    background-image: none;
    transition:
      color var(--dur-fast) var(--ease),
      translate var(--dur) var(--ease);
  }

  @media (hover: hover) and (pointer: fine) {
    .toc__list a:hover {
      color: var(--accent);
      translate: var(--s-3) 0;
    }
  }

  .toc__list a:active {
    color: var(--accent-active);
  }

  @media (max-width: 60rem) {
    .toc {
      position: static;
      max-block-size: none;
      overflow-y: visible;
    }

    .page-terms .toc__list li {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: var(--s-3);
    }

    .page-terms .toc__list a { min-width: 0; }
    .page-terms .toc__list .chip { flex: none; }
  }

  .report-box {
    display: grid;
    gap: var(--s-5);
    padding: clamp(var(--s-5), 4vw, var(--s-7));
    border: var(--bw-strong) solid var(--ink);
    margin-block: var(--s-7);
  }

  .report-box__label {
    font-family: var(--font-mono);
    font-size: var(--fs-label);
    text-transform: uppercase;
    letter-spacing: var(--track-label);
    color: var(--accent);
  }

  .report-box__what {
    font-family: var(--font-sans);
    font-size: var(--fs-xl);
    line-height: var(--lh-snug);
    letter-spacing: var(--track-xl);
    font-weight: var(--fw-medium);
    color: var(--ink);
  }

  .report-box__how {
    display: grid;
    gap: var(--s-4);
    font-family: var(--font-sans);
    font-size: var(--fs-base);
    line-height: var(--lh-body);
    letter-spacing: var(--track-body);
    color: var(--ink-2);
  }

  .report-box__how strong { color: var(--ink); }

  .filmstrip__viewport {
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: inline mandatory;
    scrollbar-width: thin;
    scrollbar-color: var(--rule-strong) transparent;
    margin-inline: calc(var(--s-2) * -1);
    padding: var(--s-2);
    scroll-padding-inline: var(--s-2);
  }

  .filmstrip__track {
    display: flex;
    gap: var(--gutter);
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .filmstrip__track > li + li { margin-block-start: 0; }

  .filmstrip__item {
    flex: 0 0 auto;
    inline-size: min(88%, 24rem);
    scroll-snap-align: start;
  }

  .filmstrip__foot { display: none; }

  .filmstrip.is-live .filmstrip__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--s-4);
    flex-wrap: wrap;
    margin-block-start: var(--s-5);
    padding-block-start: var(--s-4);
    border-block-start: var(--bw) solid var(--rule);
  }

  .filmstrip__hint {
    font-family: var(--font-mono);
    font-size: var(--fs-label);
    text-transform: uppercase;
    letter-spacing: var(--track-label);
    color: var(--ink-3);
    margin: 0;
  }

  .filmstrip__count { color: var(--ink-2); }

  .filmstrip__buttons {
    display: flex;
    gap: var(--s-2);
    margin-inline-start: auto;
  }

  .filmstrip__btn {
    inline-size: 2.75rem;
    block-size: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: var(--bw) solid var(--rule);
    border-radius: var(--r-0);
    background: none;
    color: var(--ink-2);
    cursor: pointer;
    transition:
      border-color var(--dur-fast) var(--ease),
      color var(--dur-fast) var(--ease);
  }

  .filmstrip__btn::before {
    font-family: var(--font-mono);
    font-size: var(--fs-sm);
    line-height: 1;
  }

  .filmstrip__btn--prev::before { content: "\2190"; }
  .filmstrip__btn--next::before { content: "\2192"; }

  @media (hover: hover) and (pointer: fine) {
    .filmstrip__btn:hover:not(:disabled) {
      border-color: var(--rule-strong);
      color: var(--accent);
    }
  }

  .filmstrip__btn:active:not(:disabled) {
    border-color: var(--accent);
    color: var(--accent-active);
    translate: 0 1px;
  }

  .filmstrip__btn:disabled {
    opacity: 0.45;
    cursor: default;
  }

  .doon-jumps {
    margin-block-start: var(--s-5);
  }

  .doon-jumps__label {
    font-family: var(--font-mono);
    font-size: var(--fs-label);
    letter-spacing: var(--track-label);
    text-transform: uppercase;
    color: var(--ink-3);
  }

  .doon-jumps ul {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 var(--s-4);
    margin: var(--s-2) 0 0;
    padding: 0;
    list-style: none;
  }

  .doon-jumps li + li { margin-block-start: 0; }

  .doon-jumps a {
    display: flex;
    align-items: center;
    min-block-size: 2.75rem;
    padding-block: var(--s-2);
    border-block-end: var(--bw) solid var(--rule);
    color: var(--ink-2);
    font-size: var(--fs-sm);
    line-height: var(--lh-snug);
    text-decoration: none;
  }

  .doon-jumps a:hover { color: var(--accent); }

  .doon-pack ul {
    display: grid;
    gap: var(--s-3);
    margin: var(--s-4) 0 0;
    padding-inline-start: var(--s-4);
    color: var(--ink-2);
    font-size: var(--fs-sm);
    line-height: var(--lh-body);
  }

  .doon-pack li + li { margin-block-start: 0; }

  .page-visit-doon #staying { scroll-margin-block-start: calc(var(--header-h) + var(--s-5)); }

  .page-visit-doon .chip {
    max-inline-size: 100%;
    white-space: normal;
  }

  .page-visit-doon .card__body { overflow-wrap: anywhere; }

  @media (max-width: 70rem) {
    .page-visit-doon .split { grid-template-columns: minmax(0, 1fr); }
    .page-visit-doon .split :is(.split__a, .split__b) { grid-column: 1 / -1; }
  }

  @media (max-width: 40rem) {
    .doon-jumps ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }

  @media (hover: none), (pointer: coarse) {
    .page-visit-doon {
      --photo-desaturate: 0;
      --photo-contrast: 1;
      --photo-tone: 0;
    }
  }

  @media (hover: hover) and (pointer: fine) {
    .page-visit-doon .plate__img--photo {
      transition: filter var(--dur) var(--ease);
    }

    .page-visit-doon .plate__box:has(.plate__img--photo)::after {
      transition: opacity var(--dur) var(--ease);
    }

    .page-visit-doon .plate__box:has(.plate__img--photo):hover {
      --photo-desaturate: 0;
      --photo-contrast: 1;
      --photo-tone: 0;
    }
  }

  .notfound {
    padding-block: calc(var(--header-h) + var(--s-7)) var(--section-y);
    min-block-size: 70svh;
    display: grid;
    align-content: center;
  }

  .notfound__code {
    font-family: var(--font-mono);
    font-size: var(--fs-label);
    text-transform: uppercase;
    letter-spacing: var(--track-label);
    color: var(--accent);
  }

  .page-404 .notfound a:not(.btn),
  :is(.page-thanks, .page-ctf-thanks) .page-hero__aside a {
    display: inline-flex;
    align-items: center;
    min-block-size: 2.75rem;
    overflow-wrap: anywhere;
  }

  :is(.page-404, .page-thanks, .page-ctf-thanks) main a[href^="mailto:"] {
    text-transform: none;
    letter-spacing: normal;
    overflow-wrap: anywhere;
  }

  .page-tickets .passes {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--gutter);
    align-items: stretch;
    margin-block-start: var(--s-7);
  }

  .page-tickets .pass {
    display: flex;
    flex-direction: column;
    gap: var(--s-4);
    padding: var(--s-5);
    border: var(--bw) solid var(--glass-hairline);
    border-radius: var(--r-xl);
    background: var(--paper);
    box-shadow: var(--shadow-soft);
    transition:
      translate var(--dur) var(--ease),
      box-shadow var(--dur) var(--ease-apple);
  }

  .page-tickets .pass__head {
    display: flex;
    flex-direction: column;
    gap: var(--s-2);
    padding-block-end: var(--s-4);
    border-block-end: var(--bw) solid var(--rule);
  }

  .page-tickets .pass__name {
    font-family: var(--font-mono);
    font-size: var(--fs-label);
    text-transform: uppercase;
    letter-spacing: var(--track-label);
    color: var(--ink-3);
  }

  .page-tickets .pass__price {
    display: flex;
    align-items: baseline;
    gap: var(--s-2);
  }
  .page-tickets .pass__from {
    font-family: var(--font-mono);
    font-size: var(--fs-label);
    text-transform: uppercase;
    letter-spacing: var(--track-label);
    color: var(--ink-3);
  }
  .page-tickets .pass__amount {
    font-size: var(--fs-3xl);
    line-height: 1;
    letter-spacing: var(--track-3xl);
    font-weight: var(--fw-medium);
    font-variant-numeric: tabular-nums;
  }
  .page-tickets .pass__cur {
    font-size: 0.55em;
    vertical-align: 0.42em;
    margin-inline-end: 0.08em;
    color: var(--ink-3);
    letter-spacing: 0;
  }

  .page-tickets .pass__stages {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
  }
  .page-tickets .pass__stage {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    gap: 0.2rem var(--s-3);
    padding-block: var(--s-3);
    border-block-end: var(--bw) solid var(--rule);
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
  }
  .page-tickets .pass__stage:last-child {
    border-block-end: 0;
    padding-block-end: 0;
  }
  .page-tickets .pass__stage-name {
    grid-column: 1;
    text-transform: uppercase;
    letter-spacing: var(--track-label);
    color: var(--ink-3);
  }
  .page-tickets .pass__stage-price {
    grid-column: 2;
    font-variant-numeric: tabular-nums;
    color: var(--ink-3);
  }
  .page-tickets .pass__stage--lead .pass__stage-name,
  .page-tickets .pass__stage--lead .pass__stage-price {
    color: var(--ink);
  }
  .page-tickets .pass__stage--lead .pass__stage-price {
    font-weight: var(--fw-medium);
  }

  .page-tickets .pass__benefits {
    padding-block-start: var(--s-4);
    border-block-start: var(--bw) solid var(--rule);
  }

  .page-tickets .pass__benefits-title {
    margin-block-end: var(--s-3);
    font-family: var(--font-mono);
    font-size: var(--fs-label);
    text-transform: uppercase;
    letter-spacing: var(--track-label);
    color: var(--ink-3);
  }

  .page-tickets .pass__benefits ul {
    display: grid;
    gap: var(--s-3);
    margin: 0;
    padding-inline-start: 1.2em;
    font-size: var(--fs-sm);
    line-height: var(--lh-snug);
  }

  .page-tickets .pass__benefits li { padding-inline-start: var(--s-1); }
  .page-tickets .pass__benefits li::marker { color: var(--brand); }

  .page-tickets .pass__note {
    margin-block-start: auto;
    font-size: var(--fs-sm);
    line-height: var(--lh-snug);
    color: var(--ink-2);
  }

  .page-tickets .pass__cta {
    margin-block-start: var(--s-2);
  }

  .page-tickets .pass__closed {
    display: flex;
    align-items: center;
    justify-content: center;
    min-block-size: 3rem;
    margin-block-start: var(--s-2);
    padding-inline: var(--s-3);
    border: var(--bw) dashed var(--rule);
    border-radius: var(--r-pill);
    color: var(--ink-3);
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    letter-spacing: var(--track-label);
    text-align: center;
    text-transform: uppercase;
  }

  @media (hover: hover) and (pointer: fine) {
    .page-tickets .pass:hover {
      translate: 0 -3px;
      box-shadow: var(--shadow-lift);
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .page-tickets .pass {
      transition: box-shadow var(--dur) var(--ease);
    }
    .page-tickets .pass:hover {
      translate: 0;
    }
  }

  .page-tickets .book {
    margin-block-start: var(--s-7);
    display: grid;
    gap: var(--s-5);
  }
  .page-tickets .book__widget:empty {
    display: none;
  }

  .u-nowrap {
    white-space: nowrap;
  }

  @media (max-width: 60rem) {
    .page-tickets .passes {
      grid-template-columns: minmax(0, 1fr);
      gap: var(--s-4);
    }
  }

  @media (max-width: 40rem) {
    .page-tickets .page-hero {
      padding-block-start: calc(var(--header-h) + var(--s-3));
    }
  }

  .ticket-modal {
    margin: auto;
    padding: 0;
    border: 0;
    max-width: 100vw;
    max-height: 100dvh;
    background: transparent;
    overflow: visible;
  }

  .ticket-modal::backdrop {
    background: oklch(0% 0 0 / 0.6);
  }

  .ticket-modal__frame {
    position: relative;
    width: min(30rem, 94vw);
    height: min(46rem, 90dvh);
    background: var(--paper-raised, #fff);
    border-radius: var(--r-1);
    box-shadow: var(--shadow-overlay);
    overflow: hidden;
  }

  .ticket-modal__iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    background: #fff;
  }

  .ticket-modal__close {
    position: absolute;
    inset-block-start: var(--s-2);
    inset-inline-end: var(--s-2);
    z-index: 1;
    width: 2rem;
    height: 2rem;
    display: grid;
    place-items: center;
    padding: 0;
    background: var(--paper-raised, #fff);
    color: var(--ink, #111);
    border: var(--bw) solid var(--ink-wash);
    border-radius: var(--r-pill);
    box-shadow: var(--shadow-overlay);
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
  }

  .ticket-modal__close::before {
    content: "\00d7";
  }

  .tier-cards--five {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .tier-card__meta {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    letter-spacing: var(--track-mono);
    text-transform: uppercase;
    color: var(--ink-3);
  }

  .tier-card__desc {
    font-size: var(--fs-sm);
    line-height: var(--lh-snug);
    color: var(--ink-2);
  }

  @media (max-width: 68rem) {
    .tier-cards--five { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }

  @media (max-width: 46rem) {
    .tier-cards--five { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }

  @media (max-width: 32rem) {
    .tier-cards--five { grid-template-columns: minmax(0, 1fr); }
  }

  .page-sponsors .sponsor-route {
    inline-size: 100%;
    display: grid;
    border-block-start: var(--bw) solid var(--rule);
  }

  .page-sponsors .sponsor-route a {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr) auto;
    gap: var(--s-3);
    align-items: center;
    min-block-size: 2.75rem;
    padding-block: var(--s-3);
    border-block-end: var(--bw) solid var(--rule);
    color: var(--ink);
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    background-image: none;
  }

  .page-sponsors .sponsor-route a span:first-child {
    color: var(--ink-3);
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
  }

  .page-sponsors .sponsor-route a span:last-child {
    color: var(--accent);
    transition: transform var(--dur) var(--ease);
  }

  @media (hover: hover) and (pointer: fine) {
    .page-sponsors .sponsor-route a:hover {
      color: var(--accent-hover);
    }

    .page-sponsors .sponsor-route a:hover span:last-child {
      transform: translateX(3px);
    }
  }

  .page-sponsors .sponsor-route a:focus-visible {
    outline: var(--bw-strong) solid var(--accent);
    outline-offset: 3px;
  }

  .page-sponsors .sponsor-enquiry {
    min-block-size: 2.75rem;
    align-items: center;
    font-size: var(--fs-sm);
    line-height: var(--lh-snug);
  }

  .page-sponsors .tier-card__meta {
    display: flex;
    align-items: baseline;
    gap: var(--s-2);
  }

  .page-sponsors .tier-card__meta strong {
    color: var(--ink);
    font-family: var(--font-sans);
    font-size: var(--fs-2xl);
    font-weight: var(--fw-medium);
    line-height: 1;
    letter-spacing: var(--track-xl);
  }

  .page-sponsors .tier-card__meta span {
    max-inline-size: 6rem;
    line-height: var(--lh-snug);
  }

  .page-sponsors .tier-card .sponsor-enquiry,
  .page-sponsors #items .card .sponsor-enquiry {
    margin-block-start: auto;
    padding-block-start: var(--s-3);
  }

  :is(.page-speakers, .page-workshops, .page-villages, .page-ctf) .page-hero__aside {
    padding: clamp(var(--s-5), 2.5vw, var(--s-6));
    border: var(--bw) solid var(--rule-strong);
    border-block-start: var(--bw-strong) solid var(--accent);
    border-radius: var(--r-xl);
    background: var(--accent-wash);
  }

  :is(.page-speakers, .page-workshops, .page-villages, .page-ctf) .page-hero__aside .spec-list {
    inline-size: 100%;
    border-block-start: 0;
  }

  :is(.page-speakers, .page-workshops, .page-villages, .page-ctf) .page-hero__aside .spec-list > div {
    grid-template-columns: minmax(0, 6rem) minmax(0, 1fr);
  }

  :is(.page-speakers, .page-workshops, .page-villages, .page-ctf) .page-hero__aside .spec-list > div:first-child {
    padding-block-start: 0;
  }

  :is(.page-speakers, .page-workshops, .page-villages, .page-ctf) .page-hero__aside .spec-list > div:last-child {
    padding-block-end: 0;
    border-block-end: 0;
  }

  .page-speakers #terms .section-head__aside {
    grid-column: 10 / span 3;
  }

  :is(.page-speakers, .page-workshops) #lineup .empty-state {
    border: var(--bw) solid var(--rule-strong);
    border-block-start: var(--bw-strong) solid var(--accent);
    border-radius: var(--r-xl);
  }

  :is(.page-speakers, .page-workshops, .page-villages) :is(.speaker-gallery__label, .workshop-gallery__label, .village-gallery__label) {
    margin-block-start: var(--s-7);
  }

  :is(.page-speakers, .page-workshops, .page-villages) :is(.speaker-gallery__label, .workshop-gallery__label, .village-gallery__label) + .plates {
    margin-block-start: var(--s-3);
  }

  .page-ctf #register-team .field__choice {
    align-items: center;
    min-block-size: 4.5rem;
    padding: var(--s-3) var(--s-4);
    border: var(--bw) solid var(--rule-strong);
    border-radius: var(--r-lg);
    background: var(--paper-raised);
  }

  .page-ctf #register-team .field__choice:has(.field__radio:checked) {
    border-color: var(--accent);
    background: var(--accent-wash);
  }

  .page-ctf #register-team .field__choice:focus-within {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
  }

  .page-ctf #register-team .field__radio { margin-block-start: 0; }

  .page-ctf #register-team .form__foot { align-items: flex-start; }

  .page-ctf #register-team .form__foot .note-sm { max-inline-size: 46ch; }

  .page-ctf #data-use { scroll-margin-block-start: calc(var(--header-h) + var(--s-4)); }

  @media (min-width: 30.0625rem) and (max-width: 60rem) {
    :is(.page-speakers, .page-workshops, .page-villages, .page-ctf) .page-hero__aside .spec-list {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0 var(--s-5);
    }

    :is(.page-speakers, .page-workshops, .page-villages, .page-ctf) .page-hero__aside .spec-list > div {
      grid-template-columns: minmax(0, 1fr);
      border-block-end: 0;
      border-block-start: var(--bw) solid var(--rule);
    }

    :is(.page-speakers, .page-workshops, .page-villages, .page-ctf) .page-hero__aside .spec-list > div:first-child {
      padding-block-start: var(--s-4);
    }
  }

  @media (max-width: 60rem) {
    .page-speakers #terms .section-head__aside {
      grid-column: 1 / -1;
    }
  }

  @media (max-width: 30rem) {
    .page-ctf .page-hero__aside .spec-list > div {
      grid-template-columns: minmax(0, 1fr);
    }
  }
}
