.site-header {
   position: sticky;
   top: 0;
   z-index: var(--z-header);
   background: rgba(247, 243, 235, 0.97);
   border-bottom: 1px solid transparent;
   transition: border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), background-color var(--dur-base) var(--ease-out);
}

.site-header.is-condensed {
   border-bottom-color: var(--rule);
   box-shadow: 0 10px 24px -22px rgba(28, 26, 23, 0.5);
   background: var(--paper);
}

.site-header__inner {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   justify-content: space-between;
   gap: var(--space-xs) var(--space-m);
   padding-block: 1.125rem;
   transition: padding var(--dur-base) var(--ease-out);
}

.site-header.is-condensed .site-header__inner {
   padding-block: 0.625rem;
}

.site-header__inner > * {
   min-width: 0;
}

.brand {
   display: inline-flex;
   align-items: center;
   min-height: 44px;
   padding: 0.25rem 0.375rem;
   margin-left: -0.375rem;
   border-radius: var(--radius-s);
   text-decoration: none;
   transition: background-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}

.brand img {
   display: block;
   height: 2.1rem;
   width: auto;
   max-width: 100%;
   background: none;
}

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

.brand:active {
   background-color: var(--oat-deep);
}

.brand:focus-visible {
   outline: none;
   box-shadow: var(--focus-ring);
}

.site-header__actions {
   display: flex;

   align-items: center;
   gap: var(--space-2xs);
}

.header-links {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: var(--space-2xs);
   list-style: none;
   margin: 0;
   padding: 0;
}

.header-link {
   display: inline-flex;
   align-items: center;
   gap: 0.45rem;
   min-height: 44px;
   padding: 0.5rem 1rem;
   border: var(--hairline);
   border-radius: var(--radius-pill);
   background: transparent;
   font-family: var(--fubi-fa4);
   font-size: var(--step--1);
   font-weight: 500;
   letter-spacing: var(--track-mono);
   line-height: 1.2;
   color: var(--ink);
   text-decoration: none;
   transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-press);
}

.header-link__num {
   color: var(--stone);
   font-size: 0.85em;
   transition: color var(--dur-fast) var(--ease-out);
}

.header-link:hover {
   background-color: var(--oat);
   border-color: var(--ink-soft);
}

.header-link:hover .header-link__num {
   color: var(--clay);
}

.header-link:active {
   background-color: var(--oat-deep);
   transform: translateY(1px);
}

.header-link:focus-visible {
   outline: none;
   box-shadow: var(--focus-ring);
}

.header-link[aria-current='page'] {
   border-color: var(--ink);
   background: var(--ink);
   color: var(--paper);
}

.header-link[aria-current='page'] .header-link__num {
   color: var(--on-ink-soft);
}

.nav-toggle {
   display: inline-flex;
   align-items: center;
   gap: 0.5rem;
   min-height: 44px;
   min-width: 44px;
   padding: 0.5rem 1rem 0.5rem 0.875rem;
   border: 1px solid var(--ink);
   border-radius: var(--radius-pill);
   background: var(--ink);
   color: var(--paper);
   font-family: var(--fubi-fa4);
   font-size: var(--step--1);
   font-weight: 500;
   letter-spacing: var(--track-mono);
   line-height: 1.2;
   transition: background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-press);
}

.nav-toggle .icon {
   width: 1.15rem;
   height: 1.15rem;
}

.nav-toggle__close {
   display: none;
}

.nav-toggle[aria-expanded='true'] .nav-toggle__open {
   display: none;
}

.nav-toggle[aria-expanded='true'] .nav-toggle__close {
   display: block;
}

.nav-toggle:hover {
   background-color: var(--ink-soft);
   box-shadow: inset 0 -2px 0 var(--clay);
}

.nav-toggle:active {
   background-color: #000;
   transform: translateY(1px);
}

.nav-toggle:focus-visible {
   outline: none;
   box-shadow: var(--focus-ring);

}

html:not(.js) .nav-toggle {
   display: none;
}

.site-nav {
   position: absolute;
   top: 100%;
   left: 0;
   right: 0;
   z-index: var(--z-nav);
   display: none;
   max-height: calc(100vh - var(--header-h));

   max-height: calc(100dvh - var(--header-h));
   overflow-y: auto;
   overscroll-behavior: contain;
   background: var(--paper);
   border-top: var(--hairline);
   border-bottom: 1px solid var(--ink);
   box-shadow: 0 30px 60px -30px rgba(28, 26, 23, 0.45);
}

.site-nav.is-open,
.site-nav[data-open='true'],
.site-header.nav-open .site-nav {
   display: block;
}

.site-nav__inner {
   display: grid;
   gap: var(--space-xl);
   grid-template-columns: minmax(0, 1fr);
   padding-block: var(--space-l) var(--space-xl);
}

@media (min-width: 960px) {
   .site-nav__inner {
      grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
      align-items: start;
   }
}

.site-nav__list {
   list-style: none;
   margin: 0;
   padding: 0;
   border-top: 1px solid var(--ink);
}

.site-nav__item {
   border-bottom: var(--hairline);
}

.site-nav__link {
   display: grid;
   grid-template-columns: 3.25rem minmax(0, 1fr) auto;
   align-items: center;
   gap: var(--space-s);
   min-height: 56px;
   padding: 0.6rem 0.25rem;
   text-decoration: none;
   color: var(--ink);
   transition: background-color var(--dur-fast) var(--ease-out), padding var(--dur-base) var(--ease-out);
}

.site-nav__num {
   font-family: var(--fubi-1a0);
   font-weight: 700;
   font-size: var(--fubi-6e8);
   line-height: 1;
   color: var(--rule);
   font-variant-numeric: lining-nums tabular-nums;
   transition: color var(--dur-fast) var(--ease-out);
}

