.skip-link {
   position: fixed;
   top: .75rem;
   left: .75rem;
   z-index: var(--z-skip);
   display: inline-flex;
   align-items: center;
   min-height: 44px;
   padding: .6rem 1rem;
   background: var(--ink);
   color: var(--paper);
   font-family: var(--tipe-ff5);
   font-size: var(--fs-mono);
   letter-spacing: var(--track-mono);
   text-decoration: none;
   border: 1px solid var(--signal);
   transform: translateY(-160%);
   transition: transform var(--dur-2) var(--ease-std);
}
.skip-link:focus, .skip-link:focus-visible { transform: translateY(0); outline: 2px solid var(--signal); outline-offset: 2px; }

.site-header {
   position: sticky;
   top: 0;
   z-index: var(--z-header);
   background: rgba(243, 242, 238, .97);
   border-bottom: 1px solid var(--mist);
   transition: box-shadow var(--dur-2) var(--ease-std), background-color var(--dur-2) var(--ease-std);
}
.site-header.is-condensed { box-shadow: 0 1px 0 rgba(11, 11, 13, .04), 0 10px 24px -18px rgba(11, 11, 13, .35); background: var(--paper); }

.site-header__top {
   display: grid;
   grid-template-columns: minmax(0, 1fr) auto;
   align-items: center;
   gap: var(--space-4);
   min-height: 64px;
   padding-block: .65rem;
   transition: padding var(--dur-2) var(--ease-std), min-height var(--dur-2) var(--ease-std);
}
.site-header__meta, .site-header__aside { display: none; }

.brand {
   display: inline-flex;
   align-items: center;
   min-height: 44px;
   justify-self: start;
   text-decoration: none;
   outline-offset: 6px;
   transition: opacity var(--dur-1) var(--ease-std);
}
.brand img {
   height: clamp(1.2rem, .9rem + 1.6vw, 2.1rem);
   width: auto;
   max-width: 100%;
   transition: height var(--dur-2) var(--ease-std);
}
.brand:hover { opacity: .82; }
.brand:active { opacity: .66; }
.brand:focus-visible { outline: 2px solid var(--signal); outline-offset: 6px; }

.nav-toggle {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: .55rem;
   min-height: 44px;
   min-width: 44px;
   padding: .5rem .8rem;
   border: 1px solid var(--frame);
   background: transparent;
   color: var(--ink);
   font-family: var(--tipe-ff5);

   font-size: var(--fs-mono-xs);
   font-weight: 500;
   letter-spacing: var(--track-caps);
   text-transform: uppercase;
   transition: background-color var(--dur-1) var(--ease-std), color var(--dur-1) var(--ease-std), border-color var(--dur-1) var(--ease-std);
}
.nav-toggle .icon { width: 1.1rem; height: 1.1rem; }
.nav-toggle .icon--close { display: none; }
.nav-toggle[aria-expanded='true'] .icon--menu { display: none; }
.nav-toggle[aria-expanded='true'] .icon--close { display: block; }
.nav-toggle:hover { background: var(--ink); color: var(--paper); }
.nav-toggle:active { background: var(--signal); border-color: var(--signal); color: var(--signal-ink); }
.nav-toggle:focus-visible { outline: 2px solid var(--signal); outline-offset: 3px; }
html:not(.js) .nav-toggle { display: none; }

.site-nav {
   border-top: 1px solid var(--mist);
   background: var(--paper);
}
.site-nav__inner {
   display: flex;
   flex-direction: column;
   padding-block: .5rem 1.25rem;
}
.site-nav__list { display: flex; flex-direction: column; list-style: none; margin: 0; padding: 0; }
.site-nav__list > li { min-width: 0; border-bottom: 1px solid var(--paper-3); }
.site-nav__hub { display: none; }
.site-nav__link {
   position: relative;
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 1rem;
   min-height: 52px;
   padding: .7rem .25rem;
   font-family: var(--tipe-604);
   font-size: 1.2rem;
   font-weight: 500;
   letter-spacing: -.01em;
   color: var(--ink);
   text-decoration: none;

   transition: color var(--dur-1) var(--ease-std), background-color var(--dur-1) var(--ease-std), padding var(--dur-2) var(--ease-std);
}
.site-nav__link .site-nav__n {
   font-family: var(--tipe-ff5);
   font-size: var(--fs-mono-xs);
   font-weight: 400;
   letter-spacing: var(--track-mono);
   color: var(--steel);
}
.site-nav__link:hover { color: var(--signal-deep); background: var(--paper-2); padding-left: .6rem; }
.site-nav__link:active { background: var(--paper-3); color: var(--ink); }
.site-nav__link:focus-visible { outline: 2px solid var(--signal); outline-offset: -2px; }
.site-nav__link[aria-current="page"] { color: var(--ink); }
.site-nav__link[aria-current="page"]::before {
   content: "";
   position: absolute;
   left: 0;
   bottom: -1px;
   width: 2.5rem;
   height: 1px;
   background: var(--signal);
}
.site-nav__cta { display: flex; margin-top: 1.25rem; }
.site-nav__cta .btn { width: 100%; }

.js .site-nav {
   position: absolute;
   left: 0;
   right: 0;
   top: 100%;
   z-index: var(--z-nav);
   max-height: calc(100vh - 64px);
   max-height: calc(100dvh - 64px);
   overflow-y: auto;
   border-bottom: 1px solid var(--frame);
   box-shadow: var(--shadow-3);
}
.js .site-nav:not(.is-open) { display: none; }
html:not(.js) .site-nav__list { flex-direction: row; flex-wrap: wrap; gap: 0 1.25rem; }
html:not(.js) .site-nav__list > li { border-bottom: 0; }
html:not(.js) .site-nav__link { font-size: 1rem; min-height: 44px; }

