/* BPOS Hardware Expanding Cards. GENERATED from operations/quilt/wk39_2026/bpos-hardware-expanding-cards/module_src.
   Every colour, font and gradient here is the Bottle theme's, read off the sandbox build on 2026-09-22:
   --primary #006ac6, --secondary #11121a, --tertiary #f8fbff, --dark #343a40, --primary_font Nunito, --heading_font Sora.
   The glass is the homepage Integration Orbit's: closed cards are its logo tile, the open card is its blue stage.
   The dark scheme's section gradient is the one /liquor-store-hardware already uses (#000e23, #11121a, #0e3964).
   Proportions follow adobe.com's elastic carousel: the open card is ~1.7x a closed one. Motion is anime.js springs
   (module.js); the CSS transitions below are the fallback when anime.js has not loaded. */

.bp-hwx {
  --bp-primary: var(--primary, #006ac6);
  --bp-primary-rgb: var(--primary_rgb, 0, 106, 198);
  --bp-ink: var(--secondary, #11121a);
  --bp-ink-rgb: var(--secondary_rgb, 17, 18, 26);
  --bp-shadow-rgb: 52, 58, 64; /* theme --dark #343a40, the Orbit tile shadow */
  --bp-w: clamp(232px, 20vw, 296px);
  --bp-wx: clamp(360px, 34vw, 500px);
  /* Text room is a fixed number of lines, so a card's height never depends on its copy (no layout shift).
     Sized 2026-09-23 on Gina's copy (longest description 304 characters): the open card needs 5 lines at 1440,
     6 at 1280, 7 at 1024/768 and 8 on a phone, so each breakpoint reserves one line more. Title: 2 lines. */
  --bp-lines: 7;
  --bp-media-h: 320px;
  --bp-foot-h: calc(100px + var(--bp-lines) * 24px);   /* 20 top + 48 title + 8 gap + lines + 24 bottom */
  /* The open card grows over its own slot; the cards after it slide by this much with transform, so no card's
     layout position ever changes (width-driven expansion scored 0.11 CLS on a hover sweep, 2026-09-23). */
  --bp-dx: calc(var(--bp-wx) - var(--bp-w));
  --bp-gap: 16px;
  --bp-radius: 16px;
  --bp-bezel: 8px;  /* Card style > Media padding: space around the video only; the text keeps a fixed 24px inset */
  --bp-inset: max(24px, calc((100% - 1222px) / 2));
  --bp-spring-css: cubic-bezier(.34, 1.3, .64, 1);
  --bp-card-ink: var(--bp-ink);
  --bp-rail: rgba(var(--bp-ink-rgb), .12);
  --bp-rail-view: rgba(var(--bp-ink-rgb), .32);
  --bp-btn-ink: var(--bp-ink);
  --bp-btn-line: rgba(var(--bp-ink-rgb), .2);
  position: relative;
  overflow-x: hidden;
  overflow-x: clip;
}
.bp-hwx--dark {
  --bp-card-ink: #ffffff;
  --bp-rail: rgba(255, 255, 255, .16);
  --bp-rail-view: rgba(255, 255, 255, .42);
  --bp-btn-ink: #ffffff;
  --bp-btn-line: rgba(255, 255, 255, .3);
}

/* ---- intro ---- */
.bp-hwx .bp-hwx__intro .description { max-width: 46rem; margin-inline: auto; }
.bp-hwx .bp-hwx__intro.text-left .description,
.bp-hwx .bp-hwx__intro.text-lg-left .description { margin-inline: 0; }

/* ---- stage: two soft --primary glows behind the row give the glass something to frost ---- */
.bp-hwx__viewport {
  position: relative;
  /* The track pads 24px above and 80px below so card shadows are not clipped by its scroll box;
     these margins give that room back to the layout. */
  margin: calc(3rem - 18px) 0 -3rem;
  isolation: isolate;
}
.bp-hwx__viewport::before {
  content: "";
  position: absolute;
  inset: -12% 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(38% 58% at 26% 52%, rgba(var(--bp-primary-rgb), .26), transparent 70%),
    radial-gradient(30% 50% at 74% 44%, rgba(var(--bp-primary-rgb), .18), transparent 70%);
}
.bp-hwx--dark .bp-hwx__viewport::before {
  background:
    radial-gradient(38% 58% at 26% 52%, rgba(var(--bp-primary-rgb), .42), transparent 70%),
    radial-gradient(30% 50% at 74% 44%, rgba(var(--bp-primary-rgb), .3), transparent 70%);
}

/* ---- track: starts on the page's content edge, bleeds to the viewport edge ---- */
.bp-hwx .bp-hwx__track {
  position: relative;
  display: flex;
  gap: var(--bp-gap);
  margin: 0;
  padding: 24px var(--bp-inset-r, var(--bp-inset)) 80px var(--bp-inset-l, var(--bp-inset));
  list-style: none;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-snap-type: none;
  scroll-padding-inline: var(--bp-inset-l, var(--bp-inset)) var(--bp-inset-r, var(--bp-inset));
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.bp-hwx .bp-hwx__track::-webkit-scrollbar { display: none; }
.bp-hwx .bp-hwx__item {
  position: relative;
  flex: 0 0 auto;
  width: var(--bp-w);
  margin: 0;
  padding: 0;
  list-style: none;
  scroll-snap-align: start;
  transition: transform .55s var(--bp-spring-css);
}
/* Every slot stays --bp-w wide. The open card is --bp-wx wide over its slot; the cards after it move by --bp-dx.
   Card width and the slide share one curve, so the next card always meets the open card's edge. With anime.js the
   script draws both per frame instead (module.js renderShift). */
.bp-hwx .bp-hwx__item.is-active { z-index: 1; }
.bp-hwx .bp-hwx__item.is-active ~ .bp-hwx__item { transform: translateX(var(--bp-dx)); }
.bp-hwx.is-anime .bp-hwx__item { transition: none; }
.bp-hwx.is-anime .bp-hwx__card { transition: color .3s ease, border-color .3s ease; }
.bp-hwx .bp-hwx__item::before, .bp-hwx .bp-hwx__item::marker { content: none; }
/* The row always ends --bp-dx past the last slot (the last card is either open or slid), so the scroll range and
   the end padding stay put whichever card is open. */
.bp-hwx .bp-hwx__track::after { content: ""; flex: 0 0 var(--bp-dx); margin-left: calc(-1 * var(--bp-gap)); }
.bp-hwx__probe { position: absolute; top: 0; left: 0; height: 0; visibility: hidden; pointer-events: none; }
.bp-hwx__probe--w { width: var(--bp-w); }
.bp-hwx__probe--wx { width: var(--bp-wx); }

/* ---- card: closed = Orbit glass tile ---- */
.bp-hwx .bp-hwx__card {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .62);
  border-radius: var(--bp-radius);
  background-color: rgba(255, 255, 255, .24);
  background-image: linear-gradient(135deg, rgba(255, 255, 255, .76), rgba(255, 255, 255, .38) 62%, rgba(255, 255, 255, .24));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .78), inset 0 -1px 0 rgba(var(--bp-primary-rgb), .08), 0 12.75px 30px rgba(var(--bp-shadow-rgb), .17);
  -webkit-backdrop-filter: blur(16px) saturate(1.5);
  backdrop-filter: blur(16px) saturate(1.5);
  color: var(--bp-card-ink);
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: width .55s var(--bp-spring-css), color .3s ease, border-color .3s ease;
  -webkit-tap-highlight-color: transparent;
}
.bp-hwx--dark .bp-hwx__card {
  border-color: rgba(255, 255, 255, .16);
  background-color: rgba(255, 255, 255, .06);
  background-image: linear-gradient(135deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, .05) 62%, rgba(255, 255, 255, .03));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22), 0 12.75px 30px rgba(0, 0, 0, .28);
}
.bp-hwx .bp-hwx__card:hover, .bp-hwx .bp-hwx__card:focus { color: var(--bp-card-ink); text-decoration: none; }
.bp-hwx .bp-hwx__card:focus { outline: none; }
.bp-hwx .bp-hwx__card:focus-visible { outline: 3px solid var(--bp-primary); outline-offset: 3px; }