.site-nav__label {
   font-family: var(--fubi-1a0);
   font-weight: 600;
   font-size: var(--fubi-c06);
   line-height: 1.15;
   overflow-wrap: anywhere;
}

.site-nav__status {
   font-family: var(--fubi-fa4);
   font-size: var(--step--2);
   letter-spacing: var(--track-mono);
   color: var(--stone);
   white-space: nowrap;
}

.site-nav__link:hover {
   background-color: var(--oat);
   padding-left: 0.75rem;
}

.site-nav__link:hover .site-nav__num {
   color: var(--clay);
}

.site-nav__link:active {
   background-color: var(--oat-deep);
}

.site-nav__link:focus-visible {
   outline: none;
   box-shadow: inset 0 0 0 2px var(--clay);
   border-radius: 4px;
}

.site-nav__link[aria-current='page'] .site-nav__num {
   color: var(--ink);
}

.site-nav__aside {
   display: flex;
   flex-direction: column;
   gap: var(--space-s);
   font-size: var(--step--1);
   color: var(--ink-soft);
}

.site-nav__aside a {
   font-family: var(--fubi-fa4);
}

@media (max-width: 479px) {
   .site-header__inner {
      padding-block: 0.75rem;
   }

   .brand img {
      height: 1.75rem;
   }

   .site-header__actions {
      display: contents;
   }

   .header-links {
      order: 3;
      flex-basis: 100%;
   }

   .header-link {
      padding-inline: 0.85rem;
   }

   .site-nav__link {
      grid-template-columns: 2.5rem minmax(0, 1fr);
   }

   .site-nav__status {
      grid-column: 2;
      white-space: normal;
   }
}

body.nav-locked {
   overflow: hidden;
}

.btn {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 0.6rem;
   min-height: 48px;
   max-width: 100%;
   padding: 0.75rem 1.4rem;
   border: 1px solid var(--ink);
   border-radius: var(--radius-pill);
   background: transparent;
   color: var(--ink);
   font-family: var(--fubi-c3f);
   font-size: var(--fubi-da6);
   font-weight: 700;
   line-height: 1.2;
   text-align: center;
   text-decoration: none;
   white-space: normal;
   cursor: pointer;
   transition: background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-press);
}

.btn .icon {
   width: 1.1em;
   height: 1.1em;
   transition: transform var(--dur-base) var(--ease-out);
}

.btn:hover {
   background-color: var(--oat);
   box-shadow: var(--shadow-lift);
   transform: translateY(-1px);
}

.btn:hover .icon {
   transform: translateX(3px);
}

.btn:active {
   transform: translateY(1px);
   box-shadow: var(--shadow-press);
   background-color: var(--oat-deep);
}

.btn:focus-visible {
   outline: none;
   box-shadow: var(--focus-ring);
}

.btn--primary {
   background: var(--ink);
   color: var(--paper);
}

.btn--primary:hover {
   background-color: var(--ink-soft);
   border-color: var(--ink-soft);
   color: var(--paper);
   box-shadow: var(--shadow-lift), inset 0 -2px 0 var(--clay);
}

.btn--primary:active {
   background-color: #000;
   border-color: #000;
}

.btn--ghost {
   border-color: var(--rule);
}

.btn--ghost:hover {
   border-color: var(--ink);
   background-color: var(--paper-bright);
}

.btn--on-ink {
   border-color: var(--on-ink);
   color: var(--on-ink);
}

.btn--on-ink:hover {
   background-color: var(--on-ink);
   color: var(--ink);
}

.btn--on-ink:active {
   background-color: var(--oat-deep);
   color: var(--ink);
}

.btn--small {
   min-height: 44px;
   padding: 0.5rem 1rem;
   font-size: var(--step--1);
}

.btn--block {
   width: 100%;
}

.btn[disabled],
.btn[aria-disabled='true'] {
   opacity: 0.55;
   pointer-events: none;
}

.btn.is-busy {
   cursor: progress;
   opacity: 0.8;
}

.text-link {
   display: inline-flex;
   align-items: center;
   gap: 0.4rem;
   min-height: 44px;
   padding-block: 0.25rem;
   font-weight: 700;
   color: var(--ink);
   text-decoration: none;
   background-image: linear-gradient(var(--clay), var(--clay));
   background-size: 0% 2px;
   background-position: 0 calc(100% - 0.55rem);
   background-repeat: no-repeat;
   transition: background-size var(--dur-base) var(--ease-draw), color var(--dur-fast) var(--ease-out);
}

.text-link .icon {
   width: 1em;
   height: 1em;
   transition: transform var(--dur-base) var(--ease-out);
}

.text-link:hover {
   background-size: 100% 2px;
}

.text-link:hover .icon {
   transform: translateX(3px);
}

.text-link:active {
   color: var(--clay-deep);
}

.text-link:focus-visible {
   outline: 2px solid var(--clay);
   outline-offset: 2px;
   border-radius: 3px;
}

.chip,
.status {
   display: inline-flex;
   align-items: center;
   gap: 0.45rem;
   min-height: 28px;
   max-width: 100%;
   padding: 0.2rem 0.75rem;
   border: 1px solid var(--rule);
   border-radius: var(--radius-pill);
   background: var(--paper-bright);
   font-family: var(--fubi-fa4);
   font-size: var(--step--2);
   font-weight: 500;
   letter-spacing: var(--track-mono);
   line-height: 1.3;
   color: var(--ink-soft);
   white-space: normal;
}

.status::before {
   content: "";
   flex: none;
   width: 0.5rem;
   height: 0.5rem;
   border-radius: 50%;
   border: 1.5px solid currentColor;
}

.status--open {
   border-color: var(--clay);
   color: var(--clay-deep);
   background: var(--clay-wash);
}

.status--open::before {
   background: var(--clay);
   border-color: var(--clay);
}

.status--study::before {
   background: linear-gradient(90deg, currentColor 50%, transparent 50%);
}

