/* gstack design-review pass (preview copy on :4300). Loaded last on every page.
   One file so the whole pass can be compared against :4200 and kept or dropped as a unit. */

/* 5. One action per screen: drop the duplicate sales buttons. */
html body .cta .sq--line, html body .cta .btn--line, html body .cta__wa,
html body #choose .sq[data-book], html body .price__call,
html body #goals li a[href*="review"] { display: none !important; }

/* 6. Content never waits on an animation to exist: reveal motion may move things, never hide them. */
html body [data-rise], html body [data-stagger] > *, html body .clr__step, html body .pcards .pcard, html body .dg__node { opacity: 1 !important; }

/* 7. No decorative spotlight glow behind the closing panels; the dot texture stays. */
html body .cta__panel.grain::before, html body main section.cta:not(:has(.cta__panel))::before { background: radial-gradient(circle at 1px 1px, rgba(var(--on, 255,255,255), .14) 1px, transparent 1.4px) 0 0 / 22px 22px; }
html body .ic-hero__glow, html body .xhero::before { opacity: .5; }

/* 8. Keyboard focus is always visible. */
html body :where(a, button, [role="button"], input, select, textarea, summary):focus-visible { outline: 2px solid currentColor !important; outline-offset: 3px; border-radius: 6px; }

/* 9. Touch targets: buttons and nav links at least 44px tall; footer links get a taller hit area without moving layout. */
html body main :where(.sq, .btn, .filmx__ch button) { min-height: 44px; }
/* nav links keep their designed size and alignment; the tap area grows invisibly */
html body :where(.ic-nav, .gnav, .snav, header nav) a:not(.sq):not(.btn) { position: relative; }
html body :where(.ic-nav, .gnav, .snav, header nav) a:not(.sq):not(.btn)::after { content: ""; position: absolute; inset: -12px -6px; }
html body main :where(.sq, .btn) { display: inline-flex; align-items: center; justify-content: center; }
html body footer a { position: relative; }
html body footer a::after { content: ""; position: absolute; inset: -10px -4px; }

/* 12. Images carry width/height for layout stability; CSS keeps them fluid. */
:where(img) { height: auto; max-width: 100%; }

