/* =============================================================================
   Watchroom — marketing site design system
   =============================================================================
   COLOUR is inherited from the product's 2026-08-21 Motorola CommandCentral
   rebase, so the site and the software read as one company.

   STRUCTURE is measured from what fire/EMS vendors actually ship. Two
   competitor sites were read at the stylesheet level and their findings
   converge — this file follows the evidence, not house habit:

     border-radius  ImageTrend: "zero is the house value" (seven explicit
                    zeroings). Emergency Reporting: 0px on 397 of 415 elements
                    (95.7%), with three separate overrides fighting the page
                    builder's rounded pills. -> RADIUS IS 0. Circles excepted.

     box-shadow     ImageTrend: zero shadows across three page stylesheets;
                    shadow appears ONLY on hover (0 24px 42px -12px, lifting
                    5px). Emergency Reporting: 7 shadowed elements, all one
                    component. -> NO AMBIENT ELEVATION. Flat at rest.

     separation     Neither cards nor rules: content sits directly on the band
                    background. ImageTrend's list items compute to a transparent
                    background with no border, radius or shadow. A list is a
                    list, not a grid of tiles.

     alignment      "Centered is reserved for a band's introduction. Anything
                    that IS content is left-aligned." Their closing CTA is a
                    left/right STRIP — heading left, button right — not a
                    centred stack.

     padding        35-50px internal plus spacers (ER) up to 75-100px
                    (ImageTrend). Explicitly not the 96/128px that reads as
                    machine-designed.

     measure        Several nested widths on one page (1350 / 1200 / 1100 /
                    1000), not one container reused everywhere.

     accent         Measured at 0.355% of painted page area, and never used as
                    text. The structural colour — here the near-black ink —
                    does the design work; the accent only marks interaction.
   ========================================================================== */

:root {
  /* Ground. White dominates; the tint is an occasional event, not an A/B flip. */
  --paper:         #FFFFFF;
  --tint:          #EDF1F5;
  --tint-2:        #F5F8FA;

  /* Ink — the structural colour: headings, rules, and the dark bands. */
  --ink:           #101922;
  --ink-soft:      #435568;
  --ink-mute:      #5F7285;
  --on-dark:       #E9F0F6;
  --on-dark-soft:  #A5B8C7;
  --on-dark-mute:  #8AA0B2;

  --op-bg:         #090D12;
  --op-1:          #10161E;
  --op-2:          #172029;
  --op-line:       #1F2B36;
  --op-line-2:     #3C4E5D;

  --hairline:      #E1E7ED;
  --rule:          #D2DCE4;
  --control-edge:  #AEBECB;

  /* Signal. Interaction and attention only — buttons, eyebrows, hover states.
     Never a large fill, never body text. Competitor accent load: ~0.3%. */
  --signal:        #D6231A;
  --signal-deep:   #C6102E;
  --signal-dark:   #FF4436;
  --nominal:       #00815C;
  --link:          #1667D6;
  --link-dark:     #4C9BFF;
  --focus:         #8FD3FF;

  /* Radius zero is the house value; kept as a token so exceptions are explicit
     rather than scattered through the file. */
  --radius:        0;
  --lift:          0 24px 42px -12px rgba(9, 13, 18, .35);

  --font-display: 'Roboto Condensed', system-ui, sans-serif;
  --font-sans:    'Roboto', system-ui, -apple-system, sans-serif;
  --font-mono:    'Roboto Mono', ui-monospace, monospace;

  /* Nested measures, after the competitor pattern of several widths per page. */
  --w-full:  1350px;
  --w-wide:  1200px;
  --w-mid:   1100px;
  --w-prose: 820px;

  --gutter:  30px;
}

/* ── Base ───────────────────────────────────────────────────────────────── */
html { -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.12;
  margin: 0;
  text-wrap: balance;
}
p { margin: 0; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--link); outline-offset: 2px; }
.band-dark :focus-visible, .site-nav :focus-visible, .site-footer :focus-visible {
  outline-color: var(--focus);
}
.num, .eyebrow, .stat-value { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }

/* ── Bands butt flush; all rhythm comes from internal padding ───────────── */
.band { padding: 60px 25px; }
@media (min-width: 1200px) { .band { padding: 75px 50px; } }
@media (min-width: 1400px) { .band { padding: 96px 0; } }
.band-tight { padding-block: 44px; }

.band-paper { background: var(--paper); color: var(--ink); }
.band-tint  { background: var(--tint);  color: var(--ink); }
.band-dark  { background: var(--op-bg); color: var(--on-dark); }
.band-dark h1, .band-dark h2, .band-dark h3 { color: var(--on-dark); }

.wrap       { max-width: var(--w-full);  margin-inline: auto; }
.wrap-wide  { max-width: var(--w-wide);  margin-inline: auto; }
.wrap-mid   { max-width: var(--w-mid);   margin-inline: auto; }
.wrap-prose { max-width: var(--w-prose); margin-inline: auto; }

/* ── Inline composition: the heading sits BESIDE its content ─────────────
   Measured on ImageTrend: display:flex; align-items:flex-start; gap 50px/100px;
   heading column 479px, content column 586px at 1280px — roughly 45/55.
   Deliberately NOT sticky: position:sticky appears on their header and nowhere
   else, and the second site has no side rail at all. */
.split {
  display: grid;
  gap: 40px;
  grid-template-columns: 1fr;
  align-items: start;
}
@media (min-width: 940px) {
  .split { grid-template-columns: 45fr 55fr; gap: 100px; }
}
/* Lead variant: content wider than its companion (hero, form pages). Declares
   its own display so it works standalone, not only alongside .split. */
.split-lead {
  display: grid;
  gap: 40px;
  grid-template-columns: 1fr;
  align-items: start;
}
@media (min-width: 940px) {
  .split-lead { grid-template-columns: 55fr 45fr; gap: 72px; align-items: center; }
}

.rail-head { font-size: clamp(27px, 2.6vw, 36px); }
.rail-note { margin-top: 14px; font-size: 16px; line-height: 1.6; color: var(--ink-mute); max-width: 40ch; }
.band-dark .rail-note { color: var(--on-dark-mute); }

.eyebrow {
  display: block;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--signal);
  margin-bottom: 12px;
}
.band-dark .eyebrow { color: var(--signal-dark); }
.eyebrow-quiet { color: var(--ink-mute); }
.band-dark .eyebrow-quiet { color: var(--on-dark-mute); }

.h-hero { font-size: clamp(38px, 5.4vw, 62px); line-height: 1.05; }
.lede { font-size: clamp(17px, 1.4vw, 20px); line-height: 1.55; color: var(--ink-soft); max-width: 58ch; }
.band-dark .lede { color: var(--on-dark-soft); }
.prose { font-size: 17px; line-height: 1.7; color: var(--ink-soft); max-width: 68ch; }
.band-dark .prose { color: var(--on-dark-soft); }
.muted { color: var(--ink-mute); }
.band-dark .muted { color: var(--on-dark-mute); }
.t-sm { font-size: 15px; line-height: 1.55; }

/* ── Rows: content sits on the band, separated by a single hairline ─────── */
.rows { display: grid; }
.row-item {
  display: grid;
  gap: 4px 40px;
  grid-template-columns: 1fr;
  padding: 18px 0;
  border-top: 1px solid var(--hairline);
  text-decoration: none;
}
.rows > .row-item:last-child { border-bottom: 1px solid var(--hairline); }
.band-dark .row-item, .band-dark .rows > .row-item:last-child { border-color: var(--op-line); }
@media (min-width: 700px) {
  .row-item { grid-template-columns: minmax(150px, 220px) 1fr; align-items: baseline; }
}
.row-label { font-family: var(--font-display); font-size: 18px; font-weight: 700; line-height: 1.25; }
.row-body { font-size: 16px; line-height: 1.6; color: var(--ink-soft); }
.band-dark .row-body { color: var(--on-dark-soft); }
a.row-item { transition: color .15s ease; }
a.row-item:hover .row-label { color: var(--signal); }
.band-dark a.row-item:hover .row-label { color: var(--signal-dark); }
a.row-item:hover .row-body { color: var(--ink); }
.band-dark a.row-item:hover .row-body { color: var(--on-dark); }

