/* ══════════════════════════════════════════════════════════════════════════
   /baccarat-software — page-isolated stylesheet
   AISHTMLNEWDESIGN-390

   Visual direction: "BEAD PLATE".

   The four card-table pages already built in this repo took the obvious
   objects with them: "Ivory Table" (/blackjack-game-development, ink / bone /
   crimson, composed as a dealt hand), "Dealer's Felt" (/blackjack-software-
   canada, felt green / aged brass, chip rail + brass plaque), "The Count Room"
   (/blackjack-software-script, plum-black / chalk / orchid, the dealer's SHOE)
   and "Cut Deck" (/card-game-development, card stock / slate / violet, corner
   index + die-cut). Between them the felt, the ivory table, the count room and
   the cut deck are spoken for, and baccarat's own headline objects — the shoe,
   the felt layout, the card — sit directly on top of them.

   So this page takes the one piece of baccarat apparatus none of them can
   claim, and the one the RECORD itself keeps naming: the SCOREBOARD.
   "baccarat scoreboard software" appears five times in the preservation
   record; the bead plate is the lacquered board beside every baccarat table on
   which the shoe's results are recorded.

   That choice also fits what this page actually is. It carries a development
   PROCESS, a "Complete Process", a "Custom Multi-Table … Development Process",
   a Technology Stack and Core Pillars — it is a build-and-deliver page at
   least as much as a game page. A bead plate is a RECORD, read column-major:
   entries fill a column top to bottom and step right. So the page's long
   sequences (the 19-step process) are set as a column FLOW, not a grid, and
   every fixed set is sized to tile exactly with no vacant cell.

   Materials, and why they are not any neighbour's:
     · LACQUER  (#0a1b35 / #122a4d) — the board itself. A navy-black, not the
                Ivory Table's warm ink, not the Count Room's plum.
     · SHELL    (#eef1f6) — a COOL porcelain grey as the page's dominant
                reading ground. All four neighbours read on a WARM paper
                (bone, bone, chalk, linen); this one deliberately does not, so
                it separates at a glance rather than on inspection.
     · SIGNAL   (#3a3d92) — one action colour, and it is not chosen at random:
                every icon the record ships (creative-game-design.svg,
                requirement-analysis.svg, circle-with-shadow.svg,
                usa-check-icon.svg, location-icon.svg) is a self-contained
                #3E4095 indigo disc, and the record's own banner artwork is
                navy blue. The page is built to the art it was given instead of
                making that art look foreign. No crimson, no brass, no violet,
                no felt green — none of the four neighbours' accents.

   Not the /bitcoin-slot-machine "INDIGO VAT" palette either: that page's
   GROUND is indigo with warm linen cloth and madder buttons. Here indigo is
   only ever the accent, the ground is cool grey, and there is no madder.

   Motif: the BEAD — a rounded cell with a single filled bead in it. It is the
   section mark at wrapper level, it repeats at half scale as the corner bead
   on every plate cell, and it is the marker on every list. Nothing else is
   used as a section device: no index numerals, no bracket arms, no tally
   strokes, no chevrons, no offset plate.

   Every rule is scoped to #page-baccarat-software or a bs- prefixed class, so
   this file can never touch the shared header/footer (owned by
   /assets/css/ais-*.css + /assets/js/ais-header.js / ais-footer.js). The UA
   body-margin reset is NOT restated here — /assets/css/ais-layout.css owns it
   (frontend-design §33).

   Design contract (.claude/skills/frontend-design/SKILL.md): rules 1, 2, 23,
   24, 25, 26, 29 and 30 — Inter; nothing below 16px; no slate body copy on
   light (#1e2735 floor); image-free full-bleed hero in a centred ~900px
   column; one CTA per section with page-unique labels; zero @keyframes and
   zero 'infinite' (every transition below is a finite response to hover,
   focus, press or <details> open); real decoded image dimensions; and no
   enquiry control anywhere — every CTA is a data-cta-modal trigger.
   ══════════════════════════════════════════════════════════════════════════ */

#page-baccarat-software{
  /* ── palette ─────────────────────────────────────────────────────────── */
  --bs-lacquer:#0a1b35;      /* the board                                  */
  --bs-lacquer-2:#122a4d;    /* raised surface on the board                */
  --bs-lacquer-3:#2b4571;    /* hairline on the board                      */
  --bs-lacquer-deep:#061224; /* deepest edge of the board                  */
  --bs-shell:#eef1f6;        /* cool porcelain — the page's ground         */
  --bs-shell-2:#e4e9f1;
  --bs-paper:#ffffff;
  --bs-line:#d6dde8;         /* hairline on shell / paper                  */
  --bs-line-2:#b6c2d3;
  --bs-body:#1e2735;         /* 13.1:1 on shell, 14.4:1 on paper           */
  --bs-body-2:#3b485c;       /*  7.6:1 on shell — captions only            */
  --bs-on-lacquer:#d7e0ee;   /* 13.1:1 on the lacquer                      */
  --bs-on-lacquer-2:#a9bad4; /*  7.4:1 on the lacquer                      */
  --bs-strong:#0a1b35;
  --bs-sig:#3a3d92;          /* the ONE action colour — 9.1:1 on white     */
  --bs-sig-deep:#2a2c72;     /* pressed / hover                            */
  --bs-sig-soft:#9ea5ee;     /* the signal as it reads ON the lacquer      */
  --bs-sig-tint:#ecedfb;

  --bs-wrap:1240px;
  --bs-gut:clamp(20px,4vw,40px);
  --bs-sec:clamp(56px,7vw,104px);
  --bs-r:6px;

  font-family:"Inter",system-ui,sans-serif;
  font-size:17px;
  line-height:1.65;
  color:var(--bs-body);
  background:var(--bs-shell);
  -webkit-font-smoothing:antialiased;
  font-variant-numeric:tabular-nums;
}