@media (min-width: 1024px) {
   .site-header__top {
      grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
      min-height: 76px;
      padding-block: 1.1rem .9rem;
   }
   .site-header.is-condensed .site-header__top { min-height: 56px; padding-block: .45rem .35rem; }
   .site-header.is-condensed .brand img { height: 1.6rem; }
   .brand { justify-self: center; grid-column: 2; }
   .brand img { height: 2.1rem; }
   .site-header__meta {
      display: flex;
      align-items: center;
      gap: .6rem;
      grid-column: 1;
      grid-row: 1;
      min-width: 0;
      font-family: var(--tipe-ff5);
      font-size: var(--fs-mono-xs);
      letter-spacing: var(--track-mono);
      color: var(--steel);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
   }
   .site-header__meta .status-dot { flex: none; }
   .site-header__aside {
      display: flex;
      justify-content: flex-end;
      grid-column: 3;
      grid-row: 1;
      min-width: 0;
   }
   .nav-toggle { display: none; }

   .js .site-nav, .site-nav {
      position: static;
      display: block;
      max-height: none;
      overflow: visible;
      box-shadow: none;
      border-bottom: 0;
      background: transparent;
   }
   .js .site-nav:not(.is-open) { display: block; }
   .site-nav__inner {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
      align-items: center;
      gap: 2rem;
      padding-block: 0;
   }
   .site-nav__list,
   html:not(.js) .site-nav__list { flex-direction: row; flex-wrap: wrap; gap: 0 2.25rem; }
   .site-nav__list--left { justify-content: flex-end; }
   .site-nav__list--right { justify-content: flex-start; }
   .site-nav__list > li { border-bottom: 0; }
   .site-nav__hub {
      display: flex;
      align-items: center;
      gap: 6px;
      height: 100%;
   }
   .site-nav__hub span { display: block; width: 1px; height: 10px; background: var(--steel); }
   .site-nav__hub span:nth-child(2) { width: 5px; height: 5px; background: var(--signal); }
   .site-nav__link,
   html:not(.js) .site-nav__link {
      min-height: 44px;
      padding: .55rem 0;
      font-family: var(--tipe-ff5);
      font-size: .75rem;
      font-weight: 500;
      letter-spacing: .14em;
      text-transform: uppercase;
      justify-content: center;
   }
   .site-nav__link .site-nav__n { display: none; }
   .site-nav__link::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      bottom: 8px;
      height: 1px;
      background: var(--ink);
      transform: scaleX(0);
      transform-origin: left center;
      transition: transform var(--dur-2) var(--ease-std);
   }
   .site-nav__link:hover { background: transparent; padding-left: 0; color: var(--ink); }
   .site-nav__link:hover::after { transform: scaleX(1); }
   .site-nav__link:active { color: var(--signal-deep); background: transparent; }
   .site-nav__link:focus-visible { outline-offset: 2px; }
   .site-nav__link[aria-current="page"]::before { left: 0; right: 0; width: auto; bottom: 8px; }
   .site-nav__cta { display: none; }
}

.status-dot {
   position: relative;
   display: inline-block;
   width: 7px;
   height: 7px;
   background: var(--signal);
   flex: none;

}
.status-dot::after {
   content: "";
   position: absolute;
   inset: -3px;
   border: 1px solid var(--signal);
   opacity: .45;
}

.btn {
   position: relative;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: .7em;
   min-height: 48px;
   max-width: 100%;
   padding: .75rem 1.35rem;
   border: 1px solid var(--ink);
   background: var(--ink);
   color: var(--paper);
   font-family: var(--tipe-ff5);
   font-size: .8125rem;
   font-weight: 500;
   line-height: 1.25;
   letter-spacing: .08em;
   text-transform: uppercase;
   text-align: center;
   text-decoration: none;
   white-space: normal;
   overflow-wrap: anywhere;
   cursor: pointer;
   border-radius: 0;
   transition: background-color var(--dur-1) var(--ease-std), color var(--dur-1) var(--ease-std), border-color var(--dur-1) var(--ease-std), box-shadow var(--dur-2) var(--ease-std), transform var(--dur-1) var(--ease-std);
}
.btn .icon { width: 1rem; height: 1rem; transition: transform var(--dur-2) var(--ease-std); }
.btn:hover { background: var(--carbon-4); border-color: var(--carbon-4); box-shadow: 4px 4px 0 var(--signal); transform: translate(-1px, -1px); }
.btn:hover .icon { transform: translateX(3px); }
.btn:active { transform: translate(1px, 1px); box-shadow: 0 0 0 var(--signal); background: var(--ink); }
.btn:focus-visible { outline: 2px solid var(--signal); outline-offset: 3px; }
.btn[disabled], .btn[aria-disabled='true'] { opacity: .5; cursor: not-allowed; box-shadow: none; transform: none; }

