.icon {
   width:1.15em;
   height:1.15em;
   flex:none;
   fill:none;
   stroke:currentColor;
   vertical-align:middle;
}
.icon--sm { width: .95em; height: .95em; }
.icon--lg { width: 1.5em; height: 1.5em; }

.skip-link {
   position:fixed;
   top:10px;
   left:10px;
   z-index:var(--z-skip);
   display:inline-flex;
   align-items:center;
   min-height:44px;
   padding:10px 18px;
   background:var(--ink);
   color:var(--white);
   font-family:var(--bega-822);
   font-size:var(--fs-meta);
   letter-spacing:.04em;
   text-decoration:none;
   transform:translateY(-160%);
   transition:transform var(--dur-base) var(--ease-out), background-color var(--dur-fast) var(--ease-out);
}
.skip-link:focus, .skip-link:focus-visible { transform: none; outline: 2px solid var(--signal); outline-offset: 2px; }
.skip-link:hover { background: var(--signal-deep); }
.skip-link:active { background: var(--signal-ink); }

.site-header { position: relative; z-index: var(--z-sidebar); }

.topbar {
   position:fixed;
   inset:0 0 auto 0;
   z-index:var(--z-topbar);
   display:none;
   align-items:center;
   justify-content:space-between;
   gap:var(--sp-3);
   min-height:var(--topbar-h);
   padding:8px var(--gutter);
   background:rgba(255, 255, 255, .97);
   border-bottom:1px solid var(--rule);
   transition:box-shadow var(--dur-base) var(--ease-out), min-height var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.site-header.is-condensed .topbar { box-shadow: var(--shadow-2); border-bottom-color: var(--rule-strong); min-height: 52px; }
.topbar__brand {
   display:inline-flex;
   align-items:center;
   gap:10px;
   min-height:44px;
   padding:4px 6px 4px 0;
   text-decoration:none;
   transition:opacity var(--dur-fast) var(--ease-out);
}
.topbar__brand img { height: 30px; width: auto; }
.topbar__brand:hover { opacity: .8; }
.topbar__brand:active { opacity: .65; }
.topbar__brand:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.topbar__code { font-family: var(--bega-822); font-size: var(--fs-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--steel); }

.nav-toggle {
   display:inline-flex;
   align-items:center;
   gap:10px;
   min-height:44px;
   padding:8px 14px;
   border:1px solid var(--ink);
   background:var(--white);
   color:var(--ink);
   font-family:var(--bega-822);
   font-size:var(--fs-meta);
   font-weight:500;
   letter-spacing:var(--track-label);
   text-transform:uppercase;
   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-instant) var(--ease-out);
}
.nav-toggle .icon { width: 18px; height: 18px; }
.nav-toggle:hover { background: var(--ink); color: var(--white); }
.nav-toggle:active { background: var(--signal-deep); border-color: var(--signal-deep); color: var(--white); transform: translateY(1px); }
.nav-toggle:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.nav-toggle[aria-expanded='true'] { background: var(--ink); color: var(--white); }

.sidebar {
   position:fixed;
   inset:0 auto 0 0;
   z-index:var(--z-sidebar);
   display:flex;
   flex-direction:column;
   width:var(--sidebar-w);
   height:100vh;
   height:100dvh;
   background:var(--white);
   border-right:1px solid var(--rule);
   overflow-y:auto;
   overscroll-behavior:contain;
   scrollbar-width:thin;
   scrollbar-color:var(--rule) transparent;
}
.sidebar::after {
   content:"";
   position:absolute;
   top:0;
   right:-1px;
   width:2px;
   height:88px;
   background:var(--signal);
   pointer-events:none;
}
.sidebar__top {
   display:flex;
   align-items:center;
   justify-content:space-between;
   gap:var(--sp-3);
   padding:26px 22px 22px;
   border-bottom:1px solid var(--rule);
}
.sidebar__brand {
   display:inline-flex;
   align-items:center;
   min-height:44px;
   text-decoration:none;
   transition:opacity var(--dur-fast) var(--ease-out);
}
.sidebar__brand img { height: 3.2rem; width: auto; }
.sidebar__brand:hover { opacity: .78; }
.sidebar__brand:active { opacity: .6; }
.sidebar__brand:focus-visible { outline: 2px solid var(--signal); outline-offset: 4px; }
.nav-close {
   display:none;
   align-items:center;
   justify-content:center;
   width:44px;
   min-height:44px;
   border:1px solid var(--rule);
   color:var(--ink);
   transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.nav-close .icon { width: 20px; height: 20px; }
.nav-close:hover { background: var(--frost); border-color: var(--ink); }
.nav-close:active { background: var(--ink); color: var(--white); }
.nav-close:focus-visible { outline: none; box-shadow: var(--focus-ring); }

.sidebar__status {
   display:flex;
   align-items:center;
   justify-content:space-between;
   gap:8px;
   padding:10px 22px;
   border-bottom:1px solid var(--rule);
   font-family:var(--bega-822);
   font-size:var(--fs-label);
   letter-spacing:var(--track-label);
   text-transform:uppercase;
   color:var(--steel);
}
.sidebar__status-dot { display: inline-flex; align-items: center; gap: 8px; color: var(--signal-ink); }
.sidebar__status-dot::before { content: ""; width: 7px; height: 7px; background: var(--signal); }

.site-nav { flex: 1 0 auto; padding: 14px 0 22px; }
.nav-list { list-style: none; margin: 0; padding: 0; counter-reset: nav; }
.nav-item { position: relative; border-bottom: 1px solid var(--frost); }
.nav-item__row { display: flex; align-items: stretch; }
.nav-link {
   position:relative;
   flex:1 1 auto;

   min-width:0;
   display:flex;
   align-items:baseline;
   gap:14px;
   min-height:48px;
   padding:12px 22px;
   color:var(--ink);
   text-decoration:none;
   font-family:var(--bega-867);
   font-size:1.06rem;
   font-weight:600;
   line-height:1.25;
   letter-spacing:var(--track-display);
   transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), padding-left var(--dur-base) var(--ease-out);
}
.nav-link::before {
   content:"";
   position:absolute;
   left:0;
   top:8px;
   bottom:8px;
   width:2px;
   background:var(--signal);
   transform:scaleY(0);
   transform-origin:top;
   transition:transform var(--dur-base) var(--ease-out);
}
.nav-num {
   flex:none;
   font-family:var(--bega-822);
   font-size:var(--fs-label);
   font-weight:500;
   letter-spacing:.04em;
   color:var(--steel);
   transition:color var(--dur-fast) var(--ease-out);
}
.nav-text { min-width: 0; overflow-wrap: anywhere; }
.nav-link:hover { background: var(--paper); padding-left: 26px; }
.nav-link:hover::before { transform: scaleY(1); }
.nav-link:hover .nav-num { color: var(--signal-ink); }
.nav-link:active { background: var(--frost); }
.nav-link:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--signal); }
.nav-link[aria-current='page'], .nav-link.is-active { background: var(--signal-wash); color: var(--signal-deep); }
.nav-link[aria-current='page']::before, .nav-link.is-active::before { transform: scaleY(1); }
.nav-link[aria-current='page'] .nav-num, .nav-link.is-active .nav-num { color: var(--signal-ink); }

