/* ==========================================================================
   REBORN PAGES

   Carries the homepage's warm, flat, hard-shadow language onto every non-CRM
   page: launcher, subscriptions, store, news, account, auth, download,
   knowledge, booking, invite, the legal pages and the error pages.

   Loaded AFTER reborn-core.css (which supplies the --reset-* scale and the
   shared site-chrome styling) and AFTER each page's own stylesheets.

   Two things shape how this file is written:

   1. The pages it dresses were built as one dark HUD theme, and the layer
      that unified them — frontline-index-theme.css — sets almost every colour
      with `!important`. Specificity cannot beat that, so the overrides here
      answer `!important` with `!important`. Where the underlying rule is
      ordinary, so is the override.

   2. Each page scopes its own tokens (--ln-* launcher, --nw-* news, --kb-*
      knowledge, --bg/--panel/--ink store and styles.css). Remapping those
      tokens does most of the work; the component blocks further down only
      handle what was hardcoded past them.
   ========================================================================== */

/* ==========================================================================
   1. PAGE SHELL

   frontline-index-theme.css paints an orange-bloom + grid-line gradient onto
   `body` with `!important`, and store.css paints the same thing onto a
   `::before` pseudo-element. Both have to go before anything else reads as
   light.
   ========================================================================== */

body.frontline-reborn {
  background:
    radial-gradient(60rem 40rem at 12% -8%, rgba(255, 192, 46, .1), transparent 65%),
    radial-gradient(52rem 38rem at 92% 4%, rgba(103, 175, 209, .09), transparent 68%),
    var(--reset-bg) !important;
  background-attachment: fixed !important;
  color: var(--reset-cream) !important;
  font-family: var(--body-copy-font-family) !important;
}

body.frontline-reborn::before,
body.frontline-reborn::after { display: none !important; }

/* The launcher, news and knowledge pages each hang a radial "glow" layer in
   their hero. It is a dark-theme bloom and has nothing to sit on here. */
.frontline-reborn :is(.ln-hero__glow, .nw-hero__glow, .hero-bg, .kb-hero__glow, .store-hero__glow) {
  display: none !important;
}

/* Decorative canvases (the error pages' particle field) are drawn with
   hardcoded near-white strokes for a black ground. */
.frontline-reborn #bgCanvas,
.frontline-reborn #particles { display: none !important; }

/* ==========================================================================
   2. TOKEN REMAP

   Everything each page stylesheet resolves through a variable follows from
   this block; the component sections below only clean up hardcoded values.
   ========================================================================== */

.frontline-reborn {
  /* styles.css / frontline-index-theme.css / store.css share these names. */
  --bg: var(--reset-bg);
  --panel: var(--reset-panel);
  --panel-strong: var(--reset-panel-raised);
  --ink: var(--reset-cream);
  --muted: var(--reset-muted);
  --line: var(--reset-line-strong);
  --accent: var(--reset-ink-sun);
  --accent-hover: var(--reset-ink-coral);
  --accent-2: var(--reset-ink-sky);
  --accent-3: var(--reset-ink-rose);
  --success: var(--reset-ink-ok);
  --danger: var(--reset-ink-danger);
  --focus: var(--reset-ink-coral);
  --glow: none;
  --fl-orange: var(--reset-ink-sun);
  --fl-amber: var(--reset-ink-sun);
  --fl-amber-soft: var(--reset-ink-sun);
  --fl-bg: var(--reset-bg);
  --hero-heading-highlight: var(--reset-ink-sun);
  --hero-heading-gradient: none;
  --body-copy-color: var(--reset-muted);
  --heading-letter-spacing: -.018em;
  /* store.css draws its corners from these; the theme is round, not chamfered. */
  --radius-sm: 12px;
  --radius-md: 14px;
  --radius-lg: 16px;
  --content-max: var(--shell-max);
}

/* Launcher and news scope their own copies one level down. */
.frontline-reborn.launcher-page {
  --ln-orange: var(--reset-ink-sun);
  --ln-amber: var(--reset-ink-sun);
  --ln-amber-soft: var(--reset-ink-sun);
  --ln-ink: var(--reset-cream);
  --ln-muted: var(--reset-muted);
  --ln-line: var(--reset-line-strong);
  --ln-panel: var(--reset-panel);
}

.frontline-reborn .news-page,
.frontline-reborn .news-detail-page,
.frontline-reborn.news-page,
.frontline-reborn.news-detail-page {
  --nw-orange: var(--reset-ink-sun);
  --nw-amber: var(--reset-ink-sun);
  --nw-amber-soft: var(--reset-ink-sun);
  --nw-ink: var(--reset-cream);
  --nw-muted: var(--reset-muted);
  --nw-dim: var(--reset-muted);
  --nw-line: var(--reset-line-strong);
}

.frontline-reborn.kb-page {
  --kb-surface: var(--reset-panel);
  --kb-surface-strong: var(--reset-panel-raised);
  --kb-line: var(--reset-line-strong);
  --kb-line-soft: var(--reset-line);
  --kb-orange: var(--reset-ink-sun);
  --kb-amber: var(--reset-ink-sun);
  --kb-cyan: var(--reset-ink-sky);
  --kb-ink: var(--reset-cream);
  --kb-ink-soft: var(--reset-cream);
  --kb-muted: var(--reset-muted);
  --kb-radius: 16px;
  --kb-radius-sm: 12px;
  --kb-selection-bg: rgba(158, 92, 10, .1);
  --kb-selection-shadow: rgba(158, 92, 10, .2);
}

:root[data-home-theme="dark"] .frontline-reborn.kb-page {
  --kb-selection-bg: rgba(255, 209, 102, .13);
  --kb-selection-shadow: rgba(255, 209, 102, .22);
}

/* ==========================================================================
   3. TYPOGRAPHY

   The old theme set every display heading in Russo One, uppercased it, and
   clipped a white→amber gradient to the glyphs. On a light ground the clip
   makes the words nearly invisible, and Russo One has no Cyrillic weight
   range worth the caps. One face, sentence case, solid ink.
   ========================================================================== */

.frontline-reborn :is(h1, h2, h3, h4, h5, h6),
.frontline-reborn :is(.section-title, .display-title, .panel-title, .auth-title,
  .download-title, .legal-title, .news-detail-title, .error-page__title,
  .error-page__code, .not-found__title, .not-found__code,
  .ln-hero-title, .ln-sec-title, .nw-hero-title, .nw-card__title,
  .store-hero h1, .store-final h2, .subscription-title, .feature-title) {
  color: var(--reset-cream) !important;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
  font-family: var(--heading-font-family) !important;
  font-weight: 800 !important;
  letter-spacing: -.018em !important;
  text-transform: none !important;
  text-shadow: none !important;
  filter: none !important;
}

/* The page-title steps, so a section heading and a hero heading stop being the
   same size on a page that has both. */
.frontline-reborn :is(.ln-hero-title, .nw-hero-title, .display-title, .store-hero h1,
  .not-found__title, .error-page__title, .news-detail-title, .auth-title, .download-title) {
  font-size: var(--fs-2xl) !important;
  line-height: 1.08 !important;
}
.frontline-reborn :is(.ln-sec-title, .section-title, .store-final h2, .legal-title) {
  font-size: var(--fs-xl) !important;
  line-height: 1.14 !important;
}
.frontline-reborn :is(.panel-title, .subscription-title, .nw-card__title, .feature-title) {
  font-size: var(--fs-md) !important;
  line-height: 1.24 !important;
}

/* Body copy: one muted ink, one measure. */
.frontline-reborn :is(.muted, .hero-lead, .section-subtitle, .news-summary,
  .download-subtitle, .ln-hero-lead, .ln-sec-lead, .nw-hero-lead,
  .nw-card__summary, .store-hero__lead, .eyebrow, .field-hint) {
  color: var(--reset-muted) !important;
  line-height: 1.6;
}
.frontline-reborn :is(.ln-hero-lead, .ln-sec-lead, .nw-hero-lead, .hero-lead,
  .store-hero__lead, .download-subtitle) {
  max-width: 56ch;
  font-size: var(--fs-md) !important;
}

/* An accent word inside a heading becomes the homepage's highlighter stroke
   rather than orange type — the two pages then read as one system. */