/* ── Tiles: flat at rest, lift on hover. No resting elevation anywhere. ─── */
.tiles { display: grid; gap: var(--gutter); grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.tile {
  background: var(--paper);
  padding: 26px 24px;
  border-radius: var(--radius);
  border: 0;
  box-shadow: none;
  position: relative;
  top: 0;
  transition: box-shadow .3s ease, top .3s ease;
  text-decoration: none;
  display: block;
}
.band-paper .tile { background: var(--tint); }
.band-dark .tile { background: var(--op-1); }
a.tile:hover { box-shadow: var(--lift); top: -5px; }
.tile-title { font-family: var(--font-display); font-size: 19px; font-weight: 700; line-height: 1.25; }
.tile-body { font-size: 15px; line-height: 1.6; color: var(--ink-soft); margin-top: 8px; }
.band-dark .tile-body { color: var(--on-dark-soft); }

/* ── Controls ───────────────────────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--font-sans); font-size: 15px; font-weight: 700;
  padding: 13px 24px; border-radius: var(--radius);
  border: 2px solid transparent; cursor: pointer; text-decoration: none;
  min-height: 46px; transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.btn-primary { background: var(--signal); color: #fff; border-color: var(--signal); }
.btn-primary:hover { background: var(--signal-deep); border-color: var(--signal-deep); }
.btn-outline { background: transparent; color: var(--ink); border-color: var(--ink); }
.btn-outline:hover { background: var(--ink); color: var(--paper); }
.band-dark .btn-outline, .site-nav .btn-outline {
  color: var(--on-dark); border-color: var(--op-line-2);
}
.band-dark .btn-outline:hover, .site-nav .btn-outline:hover {
  background: var(--on-dark); color: var(--op-bg); border-color: var(--on-dark);
}

.link-arrow {
  display: inline-block; font-weight: 700; font-size: 15px;
  color: var(--signal); text-decoration: none;
  border-bottom: 2px solid transparent; padding-bottom: 1px;
}
.band-dark .link-arrow { color: var(--signal-dark); }
.link-arrow:hover { border-bottom-color: currentColor; }
.link-arrow::after { content: " \2192"; }

.actions { display: flex; flex-wrap: wrap; gap: 14px; }

/* ── Stats as a horizontal strip ────────────────────────────────────────── */
.stat-strip { display: flex; flex-wrap: wrap; gap: 28px 64px; }
.stat { display: grid; gap: 6px; }
.stat-value { font-size: 34px; font-weight: 500; line-height: 1; letter-spacing: -0.02em; }
.stat-label { font-size: 14px; line-height: 1.5; color: var(--ink-mute); max-width: 28ch; }
.band-dark .stat-label { color: var(--on-dark-mute); }

/* ── The CTA is a left/right strip, not a centred stack ──────────────────
   Measured on Emergency Reporting: full-bleed band, 9/3 split, heading and one
   line of copy left, button floated right, 152px tall. */
.cta-strip {
  display: grid; gap: 22px;
  grid-template-columns: 1fr; align-items: center;
}
@media (min-width: 860px) { .cta-strip { grid-template-columns: 1fr auto; gap: 48px; } }
.cta-strip .actions { justify-content: flex-start; }
@media (min-width: 860px) { .cta-strip .actions { justify-content: flex-end; } }

/* ── Small parts ────────────────────────────────────────────────────────── */
.tag {
  display: inline-block; font-family: var(--font-mono); font-size: 11px;
  letter-spacing: .09em; text-transform: uppercase; padding: 4px 0;
  color: var(--ink-mute); margin-right: 22px;
}
.band-dark .tag { color: var(--on-dark-mute); }
.rule-line { height: 1px; background: var(--hairline); border: 0; margin: 0; }
.band-dark .rule-line { background: var(--op-line); }

table.data { width: 100%; border-collapse: collapse; font-size: 16px; }
table.data th, table.data td { padding: 14px 20px 14px 0; text-align: left; border-bottom: 1px solid var(--rule); }
table.data th {
  font-family: var(--font-mono); font-size: 11px; font-weight: 500;
  letter-spacing: .09em; text-transform: uppercase; color: var(--ink-mute);
}
.band-dark table.data th, .band-dark table.data td { border-color: var(--op-line); }
.band-dark table.data th { color: var(--on-dark-mute); }
td.num { font-variant-numeric: tabular-nums; }
.table-scroll { overflow-x: auto; }

/* ── Nav ────────────────────────────────────────────────────────────────── */
.site-nav {
  position: sticky; top: 0; z-index: 50;
  background: var(--op-bg); color: var(--on-dark);
  border-bottom: 1px solid var(--op-line);
}
.site-nav a { text-decoration: none; }
.nav-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; padding: 13px 25px;
  max-width: var(--w-full); margin-inline: auto;
}
@media (min-width: 1200px) { .nav-inner { padding-inline: 50px; } }
@media (min-width: 1400px) { .nav-inner { padding-inline: 0; } }
.nav-links { display: flex; align-items: center; gap: 30px; font-size: 15px; font-weight: 500; }
.nav-links a { color: var(--on-dark-soft); padding-block: 4px; border-bottom: 2px solid transparent; }
.nav-links a:hover { color: var(--on-dark); }
.nav-links a[aria-current="page"] { color: var(--on-dark); border-bottom-color: var(--signal-dark); }
.nav-cta { display: flex; align-items: center; gap: 18px; }
.nav-cta .btn { padding: 9px 18px; min-height: 40px; font-size: 14px; }
.brand-lockup { display: flex; align-items: center; gap: 10px; color: var(--on-dark); }
.brand-word { font-family: var(--font-display); font-size: 20px; font-weight: 700; }
@media (max-width: 900px) { .nav-links { display: none; } }
@media (max-width: 520px) { .nav-cta .sign-in { display: none; } }