.nav-sub-toggle {
   flex:none;
   display:inline-flex;
   align-items:center;
   justify-content:center;
   width:48px;
   min-height:48px;
   border-left:1px solid var(--frost);
   color:var(--steel);
   transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.nav-sub-toggle .icon { width: 16px; height: 16px; transition: transform var(--dur-base) var(--ease-out); }
.nav-sub-toggle:hover { background: var(--paper); color: var(--ink); }
.nav-sub-toggle:active { background: var(--frost); }
.nav-sub-toggle:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--signal); }
.nav-sub-toggle[aria-expanded='true'] { color: var(--signal-ink); }
.nav-sub-toggle[aria-expanded='true'] .icon { transform: rotate(180deg); }

.nav-sub {
   list-style:none;
   margin:0;
   padding:4px 0 12px;
   background:var(--paper);
   border-top:1px solid var(--frost);
}
.js .nav-sub-toggle[aria-expanded='false'] ~ .nav-sub,
.js .nav-item__row:has(.nav-sub-toggle[aria-expanded='false']) + .nav-sub { display: none; }
.nav-sub a {
   display:flex;
   align-items:center;
   gap:10px;
   min-height:40px;
   padding:8px 22px 8px 50px;
   color:var(--ink-2);
   text-decoration:none;
   font-size:var(--fs-small);

   line-height:1.3;
   transition:color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);
}
.nav-sub a::before { content: ""; width: 8px; height: 1px; background: var(--rule-strong); flex: none; transition: width var(--dur-base) var(--ease-out), background-color var(--dur-fast) var(--ease-out); }
.nav-sub a:hover { color: var(--ink); background: var(--white); }
.nav-sub a:hover::before { width: 14px; background: var(--signal); }
.nav-sub a:active { background: var(--frost); }
.nav-sub a:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--signal); }
.nav-sub a[aria-current='page'] { color: var(--signal-deep); font-weight: 600; }
.nav-sub a[aria-current='page']::before { width: 14px; height: 2px; background: var(--signal); }

.sidebar__cta { padding: 0 22px 22px; }
.sidebar__cta .btn { width: 100%; }

.sidebar__foot {
   margin-top:auto;
   padding:18px 22px 22px;
   border-top:1px solid var(--rule);
   background:var(--paper);
   background-image:var(--grid-texture);
   background-size:12px 12px;
}
.sidebar__foot .label { display: block; margin-bottom: 8px; }
.contact-line {
   display:flex;
   align-items:center;
   gap:10px;
   min-height:40px;
   padding:6px 0;
   color:var(--ink);
   text-decoration:none;
   font-family:var(--bega-822);
   font-size:var(--fs-meta);
   line-height:1.35;
   overflow-wrap:anywhere;
   transition:color var(--dur-fast) var(--ease-out);
}
.contact-line .icon { width: 15px; height: 15px; color: var(--steel); transition: color var(--dur-fast) var(--ease-out); }
a.contact-line:hover { color: var(--signal-ink); }
a.contact-line:hover .icon { color: var(--signal); }
a.contact-line:active { color: var(--signal-deep); }
a.contact-line:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.contact-line--address { align-items: flex-start; color: var(--steel); }
.contact-line--address .icon { margin-top: 2px; }

.nav-scrim {
   position:fixed;
   inset:0;
   z-index:var(--z-scrim);
   background:rgba(13, 26, 32, .48);
   opacity:0;
   visibility:hidden;
   transition:opacity var(--dur-med) var(--ease-out), visibility 0s linear var(--dur-med);
}

.site-content { margin-left: var(--sidebar-w); min-width: 0; min-height: 100vh; display: flex; flex-direction: column; }
.site-main { flex: 1 0 auto; min-width: 0; }

@media (max-width: 959.98px) {
   .topbar { display: flex; }
   .nav-close { display: inline-flex; }
   .sidebar {
      width:min(340px, 88vw);
      transform:translateX(-102%);
      visibility:hidden;
      box-shadow:none;
      transition:transform var(--dur-med) var(--ease-out), visibility 0s linear var(--dur-med), box-shadow var(--dur-med) var(--ease-out);
   }
   .sidebar.is-open, html.nav-open .sidebar, .site-header.is-open .sidebar {
      transform:none;
      visibility:visible;
      box-shadow:var(--shadow-3);
      transition:transform var(--dur-med) var(--ease-out), visibility 0s, box-shadow var(--dur-med) var(--ease-out);
   }
   html.nav-open .nav-scrim, .site-header.is-open .nav-scrim, .nav-scrim.is-visible {
      opacity:1;
      visibility:visible;
      transition:opacity var(--dur-med) var(--ease-out), visibility 0s;
   }
   .site-content { margin-left: 0; padding-top: var(--topbar-h); }
   html:not(.js) .sidebar { position: relative; transform: none; visibility: visible; width: 100%; height: auto; }
   html:not(.js) .nav-close { display: none; }
}