.frontline-reborn :is(.ln-accent, .nw-accent, .gradient-text, .accent-text) {
  padding-inline: .08em;
  color: var(--reset-cream) !important;
  background-image: linear-gradient(var(--sec-accent, var(--reset-sun)), var(--sec-accent, var(--reset-sun))) !important;
  background-repeat: no-repeat !important;
  background-position: 0 88% !important;
  background-size: 100% .34em !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  -webkit-text-fill-color: currentColor !important;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/* Inline code (installer filenames, key formats) was set in a near-white grey
   picked for the black theme, which is unreadable on the light page. */
.frontline-reborn :is(code, kbd, samp) {
  padding: .1em .4em;
  border: 1px solid var(--reset-line-strong);
  border-radius: 6px;
  color: var(--reset-cream) !important;
  background: var(--reset-surface);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: .92em;
}
.frontline-reborn pre code { padding: 0; border: 0; background: none; }

/* Tailwind and inline colour utilities scattered through these pages. */
.frontline-reborn :is(.text-white, .text-gray-300, .text-gray-400, .text-gray-500) {
  color: var(--reset-muted) !important;
}
.frontline-reborn :is(h1, h2, h3, h4).text-white { color: var(--reset-cream) !important; }
.frontline-reborn [class*="text-orange-"],
.frontline-reborn [class*="text-brand-"] { color: var(--reset-ink-coral) !important; }
.frontline-reborn [class*="blur-["],
.frontline-reborn [class*="drop-shadow"] { filter: none !important; }

/* ==========================================================================
   4. BUTTONS

   Every page draws its primary action from one of these class names. They all
   become the same pill: solid fill, 1.5px ink border, hard offset shadow that
   collapses under the pointer.
   ========================================================================== */

.frontline-reborn :is(.btn, .btn-primary, .btn-gradient, .btn-auth, .btn-ghost,
  .header-account-btn, .ln-btn, .store-button, .nw-back, .kb-btn) {
  min-height: 46px !important;
  border: 1.5px solid var(--reset-cream) !important;
  border-radius: 999px !important;
  color: var(--reset-cream) !important;
  background: var(--reset-surface) !important;
  box-shadow: 3px 3px 0 var(--reset-shadow) !important;
  clip-path: none !important;
  filter: none !important;
  font-family: var(--heading-font-family) !important;
  font-size: var(--fs-sm) !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  transition: color .18s ease, background-color .18s ease, box-shadow .18s ease, transform .18s ease !important;
}

/* The sweeping white gloss every one of these carried on hover. */
.frontline-reborn :is(.btn, .btn-primary, .btn-gradient, .btn-auth, .btn-ghost,
  .ln-btn, .store-button)::after { display: none !important; }

.frontline-reborn :is(.btn.primary, .btn-primary, .btn-gradient, .btn-auth,
  .ln-btn--primary, .store-button--primary, .btn--primary) {
  color: #2a200e !important;
  background: var(--reset-sun) !important;
}

.frontline-reborn :is(.btn.ghost, .btn.outline, .btn-ghost, .ln-btn--ghost,
  .store-button--secondary, .store-button--quiet, .nw-back) {
  color: var(--reset-cream) !important;
  background: transparent !important;
}

.frontline-reborn :is(.btn, .btn-primary, .btn-gradient, .btn-auth, .btn-ghost,
  .header-account-btn, .ln-btn, .store-button, .nw-back, .kb-btn):hover {
  color: #2a170f !important;
  background: var(--reset-coral) !important;
  box-shadow: 1px 1px 0 var(--reset-shadow) !important;
  filter: none !important;
  transform: translate(2px, 2px) !important;
}

.frontline-reborn :is(.btn, .btn-primary, .btn-gradient, .btn-auth, .btn-ghost,
  .ln-btn, .store-button, .nw-back):active {
  box-shadow: 0 0 0 var(--reset-shadow) !important;
  transform: translate(3px, 3px) !important;
}

.frontline-reborn :is(.btn, .btn-primary, .btn-gradient, .ln-btn, .store-button):disabled,
.frontline-reborn button[disabled] {
  opacity: .5 !important;
  box-shadow: 2px 2px 0 var(--reset-shadow) !important;
  cursor: not-allowed !important;
  transform: none !important;
}

.frontline-reborn :is(.ln-btn--lg, .btn-lg) {
  min-height: 54px !important;
  padding-inline: 2rem !important;
  font-size: var(--fs-base) !important;
}
/* The glow modifier is the one thing with no flat equivalent — the tier it
   marked is now carried by the deeper shadow instead. */
.frontline-reborn .ln-btn--glow { box-shadow: 5px 5px 0 var(--reset-shadow) !important; }

.frontline-reborn :is(.btn, .ln-btn, .store-button, .nw-back) i,
.frontline-reborn :is(.btn, .ln-btn, .store-button, .nw-back) svg { color: currentColor !important; }

.frontline-reborn :is(.store-link, .kb-link, a.text-link) {
  color: var(--reset-ink-coral) !important;
  font-weight: 700;
}

/* Segmented controls: the auth login/register tabs, the store's period and
   currency switchers, the account filters.

   These are the one place the token remap alone gets it wrong. `--fl-orange`
   now resolves to the *ink* twin (#9e5c0a) because almost everywhere it is
   type on a light ground — but here it is a fill with dark type on top, and a
   dark label on dark amber lands at 3.9:1. The fill takes the bright sun back
   and the label keeps its dark ink. */
/* Track and thumb are both pills. `.auth-tabs` carries `padding: 4px` and
   `gap: 4px`, so its buttons sit inset from the rounded ends — square corners
   inside a 999px track left a white crescent beside the active tab. Rounding
   the button to match turns that inset into the gap a pill thumb wants. */
.frontline-reborn :is(.filter-group, .store-switcher, .pricing-control__options,
  .contact-channel__options, .auth-tabs, .currency-options) {
  overflow: hidden;
  padding: 4px !important;
  gap: 4px !important;
  border: 1.5px solid var(--reset-cream) !important;
  border-radius: 999px !important;
  background: var(--reset-bg) !important;
  box-shadow: 3px 3px 0 var(--reset-shadow) !important;
  clip-path: none !important;
}
.frontline-reborn :is(.filter-group, .store-switcher, .pricing-control__options,
  .contact-channel__options, .auth-tabs, .currency-options) button,
.frontline-reborn :is(.filter-group, .store-switcher) .btn {
  min-height: 40px !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: var(--reset-cream) !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: var(--fs-sm) !important;
  transform: none !important;
}
.frontline-reborn :is(.filter-group, .store-switcher, .pricing-control__options,
  .contact-channel__options, .auth-tabs, .currency-options) button[aria-pressed="true"],
.frontline-reborn :is(.filter-group, .store-switcher, .auth-tabs) button[aria-selected="true"],
.frontline-reborn :is(.filter-group, .store-switcher) .btn.active,
.frontline-reborn :is(.filter-group, .store-switcher) .btn[aria-pressed="true"],
.frontline-reborn :is(.period-btn, .currency-btn, .auth-tab).is-active {
  color: #2a200e !important;
  background: var(--reset-sun) !important;
}
/* The label is a <span> inside the button, so the fill's ink has to reach it. */
.frontline-reborn :is(.period-btn, .currency-btn, .auth-tab).is-active span,
.frontline-reborn :is(.auth-tabs, .store-switcher) button[aria-selected="true"] span {
  color: inherit !important;
}

/* ==========================================================================
   5. SURFACES

   One card recipe across all the pages, cycling four accent borders so a grid
   of them reads as a set rather than a wall.
   ========================================================================== */

.frontline-reborn :is(.card, .feature-card, .mode-card, .plan-card, .news-card,
  .news-detail, .legal-doc, .auth-card, .download-content, .download-fallback,
  .info-card, .booking-widget, .promo-card, .faq-card, .trust-card, .modal-card,
  .store-switcher-wrapper, .comparison-table-wrapper, .store-hero-panel,
  .quick-card, .account-panel, .subscription-card, .security-card, .state-card,
  .table-card, .delete-modal-card, .account-modal-card, .invite-card,
  .status-card, .error-page__inner, .quick-link, .social-link, .glass-card,
  .not-found__inner, .ln-card, .nw-card, .ln-dlcard, .ln-preview,
  .subscribe-panel, .subscribe-summary__card, .store-purchase__panel,
  .activate-key-card, .profile-card, .kb-card) {
  --card-accent: var(--reset-sun);
  /* Deliberately no `padding` here: these cards get theirs from a dozen
     different rules across styles.css, launcher.css, store.css and the rest,
     and a blanket reset would flatten every one of them. Only the two
     wrapper-style cards below actually need it changed. */
  border: 2px solid var(--card-accent) !important;
  border-radius: 16px !important;
  color: var(--reset-cream) !important;
  background: var(--reset-panel) !important;
  box-shadow: 4px 4px 0 var(--reset-shadow) !important;
  clip-path: none !important;
  filter: none !important;
  transition: box-shadow .2s ease, transform .2s ease !important;
}

/* The launcher/news cards are a 1px-padded gradient-border wrapper with a
   painted inner element. The wrapper is now the whole card — the border draws
   it — so the padding that made room for the gradient goes, and the inner
   element becomes a plain box. Content padding still comes from .ln-feature,
   .ln-stat, .nw-card__body and friends, which is why nothing else is reset. */
.frontline-reborn :is(.ln-card, .nw-card) { padding: 0 !important; }
.frontline-reborn :is(.ln-card-in, .nw-card__frame, .nw-detail__frame, .nw-card__link,
  .ln-preview__media) {
  border: 0 !important;
  border-radius: 14px !important;
  background: transparent !important;
  box-shadow: none !important;
  clip-path: none !important;
}

.frontline-reborn :is(.card, .feature-card, .mode-card, .news-card, .glass-card,
  .plan-card, .quick-link, .social-link, .ln-card--hover, .nw-card, .quick-card,
  .kb-card):hover {
  border-color: var(--card-accent) !important;
  box-shadow: 7px 7px 0 var(--reset-shadow) !important;
  transform: translate(-3px, -3px) !important;
}

/* Cycle the accent in fours down any grid of cards. */
.frontline-reborn :is(.ln-features-grid, .ln-stat-grid, .ln-value__grid,
  .news-list, .account-grid, .security-grid, .subscription-grid,
  .download-info-grid, .store-choice-grid, .not-found__links, .kb-grid) > *:nth-child(4n+2) {
  --card-accent: var(--reset-rose);
}
.frontline-reborn :is(.ln-features-grid, .ln-stat-grid, .ln-value__grid,
  .news-list, .account-grid, .security-grid, .subscription-grid,
  .download-info-grid, .store-choice-grid, .not-found__links, .kb-grid) > *:nth-child(4n+3) {
  --card-accent: var(--reset-sky);
}
.frontline-reborn :is(.ln-features-grid, .ln-stat-grid, .ln-value__grid,
  .news-list, .account-grid, .security-grid, .subscription-grid,
  .download-info-grid, .store-choice-grid, .not-found__links, .kb-grid) > *:nth-child(4n+4) {
  --card-accent: var(--reset-coral);
}

/* The error pages' centre block was never a card — it was a bare centred div,
   so it has no padding of its own to sit inside the border it just gained. */
.frontline-reborn :is(.not-found__inner, .error-page__inner) {
  padding: clamp(1.75rem, 4vw, 3rem) !important;
}

/* Corner brackets were the old HUD signature; the border and shadow are the
   new one, and the two together read as noise. */
.frontline-reborn :is(.ln-brackets, .nw-brackets, .brackets)::before,
.frontline-reborn :is(.ln-brackets, .nw-brackets, .brackets)::after { display: none !important; }

/* The chamfered corner was the old theme's signature and this one is round, so
   no element keeps it. Named selectors would mean chasing about thirty rules
   across six stylesheets — and every single `clip-path` in all of them is that
   same polygon, so the blanket reset costs nothing and misses nothing. */
.frontline-reborn *,
.frontline-reborn *::before,
.frontline-reborn *::after { clip-path: none !important; }

/* Anything the old theme rounded with a Tailwind utility lands on the same
   radius as the cards. */
.frontline-reborn :where(.rounded-xl, .rounded-2xl, .rounded-3xl):not(img) {
  border-radius: 16px !important;
  clip-path: none !important;
}

/* Artwork keeps a border of its own so it seats inside the panel. */
.frontline-reborn :is(.media-img, .store-hero-image, .news-card-image,
  .news-detail-cover, .nw-card__media img, .nw-detail__frame img,
  .ln-stream__media img, img.rounded-xl, img.rounded-2xl, img.rounded-3xl) {
  border-radius: 14px !important;
  clip-path: none !important;
  filter: saturate(.92) contrast(1.04);
}
.frontline-reborn :is(.nw-card__media, .nw-detail__frame, .ln-stream__media,
  .ln-preview__media, .news-detail-cover) {
  overflow: hidden;
  border-radius: 14px !important;
  clip-path: none !important;
}

/* ==========================================================================
   6. FORMS
   ========================================================================== */

.frontline-reborn :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  textarea, select, .form-input, .booking-input, .store-field input, .store-field select,
  .store-field textarea) {
  min-height: 46px;
  border: 1.5px solid var(--reset-line-strong) !important;
  border-radius: 12px !important;
  color: var(--reset-cream) !important;
  background: var(--reset-surface) !important;
  box-shadow: none !important;
  clip-path: none !important;
  font-family: var(--body-copy-font-family);
  font-size: var(--fs-sm);
}
.frontline-reborn :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  textarea, select, .form-input, .booking-input):focus {
  border-color: var(--reset-cream) !important;
  box-shadow: 3px 3px 0 var(--reset-shadow) !important;
  outline: none;
}
.frontline-reborn ::placeholder { color: var(--reset-muted); opacity: .85; }