.status--parked {
   color: var(--stone);
   background: transparent;
}

.status--listening {
   border-color: var(--ink-soft);
   color: var(--ink);
}

.status--held {
   background: var(--ink);
   border-color: var(--ink);
   color: var(--paper);
}

a.chip,
button.chip {
   min-height: 44px;
   padding-inline: 1rem;
   text-decoration: none;
   cursor: pointer;
   transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-press);
}

a.chip:hover,
button.chip:hover {
   border-color: var(--ink);
   background-color: var(--oat);
}

a.chip:active,
button.chip:active {
   transform: translateY(1px);
   background-color: var(--oat-deep);
}

a.chip:focus-visible,
button.chip:focus-visible {
   outline: none;
   box-shadow: var(--focus-ring);
}

button.chip[aria-pressed='true'],
button.chip[aria-selected='true'] {
   background: var(--ink);
   color: var(--paper);
   border-color: var(--ink);
}

.numeral {
   display: block;
   font-family: var(--fubi-1a0);
   font-weight: 700;
   font-size: var(--numeral);
   line-height: 0.78;
   letter-spacing: -0.04em;
   font-variant-numeric: lining-nums tabular-nums;
   color: var(--rule);
   user-select: none;
   pointer-events: none;
}

.numeral--ink {
   color: var(--ink);
}

.numeral--small {
   font-size: var(--numeral-sm);
}

.numeral--bleed {
   margin-left: calc(var(--gutter) * -1 - 0.06em);
}

.section-mark {
   position: relative;
   display: grid;
   grid-template-columns: minmax(0, 1fr);
   gap: var(--space-s);
   margin-bottom: var(--space-xl);
}

.section-mark .numeral {
   margin-left: calc(var(--gutter) * -1 - 0.06em);
}

.section-mark__rule {
   position: relative;
   height: 1px;
   background: var(--ink);
}

.section-mark__rule::after {
   content: "";
   position: absolute;
   left: 0;
   top: -1px;
   height: 3px;
   width: 4.5rem;
   background: var(--clay);
   transform-origin: left center;
}

.section--ink .numeral {
   color: var(--ink-line);
}

.index-list {
   list-style: none;
   margin: 0;
   padding: 0;
   border-top: 1px solid var(--ink);
   counter-reset: idx;
}

.index-item {
   border-bottom: var(--hairline);
   min-width: 0;
}

.index-row {
   position: relative;
   display: grid;
   grid-template-columns: minmax(4.5rem, auto) minmax(0, 1fr) auto auto;
   grid-template-areas: 'num body status arrow';
   align-items: center;
   column-gap: clamp(1rem, 3vw, 2.5rem);
   min-height: 44px;
   padding-block: clamp(1rem, 2.4vw, 1.75rem);
   padding-right: 0.25rem;
   color: var(--ink);
   text-decoration: none;
   transition: background-color var(--dur-base) var(--ease-out);
}

.index-row__num {
   grid-area: num;
   font-family: var(--fubi-1a0);
   font-weight: 700;
   font-size: var(--numeral-sm);
   line-height: 0.8;
   letter-spacing: -0.04em;
   font-variant-numeric: lining-nums tabular-nums;
   color: var(--rule);
   margin-left: calc(var(--gutter) * -0.55);
   transition: color var(--dur-base) var(--ease-out), transform var(--dur-slow) var(--ease-settle);
}

.index-row__body {
   grid-area: body;
   display: flex;
   flex-direction: column;
   gap: 0.3rem;
   min-width: 0;
}

.index-row__title {
   position: relative;
   align-self: flex-start;
   max-width: 100%;
   font-family: var(--fubi-1a0);
   font-weight: 600;
   font-size: var(--fubi-6e8);
   line-height: 1.1;
   letter-spacing: var(--track-display);
   overflow-wrap: break-word;
}

.index-row__title::after {
   content: "";
   position: absolute;
   left: 0;
   right: 0;
   bottom: -0.2em;
   height: 2px;
   background: var(--clay);
   transform: scaleX(0);
   transform-origin: left center;
   transition: transform var(--dur-slow) var(--ease-draw);
}

.index-row__desc {
   color: var(--ink-soft);
   font-size: var(--fubi-da6);
   max-width: 58ch;
}

.index-row__status {
   grid-area: status;
   justify-self: end;
}

.index-row__arrow {
   grid-area: arrow;
   display: inline-grid;
   place-items: center;
   width: 44px;
   height: 44px;
   border: var(--hairline);
   border-radius: 50%;
   color: var(--ink);
   transition: background-color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);
}

.index-row__arrow .icon {
   width: 1.1rem;
   height: 1.1rem;
}

.index-row:hover {
   background-color: rgba(235, 227, 211, 0.55);
}

.index-row:hover .index-row__num,
.index-row.is-current .index-row__num {
   color: var(--clay);
   transform: translateX(0.4rem);
}

.index-row:hover .index-row__title::after,
.index-row.is-current .index-row__title::after {
   transform: scaleX(1);
}

.index-row:hover .index-row__arrow {
   background: var(--ink);
   border-color: var(--ink);
   color: var(--paper);
   transform: translateX(2px);
}

.index-row:active {
   background-color: var(--oat);
}

.index-row:active .index-row__arrow {
   transform: translateX(0) scale(0.94);
}

.index-row:focus-visible {
   outline: none;
   box-shadow: inset 0 0 0 2px var(--clay);
   border-radius: 6px;
}

.index-row:focus-visible .index-row__num {
   color: var(--clay);
}

.index-row:focus-visible .index-row__title::after {
   transform: scaleX(1);
}