.btn--signal { background: var(--signal); border-color: var(--signal); color: var(--signal-ink); }
.btn--signal:hover { background: #f05a2f; border-color: #f05a2f; box-shadow: 4px 4px 0 var(--ink); }
.btn--signal:active { background: var(--signal-deep); border-color: var(--signal-deep); color: var(--white); }

.btn--line { background: transparent; color: var(--ink); border-color: var(--frame); }
.btn--line:hover { background: var(--paper-2); color: var(--ink); border-color: var(--ink); box-shadow: 4px 4px 0 var(--ink); }
.btn--line:active { background: var(--paper-3); box-shadow: none; }

.dark .btn { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.dark .btn:hover { background: var(--white); border-color: var(--white); box-shadow: 4px 4px 0 var(--signal); }
.dark .btn:active { background: var(--mist); box-shadow: none; }
.dark .btn--line { background: transparent; color: var(--paper); border-color: var(--steel); }
.dark .btn--line:hover { background: var(--carbon-3); border-color: var(--paper); color: var(--paper); box-shadow: 4px 4px 0 var(--signal); }
.dark .btn--line:active { background: var(--carbon-4); box-shadow: none; }
.dark .btn--signal { background: var(--signal); border-color: var(--signal); color: var(--signal-ink); }

.btn--sm { min-height: 44px; padding: .55rem 1rem; font-size: .75rem; }
.btn--block { width: 100%; }
.btn-row { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: center; }
.btn-row > * { min-width: 0; }

.link-arrow {
   display: inline-flex;
   align-items: center;
   gap: .5em;
   min-height: 44px;
   padding-block: .4rem;
   font-family: var(--tipe-ff5);
   font-size: .8125rem;
   font-weight: 500;
   letter-spacing: .06em;
   text-transform: uppercase;
   color: var(--text);
   text-decoration: underline;
   text-decoration-color: var(--signal);
   text-decoration-thickness: 1px;
   text-underline-offset: .45em;
   transition: color var(--dur-1) var(--ease-std), text-decoration-color var(--dur-1) var(--ease-std), text-underline-offset var(--dur-2) var(--ease-std);
}
.link-arrow .icon { width: 1rem; height: 1rem; transition: transform var(--dur-2) var(--ease-std); }
.link-arrow:hover { color: var(--signal-deep); text-underline-offset: .3em; }
.link-arrow:hover .icon { transform: translate(2px, -2px); }
.link-arrow:active { color: var(--ink); text-decoration-color: var(--ink); }
.link-arrow:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.dark .link-arrow:hover { color: #ff7a52; }
.dark .link-arrow:active { color: var(--paper); text-decoration-color: var(--paper); }

.tag {
   display: inline-flex;
   align-items: center;
   gap: .4em;
   min-height: 28px;
   max-width: 100%;
   padding: .25rem .6rem;
   border: 1px solid var(--rule-strong);
   font-family: var(--tipe-ff5);
   font-size: var(--fs-mono-xs);
   font-weight: 500;
   letter-spacing: .08em;
   text-transform: uppercase;
   line-height: 1.3;
   color: var(--text);
   background: transparent;
   overflow-wrap: anywhere;
}
.tag--signal { border-color: var(--signal); color: var(--signal-deep); }
.tag--solid { background: var(--ink); color: var(--paper); border-color: var(--ink); }
a.tag, button.tag { min-height: 44px; text-decoration: none; cursor: pointer; transition: background-color var(--dur-1) var(--ease-std), color var(--dur-1) var(--ease-std), border-color var(--dur-1) var(--ease-std); }
a.tag:hover, button.tag:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
a.tag:active, button.tag:active, button.tag[aria-pressed='true'] { background: var(--signal); color: var(--signal-ink); border-color: var(--signal); }
a.tag:focus-visible, button.tag:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }

.frame {
   --fc: var(--bracket-c);
   position: relative;
   padding: calc(var(--bracket) + .75rem) clamp(1rem, .6rem + 2vw, 2.25rem) clamp(1.25rem, .8rem + 2vw, 2.25rem);
   isolation: isolate;
}
.frame::before {
   content: "";
   position: absolute;
   inset: 0;
   pointer-events: none;
   z-index: 1;
   background:
      linear-gradient(var(--fc), var(--fc)) top left / var(--bracket) var(--bracket-w) no-repeat,
      linear-gradient(var(--fc), var(--fc)) top left / var(--bracket-w) var(--bracket) no-repeat,
      linear-gradient(var(--fc), var(--fc)) top right / var(--bracket) var(--bracket-w) no-repeat,
      linear-gradient(var(--fc), var(--fc)) top right / var(--bracket-w) var(--bracket) no-repeat,
      linear-gradient(var(--fc), var(--fc)) bottom left / var(--bracket) var(--bracket-w) no-repeat,
      linear-gradient(var(--fc), var(--fc)) bottom left / var(--bracket-w) var(--bracket) no-repeat,
      linear-gradient(var(--fc), var(--fc)) bottom right / var(--bracket) var(--bracket-w) no-repeat,
      linear-gradient(var(--fc), var(--fc)) bottom right / var(--bracket-w) var(--bracket) no-repeat;
}
.frame--ticks::after {
   content: "";
   position: absolute;
   left: calc(var(--bracket) + 8px);
   right: calc(var(--bracket) + 8px);
   bottom: 0;
   height: 6px;
   pointer-events: none;
   background-image: repeating-linear-gradient(90deg, var(--fc) 0 1px, transparent 1px 24px);
   opacity: .5;
}
.frame--boxed { background: var(--ground-raised); box-shadow: var(--shadow-2); }
.dark .frame, .frame--dark { --fc: var(--mist); }
.frame--dark { background: var(--ink); color: var(--paper); }

.frame__status {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: .35rem 1rem;
   min-height: 22px;
   padding-bottom: .55rem;
   margin-bottom: clamp(1rem, .7rem + 1.4vw, 1.75rem);
   border-bottom: 1px solid var(--signal);
   font-family: var(--tipe-ff5);
   font-size: var(--fs-mono-xs);
   font-weight: 500;
   letter-spacing: var(--track-caps);
   text-transform: uppercase;
   color: var(--text);
   line-height: 1.4;
}
.frame__label { display: inline-flex; align-items: center; gap: .6rem; min-width: 0; overflow-wrap: anywhere; }
.frame__meta { margin-left: auto; color: var(--text-3); font-weight: 400; min-width: 0; overflow-wrap: anywhere; }
.frame__body { position: relative; min-width: 0; }
.frame__corner-label {
   position: absolute;
   right: calc(var(--bracket) + 8px);
   bottom: -.55rem;
   z-index: 2;
   padding: 0 .4rem;
   background: var(--ground);
   font-family: var(--tipe-ff5);
   font-size: .625rem;
   letter-spacing: var(--track-caps);
   color: var(--text-3);
   text-transform: uppercase;
}

.figures {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 0;
}
.figure-stat {
   min-width: 0;
   padding: 1.1rem .9rem 1.2rem 0;
   border-top: 1px solid var(--rule);
}
.figure-stat:nth-child(2n) { padding-left: .9rem; border-left: 1px solid var(--rule); }
.figure-stat__value {
   display: flex;
   align-items: baseline;
   flex-wrap: wrap;
   gap: .15em .3em;
   font-family: var(--tipe-ff5);
   font-size: clamp(1.6rem, 1.1rem + 2.6vw, 3.25rem);
   font-weight: 500;
   letter-spacing: -.04em;
   line-height: 1;
   font-variant-numeric: tabular-nums slashed-zero;
   color: var(--text);
}
.figure-stat__unit { font-size: .38em; letter-spacing: .06em; text-transform: uppercase; color: var(--signal-deep); font-weight: 500; }
.dark .figure-stat__unit { color: var(--signal); }
.figure-stat__label { margin-top: .65rem; font-size: var(--fs-small); line-height: 1.45; color: var(--text-2); max-width: 26ch; }
@media (min-width: 900px) {
   .figures { grid-template-columns: repeat(4, minmax(0, 1fr)); }
   .figure-stat { padding: 1.25rem 1.25rem 1.4rem; border-left: 1px solid var(--rule); }
   .figure-stat:first-child { border-left: 0; padding-left: 0; }
   .figure-stat:nth-child(2n) { padding-left: 1.25rem; }
}

.opener {
   position: relative;
   display: grid;
   gap: .9rem;
   padding-top: 1.1rem;
   margin-bottom: clamp(1.75rem, 1.2rem + 2vw, 3rem);
}
.opener::before {
   content: "";
   position: absolute;
   top: 0;
   left: 0;
   width: var(--bracket);
   height: var(--bracket);
   border-top: 1px solid var(--bracket-c);
   border-left: 1px solid var(--bracket-c);
}
.opener__status {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: .3rem .9rem;
   padding-left: calc(var(--bracket) + .6rem);
   font-family: var(--tipe-ff5);
   font-size: var(--fs-mono-xs);
   letter-spacing: var(--track-caps);
   text-transform: uppercase;
   color: var(--text-3);
}
.opener__status b { font-weight: 500; color: var(--text); }
.opener__rule { display: block; flex: 1 1 3rem; min-width: 2rem; height: 1px; background: linear-gradient(90deg, var(--signal) 0 2.5rem, var(--rule) 2.5rem); }
.opener__title { max-width: 22ch; }

.num-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule-strong); }
.num-list__item {
   display: grid;
   grid-template-columns: 2.75rem minmax(0, 1fr);
   gap: .25rem 1rem;
   padding: 1.5rem 0 1.65rem;
   border-bottom: 1px solid var(--rule);
}
.num-list__n {
   grid-row: span 2;
   padding-top: .35rem;
   font-family: var(--tipe-ff5);
   font-size: var(--fs-mono);
   font-weight: 500;
   color: var(--signal-deep);
   font-variant-numeric: tabular-nums;
}
.dark .num-list__n { color: var(--signal); }
.num-list__title { font-family: var(--tipe-604); font-size: var(--fs-h3); font-weight: 500; letter-spacing: -.015em; line-height: 1.2; }
.num-list__title a { text-decoration: none; background: linear-gradient(var(--signal), var(--signal)) left bottom / 0 1px no-repeat; transition: background-size var(--dur-2) var(--ease-std), color var(--dur-1) var(--ease-std); }
.num-list__title a:hover { background-size: 100% 1px; }
.num-list__title a:active { color: var(--signal-deep); }
.num-list__title a:focus-visible { outline: 2px solid var(--signal); outline-offset: 3px; }
.num-list__body { color: var(--text-2); max-width: 60ch; }
.num-list__meta { grid-column: 2; margin-top: .5rem; font-family: var(--tipe-ff5); font-size: var(--fs-mono-xs); letter-spacing: var(--track-mono); color: var(--text-3); }
@media (min-width: 900px) {
   .num-list__item { grid-template-columns: 5rem minmax(0, 15rem) minmax(0, 1fr); gap: 1.75rem; padding: 2rem 0 2.15rem; }
   .num-list__n { grid-row: auto; padding-top: .5rem; }
   .num-list__meta { grid-column: 3; margin-top: -1rem; }
}