/* `.store-field` is itself the <label>, and it carries the colour its child
   caption span inherits — so the base ink goes on the field and only the
   caption span gets the mono label treatment. Putting that treatment on the
   field would hand it to the <input> too, which inherits `font` from it. */
.frontline-reborn .store-field { color: var(--reset-cream) !important; }
.frontline-reborn :is(.form-label, .store-field > span, .pricing-control__label,
  .field-label, .subscribe-topline__hint) {
  color: var(--reset-muted) !important;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: var(--fs-2xs) !important;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.frontline-reborn :is(.field-error, .store-field__error, .error, .download-error) {
  color: var(--reset-ink-danger) !important;
}

/* Choice tiles (subscription add-ons, contact channel). */
.frontline-reborn .store-choice-grid label > span,
.frontline-reborn .contact-channel__options label > span {
  border: 1.5px solid var(--reset-line-strong) !important;
  border-radius: 14px !important;
  color: var(--reset-cream) !important;
  background: var(--reset-surface) !important;
}
.frontline-reborn .store-choice-grid input:checked + span,
.frontline-reborn .contact-channel__options input:checked + span {
  border-color: var(--reset-cream) !important;
  color: var(--reset-tile-ink) !important;
  background: var(--reset-sun) !important;
  box-shadow: 3px 3px 0 var(--reset-shadow) !important;
}

/* ==========================================================================
   7. HUD ATOMS

   The mono eyebrow, the live dot and the status chips appear on every page.
   ========================================================================== */

.frontline-reborn :is(.ln-hud-tag, .nw-hud-tag, .hud-tag, .store-kicker,
  .store-eyebrow, .sec-index, .kb-eyebrow) {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  color: var(--reset-ink-sun) !important;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
  font-family: "JetBrains Mono", ui-monospace, monospace !important;
  font-size: var(--fs-2xs) !important;
  font-weight: 600 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
}
.frontline-reborn :is(.ln-hud-tag, .nw-hud-tag, .hud-tag)::before {
  width: 18px !important;
  height: 2px !important;
  border-radius: 2px;
  background: var(--reset-ink-sun) !important;
}

.frontline-reborn :is(.ln-pulse-dot, .nw-pulse-dot, .pulse-dot) {
  background: var(--reset-coral) !important;
  box-shadow: none !important;
  animation: none !important;
}

/* Status chips: the four states these pages actually render. `.ln-dl-meta` and
   `.news-meta` are deliberately absent — they are inline meta *rows*, not
   chips, and a pill border around a whole row reads as a stray box. */
.frontline-reborn :is(.status-badge, .chip, .invite-badge, .subscribe-summary__badge,
  .ln-dlcard__version, .nw-card__date) {
  border: 1.5px solid var(--reset-line-strong) !important;
  border-radius: 999px !important;
  color: var(--reset-muted) !important;
  background: var(--reset-surface) !important;
  box-shadow: none !important;
  clip-path: none !important;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: var(--fs-2xs) !important;
  letter-spacing: .1em;
}
.frontline-reborn :is(.status-badge, .chip).success,
.frontline-reborn :is(.status-badge, .chip).is-active,
.frontline-reborn .lead-success {
  border-color: var(--reset-ink-ok) !important;
  color: var(--reset-ink-ok) !important;
}
.frontline-reborn :is(.status-badge, .chip).danger,
.frontline-reborn :is(.status-badge, .chip).error {
  border-color: var(--reset-ink-danger) !important;
  color: var(--reset-ink-danger) !important;
}
.frontline-reborn :is(.status-badge, .chip).status-none,
.frontline-reborn :is(.status-badge, .chip).muted {
  color: var(--reset-muted) !important;
}

/* The inline meta rows keep their layout and only lose the orange. */
.frontline-reborn :is(.ln-dl-meta, .news-meta, .ln-dlcard__head small) {
  color: var(--reset-muted) !important;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: var(--fs-2xs) !important;
}
.frontline-reborn .ln-dl-meta i { color: var(--reset-ink-sun) !important; }

/* Inline notes and callouts — an accent rule instead of a coloured wash. */
.frontline-reborn :is(.ln-dl-note, .ln-install__hint, .lead-privacy,
  .account-privacy-note, .legal-note, .subscribe-summary__note, .delete-warning,
  .store-status, .kb-note) {
  padding: .75rem 1rem !important;
  border: 0 !important;
  border-left: 3px solid var(--reset-ink-sun) !important;
  border-radius: 0 12px 12px 0 !important;
  color: var(--reset-cream) !important;
  background: var(--reset-panel) !important;
  box-shadow: none !important;
  font-size: var(--fs-sm) !important;
}
.frontline-reborn .ln-dl-note.is-authed { border-left-color: var(--reset-ink-ok) !important; }
.frontline-reborn .ln-dl-note.is-authed i { color: var(--reset-ink-ok) !important; }
.frontline-reborn :is(.delete-warning, .store-status.is-error) {
  border-left-color: var(--reset-ink-danger) !important;
}

/* Icon plates: the small square that fronts a feature or a stat. */
.frontline-reborn :is(.ln-feature__icon, .ln-bullets__icon, .ln-steps__num,
  .ln-dlcard__os, .ln-docs__icon,
  .info-icon, .quick-icon, .icon-wrapper, .security-card-icon, .state-card-icon,
  .empty-card-icon, .empty-state-icon, .download-icon, .auth-required-icon,
  .account-field-icon, .lead-success__icon, .kb-icon) {
  display: inline-grid;
  place-items: center;
  border: 1.5px solid var(--reset-cream) !important;
  border-radius: 12px !important;
  color: var(--reset-tile-ink) !important;
  background: var(--card-accent, var(--reset-sun)) !important;
  box-shadow: 3px 3px 0 var(--reset-shadow) !important;
  clip-path: none !important;
  transition: transform .25s cubic-bezier(.2, .7, .2, 1), box-shadow .25s ease;
}
.frontline-reborn :is(.card, .ln-card, .quick-card, .info-card, .security-card):hover
  :is(.ln-feature__icon, .info-icon, .quick-icon, .icon-wrapper, .security-card-icon) {
  box-shadow: 5px 5px 0 var(--reset-shadow) !important;
  transform: translate(-1px, -1px) rotate(-6deg);
}

/* ==========================================================================
   8. LAUNCHER
   ========================================================================== */

.frontline-reborn .ln-container { width: var(--shell); }
.frontline-reborn .ln-section {
  padding-block: 4.8rem;
  scroll-margin-top: 5.5rem;
}
.frontline-reborn .ln-section--tint {
  border-block: 0;
  background: transparent;
}
/* White on white needs a seam between sections, same dashed rule as the home
   page uses between its own. */
.frontline-reborn .ln-section + .ln-section::before,
.frontline-reborn .nw-list-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  width: var(--shell);
  border-top: 1.5px dashed var(--reset-line);
  translate: -50% 0;
}
.frontline-reborn .ln-hero {
  min-height: auto;
  padding-block: 5rem 3rem;
}
.frontline-reborn .ln-hero__grid { gap: clamp(2rem, 3.4vw, 3.5rem); }

/* The floating spec chips over the hero video. */
.frontline-reborn .ln-float {
  border: 1.5px solid var(--reset-cream) !important;
  border-radius: 14px !important;
  color: var(--reset-cream) !important;
  background: var(--reset-surface) !important;
  box-shadow: 4px 4px 0 var(--reset-shadow) !important;
  clip-path: none !important;
  backdrop-filter: none !important;
}
.frontline-reborn .ln-float b { color: var(--reset-cream) !important; }
.frontline-reborn .ln-float small { color: var(--reset-muted) !important; }
.frontline-reborn .ln-float__icon { color: var(--reset-ink-sun) !important; }
.frontline-reborn .ln-float__dot { background: var(--reset-coral) !important; }