/* ── Footer ─────────────────────────────────────────────────────────────── */
.site-footer { background: var(--op-bg); color: var(--on-dark-mute); padding: 56px 25px 36px; }
@media (min-width: 1200px) { .site-footer { padding-inline: 50px; } }
@media (min-width: 1400px) { .site-footer { padding-inline: 0; } }
.site-footer a { color: var(--on-dark-soft); text-decoration: none; font-size: 15px; }
.site-footer a:hover { color: var(--on-dark); }
.footer-head {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em;
  text-transform: uppercase; color: var(--on-dark-mute); margin-bottom: 14px;
}
.footer-col ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.footer-grid {
  max-width: var(--w-full); margin-inline: auto;
  display: grid; gap: 40px; grid-template-columns: 1.5fr repeat(3, 1fr);
}
@media (max-width: 820px) { .footer-grid { grid-template-columns: 1fr 1fr; } }

/* ── Console illustration ───────────────────────────────────────────────── */
.console { background: var(--op-1); border: 1px solid var(--op-line); }
.console-bar {
  display: flex; align-items: center; gap: 8px;
  padding: 11px 16px; background: var(--op-2); border-bottom: 1px solid var(--op-line);
  font-family: var(--font-mono); font-size: 11px; letter-spacing: .09em;
  color: var(--on-dark-mute); text-transform: uppercase;
}
.dot { width: 8px; height: 8px; border-radius: 50%; background: var(--signal-dark); flex: none; }

.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--signal); color: #fff; padding: 10px 16px;
}
.skip-link:focus { left: 0; }