.btn {
   position:relative;
   display:inline-flex;
   align-items:center;
   justify-content:center;
   gap:10px;
   min-height:48px;
   max-width:100%;
   padding:13px 22px;
   border:1px solid var(--ink);
   background:var(--white);
   color:var(--ink);
   font-family:var(--bega-867);
   font-size:1rem;
   font-weight:600;
   line-height:1.2;
   letter-spacing:.01em;
   text-align:center;
   text-decoration:none;
   white-space:normal;
   overflow-wrap:anywhere;
   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-base) var(--ease-out), transform var(--dur-instant) var(--ease-out);
}
.btn .icon { width: 18px; height: 18px; transition: transform var(--dur-base) var(--ease-out); }
.btn:hover { background: var(--ink); color: var(--white); box-shadow: 4px 4px 0 var(--signal); transform: translate(-2px, -2px); }
.btn:hover .icon { transform: translateX(3px); }
.btn:active { transform: translate(0, 0); box-shadow: 0 0 0 var(--signal); background: var(--ink-2); color: var(--white); }
.btn:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.btn[disabled], .btn[aria-disabled='true'] { opacity: .5; cursor: not-allowed; transform: none; box-shadow: none; }

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

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

.btn--ghost { background: transparent; border-color: var(--rule-strong); }
.btn--ghost:hover { background: var(--white); color: var(--ink); border-color: var(--ink); box-shadow: 4px 4px 0 var(--rule); }
.btn--ghost:active { background: var(--frost); color: var(--ink); }

.surface-ink .btn--ghost, .on-ink .btn--ghost { color: var(--white); border-color: var(--rule-dark); }
.surface-ink .btn--ghost:hover, .on-ink .btn--ghost:hover { background: var(--white); color: var(--ink); border-color: var(--white); box-shadow: 4px 4px 0 var(--signal); }

.btn--sm { min-height: 44px; padding: 9px 16px; font-size: var(--fs-small); }
.btn--block { width: 100%; }

.btn-link {
   display:inline-flex;
   align-items:center;
   gap:8px;
   min-height:44px;
   padding:8px 2px;
   color:var(--signal-ink);
   font-family:var(--bega-867);
   font-weight:600;
   text-decoration:none;
   border-bottom:1px solid transparent;
   transition:color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), gap var(--dur-base) var(--ease-out);
}
.btn-link .icon { width: 16px; height: 16px; }
.btn-link:hover { color: var(--ink); border-bottom-color: var(--signal); gap: 12px; }
.btn-link:active { color: var(--signal-deep); }
.btn-link:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }

.icon-btn {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   width:44px;
   min-height:44px;
   border:1px solid var(--rule-strong);
   background:var(--white);
   color:var(--ink);
   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-instant) var(--ease-out);
}
.icon-btn .icon { width: 18px; height: 18px; }
.icon-btn:hover { background: var(--ink); color: var(--white); border-color: var(--ink); }
.icon-btn:active { background: var(--signal-deep); border-color: var(--signal-deep); color: var(--white); transform: translateY(1px); }
.icon-btn:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.icon-btn[disabled] { opacity: .4; cursor: not-allowed; background: var(--white); color: var(--ink); border-color: var(--rule); transform: none; }

.tag, .chip {
   display:inline-flex;
   align-items:center;
   gap:6px;
   min-height:30px;
   max-width:100%;
   padding:5px 10px;
   border:1px solid var(--rule);
   background:var(--white);
   color:var(--ink-2);
   font-family:var(--bega-822);
   font-size:var(--fs-label);
   font-weight:500;
   letter-spacing:.04em;
   line-height:1.3;
   text-transform:uppercase;
   overflow-wrap:anywhere;
}
.tag--signal { border-color: var(--signal); color: var(--signal-deep); background: var(--signal-wash); }
.tag--ink { background: var(--ink); color: var(--white); border-color: var(--ink); }
a.tag, button.chip, .chip--button {
   min-height:44px;
   padding:9px 14px;
   cursor:pointer;
   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);
}
a.tag:hover, button.chip:hover, .chip--button:hover { border-color: var(--ink); color: var(--ink); background: var(--paper); }
a.tag:active, button.chip:active, .chip--button:active { background: var(--frost); }
a.tag:focus-visible, button.chip:focus-visible, .chip--button:focus-visible { outline: none; box-shadow: var(--focus-ring); }
button.chip[aria-pressed='true'], .chip.is-active { background: var(--ink); color: var(--white); border-color: var(--ink); }
button.chip[aria-pressed='true']::before, .chip.is-active::before { content: ""; width: 6px; height: 6px; background: var(--signal); }

.badge {
   display:inline-flex;
   align-items:center;
   min-height:22px;
   padding:2px 7px;
   background:var(--signal);
   color:var(--ink);
   font-family:var(--bega-822);
   font-size:.68rem;
   font-weight:500;
   line-height:1.2;
}

.lockup { position: relative; display: block; max-width: 100%; font-family: var(--bega-867); font-weight: 700; line-height: .92; letter-spacing: var(--track-tight); color: var(--ink); }
.lockup__line { display: block; position: relative; z-index: 1; max-width: 100%; overflow-wrap: anywhere; }
.lockup__line--offset { padding-left: calc(100% / 12 * 4); color: inherit; }
.lockup__line--offset em, .lockup em { font-style: normal; color: var(--signal-ink); }
.lockup__rule {
   display:block;
   position:relative;
   height:2px;
   margin:.14em calc(-1 * var(--gutter)) .14em 0;
   background:var(--signal);
   transform-origin:left center;
}
.lockup__rule::before {
   content:"";
   position:absolute;
   left:0;
   top:-5px;
   width:2px;
   height:12px;
   background:var(--signal);
}
.lockup__tag {
   position:absolute;
   right:0;
   top:-1.9em;
   font-family:var(--bega-822);
   font-size:var(--fs-label);
   font-weight:500;
   letter-spacing:var(--track-label);
   text-transform:uppercase;
   color:var(--signal-ink);
   line-height:1;
}
.lockup--hero { font-size: var(--fs-hero); }
.lockup--md { font-size: var(--fs-display); }
.lockup--sm { font-size: var(--fs-h1); }
.lockup--sm .lockup__line--offset { padding-left: calc(100% / 12 * 3); }
.surface-ink .lockup, .on-ink .lockup { color: var(--white); }
.surface-ink .lockup__line--offset em, .on-ink .lockup em { color: var(--signal); }
@media (max-width: 599.98px) {
   .lockup__line--offset { padding-left: calc(100% / 12 * 2); }
   .lockup--sm .lockup__line--offset { padding-left: calc(100% / 12 * 1.5); }
}
@media (max-width: 419.98px) { .lockup__line--offset, .lockup--sm .lockup__line--offset { padding-left: 0; } }