/* The hero video panel keeps a dark inside — it frames moving footage. */
.frontline-reborn .ln-preview__topline {
  border-bottom: 1.5px solid var(--reset-cream) !important;
  color: var(--reset-tile-ink) !important;
  background: var(--reset-sky) !important;
}
.frontline-reborn .ln-preview__topline b { color: var(--reset-tile-ink) !important; }
.frontline-reborn .ln-preview__dot { background: var(--reset-tile-ink) !important; }
/* The caption strip under the video was a near-black plate with grey type —
   the one surface on the page that stayed dark once everything around it went
   light, so it read as a hole rather than a caption. */
.frontline-reborn .ln-preview__caption {
  border-top: 1.5px solid var(--reset-line) !important;
  color: var(--reset-muted) !important;
  background: var(--reset-panel) !important;
}
.frontline-reborn .ln-preview__play span {
  border: 1.5px solid var(--reset-cream) !important;
  color: var(--reset-tile-ink) !important;
  background: var(--reset-sun) !important;
  box-shadow: 3px 3px 0 var(--reset-shadow) !important;
}

/* Stat tiles get the homepage's four colour fills. */
.frontline-reborn .ln-stat-grid > * { --card-accent: var(--reset-cream); }
.frontline-reborn .ln-stat-grid > .ln-card {
  color: var(--reset-tile-ink) !important;
  background: var(--reset-sun) !important;
}
.frontline-reborn .ln-stat-grid > .ln-card:nth-child(2) { background: var(--reset-rose) !important; }
.frontline-reborn .ln-stat-grid > .ln-card:nth-child(3) { background: var(--reset-sky) !important; }
.frontline-reborn .ln-stat-grid > .ln-card:nth-child(4) { background: var(--reset-coral) !important; }
.frontline-reborn .ln-stat :is(strong, span, i) { color: currentColor !important; opacity: 1 !important; }
.frontline-reborn .ln-stat strong {
  font-family: var(--heading-font-family);
  font-size: var(--fs-xl) !important;
  font-weight: 800 !important;
}

/* Feature copy: label on its own line, caption under it. */
.frontline-reborn :is(.ln-feature, .ln-bullets li, .ln-points li, .ln-steps li) h3,
.frontline-reborn :is(.ln-feature, .ln-bullets li, .ln-points li, .ln-steps li) h4 {
  margin-bottom: .25rem;
  color: var(--reset-cream) !important;
  font-size: var(--fs-base) !important;
}
.frontline-reborn :is(.ln-feature, .ln-bullets li, .ln-points li, .ln-steps li) p {
  max-width: 52ch;
  color: var(--reset-muted) !important;
  font-size: var(--fs-sm) !important;
}
.frontline-reborn :is(.ln-bullets li, .ln-points li) { border: 0 !important; }

/* Download card and system requirements. */
.frontline-reborn .ln-dlcard__head { border-bottom: 1.5px dashed var(--reset-line) !important; }
.frontline-reborn .ln-dlcard__os { color: var(--reset-cream) !important; }
.frontline-reborn .ln-dlcard__alt a { color: var(--reset-ink-coral) !important; }
.frontline-reborn .ln-req { border-block-color: var(--reset-line) !important; }
.frontline-reborn .ln-req :is(dt, dd, li) { border-color: var(--reset-line) !important; }
.frontline-reborn .ln-req dt { color: var(--reset-muted) !important; }
.frontline-reborn .ln-req :is(dd, li) { color: var(--reset-cream) !important; }
.frontline-reborn .ln-req i { color: var(--reset-ink-sun) !important; }
.frontline-reborn .ln-dlcard__alt { color: var(--reset-muted) !important; }
.frontline-reborn .ln-docs__copy :is(h3, p) { color: inherit !important; }
.frontline-reborn .ln-faq :is(summary, details) {
  border-color: var(--reset-line-strong) !important;
  color: var(--reset-cream) !important;
  background: transparent !important;
}
.frontline-reborn .ln-faq summary::marker { color: var(--reset-ink-sun); }

/* Final CTA band. */
.frontline-reborn .ln-final { background: transparent !important; }
.frontline-reborn .ln-final__bg { display: none !important; }
.frontline-reborn .ln-final__inner {
  border: 2px solid var(--reset-ink-sky) !important;
  border-radius: 18px !important;
  background-color: var(--reset-panel) !important;
  background-image: radial-gradient(var(--reset-dot) 1px, transparent 1px) !important;
  background-size: 18px 18px !important;
  box-shadow: 6px 6px 0 var(--reset-shadow) !important;
}
.frontline-reborn .ln-final__foot { color: var(--reset-muted) !important; }
.frontline-reborn .ln-mobilebar {
  border-top: 1.5px solid var(--reset-cream) !important;
  background: var(--reset-panel) !important;
  box-shadow: 0 -4px 0 var(--reset-shadow) !important;
  backdrop-filter: none !important;
}

/* ==========================================================================
   9. NEWS
   ========================================================================== */

.frontline-reborn :is(.news-page, .news-detail-page) { padding-bottom: 5.5rem; }
.frontline-reborn .nw-hero { padding: 6.5rem 0 2.5rem; }
.frontline-reborn .news-list { gap: 1.35rem; }
.frontline-reborn .nw-card__body { padding: 1.25rem 1.35rem 1.4rem; }
.frontline-reborn .nw-card__title { color: var(--reset-cream) !important; }
.frontline-reborn .nw-card:hover .nw-card__title { color: var(--reset-ink-coral) !important; }
.frontline-reborn .nw-card__summary { color: var(--reset-muted) !important; }
.frontline-reborn .nw-card__date {
  display: inline-flex;
  width: fit-content;
  padding: .28rem .7rem;
}

/* Loading skeletons had a white-on-black shimmer. */
.frontline-reborn .nw-skel {
  border: 2px solid var(--reset-line) !important;
  border-radius: 16px !important;
  background: var(--reset-panel) !important;
  box-shadow: none !important;
  clip-path: none !important;
}
.frontline-reborn :is(.nw-skel__media, .nw-skel__line) {
  border-radius: 8px !important;
  background: var(--reset-line) !important;
}
.frontline-reborn :is(.nw-loading__status, .news-empty, .news-error) {
  color: var(--reset-muted) !important;
}
.frontline-reborn .news-loading-dot { background: var(--reset-coral) !important; }

/* Article body. */
.frontline-reborn .nw-detail-shell {
  width: min(72ch, var(--shell));
  margin-inline: auto;
}
/* The shell is narrower than the 1200px .container it wraps, so the container
   has to follow the shell instead of overflowing it to the right. */
.frontline-reborn .nw-detail-shell .container {
  width: 100%;
  max-width: none;
}
.frontline-reborn .news-detail-summary {
  max-width: 62ch;
  color: var(--reset-muted) !important;
  font-size: var(--fs-md) !important;
}
.frontline-reborn .news-detail-content {
  color: var(--reset-cream) !important;
  font-size: var(--fs-base) !important;
  line-height: 1.72;
}
.frontline-reborn .news-detail-content :is(h2, h3, h4) {
  margin-top: 2rem;
  color: var(--reset-cream) !important;
}
.frontline-reborn .news-detail-content a { color: var(--reset-ink-coral) !important; }
.frontline-reborn .news-detail-content blockquote {
  border: 0 !important;
  border-left: 3px solid var(--reset-sun) !important;
  border-radius: 0 12px 12px 0 !important;
  color: var(--reset-cream) !important;
  background: var(--reset-panel) !important;
}
.frontline-reborn .news-detail-content :is(code, pre) {
  border: 1.5px solid var(--reset-line-strong) !important;
  border-radius: 10px !important;
  color: var(--reset-cream) !important;
  background: var(--reset-surface) !important;
}
.frontline-reborn .news-meta::before { background: var(--reset-ink-sun) !important; }

/* ==========================================================================
   10. STORE AND SUBSCRIPTIONS

   The pricing tiles are the one place the homepage already solved: three
   saturated fills with a single dark ink. Same rules, unscoped from .neo-*.
   ========================================================================== */

.frontline-reborn .store-container,
.frontline-reborn .store-shell,
.frontline-reborn .subscribe-shell { width: var(--shell); max-width: none; }
.frontline-reborn .store-section { padding-block: 4.2rem; }

.frontline-reborn .pricing-controls {
  border: 2px solid var(--reset-cream) !important;
  border-radius: 16px !important;
  color: var(--reset-cream) !important;
  background: var(--reset-panel) !important;
  box-shadow: 4px 4px 0 var(--reset-shadow) !important;
}
.frontline-reborn .pricing-controls__hint { color: var(--reset-muted) !important; }