/* ── element floor. Every selector carries the wrapper id, and each one is
   written out in full: a group selector like `#page-x h1,h2,h3` leaks h2 and
   h3 to the WHOLE DOCUMENT and collapsed every margin on a page once
   (AISHTMLNEWDESIGN-459). ─────────────────────────────────────────────── */
#page-baccarat-software p{margin:0;}
#page-baccarat-software h1{margin:0;font-weight:800;letter-spacing:-0.022em;line-height:1.06;}
#page-baccarat-software h2{margin:0;font-weight:800;letter-spacing:-0.018em;line-height:1.14;}
#page-baccarat-software h3{margin:0;font-weight:700;letter-spacing:-0.008em;line-height:1.3;}
#page-baccarat-software ul{margin:0;padding:0;list-style:none;}
#page-baccarat-software img{display:block;max-width:100%;}
#page-baccarat-software b{font-weight:700;color:var(--bs-strong);}
#page-baccarat-software table{border-collapse:collapse;width:100%;}

/* ── the shared wrapper. Nothing that IS a section wrapper ever takes a
   max-width of its own: the ONE wrap below owns the measure, so every section
   mark and every copy column lands on the same left edge. ──────────────── */
#page-baccarat-software .bs-wrap{
  max-width:var(--bs-wrap);
  margin-inline:auto;
  padding-inline:var(--bs-gut);
  width:100%;
  box-sizing:border-box;
}

/* ── THE BEAD. The page's one section device: a rounded cell with a single
   filled bead in it, exactly as a result is recorded on a bead plate. ──── */
#page-baccarat-software .bs-mark{
  flex:0 0 auto;
  position:relative;
  display:block;
  width:20px;
  height:20px;
  border:2px solid var(--bs-sig);
  border-radius:5px;
  background:transparent;
}
#page-baccarat-software .bs-mark::after{
  content:"";
  position:absolute;
  inset:0;
  margin:auto;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--bs-sig);
}
#page-baccarat-software .bs-sec--lacquer .bs-mark,
#page-baccarat-software .bs-band--dark .bs-mark{border-color:var(--bs-sig-soft);}
#page-baccarat-software .bs-sec--lacquer .bs-mark::after,
#page-baccarat-software .bs-band--dark .bs-mark::after{background:var(--bs-sig-soft);}

/* ── section shells ──────────────────────────────────────────────────── */
#page-baccarat-software .bs-sec{padding-block:var(--bs-sec);}
#page-baccarat-software .bs-sec--shell{background:var(--bs-shell);}
#page-baccarat-software .bs-sec--paper{background:var(--bs-paper);}
#page-baccarat-software .bs-sec--lacquer{background:var(--bs-lacquer);color:var(--bs-on-lacquer);}
#page-baccarat-software .bs-sec--lacquer h2,
#page-baccarat-software .bs-sec--lacquer h3{color:var(--bs-paper);}

/* The bead sits ABOVE the heading, not beside it. Beside it, the heading
   starts 42px inboard of the wrap's left edge while a section with no heading
   (the record's "Section 3 (no heading in source)") starts ON it — two
   different copy edges on one page. Stacking puts the mark, every heading and
   every copy column on the same line. */
#page-baccarat-software .bs-head{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:16px;
  padding-bottom:24px;
  margin-bottom:38px;
  border-bottom:1px solid var(--bs-line);
}
#page-baccarat-software .bs-head h2{margin:0 0 2px;font-size:clamp(29px,3.1vw,42px);max-width:22ch;}
#page-baccarat-software .bs-sec--lacquer .bs-head,
#page-baccarat-software .bs-band--dark .bs-head{border-bottom-color:var(--bs-lacquer-3);}

/* ══ HERO — rule 24. Full-bleed STATIC gradient, no image of any kind, one
   CTA, centred readable column. The gradient is a fixed two-stop lacquer
   ramp: no animation, no moving background-position, no shimmer. ════════ */