/* ── Form fields ────────────────────────────────────────────────────────── */
.field {
  width: 100%; font-family: var(--font-sans); font-size: 16px;
  color: var(--ink); background: var(--paper);
  border: 1px solid var(--control-edge); border-radius: var(--radius);
  padding: 12px 14px; min-height: 46px;
}
.field:focus-visible { outline: 2px solid var(--signal); outline-offset: 0; border-color: var(--signal); }
textarea.field { min-height: 130px; resize: vertical; }
label { font-weight: 500; font-size: 15px; color: var(--ink-soft); }
.field-row { display: grid; gap: 6px; margin-bottom: 18px; }

/* ── Legal prose ────────────────────────────────────────────────────────── */
.legal-prose { color: var(--ink-soft); font-size: 17px; line-height: 1.75; max-width: 74ch; }
.legal-prose h2 { color: var(--ink); font-size: 1.6rem; margin: 2.6rem 0 1rem; }
.legal-prose h3 { color: var(--ink); font-size: 1.2rem; margin: 2rem 0 .6rem; }
.legal-prose h4 { color: var(--ink); font-size: 1rem; font-weight: 700; margin: 1.5rem 0 .4rem; }
.legal-prose p { margin: 0 0 1rem; }
.legal-prose a { color: var(--link); text-decoration: underline; text-underline-offset: 2px; }
.legal-prose strong { color: var(--ink); font-weight: 700; }
.legal-prose ul, .legal-prose ol { margin: 0 0 1rem; padding-left: 1.4rem; }
.legal-prose ul { list-style: disc; }
.legal-prose ol { list-style: decimal; }
.legal-prose li { margin: .35rem 0; }
.legal-prose code {
  font-family: var(--font-mono); font-size: .85em; background: var(--tint);
  padding: .12em .4em; color: var(--ink);
}
.legal-prose hr { border: 0; border-top: 1px solid var(--hairline); margin: 2.2rem 0; }
.legal-prose .table-wrap { overflow-x: auto; margin: 1rem 0 1.5rem; }
.legal-prose table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.legal-prose th, .legal-prose td { border-bottom: 1px solid var(--rule); padding: .7rem .8rem .7rem 0; text-align: left; vertical-align: top; }
.legal-prose th {
  font-family: var(--font-mono); font-size: .75rem; letter-spacing: .08em;
  text-transform: uppercase; color: var(--ink-mute);
}
.draft-ribbon {
  background: var(--ink); color: var(--on-dark); font-family: var(--font-mono);
  font-size: 12px; letter-spacing: .12em; text-transform: uppercase;
  text-align: center; padding: 9px 16px;
}

/* The Compliance drafts open with their own `> **DRAFT — for attorney review**`
   blockquote, which build-legal.py tags `.draft-banner`. It had NO rule at all —
   not a weak one, none — so on the live pages it rendered as ordinary body text
   and the second half of the "must read as a banner" guardrail was not being
   met. Signal is a 3px edge here, never a fill: the house rule is that the
   accent marks and does not flood. */
.legal-prose blockquote {
  margin: 0 0 1.6rem; padding: 14px 18px;
  background: var(--tint-2); border-left: 3px solid var(--rule);
  color: var(--ink-soft);
}
.legal-prose blockquote p:last-child { margin-bottom: 0; }
.legal-prose blockquote.draft-banner {
  background: var(--tint); border-left-color: var(--signal);
}
.legal-prose blockquote.draft-banner strong { color: var(--ink); }

/* ── Utilities ──────────────────────────────────────────────────────────── */
.mt-1 { margin-top: 8px; }  .mt-2 { margin-top: 16px; } .mt-3 { margin-top: 24px; }
.mt-4 { margin-top: 32px; } .mt-5 { margin-top: 40px; } .mt-6 { margin-top: 56px; }
.mb-2 { margin-bottom: 16px; } .mb-3 { margin-bottom: 24px; } .mb-4 { margin-bottom: 32px; }
.stack { display: grid; gap: 16px; }
.stack-s { display: grid; gap: 8px; }
.row { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }

/* ── Photographic hero ──────────────────────────────────────────────────────
   A real photograph, not an abstract illustration. The first pass drew a
   stylised console because there were no assets; a page built out of shapes
   and gradients is one of the clearest tells of a machine-made site, and both
   reference vendors lead with real responders instead.

   The scrim is a left-weighted gradient rather than a flat overlay: it darkens
   only as much as the text needs, so the photograph stays legible as a
   photograph on the right-hand side. */
.hero-photo {
  position: relative;
  background:
    linear-gradient(90deg, rgba(9,13,18,.94) 0%, rgba(9,13,18,.86) 38%, rgba(9,13,18,.35) 78%, rgba(9,13,18,.2) 100%),
    url('/assets/watchroom_erp/site/photos/station-bay.jpg') center/cover no-repeat;
  color: var(--on-dark);
}
.hero-photo-inner { padding: 104px 25px 96px; }
@media (min-width: 1200px) { .hero-photo-inner { padding: 128px 50px 120px; } }
@media (min-width: 1400px) { .hero-photo-inner { padding-inline: 0; } }
@media (max-width: 700px) {
  /* On a narrow screen the subject is cropped away and the gradient does
     nothing but muddy the type, so darken it evenly instead. */
  .hero-photo {
    background:
      linear-gradient(180deg, rgba(9,13,18,.90) 0%, rgba(9,13,18,.86) 100%),
      url('/assets/watchroom_erp/site/photos/station-bay.jpg') center/cover no-repeat;
  }
  .hero-photo-inner { padding: 72px 25px 64px; }
}
.hero-photo .h-hero, .hero-photo .eyebrow { color: var(--on-dark); }
.hero-photo .eyebrow { color: var(--signal-dark); }
.hero-photo .lede { color: var(--on-dark-soft); }
.hero-photo .btn-outline { color: var(--on-dark); border-color: var(--on-dark-soft); }
.hero-photo .btn-outline:hover { background: var(--on-dark); color: var(--op-bg); }

/* Inline figures. Square corners like everything else - a rounded photo would
   reintroduce exactly the tell the rest of the system removes. */
.figure {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0;
}

/* ── Hero fact row ──────────────────────────────────────────────────────────
   After StationBoss, who put "Plans from $150/mo" in their hero trust row.
   Worth copying for a specific reason: every enterprise competitor in this
   market hides pricing behind a discovery call, so stating the number in the
   first screen is a counter-position rather than a detail. */
.hero-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 32px;
  font-size: 15px;
  color: var(--on-dark-soft);
}
.hero-facts strong { color: var(--on-dark); font-weight: 700; }
@media (max-width: 700px) { .hero-facts { gap: 6px 20px; font-size: 14px; } }

/* ── Product screenshot frame ───────────────────────────────────────────────
   Ready for real captures. Deliberately BARE — no device mockup, no browser
   chrome, no annotation arrows. First Due frames module screenshots exactly
   this way on their product pages, and PSTrax goes further and fade-crops the
   bottom edge so the image implies continuation rather than ending.

   The framing is the easy half. The half that decides whether it persuades is
   the DATA IN THE SHOT: real unit designators, real cert codes, a plausible
   roster - and at least one EXCEPTION state visible. A screenshot where
   everything is green reads as a mockup; one showing a failed rig-check item
   reads as software someone actually uses. */
.shot-figure { margin: 0; }
.shot-figure img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid var(--hairline);
}
.band-dark .shot-figure img { border-color: var(--op-line); }
.shot-figure figcaption {
  margin-top: 10px;
  font-size: 13px;
  color: var(--ink-mute);
}
.band-dark .shot-figure figcaption { color: var(--on-dark-mute); }
/* Fade the lower edge into the band so a cropped screenshot implies more
   below it rather than stopping dead. Only where the band colour is known. */
.shot-fade { position: relative; }
.shot-fade::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 90px;
  background: linear-gradient(180deg, transparent, var(--paper));
  pointer-events: none;
}
.band-tint .shot-fade::after { background: linear-gradient(180deg, transparent, var(--tint)); }