.frontline-reborn .pricing-card {
  overflow: hidden;
  border: 2px solid var(--reset-cream) !important;
  border-radius: 16px !important;
  color: var(--reset-tile-ink) !important;
  background: var(--reset-sun) !important;
  box-shadow: 4px 4px 0 var(--reset-shadow) !important;
}
.frontline-reborn .pricing-grid > .pricing-card:nth-child(2) { background: var(--reset-rose) !important; }
.frontline-reborn .pricing-grid > .pricing-card:nth-child(3) { background: var(--reset-sky) !important; }
.frontline-reborn .pricing-card--pro,
.frontline-reborn .pricing-card.is-recommended { box-shadow: 8px 8px 0 var(--reset-shadow) !important; }
.frontline-reborn .pricing-card:hover {
  box-shadow: 8px 8px 0 var(--reset-shadow) !important;
  transform: translate(-3px, -3px);
}
.frontline-reborn .pricing-card--pro:hover,
.frontline-reborn .pricing-card.is-recommended:hover { box-shadow: 11px 11px 0 var(--reset-shadow) !important; }
.frontline-reborn .pricing-card > header,
.frontline-reborn .pricing-card__body,
.frontline-reborn .pricing-card > footer { background: transparent !important; }
.frontline-reborn .pricing-card__body { border-top: 1.5px solid currentColor !important; }
.frontline-reborn .pricing-card :is(h3, h4, p, li, strong, span, i, svg, small),
.frontline-reborn .pricing-card__details {
  color: currentColor !important;
  opacity: 1 !important;
}
.frontline-reborn .pricing-card h3 { font-size: var(--fs-lg) !important; }
.frontline-reborn .pricing-card__price strong { font-size: var(--fs-xl) !important; }
.frontline-reborn .pricing-card__price--custom strong { font-size: var(--fs-lg) !important; }
.frontline-reborn .pricing-card__recommendation {
  border-bottom: 1.5px solid currentColor !important;
  color: var(--reset-tile-ink) !important;
  background: rgba(36, 29, 20, .13) !important;
}
.frontline-reborn .pricing-card__limit {
  border: 1.5px solid currentColor !important;
  border-radius: 12px !important;
  color: currentColor !important;
  /* A warm scrim reads as one material with the tile; white at 14% just
     bleached whichever colour sat underneath it. */
  background: rgba(36, 29, 20, .13) !important;
}
/* A button inside a saturated tile keeps a light plate so its dark label holds
   the same contrast on all three fills. */
.frontline-reborn .pricing-card .store-button,
.frontline-reborn .pricing-card .btn {
  border-color: #241d14 !important;
  color: #241d14 !important;
  background: var(--reset-control-surface) !important;
}
.frontline-reborn .pricing-card :is(a, button):focus-visible {
  outline-color: var(--reset-tile-ink) !important;
}

/* Subscribe checkout. */
.frontline-reborn .subscribe-layout { gap: clamp(1.5rem, 3vw, 2.5rem); }
/* The checkout panel's sticky header is a translucent near-black bar inherited
   from the store's modal dialog. It sits on top of a now-light panel, so it
   has to become the panel too — otherwise it reads as a black band with the
   page's dark ink printed invisibly on it. */
.frontline-reborn :is(.subscribe-panel__header, .store-dialog__header) {
  border-bottom: 1.5px dashed var(--reset-line) !important;
  color: var(--reset-cream) !important;
  background: var(--reset-panel) !important;
  backdrop-filter: none !important;
}
.frontline-reborn :is(.subscribe-panel__header, .store-dialog__header) .store-kicker {
  color: var(--reset-ink-sun) !important;
}
/* Every list and legend the store sets in its own light grey. */
.frontline-reborn :is(.subscribe-summary__includes li, .store-field__hint,
  .contact-channel legend, .store-dialog__close, .store-purchase__panel li) {
  color: var(--reset-cream) !important;
}
.frontline-reborn .store-skip-link {
  color: #2a200e !important;
  background: var(--reset-sun) !important;
}
.frontline-reborn .subscribe-summary__card {
  border-color: var(--reset-ink-sky) !important;
  background-color: var(--reset-panel) !important;
  background-image: radial-gradient(var(--reset-dot) 1px, transparent 1px) !important;
  background-size: 18px 18px !important;
}
.frontline-reborn .subscribe-summary__price {
  color: var(--reset-cream) !important;
  font-family: var(--heading-font-family);
  font-size: var(--fs-xl) !important;
  font-weight: 800;
}
.frontline-reborn .subscribe-summary__plan,
.frontline-reborn .subscribe-summary__includes-label { color: var(--reset-ink-sun) !important; }
.frontline-reborn :is(.subscribe-currency-hint, .subscribe-trust, .lead-privacy) {
  color: var(--reset-muted) !important;
}
.frontline-reborn .lead-step { border-color: var(--reset-line) !important; }
.frontline-reborn .lead-success {
  border: 2px solid var(--reset-ink-ok) !important;
  border-radius: 16px !important;
  background: var(--reset-panel) !important;
  box-shadow: 4px 4px 0 var(--reset-shadow) !important;
}
.frontline-reborn .lead-success__icon {
  color: var(--reset-tile-ink) !important;
  background: var(--reset-ok) !important;
}
/* --- store.css colour normalisation ---------------------------------------
   store.css is the one stylesheet here that mostly ignores its own tokens: it
   hardcodes a near-white ink (#fff / #d7d8dc / #c8cad0 / #eff0f2 / #d4d5d9) in
   37 rules, a peach accent (#ff9b57) in 14, and a set of near-black panels in
   11. None of them move when the tokens do, so each group is answered once
   here rather than component by component. */
.frontline-reborn :is(.store-brand, .store-menu-button, .store-mobile-menu a,
  .store-hero__facts, .store-field, .comparison-table,
  .recommended-plan__result h3, .recommended-plan dd, .recommended-plan__all,
  .arena-configurator legend, .contact-channel legend,
  .contact-channel__options span, .onboarding-steps p,
  .store-final__actions small, .store-status, .store-icon-button,
  .lead-privacy, .store-nav a:hover, .store-login:hover) {
  color: var(--reset-cream) !important;
}
.frontline-reborn :is(.store-eyebrow, .store-kicker, .store-link,
  .store-brand small, .store-capabilities i, .recommended-plan__empty i,
  .onboarding-responsibility i, .lead-privacy a,
  .product-tour-dialog__summary span, .product-preview__caption button) {
  color: var(--reset-ink-coral) !important;
}
/* The step numbers are 38px plates, not type — they take the icon treatment
   rather than the accent ink, which only cleared 4.4:1 on their own tint. */
.frontline-reborn .onboarding-steps span {
  border: 1.5px solid var(--reset-cream) !important;
  border-radius: 12px !important;
  color: var(--reset-tile-ink) !important;
  background: var(--reset-sun) !important;
  box-shadow: 3px 3px 0 var(--reset-shadow) !important;
}
.frontline-reborn .faq-grid summary::after { color: var(--reset-ink-sun) !important; }

/* The product preview keeps a dark viewport — it frames video, and letting the
   footage sit on the page ground would flare around it. Only its chrome (the
   status line and the tab row) joins the light theme. */
.frontline-reborn .product-preview {
  border: 2px solid var(--reset-cream) !important;
  border-radius: 16px !important;
  background: var(--reset-panel) !important;
  box-shadow: 4px 4px 0 var(--reset-shadow) !important;
}
.frontline-reborn .product-preview__topline {
  border-bottom: 1.5px solid var(--reset-line) !important;
  color: var(--reset-muted) !important;
  background: var(--reset-panel) !important;
}
.frontline-reborn .product-preview__tabs { background: var(--reset-panel) !important; }
.frontline-reborn .product-preview__tabs button {
  border-radius: 999px !important;
  color: var(--reset-muted) !important;
  background: transparent !important;
  box-shadow: none !important;
}
.frontline-reborn .product-preview__tabs button[aria-selected="true"] {
  color: #2a200e !important;
  background: var(--reset-sun) !important;
  box-shadow: none !important;
}
.frontline-reborn .product-preview__status { background: var(--reset-ok) !important; box-shadow: none !important; }
.frontline-reborn .product-preview__caption {
  color: var(--reset-muted) !important;
  background: var(--reset-panel) !important;
}
.frontline-reborn .product-preview__caption p { color: var(--reset-muted) !important; }
.frontline-reborn .product-preview__play span {
  border: 1.5px solid var(--reset-cream) !important;
  color: var(--reset-tile-ink) !important;
  background: var(--reset-sun) !important;
}

/* Comparison table: sticky header and first column were near-black plates. */
.frontline-reborn .comparison-scroll {
  border: 2px solid var(--reset-cream) !important;
  border-radius: 16px !important;
  background: var(--reset-panel) !important;
  box-shadow: 4px 4px 0 var(--reset-shadow) !important;
}
.frontline-reborn .comparison-table :is(th, td) { border-bottom-color: var(--reset-line) !important; }
.frontline-reborn .comparison-table thead th,
.frontline-reborn .comparison-table th:first-child,
.frontline-reborn .comparison-table thead th:first-child {
  color: var(--reset-cream) !important;
  background: var(--reset-panel-raised) !important;
  box-shadow: none !important;
}
.frontline-reborn .comparison-table thead th { border-bottom: 2px solid var(--reset-cream) !important; }
.frontline-reborn .comparison-table :is(td, th):nth-child(3) {
  background: rgba(255, 192, 46, .12) !important;
}
.frontline-reborn .table-check { color: var(--reset-ink-ok) !important; }
.frontline-reborn .table-unknown { color: var(--reset-muted) !important; }

/* Final call to action — the page's one framed panel. */
.frontline-reborn .store-final__inner {
  border: 2px solid var(--reset-ink-sky) !important;
  border-radius: 18px !important;
  color: var(--reset-cream) !important;
  background-color: var(--reset-panel) !important;
  background-image: radial-gradient(var(--reset-dot) 1px, transparent 1px) !important;
  background-size: 18px 18px !important;
  box-shadow: 6px 6px 0 var(--reset-shadow) !important;
}
.frontline-reborn .store-final__inner :is(h2, p) { color: var(--reset-cream) !important; }
.frontline-reborn .store-final__inner p { color: var(--reset-muted) !important; }
.frontline-reborn .store-final__inner .store-eyebrow { color: var(--reset-ink-coral) !important; }
.frontline-reborn .store-dialog,
.frontline-reborn .store-purchase__panel {
  color: var(--reset-cream) !important;
  background: var(--reset-panel) !important;
}