@media (max-width: 719px) {
   .index-row {
      grid-template-columns: minmax(3.25rem, auto) minmax(0, 1fr);
      grid-template-areas:
         'num body'
         'num status';
      row-gap: 0.75rem;
      align-items: start;
   }

   .index-row__num {
      margin-left: 0;
      font-size: clamp(2.75rem, 12vw, 4rem);
   }

   .index-row__status {
      justify-self: start;
   }

   .index-row__arrow {
      display: none;
   }
}

.card {
   position: relative;
   display: flex;
   flex-direction: column;
   gap: var(--space-s);
   min-width: 0;
   padding: clamp(1.25rem, 3vw, 2.25rem);
   background: var(--oat);
   border: 1px solid var(--oat-deep);
   border-radius: var(--radius);
   box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);
}

.card--paper {
   background: var(--paper-bright);
   border-color: var(--rule);
}

.card--ink {
   background: var(--ink);
   border-color: var(--ink);
   color: var(--on-ink);
   box-shadow: none;
}

.card--ink h3 {
   color: var(--on-ink);
}

.card__num {
   font-family: var(--fubi-fa4);
   font-size: var(--step--2);
   color: var(--stone);
   letter-spacing: var(--track-caps);
}

.card__title {
   font-size: var(--fubi-c06);
}

a.card {
   color: inherit;
   text-decoration: none;
   transition: border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), background-color var(--dur-base) var(--ease-out);
}

a.card:hover {
   border-color: var(--ink-soft);
   box-shadow: var(--shadow-lift);
   transform: translateY(-2px);
}

a.card:active {
   transform: translateY(0);
   box-shadow: var(--shadow-press);
   background-color: var(--oat-deep);
}

a.card:focus-visible {
   outline: none;
   box-shadow: var(--focus-ring);
}

.figure {
   position: relative;
   margin: 0;
   min-width: 0;
}

.figure img {
   width: 100%;
   border-radius: var(--radius);
   object-fit: cover;
   filter: saturate(0.92) contrast(1.02);
}

.figure--tall img {
   aspect-ratio: 4 / 5;
}

.figure--wide img {
   aspect-ratio: 3 / 2;
}

.figure__caption,
.figure figcaption {
   display: flex;
   gap: 0.75rem;
   align-items: baseline;
   margin-top: 0.75rem;
   font-family: var(--fubi-fa4);
   font-size: var(--step--2);
   letter-spacing: var(--track-mono);
   color: var(--stone);
   line-height: 1.5;
}

.figure figcaption::before {
   content: "";
   flex: none;
   width: 1.25rem;
   height: 1px;
   background: var(--clay);
   transform: translateY(-0.25em);
}

.ledger {
   list-style: none;
   margin: 0;
   padding: 0;
   border-top: 1px solid var(--ink);
}

.ledger__row {
   display: grid;
   grid-template-columns: minmax(0, 1fr);
   gap: 0.4rem var(--space-l);
   padding-block: var(--space-m);
   border-bottom: var(--hairline);
}

@media (min-width: 760px) {
   .ledger__row {
      grid-template-columns: 4rem minmax(0, 4fr) minmax(0, 7fr);
      align-items: baseline;
   }
}

.ledger__num {
   font-family: var(--fubi-fa4);
   font-size: var(--step--1);
   color: var(--clay);
}

.ledger__term {
   font-family: var(--fubi-1a0);
   font-weight: 600;
   font-size: var(--fubi-480);
   line-height: 1.25;
}

.ledger__text {
   color: var(--ink-soft);
}

.spec-table {
   width: 100%;
   border-top: 1px solid var(--ink);
   font-size: var(--step--1);
}

.spec-table caption {
   caption-side: top;
   text-align: left;
   padding-bottom: var(--space-xs);
   font-family: var(--fubi-fa4);
   font-size: var(--step--2);
   letter-spacing: var(--track-caps);
   text-transform: uppercase;
   color: var(--stone);
}

.spec-table th,
.spec-table td {
   padding: 0.85rem 1rem 0.85rem 0;
   text-align: left;
   vertical-align: top;
   border-bottom: var(--hairline);
   overflow-wrap: anywhere;
}

.spec-table thead th {
   font-family: var(--fubi-fa4);
   font-size: var(--step--2);
   font-weight: 500;
   letter-spacing: var(--track-caps);
   text-transform: uppercase;
   color: var(--stone);
   border-bottom-color: var(--ink);
}

.spec-table tbody th {
   font-family: var(--fubi-1a0);
   font-weight: 600;
   font-size: var(--fubi-da6);
   color: var(--ink);
}

.spec-table code,
.spec-table .mono {
   font-family: var(--fubi-fa4);
   font-size: 0.92em;
   color: var(--ink);
   background: var(--oat);
   padding: 0.05rem 0.35rem;
   border-radius: 4px;
}

@media (max-width: 639px) {
   .spec-table--stack thead {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
   }

   .spec-table--stack tr {
      display: block;
      padding-block: var(--space-s);
      border-bottom: var(--hairline);
   }

   .spec-table--stack th,
   .spec-table--stack td {
      display: block;
      padding: 0.2rem 0;
      border: 0;
   }

   .spec-table--stack td[data-label]::before {
      content: attr(data-label);
      display: block;
      font-family: var(--fubi-fa4);
      font-size: var(--step--2);
      letter-spacing: var(--track-caps);
      text-transform: uppercase;
      color: var(--stone);
      margin-top: 0.5rem;
   }
}

.form {
   display: flex;
   flex-direction: column;
   gap: var(--space-m);
   min-width: 0;
}

.form__grid {
   display: grid;
   gap: var(--space-m) var(--space-l);
   grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 680px) {
   .form__grid {
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
   }

   .field--full {
      grid-column: 1 / -1;
   }
}

.field {
   display: flex;
   flex-direction: column;
   gap: 0.4rem;
   min-width: 0;
}

.field__label,
.form label.field__label {
   font-family: var(--fubi-fa4);
   font-size: var(--step--2);
   font-weight: 500;
   letter-spacing: var(--track-caps);
   text-transform: uppercase;
   color: var(--ink-soft);
}