#page-baccarat-software .bs-hero{
  width:100%;
  padding:clamp(64px,8.5vw,124px) var(--bs-gut) clamp(56px,7vw,96px);
  box-sizing:border-box;
  background:linear-gradient(168deg,var(--bs-lacquer-2) 0%,var(--bs-lacquer) 52%,var(--bs-lacquer-deep) 100%);
  color:var(--bs-on-lacquer);
  text-align:center;
}
#page-baccarat-software .bs-hero__inner{max-width:900px;margin-inline:auto;}
#page-baccarat-software .bs-hero__tag{
  margin:0 0 22px;
  font-size:16px;
  font-weight:700;
  letter-spacing:0.17em;
  text-transform:uppercase;
  color:var(--bs-sig-soft);
}
#page-baccarat-software .bs-hero h1{font-size:clamp(38px,5vw,62px);color:var(--bs-paper);}
#page-baccarat-software .bs-hero__copy{
  margin:26px auto 34px;
  max-width:800px;
  font-size:18px;
  line-height:1.72;
  color:var(--bs-on-lacquer);
}
#page-baccarat-software .bs-hero__terms{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px 26px;
  margin-top:34px;
}
#page-baccarat-software .bs-hero__terms li{
  position:relative;
  font-size:16px;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--bs-on-lacquer);
}
#page-baccarat-software .bs-hero__terms li::before{
  content:"";
  display:inline-block;
  width:7px;
  height:7px;
  margin-right:12px;
  border-radius:50%;
  background:var(--bs-sig-soft);
  vertical-align:0.16em;
}

/* ══ buttons. Rule 25: one per section, every label unique page-wide. ═══ */
#page-baccarat-software .bs-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:14px 30px;
  border:2px solid transparent;
  border-radius:var(--bs-r);
  font-family:inherit;
  font-size:17px;
  font-weight:700;
  letter-spacing:0.005em;
  cursor:pointer;
  text-align:center;
  transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .12s ease;
}
#page-baccarat-software .bs-btn--sig{background:var(--bs-sig);border-color:var(--bs-sig);color:var(--bs-paper);}
#page-baccarat-software .bs-btn--sig:hover{background:var(--bs-sig-deep);border-color:var(--bs-sig-deep);}
#page-baccarat-software .bs-btn--paper{background:var(--bs-paper);border-color:var(--bs-paper);color:var(--bs-strong);}
#page-baccarat-software .bs-btn--paper:hover{background:var(--bs-sig-tint);border-color:var(--bs-sig-tint);}
#page-baccarat-software .bs-btn:active{transform:translateY(1px);}
#page-baccarat-software .bs-btn:focus-visible{outline:3px solid var(--bs-sig-soft);outline-offset:3px;}
#page-baccarat-software .bs-sec .bs-btn{margin-top:40px;}

/* ══ links. The page baseline sets `#page-baccarat-software a{color:inherit}`
   at (1,0,1); a bare class rule at (0,1,0) LOSES to it — that is how phone
   numbers once shipped at 1.05:1. Every link rule below carries the wrapper id
   so it outranks the baseline on class count: (1,1,0) beats (1,0,1). ════ */
#page-baccarat-software .bs-inline{
  color:var(--bs-sig);
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
  transition:color .16s ease;
}
#page-baccarat-software .bs-inline:hover{color:var(--bs-sig-deep);text-decoration:underline;}
#page-baccarat-software .bs-band--dark .bs-inline{color:var(--bs-sig-soft);}
#page-baccarat-software .bs-band--dark .bs-inline:hover{color:var(--bs-paper);}
#page-baccarat-software .bs-inline:focus-visible,
#page-baccarat-software .bs-offer:focus-visible,
#page-baccarat-software .bs-tel:focus-visible,
#page-baccarat-software .bs-crumb a:focus-visible{outline:3px solid var(--bs-sig);outline-offset:2px;border-radius:3px;}

/* ══ breadcrumb — a <nav> inside <main>, using the record's left-icon.svg.
   The floating sidebar is shared chrome and is NOT authored on this page. ══ */
#page-baccarat-software .bs-crumbbar{background:var(--bs-paper);border-bottom:1px solid var(--bs-line);}
#page-baccarat-software .bs-crumb{
  display:flex;
  align-items:center;
  gap:10px;
  padding-block:16px;
  font-size:16px;
  flex-wrap:wrap;
}
#page-baccarat-software .bs-crumb__home{display:inline-flex;align-items:center;}
#page-baccarat-software .bs-crumb__home img{width:16px;height:16px;}
#page-baccarat-software .bs-crumb__link{color:var(--bs-sig);font-weight:600;}
#page-baccarat-software .bs-crumb__link:hover{color:var(--bs-sig-deep);text-decoration:underline;}
#page-baccarat-software .bs-crumb__here{color:var(--bs-body-2);font-weight:600;}

/* ══ opening statement — the record's "Section 3 (no heading in source)".
   The copy column is authored and painted FIRST so the section's prose sits
   on the page's common left edge at every width. ════════════════════════ */