.pullquote {
   position: relative;
   margin: 0;
   padding: clamp(2rem, 1.4rem + 3vw, 4rem) 0;
   border-top: 1px solid var(--rule-strong);
   border-bottom: 1px solid var(--rule);
}
.pullquote__mark { display: block; width: 2rem; height: 2rem; color: var(--signal); margin-bottom: 1.25rem; }
.pullquote__text {
   font-family: var(--tipe-604);
   font-size: var(--fs-quote);
   font-weight: 500;
   line-height: 1.1;
   letter-spacing: -.028em;
   max-width: 24ch;
   text-wrap: balance;
   hanging-punctuation: first last;
   quotes: "\201C" "\201D";
}
.pullquote__text::before { content: open-quote; margin-left: -.42em; color: var(--signal); }
.pullquote__text::after { content: close-quote; color: var(--signal); }
.pullquote__cite {
   display: flex;
   align-items: center;
   gap: .75rem;
   margin-top: 1.75rem;
   font-family: var(--tipe-ff5);
   font-size: var(--fs-mono-xs);
   font-style: normal;
   letter-spacing: var(--track-caps);
   text-transform: uppercase;
   color: var(--text-3);
}
.pullquote__cite::before { content: ""; width: 2.5rem; height: 1px; background: var(--signal); flex: none; }
@media (max-width: 480px) { .pullquote__text::before { margin-left: 0; } }

.media { margin: 0; min-width: 0; }
.media__frame {
   position: relative;
   overflow: hidden;
   background: var(--carbon-3);
}
.media__frame img { width: 100%; height: 100%; object-fit: cover; }
.media--wide .media__frame { aspect-ratio: 16 / 9; }
.media--photo .media__frame { aspect-ratio: 3 / 2; }
.media--band .media__frame { aspect-ratio: 32 / 9; }
.media__cap {
   display: grid;
   grid-template-columns: auto minmax(0, 1fr);
   gap: .2rem 1rem;
   padding-top: .75rem;
   margin-top: 0;
   border-top: 1px solid var(--rule);
   font-size: var(--fs-small);
   line-height: 1.45;
   color: var(--text-2);
   max-width: 72ch;
}
.media__fig { font-family: var(--tipe-ff5); font-size: var(--fs-mono-xs); letter-spacing: var(--track-caps); text-transform: uppercase; color: var(--text-3); padding-top: .15rem; white-space: nowrap; }
.media__frame--bracketed { outline: 1px solid var(--rule); outline-offset: 8px; }

.spec-table {
   width: 100%;
   min-width: 34rem;
   font-size: var(--fs-small);
   font-variant-numeric: tabular-nums;
}
.spec-table caption {
   caption-side: top;
   text-align: left;
   padding-bottom: .8rem;
   font-family: var(--tipe-ff5);
   font-size: var(--fs-mono-xs);
   letter-spacing: var(--track-caps);
   text-transform: uppercase;
   color: var(--text-3);
}
.spec-table th, .spec-table td {
   text-align: left;
   vertical-align: top;
   padding: .8rem 1rem .8rem 0;
   border-bottom: 1px solid var(--rule);
}
.spec-table thead th {
   border-bottom: 1px solid var(--rule-strong);
   font-family: var(--tipe-ff5);
   font-size: var(--fs-mono-xs);
   font-weight: 500;
   letter-spacing: var(--track-caps);
   text-transform: uppercase;
   color: var(--text-3);
   white-space: nowrap;
}
.spec-table tbody th { font-family: var(--tipe-604); font-weight: 500; color: var(--text); }
.spec-table td.num, .spec-table td .num, .spec-table .mono { font-family: var(--tipe-ff5); font-size: .8125rem; }
.spec-table td.num { text-align: right; white-space: nowrap; }
.spec-table th:last-child, .spec-table td:last-child { padding-right: 0; }
.spec-table tbody tr { transition: background-color var(--dur-1) var(--ease-std); }
.spec-table tbody tr:hover { background: rgba(201, 202, 199, .22); }
.dark .spec-table tbody tr:hover { background: rgba(255, 255, 255, .04); }
.spec-table .yes { color: var(--text); }
.spec-table .yes::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: .5rem; background: var(--signal); vertical-align: .1em; }
.spec-table .no { color: var(--text-3); }