.field__optional {
   text-transform: none;
   letter-spacing: var(--track-mono);
   color: var(--stone);
}

.field__hint {
   font-size: var(--step--1);
   color: var(--stone);
}

.input,
.select,
.textarea,
.field input:not([type='checkbox']):not([type='radio']),
.field select,
.field textarea {
   width: 100%;
   min-height: 48px;
   padding: 0.7rem 0.95rem;
   background: var(--paper-bright);
   border: 1px solid var(--rule);
   border-bottom-color: var(--ink-soft);
   border-radius: var(--radius-s);
   font-family: var(--fubi-c3f);
   font-size: var(--fubi-da6);
   line-height: 1.4;
   color: var(--ink);
   appearance: none;
   -webkit-appearance: none;
   transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);
}

.textarea,
.field textarea {
   min-height: 9rem;
}

.select,
.field select {
   padding-right: 2.75rem;
   background-image: linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(-45deg, transparent 50%, var(--ink) 50%);
   background-position: calc(100% - 1.3rem) 52%, calc(100% - 0.95rem) 52%;
   background-size: 0.35rem 0.35rem;
   background-repeat: no-repeat;
}

.input::placeholder,
.textarea::placeholder,
.field input::placeholder,
.field textarea::placeholder {
   color: #9a9286;
}

.input:hover,
.select:hover,
.textarea:hover,
.field input:not([type='checkbox']):not([type='radio']):hover,
.field select:hover,
.field textarea:hover {
   border-color: var(--ink-soft);
   background-color: #fff;
}

.input:active,
.select:active,
.textarea:active,
.field select:active {
   border-color: var(--ink);
}

.input:focus-visible,
.select:focus-visible,
.textarea:focus-visible,
.field input:not([type='checkbox']):not([type='radio']):focus,
.field select:focus,
.field textarea:focus {
   outline: none;
   border-color: var(--ink);
   background-color: #fff;
   box-shadow: 0 0 0 3px rgba(169, 80, 43, 0.28);
}

.field.is-invalid .input,
.field.is-invalid .select,
.field.is-invalid .textarea,
.field [aria-invalid='true'] {
   border-color: var(--danger);
   background-color: var(--danger-wash);
}

.field__error {
   display: none;
   align-items: flex-start;
   gap: 0.4rem;
   font-size: var(--step--1);
   font-weight: 500;
   color: var(--danger);
}

.field.is-invalid .field__error,
.field__error:not(:empty) {
   display: flex;
}

.check {
   display: grid;
   grid-template-columns: 1.5rem minmax(0, 1fr);
   gap: 0.75rem;
   align-items: start;
   min-height: 44px;
   padding: 0.5rem 0;
   font-size: var(--step--1);
   line-height: 1.5;
   color: var(--ink-soft);
   cursor: pointer;
}

.check input {
   appearance: none;
   -webkit-appearance: none;
   width: 1.5rem;
   height: 1.5rem;
   margin: 0;
   border: 1.5px solid var(--ink-soft);
   border-radius: 6px;
   background: var(--paper-bright);
   display: grid;
   place-items: center;
   cursor: pointer;
   transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}

.check input::after {
   content: "";
   width: 0.45rem;
   height: 0.8rem;
   border: solid var(--paper);
   border-width: 0 2px 2px 0;
   transform: rotate(45deg) translate(-1px, -1px) scale(0);
   transition: transform var(--dur-fast) var(--ease-out);
}

.check input:checked {
   background: var(--ink);
   border-color: var(--ink);
}

.check input:checked::after {
   transform: rotate(45deg) translate(-1px, -1px) scale(1);
}

.check:hover input {
   border-color: var(--ink);
   box-shadow: 0 0 0 4px var(--oat);
}

.check input:active {
   background-color: var(--oat-deep);
}

.check input:focus-visible {
   outline: none;
   box-shadow: var(--focus-ring);
}

.check.is-invalid input,
.check input[aria-invalid='true'] {
   border-color: var(--danger);
}

.hp-field {
   position: absolute !important;
   left: -10000px !important;
   top: auto !important;
   width: 1px !important;
   height: 1px !important;
   overflow: hidden !important;
}

.form__actions {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: var(--space-s) var(--space-m);
}

.form__note {
   font-size: var(--step--1);
   color: var(--stone);
   max-width: 48ch;
}

.form__status {
   display: none;
   gap: 0.6rem;
   align-items: flex-start;
   padding: 0.9rem 1.1rem;
   border-radius: var(--radius-s);
   border: 1px solid var(--rule);
   background: var(--paper-bright);
   font-size: var(--step--1);
}

.form__status:not(:empty) {
   display: flex;
}

.form__status.is-success {
   border-color: var(--success);
   color: var(--success);
}

.form__status.is-error {
   border-color: var(--danger);
   background: var(--danger-wash);
   color: var(--danger);
}

.tabs {
   display: flex;
   flex-wrap: wrap;
   gap: var(--space-2xs);
   border-bottom: var(--hairline);
   padding-bottom: var(--space-xs);
}

.tab {
   display: inline-flex;
   align-items: center;
   min-height: 44px;
   padding: 0.5rem 1rem;
   border: 1px solid transparent;
   border-radius: var(--radius-pill);
   font-family: var(--fubi-fa4);
   font-size: var(--step--1);
   color: var(--ink-soft);
   transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}

.tab:hover {
   background: var(--oat);
   color: var(--ink);
}

.tab:active {
   background: var(--oat-deep);
}

.tab:focus-visible {
   outline: none;
   box-shadow: var(--focus-ring);
}

.tab[aria-selected='true'] {
   background: var(--ink);
   color: var(--paper);
   border-color: var(--ink);
}

.tab-panel {
   padding-top: var(--space-l);
}