#page-baccarat-software .bs-open{background:var(--bs-paper);padding-block:var(--bs-sec);}
#page-baccarat-software .bs-open__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 430px;
  gap:clamp(32px,5vw,70px);
  align-items:center;
}
#page-baccarat-software .bs-open__copy p{font-size:18px;line-height:1.75;margin:0 0 22px;}
#page-baccarat-software .bs-open__copy p:last-child{margin-bottom:0;}
#page-baccarat-software .bs-open__fig{
  margin:0;
  padding:26px;
  background:var(--bs-shell);
  border:1px solid var(--bs-line);
  border-radius:var(--bs-r);
}
#page-baccarat-software .bs-open__fig img{width:100%;height:auto;object-fit:contain;}

/* ══ THE PLATE — cells with their OWN borders, never the gap:1px +
   coloured-container divider trick (it paints vacant auto-fit cells grey).
   Every grid below tiles its item count EXACTLY at every breakpoint. ════ */
#page-baccarat-software .bs-plate{display:grid;gap:18px;}
#page-baccarat-software .bs-plate--2{grid-template-columns:repeat(2,minmax(0,1fr));}
#page-baccarat-software .bs-plate--3{grid-template-columns:repeat(3,minmax(0,1fr));}
#page-baccarat-software .bs-plate--4{grid-template-columns:repeat(4,minmax(0,1fr));}

#page-baccarat-software .bs-cell{
  position:relative;
  padding:30px 28px 30px 28px;
  background:var(--bs-paper);
  border:1px solid var(--bs-line);
  border-radius:var(--bs-r);
  transition:border-color .16s ease,box-shadow .16s ease;
}
#page-baccarat-software .bs-cell::before{
  content:"";
  position:absolute;
  top:16px;
  left:16px;
  width:10px;
  height:10px;
  border-radius:3px;
  border:2px solid var(--bs-sig);
  box-sizing:border-box;
}
#page-baccarat-software .bs-cell:hover{border-color:var(--bs-line-2);box-shadow:0 6px 20px rgba(10,27,53,.07);}
#page-baccarat-software .bs-cell h3{margin:14px 0 12px;font-size:21px;color:var(--bs-strong);}
#page-baccarat-software .bs-cell p{font-size:17px;line-height:1.66;}
#page-baccarat-software .bs-plate--3 .bs-cell p{margin-top:14px;}

#page-baccarat-software .bs-cell--dark{background:var(--bs-lacquer-2);border-color:var(--bs-lacquer-3);color:var(--bs-on-lacquer);}
/* The record's circle-with-shadow.svg IS this cell's bead, so the CSS corner
   bead is suppressed rather than stacked on top of it. And the asset is a
   DARK #3E4095 disc: on the lacquer it measures barely above its ground, the
   same defect as a white-filled icon on a light panel. It is never recoloured
   — it is seated on a light plate, which is what makes it read. */
#page-baccarat-software .bs-cell--dark::before{display:none;}
#page-baccarat-software .bs-cell--dark:hover{border-color:var(--bs-sig-soft);box-shadow:none;}
#page-baccarat-software .bs-cell--dark h3{color:var(--bs-paper);}
#page-baccarat-software .bs-cell--dark p{color:var(--bs-on-lacquer);}
#page-baccarat-software .bs-cell--dark img{
  width:22px;
  height:22px;
  padding:8px;
  box-sizing:content-box;
  background:var(--bs-shell);
  border-radius:50%;
}

#page-baccarat-software .bs-duo{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:28px;
}

/* ══ COLUMN FLOW — the bead plate read column-major. Nineteen entries cannot
   tile any grid, so they FLOW: fill a column, step right. No orphan cell can
   exist because there are no cells. ═════════════════════════════════════ */
#page-baccarat-software .bs-flow{column-count:3;column-gap:44px;}
#page-baccarat-software .bs-flow__item{
  break-inside:avoid;
  -webkit-column-break-inside:avoid;
  padding:20px 0 22px;
  border-top:1px solid var(--bs-line);
}
#page-baccarat-software .bs-flow__item:first-child{border-top:0;padding-top:0;}
#page-baccarat-software .bs-flow__item h3{
  position:relative;
  margin:0 0 10px;
  padding-left:22px;
  font-size:19px;
  color:var(--bs-strong);
}
#page-baccarat-software .bs-flow__item h3::before{
  content:"";
  position:absolute;
  left:0;
  top:0.55em;
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--bs-sig);
}
#page-baccarat-software .bs-flow__item p{font-size:17px;color:var(--bs-body);}

/* ══ VARIATIONS GALLERY. The cell takes the ART'S OWN 669:375 ratio — never a
   square, which either letterboxes a landscape asset to a fraction of the box
   or crops it. object-fit is CONTAIN, never cover. Six tiles tile 3x2
   exactly; at 1440 each tile paints ~397px of a 669px asset (59%). ══════ */