.frontline-reborn .store-capabilities article { border-color: var(--reset-line-strong) !important; }
.frontline-reborn .store-faq :is(details, summary) {
  border-color: var(--reset-line-strong) !important;
  color: var(--reset-cream) !important;
  background: transparent !important;
}
.frontline-reborn .comparison-table-wrapper table { color: var(--reset-cream) !important; }
.frontline-reborn .comparison-table-wrapper :is(th, td) {
  border-color: var(--reset-line) !important;
  background: transparent !important;
}
.frontline-reborn .comparison-table-wrapper th { color: var(--reset-muted) !important; }

/* ==========================================================================
   11. ACCOUNT
   ========================================================================== */

/* --- account layer colour normalisation ------------------------------------
   The account page carries a late redesign layer of its own (styles.css
   ~10240-10560) that hardcodes a cool slate palette: 47 rules set a near-white
   or pale-blue ink, 36 paint a white-alpha plate and 39 draw a hairline at 10%
   opacity. None of it moves with the tokens, so on the light page the field
   labels dropped to 2.4:1 and the subscription values (#eef4fb) landed at
   1.0:1 — literally invisible. Grouped by role and remapped. */
.frontline-reborn :is(.quick-value, .panel-title, .profile-value,
  .subscription-title, .subscription-meta li span:last-child, .data-table td,
  .security-card h3, .account-menu-brand, .account-menu-help strong,
  .account-hero .section-title, .brand-text) {
  color: var(--reset-cream) !important;
}
.frontline-reborn :is(.account-field label, .subscription-meta li .muted,
  .data-table th, .panel-header .muted, .quick-card .muted, .security-card p,
  .account-hero-copy .muted, .account-field-note .profile-value,
  .panel-title i, .account-menu-help p, .account-menu-link i) {
  color: var(--reset-muted) !important;
}
/* Status inks: each keeps its meaning, in the darkened twin that survives a
   light ground. */
.frontline-reborn .status-none { color: var(--reset-muted) !important; }
.frontline-reborn .status-trial { color: var(--reset-ink-rose) !important; }
.frontline-reborn :is(.status-warning, .status-past_due, .status-unpaid) {
  color: var(--reset-ink-warn) !important;
}
.frontline-reborn :is(.status-canceled, .status-cancelled, .status-inactive,
  .delete-modal-card h3, .delete-warning strong, .security-card.danger .btn,
  .security-card.danger .security-card-icon) {
  color: var(--reset-ink-danger) !important;
}
.frontline-reborn #mfaSecurityCard.is-enabled .security-card-icon {
  color: var(--reset-ink-ok) !important;
}
/* White-alpha plates and 10%-opacity hairlines. */
.frontline-reborn :is(.account-field, .subscription-meta li, .subscription-meta,
  .profile-info .form-grid, .data-table tr, .data-table th, .empty-state,
  .status-none, .account-menu, .account-menu-link, .account-menu-help) {
  border-color: var(--reset-line-strong) !important;
  background: var(--reset-surface) !important;
}
.frontline-reborn :is(.account-hero .container, .profile-avatar img,
  .account-field:not(:nth-child(3n)), .account-field:nth-child(n + 4),
  .subscription-meta li:not(:nth-child(3n)), .subscription-meta li:nth-child(n + 4),
  .subscription-meta li + li) {
  border-color: var(--reset-line) !important;
}

.frontline-reborn.account-page .account-hero { background: transparent !important; }
.frontline-reborn .account-hero-copy .eyebrow { color: var(--reset-ink-sun) !important; }
.frontline-reborn .account-section { padding-block: 2.4rem; }
.frontline-reborn .panel-header { border-bottom: 1.5px dashed var(--reset-line) !important; }

/* --- cards that gained a border but never had padding ----------------------
   These three are containers whose children carried all the spacing, so once
   the border arrived the content sat flush against it. */
.frontline-reborn :is(.profile-card, .activate-key-card, .table-card) {
  padding: clamp(1.1rem, 2vw, 1.6rem) !important;
}
/* The key form was capped at 360px inside a 1040px panel, which read as a
   stray column pinned to the left edge. */
.frontline-reborn .activate-key-card {
  width: min(28rem, 100%);
  max-width: none !important;
}
.frontline-reborn .activate-key-card #licenseKeyInput { max-width: none !important; }
/* Its label was the one <label> on the page still at body size while every
   other field label is an 11px mono caption. */
.frontline-reborn.account-page .form-field > label {
  display: block;
  margin-bottom: .3rem;
  color: var(--reset-muted) !important;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: var(--fs-2xs) !important;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}

/* --- subscription card -----------------------------------------------------
   It reserved a 300px right gutter for a decorative badge positioned absolute
   against the right edge, so 674px of content sat in a 997px card and the
   whole block read as shoved to the left. The gutter goes, the badge rejoins
   the flow at the top, and the card becomes a centred column. */
.frontline-reborn .subscription-card {
  min-height: 0 !important;
  padding: clamp(1.25rem, 2.4vw, 1.9rem) !important;
  justify-items: center;
  text-align: center;
}
.frontline-reborn .subscription-card > * { width: 100%; }
.frontline-reborn .subscription-header {
  flex-direction: column;
  align-items: center !important;
  gap: .55rem;
}
.frontline-reborn .subscription-header > div {
  display: grid;
  justify-items: center;
  gap: .4rem;
}
/* Four items at auto-fit/230px land 3-up and leave the fourth stranded on a
   row of its own; a fixed 2x2 keeps the block square under the centred header. */