.crumbs {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: 0.35rem 0.6rem;
   list-style: none;
   margin: 0;
   padding: 0;
   font-family: var(--fubi-fa4);
   font-size: var(--step--2);
   letter-spacing: var(--track-mono);
   color: var(--stone);
}

.crumbs li + li::before {
   content: '/';
   margin-right: 0.6rem;
   color: var(--rule);
}

.crumbs a {
   display: inline-flex;
   align-items: center;
   min-height: 44px;
   text-decoration: none;
   color: var(--ink-soft);
}

.crumbs a:hover {
   color: var(--ink);
   text-decoration: underline;
   text-decoration-color: var(--clay);
}

.crumbs a:active {
   color: var(--clay-deep);
}

.crumbs a:focus-visible {
   outline: 2px solid var(--clay);
   outline-offset: 2px;
}

.site-footer {
   position: relative;
   overflow-x: clip;
   background: var(--ink);
   color: var(--on-ink);
   padding-top: clamp(3.5rem, 7vw, 6rem);
   padding-bottom: 6rem;
}

.site-footer a {
   color: var(--on-ink);
   text-decoration-color: var(--ink-line);
}

.footer__grid {
   display: grid;
   gap: var(--space-xl) var(--space-l);
   grid-template-columns: minmax(0, 1fr);
}

.footer__grid > * {
   min-width: 0;
}

@media (min-width: 760px) {
   .footer__grid {
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
   }
}

@media (min-width: 1080px) {
   .footer__grid {
      grid-template-columns: minmax(0, 4fr) minmax(0, 5fr) minmax(0, 3fr);
   }
}

.footer__brand img {
   height: 2.6rem;
   width: auto;
   background: none;
}

.footer__brand .brand:hover {
   background-color: var(--ink-raised);
}

.footer__brand .brand:active {
   background-color: #000;
}

.footer__line {
   margin-top: var(--space-m);
   max-width: 34ch;
   font-size: var(--fubi-da6);
   color: var(--on-ink-soft);
}

.footer__heading {
   margin-bottom: var(--space-s);
   font-family: var(--fubi-fa4);
   font-size: var(--step--2);
   font-weight: 500;
   letter-spacing: var(--track-caps);
   text-transform: uppercase;
   color: var(--on-ink-soft);
}

.footer__index {
   list-style: none;
   margin: 0;
   padding: 0;
   display: grid;
   grid-template-columns: minmax(0, 1fr);
   border-top: 1px solid var(--ink-line);
}

@media (min-width: 480px) {
   .footer__index {
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      column-gap: var(--space-m);
   }
}

.footer__index li {
   border-bottom: 1px solid var(--ink-line);
   min-width: 0;
}

.footer__index a {
   display: flex;
   align-items: baseline;
   gap: 0.75rem;
   min-height: 44px;
   padding: 0.6rem 0.25rem;
   text-decoration: none;
   font-family: var(--fubi-1a0);
   font-weight: 500;
   font-size: var(--fubi-da6);
   transition: color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), padding var(--dur-base) var(--ease-out);
}

.footer__index a span {
   font-family: var(--fubi-fa4);
   font-size: var(--step--2);
   color: var(--on-ink-soft);
   transition: color var(--dur-fast) var(--ease-out);
}

.footer__index a:hover {
   background-color: var(--ink-raised);
   padding-left: 0.6rem;
}

.footer__index a:hover span {
   color: #d98a64;
}

.footer__index a:active {
   background-color: #000;
}

.footer__index a:focus-visible,
.footer__contact a:focus-visible,
.footer__legal a:focus-visible,
.footer__legal button:focus-visible {
   outline: 2px solid #d98a64;
   outline-offset: 2px;
   border-radius: 4px;
}

.footer__contact {
   display: flex;
   flex-direction: column;
   gap: var(--space-xs);
   font-size: var(--step--1);
   color: var(--on-ink-soft);
}

.footer__contact address {
   color: var(--on-ink);
   font-size: var(--fubi-da6);
   line-height: 1.5;
}

.footer__contact a {
   display: inline-flex;
   align-items: center;
   gap: 0.55rem;
   min-height: 44px;
   font-family: var(--fubi-fa4);
   font-size: var(--step--1);
   text-decoration: none;
   overflow-wrap: anywhere;
   transition: color var(--dur-fast) var(--ease-out);
}

.footer__contact a .icon {
   width: 1rem;
   height: 1rem;
   color: var(--on-ink-soft);
}

.footer__contact a:hover {
   color: #fff;
   text-decoration: underline;
   text-decoration-color: #d98a64;
}

.footer__contact a:active {
   color: var(--on-ink-soft);
}

.footer__numeral {
   position: absolute;
   right: calc(var(--gutter) * -0.5);
   bottom: 2.5rem;
   font-family: var(--fubi-1a0);
   font-weight: 700;
   font-size: clamp(6rem, 22vw, 20rem);
   line-height: 0.75;
   letter-spacing: -0.05em;
   color: var(--ink-raised);
   pointer-events: none;
   user-select: none;
   z-index: 0;
}

.site-footer .shell {
   position: relative;
   z-index: 1;
}

.footer__legal {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   justify-content: space-between;
   gap: var(--space-s) var(--space-l);
   margin-top: var(--space-2xl);
   padding-top: var(--space-m);
   border-top: 1px solid var(--ink-line);
   font-size: var(--step--1);
   color: var(--on-ink-soft);
}

.footer__legal-links {
   display: flex;
   flex-wrap: wrap;
   gap: 0 var(--space-m);
   list-style: none;
   margin: 0;
   padding: 0;
}

.footer__legal-links a,
.footer__legal-links button {
   display: inline-flex;
   align-items: center;
   min-height: 44px;
   font-family: var(--fubi-c3f);
   font-size: var(--step--1);
   color: var(--on-ink);
   text-decoration: underline;
   text-decoration-color: var(--ink-line);
   text-underline-offset: 0.25em;
   transition: color var(--dur-fast) var(--ease-out), text-decoration-color var(--dur-fast) var(--ease-out);
}