/* open = Orbit blue stage, cross-faded in on its own layer (gradients cannot transition) */
.bp-hwx .bp-hwx__skin {
  position: absolute;
  inset: -1px;
  z-index: 0;
  border-radius: inherit;
  background-color: var(--bp-primary);
  background-image:
    radial-gradient(circle at 5% 3%, rgba(255, 255, 255, .52) 0, rgba(255, 255, 255, .24) 27%, transparent 53%),
    linear-gradient(135deg, rgba(255, 255, 255, .18) 0, transparent 58%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .24), inset 0 0 0 1px rgba(255, 255, 255, .28);
  opacity: 0;
  pointer-events: none;
  transition: opacity .35s ease;
}
.bp-hwx .bp-hwx__glint {
  position: absolute;
  inset: -17px -32px;
  z-index: 3;
  background: linear-gradient(115deg, transparent 34%, rgba(255, 255, 255, .54) 48%, transparent 62%);
  opacity: 0;
  pointer-events: none;
  mix-blend-mode: soft-light;
}
.bp-hwx .bp-hwx__item.is-active .bp-hwx__card,
.bp-hwx .bp-hwx__item.is-active .bp-hwx__card:hover,
.bp-hwx .bp-hwx__item.is-active .bp-hwx__card:focus { color: #ffffff; }
.bp-hwx .bp-hwx__item.is-active .bp-hwx__skin { opacity: 1; }
.bp-hwx .bp-hwx__item.is-active .bp-hwx__card { width: var(--bp-wx); }
.bp-hwx .bp-hwx__item.is-active .bp-hwx__card {
  border-color: rgba(255, 255, 255, .28);
  box-shadow: 0 22px 44px rgba(var(--bp-primary-rgb), .28), 0 12.75px 30px rgba(var(--bp-shadow-rgb), .17);
}

.bp-hwx .bp-hwx__head, .bp-hwx .bp-hwx__media, .bp-hwx .bp-hwx__foot { position: relative; z-index: 1; }
/* Header and text take the card's FINAL width the moment it opens or closes, and the card clips them while its width
   springs. So the text lays out once instead of re-wrapping as the spring passes its target and settles back
   (Ryan 2026-09-23: "one minor adjustment at the end"). */
.bp-hwx .bp-hwx__head, .bp-hwx .bp-hwx__foot { flex: 0 0 auto; width: var(--bp-w); }
.bp-hwx .bp-hwx__item.is-active .bp-hwx__head, .bp-hwx .bp-hwx__item.is-active .bp-hwx__foot { width: var(--bp-wx); }
.bp-hwx .bp-hwx__head { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 20px 24px; }
.bp-hwx .bp-hwx__icon {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 9px;
  background: var(--bp-primary);
  color: #ffffff;
  --bp-icon-edge: inset 0 1px 0 rgba(255, 255, 255, .24);   /* Card style > Icon outline */
  --bp-icon-drop: 0 0 0 transparent;                          /* Card style > Icon shadow */
  box-shadow: var(--bp-icon-edge), var(--bp-icon-drop);
  transition: background-color .3s ease, color .3s ease;
}
/* On the blue stage the tile turns into the Orbit's white glass tile with a blue glyph. */
.bp-hwx .bp-hwx__item.is-active .bp-hwx__icon {
  background-color: rgba(255, 255, 255, .24);
  background-image: linear-gradient(135deg, rgba(255, 255, 255, .76), rgba(255, 255, 255, .38) 62%, rgba(255, 255, 255, .24));
  color: var(--bp-primary);
  --bp-icon-edge: inset 0 1px 0 rgba(255, 255, 255, .78);
  --bp-icon-drop: 0 4px 10px rgba(var(--bp-shadow-rgb), .17);
}
.bp-hwx.bp-hwx--icon-flat .bp-hwx__item .bp-hwx__icon { --bp-icon-drop: 0 0 0 transparent; }
.bp-hwx.bp-hwx--icon-no-edge .bp-hwx__item .bp-hwx__icon { --bp-icon-edge: 0 0 0 transparent; }
.bp-hwx .bp-hwx__icon svg, .bp-hwx .bp-hwx__icon svg path { width: 15px; height: 15px; fill: currentColor !important; }
.bp-hwx .bp-hwx__name {
  margin: 0;
  min-width: 0;
  overflow: hidden;
  color: inherit;
  font-family: var(--primary_font, Nunito), sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 18px;
  letter-spacing: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bp-hwx .bp-hwx__media {
  flex: 0 0 auto;
  height: var(--bp-media-h);
  margin: 0 var(--bp-bezel);
  overflow: hidden;
  border-radius: max(4px, calc(var(--bp-radius) - var(--bp-bezel) + 2px));
  background: var(--bp-ink);
  transform: translateZ(0);
}
.bp-hwx .bp-hwx__frame { position: absolute; inset: 0; transform-origin: 50% 60%; }
.bp-hwx .bp-hwx__poster, .bp-hwx .bp-hwx__video {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  max-width: none;
  height: 100%;
  margin: 0;
  object-fit: cover;
  object-position: var(--bp-focus, 50%) 50%;
  vertical-align: top;
}
.bp-hwx .bp-hwx__poster { z-index: 1; transition: opacity .3s ease; }
.bp-hwx .bp-hwx__item.is-playing .bp-hwx__poster { opacity: 0; }

.bp-hwx .bp-hwx__foot { height: var(--bp-foot-h); min-width: 0; overflow: hidden; padding: 20px 24px 24px; }
.bp-hwx .bp-hwx__foot.has-link { padding-right: 64px; }
.bp-hwx .bp-hwx__title {
  display: -webkit-box;
  height: 48px;                 /* always two lines of room: opening a card never moves the description */
  margin: 0 0 8px;
  overflow: hidden;
  color: inherit;
  font-family: var(--heading_font, Sora), sans-serif;
  font-size: 18px;
  font-weight: 800;
  line-height: 24px;
  letter-spacing: 0;
  text-transform: none;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.bp-hwx .bp-hwx__desc {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: inherit;
  font-family: var(--primary_font, Nunito), sans-serif;
  font-size: 15px;
  line-height: 24px;
  letter-spacing: 0;
  opacity: .72;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--bp-lines);
}
.bp-hwx .bp-hwx__item.is-open .bp-hwx__desc { opacity: .86; }
.bp-hwx .bp-hwx__go {
  position: absolute;
  /* Anchored to where the open card's right edge lands, not to the card's moving edge, so it never shifts. */
  left: calc(var(--bp-wx) - 54px);
  bottom: 24px;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #ffffff;
  color: var(--bp-primary);
  opacity: 0;
  transform: scale(.6);
  transition: opacity .25s ease, transform .45s var(--bp-spring-css);
}
.bp-hwx .bp-hwx__item.is-active .bp-hwx__go { opacity: 1; transform: none; }

/* ---- rail and buttons ---- */
.bp-hwx .bp-hwx__controls { position: relative; z-index: 2; display: flex; align-items: center; gap: 24px; margin-top: .5rem; }
.bp-hwx .bp-hwx__controls[hidden] { display: none !important; }
.bp-hwx .bp-hwx__rail { display: flex; flex: 1 1 auto; gap: 6px; min-width: 0; }
.bp-hwx button.bp-hwx__seg, .bp-hwx button.bp-hwx__btn {
  appearance: none;
  -webkit-appearance: none;
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  font: inherit;
  line-height: 1;
  text-transform: none;
  letter-spacing: 0;
  cursor: pointer;
}
.bp-hwx button.bp-hwx__seg {
  display: flex;
  align-items: center;
  flex: 1 1 0;
  min-width: 0;
  height: 24px;
  padding: 0;
  background: transparent;
}
.bp-hwx .bp-hwx__seg-bar {
  position: relative;
  display: block;
  width: 100%;
  height: 4px;
  overflow: hidden;
  border-radius: 4px;
  background: var(--bp-rail);
  transition: background-color .25s ease;
}
.bp-hwx .bp-hwx__seg.is-inview .bp-hwx__seg-bar { background: var(--bp-rail-view); }
.bp-hwx .bp-hwx__seg.is-active .bp-hwx__seg-bar { background: rgba(var(--bp-primary-rgb), .3); }
.bp-hwx--dark .bp-hwx__seg.is-active .bp-hwx__seg-bar { background: rgba(var(--bp-primary-rgb), .55); }
.bp-hwx button.bp-hwx__seg:hover .bp-hwx__seg-bar { background: var(--bp-rail-view); }
.bp-hwx .bp-hwx__seg-fill {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--bp-primary);
  transform: scaleX(0);
  transform-origin: 0 50%;
}
.bp-hwx .bp-hwx__seg.is-active .bp-hwx__seg-fill { transform: scaleX(1); }
.bp-hwx.is-running .bp-hwx__seg.is-active .bp-hwx__seg-fill { animation: bp-hwx-fill var(--bp-dwell, 6s) linear both; }
.bp-hwx.is-running.is-held .bp-hwx__seg.is-active .bp-hwx__seg-fill { animation-play-state: paused; }
@keyframes bp-hwx-fill { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.bp-hwx .bp-hwx__buttons { display: flex; flex: 0 0 auto; gap: 8px; }
.bp-hwx button.bp-hwx__btn {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid var(--bp-btn-line);
  border-radius: 50%;
  background: transparent;
  color: var(--bp-btn-ink);
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.bp-hwx button.bp-hwx__btn:hover { border-color: var(--bp-primary); background: var(--bp-primary); color: #ffffff; }
.bp-hwx button.bp-hwx__seg:focus-visible, .bp-hwx button.bp-hwx__btn:focus-visible { outline: 3px solid var(--bp-primary); outline-offset: 2px; }
.bp-hwx .bp-hwx__i-play { display: none; }
.bp-hwx.is-stopped .bp-hwx__i-play { display: block; }
.bp-hwx.is-stopped .bp-hwx__i-pause { display: none; }
.bp-hwx.no-autoplay .bp-hwx__pause { display: none; }

/* ---- entrance: the row slides in and its cards close up as the section scrolls in (adobe.com does the same) ---- */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) and (min-width: 992px) {
    .bp-hwx.bp-hwx--entrance { view-timeline: --bp-hwx-view block; }
    .bp-hwx.bp-hwx--entrance .bp-hwx__track { animation: bp-hwx-slide linear both; animation-timeline: --bp-hwx-view; animation-range: entry 0% cover 35%; }
    .bp-hwx.bp-hwx--entrance .bp-hwx__item { animation: bp-hwx-close linear both; animation-timeline: --bp-hwx-view; animation-range: entry 0% cover 40%; }
  }
}
@keyframes bp-hwx-slide { from { translate: 14vw 0; } to { translate: 0 0; } }
@keyframes bp-hwx-close { from { translate: calc(var(--i, 0) * 22px) 0; } to { translate: 0 0; } }

/* ---- reveal: the Footer Reveal's rounded card and garage door, across the section edge ----
   Styles > Reveal. module.js tags our row and the neighbouring row, then drives --bp-rv-shift (px) and --bp-rv-dim
   on the neighbour: it starts tucked under our rounded edge and slides out slower than the scroll. The shape
   (radius, overlap) is static CSS, so reduced motion keeps the look without the motion. No drop shadow on the edge
   (Miles 2026-09-23): it drew a grey band across the top of a light section below, and it sat there at rest. */
.bp-hwx-rv-host { position: relative; z-index: 2; }
.bp-hwx.bp-hwx--rv-bottom {
  border-bottom-left-radius: var(--bp-rv-radius, 40px);
  border-bottom-right-radius: var(--bp-rv-radius, 40px);
}
.bp-hwx.bp-hwx--rv-top {
  margin-top: calc(-1 * var(--bp-rv-radius, 40px));
  border-top-left-radius: var(--bp-rv-radius, 40px);
  border-top-right-radius: var(--bp-rv-radius, 40px);
}
/* The card must be opaque to hide what is tucked under it: a section left on "None" takes the page colour.
   Painted as a background-IMAGE: the theme's .bg-none is `background-color: transparent !important` inside
   @layer base-overrides, and a layered !important beats any unlayered rule, so background-color cannot win. */
.bp-hwx.bp-hwx--rv-top.bg-none, .bp-hwx.bp-hwx--rv-bottom.bg-none {
  background-image: linear-gradient(var(--body_bg, #ffffff), var(--body_bg, #ffffff));
}
.bp-hwx-rv-under, .bp-hwx-rv-over { position: relative; z-index: 1; }
.bp-hwx-rv-under { margin-top: calc(-1 * var(--bp-rv-radius, 40px)); }
.bp-hwx-rv-under.is-rv-moving, .bp-hwx-rv-over.is-rv-moving { translate: 0 var(--bp-rv-shift, 0px); }
.bp-hwx-rv-under::after, .bp-hwx-rv-over::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 60;
  background: var(--secondary, #11121a);
  opacity: var(--bp-rv-dim, 0);
  pointer-events: none;
}
@media (max-width: 767.98px) {
  .bp-hwx.bp-hwx--rv-bottom, .bp-hwx.bp-hwx--rv-top { --bp-rv-radius: min(var(--bp-rv-radius-set, 40px), 28px) !important; }
}

/* ---- touch screens snap card to card; a mouse scrolls freely ---- */
@media (hover: none) {
  .bp-hwx .bp-hwx__track { scroll-snap-type: x proximity; }
  .bp-hwx.is-gliding .bp-hwx__track { scroll-snap-type: none; }
}

/* ---- smaller screens ---- */
@media (max-width: 1199.98px) {
  .bp-hwx { --bp-lines: 8; --bp-media-h: 272px; }
}
@media (max-width: 767.98px) {
  .bp-hwx { --bp-w: min(80vw, 340px); --bp-wx: var(--bp-w); --bp-lines: 9; --bp-media-h: 256px; --bp-gap: 12px; }
  .bp-hwx .bp-hwx__track { scroll-snap-type: x mandatory; padding-bottom: 64px; }
  .bp-hwx .bp-hwx__viewport { margin: calc(2rem - 18px) 0 -2.5rem; }
  .bp-hwx .bp-hwx__controls { gap: 16px; }
  .bp-hwx .bp-hwx__rail { gap: 4px; }
  .bp-hwx .bp-hwx__card { -webkit-backdrop-filter: blur(10px) saturate(1.4); backdrop-filter: blur(10px) saturate(1.4); }
}
@media (max-width: 575.98px) {
  /* A 360px phone needs 10 lines for a 304-character description (measured 2026-09-23). */
  .bp-hwx { --bp-lines: 10; --bp-media-h: 232px; }
  .bp-hwx button.bp-hwx__prev, .bp-hwx button.bp-hwx__next { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .bp-hwx .bp-hwx__item, .bp-hwx .bp-hwx__card, .bp-hwx .bp-hwx__skin, .bp-hwx .bp-hwx__poster,
  .bp-hwx .bp-hwx__icon, .bp-hwx .bp-hwx__go { transition: none; }
}