#page-baccarat-software .bs-gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
/* No inner padding on the tile: the art already carries its own white margin,
   and every pixel of frame comes straight off the painted picture. A 10px
   inset cost ~22px per tile and dropped the gallery from 56% to 52% of the
   asset's natural width — measured, not guessed. */
#page-baccarat-software .bs-gal li{
  padding:0;
  overflow:hidden;
  background:var(--bs-paper);
  border:1px solid var(--bs-line);
  border-radius:var(--bs-r);
  transition:border-color .16s ease,box-shadow .16s ease;
}
#page-baccarat-software .bs-gal li:hover{border-color:var(--bs-line-2);box-shadow:0 8px 24px rgba(10,27,53,.08);}
#page-baccarat-software .bs-gal img{
  width:100%;
  height:auto;
  aspect-ratio:669/375;
  object-fit:contain;
}

/* ══ CORE PILLARS. Each CMS SVG is a self-contained indigo disc with a white
   glyph ON it (circle #3E4095, glyph white), so it is seated as shipped —
   never recoloured — and painted at its true 70px. ══════════════════════ */
#page-baccarat-software .bs-pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,44px);}
#page-baccarat-software .bs-pillar{padding-top:26px;border-top:3px solid var(--bs-sig);}
#page-baccarat-software .bs-pillar img{width:70px;height:70px;}
#page-baccarat-software .bs-pillar h3{margin:20px 0 12px;font-size:23px;color:var(--bs-strong);}
#page-baccarat-software .bs-pillar p{font-size:17px;}

/* ══ CHECKED RAIL — nine record lines. A two-column grid would orphan a cell
   at nine, so this is one column. The tick is the record's own check.png. ══ */
#page-baccarat-software .bs-checks{display:grid;gap:2px;}
#page-baccarat-software .bs-checks li{
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  gap:18px;
  align-items:start;
  padding:18px 0;
  border-bottom:1px solid var(--bs-line);
}
#page-baccarat-software .bs-checks li:first-child{padding-top:0;}
#page-baccarat-software .bs-checks img{width:24px;height:24px;margin-top:4px;}
#page-baccarat-software .bs-checks p{font-size:17px;line-height:1.7;}

#page-baccarat-software .bs-note{
  margin-top:40px;
  padding:34px clamp(24px,3vw,40px);
  background:var(--bs-lacquer);
  border-radius:var(--bs-r);
  color:var(--bs-on-lacquer);
}
#page-baccarat-software .bs-note h3{margin:0 0 18px;font-size:24px;color:var(--bs-paper);}
#page-baccarat-software .bs-note p{
  font-size:17px;
  line-height:1.72;
  margin:0 0 18px;
  color:var(--bs-on-lacquer);
}
#page-baccarat-software .bs-note p:last-child{margin-bottom:0;}

/* ══ SPLIT — heading at wrapper level above, so the section's copy column
   stays on the page's common left edge even though the art sits right. ══ */
#page-baccarat-software .bs-split{
  display:grid;
  grid-template-columns:minmax(0,1fr) 440px;
  gap:clamp(30px,5vw,64px);
  align-items:center;
}
#page-baccarat-software .bs-split__fig{
  margin:0;
  padding:20px;
  background:var(--bs-shell);
  border:1px solid var(--bs-line);
  border-radius:var(--bs-r);
}
#page-baccarat-software .bs-split__fig img{width:100%;height:auto;object-fit:contain;}

#page-baccarat-software .bs-index{display:grid;gap:2px;}
#page-baccarat-software .bs-index li{padding:15px 0;border-bottom:1px solid var(--bs-line);}
#page-baccarat-software .bs-index li:first-child{padding-top:0;}
#page-baccarat-software .bs-index a{font-size:18px;display:inline-block;}

/* ══ TRIO ══ */
#page-baccarat-software .bs-trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
#page-baccarat-software .bs-trio__item{
  padding:30px 28px;
  background:var(--bs-shell);
  border:1px solid var(--bs-line);
  border-radius:var(--bs-r);
}
#page-baccarat-software .bs-trio__item img{width:26px;height:26px;}
#page-baccarat-software .bs-trio__item h3{margin:18px 0 12px;font-size:21px;color:var(--bs-strong);}
#page-baccarat-software .bs-trio__item p{font-size:17px;}

/* ══ STAGES — six, 3x2 exactly at desktop and 2x3 at tablet. ═══════════ */
#page-baccarat-software .bs-stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
#page-baccarat-software .bs-stage{
  padding:30px 28px 26px;
  background:var(--bs-paper);
  border:1px solid var(--bs-line);
  border-radius:var(--bs-r);
}
#page-baccarat-software .bs-stage img{width:70px;height:70px;}
#page-baccarat-software .bs-stage h3{margin:20px 0 16px;font-size:21px;color:var(--bs-strong);}
#page-baccarat-software .bs-stage ul{display:grid;gap:10px;}
#page-baccarat-software .bs-stage li{
  position:relative;
  padding-left:22px;
  font-size:17px;
  line-height:1.55;
}
#page-baccarat-software .bs-stage li::before{
  content:"";
  position:absolute;
  left:0;
  top:0.58em;
  width:9px;
  height:9px;
  border-radius:3px;
  border:2px solid var(--bs-sig);
  box-sizing:border-box;
}