.footer__legal-links a:hover,
.footer__legal-links button:hover {
   color: #fff;
   text-decoration-color: #d98a64;
}

.footer__legal-links a:active,
.footer__legal-links button:active {
   color: var(--on-ink-soft);
}

.footer__fine {
   font-family: var(--fubi-fa4);
   font-size: var(--step--2);
   letter-spacing: var(--track-mono);
}

.consent {
   position: fixed;
   left: 0.75rem;
   right: 0.75rem;
   bottom: 0.75rem;
   z-index: var(--z-consent);
   max-width: 58rem;
   margin-inline: auto;
   background: var(--ink);
   color: var(--on-ink);
   border: 1px solid #000;
   border-radius: var(--radius);
   box-shadow: var(--shadow-float);
}

html:not(.js) .consent,
.consent.is-hidden {
   display: none;
}

.consent__inner {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   justify-content: space-between;
   gap: 0.6rem 1.25rem;
   padding: 0.75rem 0.75rem 0.75rem 1.25rem;
}

.consent__text {
   flex: 1 1 18rem;
   min-width: 0;
   margin: 0;
   font-size: var(--step--1);
   line-height: 1.45;
   color: var(--on-ink);
}

.consent__text a {
   color: var(--on-ink);
   text-decoration-color: #d98a64;
   white-space: nowrap;
}

.consent__text a:hover {
   color: #fff;
}

.consent__text a:focus-visible {
   outline: 2px solid #d98a64;
   outline-offset: 2px;
}

.consent__actions {
   display: flex;
   flex: 0 1 auto;
   gap: 0.5rem;
}

.consent__btn {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   min-height: 44px;
   padding: 0.5rem 1.15rem;
   border-radius: var(--radius-pill);
   border: 1px solid var(--on-ink-soft);
   background: transparent;
   color: var(--on-ink);
   font-family: var(--fubi-fa4);
   font-size: var(--step--1);
   font-weight: 500;
   line-height: 1.2;
   transition: background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-press);
}

.consent__btn:hover {
   border-color: var(--on-ink);
   background-color: var(--ink-raised);
}

.consent__btn:active {
   transform: translateY(1px);
   background-color: #000;
}

.consent__btn:focus-visible {
   outline: none;
   box-shadow: 0 0 0 2px var(--ink), 0 0 0 4px #d98a64;
}

.consent__btn--accept {
   background: var(--paper);
   border-color: var(--paper);
   color: var(--ink);
}

.consent__btn--accept:hover {
   background-color: var(--oat);
   border-color: var(--oat);
   color: var(--ink);
}

.consent__btn--accept:active {
   background-color: var(--oat-deep);
}

@media (max-width: 479px) {
   .consent {
      left: 0.5rem;
      right: 0.5rem;
      bottom: 0.5rem;
   }

   .consent__inner {
      padding: 0.7rem 0.75rem;
   }

   .consent__actions {
      flex: 1 1 100%;
   }

   .consent__btn {
      flex: 1 1 0;
   }
}

.chat-root {
   --chat-offset: 1rem;
}

.consent:not([hidden]):not(.is-hidden) ~ .chat-root {
   --chat-offset: calc(var(--consent-h, 6.25rem) + 1.25rem);
}

@media (max-width: 479px) {
   .consent:not([hidden]):not(.is-hidden) ~ .chat-root {
      --chat-offset: calc(var(--consent-h, 8.25rem) + 1rem);
   }
}

.chat-launcher {
   position: fixed;
   right: clamp(0.75rem, 2vw, 1.5rem);
   bottom: var(--chat-offset, 1rem);
   z-index: var(--z-chat);
   display: inline-flex;
   align-items: center;
   gap: 0.55rem;
   min-height: 52px;
   padding: 0.6rem 1.15rem 0.6rem 0.95rem;
   border: 1px solid var(--ink);
   border-radius: var(--radius-pill);
   background: var(--ink);
   color: var(--paper);
   font-family: var(--fubi-fa4);
   font-size: var(--step--1);
   font-weight: 500;
   line-height: 1.2;
   box-shadow: var(--shadow-float);
   transition: bottom var(--dur-slow) var(--ease-out), background-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-press), border-color var(--dur-fast) var(--ease-out);
}

.chat-launcher .icon {
   width: 1.25rem;
   height: 1.25rem;
}

.chat-launcher:hover {
   background-color: var(--ink-soft);
   border-color: var(--ink-soft);
   transform: translateY(-2px);
   box-shadow: 0 22px 44px -18px rgba(28, 26, 23, 0.55), 0 2px 6px rgba(28, 26, 23, 0.14), inset 0 -2px 0 var(--clay);
}

.chat-launcher:active {
   transform: translateY(1px);
   background-color: #000;
   box-shadow: 0 6px 14px -8px rgba(28, 26, 23, 0.5);
}

.chat-launcher:focus-visible {
   outline: none;
   box-shadow: var(--focus-ring), var(--shadow-float);
}

.chat-launcher[aria-expanded='true'] {
   background: var(--paper);
   color: var(--ink);
}

.chat-launcher__badge {
   display: inline-grid;
   place-items: center;
   min-width: 1.4rem;
   min-height: 1.4rem;
   padding: 0 0.35rem;
   border-radius: var(--radius-pill);
   background: var(--clay);
   color: #fff;
   font-size: var(--step--2);
   font-weight: 500;
   line-height: 1;
}

.chat-launcher__badge:empty {
   display: none;
}

@media (max-width: 479px) {
   .chat-launcher__label {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
   }

   .chat-launcher {
      min-width: 52px;
      justify-content: center;
      padding: 0.6rem 0.9rem;
   }
}

