/* Local composition only. Brand tokens come from the current @halo-compliance/ui
   token source, following design/src/routes/__root.tsx. This concept deliberately
   uses the official body sans for editorial headings; no shared tokens change. */
:root {
  --site-width: 1152px;
  --site-gutter: var(--space-7);
  --site-section: var(--space-12);
  --site-heading: clamp(42px, 5.5vw, 76px);
  --site-heading-small: clamp(32px, 3.6vw, 48px);
  --site-hairline: 1px;
  --site-outline: 2px;
  --site-text-heading: 22px;
  --site-text-body: 18px;
  --site-text-action: 20px;
  --site-text-control: 16px;
  --site-muted: var(--ink-500);
  --site-border: var(--ink-100);
  --site-surface: var(--ink-10);
  --site-page: var(--bg-page);
  --site-panel: var(--paper);
  --site-product-size: var(--text-caption);
  --site-header-height: 96px;
  --site-document-bg: #fbf9f4;
  --site-document-ink: var(--ink-900);
  --site-scene: #d8ddd0;
  --site-house: #f1ecdd;
  --site-tree: #8a9a83;
}
[data-theme="dark"] { --site-muted: var(--ink-300); --site-border: var(--ink-800); --site-surface: var(--ink-900); --site-panel: var(--ink-950); }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--site-header-height) + var(--space-6)); }
body { margin: 0; background: var(--site-page); color: var(--fg-1); font-family: var(--font-body); font-size: var(--text-body); line-height: var(--lh-body); }
h1,h2,h3,h4,p { margin: 0; }
h1,h2,h3,h4 { font-family: var(--font-body); text-shadow: none; }
h1,h2 { font-weight: 500; letter-spacing: -.05em; }
h2 { font-size: var(--site-heading-small); line-height: 1.14; }
h3 { font-size: var(--site-text-heading); font-weight: 500; line-height: 1.4; letter-spacing: -.02em; }
h4 { font-size: var(--text-body-sm); font-weight: 500; line-height: var(--lh-body); }
p + p { margin-top: var(--space-4); }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
button,a,summary { -webkit-tap-highlight-color: transparent; }
button:focus-visible,a:focus-visible,summary:focus-visible { outline: 2px solid var(--gold-aa-500); outline-offset: var(--space-1); }
button,a { touch-action: manipulation; }
svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
img { display: block; max-width: 100%; }
[hidden] { display: none !important; }
.container { width: min(var(--site-width), calc(100% - var(--site-gutter) * 2)); margin-inline: auto; }
.skip-link { position: fixed; left: var(--space-4); top: var(--space-4); z-index: 100; padding: var(--space-3); background: var(--site-panel); transform: translateY(-200%); }
.skip-link:focus { transform: none; }
.concept-note { display: flex; justify-content: space-between; gap: var(--space-3); padding: var(--space-2) var(--site-gutter); border-bottom: var(--site-hairline) solid var(--site-border); color: var(--site-muted); font-family: var(--font-data); font-size: var(--text-overline); }
.note-divider { padding-inline: var(--space-2); color: var(--gold-aa-500); }
.site-header { position: sticky; top: 0; z-index: 20; background: var(--site-page); border-bottom: var(--site-hairline) solid var(--site-border); }
.header-inner { height: var(--site-header-height); display: flex; align-items: center; gap: var(--space-4); }
.site-header .brand img { width: 232px; height: auto; }
.site-footer .brand img { width: 200px; height: auto; }
.brand { flex-shrink: 0; display: inline-flex; align-items: center; min-height: var(--space-9); }
.desktop-nav { display: flex; align-items: center; gap: var(--space-4); margin-left: auto; }
.desktop-nav a { font-size: 18px; color: var(--site-muted); transition: color var(--dur-quick); }
.desktop-nav a:hover,.site-footer a:hover { color: var(--fg-1); }
.header-actions { display: flex; gap: var(--space-3); align-items: center; flex-shrink: 0; }
.header-actions>.button-small { min-height: 56px; padding-inline: var(--space-5); font-size: var(--site-text-action); }
.header-actions>.button-small svg { width: 22px; height: 22px; }
.button { display: inline-flex; justify-content: center; align-items: center; gap: var(--space-4); min-height: var(--space-9); padding: var(--space-3) var(--space-5); border: var(--site-hairline) solid var(--gold-500); border-radius: var(--radius-md); background: var(--gold-500); color: #fff; font-size: var(--site-text-action); font-weight: 500; transition: background var(--dur-quick), transform var(--dur-quick); }
.button:hover { color: #fff; background: var(--gold-500); transform: translateY(-1px); }
.button-small { min-height: var(--space-8); padding: var(--space-2) var(--space-4); gap: var(--space-3); }
.button-secondary { color: var(--fg-1); background: transparent; border-color: var(--site-border); }
.button-secondary:hover { color: var(--fg-1); background: var(--site-surface); border-color: var(--site-muted); }
.button:visited { color: #fff; }
.button-secondary:visited { color: var(--fg-1); }
.header-actions>.login-link {
  min-height: 56px;
  min-width: 104px;
  font-size: var(--site-text-action);
  border: var(--site-outline) solid var(--gold-500);
  background: transparent;
  color: var(--gold-500);
}
.header-actions>.login-link:hover { background: color-mix(in srgb, var(--gold-500) 10%, var(--site-panel)); border-color: var(--gold-500); }
.desktop-nav a { white-space: nowrap; }
.mobile-nav .mobile-demo { display: none; }
.icon-button { border: 0; padding: var(--space-3); width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; color: var(--fg-1); background: transparent; border-radius: var(--radius-md); }
.icon-button:hover { background: var(--site-surface); }
.menu-toggle,.mobile-nav { display: none; }
.hero { padding-top: var(--space-11); padding-bottom: var(--space-10); }
.eyebrow { display: flex; align-items: center; gap: var(--space-3); font-family: var(--font-data); font-size: var(--text-overline); line-height: var(--lh-body); color: var(--site-muted); letter-spacing: -.01em; }
.signal { width: var(--space-2); height: var(--space-2); background: var(--gold-500); border-radius: 50%; box-shadow: 0 0 0 var(--space-1) color-mix(in srgb, var(--gold-500) 12%, transparent); }
.hero h1 { font-size: var(--site-heading); line-height: 1.08; margin-top: var(--space-7); max-width: 18ch; }
.hero h1 span { color: var(--site-muted); }
.hero-bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-8); margin-top: var(--space-7); }
.hero-description { color: var(--site-muted); max-width: 49ch; line-height: 1.8; font-size: var(--site-text-body); }
.hero-actions { display: flex; flex-shrink: 0; align-items: center; gap: var(--space-6); }
.text-link { display: inline-flex; align-items: center; gap: var(--space-2); min-height: 44px; font-size: var(--site-text-action); }
.text-link:hover { color: var(--gold-aa-500); }
.home-hero .hero-actions { max-width: 100%; flex-wrap: wrap; }
.home-hero .hero-actions>a { font-size: var(--site-text-action); min-height: 56px; gap: var(--space-3); }
.home-hero .hero-actions>.button { padding-inline: var(--space-6); }
.home-hero .hero-actions svg { width: 22px; height: 22px; }
.product-stage { border: var(--site-hairline) solid var(--border-hairline); border-radius: var(--radius-lg); background: var(--site-panel); box-shadow: var(--shadow-lg); overflow: hidden; }
.preview-topline { display: flex; justify-content: space-between; gap: var(--space-3); padding: var(--space-3) var(--space-5); background: var(--site-surface); border-bottom: var(--site-hairline) solid var(--site-border); font-size: var(--text-overline); color: var(--site-muted); }
.preview-topline>span:first-child { display: inline-flex; align-items: center; gap: var(--space-2); }
.status-dot { width: 6px; height: 6px; background: var(--gold-500); border-radius: 50%; }
/* Authentic app captures. Close-ups retain the captured product UI. */
.product-shell.actual-product-shell { display: block; min-height: 0; }
.product-capture-frame { position: relative; margin: 0; aspect-ratio: 1440 / 830; overflow: hidden; background: #fafbfc; isolation: isolate; }
.product-capture { width: 100%; height: auto; margin-top: -3.8889%; }
.product-detail-card { position: absolute; top: 12%; right: 5%; width: 45%; max-height: 82%; overflow: hidden; border: 1px solid var(--ink-100); border-radius: var(--radius-lg); background: #fafbfc; color: var(--ink-900); box-shadow: 0 18px 60px #181b2429; }
.product-detail-title { font-size: clamp(14px, 1.5vw, 20px); font-weight: 500; letter-spacing: -.025em; padding: var(--space-5); border-bottom: 1px solid var(--ink-100); }
.product-detail-crop { position: relative; aspect-ratio: var(--crop-width) / var(--crop-height); overflow: hidden; }
.product-detail-crop img { position: absolute; max-width: none; width: calc(144000% / var(--crop-width)); height: auto; left: calc(-100% * var(--crop-x) / var(--crop-width)); top: calc(-100% * var(--crop-y) / var(--crop-height)); }
#view-rulebook .product-detail-card { display: none; }
#view-review .product-detail-card { top: 19%; width: 53%; }
#view-next .product-detail-card { width: 40%; }
@media(max-width:560px) {
  .product-capture-frame { aspect-ratio: 1 / 1.3; }
  .product-capture { width: auto; max-width: none; height: 125%; margin-top: -5%; margin-left: -70%; opacity: .4; }
  .capture-panel .product-detail-card,
  #view-rulebook .product-detail-card,
  #view-review .product-detail-card,
  #view-next .product-detail-card { display: block; top: 7%; right: 5%; width: 90%; max-height: 90%; }
  #view-review .product-detail-card { top: 20%; }
  .product-detail-title { padding: var(--space-3); font-size: var(--text-body-sm); }
}
.workflow-tabs { display: grid; grid-template-columns: repeat(3,1fr); margin-top: var(--space-5); border-bottom: var(--site-hairline) solid var(--site-border); }
.workflow-tabs button { position: relative; display: flex; justify-content: center; align-items: center; gap: var(--space-3); padding: var(--space-5) var(--space-3); font-size: var(--site-text-body); border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--site-muted); }
.workflow-tabs button[aria-selected="true"] { color: var(--fg-1); }
.workflow-tab-label { font: inherit; }
.tab-progress { position: absolute; bottom: -2px; left: 0; right: 0; height: 2px; background: var(--gold-500); transform-origin: left; opacity: 0; }
.workflow-tabs button[aria-selected="true"] .tab-progress { opacity: 1; }
/* All views contribute to one frame height; hidden views remain invisible and
   inaccessible. Switching chapters cannot shift the navigation or page below. */
.workflow-views { display: grid; }
.workflow-views > .workflow-panel { grid-area: 1/1; min-width: 0; }
.workflow-views > .workflow-panel[hidden] { display: block !important; visibility: hidden; pointer-events: none; }
.preview-controls { display: flex; align-items: center; gap: var(--space-4); }
.walkthrough-toggle { color: var(--site-muted); background: transparent; border: var(--site-hairline) solid var(--site-border); border-radius: var(--radius-md); padding: var(--space-2) var(--space-3); min-height: 36px; font: inherit; font-size: var(--text-caption); white-space: nowrap; }
.walkthrough-toggle:hover { color: var(--fg-1); background: var(--site-surface); }
.walkthrough-toggle:disabled { cursor: default; }
.walkthrough-footer { display: flex; justify-content: space-between; align-items: center; gap: var(--space-7); margin-top: var(--space-6); }
#walkthrough-summary { font-size: var(--site-text-heading); line-height: 1.5; max-width: 48ch; }
.walkthrough-footer .product-caption { margin: var(--space-2) 0 0; text-align: left; font-size: var(--site-text-body); line-height: 1.7; color: var(--site-muted); }
.walkthrough-footer .button { flex-shrink: 0; min-height: 56px; font-size: var(--site-text-action); padding-inline: var(--space-6); border-color: var(--gold-500); border-width: var(--site-outline); }
.walkthrough-footer .button svg { width: 22px; height: 22px; }
@media(max-width:560px) { .preview-controls { gap: var(--space-2); }.preview-controls .sample-label { display: none; }.walkthrough-toggle { min-height: 44px; font-size: var(--text-overline); }.walkthrough-footer { flex-direction: column; align-items: flex-start; gap: var(--space-4); }.walkthrough-footer .product-caption { max-width: none; } }
.product-caption { text-align: center; color: var(--site-muted); font-size: var(--text-caption); margin-top: var(--space-5); }
.principles { padding-block: var(--site-section); }.section-intro { display: grid; grid-template-columns: 1.2fr 1fr; column-gap: var(--space-12); align-items: end; }.section-intro>.eyebrow { grid-column: 1/-1; margin-bottom: var(--space-6); }.section-intro>p:last-child { max-width: 40ch; color: var(--site-muted); font-size: var(--site-text-body); line-height: 1.8; }
.principle-grid { display: grid; grid-template-columns: repeat(3,1fr); margin-top: var(--space-10); }.principle-grid article { border-top: var(--site-hairline) solid var(--site-border); padding: var(--space-7) var(--space-8) 0 0; }.principle-grid article+article { border-left: var(--site-hairline) solid var(--site-border); padding-left: var(--space-7); }.principle-grid article:last-child { padding-right: 0; }.principle-grid h3 { font-size: var(--site-text-heading); }.principle-grid svg { color: var(--gold-500); width: var(--space-7); height: var(--space-7); margin-bottom: var(--space-5); }.principle-grid p { color: var(--site-muted); font-size: var(--site-text-body); line-height: 1.8; margin-top: var(--space-3); }
.workflow-section { background: var(--site-surface); border-block: var(--site-hairline) solid var(--site-border); padding-block: var(--space-11); }.section-header { display: flex; justify-content: space-between; align-items: end; gap: var(--space-9); }.section-header h2 { margin-top: var(--space-6); }.section-header>p { color: var(--site-muted); max-width: 34ch; font-size: var(--site-text-body); line-height: 1.8; }.process-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: var(--space-7); margin-top: var(--space-10); }.process-number { display: flex; align-items: center; gap: var(--space-4); color: var(--gold-500); font-family: var(--font-data); font-size: 16px; margin-bottom: var(--space-7); }.process-number>span { height: var(--site-hairline); background: var(--site-border); flex: 1; }.process-grid h3 { font-size: var(--site-text-heading); }.process-grid p { font-size: var(--site-text-body); color: var(--site-muted); margin-top: var(--space-3); line-height: 1.8; }
.teams-section { display: grid; grid-template-columns: 1.2fr 1fr; gap: var(--space-11); padding-block: var(--site-section); }.teams-copy h2 { margin-top: var(--space-6); }.teams-copy>p:not(.eyebrow) { color: var(--site-muted); font-size: var(--site-text-body); line-height: 1.8; margin-top: var(--space-5); }.role-tabs { display: flex; border-bottom: var(--site-hairline) solid var(--site-border); margin-top: var(--space-7); }.role-tabs button { border: 0; border-bottom: 2px solid transparent; min-height: 56px; padding: var(--space-4); font-size: var(--site-text-body); color: var(--site-muted); background: transparent; }.role-tabs button:first-child { padding-left: 0; }.role-tabs button[aria-selected="true"] { color: var(--fg-1); border-bottom-color: var(--gold-500); }#role-panel { padding-top: var(--space-6); min-height: 196px; }#role-panel h3 { font-size: var(--site-text-heading); }#role-panel p { color: var(--site-muted); font-size: var(--site-text-body); line-height: 1.8; margin-top: var(--space-3); }#role-panel .text-link { margin-top: var(--space-4); font-size: var(--site-text-action); min-height: 48px; gap: var(--space-3); }
.decision-visual { display: flex; flex-direction: column; justify-content: center; text-align: center; background: var(--site-surface); border: var(--site-hairline) solid var(--site-border); border-radius: var(--radius-lg); padding: var(--space-9) var(--space-7); align-self: center; min-height: 436px; }.decision-top { display: flex; justify-content: space-between; gap: var(--space-5); }.decision-top>span { display: flex; flex-direction: column; align-items: center; gap: var(--space-3); font-size: var(--site-text-body); width: 50%; }.decision-top svg { color: var(--site-muted); }.connector-lines { height: var(--space-7); margin: var(--space-3) 24% 0; border: var(--site-hairline) solid var(--border-strong); border-top: 0; border-radius: 0 0 var(--radius-lg) var(--radius-lg); }.decision-core { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: var(--space-3); margin-top: var(--space-6); font-size: var(--site-text-body); }.connector-stem { height: var(--space-7); border-left: var(--site-hairline) solid var(--border-strong); width: 0; align-self: center; margin-block: var(--space-3); }.decision-output { display: flex; justify-content: center; align-items: center; gap: var(--space-3); padding: var(--space-4); background: var(--site-panel); border: var(--site-hairline) solid var(--site-border); border-radius: var(--radius-md); font-size: var(--site-text-action); }.decision-output svg { color: var(--gold-500); }.decision-visual>p { font-size: var(--site-text-body); color: var(--site-muted); line-height: 1.8; margin-top: var(--space-6); }
.questions-section { display: grid; grid-template-columns: 1fr 1.5fr; gap: var(--space-11); padding-bottom: var(--site-section); }.questions-section h2 { margin-top: var(--space-6); }.questions-intro { align-self: start; }
.questions-intro::before { content: ""; display: block; width: var(--space-9); height: 3px; margin-bottom: var(--space-6); border-radius: 2px; background: var(--gold-500); }
.questions-intro h2 span { color: var(--site-muted); }
.questions-intro>p { color: var(--site-muted); font-size: var(--site-text-body); line-height: 1.7; max-width: 32ch; margin-top: var(--space-6); }
.questions-intro .faq-contact { font-size: var(--site-text-action); font-weight: 500; gap: var(--space-4); min-height: 56px; margin-top: var(--space-7); }
.faq-contact svg { width: 20px; height: 20px; }
.faq-list details { border-bottom: var(--site-hairline) solid var(--site-border); }.faq-list details:first-child { border-top: var(--site-hairline) solid var(--site-border); }.faq-list summary { display: flex; justify-content: space-between; align-items: center; gap: var(--space-5); list-style: none; cursor: pointer; padding-block: var(--space-6); font-size: var(--site-text-action); line-height: 1.5; }.faq-list summary::-webkit-details-marker { display: none; }.faq-list details[open] summary svg { transform: rotate(45deg); }.faq-list details p { color: var(--site-muted); font-size: var(--site-text-body); line-height: 1.8; padding-bottom: var(--space-6); max-width: 58ch; }
.closing-section { padding-bottom: var(--space-10); }.closing-inner { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); align-items: center; gap: var(--space-9); padding: var(--space-10); background: var(--ink-950); border: var(--site-hairline) solid var(--ink-800); border-radius: var(--radius-lg); position: relative; overflow: hidden; color: var(--ink-25); }.closing-inner>div { position: relative; z-index: 1; max-width: 530px; }.closing-inner .eyebrow { color: var(--ink-300); }.closing-inner h2 { color: var(--ink-25); margin-top: var(--space-5); }.closing-inner p:not(.eyebrow) { color: var(--ink-300); margin-top: var(--space-5); font-size: var(--site-text-body); max-width: 42ch; line-height: 1.8; }.closing-inner .button { margin-top: var(--space-7); font-size: var(--site-text-action); min-height: 56px; padding-inline: var(--space-6); }
.closing-inner .button svg { width: 22px; height: 22px; }.closing-mark { justify-self: end; opacity: 1; width: 100%; max-width: 390px; height: auto; }
.site-footer { display: grid; grid-template-columns: 1fr auto; gap: var(--space-5); padding-bottom: var(--space-8); }.site-footer p { color: var(--site-muted); font-size: var(--text-caption); margin-top: var(--space-2); }
.closing-inner h2 span { color: var(--gold-500); }
.site-footer nav { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-6); color: var(--site-muted); font-size: var(--text-caption); }.site-footer nav a { padding-block: var(--space-3); }.footer-copyright { color: var(--site-muted); font-size: var(--text-overline); margin-top: var(--space-5); }
/* Separate destinations share the shell and keep ordinary browser navigation. */
.desktop-nav a[aria-current="page"] { color: var(--fg-1); text-decoration: underline; text-decoration-color: var(--gold-500); text-underline-offset: 10px; text-decoration-thickness: 2px; }
.mobile-nav a[aria-current="page"] { color: var(--fg-1); border-left: 2px solid var(--gold-500); background: var(--site-surface); }
.page-hero { padding-bottom: var(--space-10); }
.page-hero .hero-description { margin-top: var(--space-7); max-width: 60ch; }
.inner-page .teams-section { padding-top: var(--space-4); }
.inner-page .questions-section { padding-top: var(--space-4); }
.page-onward { border-top: var(--site-hairline) solid var(--site-border); padding-block: var(--space-9); margin-bottom: var(--space-9); display: flex; align-items: end; justify-content: space-between; gap: var(--space-7); }
.page-onward h2 { margin-top: var(--space-5); }
.page-onward p:not(.eyebrow) { color: var(--site-muted); font-size: var(--site-text-body); line-height: 1.7; margin-top: var(--space-4); max-width: 50ch; }
.page-onward>.text-link { flex-shrink: 0; font-size: var(--site-text-action); min-height: 48px; gap: var(--space-3); }
#role-panel .text-link svg, .page-onward>.text-link svg, .workflow-copy .text-link svg { width: 22px; height: 22px; }
.workflow-detail,.demo-layout { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-11); padding-block: var(--site-section); }
.workflow-detail h2,.demo-agenda h2 { margin-top: var(--space-5); }
.workflow-detail>div>p:not(.eyebrow) { margin-top: var(--space-5); max-width: 40ch; color: var(--site-muted); line-height: 1.8; }
.workflow-copy>p { font-size: var(--site-text-body); }
.workflow-copy .text-link { margin-top: var(--space-5); font-size: var(--site-text-action); min-height: 48px; gap: var(--space-3); }
.workflow-evidence { padding: var(--space-7); border: var(--site-hairline) solid var(--site-border); border-radius: var(--radius-lg); background: var(--site-surface); }
.workflow-evidence>.eyebrow { font-size: 14px; }
.workflow-evidence h3 { margin-top: var(--space-4); font-size: var(--site-text-heading); }
.workflow-evidence dl { margin: var(--space-6) 0 0; }
.workflow-evidence dl>div { padding-block: var(--space-4); border-top: var(--site-hairline) solid var(--site-border); }
.workflow-evidence dt { font-size: 16px; color: var(--site-muted); }
.workflow-evidence dd { margin: var(--space-2) 0 0; font-size: var(--site-text-body); line-height: 1.7; }
.workflow-evidence .workflow-boundary { display: flex; align-items: flex-start; gap: var(--space-3); font-size: 16px; }
.workflow-boundary svg { margin-top: 5px; }
.workflow-boundary svg { color: var(--gold-500); }
.demo-layout { padding-top: var(--space-4); align-items: start; }
.demo-agenda ol { margin: var(--space-7) 0 0; padding: 0; list-style: none; }
.demo-agenda li { display: flex; gap: var(--space-5); padding-block: var(--space-6); border-top: var(--site-hairline) solid var(--site-border); }
.demo-agenda li>span { color: var(--gold-aa-500); font-family: var(--font-data); font-size: var(--text-caption); padding-top: var(--space-1); }
.demo-agenda li p { color: var(--site-muted); font-size: var(--site-text-body); line-height: 1.8; margin-top: var(--space-3); }
.demo-contact { display: flex; flex-direction: column; align-items: flex-start; padding: var(--space-9); border: var(--site-hairline) solid var(--site-border); border-radius: var(--radius-lg); background: var(--site-surface); }
.demo-contact h2 { margin-top: var(--space-7); }
.demo-contact p { color: var(--site-muted); margin-top: var(--space-5); font-size: var(--site-text-body); line-height: 1.8; }
.demo-contact .button { margin-top: var(--space-7); }
.demo-contact .text-link { margin-top: var(--space-5); max-width: 100%; }
.legal-hero,.legal-layout { max-width: 840px; }
.legal-hero { padding-bottom: var(--space-8); }
.legal-hero .hero-description { font-size: var(--site-text-body); }
.legal-layout { padding-bottom: var(--site-section); }
.legal-toc { border-block: var(--site-hairline) solid var(--site-border); margin-bottom: var(--space-8); }
.legal-toc summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding-block: var(--space-5); font-size: var(--site-text-body); font-weight: 500; cursor: pointer; list-style: none; }
.legal-toc summary::-webkit-details-marker { display: none; }
.legal-toc summary svg { width: 20px; height: 20px; flex-shrink: 0; }
.legal-toc[open] summary svg { transform: rotate(45deg); }
.legal-toc ol { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: var(--space-7); list-style: none; padding: 0 0 var(--space-5); margin: 0; }
.legal-toc a { display: block; padding-block: var(--space-2); color: var(--site-muted); font-size: var(--site-text-control); line-height: 1.6; overflow-wrap: anywhere; }
.legal-toc a:hover { color: var(--fg-1); }
.legal-copy { color: var(--site-muted); font-size: var(--site-text-body); line-height: 1.85; overflow-wrap: anywhere; }
.legal-copy p,.legal-copy ul,.legal-copy ol { margin: 0 0 var(--space-5); }
.legal-copy h2,.legal-copy h3 { color: var(--fg-1); line-height: 1.4; letter-spacing: -.02em; }
.legal-copy h2 { font-size: var(--site-text-heading); margin: var(--space-9) 0 var(--space-4); }
.legal-copy h3 { font-size: var(--site-text-body); margin: var(--space-7) 0 var(--space-3); }
.legal-copy>:first-child { margin-top: 0; }
.legal-copy strong { color: var(--fg-1); font-weight: 500; }
.legal-copy ul,.legal-copy ol { padding-left: var(--space-6); }
.legal-copy li+li { margin-top: var(--space-2); }
.legal-copy a { color: var(--fg-1); text-decoration: underline; text-underline-offset: 3px; }
.legal-copy a:hover { color: var(--gold-aa-500); }
@media(max-width:560px) { .legal-toc ol { grid-template-columns: 1fr; }.legal-hero { padding-bottom: var(--space-6); } }
.pricing-layout { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: var(--space-11); padding-block: var(--space-10) var(--site-section); }
.pricing-intro { padding-block: var(--space-7); }
.pricing-intro .hero-description { max-width: 35ch; font-size: var(--site-text-body); }
.pricing-next { font-size: var(--site-text-body); border-top: var(--site-hairline) solid var(--site-border); padding-top: var(--space-6); margin-top: var(--space-9); max-width: 35ch; }
.pricing-next p { color: var(--site-muted); font-size: inherit; margin-bottom: var(--space-3); }
.pricing-next .text-link { font-size: var(--site-text-action); min-height: 48px; gap: var(--space-3); }
.pricing-next .text-link svg { width: 22px; height: 22px; }
.pricing-next .contact-email { display: inline-block; max-width: 100%; overflow-wrap: anywhere; }
.pricing-card { min-width: 0; background: var(--site-panel); border: var(--site-hairline) solid var(--site-border); border-radius: var(--radius-lg); padding: var(--space-7); }
.pricing-form-intro { color: var(--site-muted); font-size: var(--site-text-body); margin-top: var(--space-3); }
.pricing-preview-note { color: var(--site-muted); background: var(--site-surface); border-left: 2px solid var(--gold-500); padding: var(--space-3); font-size: var(--text-caption); }
.pricing-fields { border: 0; margin: var(--space-6) 0 0; padding: 0; min-width: 0; }
.form-field { margin-bottom: var(--space-5); }
.form-field label { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-3); font-size: var(--site-text-body); margin-bottom: var(--space-2); }
.form-field label span { color: var(--site-muted); font-size: var(--site-text-control); }
.form-field input,.form-field textarea { display: block; width: 100%; min-width: 0; min-height: 48px; border: var(--site-hairline) solid var(--site-border); border-radius: var(--radius-md); background: var(--site-page); color: var(--fg-1); font: inherit; font-size: 16px; padding: var(--space-3); }
.form-field textarea { resize: vertical; min-height: 118px; line-height: 1.6; }
.form-field input::placeholder,.form-field textarea::placeholder { color: var(--site-muted); opacity: 1; }
.form-field input:focus-visible,.form-field textarea:focus-visible,.pricing-status:focus-visible { outline: 2px solid var(--gold-aa-500); outline-offset: 3px; }
.field-hint { font-size: var(--text-caption); color: var(--site-muted); margin-top: var(--space-2); }
.pricing-submit { width: 100%; min-height: 48px; }
.pricing-submit:disabled { opacity: .6; cursor: wait; transform: none; }
.pricing-privacy { color: var(--site-muted); font-size: var(--text-caption); line-height: 1.7; margin-top: var(--space-4); }
.pricing-privacy a { text-decoration: underline; text-underline-offset: 3px; }
.pricing-status { background: var(--site-surface); border: var(--site-hairline) solid var(--site-border); border-radius: var(--radius-md); padding: var(--space-4); margin-top: var(--space-5); font-size: var(--text-body-sm); }
.pricing-status[data-state="error"] { border-color: var(--gold-aa-500); }
.visually-hidden,.pricing-honeypot { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media(max-width:1100px) { .pricing-layout { gap: var(--space-8); } }
@media(max-width:800px) { .pricing-layout { grid-template-columns: 1fr; gap: var(--space-7); padding-top: var(--space-8); }.pricing-intro { padding: 0; }.pricing-intro .hero-description { max-width: 50ch; }.pricing-next { margin-top: var(--space-6); padding-top: var(--space-4); }.pricing-card { width: 100%; max-width: 600px; } }
@media(max-width:560px) { .pricing-card { padding: var(--space-5); }.pricing-layout { padding-bottom: var(--space-10); } }
@media(max-width:800px) { .workflow-detail,.demo-layout { grid-template-columns: 1fr; gap: var(--space-8); }.demo-contact { max-width: 580px; }.page-onward { align-items: start; flex-direction: column; gap: var(--space-4); } }
@media(max-width:560px) { .page-hero .hero-description { margin-top: var(--space-5); }.workflow-evidence,.demo-contact { padding: var(--space-6); }.inner-page .teams-section,.inner-page .questions-section { padding-top: 0; } }
@media(min-width:1500px) { :root { --site-width: 1248px; --site-heading: 84px; }.hero { padding-top: var(--space-12); } }
@media(max-width:1100px) { .process-grid { grid-template-columns: repeat(2,1fr); }.header-inner { gap: var(--space-6); }.desktop-nav { gap: var(--space-5); }.hero-bottom { align-items: flex-start; flex-direction: column; gap: var(--space-6); }.hero-description { max-width: 55ch; }.product-shell { grid-template-columns: 145px minmax(0,1fr); }.sidebar-item { padding-inline: var(--space-2); font-size: 10px; }.workspace-label { font-size: 9px; margin-left: var(--space-2); }.finding-area { padding: var(--space-4); }.finding strong { font-size: 10px; }.document-area { padding-inline: var(--space-4); }.app-page-heading h2 { font-size: 18px; }.section-intro { column-gap: var(--space-10); }.teams-section,.questions-section { gap: var(--space-10); } }
@media(max-width:800px) { .site-header .brand img { width: 192px; }.principle-grid { grid-template-columns: 1fr; }.principle-grid article { padding-bottom: var(--space-6); }.principle-grid article+article { border-left: 0; padding-left: 0; }:root { --site-gutter: var(--space-6); --site-section: var(--space-11); --site-header-height: 88px; }.desktop-nav { display: none; }.header-actions { margin-left: auto; }.menu-toggle { display: inline-flex; }.mobile-nav:not([hidden]) { display: grid; padding: 0 var(--site-gutter) var(--space-4); }.mobile-nav a { padding: var(--space-3); border-top: var(--site-hairline) solid var(--site-border); }.hero { padding-top: var(--space-10); }.hero h1 { font-size: clamp(42px,8.5vw,64px); }.product-sidebar { display: none; }.product-shell { display: block; }.app-page-heading h2 { font-size: 18px; }.section-intro { gap: var(--space-6); }.principle-grid article { padding-right: var(--space-5); }.principle-grid article+article { padding-left: 0; }.process-grid { grid-template-columns: repeat(2,1fr); row-gap: var(--space-8); }.process-number { margin-bottom: var(--space-4); }.teams-section { grid-template-columns: 1fr; gap: var(--space-7); }.decision-visual { max-width: 520px; width: 100%; justify-self: center; }.questions-section { grid-template-columns: 1fr; gap: var(--space-7); }.closing-inner { padding: var(--space-9); grid-template-columns: 1fr; gap: var(--space-8); }.closing-mark { justify-self: end; width: 44%; max-width: 260px; }.workflow-section { padding-block: var(--space-10); } }
@media(max-width:560px) { :root { --site-gutter: var(--space-5); --site-section: var(--space-10); }.concept-note { font-size: 9px; }.concept-note>span:last-child { max-width: 19ch; text-align: right; }.header-inner { gap: var(--space-2); }.site-header .brand img { width: 144px; height: auto; }.header-actions { gap: 0; }.header-actions>.button-small { padding-inline: var(--space-3); font-size: var(--site-text-body); min-height: 48px; }.header-actions>.button-small svg { display: none; }.theme-toggle { width: 40px; }.hero { padding-top: var(--space-9); padding-bottom: var(--space-8); }.hero>.eyebrow { font-size: 9px; gap: var(--space-2); }.hero h1 { font-size: clamp(35px,8.8vw,48px); letter-spacing: -.055em; margin-top: var(--space-6); }.hero-description { font-size: var(--site-text-body); }.hero-bottom { margin-top: var(--space-5); }.hero-actions { flex-wrap: wrap; gap: var(--space-3); }.preview-topline { padding: var(--space-3); font-size: 9px; }.sample-label { font-size: 8px; }.app-breadcrumb { padding: var(--space-3); font-size: 9px; }.app-page-heading { padding: var(--space-5) var(--space-3); align-items: flex-start; }.app-page-heading h2 { font-size: 16px; max-width: 21ch; }.app-page-heading .status { font-size: 8px; padding-inline: var(--space-1); }.review-grid { grid-template-columns: 1fr; }.document-area { border-right: 0; border-bottom: var(--site-hairline) solid var(--site-border); padding: var(--space-4); }.sample-document { max-width: 270px; }.document-toolbar { font-size: 9px; }.house-scene { height: 100px; }.sample-document h3 { font-size: 24px; }.finding-area { padding: var(--space-5) var(--space-4); }.finding strong { font-size: var(--text-caption); }.finding small { font-size: 10px; }.finding-intro { font-size: var(--text-overline); }.finding-heading h3 { font-size: var(--text-body); }.evidence-label { font-size: 10px; }.evidence-card h4 { font-size: var(--text-caption); }.evidence-card>p:not(.evidence-label) { font-size: var(--text-overline); }.review-boundary { font-size: 10px; }.workflow-tabs { gap: var(--space-2); }.workflow-tabs button { align-items: flex-start; flex-direction: column; justify-content: flex-start; gap: var(--space-2); padding: var(--space-4) var(--space-1); text-align: left; font-size: var(--site-text-control); }.product-caption { font-size: var(--text-overline); max-width: 31ch; margin-inline: auto; }.section-intro { display: block; }.section-intro>p:last-child { margin-top: var(--space-5); }.section-intro>.eyebrow { margin-bottom: var(--space-5); }.principle-grid { grid-template-columns: 1fr; margin-top: var(--space-7); }.principle-grid article { padding: var(--space-6) 0; display: grid; grid-template-columns: var(--space-7) 1fr; column-gap: var(--space-5); }.principle-grid article+article { padding-left: 0; border-left: 0; }.principle-grid svg { grid-row: 1/3; margin: 0; }.principle-grid p { margin-top: var(--space-2); }.section-header { display: block; }.section-header>p { margin-top: var(--space-5); }.process-grid { grid-template-columns: 1fr; margin-top: var(--space-8); column-gap: var(--space-5); }.role-tabs { justify-content: space-between; gap: var(--space-1); }.role-tabs button { padding-inline: 0; font-size: var(--site-text-control); }.decision-visual { min-height: 385px; padding: var(--space-7) var(--space-5); }.decision-top>span { font-size: var(--site-text-body); }.closing-inner { padding: var(--space-7) var(--space-5); }.closing-mark { width: 55%; }.site-footer { grid-template-columns: 1fr; }.site-footer nav { gap: var(--space-5); }.footer-copyright { margin-top: 0; }.rulebook-content,.next-content { padding: var(--space-4); min-height: 570px; }.rulebook-summary,.report-summary { gap: var(--space-3); align-items: flex-start; }.rulebook-summary h3,.report-summary h3 { font-size: var(--text-body); }.rulebook-summary p,.report-summary p { font-size: 10px; }.rule-row { grid-template-columns: 1.1fr .85fr .8fr; padding: var(--space-3) var(--space-2); gap: var(--space-2); font-size: 9px; }.rule-row .status { font-size: 8px; white-space: normal; }.rulebook-note { padding: var(--space-4); gap: var(--space-2); }.rulebook-note h4 { font-size: var(--text-caption); }.rulebook-note p { font-size: var(--text-overline); }.next-step h3 { font-size: var(--text-body); }.report-footnote { align-items: flex-start; }.next-step { gap: var(--space-3); } }
.sample-document h3 { color: var(--site-document-ink); }
/* On phones the demonstration uses a collateral excerpt so the findings remain
   close to it. The title, highlighted disclosure and fictional-sample label stay. */
@media(max-width:560px) {
  .workflow-views .sample-document { max-width: none; padding: var(--space-4); }
  .workflow-views .sample-document h3 { font-size: var(--text-body-lg); }
  .workflow-views .sample-document .house-scene,
  .workflow-views .sample-document .document-kicker,
  .workflow-views .sample-document .document-copy { display: none; }
  .workflow-views .finding-area { padding: var(--space-4); }
}
.button { white-space: nowrap; }
@media(max-width:360px) { .header-inner { width: calc(100% - 24px); gap: var(--space-1); }.header-inner .brand img { width: 128px; }.header-actions>.button-small { padding-inline: var(--space-2); } }
@media(max-width:1240px) {
  .desktop-nav { display: none; }
  .header-actions { margin-left: auto; }
  .menu-toggle { display: inline-flex; }
  .mobile-nav:not([hidden]) { display: grid; padding: 0 var(--site-gutter) var(--space-4); }
  .mobile-nav a { padding: var(--space-3); border-top: var(--site-hairline) solid var(--site-border); }
}
@media(max-width:700px) {
  .header-actions .header-demo { display: none; }
  .mobile-nav .mobile-demo { display: flex; margin-top: var(--space-3); border: var(--site-hairline) solid var(--gold-500); color: #fff; font-size: var(--site-text-action); min-height: 56px; }
}
@media(max-width:560px) {
  .header-actions .login-link { margin-inline: var(--space-1); min-width: 64px; font-size: var(--site-text-body); padding-inline: var(--space-2); }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior: auto; }*,*::before,*::after { animation: none !important; transition: none !important; }.button:hover { transform: none; } }

/* These headings now lead their sections without an introductory label. */
.hero h1:first-child, .section-header h2:first-child, .teams-copy h2:first-child,
.questions-section h2:first-child, .workflow-copy h2:first-child, .page-onward h2:first-child, .closing-inner h2:first-child { margin-top: 0; }
@media(max-width:560px) {
  .faq-list summary { font-size: var(--site-text-body); }
  .decision-output { font-size: var(--site-text-action); }
}

/* Company and editorial pages share the marketing site's theme tokens. */
.team-section,.articles-section{padding-block:24px 100px}.team-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin-top:48px}.team-member img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;border-radius:var(--radius-lg);background:var(--site-panel)}.team-member h3{font-size:22px;margin-top:20px}.article-feature{display:grid;grid-template-columns:1fr 2fr;gap:48px;border-top:1px solid var(--site-border);padding-top:36px;margin-top:36px}.article-meta{display:flex;flex-direction:column;gap:8px;color:var(--site-muted);font-size:14px}.article-feature h3{font-size:clamp(26px,3vw,38px);line-height:1.25}.article-feature p{color:var(--site-muted);margin:24px 0;line-height:1.8}.article-layout{max-width:860px;padding-block:64px 96px}.article-body header{margin:36px 0 48px;padding-bottom:32px;border-bottom:1px solid var(--site-border)}.article-body h1{font-size:clamp(34px,5vw,58px);line-height:1.15;letter-spacing:-.04em}.article-body header p{color:var(--site-muted);margin-top:24px}.article-body header span{margin-inline:10px}.article-body p,.article-body li{line-height:1.85;font-size:18px}.article-body p{margin:20px 0}.article-body h2{font-size:clamp(26px,3vw,34px);margin:48px 0 20px;line-height:1.3}.article-body ul,.article-body ol{padding-left:28px;margin:24px 0}.article-body li{margin:12px 0}.article-body a{text-decoration:underline;text-underline-offset:3px}.article-body hr{border:0;border-top:1px solid var(--site-border);margin:44px 0}.site-footer nav{flex-wrap:wrap}.page-product #workflow{scroll-margin-top:120px}
@media(max-width:1000px){.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.team-grid{gap:28px 16px}.team-member h3{font-size:18px}.article-feature{grid-template-columns:1fr;gap:24px}.team-section,.articles-section{padding-bottom:64px}.article-layout{padding-block:40px 64px}.article-body p,.article-body li{font-size:16px}}

/* Match Arthur’s face scale to the other team portraits without editing the photo. */
.team-portrait-arthur{aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius-lg)}
.team-portrait-arthur img{transform:scale(1.25);transform-origin:50% 28%}