/* ══ TECHNOLOGY STACK. The record's own pipe separators are kept as written
   rather than re-punctuated into a list. The wrapper scrolls on small screens
   so a long stack row can never push the document sideways. ═════════════ */
#page-baccarat-software .bs-tablewrap{
  overflow-x:auto;
  border:1px solid var(--bs-line);
  border-radius:var(--bs-r);
  background:var(--bs-paper);
}
#page-baccarat-software .bs-table{min-width:640px;}
#page-baccarat-software .bs-table th{
  width:250px;
  padding:22px 26px;
  text-align:left;
  vertical-align:top;
  font-size:18px;
  font-weight:700;
  color:var(--bs-strong);
  background:var(--bs-shell);
  border-bottom:1px solid var(--bs-line);
  border-right:1px solid var(--bs-line);
}
#page-baccarat-software .bs-table td{
  padding:22px 26px;
  vertical-align:top;
  font-size:17px;
  line-height:1.7;
  color:var(--bs-body);
  border-bottom:1px solid var(--bs-line);
}
#page-baccarat-software .bs-table tr:last-child th,
#page-baccarat-software .bs-table tr:last-child td{border-bottom:0;}

/* ══ RAIL — seven entries; seven is prime, so a single column of rows rather
   than a grid that would leave a vacant cell. ═══════════════════════════ */
#page-baccarat-software .bs-rail{display:grid;gap:0;}
#page-baccarat-software .bs-rail__row:first-child{border-top:0;padding-top:0;}
#page-baccarat-software .bs-rail__row{
  display:grid;
  grid-template-columns:300px minmax(0,1fr);
  gap:clamp(20px,4vw,56px);
  padding:26px 0;
  border-top:1px solid var(--bs-line);
}
#page-baccarat-software .bs-rail__row:last-child{border-bottom:1px solid var(--bs-line);}
#page-baccarat-software .bs-rail__row h3{
  position:relative;
  padding-left:26px;
  font-size:20px;
  color:var(--bs-strong);
}
#page-baccarat-software .bs-rail__row h3::before{
  content:"";
  position:absolute;
  left:0;
  top:0.42em;
  width:12px;
  height:12px;
  border-radius:4px;
  border:2px solid var(--bs-sig);
  box-sizing:border-box;
}
#page-baccarat-software .bs-rail__row p{font-size:17px;line-height:1.7;}

/* ══ BANDS. The record's two banner assets are the band backdrops. They are
   decorative ARTWORK — not a screenshot, mark or logo — so cover is the right
   fit here; every screenshot and mark on the page uses contain. Each band's
   own background-color carries the text contrast, so nothing depends on the
   artwork having loaded. ═══════════════════════════════════════════════ */
#page-baccarat-software .bs-band{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding-block:var(--bs-sec);
}
#page-baccarat-software .bs-band__bg{
  position:absolute;
  top:-2%;
  left:-2%;
  z-index:0;
  width:104%;
  height:104%;
  object-fit:cover;
  object-position:center;
}
#page-baccarat-software .bs-band__inner{position:relative;z-index:1;}
#page-baccarat-software .bs-band--light{background:var(--bs-shell-2);color:var(--bs-body);}
#page-baccarat-software .bs-band--dark{background:var(--bs-lacquer);color:var(--bs-on-lacquer);}
#page-baccarat-software .bs-band--dark h2,
#page-baccarat-software .bs-band--dark h3{color:var(--bs-paper);}
#page-baccarat-software .bs-band__lead{
  max-width:760px;
  font-size:clamp(19px,2vw,24px);
  font-weight:600;
  line-height:1.5;
  color:var(--bs-strong);
}
#page-baccarat-software .bs-band--dark .bs-band__lead{color:var(--bs-on-lacquer);}
#page-baccarat-software .bs-band__sub{margin:26px 0 0;font-size:22px;}
#page-baccarat-software .bs-band .bs-btn{margin-top:28px;}
#page-baccarat-software .bs-band__link{margin-top:20px;font-size:17px;}

/* ══ OFFERS — fourteen links. Fourteen cannot tile a 3- or 4-column grid, so
   this is a wrap rail of pills rather than a grid with vacant cells. ════ */
#page-baccarat-software .bs-offers{display:flex;flex-wrap:wrap;gap:14px;}
#page-baccarat-software .bs-offers li{display:flex;}
#page-baccarat-software .bs-offer{
  display:flex;
  align-items:center;
  min-height:48px;
  padding:12px 20px;
  font-size:17px;
  font-weight:600;
  color:var(--bs-sig);
  background:var(--bs-shell);
  border:1px solid var(--bs-line);
  border-radius:999px;
  transition:background-color .16s ease,border-color .16s ease,color .16s ease;
}
#page-baccarat-software .bs-offer:hover{background:var(--bs-sig-tint);border-color:var(--bs-sig);color:var(--bs-sig-deep);}