.chat-panel {
   position: fixed;
   right: clamp(0.5rem, 2vw, 1.5rem);
   bottom: calc(var(--chat-offset, 1rem) + 4.25rem);
   z-index: var(--z-chat);
   display: flex;
   flex-direction: column;
   width: min(25rem, calc(100vw - 1rem));
   max-height: min(36rem, calc(100vh - 7rem));
   max-height: min(36rem, calc(100dvh - var(--chat-offset, 1rem) - 5.5rem));
   background: var(--paper);
   border: 1px solid var(--ink);
   border-radius: var(--radius);
   box-shadow: var(--shadow-float);
   overflow: hidden;
}

.chat-panel[hidden] {
   display: none;
}

.chat-panel__head {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: var(--space-s);
   padding: 0.75rem 0.75rem 0.75rem 1.1rem;
   background: var(--ink);
   color: var(--on-ink);
}

.chat-panel__title {
   font-family: var(--fubi-1a0);
   font-weight: 600;
   font-size: var(--fubi-480);
   line-height: 1.2;
   color: var(--on-ink);
}

.chat-panel__sub {
   font-family: var(--fubi-fa4);
   font-size: var(--step--2);
   color: var(--on-ink-soft);
}

.chat-panel__close {
   display: inline-grid;
   place-items: center;
   width: 44px;
   height: 44px;
   flex: none;
   border-radius: 50%;
   border: 1px solid var(--ink-line);
   color: var(--on-ink);
   transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-press);
}

.chat-panel__close:hover {
   background-color: var(--ink-raised);
   border-color: var(--on-ink-soft);
}

.chat-panel__close:active {
   transform: scale(0.94);
   background-color: #000;
}

.chat-panel__close:focus-visible {
   outline: none;
   box-shadow: 0 0 0 2px var(--ink), 0 0 0 4px #d98a64;
}

.chat-panel__body {
   flex: 1 1 auto;
   min-height: 0;
   overflow-y: auto;
   overscroll-behavior: contain;
   padding: 1rem 1.1rem;
}

.chat-log {
   display: flex;
   flex-direction: column;
   gap: 0.6rem;
   list-style: none;
   margin: 0;
   padding: 0;
}

.chat-msg {
   max-width: 85%;
   padding: 0.6rem 0.85rem;
   border-radius: 12px;
   font-size: var(--step--1);
   line-height: 1.45;
   overflow-wrap: anywhere;
}

.chat-msg--them,
.chat-msg--staff {
   align-self: flex-start;
   background: var(--oat);
   border-bottom-left-radius: 4px;
}

.chat-msg--me,
.chat-msg--visitor {
   align-self: flex-end;
   background: var(--ink);
   color: var(--paper);
   border-bottom-right-radius: 4px;
}

.chat-msg--system {
   align-self: center;
   max-width: 100%;
   background: transparent;
   font-family: var(--fubi-fa4);
   font-size: var(--step--2);
   color: var(--stone);
   text-align: center;
}

.chat-msg.is-pending {
   opacity: 0.6;
}

.chat-msg.is-failed {
   background: var(--danger-wash);
   color: var(--danger);
   border: 1px solid var(--danger);
}

.chat-msg__meta {
   display: block;
   margin-top: 0.25rem;
   font-family: var(--fubi-fa4);
   font-size: 0.7rem;
   opacity: 0.7;
}

.chat-retry {
   display: inline-flex;
   align-items: center;
   min-height: 44px;
   padding: 0 0.5rem;
   font-family: var(--fubi-fa4);
   font-size: var(--step--2);
   color: var(--danger);
   text-decoration: underline;
   transition: color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);
}

.chat-retry:hover {
   background-color: var(--danger-wash);
}

.chat-retry:active {
   color: var(--ink);
}

.chat-retry:focus-visible {
   outline: 2px solid var(--clay);
}

.chat-intro {
   display: flex;
   flex-direction: column;
   gap: 0.75rem;
   margin-top: 0.75rem;
}

.chat-intro .field input {
   min-height: 44px;
}

.chat-compose {
   display: flex;
   align-items: flex-end;
   gap: 0.5rem;
   padding: 0.7rem;
   border-top: var(--hairline);
   background: var(--paper-bright);
}

.chat-compose textarea {
   flex: 1 1 auto;
   min-width: 0;
   min-height: 44px;
   max-height: 8rem;
   padding: 0.6rem 0.8rem;
   border: 1px solid var(--rule);
   border-radius: var(--radius-s);
   background: #fff;
   font-size: var(--step--1);
   line-height: 1.4;
   resize: none;
   transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}

.chat-compose textarea:hover {
   border-color: var(--ink-soft);
}

.chat-compose textarea:focus {
   outline: none;
   border-color: var(--ink);
   box-shadow: 0 0 0 3px rgba(169, 80, 43, 0.28);
}

.chat-send {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 0.4rem;
   flex: none;
   min-width: 44px;
   min-height: 44px;
   padding: 0.5rem 0.9rem;
   border-radius: var(--radius-pill);
   background: var(--ink);
   color: var(--paper);
   font-family: var(--fubi-fa4);
   font-size: var(--step--1);
   transition: background-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-press), box-shadow var(--dur-fast) var(--ease-out);
}

.chat-send:hover {
   background-color: var(--ink-soft);
   box-shadow: inset 0 -2px 0 var(--clay);
}

.chat-send:active {
   transform: translateY(1px);
   background-color: #000;
}

.chat-send:focus-visible {
   outline: none;
   box-shadow: var(--focus-ring);
}

.chat-send:disabled {
   opacity: 0.5;
}

@media (max-width: 479px) {
   .chat-panel {
      right: 0.5rem;
      left: 0.5rem;
      width: auto;
      bottom: calc(var(--chat-offset, 1rem) + 4rem);
   }
}