.bracket { position: relative; padding: 18px 20px; }
.bracket::before, .bracket::after,
.bracket > .bracket__c::before, .bracket > .bracket__c::after {
   content:"";
   position:absolute;
   width:var(--bracket);
   height:var(--bracket);
   border:0 solid var(--rule-strong);
   pointer-events:none;
   transition:border-color var(--dur-base) var(--ease-out);
}
.bracket::before { top: 0; left: 0; border-top-width: var(--bracket-w); border-left-width: var(--bracket-w); }
.bracket::after { top: 0; right: 0; border-top-width: var(--bracket-w); border-right-width: var(--bracket-w); }
.bracket > .bracket__c::before { bottom: 0; left: 0; border-bottom-width: var(--bracket-w); border-left-width: var(--bracket-w); }
.bracket > .bracket__c::after { bottom: 0; right: 0; border-bottom-width: var(--bracket-w); border-right-width: var(--bracket-w); }
.bracket--signal::before, .bracket--signal::after,
.bracket--signal > .bracket__c::before, .bracket--signal > .bracket__c::after { border-color: var(--signal); }

.hud-figure { display: inline-flex; flex-direction: column; gap: 6px; min-width: 0; }
.hud-figure__value {
   font-family:var(--bega-867);
   font-size:var(--fs-figure);
   font-weight:700;
   line-height:.9;
   letter-spacing:var(--track-tight);
   font-variant-numeric:tabular-nums lining-nums;
   color:var(--ink);
}
.hud-figure__label { font-family: var(--bega-822); font-size: var(--fs-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--steel); }
.ticks {
   height:10px;
   margin-top:4px;
   background-image:
      linear-gradient(to right, var(--rule-strong) 1px, transparent 1px),
      linear-gradient(to right, var(--signal) 1px, transparent 1px);
   background-size:8px 6px, 40px 10px;
   background-repeat:repeat-x;
   background-position:0 100%, 0 100%;
   border-bottom:1px solid var(--rule-strong);
}

.module {
   position:relative;
   min-width:0;
   background:var(--white);
   border:1px solid var(--rule);
   box-shadow:var(--shadow-1);
}
.module__head {
   display:flex;
   align-items:center;
   justify-content:space-between;
   flex-wrap:wrap;
   gap:4px 14px;
   min-height:36px;
   padding:8px 16px;
   border-bottom:1px solid var(--rule);
   background:var(--paper);
   font-family:var(--bega-822);
   font-size:var(--fs-label);
   font-weight:500;
   letter-spacing:var(--track-label);
   text-transform:uppercase;
   color:var(--steel);
}
.module__head > :first-child { color: var(--ink); display: inline-flex; align-items: center; gap: 8px; }
.module__head > :first-child::before { content: ""; width: 6px; height: 6px; background: var(--signal); flex: none; }
.module__body { padding: clamp(18px, 2.4vw, 28px); }
.module__foot { padding: 12px 16px; border-top: 1px solid var(--rule); background: var(--paper); }
.module--ink { background: var(--ink-2); border-color: var(--rule-dark); color: var(--frost); }
.module--ink .module__head { background: var(--ink); border-color: var(--rule-dark); color: var(--steel-light); }
.module--ink .module__head > :first-child { color: var(--white); }

.frame { position: relative; margin: 0; min-width: 0; background: var(--white); border: 1px solid var(--rule); padding: 10px; }
.frame__head {
   display:flex;
   justify-content:space-between;
   flex-wrap:wrap;
   gap:4px 12px;
   padding:2px 2px 10px;
   font-family:var(--bega-822);
   font-size:var(--fs-label);
   letter-spacing:var(--track-label);
   text-transform:uppercase;
   color:var(--steel);
}
.frame__head strong { color: var(--ink); font-weight: 500; }
.frame__media { position: relative; overflow: hidden; background: var(--frost); }
.frame__media img { width: 100%; height: 100%; object-fit: cover; }
.frame__media--scan::after { content: ""; position: absolute; inset: 0; background: var(--scanlines); pointer-events: none; }
.frame__corner { position: absolute; width: 18px; height: 18px; border: 0 solid var(--signal); pointer-events: none; z-index: 2; }
.frame__corner--tl { top: -1px; left: -1px; border-top-width: 2px; border-left-width: 2px; }
.frame__corner--tr { top: -1px; right: -1px; border-top-width: 2px; border-right-width: 2px; }
.frame__corner--bl { bottom: -1px; left: -1px; border-bottom-width: 2px; border-left-width: 2px; }
.frame__corner--br { bottom: -1px; right: -1px; border-bottom-width: 2px; border-right-width: 2px; }
.frame figcaption, .frame__caption { padding: 10px 2px 2px; font-size: var(--fs-meta); color: var(--steel); line-height: 1.45; }

.item-card {
   position:relative;
   display:flex;
   flex-direction:column;
   min-width:0;
   background:var(--white);
   border:1px solid var(--rule);
   transition:border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);
}
.item-card__media { position: relative; aspect-ratio: 3 / 2; overflow: hidden; background: var(--frost); border-bottom: 1px solid var(--rule); }
.item-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-slow) var(--ease-out); }
.item-card__code {
   position:absolute;
   left:0;
   top:0;
   padding:5px 9px;
   background:var(--white);
   border-right:1px solid var(--rule);
   border-bottom:1px solid var(--rule);
   font-family:var(--bega-822);
   font-size:var(--fs-label);
   letter-spacing:var(--track-label);
   color:var(--ink);
}
.item-card__body { display: flex; flex-direction: column; gap: 10px; flex: 1 1 auto; padding: 18px 20px 20px; }
.item-card__title { font-size: var(--fs-h4); line-height: 1.2; }
.item-card__title a { text-decoration: none; color: inherit; }
.item-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.item-card__text { font-size: var(--fs-small); color: var(--ink-2); line-height: 1.55; }
.item-card__basis {
   margin-top:auto;
   padding-top:12px;
   border-top:1px dashed var(--rule);
   display:flex;
   justify-content:space-between;
   flex-wrap:wrap;
   gap:4px 12px;
   font-family:var(--bega-822);
   font-size:var(--fs-meta);
   color:var(--steel);
}
.item-card__basis strong { color: var(--ink); font-weight: 500; }
.item-card:hover { border-color: var(--ink); box-shadow: 6px 6px 0 var(--frost); transform: translate(-2px, -2px); }
.item-card:hover .item-card__media img { transform: scale(1.03); }
.item-card:active { transform: translate(0, 0); box-shadow: 0 0 0 var(--frost); }
.item-card:focus-within { border-color: var(--signal); box-shadow: 0 0 0 2px var(--signal); }
.item-card__title a:focus-visible { outline: none; }