/* ══ WHY CHOOSE — a two-column prose set, no cards. ════════════════════ */
#page-baccarat-software .bs-lead{
  max-width:900px;
  margin:0 0 34px;
  font-size:clamp(19px,2vw,24px);
  font-weight:600;
  line-height:1.5;
  color:var(--bs-strong);
}
#page-baccarat-software .bs-prose{column-count:2;column-gap:clamp(32px,4vw,64px);}
#page-baccarat-software .bs-prose p{
  break-inside:avoid;
  -webkit-column-break-inside:avoid;
  margin:0 0 20px;
  font-size:17px;
  line-height:1.75;
}
#page-baccarat-software .bs-prose p:last-child{margin-bottom:0;}

/* ══ FAQ — <details>, one open at a time, all closed at rest. The only motion
   is the marker rotating on open, which is a finite response to a click. ══ */
#page-baccarat-software .bs-faq{display:grid;gap:12px;}
#page-baccarat-software .bs-faq details{
  background:var(--bs-paper);
  border:1px solid var(--bs-line);
  border-radius:var(--bs-r);
  transition:border-color .16s ease;
}
#page-baccarat-software .bs-faq details[open]{border-color:var(--bs-sig);}
#page-baccarat-software .bs-faq summary{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding:20px 24px;
  cursor:pointer;
  list-style:none;
}
#page-baccarat-software .bs-faq summary::-webkit-details-marker{display:none;}
#page-baccarat-software .bs-faq summary:hover h3{color:var(--bs-sig);}
#page-baccarat-software .bs-faq summary:focus-visible{outline:3px solid var(--bs-sig);outline-offset:-3px;border-radius:var(--bs-r);}
#page-baccarat-software .bs-faq summary h3{
  font-size:19px;
  font-weight:700;
  color:var(--bs-strong);
  transition:color .16s ease;
}
#page-baccarat-software .bs-faq__x{
  position:relative;
  flex:0 0 auto;
  width:20px;
  height:20px;
  margin-top:4px;
  transition:transform .18s ease;
}
#page-baccarat-software .bs-faq__x::before,
#page-baccarat-software .bs-faq__x::after{
  content:"";
  position:absolute;
  inset:0;
  margin:auto;
  background:var(--bs-sig);
  border-radius:2px;
}
#page-baccarat-software .bs-faq__x::before{width:16px;height:2px;}
#page-baccarat-software .bs-faq__x::after{width:2px;height:16px;}
#page-baccarat-software .bs-faq details[open] .bs-faq__x{transform:rotate(45deg);}
#page-baccarat-software .bs-faq details[open] .bs-faq__x::after{opacity:0;}
#page-baccarat-software .bs-faq details p{
  padding:0 24px 22px;
  font-size:17px;
  line-height:1.72;
  color:var(--bs-body);
}

/* ══ AREA WE SERVE. The record files this under FOOTER; it is authored inside
   <main> and never baked into the shared footer template. ═══════════════ */
#page-baccarat-software .bs-areas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;}
#page-baccarat-software .bs-area{
  padding:26px 24px;
  background:var(--bs-lacquer-2);
  border:1px solid var(--bs-lacquer-3);
  border-radius:var(--bs-r);
}
#page-baccarat-software .bs-area h3{
  margin:0 0 16px;
  font-size:17px;
  font-weight:700;
  letter-spacing:0.14em;
  color:var(--bs-sig-soft);
}
#page-baccarat-software .bs-area__tel{margin:0 0 14px;}
#page-baccarat-software .bs-tel{font-size:19px;font-weight:700;color:var(--bs-paper);}
#page-baccarat-software .bs-tel:hover{color:var(--bs-sig-soft);text-decoration:underline;}
#page-baccarat-software .bs-area__addr{
  display:flex;
  gap:12px;
  align-items:flex-start;
  font-size:16px;
  line-height:1.6;
  color:var(--bs-on-lacquer);
}
/* location-icon.svg is a solid #303094 pin — a dark mark on a dark plate. It
   is seated on a light chip rather than recoloured. */
#page-baccarat-software .bs-area__addr img{
  width:14px;
  height:20px;
  padding:5px 8px;
  box-sizing:content-box;
  background:var(--bs-shell);
  border-radius:6px;
  flex:0 0 auto;
}

/* ══ CTA modal. The wrapper carries the close control and the widget only —
   no heading, no subtitle, no divider: the widget owns its own heading. ══ */