.tabs__list { display: flex; flex-wrap: wrap; gap: 0; border-bottom: 1px solid var(--rule-strong); }
.tabs__tab {
   position: relative;
   min-height: 44px;
   padding: .6rem 1.1rem;
   font-family: var(--tipe-ff5);
   font-size: .75rem;
   font-weight: 500;
   letter-spacing: .1em;
   text-transform: uppercase;
   color: var(--text-3);
   border: 1px solid transparent;
   border-bottom: 0;
   margin-bottom: -1px;
   transition: color var(--dur-1) var(--ease-std), background-color var(--dur-1) var(--ease-std), border-color var(--dur-1) var(--ease-std);
}
.tabs__tab:hover { color: var(--text); background: var(--paper-2); }
.tabs__tab:active { background: var(--paper-3); }
.tabs__tab:focus-visible { outline: 2px solid var(--signal); outline-offset: -2px; }
.tabs__tab[aria-selected='true'] { color: var(--text); background: var(--ground); border-color: var(--rule-strong); box-shadow: inset 0 2px 0 var(--signal); }
.tabs__panel { padding-top: 1.75rem; }

.crumbs { display: flex; flex-wrap: wrap; gap: .25rem .6rem; list-style: none; margin: 0; padding: 0; font-family: var(--tipe-ff5); font-size: var(--fs-mono-xs); letter-spacing: var(--track-caps); text-transform: uppercase; color: var(--text-3); }
.crumbs li { display: inline-flex; align-items: center; gap: .6rem; }
.crumbs li + li::before { content: '/'; color: var(--mist); }
.crumbs a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; transition: color var(--dur-1) var(--ease-std); }
.crumbs a:hover { color: var(--text); text-decoration: underline; text-decoration-color: var(--signal); }
.crumbs a:active { color: var(--signal-deep); }
.crumbs a:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }

.form { display: grid; gap: 1.5rem; }
.form__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem 1.5rem; }
.form__grid > * { min-width: 0; }
@media (min-width: 720px) {
   .form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
   .form__grid .field--full { grid-column: 1 / -1; }
}
.fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.fieldset legend, .field__label {
   display: flex;
   flex-wrap: wrap;
   align-items: baseline;
   gap: .25rem .6rem;
   padding: 0;
   margin-bottom: .5rem;
   font-family: var(--tipe-ff5);
   font-size: var(--fs-mono-xs);
   font-weight: 500;
   letter-spacing: var(--track-caps);
   text-transform: uppercase;
   color: var(--text);
}
.field { display: flex; flex-direction: column; min-width: 0; }
.field__opt { font-weight: 400; letter-spacing: var(--track-mono); text-transform: none; color: var(--text-3); }
.field__hint { margin-top: .4rem; font-size: var(--fs-xs); color: var(--text-3); line-height: 1.45; }
.field__input,
.form input[type='text'], .form input[type='email'], .form input[type="tel"], .form input[type="number"], .form input[type='search'], .form select, .form textarea {
   width: 100%;
   min-height: 48px;
   padding: .7rem .85rem;
   border: 1px solid var(--steel);
   border-radius: 0;
   background: var(--white);
   color: var(--ink);
   font-family: var(--tipe-8e8);
   font-size: 1rem;
   line-height: 1.4;
   appearance: none;
   -webkit-appearance: none;
   transition: border-color var(--dur-1) var(--ease-std), box-shadow var(--dur-1) var(--ease-std), background-color var(--dur-1) var(--ease-std);
}
.form textarea, textarea.field__input { min-height: 8.5rem; }
.form select, select.field__input {
   padding-right: 2.5rem;
   background-image: linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%);
   background-position: calc(100% - 1.15rem) 52%, calc(100% - .8rem) 52%;
   background-size: 5px 5px, 5px 5px;
   background-repeat: no-repeat;
}
.field__input:hover, .form input:hover, .form select:hover, .form textarea:hover { border-color: var(--ink); background-color: #fff; }
.field__input:focus-visible, .form input:focus-visible, .form select:focus-visible, .form textarea:focus-visible,
.field__input:focus, .form input:focus, .form select:focus, .form textarea:focus {
   outline: none;
   border-color: var(--ink);
   box-shadow: inset 0 -2px 0 var(--signal), 0 0 0 3px var(--signal-soft);
}
.field__input:active, .form input:active, .form textarea:active { border-color: var(--frame); }
.field__input::placeholder, .form input::placeholder, .form textarea::placeholder { color: #8d8f96; }
.field__error { display: none; margin-top: .45rem; font-size: var(--fs-small); color: var(--error); line-height: 1.4; }
.field__error::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: .5rem; background: var(--error); vertical-align: .12em; }
.field.is-invalid .field__error, .field__error.is-visible { display: block; }
.field.is-invalid .field__input, .field.is-invalid input, .field.is-invalid select, .field.is-invalid textarea, [aria-invalid='true'] { border-color: var(--error); box-shadow: inset 3px 0 0 var(--error); }
.dark .field__input, .dark .form input[type='text'], .dark .form input[type='email'], .dark .form input[type="tel"], .dark .form input[type="number"], .dark .form select, .dark .form textarea { background: var(--carbon-2); color: var(--paper); border-color: var(--gunmetal); }
.dark .field__input:hover, .dark .form input:hover, .dark .form select:hover, .dark .form textarea:hover { border-color: var(--mist); background-color: var(--carbon-3); }

.check, .choice {
   position: relative;
   display: flex;
   align-items: flex-start;
   gap: .75rem;
   min-height: 44px;
   padding: .65rem .2rem;
   cursor: pointer;
   font-size: var(--fs-small);
   line-height: 1.5;
   color: var(--text-2);
}
.check input, .choice input {
   flex: none;
   width: 20px;
   height: 20px;
   margin: .1rem 0 0;
   border: 1px solid var(--steel);
   background: var(--white);
   appearance: none;
   -webkit-appearance: none;
   border-radius: 0;
   cursor: pointer;
   display: grid;
   place-content: center;
   transition: border-color var(--dur-1) var(--ease-std), background-color var(--dur-1) var(--ease-std), box-shadow var(--dur-1) var(--ease-std);
}
.choice input[type="radio"]::before, .check input::before, .choice input[type="checkbox"]::before {
   content: "";
   width: 10px;
   height: 10px;
   background: var(--signal);
   transform: scale(0);
   transition: transform var(--dur-1) var(--ease-std);
}
.check input:checked::before, .choice input:checked::before { transform: scale(1); }
.check input:checked, .choice input:checked { border-color: var(--ink); }
.check:hover input, .choice:hover input { border-color: var(--ink); box-shadow: 0 0 0 3px var(--signal-soft); }
.check:active input, .choice:active input { background: var(--paper-3); }
.check input:focus-visible, .choice input:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.check a { color: var(--text); text-decoration-color: var(--signal); }
.choice-group { display: flex; flex-wrap: wrap; gap: .5rem; }
.choice-group .choice {
   flex: 1 1 9rem;
   min-width: 0;
   align-items: center;
   padding: .6rem .8rem;
   border: 1px solid var(--rule);
   background: var(--ground-raised);
   color: var(--text);
   transition: border-color var(--dur-1) var(--ease-std), background-color var(--dur-1) var(--ease-std);
}
.choice-group .choice input { margin-top: 0; }
.choice-group .choice:hover { border-color: var(--ink); }
.choice-group .choice:has(input:checked) { border-color: var(--ink); box-shadow: inset 0 -2px 0 var(--signal); }
.form__honey { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.form__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.form__note { font-size: var(--fs-xs); color: var(--text-3); max-width: 48ch; }
.form__status {
   display: none;
   padding: .9rem 1rem;
   border: 1px solid var(--rule-strong);
   border-left: 3px solid var(--ink);
   font-size: var(--fs-small);
   line-height: 1.5;
   background: var(--ground-raised);
}
.form__status.is-visible, .form__status:not(:empty) { display: block; }
.form__status.is-ok { border-left-color: var(--ok); }
.form__status.is-error { border-left-color: var(--error); color: var(--error); }
.form.is-sending .btn[type="submit"] { opacity: .6; pointer-events: none; }

.contact-lines { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.contact-lines li { border-top: 1px solid var(--rule); }
.contact-lines li:last-child { border-bottom: 1px solid var(--rule); }
.contact-lines a, .contact-lines span.contact-lines__row {
   display: grid;
   grid-template-columns: 1.5rem minmax(0, 1fr);
   gap: .75rem;
   align-items: center;
   min-height: 52px;
   padding: .7rem 0;
   text-decoration: none;
   overflow-wrap: anywhere;
   transition: color var(--dur-1) var(--ease-std), padding var(--dur-2) var(--ease-std);
}
.contact-lines .icon { color: var(--signal-deep); }
.dark .contact-lines .icon { color: var(--signal); }
.contact-lines a:hover { color: var(--signal-deep); padding-left: .35rem; }
.contact-lines a:active { color: var(--text); }
.contact-lines a:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }

.site-footer {
   background: var(--ink);
   color: var(--paper);
   border-top: 1px solid var(--frame);
   text-align: center;
   padding-top: clamp(2rem, 1.5rem + 2vw, 3rem);
}
.site-footer__stack { display: flex; flex-direction: column; align-items: center; gap: clamp(.9rem, .7rem + .8vw, 1.4rem); }
.site-footer__stack > * { min-width: 0; max-width: 100%; }
.site-footer .brand img { height: clamp(1.5rem, 1.1rem + 1.6vw, 2.5rem); }
.site-footer .brand:focus-visible { outline-offset: 8px; }
.site-footer__line { max-width: 44ch; margin-inline: auto; font-size: var(--fs-small); color: #b4b5b2; line-height: 1.6; }
.site-footer__status {
   display: inline-flex;
   flex-wrap: wrap;
   justify-content: center;
   align-items: center;
   gap: .4rem 1rem;
   padding: .55rem 1rem;
   border-top: 1px solid var(--signal);
   border-bottom: 1px solid var(--gunmetal);
   font-family: var(--tipe-ff5);
   font-size: var(--fs-mono-xs);
   letter-spacing: var(--track-caps);
   text-transform: uppercase;
   color: var(--steel-on-dark);
}
.site-footer__nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 1.6rem; list-style: none; margin: 0; padding: 0; }
.site-footer__nav a, .legal-row a, .legal-row button {
   display: inline-flex;
   align-items: center;
   min-height: 44px;
   padding: .3rem 0;
   color: var(--paper);
   text-decoration: none;
   background: linear-gradient(var(--signal), var(--signal)) center calc(100% - 8px) / 0 1px no-repeat;
   transition: color var(--dur-1) var(--ease-std), background-size var(--dur-2) var(--ease-std);
}
.site-footer__nav a { font-family: var(--tipe-604); font-size: 1.05rem; font-weight: 500; letter-spacing: -.01em; }
.site-footer__nav a:hover, .legal-row a:hover, .legal-row button:hover { background-size: 100% 1px; color: var(--white); }
.site-footer__nav a:active, .legal-row a:active, .legal-row button:active { color: var(--signal); }
.site-footer__nav a:focus-visible, .legal-row a:focus-visible, .legal-row button:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.site-footer__modules { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; list-style: none; margin: 0; padding: 0; }
.site-footer__modules a {
   display: inline-flex;
   align-items: center;
   min-height: 44px;
   padding: .4rem .8rem;
   border: 1px solid var(--gunmetal);
   font-family: var(--tipe-ff5);
   font-size: var(--fs-mono-xs);
   letter-spacing: .1em;
   text-transform: uppercase;
   color: #c7c8c4;
   text-decoration: none;
   transition: border-color var(--dur-1) var(--ease-std), color var(--dur-1) var(--ease-std), background-color var(--dur-1) var(--ease-std);
}
.site-footer__modules a:hover { border-color: var(--paper); color: var(--paper); background: var(--carbon-3); }
.site-footer__modules a:active { border-color: var(--signal); color: var(--signal); }
.site-footer__modules a:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.site-footer__contact { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0 1.5rem; font-style: normal; }
.site-footer__contact a, .site-footer__contact span {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: .6rem;
   min-height: 44px;
   color: var(--paper);
   text-decoration: none;
   overflow-wrap: anywhere;
   transition: color var(--dur-1) var(--ease-std);
}
.site-footer__contact .icon { color: var(--signal); }
.site-footer__contact .mono { font-size: .875rem; }
.site-footer__contact a:hover { color: var(--white); text-decoration: underline; text-decoration-color: var(--signal); }
.site-footer__contact a:active { color: var(--signal); }
.site-footer__contact a:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.site-footer__contact .site-footer__maplink { font-family: var(--tipe-ff5); font-size: var(--fs-mono-xs); letter-spacing: .1em; text-transform: uppercase; color: var(--steel-on-dark); }
.site-footer__base { margin-top: clamp(1.25rem, 1rem + 1vw, 2rem); border-top: 1px solid var(--gunmetal); padding-block: .75rem 1rem; }
.legal-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 1.4rem; list-style: none; margin: 0; padding: 0; }
.legal-row a, .legal-row button { font-family: var(--tipe-ff5); font-size: var(--fs-mono-xs); letter-spacing: .1em; text-transform: uppercase; color: #c7c8c4; cursor: pointer; }
.site-footer__copy { margin-top: .75rem; font-family: var(--tipe-ff5); font-size: var(--fs-mono-xs); letter-spacing: var(--track-mono); color: var(--steel-on-dark); }

.consent {
   position: fixed;
   left: 0;
   right: 0;
   bottom: 0;
   z-index: var(--z-consent);
   background: var(--ink);
   color: var(--paper);
   border-top: 1px solid var(--signal);
   box-shadow: 0 -18px 40px -24px rgba(0, 0, 0, .6);
}
.consent__inner {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: .6rem 1.25rem;
   padding-block: .7rem;
}
.consent__text { flex: 1 1 18rem; min-width: 0; margin: 0; font-size: .875rem; line-height: 1.45; color: #d9dad6; }
.consent__text a { color: var(--paper); text-decoration-color: var(--signal); transition: color var(--dur-1) var(--ease-std); }
.consent__text a:hover { color: var(--white); }
.consent__text a:active { color: var(--signal); }
.consent__text a:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.consent__actions { display: flex; gap: .5rem; flex: 0 1 auto; min-width: 0; }
.consent__actions .btn { min-height: 44px; padding: .5rem 1rem; font-size: .75rem; flex: 1 1 auto; }
@media (max-width: 520px) {
   .consent__inner { padding-block: .6rem; gap: .5rem; }
   .consent__text { flex-basis: 100%; font-size: .8125rem; }
   .consent__actions { width: 100%; }
   .consent__actions .btn { flex: 1 1 0; }
}

.chat-launcher {
   position: fixed;
   right: clamp(.75rem, .5rem + 1vw, 1.5rem);
   bottom: calc(clamp(.75rem, .5rem + 1vw, 1.5rem) + var(--consent-h, 0px));
   z-index: var(--z-chat);
   display: inline-flex;
   align-items: center;
   gap: .6rem;
   min-height: 52px;
   min-width: 52px;
   padding: .7rem 1.05rem;
   background: var(--ink);
   color: var(--paper);
   border: 1px solid var(--ink);
   box-shadow: 0 2px 0 rgba(0, 0, 0, .2), 0 14px 28px -14px rgba(11, 11, 13, .6);
   font-family: var(--tipe-ff5);
   font-size: .75rem;
   font-weight: 500;
   letter-spacing: .1em;
   text-transform: uppercase;
   cursor: pointer;
   transition: background-color var(--dur-1) var(--ease-std), border-color var(--dur-1) var(--ease-std), box-shadow var(--dur-2) var(--ease-std), transform var(--dur-1) var(--ease-std), bottom var(--dur-3) var(--ease-std);
}
.chat-launcher .icon { width: 1.25rem; height: 1.25rem; color: var(--signal); transition: color var(--dur-1) var(--ease-std); }
.chat-launcher:hover { background: var(--carbon-4); border-color: var(--signal); transform: translateY(-2px); box-shadow: 0 2px 0 rgba(0, 0, 0, .2), 4px 4px 0 var(--signal), 0 18px 30px -14px rgba(11, 11, 13, .6); }
.chat-launcher:active { transform: translateY(1px); background: var(--signal); border-color: var(--signal); color: var(--signal-ink); box-shadow: 0 1px 0 rgba(0, 0, 0, .2); }
.chat-launcher:active .icon { color: var(--signal-ink); }
.chat-launcher:focus-visible { outline: 2px solid var(--signal); outline-offset: 3px; }
.chat-launcher[aria-expanded='true'] { background: var(--paper); color: var(--ink); border-color: var(--ink); }
.chat-launcher__label { white-space: nowrap; }
.chat-launcher__badge {
   position: absolute;
   top: -8px;
   right: -8px;
   display: inline-grid;
   place-items: center;
   min-width: 22px;
   min-height: 22px;
   padding: 0 5px;
   background: var(--signal);
   color: var(--signal-ink);
   font-size: .6875rem;
   font-weight: 500;
   letter-spacing: 0;
   border: 2px solid var(--paper);
}
.chat-launcher__badge:empty, .chat-launcher__badge[data-count="0"] { display: none; }
@media (max-width: 520px) {
   .chat-launcher { padding: .7rem; }
   .chat-launcher__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

.chat-panel {
   position: fixed;
   right: clamp(.5rem, .25rem + 1vw, 1.5rem);
   bottom: calc(clamp(4.5rem, 4rem + 1vw, 5.25rem) + var(--consent-h, 0px));
   z-index: var(--z-chat);
   display: flex;
   flex-direction: column;
   width: min(24rem, calc(100vw - 1rem));
   height: min(34rem, calc(100vh - 7rem - var(--consent-h, 0px)));
   height: min(34rem, calc(100dvh - 7rem - var(--consent-h, 0px)));
   background: var(--paper);
   color: var(--ink);
   border: 1px solid var(--frame);
   box-shadow: var(--shadow-3);
}
.chat-panel[hidden] { display: none; }
.chat-panel::before {
   content: "";
   position: absolute;
   inset: -6px;
   pointer-events: none;
   background:
      linear-gradient(var(--signal), var(--signal)) top left / 14px 1px no-repeat,
      linear-gradient(var(--signal), var(--signal)) top left / 1px 14px no-repeat,
      linear-gradient(var(--frame), var(--frame)) bottom right / 14px 1px no-repeat,
      linear-gradient(var(--frame), var(--frame)) bottom right / 1px 14px no-repeat;
}
.chat-panel__head {
   display: flex;
   align-items: center;
   gap: .75rem;
   padding: .6rem .6rem .6rem 1rem;
   background: var(--ink);
   color: var(--paper);
   border-bottom: 1px solid var(--signal);
}
.chat-panel__title { flex: 1 1 auto; min-width: 0; margin: 0; font-family: var(--tipe-604); font-size: 1rem; font-weight: 500; letter-spacing: -.01em; }
.chat-panel__status { display: flex; align-items: center; gap: .5rem; font-family: var(--tipe-ff5); font-size: .625rem; letter-spacing: var(--track-caps); text-transform: uppercase; color: var(--steel-on-dark); }
.chat-panel__close {
   display: inline-grid;
   place-items: center;
   width: 44px;
   height: 44px;
   flex: none;
   color: var(--paper);
   border: 1px solid transparent;
   transition: background-color var(--dur-1) var(--ease-std), border-color var(--dur-1) var(--ease-std), color var(--dur-1) var(--ease-std);
}
.chat-panel__close:hover { background: var(--carbon-4); border-color: var(--steel); }
.chat-panel__close:active { background: var(--signal); color: var(--signal-ink); }
.chat-panel__close:focus-visible { outline: 2px solid var(--signal); outline-offset: -2px; }
.chat-log {
   flex: 1 1 auto;
   min-height: 0;
   overflow-y: auto;
   overscroll-behavior: contain;
   display: flex;
   flex-direction: column;
   gap: .65rem;
   padding: 1rem;
   background-image: repeating-linear-gradient(0deg, transparent 0 23px, rgba(110, 112, 121, .07) 23px 24px);
}
.chat-msg { max-width: 85%; padding: .6rem .8rem; font-size: .9rem; line-height: 1.45; overflow-wrap: anywhere; border: 1px solid var(--rule); background: var(--white); align-self: flex-start; }
.chat-msg--me { align-self: flex-end; background: var(--ink); color: var(--paper); border-color: var(--ink); }
.chat-msg--agent { border-left: 2px solid var(--signal); }
.chat-msg--system { align-self: center; max-width: 100%; background: transparent; border: 0; padding: .2rem; font-family: var(--tipe-ff5); font-size: .6875rem; letter-spacing: .06em; color: var(--text-3); text-align: center; }
.chat-msg--pending { opacity: .6; }
.chat-msg--failed { border-color: var(--error); box-shadow: inset 3px 0 0 var(--error); }
.chat-msg__meta { display: block; margin-top: .3rem; font-family: var(--tipe-ff5); font-size: .625rem; letter-spacing: .06em; color: var(--steel); }
.chat-msg--me .chat-msg__meta { color: var(--steel-on-dark); }
.chat-msg__retry { min-height: 32px; margin-top: .3rem; padding: .2rem .5rem; border: 1px solid var(--error); color: var(--error); font-family: var(--tipe-ff5); font-size: .6875rem; text-transform: uppercase; letter-spacing: .08em; background: var(--white); transition: background-color var(--dur-1) var(--ease-std), color var(--dur-1) var(--ease-std); }
.chat-msg__retry:hover { background: var(--error); color: var(--white); }
.chat-msg__retry:active { background: var(--ink); border-color: var(--ink); color: var(--white); }
.chat-msg__retry:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.chat-intro { display: grid; gap: .6rem; padding: .9rem 1rem; border-top: 1px solid var(--rule); background: var(--paper-2); }
.chat-intro .check { padding: .25rem 0; font-size: .8125rem; }
.chat-intro .field__input { min-height: 44px; padding: .55rem .7rem; }
.chat-form { display: flex; gap: .5rem; align-items: flex-end; padding: .7rem; border-top: 1px solid var(--rule-strong); background: var(--paper); }
.chat-input {
   flex: 1 1 auto;
   min-width: 0;
   min-height: 44px;
   max-height: 8rem;
   padding: .6rem .7rem;
   border: 1px solid var(--steel);
   border-radius: 0;
   background: var(--white);
   font-family: var(--tipe-8e8);
   font-size: 1rem;
   line-height: 1.35;
   resize: none;
   transition: border-color var(--dur-1) var(--ease-std), box-shadow var(--dur-1) var(--ease-std);
}
.chat-input:hover { border-color: var(--ink); }
.chat-input:focus, .chat-input:focus-visible { outline: none; border-color: var(--ink); box-shadow: inset 0 -2px 0 var(--signal); }
.chat-send {
   display: inline-grid;
   place-items: center;
   width: 44px;
   height: 44px;
   flex: none;
   background: var(--signal);
   color: var(--signal-ink);
   border: 1px solid var(--signal);
   transition: background-color var(--dur-1) var(--ease-std), transform var(--dur-1) var(--ease-std), box-shadow var(--dur-1) var(--ease-std);
}
.chat-send:hover { background: #f05a2f; box-shadow: 3px 3px 0 var(--ink); transform: translate(-1px, -1px); }
.chat-send:active { background: var(--signal-deep); color: var(--white); box-shadow: none; transform: translate(1px, 1px); }
.chat-send:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.chat-send[disabled] { opacity: .5; cursor: not-allowed; box-shadow: none; transform: none; }
.chat-error { padding: .5rem 1rem; font-size: .8125rem; color: var(--error); background: rgba(180, 42, 14, .06); border-top: 1px solid var(--error); }
.chat-error:empty { display: none; }
@media (max-width: 520px) {
   .chat-panel { left: .5rem; right: .5rem; width: auto; bottom: calc(4.25rem + var(--consent-h, 0px)); }
}