.row-list { border-top: 1px solid var(--ink); }
.row-item {
   position:relative;
   display:grid;
   grid-template-columns:3.5rem minmax(0, 1fr) auto;
   align-items:center;
   gap:12px 20px;
   min-height:64px;
   padding:16px 8px;
   border-bottom:1px solid var(--rule);
   color:var(--ink);
   text-decoration:none;
   transition:background-color var(--dur-fast) var(--ease-out), padding-left var(--dur-base) var(--ease-out);
}
.row-item__num { font-family: var(--bega-822); font-size: var(--fs-meta); color: var(--steel); }
.row-item__title { font-family: var(--bega-867); font-size: var(--fs-h4); font-weight: 600; line-height: 1.2; min-width: 0; }
.row-item__meta { font-family: var(--bega-822); font-size: var(--fs-meta); color: var(--steel); text-align: right; }
.row-item .icon { color: var(--steel); transition: transform var(--dur-base) var(--ease-out), color var(--dur-fast) var(--ease-out); }
a.row-item:hover { background: var(--white); padding-left: 16px; }
a.row-item:hover .icon { color: var(--signal-ink); transform: translateX(4px); }
a.row-item:active { background: var(--frost); }
a.row-item:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--signal); }
@media (max-width: 599.98px) {
   .row-item { grid-template-columns: 2.5rem minmax(0, 1fr); }
   .row-item__meta { grid-column: 2; text-align: left; }
}

.table-wrap {
   position:relative;
   max-width:100%;
   overflow-x:auto;
   -webkit-overflow-scrolling:touch;
   border:1px solid var(--rule);
   background:var(--white);
   scrollbar-width:thin;
}
.table-wrap:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.spec-table { min-width: 560px; font-size: var(--fs-small); font-variant-numeric: tabular-nums; }
.spec-table caption {
   caption-side:top;
   text-align:left;
   padding:10px 16px;
   border-bottom:1px solid var(--rule);
   background:var(--paper);
   font-family:var(--bega-822);
   font-size:var(--fs-label);
   letter-spacing:var(--track-label);
   text-transform:uppercase;
   color:var(--steel);
}
.spec-table th, .spec-table td { padding: 12px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--frost); }
.spec-table thead th {
   font-family:var(--bega-822);
   font-size:var(--fs-label);
   font-weight:500;
   letter-spacing:var(--track-label);
   text-transform:uppercase;
   color:var(--steel);
   background:var(--white);
   border-bottom:2px solid var(--ink);
   white-space:nowrap;
}
.spec-table tbody th { font-family: var(--bega-867); font-weight: 600; color: var(--ink); }
.spec-table tbody tr:nth-child(even) { background: rgba(228, 235, 238, .45); }
.spec-table tbody tr { transition: background-color var(--dur-fast) var(--ease-out); }
.spec-table tbody tr:hover { background: var(--signal-wash); }
.spec-table td.num, .spec-table .mono { font-family: var(--bega-822); font-size: var(--fs-meta); }
.spec-table--ink { background: var(--ink); color: var(--frost); }
.spec-table--ink thead th { background: var(--ink); color: var(--steel-light); border-bottom-color: var(--signal); }
.spec-table--ink th, .spec-table--ink td { border-bottom-color: var(--rule-dark); }
.spec-table--ink tbody th { color: var(--white); }
.spec-table--ink tbody tr:nth-child(even) { background: rgba(255, 255, 255, .03); }
.spec-table--ink tbody tr:hover { background: rgba(15, 168, 153, .12); }
.surface-ink .table-wrap { border-color: var(--rule-dark); background: var(--ink); }

.form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px 20px; }
@media (min-width: 640px) {
   .form--2col { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
   .form--2col .field--full, .form--2col .form__actions, .form--2col .consent, .form--2col .form__status { grid-column: 1 / -1; }
}
.field { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.field__label {
   display:flex;
   justify-content:space-between;
   align-items:baseline;
   flex-wrap:wrap;
   gap:4px 10px;
   font-family:var(--bega-822);
   font-size:var(--fs-label);
   font-weight:500;
   letter-spacing:var(--track-label);
   text-transform:uppercase;
   color:var(--ink);
}
.field__opt { color: var(--steel); text-transform: none; letter-spacing: 0; font-size: var(--fs-meta); }
.field__hint { font-size: var(--fs-meta); color: var(--steel); line-height: 1.45; }
.input, .select, .textarea,
.field input:not([type='checkbox']):not([type='radio']), .field select, .field textarea {
   width:100%;
   min-height:48px;
   padding:11px 14px;
   border:1px solid var(--rule-strong);
   border-radius:0;
   background:var(--white);
   color:var(--ink);
   font-family:var(--bega-114);
   font-size:1rem;
   line-height:1.4;
   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);
}
.field textarea, .textarea { min-height: 128px; resize: vertical; }
.field textarea[name='spec'] { font-family: var(--bega-822); font-size: var(--fs-small); }
.field select, .select {
   padding-right:42px;
   background-image:linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%);
   background-position:calc(100% - 20px) 52%, calc(100% - 15px) 52%;
   background-size:5px 5px, 5px 5px;
   background-repeat:no-repeat;
}
.field input:hover, .field select:hover, .field textarea:hover, .input:hover, .select:hover, .textarea:hover { border-color: var(--ink); }
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible,
.input:focus-visible, .select:focus-visible, .textarea:focus-visible { outline: none; border-color: var(--signal); box-shadow: inset 0 0 0 1px var(--signal), 0 0 0 3px var(--signal-wash); }
.field input:active, .field select:active, .field textarea:active { background: var(--paper); }
.field input::placeholder, .field textarea::placeholder { color: var(--steel-light); }
.field.is-valid input, .field.is-valid textarea { border-color: var(--signal); }
.field.is-invalid input, .field.is-invalid select, .field.is-invalid textarea,
.field [aria-invalid='true'] { border-color: var(--danger); background: var(--danger-wash); box-shadow: inset 3px 0 0 var(--danger); }
.field__error { display: none; align-items: flex-start; gap: 6px; font-size: var(--fs-meta); color: var(--danger); line-height: 1.4; font-weight: 500; }
.field.is-invalid .field__error, .field__error:not(:empty) { display: flex; }
.field__error::before { content: '!'; flex: none; display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; background: var(--danger); color: var(--white); font-family: var(--bega-822); font-size: 11px; }
.field__error:empty::before { display: none; }