#page-baccarat-software .bs-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  align-items:flex-start;
  justify-content:center;
  padding: 100px 16px 24px 16px;
  background:rgba(6,18,36,.74);
  overflow-y:auto;
}
#page-baccarat-software .bs-modal.is-open{display:flex;}
#page-baccarat-software .bs-modal__box{
  position:relative;
  width:100%;
  max-width:620px;
  margin:auto;
  background:var(--bs-paper);
  border-radius:10px;
  overflow:hidden;
}
#page-baccarat-software .bs-modal__x{
  position:absolute;
  top:12px;
  right:12px;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  padding:0;
  cursor:pointer;
  color:var(--bs-strong);
  background:var(--bs-shell);
  border:1px solid var(--bs-line);
  border-radius:50%;
  transition:background-color .16s ease,color .16s ease;
}
#page-baccarat-software .bs-modal__x:hover{background:var(--bs-sig);color:var(--bs-paper);}
#page-baccarat-software .bs-modal__x:focus-visible{outline:3px solid var(--bs-sig);outline-offset:2px;}
#page-baccarat-software .bs-modal iframe{
  display:block;
  width:100%;
  min-height:880px;
  border:0;
}

/* ══════════════════════════════════════════════════════════════════════════
   RESPONSIVE. Layouts are RECOMPOSED, not shrunk, and every grid is stepped
   down to a column count that still tiles its item count exactly.
   ══════════════════════════════════════════════════════════════════════════ */
@media (max-width:1100px){
  #page-baccarat-software .bs-open__grid{grid-template-columns:minmax(0,1fr) 360px;}
  #page-baccarat-software .bs-split{grid-template-columns:minmax(0,1fr) 360px;}
  #page-baccarat-software .bs-flow{column-count:2;column-gap:36px;}
  #page-baccarat-software .bs-plate--4{grid-template-columns:repeat(2,minmax(0,1fr));}  /* 8 -> 2x4 */
  #page-baccarat-software .bs-plate--3{grid-template-columns:repeat(3,minmax(0,1fr));}  /* 9 -> 3x3 */
  #page-baccarat-software .bs-areas{grid-template-columns:repeat(2,minmax(0,1fr));}     /* 4 -> 2x2 */
}

@media (max-width:900px){
  #page-baccarat-software .bs-open__grid,
  #page-baccarat-software .bs-split{grid-template-columns:minmax(0,1fr);}
  #page-baccarat-software .bs-open__fig,
  #page-baccarat-software .bs-split__fig{max-width:520px;}
  #page-baccarat-software .bs-gal{grid-template-columns:repeat(2,minmax(0,1fr));}       /* 6 -> 2x3 */
  #page-baccarat-software .bs-stages{grid-template-columns:repeat(2,minmax(0,1fr));}    /* 6 -> 2x3 */
  #page-baccarat-software .bs-plate--3{grid-template-columns:repeat(1,minmax(0,1fr));}
  #page-baccarat-software .bs-pillars{grid-template-columns:minmax(0,1fr);gap:0;}
  #page-baccarat-software .bs-pillar{margin-bottom:30px;}
  #page-baccarat-software .bs-trio{grid-template-columns:minmax(0,1fr);}
  #page-baccarat-software .bs-prose{column-count:1;}
  #page-baccarat-software .bs-rail__row{grid-template-columns:minmax(0,1fr);gap:12px;}
  #page-baccarat-software .bs-head h2{max-width:none;}
}

@media (max-width:680px){
  #page-baccarat-software{font-size:16px;}
  /* The head is a column at every width, and at mobile the heading is pinned
     to a full row of its own so it can never try to share a line with the
     mark. */
  #page-baccarat-software .bs-head{gap:14px;}
  #page-baccarat-software .bs-head h2{flex:1 0 100%;}
  #page-baccarat-software .bs-flow{column-count:1;}
  #page-baccarat-software .bs-plate--2,
  #page-baccarat-software .bs-plate--4,
  #page-baccarat-software .bs-duo,
  #page-baccarat-software .bs-gal,
  #page-baccarat-software .bs-stages,
  #page-baccarat-software .bs-areas{grid-template-columns:minmax(0,1fr);}
  #page-baccarat-software .bs-hero__copy{font-size:17px;}
  #page-baccarat-software .bs-open__copy p{font-size:17px;}
  #page-baccarat-software .bs-btn{width:100%;}
  #page-baccarat-software .bs-checks li{grid-template-columns:20px minmax(0,1fr);gap:14px;}
  #page-baccarat-software .bs-checks img{width:20px;height:20px;}
  #page-baccarat-software .bs-faq summary{padding:18px 18px;}
  #page-baccarat-software .bs-faq details p{padding:0 18px 20px;}
  #page-baccarat-software .bs-offer{font-size:16px;}
  #page-baccarat-software .bs-modal iframe{min-height:920px;}
}

/* Rule 26 — the page carries no running animation at all: there is not a
   single @keyframes rule or `infinite` in this file, and every transition
   above is a finite response to hover, focus, press or <details> open. This
   block honours a reduced-motion preference for what remains. */
@media (prefers-reduced-motion:reduce){
  #page-baccarat-software *,
  #page-baccarat-software *::before,
  #page-baccarat-software *::after{
    animation:none !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
}