/* 13. Browser surfaces themed from the palette, not left at defaults. */
::selection { background: rgba(var(--on, 255,255,255), .9); color: var(--bg, #0B0B0C); }
html { scrollbar-color: rgba(var(--on, 255,255,255), .28) transparent; accent-color: var(--text, #F4F4F2); }
:where(input, textarea) { caret-color: var(--text, #F4F4F2); }
:where(a) { text-underline-offset: .2em; }

/* 14. No radial halo behind hero headlines: the type is the anchor. */
html body .xhero::before, html body .xhero::after, html body .xhero__glow, html body .hero2::before { background: none !important; box-shadow: none !important; }

/* 15. Numbers line up: prices, KPIs, tables and registration numbers use tabular figures. */
html body :where(b, strong, td, th, dd, .scard__price, .mui__kpis, .price, [class*="price"], [class*="kpi"], .hero2__reg) { font-variant-numeric: tabular-nums; }

/* 16. Links in running text read as links, and visited ones are distinguishable. */
html body main :where(p, li) > a:not([class]) { text-decoration: underline; text-decoration-thickness: 1px; }
html body main :where(p, li) > a:not([class]):visited { opacity: .78; }
html body :where(button, summary, [role="button"], [data-book], label[for]) { cursor: pointer; }

/* 17. One authored motion moment per page (the hero). Section reveals no longer slide in one by one:
   they are simply there, so the page reads as a document, not a sequence of entrances. */
html body main section:not(:first-of-type) :is([data-rise], [data-stagger] > *) { transform: none !important; filter: none !important; }


/* 18. Readability (typography audit). Type faces, sizes and heading styles stay as designed;
   these only fix contrast, minimum label size and line length where the audit measured a problem. */
/* grey labels inside white cards: 3.2–3.6:1 → about 5:1 on white */
html body :where(.mui, .scard, .lcard, .pnote, .note, .scan__card, .ab-cred, .xshow) :where(small, .scan__rk, .biz__name, .biz__name *, [class*="__slot"], [class*="__lbl"]) { color: #5F5D57; }
html body .biz__name, html body .biz__name span, html body .scan__rk { color: #5F5D57; }
/* no label below 12px */
html body main :where(small, .scan__rk, [class*="__slot"]) { font-size: max(12px, 1em); }
/* fine print: at least 13px, comfortable leading, and never wider than ~80 characters */
html body main :where(.fine, [class*="__fine"], [class*="__cap"], [class*="__reg"], [class*="__assume"], .regs p) { font-size: max(13px, 1em); line-height: 1.6; max-width: 80ch; }
html body main :where([class*="__fine"], [class*="__reg"]):where(.filmx__fine, .scan__fine, .cta__reg) { margin-inline: auto; }
/* long running lines inside wide strips */
html body main :where(.clr__vs p, .vs p, .cvs p) { max-width: 68ch; }
/* soft second lines of headings and section labels: enough contrast in the light theme */
html[data-theme="light"] body :where(.learn__h span, .soft, .h2 .soft, h2 span.soft) { color: rgba(14,12,10,.56) !important; -webkit-text-fill-color: rgba(14,12,10,.56); }
html[data-theme="light"] body .chip { color: rgba(14,12,10,.66); }
/* follow-ups from the re-run */
html body :where(.mui, .scard, .lcard, .pnote, .scan__card) small, html body .scan__card small, html body .mui__rows small, html body [class*="part__slot"] { color: #5F5D57 !important; }
html body :where(.mui, .scard, .lcard) :where(span, small) { font-size: max(12px, 1em); }
html body :where(.regs p, .cl__vs p, .clr__vs p) { max-width: 72ch; }
html body main :where(.fine, [class*="__fine"], [class*="__cap"], [class*="__reg"], [class*="__assume"]) { max-width: 72ch; }
html[data-theme="light"] body .community .chip { color: rgba(255,255,255,.7); }
html body .mui__theme span { color: #5F5D57 !important; font-size: max(12px, 1em); }
html body section[aria-label*="Registrations"] p, html body .regs__in > p, html body dl + p { max-width: 72ch; }

/* ===== gstack typography pass (approved 4 Oct) ===== */
/* A. One brand typeface: Geist everywhere; Poppins stays only in the wordmark. */
:root { --f-ui: "Geist", system-ui, sans-serif; --f-display: "Geist", system-ui, sans-serif; --f: "Geist", system-ui, sans-serif; }
html body { font-family: "Geist", system-ui, sans-serif; }
html body :where(h1, h2, h3, h4, .h1, .h2, .h3, .hero2__h, .xhero__h, button, input, select, textarea) { font-family: "Geist", system-ui, sans-serif; }
html body :where(.ic-logo, .ic-logo *, .logo, .logo *, .foot__giant) { font-family: "Poppins", "Geist", sans-serif; }

/* B. The page title is always the largest type; section headings step down to ≤72px. */
html body main:not(.rv) :is(h1, .xhero__h, .hero2__h) { font-size: clamp(44px, 6.4vw, 92px) !important; line-height: 1 !important; }
html body main:not(.rv) :is(h2, .h2, .cta__h, .filmx__h):not(h1) { font-size: clamp(32px, 4.4vw, 64px) !important; line-height: 1.04 !important; }
@media (max-width: 760px) {
  html body main:not(.rv) :is(h1, .xhero__h, .hero2__h) { font-size: clamp(38px, 10.5vw, 52px) !important; }
  html body main:not(.rv) :is(h2, .h2, .cta__h, .filmx__h):not(h1) { font-size: clamp(28px, 8vw, 40px) !important; }
}

/* C. Solid headings: no gradient-filled text anywhere; the soft second line stays a quieter solid tone. */
html body .metal { background: none !important; -webkit-text-fill-color: currentColor !important; color: var(--text, #F4F4F2); padding-bottom: 0; margin-bottom: 0; }
html[data-theme="light"] body .metal { color: #0B0B0C; }

/* D. Section labels removed inside pages; the product kicker in each hero stays because it orients. */
html body main .chip { display: none !important; }

/* E. Long sections read left-aligned on desktop (heads that introduce stacked content stay centred). */
@media (min-width: 900px) {
  html body main :where(.filmx__head, .clr__head, .clrp__head, .sec-head:not(.sec-head--c), .how__head, .faq__head) { text-align: left; margin-left: 0; }
  html body main :where(.filmx__head, .clr__head, .clrp__head, .sec-head, .how__head) :where(p, .filmx__sub) { margin-left: 0; }
  html body main .filmx__head { max-width: 1180px; margin-inline: auto; }
}
@media (min-width: 900px) { html body main .filmx__head { text-align: left !important; } html body main .filmx__head .filmx__sub { margin-left: 0 !important; } }

/* Final audit fixes */
/* solid headings follow their section's own text colour, so dark bands keep light headings in the light theme */
html body .metal, html[data-theme="light"] body .metal { color: var(--text, #F4F4F2) !important; }
html[data-theme="light"] body :is(.community, .stage, .filmx, .clr__vs, .cine, [class*="cinema"]) .metal { color: #ECECEA !important; }
/* small standalone links get a 44px tap area without changing their look */
html body main :where(.hero2__more, .lcard__link, [class*="__link"], .tm a, .team a, .gcard a, .chooser a, .pick a, [class*="choose"] a) { position: relative; }
html body main :where(.hero2__more, .lcard__link, [class*="__link"], .tm a, .team a, .gcard a, .chooser a, .pick a, [class*="choose"] a)::after { content: ""; position: absolute; inset: -12px -6px; }

/* ===== Light and dark go hand in hand (4 Oct) =====
   The film, community and Mutual Funds "stage" sections used to stay dark in the light theme,
   dropping black bands into a cream page. In the light theme they now use the light tokens;
   only the video frames themselves stay dark, because they are video. */
html[data-theme="light"] body :is(.filmx, .community, .stage) {
  --on: 14,12,10; --text: #0E0C0A; --mute: rgba(14,12,10,.72); --dim: rgba(14,12,10,.58);
  --line: rgba(14,12,10,.09); --line-2: rgba(14,12,10,.16); --bg: #F3F2EF; --bg-2: #ECEBE7; --surface: #FFFFFF; --surface-2: #F7F6F3;
  --btn-bg: #0E0C0A; --btn-fg: #FFFFFF; --btn-line: rgba(14,12,10,.2); --btn-grad: linear-gradient(180deg, #2A2926, #0E0C0A);
  background: var(--bg) !important; color: var(--text);
}
html[data-theme="light"] body :is(.filmx, .community, .stage) .metal,
html[data-theme="light"] body :is(.filmx, .community, .stage) :is(h1, h2, h3) { color: #0E0C0A !important; -webkit-text-fill-color: #0E0C0A !important; }
html[data-theme="light"] body .filmx :is(.filmx__sub, .filmx__fine) { color: rgba(14,12,10,.68); }
html[data-theme="light"] body .filmx .filmx__ch button { color: #0E0C0A; }
html[data-theme="light"] body .filmx .filmx__ch :is(b, span) { color: inherit; }
html[data-theme="light"] body .filmx .filmx__frame { box-shadow: 0 40px 80px -40px rgba(40,38,34,.45); }
html[data-theme="light"] body .stage .cta__rings .ring circle { stroke: rgba(14,12,10,.14); }
html[data-theme="light"] body .stage .cta__rings .ring circle.p { stroke: #0E0C0A; }
html[data-theme="light"] body main section.cta.stage { background: #fff !important; border-color: rgba(11,11,12,.08); box-shadow: 0 30px 70px -36px rgba(11,11,12,.28); }
html[data-theme="light"] body main section.cta.stage::before { background: radial-gradient(circle at 1px 1px, rgba(11,11,12,.16) 1px, transparent 1.4px) 0 0 / 22px 22px !important; }
html[data-theme="light"] body .stage .btn--solid { background: #0E0C0A; color: #fff; }
html[data-theme="light"] body .stage .btn--line { color: #0E0C0A; border-color: rgba(14,12,10,.2); }

/* Community: no night photo. A field of dots, a few of them lit and linked, reads as
   "people thinking together" in both themes and never fights the text. */
html body .community .community__bg { display: none; }
html body .community { background: var(--bg) !important; border-top: 0; }
html body .community::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background:
    radial-gradient(circle at 72% 38%, rgba(var(--on), .55) 0 3px, transparent 4px),
    radial-gradient(circle at 81% 55%, rgba(var(--on), .55) 0 3px, transparent 4px),
    radial-gradient(circle at 66% 66%, rgba(var(--on), .55) 0 3px, transparent 4px),
    radial-gradient(circle at 88% 30%, rgba(var(--on), .55) 0 3px, transparent 4px),
    radial-gradient(circle at 1px 1px, rgba(var(--on), .18) 1px, transparent 1.5px) 0 0 / 24px 24px !important;
  -webkit-mask: radial-gradient(60% 75% at 78% 50%, #000 25%, transparent 75%) !important; mask: radial-gradient(60% 75% at 78% 50%, #000 25%, transparent 75%) !important;
}
html body .community__in { position: relative; z-index: 1; }
html body .community .sq--line { color: var(--text); border-color: rgba(var(--on), .3); }
html body .community .community__list li { border-top-color: rgba(var(--on), .16); }
html body .community .community__list span, html body .community .lede { color: rgba(var(--on), .72); }
html body .community .community__fine { color: rgba(var(--on), .58); }
html body .community .community__list b { color: var(--text); }
@media (max-width: 760px) { html body .community::after { -webkit-mask: radial-gradient(90% 40% at 70% 18%, #000 20%, transparent 70%) !important; mask: radial-gradient(90% 40% at 70% 18%, #000 20%, transparent 70%) !important; } }
/* community: a drawn network of people (lit nodes = analysts, links = conversations), right side, both themes */
html body .community::after {
  background: url("media/community-net-dark.svg") right 4% center / min(56vw, 820px) auto no-repeat,
              radial-gradient(circle at 1px 1px, rgba(var(--on), .12) 1px, transparent 1.5px) 0 0 / 24px 24px !important;
  -webkit-mask: linear-gradient(90deg, transparent 30%, #000 62%) !important; mask: linear-gradient(90deg, transparent 30%, #000 62%) !important;
}
html[data-theme="light"] body .community::after {
  background: url("media/community-net-light.svg") right 4% center / min(56vw, 820px) auto no-repeat,
              radial-gradient(circle at 1px 1px, rgba(14,12,10,.12) 1px, transparent 1.5px) 0 0 / 24px 24px !important;
}
@media (max-width: 760px) { html body .community::after { background-size: 120vw auto, 24px 24px !important; background-position: 30% 0, 0 0 !important; -webkit-mask: linear-gradient(180deg, #000 0, transparent 38%) !important; mask: linear-gradient(180deg, #000 0, transparent 38%) !important; opacity: .55; } }
html[data-theme="light"] body .stage :is(.cta__reg, .cta__sub, .cta__wa) { color: rgba(14,12,10,.62); }
@media (min-width: 761px) {
  html body .community::after { background-size: min(38vw, 560px) auto, 24px 24px !important; background-position: right 3% center, 0 0 !important; -webkit-mask: linear-gradient(90deg, transparent 52%, #000 70%) !important; mask: linear-gradient(90deg, transparent 52%, #000 70%) !important; }
  html body .community .community__list { max-width: 58%; }
}
@media (min-width: 761px) { html[data-theme="light"] body .community::after { background-size: min(38vw, 560px) auto, 24px 24px !important; background-position: right 3% center, 0 0 !important; } }

/* Insights grids (homepage + Insights page): separate rounded cards instead of a ruled table; covers never cropped */
html body :is(.rgrid, .ins) { background: none !important; border: 0 !important; gap: 18px !important; }
html body :is(.rcard, .ins__card) { border-radius: 22px; overflow: hidden; background: #FFFFFF !important; color: #0E0C0A; box-shadow: 0 0 0 1px rgba(14,12,10,.06), 0 24px 50px -32px rgba(40,38,34,.35); transition: translate .35s cubic-bezier(.2,.8,.2,1); } /* hover lifts with `translate`, never `transform`: GSAP animates transform on entrance */
html:not([data-theme="light"]) body :is(.rcard, .ins__card) { background: #141416 !important; color: #F2F1EE; box-shadow: 0 0 0 1px rgba(255,255,255,.07), 0 24px 50px -32px rgba(0,0,0,.9); }
html body :is(.rcard, .ins__card):hover { translate: 0 -4px; }
html body :is(.rcard, .ins__card) :is(.ins__dek, .ins__meta) { color: inherit; opacity: .65; }
html body .ins__card { padding: 14px 14px 26px; }
html body .ins__card > :not(.ins__img) { margin-inline: 10px; }
html body .ins__img { border-radius: 14px; aspect-ratio: 16 / 9; }
html body .rcard__img { aspect-ratio: 16 / 9; }
html body .rcard--lead { align-items: stretch; }
html body .rcard--lead .rcard__img { width: 58%; aspect-ratio: 16 / 9; align-self: center; margin: 14px 0 14px 14px; border-radius: 14px; }
html body :is(.rcard__img, .ins__img) img { object-fit: cover; object-position: left center; }
html body .rcard__go, html body .ins__all { text-decoration: underline; text-underline-offset: .25em; }
@media (max-width: 860px) { html body .rcard--lead { flex-direction: column; } html body .rcard--lead .rcard__img { width: auto; margin: 14px 14px 0; } }
html body :is(.rcard__img, .ins__img) img { object-position: center; filter: saturate(.8) contrast(1.02); }

/* Header belongs to the hero: no dark band of its own at the top of the page; it turns into the frosted bar on scroll */
html body .nav:not(.is-solid)::before, html body .gnav:not(.is-solid)::before { opacity: 0 !important; }
html body .nav:not(.is-solid), html body .gnav:not(.is-solid) { background: transparent !important; box-shadow: none !important; }

/* Narrow phones (320–360px): nothing may be wider than the page */
.ic-foot__legal { grid-template-columns: minmax(0, 1fr); }
.ic-foot__legal p { overflow-wrap: anywhere; }
@media (max-width: 380px) {
  .mui { min-width: 0; padding: 16px; }
  .mui__top { flex-wrap: wrap; gap: 6px 10px; }
  .mui__kpis { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .mui__kpis div { min-width: 0; padding: 8px 9px; }
  .mui__kpis b { font-size: 15px; overflow-wrap: anywhere; }
  .ab-checks { min-width: 0; flex-wrap: wrap; }
  .scard__ui { min-width: 0; padding: 10px !important; }
}
/* footer wordmark scales with the screen on narrow phones instead of overflowing it */
.ic-foot__legal::before { font-size: clamp(36px, 13.6vw, 212px) !important; max-width: 100%; }

/* Site rule (2026-10-05): film chapters are a full-screen feature. On the page the film is one clean
   frame + "Watch the full film"; the thumbnail row stays in the DOM (it feeds "Now showing") but is hidden.
   Chapters are shown inside the full-screen player (.filmdlg__chapters). */
html body .filmx__ch { display: none !important; }

/* ===== Type floor (16 Oct 2026, gstack design review) =====
   1. Disclaimers and "illustrative" notes are compliance text: never below 13px.
   2. Fine print never runs wider than ~78 characters (it ran 150-200 on desktop).
   3. Team credential labels up from 11.5px to 12px.
   Uppercase eyebrow labels (12-12.5px, tracked) are deliberate and unchanged. */
html body :is(.scan__fine, .community__fine, .rv__reg, .disc, .rdisc) { font-size: 13px; }
@media (max-width: 760px) { html body .filmx__fine { font-size: 13px; } }
html body :is(.scan__fine, .community__fine, .filmx__fine, .pnote__fine, .sx__fine, .qc__fine, .rdisc, .tx-reg, .ic-foot__legal p) { max-width: 78ch; }
html body :is(.filmx__fine, .sx__fine, .tx-reg) { margin-inline: auto; }
html body .bio2__creds b { font-size: 12px; }

/* ===== Phone layer (16 Oct 2026) - pairs with shared/ic-mobile.js. Phones only; tablets and desktop unchanged. ===== */
@media (max-width: 760px) {
  /* 1. stacked cards -> one-screen swipe rows (the scroll-stack effects stay on wider screens) */
  html body .pstack__head, html body .gstack__head { height: auto !important; padding: 64px 0 24px !important; }
  html body :is(.pstack__head-in, .gstack__head-in) { position: static !important; opacity: 1 !important; transform: none !important; }
  html body .is-swipe { display: flex !important; grid-template-columns: none !important; gap: 12px !important; width: auto !important;
    margin: 0 !important; padding: 4px var(--pad, 20px) 6px !important; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory; scroll-padding-inline: var(--pad, 20px); scrollbar-width: none; align-items: stretch; }
  html body .is-swipe::-webkit-scrollbar { display: none; }
  html body .is-swipe > * { flex: 0 0 86%; min-width: 0; position: relative !important; top: auto !important; transform: none !important;
    scale: none !important; margin: 0 !important; min-height: 0 !important; scroll-snap-align: center; scroll-snap-stop: always; }
  html body .is-swipe > *::after { opacity: 0 !important; }
  .swipe-dots { display: flex; justify-content: center; margin: 6px 0 0; }
  .swipe-dots button { width: 26px; height: 44px; display: grid; place-items: center; padding: 0; background: none; border: 0; cursor: pointer; }
  .swipe-dots i { width: 6px; height: 6px; border-radius: 3px; background: rgba(var(--on, 255,255,255), .26); transition: width .35s cubic-bezier(.2,.8,.2,1), background .35s; }
  .swipe-dots [aria-current] i { width: 20px; background: rgba(var(--on, 255,255,255), .9); }

  /* 2. compact footer */
  html body .ic-foot__cols { display: block !important; margin-top: 28px; }
  html body .ic-foot__cols > div.is-fold { display: block !important; border-top: 1px solid var(--line); }
  html body .ic-foot__cols > div.is-fold:last-child { border-bottom: 1px solid var(--line); }
  .ic-fold { width: 100%; min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0;
    background: none; border: 0; color: var(--text); font: inherit; font-size: 15.5px; font-weight: 500; text-align: left; cursor: pointer; }
  .ic-fold i { width: 9px; height: 9px; margin-right: 4px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
    opacity: .55; transform: translateY(-2px) rotate(45deg); transition: transform .3s cubic-bezier(.2,.8,.2,1); }
  .ic-fold[aria-expanded="true"] i { transform: translateY(2px) rotate(-135deg); }
  html body .ic-fold__panel { display: grid; padding: 0 0 12px; }
  html body .ic-fold__panel a { min-height: 42px; }
  html body .ic-foot [hidden] { display: none !important; }
  .ic-foot__regsum { margin-top: 28px; font-size: 13px; line-height: 1.6; color: var(--dim); }
  .ic-fold--reg { margin-top: 8px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  html body .ic-foot__reg:not([hidden]) { margin: 12px 0 0; }
  html body .ic-foot__social { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
  html body .ic-foot__social a { padding-inline: 10px; }

  /* 3. sticky review bar */
  .ic-dock { position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; padding: 18px var(--pad, 20px) calc(12px + env(safe-area-inset-bottom));
    background: linear-gradient(180deg, rgba(var(--bg-rgb, 8,8,10), 0), rgba(var(--bg-rgb, 8,8,10), .94) 45%);
    transform: translateY(110%); transition: transform .5s cubic-bezier(.2,.8,.2,1); pointer-events: none; }
  .ic-dock.is-on { transform: none; pointer-events: auto; }
  .ic-dock a { display: flex; align-items: center; justify-content: center; min-height: 52px; border-radius: 2px;
    background: var(--text); color: var(--bg); font-size: 16px; font-weight: 500; letter-spacing: -.01em; text-decoration: none;
    box-shadow: 0 12px 32px -12px rgba(0,0,0,.6); }
  .ic-dock a:active { transform: scale(.98); }
}
@media (max-width: 760px) and (prefers-reduced-motion: reduce) { .ic-dock { transition: none; } }
@media (min-width: 761px) { .ic-dock, .swipe-dots, .ic-foot__regsum { display: none !important; } }

/* Header fix (phones/tablets): pages.css showed "Client login" on touch screens, pushing the menu button off-screen
   on Insights, Team, Legal and 404. Below 1200px the login lives in the menu sheet, as on every other page. */
@media (max-width: 1200px) { html body .nav .nav__login { display: none !important; } }

/* Phone cards (16 Oct 2026): each swipe card fits one screen - a 250px preview of the product mock-up on top
   (scaled, fading out), the copy below. */
@media (max-width: 760px) {
  html body .is-swipe > :is(.scard, .gcard) { display: flex !important; flex-direction: column; gap: 18px !important; padding: 18px 18px 22px !important; border-radius: 22px; }
  html body .is-swipe :is(.scard__ui, .gcard__ui) { order: -1; height: 250px; flex: none; overflow: hidden; padding: 12px !important; border-radius: 14px;
    -webkit-mask-image: linear-gradient(180deg, #000 74%, transparent); mask-image: linear-gradient(180deg, #000 74%, transparent); }
  html body .is-swipe :is(.scard__ui .mui, .gcard__ui .ui) { zoom: .8; width: auto !important; max-width: none; }
  html body .is-swipe :is(.scard, .gcard) h3 { font-size: 25px !important; line-height: 1.08; margin-top: 8px; }
  html body .is-swipe :is(.scard__copy, .gcard__copy) { display: flex; flex-direction: column; flex: 1; }
  html body .is-swipe :is(.scard__btns, .gcard__btns) { margin-top: auto; padding-top: 16px; }
  /* homepage insights as a swipe row */
  html body .ins.is-swipe > .ins__card { flex-basis: 80%; }
  /* homepage community: a shorter phone mock (latest messages stay in view) and no network lines */
  html body .cm2__net { display: none; }
  html body .cm2__phone { zoom: .72; margin-inline: auto; }
  /* research "Four steps" as swipe cards: the number sits in the card, the timeline line is not drawn */
  html body .steps.is-swipe::before, html body .steps.is-swipe::after { display: none !important; }
  html body .steps.is-swipe > .step { display: flex; flex-direction: column; gap: 12px; }
  html body .steps.is-swipe .step__n { position: static !important; flex: none; }
  html body .steps.is-swipe .step__card { flex: 1; }
}

/* ===== Phone & tablet polish from the 16 Oct mobile audit ===== */
.mui__kpis { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.mui__goals small { white-space: nowrap; }
.clrp .cl__card h3, .cl__card h3 { text-wrap: balance; }
.cl__count { font-size: 13px !important; }
.hero2__more { gap: 6px; }
.cta__in p a { white-space: nowrap; }
.ic-toggle { position: relative; }
.ic-toggle::after { content: ""; position: absolute; inset: -8px -4px; }
@media (max-width: 420px) {
  .mui__kpis b { font-size: 15px; white-space: nowrap; }
  .mui__kpis div { padding: 8px 10px; }
  .mui__top b { font-size: 14px; }
}
@media (max-width: 760px) {
  /* homepage */
  html body .hero2 .hero2__h.xhero__h { font-size: clamp(34px, 10.2vw, 60px); }
  html body .hero2__l { white-space: nowrap; }
  html body .filmx__play { left: 12px; bottom: 12px; top: auto; right: auto; transform: none; padding: 6px 14px 6px 6px; }
  html body .filmx__play:hover { transform: none; }
  html body .filmx__pt small { display: none; }
  html body .cm2__join { font-size: 15.5px; padding: 0 18px; white-space: nowrap; }
  html body .cm2__join::before { animation: none; opacity: 0; }
  html body .clrp, html body .community { padding-top: 64px !important; padding-bottom: 64px !important; }
  html body main .cta { padding-top: 56px !important; padding-bottom: 72px !important; }
  html body #insights .head { gap: 12px; }
  html body #insights .lede { margin-top: 0; }
  html body #scan .scan__rows { grid-template-columns: minmax(0, 1fr); }
  html body :is(.lcard__link, .cm2__alt, .wa__join, .hero2__more, .learn__more) { min-height: 44px; display: inline-flex; align-items: center; }
  /* menu sheet: its main button keeps full size */
  html body .sheet .sq { width: 100%; flex-shrink: 0; min-height: 52px; margin-top: 16px; }
  /* process hero film: darker still so the play button doesn't sit on baked-in text */
  html body .proc__film .filmx__shade { background: rgba(0,0,0,.55); }
  /* team */
  html body .pp__v { height: auto; min-height: 130px; }
  html body .fqs .fq blockquote p { font-size: 21px; line-height: 1.35; }
  /* legal contents as a two-column grid */
  html body .legal__toc { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  html body .legal__toc a { padding: 12px; font-size: 14.5px; }
  /* insights page */
  html body .rcard--text .rcard__body { min-height: 0; }
  html body .rfilter { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: calc(-1 * var(--pad, 20px)); padding-inline: var(--pad, 20px); }
  html body .phero .hero__btns { justify-content: flex-start; }
  /* about: credential labels */
  html body .ab-cred__rows small { white-space: nowrap; }
  /* review form controls: 44px tap height */
  html body :is(.chips label, .prompt, .del, .rv-help) { min-height: 44px; }
  /* footer legal text: compact but fully visible */
  html body .ic-foot__legal { font-size: 13px; line-height: 1.55; gap: 10px; }
}
@media (min-width: 600px) and (max-width: 960px) { .scard h3 { max-width: 22ch; } .mui { width: 100%; } }
@media (max-width: 760px) {
  html body .ic-foot { padding-top: 56px !important; }
  html body .ic-foot__legal p.is-clamp { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
  .ic-foot__more { justify-self: start; min-height: 44px; padding: 0; background: none; border: 0; color: var(--text); font: inherit; font-size: 13.5px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
}
@media (min-width: 761px) { .ic-foot__more { display: none !important; } }

/* ===== Product pages, phone fixes (16 Oct mobile audit) ===== */
/* risk profiler */
#rpResult, #rpQuiz { scroll-margin-top: 88px; }
.rp__list[hidden] { display: none !important; }
@media (max-width: 600px) {
  .rp { min-height: calc(100svh - 64px); }
  html body .rp__start, html body .rp__actions > a, html body .rp__actions > button:not(.rp__restart) { width: 100%; justify-content: center; }
}
/* sub-bar: a fade shows there are more links to swipe to */
@media (max-width: 720px) {
  html body .snav__links { padding-right: 28px; -webkit-mask: linear-gradient(90deg, #000 calc(100% - 36px), transparent); mask: linear-gradient(90deg, #000 calc(100% - 36px), transparent); }
}
/* mutual funds: shorter "Four steps" walkthrough on phones (the scrub maps over whatever height it has) */
@media (max-width: 760px) { html.motion body .how.stage { height: 240vh !important; } }
/* tools: sticky bars no longer cover the form */
@media (max-width: 699px) {
  html { scroll-padding: 140px 0 90px; }
  html body .tx-switch { top: 64px; }
  html body .tx-peek { bottom: calc(10px + env(safe-area-inset-bottom)); }
  html body .tx-inputs { padding-bottom: 84px; }
}
/* steady section rhythm on phones (padding scaled with screen height left 200-260px gaps) */
@media (max-width: 600px) {
  html body :is(.clrp, .struct, .sx, .pricing, .faq, .calc) { padding-block: 72px !important; }
  html body main .cta { padding-block: 72px 88px !important; }
  html body .pick button { background: rgba(var(--on, 255,255,255), .06); box-shadow: inset 0 0 0 1px var(--line-2); color: var(--text); }
}
/* sliders: easier to grab */
@media (max-width: 760px) { html body :is(.qf input[type=range], .tx-range) { height: 44px; } }
/* small text and orphans */
html body :is(.mui__log em, .filmx__now b, .infl__arrow span, .checks em, .tx-axis span) { font-size: 13px; }
html body :is(.tp__gn small, .cl__card p, .pnote__top small) { text-wrap: pretty; }
html body .cta__rings .ring circle:not(.p) { stroke: rgba(255,255,255,.32); }
html body .cta__rings .ring circle.p { stroke-linecap: round; }
@media (max-width: 760px) { html body #regs dd a { display: inline-block; padding-block: 12px; } }

/* ===== Phone round 2 (16 Oct 2026): conversion + premium polish ===== */
/* homepage hero trust row: real team faces, links to the Team page (phones only; desktop unchanged) */
.hero2__team { display: none; }
@media (max-width: 760px) {
  html body .hero2 { min-height: 0 !important; padding-top: calc(64px + 52px) !important; padding-bottom: 48px !important; justify-content: flex-start !important; }
  html body .hero2__team { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; margin-top: 18px; color: var(--mute, rgba(255,255,255,.7)); font-size: 14.5px; text-decoration: none; }
  .hero2__faces { display: flex; }
  .hero2__faces img { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; filter: grayscale(1); box-shadow: 0 0 0 2px var(--bg, #000); }
  .hero2__faces img + img { margin-left: -9px; }
  html body .hero2__reg { margin-top: 26px; }

  /* bottom bar: main offer + WhatsApp */
  html body .ic-dock { display: flex; gap: 10px; align-items: stretch; }
  html body .ic-dock .ic-dock__main { flex: 1; }
  .ic-dock__wa { flex: none; width: 52px; display: grid; place-items: center; border-radius: 2px; color: var(--text); text-decoration: none;
    background: rgba(var(--on, 255,255,255), .08); box-shadow: inset 0 0 0 1px var(--line-2, rgba(255,255,255,.2)); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
  .ic-dock__wa:active { transform: scale(.96); }
  html body .ic-dock .ic-dock__main { display: flex; align-items: center; justify-content: center; min-height: 52px; border-radius: 2px; background: var(--text); color: var(--bg);
    font-size: 16px; font-weight: 500; text-decoration: none; box-shadow: 0 12px 32px -12px rgba(0,0,0,.6); }

  /* swipe dots now sit above each card row */
  html body .swipe-dots { margin: 0 0 2px; }

  /* theme switch in the menu, not the header */
  html body header :is(.nav, .gnav) > * > [data-ic-toggle], html body :is(.nav, .gnav) [data-ic-toggle]:not(.sheet__theme [data-ic-toggle]) { display: none !important; }
  .sheet__theme { display: flex; align-items: center; justify-content: space-between; min-height: 56px; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--line); color: var(--mute, inherit); font-size: 15px; }

  /* one hero alignment: inner pages centre like the homepage and product pages */
  html body .phero .wrap { text-align: center; }
  html body .phero :is(.chip, .phero__lede, .lede) { margin-inline: auto; }
  html body .phero .hero__btns { justify-content: center !important; }

  /* one button shape for page-level calls to action (pills stay inside the white example cards) */
  html body :is(.btn.btn--white, .sq.sq--lineinv, .cm2__join) { border-radius: 2px !important; }

  /* insights filters: one line, swipe sideways */
  html body .rfilter > * { white-space: nowrap; flex: none; }

  /* process film: no repeated label over the still image */
  html body .proc__film .filmx__now { display: none; }

  /* homepage review section: compact on phones (three short steps, then the example report) */
  html body #scan .scan__line .h2 { font-size: 26px !important; line-height: 1.1; }
  html body #scan .scan__line { margin-top: 18px; }
  html body #scan .scan__sub { font-size: 15px; margin-top: 6px; }
  html body #scan { padding-top: 56px !important; }
}

/* ===== Homepage phone sections (16 Oct 2026): products, free review, community - each fits one phone screen.
   The blocks (.pm .sm .cmm) exist only on phones; iPad and desktop keep the full sections. ===== */
.pm, .sm, .cmm { display: none; }
@media (max-width: 760px) {
  html body section#products > :not(.pm), html body section#scan > :not(.sm), html body section#community > :not(.cmm) { display: none !important; }
  html body section#scan { height: auto !important; padding: 64px 0 56px !important; }
  html body section#products { padding: 64px 0 56px !important; }
  html body .pm, html body .sm, html body .cmm { display: block; padding-inline: var(--pad, 20px); }

  /* products: three tappable rows */
  .pm__k0 { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: rgba(var(--on), .55); }
  .pm__h { margin: 10px 0 22px; font-family: var(--f-display, inherit); font-size: 34px; font-weight: 500; line-height: 1.04; letter-spacing: -.04em; color: var(--text); }
  .pm__card { display: grid; grid-template-columns: 46px minmax(0, 1fr) 16px; gap: 14px; align-items: center; padding: 16px 16px 16px 14px; border-radius: 18px;
    background: rgba(var(--on), .045); box-shadow: inset 0 0 0 1px rgba(var(--on), .1); color: var(--text); text-decoration: none; transition: transform .2s, background .2s; }
  .pm__card + .pm__card { margin-top: 10px; }
  .pm__card:active { transform: scale(.985); background: rgba(var(--on), .08); }
  .pm__txt { display: grid; gap: 3px; min-width: 0; }
  .pm__txt small { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: rgba(var(--on), .5); }
  .pm__txt b { font-size: 19px; font-weight: 500; letter-spacing: -.02em; }
  .pm__txt span { font-size: 14.5px; line-height: 1.4; color: rgba(var(--on), .68); }
  .pm__txt em { margin-top: 4px; font-style: normal; font-size: 13.5px; font-weight: 500; color: var(--text); }
  .pm__go { justify-self: end; color: rgba(var(--on), .5); }
  .pm__ic { width: 46px; height: 46px; border-radius: 12px; background: rgba(var(--on), .07); display: flex; align-items: flex-end; justify-content: center; gap: 4px; padding: 11px 10px; }
  .pm__ic > i { flex: 1; height: calc(var(--h) * 100%); border-radius: 2px; background: rgba(var(--on), .75); }
  .pm__ic--doc { flex-direction: column; align-items: stretch; justify-content: center; gap: 5px; }
  .pm__ic--doc > i { flex: none; height: 3px; } .pm__ic--doc > i:nth-child(2) { width: 80%; } .pm__ic--doc > i:nth-child(3) { width: 55%; }
  .pm__ic--ring { align-items: center; padding: 8px; }
  .pm__ic--ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
  .pm__ic--ring circle { fill: none; stroke: rgba(var(--on), .18); stroke-width: 4; }
  .pm__ic--ring circle.p { stroke: rgba(var(--on), .8); stroke-dasharray: 88; stroke-dashoffset: 30; stroke-linecap: round; }

  /* free review: the whole pitch on one screen */
  .sm .chip { margin: 0; }
  .sm__h { margin: 14px 0 0; font-family: var(--f-display, inherit); font-size: 30px; font-weight: 500; line-height: 1.08; letter-spacing: -.035em; color: var(--text); }
  .sm__h span { color: rgba(var(--on), .5); }
  .sm__steps { list-style: none; margin: 20px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
  .sm__steps li { display: grid; gap: 8px; align-content: start; font-size: 13px; line-height: 1.35; color: rgba(var(--on), .72); }
  .sm__steps b { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-size: 13px; font-weight: 600; color: var(--bg); background: var(--text); }
  .sm__card { margin-top: 20px; padding: 16px; border-radius: 18px; background: #fff; color: #0B0B0C; box-shadow: 0 24px 50px -28px rgba(0,0,0,.8), 0 0 0 1px rgba(0,0,0,.06); }
  .sm__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 15px; }
  .sm__top em { font-style: normal; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: #6B6B70; padding: 4px 10px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.14); }
  .sm__card ul { list-style: none; margin: 12px 0 0; padding: 0; }
  .sm__card li { display: grid; grid-template-columns: 62px minmax(0, 1fr); align-items: baseline; gap: 10px; padding: 10px 0; border-top: 1px solid rgba(0,0,0,.08); }
  .sm__card li b { font-size: 22px; font-weight: 600; letter-spacing: -.03em; }
  .sm__card li span { font-size: 14px; line-height: 1.35; color: #47474C; }
  .sm__by { display: flex; align-items: center; gap: 10px; padding-top: 12px; border-top: 1px solid rgba(0,0,0,.08); font-size: 13.5px; font-weight: 500; }
  .sm__by img { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; filter: grayscale(1); }
  .sm__by small { display: block; font-size: 12.5px; font-weight: 400; color: #6B6B70; }
  .sm__cta { margin-top: 18px; display: flex; align-items: center; justify-content: center; min-height: 52px; border-radius: 2px; background: var(--text); color: var(--bg); font-size: 16px; font-weight: 500; text-decoration: none; }
  .sm__film { display: block; margin: 6px auto 0; min-height: 44px; padding: 0 8px; background: none; border: 0; color: rgba(var(--on), .75); font: inherit; font-size: 14.5px; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
  .sm__fine { margin-top: 8px; font-size: 13px; line-height: 1.5; color: rgba(var(--on), .5); text-align: center; }

  /* community: one screen (this band stays dark in both themes, like the desktop version) */
  .cmm { color: #F2F1EE; }
  .cmm__h { font-family: var(--f-display, inherit); font-size: 32px; font-weight: 500; line-height: 1.04; letter-spacing: -.04em; color: #F2F1EE; }
  .cmm__lede { margin-top: 10px; font-size: 16px; line-height: 1.45; color: rgba(242,241,238,.7); }
  .cmm__chips { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
  .cmm__chips li { padding: 7px 12px; border-radius: 999px; font-size: 13.5px; color: rgba(242,241,238,.85); box-shadow: inset 0 0 0 1px rgba(255,255,255,.16); }
  .cmm__chat { margin-top: 20px; padding: 12px; border-radius: 22px; background: #111214; box-shadow: 0 0 0 1px rgba(255,255,255,.08), 0 30px 60px -30px rgba(0,0,0,.9); }
  .cmm__bar { display: flex; align-items: center; gap: 10px; padding: 2px 4px 12px; border-bottom: 1px solid rgba(255,255,255,.07); }
  .cmm__logo { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; font: 600 11px/1 "Poppins", system-ui, sans-serif; color: #F2F1EE; background: #1E1F22; }
  .cmm__bar b { display: block; font-size: 14px; font-weight: 600; }
  .cmm__bar small { display: block; font-size: 12px; color: rgba(242,241,238,.5); }
  .cmm__msg { display: flex; gap: 8px; align-items: flex-start; margin-top: 10px; }
  .cmm__msg img { flex: none; width: 26px; height: 26px; border-radius: 50%; object-fit: cover; filter: grayscale(1); }
  .cmm__msg p { padding: 9px 11px; border-radius: 4px 14px 14px 14px; background: #1C1D20; font-size: 13.5px; line-height: 1.4; color: rgba(242,241,238,.88); }
  .cmm__msg p b { display: block; margin-bottom: 2px; font-size: 12.5px; font-weight: 600; color: #F2F1EE; }
  .cmm__msg p small { display: block; margin-top: 4px; font-size: 12px; color: rgba(242,241,238,.45); }
  .cmm__join { margin-top: 18px; display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; border-radius: 2px; background: #F2F1EE; color: #0B0B0C; font-size: 16px; font-weight: 500; text-decoration: none; }
  .cmm__fine { margin-top: 10px; font-size: 13px; line-height: 1.5; color: rgba(242,241,238,.5); text-align: center; }
}
@media (max-width: 760px) {
  html body section#scan .sm .chip { display: inline-flex !important; }
  .sm__h, .cmm__h, .pm__h { text-wrap: balance; }
}
/* short phones (iPhone SE and similar): each block still close to one screen */
@media (max-width: 760px) and (max-height: 700px) {
  html body section#products, html body section#scan { padding: 48px 0 40px !important; }
  html body .community { padding-top: 48px !important; padding-bottom: 48px !important; }
  .pm__h { font-size: 30px; margin-bottom: 16px; }
  .pm__card { padding-block: 12px; } .pm__txt span { font-size: 14px; }
  .sm__h { font-size: 26px; } .sm__steps { margin-top: 14px; } .sm__card { margin-top: 14px; padding: 12px 14px; }
  .sm__card li { padding: 7px 0; } .sm__card li b { font-size: 19px; }
  .cmm__h { font-size: 28px; } .cmm__msg + .cmm__msg { display: none; } .cmm__chat { margin-top: 14px; }
}
@media (max-width: 760px) { .pm__txt small { white-space: nowrap; } }
/* narrowest phones: the icon gives way so registration labels (SEBI RA, AMFI ARN) are never cut */
@media (max-width: 370px) { html body .pm__card { grid-template-columns: minmax(0, 1fr) 16px; } html body .pm__ic { display: none; } }
@media (max-width: 400px) { .pm__txt small { letter-spacing: .03em; } }

/* ===== Homepage story order on phones (16 Oct 2026, phone first; desktop keeps its order until approved) =====
   hero -> start here -> free review -> film -> products -> CLEAR -> insights -> community -> who's behind this -> final ask */
.trust-m { display: none; }
@media (max-width: 760px) {
  html body main#main:has(> #scan) { display: flex; flex-direction: column; }
  main#main > #top { order: 0; } main#main > #learn { order: 1; } main#main > #scan { order: 2; } main#main > #film { order: 3; }
  main#main > #products { order: 4; } main#main > #clear { order: 5; } main#main > #insights { order: 6; } main#main > #community { order: 7; }
  main#main > .trust-m { order: 8; } main#main > #book { order: 9; } main#main > dialog { order: 10; }
  /* the review now follows the hero directly: a hairline separates them */
  html body section#scan { border-top: 1px solid var(--line); }

  .trust-m { display: block; padding: 64px var(--pad, 20px) 48px; border-top: 1px solid var(--line); }
  .trust-m__h { font-family: var(--f-display, inherit); font-size: 30px; font-weight: 500; line-height: 1.06; letter-spacing: -.035em; color: var(--text); }
  .trust-m__team { list-style: none; margin: 22px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
  .trust-m__team li { display: grid; grid-template-columns: 48px minmax(0, 1fr); column-gap: 10px; align-items: center; }
  .trust-m__team img { grid-row: span 2; width: 48px; height: 48px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; filter: grayscale(1); }
  .trust-m__team b { font-size: 14.5px; font-weight: 500; line-height: 1.2; color: var(--text); align-self: end; }
  .trust-m__team small { font-size: 12.5px; line-height: 1.3; color: rgba(var(--on), .55); align-self: start; }
  .trust-m__facts { margin: 22px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
  .trust-m__facts div { padding: 12px 0; border-bottom: 1px solid var(--line); }
  .trust-m__facts div:nth-child(odd) { padding-right: 12px; }
  .trust-m__facts dt { font-size: 12.5px; color: rgba(var(--on), .55); }
  .trust-m__facts dd { margin: 2px 0 0; font-size: 15px; font-weight: 500; color: var(--text); }
  .trust-m__more { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; margin-top: 10px; color: var(--text); font-size: 15px; text-decoration: underline; text-underline-offset: 4px; }
}

/* ===== Product pages on phones (16 Oct 2026): less wordy, each section close to one screen. iPad/desktop unchanged. ===== */
.anm, .chm { display: none; }
@media (max-width: 760px) {
  /* show-more for long lists */
  html body .m-hide { display: none !important; }
  .m-more { display: inline-flex; align-items: center; min-height: 44px; margin-top: 6px; padding: 0; background: none; border: 0; color: var(--text); font: inherit; font-size: 15px; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
  .price__list + .m-more, .plan__list + .m-more { color: #0B0B0C; }   /* these lists sit on white pricing cards */

  /* Investace Research: five parts as a compact list (the pinned anatomy is not built on phones) */
  html body section#note > :not(.anm) { display: none !important; }
  html body section#note { padding: 64px 0 48px; }
  .anm { display: block; padding-inline: var(--pad, 20px); }
  .anm__k { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: rgba(var(--on), .55); }
  .anm__h { margin-top: 10px; font-size: 32px; font-weight: 500; line-height: 1.05; letter-spacing: -.035em; color: var(--text); }
  .anm__h span { color: rgba(var(--on), .5); }
  .anm__list { list-style: none; margin: 22px 0 0; padding: 0; }
  .anm__list li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; padding: 14px 0; border-top: 1px solid var(--line); }
  .anm__list li:last-child { border-bottom: 1px solid var(--line); }
  .anm__list b { font-size: 13px; font-weight: 600; color: rgba(var(--on), .5); padding-top: 3px; }
  .anm__list h3 { font-size: 18px; font-weight: 500; letter-spacing: -.015em; color: var(--text); }
  .anm__list p { margin-top: 4px; font-size: 15px; line-height: 1.45; color: rgba(var(--on), .68); }

  /* Research or AlphaLeap: one side-by-side table */
  html body section#choose > :not(.chm) { display: none !important; }
  html body section#choose { padding: 64px 0 48px !important; }
  .chm { display: block; padding-inline: var(--pad, 20px); }
  .chm__h { font-size: 30px; font-weight: 500; line-height: 1.06; letter-spacing: -.035em; color: var(--text); }
  .chm__lede { margin-top: 10px; font-size: 15.5px; line-height: 1.45; color: rgba(var(--on), .68); }
  .chm__t { width: 100%; margin-top: 20px; border-collapse: collapse; table-layout: fixed; font-size: 14px; line-height: 1.35; }
  .chm__t th, .chm__t td { padding: 11px 6px; text-align: left; vertical-align: top; border-top: 1px solid var(--line); }
  .chm__t thead th { border-top: 0; font-size: 16px; font-weight: 500; color: var(--text); }
  .chm__t thead th small { display: block; margin-top: 2px; font-size: 12px; font-weight: 400; color: rgba(var(--on), .5); }
  .chm__t thead th:first-child, .chm__t tbody th { width: 27%; }
  .chm__t tbody th { font-size: 12.5px; font-weight: 500; color: rgba(var(--on), .5); padding-left: 0; }
  .chm__t td { color: rgba(var(--on), .85); }
  .chm__t td b { font-weight: 600; color: var(--text); }
  .chm__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 18px; }
  .chm__btns a { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 10px; border-radius: 2px; font-size: 14.5px; font-weight: 500; text-decoration: none; text-align: center; color: var(--text); box-shadow: inset 0 0 0 1px var(--line-2, rgba(255,255,255,.2)); }
  .chm__btns a:last-child { background: var(--text); color: var(--bg); box-shadow: none; }

  /* Mutual Funds "Four steps": all four visible, no pinned scroll, no device mock-up */
  html body.motion .how.stage, html.motion body .how.stage, html body .how.stage { height: auto !important; }
  html body .how.stage .how__pin { position: static !important; height: auto !important; min-height: 0 !important; padding: 64px var(--pad, 20px) 48px !important; }
  html body .how.stage .how__right { display: none !important; }
  html body .how.stage .how__steps { display: grid !important; gap: 0 !important; margin-top: 18px !important; }
  html body .how.stage .how__steps li { grid-area: auto !important; opacity: 1 !important; pointer-events: auto !important; display: grid !important; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; padding: 14px 0 !important; border-top: 1px solid var(--line) !important; }
  html body .how.stage .how__steps li p { display: block !important; opacity: 1 !important; max-height: none !important; margin-top: 4px !important; font-size: 15px; }
  html body .how.stage .how__steps b { font-size: 18px; }
  html body .how.stage :is(.how__rail, .how__dots, .how__num) { display: none !important; }

  /* AlphaLeap CLEAR: compact rows */
  html body #clear.clrp .cl__card { padding: 12px 16px !important; gap: 4px !important; border-radius: 16px; }
  html body #clear.clrp .cl__i { gap: 10px !important; }
  html body #clear.clrp .cl { gap: 10px !important; }
}
.vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }

/* ===== Seam audit (16 Oct 2026), dark theme only ===== */
/* Homepage: the page itself is the same pure black as its sections, so "How we think, in writing" (no background
   of its own) no longer shows a lighter band after the review section; the review section is black on phones too. */
html:not([data-theme="light"]) body:has(main #scan) { background: #000; }
html:not([data-theme="light"]) body section#scan { background: #000 !important; }
/* the community band follows on pure black too (it stays the deliberate dark band in the light theme) */
html:not([data-theme="light"]) body .community { background: #000 !important; }
/* Mutual Funds: goals and "Four steps" are pure black, so the hero and the sections without a background of their
   own (flow, calculator, FAQ) are pure black as well. The regulatory strip keeps its deliberate tint. */
html:not([data-theme="light"]) body:has(main #goals.gstack) { background: #000; }
html:not([data-theme="light"]) body:has(main #goals.gstack) .xhero { background: #000; }