.consent { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: start; font-size: var(--fs-small); color: var(--ink-2); line-height: 1.5; }
.consent input[type='checkbox'], .check input[type='checkbox'] {
   appearance:none;
   -webkit-appearance:none;
   width:24px;
   height:24px;
   margin:0;
   border:1px solid var(--ink);
   background:var(--white);
   display:inline-grid;
   place-content: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);
}
.consent input[type='checkbox']::before, .check input[type='checkbox']::before { content: ""; width: 12px; height: 7px; border-left: 2px solid var(--ink); border-bottom: 2px solid var(--ink); transform: rotate(-45deg) translate(1px, -1px) scale(0); transition: transform var(--dur-fast) var(--ease-out); }
.consent input[type='checkbox']:checked, .check input[type='checkbox']:checked { background: var(--signal); border-color: var(--signal); }
.consent input[type='checkbox']:checked::before, .check input[type='checkbox']:checked::before { transform: rotate(-45deg) translate(1px, -1px) scale(1); }
.consent input[type='checkbox']:hover, .check input[type='checkbox']:hover { box-shadow: 0 0 0 4px var(--frost); }
.consent input[type='checkbox']:active, .check input[type='checkbox']:active { background: var(--frost); }
.consent input[type='checkbox']:focus-visible, .check input[type='checkbox']:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.consent label { cursor: pointer; padding-top: 1px; }
.consent a { color: var(--signal-ink); }
.consent.is-invalid input[type='checkbox'] { border-color: var(--danger); box-shadow: 0 0 0 3px var(--danger-wash); }
.consent .field__error { grid-column: 2; }

.hp-field { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }

.form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; }
.form__note { font-size: var(--fs-meta); color: var(--steel); max-width: 44ch; }
.form__status { padding: 12px 16px; border: 1px solid var(--rule); border-left-width: 3px; font-size: var(--fs-small); background: var(--white); }
.form__status:empty { display: none; }
.form__status.is-success { border-color: var(--signal); background: var(--signal-wash); color: var(--signal-deep); }
.form__status.is-error { border-color: var(--danger); background: var(--danger-wash); color: var(--danger); }
.form.is-sending .btn[type='submit'] { opacity: .65; pointer-events: none; }

.segmented { display: inline-flex; flex-wrap: wrap; border: 1px solid var(--ink); max-width: 100%; }
.segmented button, .segmented [role='tab'] {
   min-height:44px;
   padding:10px 18px;
   font-family:var(--bega-822);
   font-size:var(--fs-meta);
   font-weight:500;
   letter-spacing:var(--track-label);
   text-transform:uppercase;
   color:var(--ink);
   background:var(--white);
   border-right:1px solid var(--rule);
   transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.segmented button:last-child, .segmented [role='tab']:last-child { border-right: 0; }
.segmented button:hover, .segmented [role='tab']:hover { background: var(--frost); }
.segmented button:active, .segmented [role='tab']:active { background: var(--rule); }
.segmented button:focus-visible, .segmented [role='tab']:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--signal); }
.segmented [aria-selected='true'], .segmented [aria-pressed='true'], .segmented .is-active { background: var(--ink); color: var(--white); }
.segmented [aria-selected='true']:hover, .segmented [aria-pressed='true']:hover { background: var(--ink-2); }

.notice { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; padding: 16px 18px; border: 1px solid var(--rule); border-left: 3px solid var(--signal); background: var(--white); font-size: var(--fs-small); }
.notice .icon { color: var(--signal-ink); margin-top: 3px; }
.notice--warn { border-left-color: var(--zinc-yellow); }
.notice--warn .icon { color: #8a6c0e; }

.breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; list-style: none; margin: 0; padding: 0; font-family: var(--bega-822); font-size: var(--fs-meta); color: var(--steel); }
.breadcrumb li { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.breadcrumb li + li::before { content: '/'; color: var(--rule-strong); }
.breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; color: var(--steel); text-decoration: none; transition: color var(--dur-fast) var(--ease-out); }
.breadcrumb a:hover { color: var(--signal-ink); text-decoration: underline; text-underline-offset: .2em; }
.breadcrumb a:active { color: var(--ink); }
.breadcrumb a:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.breadcrumb [aria-current='page'] { color: var(--ink); }

.lot-label {
   position:relative;
   max-width:360px;
   padding:16px 18px 14px;
   background:var(--white);
   border:1px solid var(--ink);
   font-family:var(--bega-822);
   font-size:var(--fs-meta);
   line-height:1.5;
   color:var(--ink);
   box-shadow:6px 6px 0 var(--frost);
}
.lot-label__row { display: flex; justify-content: space-between; gap: 12px; padding: 4px 0; border-bottom: 1px dashed var(--rule); }
.lot-label__row:last-child { border-bottom: 0; }
.lot-label__row span:first-child { color: var(--steel); text-transform: uppercase; font-size: var(--fs-label); letter-spacing: var(--track-label); }
.lot-label__row span:last-child { text-align: right; min-width: 0; overflow-wrap: anywhere; }
.lot-label__head { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 8px; padding-bottom: 8px; border-bottom: 2px solid var(--ink); font-weight: 500; }

