/* Launch dark theme for the three command-center product pages (from the ChatGPT return, 2026-09-27).
   Load AFTER /css/ops/ops-pages.css.
   Scope to the three body classes only; the actual white-label software demos keep their own palettes. */
body.ops:is(.ops--ins,.ops--dealer,.ops--fund) {
  --ink:#f6f0ff;--ink-2:#d0c3df;--ink-3:#ae9bbb;
  --line:rgba(196,151,255,.18);--line-2:rgba(196,151,255,.28);
  --panel:#130b22;--panel-2:#1b102e;--tint:#0e0919;
  --brand:#b86cff;--brand-text:#d9a7ff;--brand-soft:rgba(155,78,240,.18);
  --btn:#842dea;--btn-hover:#a242ff;--btn-ink:#fff;--focus:#d7a1ff;
  --shadow:0 14px 36px rgba(0,0,0,.28);
  --shadow-lg:0 28px 70px rgba(0,0,0,.42);
  background:#090613;color:var(--ink);
}
body.ops.ops--ins {--niche:#deb85a}
body.ops.ops--dealer {--niche:#91aaff}
body.ops.ops--fund {--niche:#80d3a5}
.ops .op-main {background:#090613;color:var(--ink)}
.ops .op-main :is(h1,h2,h3,h4) {color:#faf6ff}
.ops .op-main :is(.op-lead,.op-muted,.op-note,.op-cap,.op-fine,.op-small) {color:var(--ink-2)}
.ops .op-main .op-accent {color:#dab0ff}
.ops .op-main .op-eyebrow {color:var(--niche)}
.ops .op-main .op-eyebrow::before {background:var(--niche)}
.ops .op-main .op-btn--primary,.ops .op-subnav__cta {background:linear-gradient(115deg,#9f42f4,#6419bf);border-color:#bd72ff;box-shadow:0 10px 25px rgba(122,38,213,.28)}
.ops .op-main .op-btn--primary:hover {background:linear-gradient(115deg,#b85fff,#7a28dd)}
.ops .op-main .op-btn--secondary {background:rgba(23,12,39,.82);color:#f8f2ff!important;border-color:rgba(201,152,255,.48)}
.ops .op-main .op-btn--text {color:#ddb3ff!important}
.ops .op-main .op-btn:hover {transform:translateY(-2px)}
.ops .op-main .op-sec {padding-block:clamp(66px,7.5vw,108px);background:#0b0715}
.ops .op-main .op-sec--panel {background:radial-gradient(ellipse 90% 100% at 55% 0%,rgba(79,29,133,.19),transparent 75%),#140b25}
.ops .op-main .op-sec--tint {background:radial-gradient(ellipse 70% 60% at 90% 10%,rgba(137,53,205,.15),transparent 80%),#0d0819}
.ops .op-main .op-sec--line {border-top:0}
.ops .op-main .op-sec + .op-sec {position:relative}
.ops .op-main .op-sec + .op-sec::before {content:"";position:absolute;top:0;left:8%;right:8%;height:1px;background:linear-gradient(90deg,transparent,rgba(179,112,255,.22),transparent)}
.ops .op-main .op-hero {position:relative;isolation:isolate;min-height:640px;display:flex;align-items:center;padding:88px 0 82px;background:#0b0617;overflow:hidden}
.ops .op-main .op-hero::before {background:none;opacity:0}
.ops .op-main .op-hero__grid {display:block}
.ops .op-main .op-hero__grid > div:first-child {max-width:580px}
.ops .op-main .op-hero .op-stage {display:none}
/* Corey 2026-09-28: white-wordmark logo straight on the hero art (no white plate), same footprint as the old plate */
.ops .op-main .op-hero__logo {display:block;height:auto;width:250px;max-width:75vw;max-height:none;object-fit:contain;object-position:left center;padding:0;background:none;border-radius:0;box-shadow:none;filter:drop-shadow(0 2px 10px rgba(0,0,0,.45))}
.ops .op-main .op-hero h1 {font-family:Oswald,Arial,sans-serif;text-transform:none;font-weight:600;letter-spacing:-.022em;font-size:clamp(49px,5.2vw,78px);line-height:1.08;text-wrap:balance;text-shadow:0 4px 25px rgba(0,0,0,.35)}
.ops .op-main .op-note {color:#d7c8df}
.ops .op-main .op-note::before {background:var(--niche)}
.ops .op-main .op-wrap {max-width:1240px}
.ops .op-main .op-subnav {top:0;background:rgba(13,7,25,.94);border-color:var(--line);backdrop-filter:blur(16px)}
.ops .op-main .op-subnav a {color:#d9cae8}
.ops .op-main .op-subnav a:hover {background:rgba(148,76,226,.22);color:white}
.ops .op-main :is(.op-steps li,.op-quote,.op-offer article,.op-tile,.op-trycard,.op-roletab,.op-ask,.op-conns li,.op-flow li,.op-pricecard,.op-pcard,.op-other) {background:linear-gradient(145deg,rgba(38,20,61,.96),rgba(20,12,35,.98));color:#f7efff;border-color:rgba(188,134,255,.25);box-shadow:0 18px 42px rgba(0,0,0,.12)}
.ops .op-main :is(.op-steps li,.op-quote,.op-offer article,.op-tile,.op-trycard,.op-roletab,.op-ask,.op-conns li,.op-flow li,.op-pricecard,.op-pcard,.op-other) :is(p,small,span) {color:var(--ink-2)}
.ops .op-main .op-steps li::before {color:var(--niche);background:color-mix(in srgb,var(--niche) 20%,transparent);border:1px solid color-mix(in srgb,var(--niche) 55%,transparent)}
.ops .op-main .op-ticks li {color:#d4c7e0}
.ops .op-main .op-ticks strong {color:#fff}
.ops .op-main .op-ticks li::before {background-color:rgba(167,95,247,.25);filter:brightness(1.8)}
.ops .op-main .op-quote blockquote {color:#fff}
.ops .op-main .op-quote .op-answer {color:#f1e7fc;border-color:var(--line)}
.ops .op-main .op-offer strong {color:#dcb5ff}
.ops .op-main .op-feature {border-color:var(--line)}
.ops .op-main .op-feature__num {color:var(--niche)}
.ops .op-main .op-frame {background:#f9f7fd;border-color:rgba(196,139,255,.5);box-shadow:0 25px 60px rgba(0,0,0,.35),0 0 40px rgba(126,52,218,.12)}
.ops .op-main .op-frame__bar {background:#241239;border-color:rgba(189,125,255,.25)}
.ops .op-main .op-frame__bar i {background:#b47be6}
.ops .op-main .op-frame__bar span {background:#140a24;border-color:#5a317d;color:#d9beec}
.ops .op-main .op-phone {background:#1a102c;box-shadow:0 25px 60px rgba(0,0,0,.42)}
.ops .op-main .op-phone::before {background:#1a102c}
.ops .op-main .op-photos figure {border:1px solid var(--line)}
.ops .op-main .op-photos figcaption {background:rgba(17,9,29,.93);color:#f8efff}
.ops .op-main .op-roletab[aria-selected=true] {border-color:#bd7dff;box-shadow:0 0 0 1px #bd7dff,0 10px 35px rgba(126,54,204,.23)}
.ops .op-main .op-roletab__ico {color:#f6eaff}
.ops .op-main .op-approve {background:#211331;color:var(--ink-2);border:1px solid var(--line)}
.ops .op-main .op-approve b {color:#fff}
.ops .op-main .op-trycard:hover {border-color:#bc75ff;box-shadow:0 20px 44px rgba(91,30,154,.3)}
.ops .op-main .op-trycard .op-go {color:#d9a6ff}
.ops .op-main .op-club {background:radial-gradient(ellipse 65% 95% at 80% 30%,rgba(30,108,69,.16),transparent 80%),#130d22;border:0}
.ops .op-main .op-flow li::before {background:#338a60}
.ops .op-main .op-faq {border-color:var(--line)}
.ops .op-main .op-faq details {border-color:var(--line)}
.ops .op-main .op-faq summary {color:#f6eeff}
.ops .op-main .op-faq summary::after {background-color:#2c1941;filter:brightness(1.7)}
.ops .op-main .op-faq .op-a {color:#d5c7df}
.ops .op-main .op-faq .op-a a {color:#e1b6ff}
.ops .op-main .op-close {background:linear-gradient(180deg,#160c27,#0a0614);border:0}
.ops .op-main .op-other {text-decoration:none}
/* Corey 2026-09-28: product logos on dark use the white-wordmark version, transparent, no plate */
.ops .op-main .op-other img {background:none;border-radius:0;padding:0;height:36px;filter:drop-shadow(0 2px 8px rgba(0,0,0,.35))}
.ops .op-main .op-close__box .op-pcard__logo {background:none;padding:0;filter:drop-shadow(0 2px 8px rgba(0,0,0,.35))}
/* FundableClub sits on the dark club band: white-wordmark version, no plate */
.ops .op-main .op-club__logo {background:none;border-radius:0;padding:0;width:auto}
.ops .op-main .op-other b {color:#d9a5ff}
@media(prefers-reduced-motion:reduce){.ops .op-main .op-btn:hover,.ops .op-main .op-trycard:hover{transform:none}}

/* ---------- Launch integration (Claude, 2026-09-27) ---------- */
/* Launch type: Lato body, Oswald display (the site's condensed heading face) */
body.ops:is(.ops--ins,.ops--dealer,.ops--fund){--f:'Lato',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;font-family:var(--f)}
.ops .op-main :is(h1,h2,h3,h4){font-family:'Oswald',Arial,sans-serif;font-weight:600;letter-spacing:.005em;line-height:1.12}
.ops .op-main h2{font-size:clamp(32px,3.8vw,50px)}
.ops .op-main h3{font-weight:500;letter-spacing:.01em}
.ops .op-main .op-feature h3{font-size:clamp(26px,2.6vw,36px)}
.ops .op-main .op-quote blockquote{font-family:'Lato',Arial,sans-serif;letter-spacing:0}
.ops .op-main .op-offer strong{font-family:'Oswald',Arial,sans-serif;font-weight:600;letter-spacing:0}

/* Header: the site's header markup, solid dark bar in normal flow (same skin as /experience/dealflow) */
/* Corey 2026-09-28: the header floats transparent over the hero so the hero video runs up behind it (the /experience pattern).
   It is position:absolute, so it scrolls away with the hero and is only ever transparent over the hero's darkened top. */
html body.ops>header#lhd,html body.ops>header#lhd.stuck{position:absolute!important;top:0;left:0;right:0;z-index:90!important;background:transparent!important;border-bottom:0!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important}
body.ops #lhd .lhd-links a{font-family:'Oswald',Arial,sans-serif;text-transform:uppercase;letter-spacing:1px;font-weight:600;font-size:.9rem;color:#ece4fa;text-decoration:none;white-space:nowrap;padding:6px 0;border-bottom:2px solid transparent}
body.ops #lhd .lhd-links a:hover{color:#fff;border-bottom-color:rgba(216,180,254,.6)}
body.ops #lhd .lhd-links a[aria-current="page"]{color:#fff;border-bottom-color:#c084fc}
body.ops #lhd .nav-ghost{min-height:44px;background:#fff;color:#291443;border:1px solid #ddd0ec;border-radius:10px;box-shadow:none}
body.ops #lhd .lhd-burger{width:44px;height:44px;min-width:44px;border-radius:10px;box-shadow:none}

/* Hero art slot: a still now, a looping background video later (see the comment in each page's hero) */
.ops .op-main .op-hero__art{position:absolute;inset:0;z-index:-1;margin:0;background:#0b0617}
.ops .op-main .op-hero__art :is(img,video){position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:right center}
.ops .op-main .op-hero__art::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(8,4,19,.97) 0%,rgba(8,4,19,.9) 38%,rgba(8,4,19,.35) 58%,rgba(8,4,19,.05) 78%),linear-gradient(0deg,rgba(9,6,19,.6) 0%,transparent 22%)}
.ops .op-main .op-hero__grid{position:relative;z-index:1}
@media(max-width:900px){
  .ops .op-main .op-hero{min-height:0;display:flex;flex-direction:column;align-items:stretch;padding:40px 0 0}
  .ops .op-main .op-hero__grid{order:1}
  .ops .op-main .op-hero__grid > div:first-child{max-width:none}
  .ops .op-main .op-hero__art{order:2;position:relative;inset:auto;z-index:0;margin-top:34px;aspect-ratio:16/10}
  .ops .op-main .op-hero__art :is(img,video){object-position:80% center}
  .ops .op-main .op-hero__art::after{background:linear-gradient(180deg,#0b0617 0%,rgba(11,6,23,0) 26%,rgba(11,6,23,0) 78%,#0b0715 100%)}
}
@media(max-width:560px){
  .ops .op-main .op-hero{padding-top:28px}
  .ops .op-main .op-hero h1{font-size:clamp(38px,10.5vw,52px)}
  .ops .op-main .op-hero__logo{width:205px}
  .ops .op-main .op-hero__art{aspect-ratio:4/3}
  .ops .op-main .op-sec{padding-block:62px}
}

/* Looping videos sit over their stills with the same frame and crop (the still is also the poster) */
.ops .op-main .op-photos figure > .op-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ops .op-main .op-photos figcaption{z-index:1}
.ops .op-main .op-close__media{position:relative;border-radius:22px;overflow:hidden;aspect-ratio:4/3;box-shadow:var(--shadow)}
.ops .op-main .op-close__media > :is(img,video){position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;border-radius:0;box-shadow:none;aspect-ratio:auto}

/* Remaining light surfaces from the base file */
.ops .op-main .op-pair{background:rgba(23,12,39,.7);border-color:rgba(201,152,255,.4);color:var(--ink-2)}
.ops .op-main .op-pair a{color:#e1b6ff}
.ops .op-main .op-cap b{color:#fff}
.ops .op-main .op-chip{background:rgba(155,78,240,.2);color:#eadcff}
.ops .op-main .op-lead a{color:#e1b6ff!important}
.ops .op-main .op-conns li::before{background:var(--niche)}

/* FundableClub.org: the four member stages + the optional add-on disclosure */
.ops .op-main .op-stages{list-style:none;margin:30px 0 0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.ops .op-main .op-stages li{display:inline-flex;align-items:center;gap:10px;font-family:'Oswald',Arial,sans-serif;font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:.95rem;color:#f4fff8;background:rgba(51,138,96,.2);border:1px solid rgba(128,211,165,.45);border-radius:999px;padding:8px 16px}
.ops .op-main .op-stages li:not(:last-child)::after{content:"\2192";color:#80d3a5;margin-left:6px;font-family:'Lato',Arial,sans-serif}
.ops .op-main .op-addon{margin-top:26px;display:flex;gap:12px;align-items:flex-start;padding:16px 18px;border-radius:14px;background:rgba(19,13,34,.85);border:1px solid rgba(128,211,165,.35);color:var(--ink-2);font-size:.97rem;max-width:760px}
.ops .op-main .op-addon b{color:#fff}
.ops .op-main .op-addon .op-chip{background:rgba(51,138,96,.28);color:#e6fff0;flex:none}

/* launch-shell.css paints #faq white (an /experience id rule); keep the FAQ on the dark panel */
body.ops #faq.op-sec{background:radial-gradient(ellipse 90% 100% at 55% 0%,rgba(79,29,133,.19),transparent 75%),#140b25}
body.ops #faq.op-sec::before{display:none}
.ops .op-main .op-subnav a.op-subnav__cta{color:#fff}
.ops .op-main .op-addon{flex-wrap:wrap}

/* ---------- Corey 2026-09-28 polish ---------- */

/* "All AI Command Centers": a second header row under SMS / CALL / menu, right-aligned, in the page's
   secondary-button style (same as "Book a live demo"). It reuses .lhd-in for the header's exact gutters. */
html body.ops header.lhd .lhd-in.op-hdrback:not(#_):not(#__){min-height:0!important;padding:12px 0 0!important;justify-content:flex-end!important}
body.ops #lhd .op-allcc{min-height:44px;padding:10px 18px;font-size:.94rem;border-radius:10px;background:rgba(23,12,39,.82);color:#f8f2ff!important;border-color:rgba(201,152,255,.48);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
body.ops #lhd .op-allcc:hover{background:rgba(112,42,187,.45);border-color:#c98dff;transform:translateY(-1px)}
body.ops #lhd .op-allcc:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
body.ops #lhd .op-allcc svg{width:17px;height:17px}

/* Hero starts at the very top of the page, behind the header; its content clears the header rows.
   --op-hdr (header rows' height) is measured by /js/ops/ops-pages.js; the fallbacks cover no-JS. */
.ops .op-main .op-hero{padding-top:calc(var(--op-hdr,170px) + 44px);min-height:calc(640px + var(--op-hdr,170px) - 60px)}
/* A soft dark band at the top keeps the Launch logo and nav readable over any frame of the video */
.ops .op-main .op-hero::after{content:"";position:absolute;left:0;right:0;top:0;height:calc(var(--op-hdr,170px) + 70px);z-index:0;pointer-events:none;background:linear-gradient(180deg,rgba(8,4,19,.82) 0%,rgba(8,4,19,.55) 45%,rgba(8,4,19,0) 100%)}
@media(max-width:900px){.ops .op-main .op-hero{padding-top:calc(var(--op-hdr,150px) + 30px);min-height:0}}
@media(max-width:560px){.ops .op-main .op-hero{padding-top:calc(var(--op-hdr,140px) + 26px)}}

/* Section eyebrows ("Sound familiar?", "How the work moves", ...) are visually hidden, NOT deleted and NOT
   coloured to match the background: the text stays in the HTML for search engines and screen readers, and the
   standard visually-hidden clip pattern is not the "hidden text" colour trick search engines can penalise.
   position:absolute also removes the gap they left. Small labels inside cards ("With InsuranceOps") are untouched. */
.ops .op-main .op-eyebrow{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}

/* Stars video inside each step / journey card: one looping clip behind the content, darkened for contrast.
   Border, radius and padding stay on the card; the arrows between cards (li::after) stay outside it. */
.ops .op-main :is(.op-steps,.op-flow) > li{isolation:isolate}
.ops .op-main .op-starbed{position:absolute;inset:0;z-index:-1;border-radius:inherit;overflow:hidden;background:#0c0718;pointer-events:none}
.ops .op-main .op-starbed video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ops .op-main .op-starbed::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(24,12,42,.66),rgba(10,6,20,.74))}
.ops .op-main :is(.op-steps,.op-flow) > li{background:transparent}
.ops .op-main :is(.op-steps,.op-flow) > li :is(h3,p,b){text-shadow:0 1px 3px rgba(0,0,0,.6)}

/* Stars video as the background of every plum (.op-sec--panel) section. The clip is darkened with the plum
   tint and its top and bottom edges fade into the neighbouring sections, so there is no seam. */
.ops .op-main .op-sec--panel,body.ops #faq.op-sec{position:relative;isolation:isolate;background:#0b0715}
.ops .op-main .op-sec.op-sec--panel::before,.ops .op-main .op-sec--panel + .op-sec::before{display:none}
.ops .op-main .op-starsbg{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 130px,#000 calc(100% - 130px),transparent 100%);
          mask-image:linear-gradient(180deg,transparent 0,#000 130px,#000 calc(100% - 130px),transparent 100%)}
.ops .op-main .op-starsbg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ops .op-main .op-starsbg::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 90% 100% at 55% 0%,rgba(79,29,133,.22),transparent 75%),rgba(20,11,37,.64)}
.ops .op-main .op-sec--panel .op-wrap{position:relative;z-index:1}
.ops .op-main .op-sec--panel :is(h2,.op-lead){text-shadow:0 2px 12px rgba(0,0,0,.55)}

/* Corey 2026-09-28: the stars background (stars-bg.mp4) behind the tall features / screenshot section.
   One video per page, pinned to the viewport with position:sticky inside a full-height absolute layer, so it
   fills the screen while you scroll through the section instead of being stretched (and blurred) over its
   whole height. The poster covers the layer as the fallback. Darkened for contrast; the top and bottom edges
   fade into the neighbouring sections. Play/pause on scroll comes from ops-pages.js (.op-vid). */
body.ops #features.op-sec{position:relative;isolation:isolate;background:#0b0715}
body.ops #features.op-sec::before,body.ops #features.op-sec + .op-sec::before{display:none}
.ops .op-main .op-featbg{position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:#0b0715 url("/img/stars-bg-poster.jpg") center/cover;
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 160px,#000 calc(100% - 160px),transparent 100%);
          mask-image:linear-gradient(180deg,transparent 0,#000 160px,#000 calc(100% - 160px),transparent 100%)}
.ops .op-main .op-featbg__pin{position:sticky;top:0;height:100vh;height:100lvh;overflow:hidden}
.ops .op-main .op-featbg__vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ops .op-main .op-featbg::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 90% 10%,rgba(137,53,205,.16),transparent 80%),rgba(11,7,21,.62)}
body.ops #features .op-wrap{position:relative;z-index:1}
body.ops #features :is(h2,h3,.op-lead,.op-feature p,.op-ticks li){text-shadow:0 1px 8px rgba(0,0,0,.55)}

/* Corey 2026-09-28: the "Try it" (Open the working demo) section gets the stars background too: a normal cover
   video (the section is short), darkened, with the shared .op-starsbg edge fade into the neighbouring sections. */
body.ops #try.op-sec{position:relative;isolation:isolate;background:#0b0715}
body.ops #try.op-sec::before,body.ops #try.op-sec + .op-sec::before{display:none}
.ops .op-main .op-starsbg--bg::after{background:radial-gradient(ellipse 70% 60% at 90% 10%,rgba(137,53,205,.16),transparent 80%),rgba(11,7,21,.62)}
body.ops #try .op-wrap{position:relative;z-index:1}
body.ops #try :is(h2,.op-lead){text-shadow:0 2px 12px rgba(0,0,0,.55)}

/* White information cards against section-level stars. */
html body.ops .op-main section:has(> .op-starsbg) :is(.op-quote,.op-trycard,.op-tile,.op-pricecard,.op-pcard,.op-conns li,.op-flow li){background:#fff!important;color:#191b23!important;border-color:#ddd3e5!important}
html body.ops .op-main section:has(> .op-starsbg) :is(.op-quote,.op-trycard,.op-tile,.op-pricecard,.op-pcard,.op-conns li,.op-flow li) :is(blockquote,h3,p,small,span,b){color:#191b23!important;text-shadow:none!important}
html body.ops .op-main .op-quote .op-answer{border-color:#ddd3e5!important}
/* White workflow section, preserving dark stars within the step cards. */
html body.ops .op-main #how-it-works{background:#fff!important;color:#191b23!important}
html body.ops .op-main #how-it-works .op-head :is(h2,p){color:#191b23!important}
html body.ops .op-main #how-it-works .op-head .op-accent{color:#54209a!important}

/* Site rule: information cards over section-level stars are white. */
html body.ops .op-main section:has(> :is(.op-starsbg,.op-featbg)) :is(.op-quote,.op-trycard,.op-tile,.op-pricecard,.op-pcard,.op-conns li,.op-flow li,.op-offer article,.op-ask,.op-roletab,.op-other){background:#fff!important;color:#191b23!important;border-color:#ddd3e5!important}
html body.ops .op-main section:has(> :is(.op-starsbg,.op-featbg)) :is(.op-quote,.op-trycard,.op-tile,.op-pricecard,.op-pcard,.op-conns li,.op-flow li,.op-offer article,.op-ask,.op-roletab,.op-other) :is(p,small,span,b){color:#191b23!important;text-shadow:none!important}
html body.ops .op-main section:has(> :is(.op-starsbg,.op-featbg)) :is(.op-quote,.op-trycard,.op-tile,.op-pricecard,.op-pcard,.op-conns li,.op-flow li,.op-offer article,.op-ask,.op-roletab,.op-other) :is(h3,h4,blockquote){color:#45206b!important;text-shadow:none!important}