.frontline-reborn .subscription-meta {
  width: min(34rem, 100%);
  margin-inline: auto;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
@media (max-width: 520px) {
  .frontline-reborn .subscription-meta { grid-template-columns: minmax(0, 1fr) !important; }
}
/* Label above value reads better than label-left/value-right once the whole
   card is centred — each row becomes a small stat tile. */
.frontline-reborn .subscription-meta li {
  flex-direction: column;
  align-items: center !important;
  justify-content: center;
  gap: .25rem;
  text-align: center;
}
.frontline-reborn .subscription-meta li span:last-child {
  text-align: center !important;
  font-weight: 700;
}
.frontline-reborn .subscription-card .btn { justify-self: center; width: auto; }
.frontline-reborn .subscription-visual {
  position: static !important;
  order: -1;
  width: auto !important;
  height: auto !important;
  transform: none !important;
}
/* The badge sat on a rotated, glowing amber plate — pure dark-theme bloom. */
.frontline-reborn .subscription-visual::before { display: none !important; }
.frontline-reborn .profile-avatar {
  border: 2px solid var(--reset-cream) !important;
  border-radius: 50% !important;
  color: var(--reset-tile-ink) !important;
  background: var(--reset-sun) !important;
  box-shadow: 3px 3px 0 var(--reset-shadow) !important;
  clip-path: none !important;
}
.frontline-reborn .profile-value,
.frontline-reborn .quick-value { color: var(--reset-cream) !important; }
.frontline-reborn :is(.account-field-note, .field-hint, .subscription-meta) {
  color: var(--reset-muted) !important;
}
.frontline-reborn .subscription-visual-box {
  width: 56px !important;
  height: 56px !important;
  border: 1.5px solid var(--reset-cream) !important;
  border-radius: 50% !important;
  color: var(--reset-tile-ink) !important;
  background: var(--reset-ok) !important;
  box-shadow: 3px 3px 0 var(--reset-shadow) !important;
  clip-path: none !important;
  font-size: 22px !important;
}
.frontline-reborn .data-table { color: var(--reset-cream) !important; }
.frontline-reborn .data-table :is(th, td) {
  border-color: var(--reset-line) !important;
  background: transparent !important;
}
.frontline-reborn .data-table th {
  color: var(--reset-muted) !important;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: var(--fs-2xs);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.frontline-reborn .data-table tbody tr:hover { background: var(--reset-surface) !important; }
.frontline-reborn :is(.empty-state, .empty) { color: var(--reset-muted) !important; }
.frontline-reborn .security-actions .btn { font-size: var(--fs-xs) !important; }

/* Modals: the delete-account dialog and the account modals. */
.frontline-reborn :is(.delete-modal-backdrop, .modal-backdrop, .loading-overlay) {
  background: rgba(23, 19, 13, .58) !important;
  backdrop-filter: blur(3px);
}
.frontline-reborn :is(.delete-modal-card, .account-modal-card) {
  box-shadow: 7px 7px 0 var(--reset-shadow) !important;
}
.frontline-reborn .account-modal-card--danger { border-color: var(--reset-ink-danger) !important; }
.frontline-reborn .account-modal-close {
  border: 1.5px solid var(--reset-cream) !important;
  border-radius: 999px !important;
  color: var(--reset-cream) !important;
  background: var(--reset-surface) !important;
  clip-path: none !important;
}
.frontline-reborn .delete-confirm-input { border-color: var(--reset-ink-danger) !important; }
/* A filled destructive button takes the fill red with the tile ink, not white
   on the *ink* red: --reset-ink-danger lightens in dark mode, so white-on-it
   fell to 2.2:1. --reset-danger holds 5.6:1 against the tile ink in both. */
.frontline-reborn .btn.danger,
.frontline-reborn .delete-actions .btn.danger {
  border-color: var(--reset-cream) !important;
  color: var(--reset-tile-ink) !important;
  background: var(--reset-danger) !important;
}
.frontline-reborn .loading-spinner,
.frontline-reborn .loader,
.frontline-reborn .download-spinner {
  border-color: var(--reset-line) !important;
  border-top-color: var(--reset-ink-sun) !important;
}
.frontline-reborn .toast {
  border: 1.5px solid var(--reset-cream) !important;
  border-radius: 14px !important;
  color: var(--reset-cream) !important;
  background: var(--reset-panel) !important;
  box-shadow: 5px 5px 0 var(--reset-shadow) !important;
  clip-path: none !important;
}
.frontline-reborn .toast.success { border-color: var(--reset-ink-ok) !important; }
.frontline-reborn .toast.error { border-color: var(--reset-ink-danger) !important; }

/* ==========================================================================
   12. AUTH, INVITE, DOWNLOAD
   ========================================================================== */

.frontline-reborn .auth-card { width: min(34rem, 100%); margin-inline: auto; }
.frontline-reborn .auth-card p { color: var(--reset-muted) !important; }
.frontline-reborn .captcha-container { filter: none !important; }
.frontline-reborn .auth-required-icon,
.frontline-reborn .download-icon { color: var(--reset-tile-ink) !important; }

.frontline-reborn .download-progress-bar,
.frontline-reborn .download-progress-container {
  overflow: hidden;
  border: 1.5px solid var(--reset-cream) !important;
  border-radius: 999px !important;
  background: var(--reset-surface) !important;
  clip-path: none !important;
}
.frontline-reborn .download-progress-fill {
  background: var(--reset-sun) !important;
  box-shadow: none !important;
}
.frontline-reborn .download-progress-text { color: var(--reset-muted) !important; }
.frontline-reborn .install-step { border-color: var(--reset-line) !important; }
.frontline-reborn .install-steps .step-content h4 { color: var(--reset-cream) !important; }
.frontline-reborn .invite-badge {
  color: var(--reset-tile-ink) !important;
  background: var(--reset-sun) !important;
}

/* invite.html carries its whole design in a page-level <style> block rather
   than a shared stylesheet, so none of the component rules above reach it.
   Its palette is a small, regular set — #fff / #edf3fb for ink, #9caabc for
   secondary, and two near-black plates — and each maps onto one token. */
.frontline-reborn.invite-page,
.frontline-reborn :is(.invite-brand, .invite-card h1, .invite-context dd,
  .invite-credentials dd, .invite-binding-note strong, .invite-warning strong,
  .invite-input, .invite-credential-password) {
  color: var(--reset-cream) !important;
}
.frontline-reborn :is(.invite-lead, .invite-binding-note, .invite-warning,
  .invite-field label, .invite-inline-status, .invite-save-state,
  .invite-status-view p) {
  color: var(--reset-muted) !important;
}
.frontline-reborn .invite-card {
  border: 2px solid var(--reset-cream) !important;
  border-radius: 16px !important;
  background: var(--reset-panel) !important;
  box-shadow: 6px 6px 0 var(--reset-shadow) !important;
}
.frontline-reborn :is(.invite-context > div, .invite-credentials > div) {
  border: 1.5px solid var(--reset-line-strong) !important;
  border-radius: 12px !important;
  background: var(--reset-surface) !important;
}
.frontline-reborn :is(.invite-role-badge, .invite-binding-note, .invite-warning) {
  background: var(--reset-surface) !important;
}
.frontline-reborn .invite-role-badge {
  border: 1.5px solid var(--reset-ink-sky) !important;
  border-radius: 999px !important;
  color: var(--reset-ink-sky) !important;
}
/* The wordmark is a white glyph on transparent, same as the site-chrome mark. */
.frontline-reborn .invite-brand img { filter: var(--reset-footer-logo-filter) !important; }
.frontline-reborn .invite-brand span { font-family: var(--heading-font-family) !important; }

/* ==========================================================================
   13. KNOWLEDGE BASE
   ========================================================================== */

.frontline-reborn.kb-page .kb-main { padding-bottom: 5.5rem; }
.frontline-reborn :is(.kb-sidebar, .kb-toc, .kb-filters) {
  border: 2px solid var(--reset-line-strong) !important;
  border-radius: 16px !important;
  color: var(--reset-cream) !important;
  background: var(--reset-panel) !important;
  box-shadow: none !important;
  clip-path: none !important;
}
.frontline-reborn .kb-post :is(h1, h2, h3) { color: var(--reset-cream) !important; }
.frontline-reborn .kb-post :is(p, li) { color: var(--reset-cream) !important; }
.frontline-reborn .kb-post a { color: var(--reset-ink-coral) !important; }
.frontline-reborn .kb-lb { background: rgba(23, 19, 13, .72) !important; }
.frontline-reborn :is(.kb-tag, .kb-chip) {
  border: 1.5px solid var(--reset-line-strong) !important;
  border-radius: 999px !important;
  color: var(--reset-muted) !important;
  background: var(--reset-surface) !important;
  clip-path: none !important;
}
.frontline-reborn :is(.kb-tag, .kb-chip).is-active {
  border-color: var(--reset-cream) !important;
  color: var(--reset-tile-ink) !important;
  background: var(--reset-sun) !important;
}

/* --- knowledge.css colour normalisation -----------------------------------
   The knowledge base is a bespoke dark UI: 128 rules set their ink as
   rgba(255,255,255,A) and 33 paint a near-black plate. In dark mode that is
   already right; in light mode every one of them inverts. Rather than restyle
   each component, the rules are grouped by what the alpha meant - full-
   strength ink, secondary ink, or a surface - and remapped to the matching
   token. Elements printed over media (the lightbox, video scrims, image
   overlays) are excluded: their white-on-dark is correct in both themes. */
/* Ink at full strength (#fff or alpha >= .7). */
.frontline-reborn .kb-ask__title,
.frontline-reborn .kb-asset__title,
.frontline-reborn .kb-chip.is-active,
.frontline-reborn .kb-chip:hover,
.frontline-reborn .kb-copyvariant b,
.frontline-reborn .kb-credits strong,
.frontline-reborn .kb-dl:hover,
.frontline-reborn .kb-empty__title,
.frontline-reborn .kb-generator-note strong,
.frontline-reborn .kb-icon-btn:hover,
.frontline-reborn .kb-label,
.frontline-reborn .kb-model__box b,
.frontline-reborn .kb-net input:checked+.kb-net__box b,
.frontline-reborn .kb-net input:checked+.kb-net__box i,
.frontline-reborn .kb-net__box b,
.frontline-reborn .kb-palette.is-active,
.frontline-reborn .kb-palette:hover,
.frontline-reborn .kb-pill.is-active,
.frontline-reborn .kb-pill:hover,
.frontline-reborn .kb-post-image__formats b,
.frontline-reborn .kb-post-image__head h3,
.frontline-reborn .kb-post-image__sizes b,
.frontline-reborn .kb-post-image__status b,
.frontline-reborn .kb-post__actions,
.frontline-reborn .kb-post__caption,
.frontline-reborn .kb-post__caption b,
.frontline-reborn .kb-post__name,
.frontline-reborn .kb-post__visual,
.frontline-reborn .kb-post__visual-placeholder > span,
.frontline-reborn .kb-q summary,
.frontline-reborn .kb-rail-item.is-active,
.frontline-reborn .kb-rail-item:hover,
.frontline-reborn .kb-reference input:checked + .kb-reference__box .kb-reference__check,
.frontline-reborn .kb-reference__copy b,
.frontline-reborn .kb-search__clear:hover,
.frontline-reborn .kb-size b,
.frontline-reborn .kb-stat__value,
.frontline-reborn .kb-state__title,
.frontline-reborn .kb-switch,
.frontline-reborn .kb-tab.is-active,
.frontline-reborn .kb-tab:hover,
.frontline-reborn .kb-variant.is-active,
.frontline-reborn .kb-variant:hover,
.frontline-reborn .kb-video__title,
.frontline-reborn .kb-viewswitch__btn:hover {
  color: var(--reset-cream) !important;
}

/* Secondary ink (alpha < .7). */
.frontline-reborn .kb-asset__meta,
.frontline-reborn .kb-canvas__caption,
.frontline-reborn .kb-chip,
.frontline-reborn .kb-chip em,
.frontline-reborn .kb-color,
.frontline-reborn .kb-copyvariant i,
.frontline-reborn .kb-copyvariant span,
.frontline-reborn .kb-credits,
.frontline-reborn .kb-custom-size i,
.frontline-reborn .kb-dl,
.frontline-reborn .kb-empty__text,
.frontline-reborn .kb-formats span,
.frontline-reborn .kb-generator-note,
.frontline-reborn .kb-head__kicker,
.frontline-reborn .kb-hint,
.frontline-reborn .kb-icon-btn,
.frontline-reborn .kb-input-icon,
.frontline-reborn .kb-input::placeholder,
.frontline-reborn .kb-label--inline,
.frontline-reborn .kb-label--soft,
.frontline-reborn .kb-model__box em,
.frontline-reborn .kb-net__box em,
.frontline-reborn .kb-net__box i,
.frontline-reborn .kb-optional,
.frontline-reborn .kb-palette,
.frontline-reborn .kb-pill,
.frontline-reborn .kb-post-image__actions > p,
.frontline-reborn .kb-post-image__formats em,
.frontline-reborn .kb-post-image__head p,
.frontline-reborn .kb-post-image__sizes em,
.frontline-reborn .kb-post-image__sizes i,
.frontline-reborn .kb-post-image__status > div,
.frontline-reborn .kb-post-image__status small,
.frontline-reborn .kb-post__counter,
.frontline-reborn .kb-post__editnote,
.frontline-reborn .kb-post__place,
.frontline-reborn .kb-post__visual p,
.frontline-reborn .kb-preview__label,
.frontline-reborn .kb-protected-preview,
.frontline-reborn .kb-q summary i,
.frontline-reborn .kb-q__body,
.frontline-reborn .kb-rail-item,
.frontline-reborn .kb-rail-item em,
.frontline-reborn .kb-reference-empty,
.frontline-reborn .kb-reference__copy span,
.frontline-reborn .kb-reference__visual,
.frontline-reborn .kb-search__clear,
.frontline-reborn .kb-search__hint,
.frontline-reborn .kb-search__icon,
.frontline-reborn .kb-search__input::placeholder,
.frontline-reborn .kb-size em,
.frontline-reborn .kb-stat__label,
.frontline-reborn .kb-state__progress,
.frontline-reborn .kb-state__text,
.frontline-reborn .kb-tab,
.frontline-reborn .kb-tab__count,
.frontline-reborn .kb-tag,
.frontline-reborn .kb-unit,
.frontline-reborn .kb-upload,
.frontline-reborn .kb-upload:hover,
.frontline-reborn .kb-variant,
.frontline-reborn .kb-video__meta,
.frontline-reborn .kb-viewswitch__btn,
.frontline-reborn .kb-zoom {
  color: var(--reset-muted) !important;
}

/* Near-black plates become the theme surface. */
.frontline-reborn .kb-color,
.frontline-reborn .kb-copyvariant,
.frontline-reborn .kb-generator-note,
.frontline-reborn .kb-input,
.frontline-reborn .kb-model__box,
.frontline-reborn .kb-net__box,
.frontline-reborn .kb-palette,
.frontline-reborn .kb-post,
.frontline-reborn .kb-post-image,
.frontline-reborn .kb-post-image__formats label > span,
.frontline-reborn .kb-post-image__sizes label > span,
.frontline-reborn .kb-preview__bar,
.frontline-reborn .kb-reference__box,
.frontline-reborn .kb-reference__check,
.frontline-reborn .kb-search,
.frontline-reborn .kb-size,
.frontline-reborn .kb-tabs,
.frontline-reborn .kb-textblock,
.frontline-reborn .kb-viewswitch {
  border-color: var(--reset-line-strong) !important;
  background: var(--reset-surface) !important;
}

.frontline-reborn .kb-net input:checked + .kb-net__box,
.frontline-reborn .kb-model input:checked:not(:disabled) + .kb-model__box {
  border-color: var(--kb-amber) !important;
  background: var(--kb-selection-bg) !important;
  box-shadow: inset 0 0 0 1px var(--kb-selection-shadow), 0 8px 24px rgba(0, 0, 0, .14) !important;
}

.frontline-reborn .kb-net input:checked + .kb-net__box i {
  color: var(--kb-amber) !important;
}

.frontline-reborn .kb-net input:checked + .kb-net__box em,
.frontline-reborn .kb-model input:checked:not(:disabled) + .kb-model__box em {
  color: var(--reset-cream) !important;
}


/* ==========================================================================
   14. BOOKING

   booking.html is Tailwind-first, so it is the one page whose surfaces come
   from utility classes rather than named components.
   ========================================================================== */

.frontline-reborn :is([class*="bg-dark-"], [class*="bg-gray-"],
  .bg-black\/40, .bg-white\/5, .bg-white\/10) {
  border-radius: 16px;
  color: var(--reset-cream) !important;
  background: var(--reset-panel) !important;
}
.frontline-reborn :is([class*="border-white/"], [class*="border-gray-"],
  [class*="border-dark-"]) { border-color: var(--reset-line-strong) !important; }

/* Semantic state utilities. frontline-index-theme.css repaints `.text-red-400`
   in a light coral tuned for the black theme; on the light tint underneath it
   only reaches 2:1, so each state takes its darkened twin. */
.frontline-reborn [class*="text-red-"] { color: var(--reset-ink-danger) !important; }
.frontline-reborn [class*="text-green-"] { color: var(--reset-ink-ok) !important; }
.frontline-reborn [class*="text-blue-"] { color: var(--reset-ink-sky) !important; }
.frontline-reborn [class*="text-purple-"] { color: var(--reset-ink-rose) !important; }
.frontline-reborn :is([class*="bg-red-"], [class*="bg-green-"], [class*="bg-blue-"],
  [class*="bg-purple-"], [class*="bg-brand-"])[class*="/10"] {
  border-color: var(--reset-line-strong) !important;
  background: var(--reset-surface) !important;
}
.frontline-reborn .booking-widget { padding: clamp(1.25rem, 2.4vw, 2rem) !important; }
.frontline-reborn .booking-input { width: 100%; }

/* ==========================================================================
   15. LEGAL
   ========================================================================== */

.frontline-reborn .legal-hero { background: transparent !important; }
.frontline-reborn .legal-doc {
  width: min(74ch, var(--shell));
  margin-inline: auto;
}
.frontline-reborn .legal-doc :is(h2, h3) {
  margin-top: 2rem;
  color: var(--reset-cream) !important;
}
.frontline-reborn .legal-doc :is(p, li) {
  color: var(--reset-cream) !important;
  font-size: var(--fs-sm) !important;
  line-height: 1.7;
}
.frontline-reborn .legal-doc a { color: var(--reset-ink-coral) !important; }

.frontline-reborn .legal-doc--b2b {
  gap: 0;
  padding: clamp(1.1rem, 2.8vw, 2rem);
}

.frontline-reborn .legal-doc--b2b > section {
  gap: .8rem;
  padding-block: clamp(1.3rem, 3vw, 2rem);
  scroll-margin-top: 6rem;
}

.frontline-reborn .legal-doc--b2b > section:first-child {
  padding-top: 0;
}

.frontline-reborn .legal-doc--b2b > section:last-child {
  padding-bottom: 0;
}

.frontline-reborn .legal-doc--b2b > section + section {
  border-top: 1px solid var(--reset-line-strong);
}

.frontline-reborn .legal-doc--b2b :is(h2, h3) {
  margin-top: 0 !important;
  text-wrap: balance;
}

.frontline-reborn .legal-doc--b2b .legal-intro h2,
.frontline-reborn .legal-doc--b2b .legal-kicker {
  color: var(--reset-ink-sun) !important;
}

.frontline-reborn .legal-doc--b2b .legal-kicker {
  margin: 0;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: .76rem !important;
  font-weight: 800;
  letter-spacing: .12em;
  line-height: 1.55;
  text-transform: uppercase;
}

.frontline-reborn .legal-doc--b2b .legal-clause {
  margin: 0;
  text-wrap: pretty;
}

.frontline-reborn .legal-doc--b2b ul {
  gap: .65rem;
  padding-left: 1.35rem;
}

@media (max-width: 640px) {
  .frontline-reborn .legal-doc--b2b > section {
    padding-block: 1.2rem;
  }

  .frontline-reborn .legal-doc--b2b :is(p, li) {
    font-size: 14px !important;
  }

  .frontline-reborn .legal-doc--b2b .legal-kicker {
    letter-spacing: .08em;
  }
}

/* ==========================================================================
   16. ERROR PAGES

   The big number was a glowing amber gradient clipped to the glyphs — the one
   element on these pages that carried all the weight. It becomes a flat
   outline instead, which is legible on both grounds and matches the theme's
   printed feel.
   ========================================================================== */

.frontline-reborn .not-found,
.frontline-reborn .error-page { background: transparent !important; }
.frontline-reborn .not-found__inner,
.frontline-reborn .error-page__inner {
  width: min(52rem, var(--shell));
  margin-inline: auto;
  border-color: var(--reset-ink-sun) !important;
  box-shadow: 6px 6px 0 var(--reset-shadow) !important;
  text-align: center;
}
.frontline-reborn :is(.not-found__code, .error-page__code) {
  color: var(--reset-cream) !important;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
  font-family: var(--heading-font-family) !important;
  font-size: clamp(5rem, 17vw, 11rem) !important;
  font-weight: 900 !important;
  letter-spacing: -.04em !important;
  filter: none !important;
  text-shadow: none !important;
  animation: none !important;
}
.frontline-reborn :is(.not-found__badge, .error-page__badge, .error-page__status,
  .error-page__eta) {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .34rem .8rem !important;
  border: 1.5px solid var(--reset-cream) !important;
  border-radius: 999px !important;
  color: var(--reset-cream) !important;
  background: var(--reset-surface) !important;
  box-shadow: 3px 3px 0 var(--reset-shadow) !important;
  font-size: var(--fs-2xs) !important;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.frontline-reborn :is(.not-found__desc, .error-page__desc) {
  max-width: 52ch;
  margin-inline: auto;
  color: var(--reset-muted) !important;
  font-size: var(--fs-md) !important;
}
.frontline-reborn .not-found__actions,
.frontline-reborn .error-page__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .8rem;
}
.frontline-reborn :is(.not-found__links, .error-page__links, .error-page__socials) {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .7rem;
}
/* 503 animates a pair of gear glyphs in the old amber; they are decoration and
   the theme has no glow to hang them on. */
.frontline-reborn .error-page__gears { color: var(--reset-ink-sun) !important; filter: none !important; }
.frontline-reborn .quick-link {
  padding: .55rem 1rem !important;
  border-width: 1.5px !important;
  border-radius: 999px !important;
  color: var(--reset-cream) !important;
  background: var(--reset-surface) !important;
  box-shadow: 3px 3px 0 var(--reset-shadow) !important;
  font-size: var(--fs-xs) !important;
  font-weight: 700;
}
.frontline-reborn .quick-link:hover {
  color: #2a170f !important;
  background: var(--reset-coral) !important;
}

/* ==========================================================================
   17. MOTION AND RESPONSIVE
   ========================================================================== */

/* The launcher's scroll-reveal ships a 100px travel; the same short rise the
   homepage uses lands closer to the theme's printed feel. */
.frontline-reborn .ln-reveal:not(.is-visible) { transform: translate3d(0, 26px, 0); }
.frontline-reborn .ln-reveal { transition-timing-function: cubic-bezier(.2, .7, .2, 1); }

@media (max-width: 900px) {
  .frontline-reborn .ln-hero__grid { grid-template-columns: minmax(0, 1fr); }
  .frontline-reborn .news-list { grid-template-columns: minmax(0, 1fr); }
  .frontline-reborn .news-list .nw-card:first-child { grid-column: auto; }
}

@media (max-width: 640px) {
  .frontline-reborn .ln-section { padding-block: 3.4rem; }
  .frontline-reborn .store-section { padding-block: 3rem; }
  .frontline-reborn :is(.ln-btn, .btn, .store-button).is-block,
  .frontline-reborn .ln-dl-actions > .ln-btn { width: 100%; }
  .frontline-reborn :is(.card, .ln-card, .nw-card, .auth-card, .account-panel,
    .pricing-card, .not-found__inner) { border-width: 1.5px !important; }
}