.footer { margin-top: auto; background: var(--ink); color: var(--steel-light); border-top: 2px solid var(--signal); }
.footer__inner { max-width: var(--content-max); margin-inline: auto; padding: clamp(48px, 7vw, 88px) var(--gutter) 0; }
.footer__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 36px; }
@media (min-width: 760px) { .footer__grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr); } }
.footer__grid > * { min-width: 0; }
.footer__brand { display: inline-flex; min-height: 44px; align-items: center; transition: opacity var(--dur-fast) var(--ease-out); }
.footer__brand img { height: 3.8rem; width: auto; }
.footer__brand:hover { opacity: .8; }
.footer__brand:active { opacity: .6; }
.footer__brand:focus-visible { outline: 2px solid var(--signal); outline-offset: 4px; }
.footer__tagline { margin-top: 18px; max-width: 38ch; font-family: var(--bega-867); font-size: var(--fs-h4); font-weight: 500; line-height: 1.35; color: var(--white); }
.footer__heading { margin-bottom: 12px; font-family: var(--bega-822); font-size: var(--fs-label); font-weight: 500; letter-spacing: var(--track-label); text-transform: uppercase; color: var(--steel); }
.footer__list { list-style: none; margin: 0; padding: 0; }
.footer a { color: var(--frost); }
.footer__list a, .footer__contact a {
   display:inline-flex;
   align-items:center;
   gap:10px;
   min-height:40px;
   padding:4px 0;
   text-decoration:none;
   overflow-wrap:anywhere;
   transition:color var(--dur-fast) var(--ease-out);
}
.footer__list a:hover, .footer__contact a:hover { color: var(--signal); }
.footer__list a:active, .footer__contact a:active { color: var(--white); }
.footer__list a:focus-visible, .footer__contact a:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.footer__contact { font-family: var(--bega-822); font-size: var(--fs-meta); line-height: 1.55; }
.footer__contact .icon { width: 15px; height: 15px; color: var(--signal); }
.footer__address { display: flex; gap: 10px; padding: 6px 0; font-style: normal; }
.footer__address .icon { margin-top: 3px; }
.footer__legal {
   display:flex;
   flex-wrap:wrap;
   align-items:center;
   justify-content:space-between;
   gap:12px 24px;
   margin-top:clamp(40px, 6vw, 64px);
   padding:18px 0 calc(22px + var(--cookie-h));
   border-top:1px solid var(--rule-dark);
   font-family:var(--bega-822);
   font-size:var(--fs-meta);
}
.footer__legal-list { display: flex; flex-wrap: wrap; gap: 0 18px; list-style: none; margin: 0; padding: 0; }
.footer__legal-list a, .footer__legal-list button {
   display:inline-flex;
   align-items:center;
   min-height:44px;
   color:var(--frost);
   text-decoration:none;
   font-family:var(--bega-822);
   font-size:var(--fs-meta);
   border-bottom:1px solid transparent;
   transition:color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
.footer__legal-list a:hover, .footer__legal-list button:hover { color: var(--signal); border-bottom-color: var(--signal); }
.footer__legal-list a:active, .footer__legal-list button:active { color: var(--white); }
.footer__legal-list a:focus-visible, .footer__legal-list button:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.footer__copy, .footer .footer__heading, .footer span { color: var(--steel-light); }
.footer a span { color: inherit; }
@media (max-width: 479.98px) { .topbar__code { display: none; } .topbar { padding-block: 4px; } }
.btn.btn--primary:hover, a.btn:hover, button.btn:hover { background: var(--ink); border-color: var(--ink); color: var(--white); box-shadow: 4px 4px 0 var(--signal); transform: translate(-2px, -2px); }
a.btn:active, button.btn:active { background: var(--signal-deep); border-color: var(--signal-deep); color: var(--white); box-shadow: 0 0 0 var(--signal); transform: translate(0, 0); }
a.btn:focus-visible, button.btn:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.cta-band .btn--ghost { color: var(--white); border-color: var(--rule-dark); }

.cookie-bar {
   position:fixed;
   left:0;
   right:0;
   bottom:0;
   z-index:var(--z-cookie);
   background:var(--white);
   border-top:2px solid var(--signal);
   box-shadow:0 -10px 30px -18px rgba(13, 26, 32, .4);
}
.cookie-bar__inner {
   display:flex;
   flex-wrap:wrap;
   align-items:center;
   justify-content:space-between;
   gap:10px 20px;
   max-width:var(--content-max);
   margin-inline:auto;
   padding:12px var(--gutter);
}
@media (min-width: 960px) { .cookie-bar { left: var(--sidebar-w); } }
.cookie-bar__text { flex: 1 1 320px; min-width: 0; margin: 0; font-size: var(--fs-small); line-height: 1.45; color: var(--ink-2); }
.cookie-bar__text a { color: var(--signal-ink); text-underline-offset: .2em; transition: color var(--dur-fast) var(--ease-out); }
.cookie-bar__text a:hover { color: var(--ink); }
.cookie-bar__text a:active { color: var(--signal-deep); }
.cookie-bar__text a:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.cookie-bar__code { font-family: var(--bega-822); font-size: var(--fs-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--steel); margin-right: 8px; }
.cookie-bar__actions { display: flex; flex-wrap: wrap; gap: 8px; flex: 0 1 auto; }
.cookie-bar__actions .btn { min-height: 44px; padding: 9px 18px; font-size: var(--fs-small); }
@media (max-width: 479.98px) {
   .cookie-bar__inner { padding-block: 10px; }
   .cookie-bar__actions { width: 100%; }
   .cookie-bar__actions .btn { flex: 1 1 0; }
}

.chat-launcher {
   position:fixed;
   right:clamp(12px, 2.4vw, 28px);
   bottom:calc(clamp(12px, 2.4vw, 28px) + var(--cookie-h));
   z-index:var(--z-chat);
   display:inline-flex;
   align-items:center;
   gap:10px;
   min-height:52px;
   padding:10px 18px 10px 14px;
   background:var(--ink);
   color:var(--white);
   border:1px solid var(--ink);
   font-family:var(--bega-822);
   font-size:var(--fs-meta);
   font-weight:500;
   letter-spacing:.05em;
   text-transform:uppercase;
   box-shadow:4px 4px 0 var(--signal);
   transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out), bottom var(--dur-med) var(--ease-out);
}
.chat-launcher .icon { width: 22px; height: 22px; color: var(--signal); transition: color var(--dur-fast) var(--ease-out); }
.chat-launcher:hover { background: var(--signal); color: var(--ink); box-shadow: 6px 6px 0 var(--ink); transform: translate(-2px, -2px); }
.chat-launcher:hover .icon { color: var(--ink); }
.chat-launcher:active { transform: translate(2px, 2px); box-shadow: 0 0 0 var(--ink); background: var(--signal-deep); color: var(--white); }
.chat-launcher:active .icon { color: var(--white); }
.chat-launcher:focus-visible { outline: none; box-shadow: 4px 4px 0 var(--signal), 0 0 0 3px var(--white), 0 0 0 5px var(--signal); }
.chat-launcher[aria-expanded='true'] { background: var(--white); color: var(--ink); }
.chat-launcher[aria-expanded='true'] .icon { color: var(--signal-ink); }
.chat-launcher__badge {
   position:absolute;
   top:-9px;
   right:-9px;
   min-width:22px;
   min-height:22px;
   padding:2px 6px;
   display:inline-flex;
   align-items:center;
   justify-content:center;
   background:var(--signal);
   color:var(--ink);
   border:2px solid var(--white);
   font-size:.7rem;
   line-height:1;
}
.chat-launcher__badge:empty, .chat-launcher__badge[data-count='0'] { display: none; }
@media (max-width: 479.98px) {
   .chat-launcher { padding: 10px 14px; }
   .chat-launcher__text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}

.chat-panel {
   position:fixed;
   right:clamp(12px, 2.4vw, 28px);
   bottom:calc(clamp(12px, 2.4vw, 28px) + 64px + var(--cookie-h));
   z-index:var(--z-chat);
   display:flex;
   flex-direction:column;
   width:min(380px, calc(100vw - 24px));
   height:min(560px, calc(100dvh - 120px - var(--cookie-h)));
   background:var(--white);
   border:1px solid var(--ink);
   box-shadow:var(--shadow-3), 6px 6px 0 var(--signal);
}
.chat-panel[hidden] { display: none; }
.chat-panel__head {
   display:flex;
   align-items:center;
   justify-content:space-between;
   gap:10px;
   padding:8px 8px 8px 16px;
   background:var(--ink);
   color:var(--white);
}
.chat-panel__title { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.chat-panel__title strong { font-family: var(--bega-867); font-size: 1.05rem; font-weight: 600; }
.chat-panel__title span { font-family: var(--bega-822); font-size: var(--fs-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--steel-light); }
.chat-panel__close {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   width:44px;
   min-height:44px;
   color:var(--white);
   border:1px solid var(--rule-dark);
   transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
.chat-panel__close .icon { width: 18px; height: 18px; }
.chat-panel__close:hover { background: var(--white); color: var(--ink); border-color: var(--white); }
.chat-panel__close:active { background: var(--signal); color: var(--ink); }
.chat-panel__close:focus-visible { outline: none; box-shadow: 0 0 0 2px var(--signal); }
.chat-panel__log { flex: 1 1 auto; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; background: var(--paper); background-image: var(--grid-texture); background-size: var(--grid-size); overscroll-behavior: contain; }
.chat-msg { max-width: 86%; padding: 9px 12px; font-size: var(--fs-small); line-height: 1.45; border: 1px solid var(--rule); background: var(--white); overflow-wrap: anywhere; }
.chat-msg__meta { display: block; margin-top: 4px; font-family: var(--bega-822); font-size: .66rem; color: var(--steel); }
.chat-msg--staff { align-self: flex-start; border-left: 2px solid var(--signal); }
.chat-msg--user { align-self: flex-end; background: var(--ink); color: var(--white); border-color: var(--ink); }
.chat-msg--user .chat-msg__meta { color: var(--steel-light); }
.chat-msg.is-pending { opacity: .6; }
.chat-msg.is-failed { border-color: var(--danger); background: var(--danger-wash); color: var(--danger); }
.chat-msg__retry { display: inline-flex; align-items: center; min-height: 32px; margin-top: 4px; padding: 2px 8px; border: 1px solid currentColor; font-family: var(--bega-822); font-size: .7rem; color: inherit; transition: background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out); }
.chat-msg__retry:hover { background: var(--danger); color: var(--white); }
.chat-msg__retry:active { background: var(--ink); color: var(--white); }
.chat-msg__retry:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.chat-panel__intro { padding: 14px 16px; border-top: 1px solid var(--rule); display: grid; gap: 10px; background: var(--white); }
.chat-panel__intro .field input { min-height: 44px; }
.chat-panel__form { display: flex; gap: 8px; padding: 10px; border-top: 1px solid var(--rule); background: var(--white); }
.chat-panel__form textarea { flex: 1 1 auto; min-width: 0; min-height: 44px; max-height: 120px; padding: 10px 12px; border: 1px solid var(--rule-strong); resize: none; font-size: var(--fs-small); transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out); }
.chat-panel__form textarea:hover { border-color: var(--ink); }
.chat-panel__form textarea:focus-visible { outline: none; border-color: var(--signal); box-shadow: inset 0 0 0 1px var(--signal); }
.chat-panel__send { flex: none; display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 48px; min-height: 44px; padding: 8px 14px; background: var(--signal); color: var(--ink); border: 1px solid var(--signal); font-family: var(--bega-822); font-size: var(--fs-meta); font-weight: 500; transition: background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-instant) var(--ease-out); }
.chat-panel__send:hover { background: var(--ink); color: var(--white); border-color: var(--ink); }
.chat-panel__send:active { background: var(--signal-deep); color: var(--white); transform: translateY(1px); }
.chat-panel__send:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.chat-panel__send[disabled] { opacity: .5; cursor: not-allowed; }
.chat-panel__status { padding: 0 16px 8px; font-family: var(--bega-822); font-size: .7rem; color: var(--steel); background: var(--white); }
.chat-panel__status:empty { display: none; }
@media (max-width: 479.98px) {
   .chat-panel { right: 8px; left: 8px; width: auto; bottom: calc(76px + var(--cookie-h)); height: min(520px, calc(100dvh - 100px - var(--cookie-h))); }
}
