
.skip-link{position:absolute;left:8px;top:-60px;z-index:3000;background:#15181F;color:#fff;padding:.6rem 1rem;border-radius:8px;text-decoration:none;transition:top .15s ease}
.skip-link:focus{top:8px;outline:2px solid #fff}
/* nlsys — light theme, strict 4-size type scale
   SIZES (only four):
     --fs-display  main page headline (h1)
     --fs-heading  section/article subheadings (h2,h3) + the hero deck + key numbers
     --fs-body     all running text, lists, nav, buttons
     --fs-caption  technical/caption tier (eyebrows, labels, data, captions)
   Hierarchy within a shared size is carried by WEIGHT, FONT and COLOR — not new sizes. */

:root {
  --bg:      #FFFFFF;
  --bg-2:    #F6F8FC;
  --bg-3:    #FFFFFF;
  --bg-4:    #EDF1F8;
  --ink:     #15181F;
  --ink-soft:#525A6B;
  --ink-dim: #6B7280;
  --line:    #E4E8F0;
  --line-2:  #EDF0F6;

  --signal:  #2563EB;     /* links / accents */
  --signal-deep:#1D4ED8;  /* button fill (white text → ~5.9:1) */
  --signal-2:#0E9CB0;
  --clean:   #15803D;
  --noise:   #B4BAC6;

  --grad: linear-gradient(105deg, var(--signal), var(--signal-2));
  --shadow-sm: 0 1px 2px rgba(16,24,40,.05), 0 1px 3px rgba(16,24,40,.07);
  --shadow-md: 0 10px 26px -12px rgba(16,24,40,.20);
  --shadow-lg: 0 28px 60px -28px rgba(16,24,40,.24);
  --glow-soft: rgba(37,99,235,.14);

  --font-display: 'Space Grotesk', system-ui, -apple-system, sans-serif;
  --font-body:    'IBM Plex Sans', system-ui, -apple-system, sans-serif;
  --font-mono:    'IBM Plex Mono', ui-monospace, 'SF Mono', monospace;

  /* the only four sizes */
  --fs-display: clamp(2.5rem, 5.2vw, 4.4rem);
  --fs-heading: clamp(1.4rem, 2.3vw, 1.72rem);
  --fs-body:    1.0625rem;
  --fs-caption: 0.8rem;

  --measure: 66ch;
  --pad-x: clamp(1.25rem, 5vw, 6rem);
  --maxw:  1180px;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body { margin: 0; color: var(--ink); background: var(--bg);
  font-family: var(--font-body); font-size: var(--fs-body); line-height: 1.64;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

/* headings: two sizes only — display (h1) and heading (h2,h3) */
h1, h2, h3 { font-family: var(--font-display); font-weight: 600; letter-spacing: -0.02em; color: var(--ink); margin: 0; }
h1 { font-size: var(--fs-display); line-height: 1.06; }
h2, h3 { font-size: var(--fs-heading); line-height: 1.2; }
p { margin: 0 0 1rem; max-width: var(--measure); }
a { color: var(--signal); text-decoration: none; }
a:hover { color: var(--signal-deep); text-decoration: underline; text-underline-offset: 3px; }
em { font-style: normal; font-weight: 600; }
:focus-visible { outline: 2.5px solid var(--signal); outline-offset: 3px; border-radius: 3px; }

.wrap { max-width: var(--maxw); margin: 0 auto; padding-inline: var(--pad-x); }

/* caption tier */
.eyebrow { font-family: var(--font-mono); font-size: var(--fs-caption); letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--ink-dim); margin: 0 0 1.1rem; display: flex; align-items: center; gap: 0.6rem; line-height: 1.4; }
.eyebrow::before { content: ""; width: 1.7rem; height: 2px; border-radius: 2px; background: var(--grad); display: inline-block; }

/* nav */
.nav { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.82);
  backdrop-filter: blur(14px) saturate(140%); border-bottom: 1px solid var(--line); }
.nav-in { max-width: var(--maxw); margin: 0 auto; padding: 0.8rem var(--pad-x);
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.brand { display: inline-flex; align-items: center; gap: .55rem; font-family: var(--font-mono); font-weight: 600;
  font-size: var(--fs-body); letter-spacing: -0.01em; color: var(--ink); }
.brand:hover { color: var(--ink); text-decoration: none; }
.brand-mark { width: 60px; height: 36px; flex: none; display: inline-block;
  background: center/contain no-repeat url('data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIxNiAyMCAxNTAgOTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPGRlZnM+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImcxIiB4MT0iMCUiIHkxPSIwJSIgeDI9IjEwMCUiIHkyPSIxMDAlIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzFFNDBBRiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzI1NjNFQiIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iZzIiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMTAwJSIgeTI9IjEwMCUiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjMjU2M0VCIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjM0I4MkY2Ii8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJnMyIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMTAwJSI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiMzQjgyRjYiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM2MEE1RkEiLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9Imc0IiB4MT0iMCUiIHkxPSIwJSIgeDI9IjEwMCUiIHkyPSIxMDAlIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzYwQTVGQSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzkzQzVGRCIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICA8L2RlZnM+CgogIDwhLS0gUm93IDUgKGJvdHRvbSkg4oCUIHNvbGlkIC0tPgogIDxwb2x5Z29uIHBvaW50cz0iMzAsMTA1IDQwLDg4IDUwLDEwNSIgZmlsbD0idXJsKCNnMSkiIG9wYWNpdHk9IjAuOTUiLz4KICA8cG9seWdvbiBwb2ludHM9IjQ2LDEwNSA1Niw4OCA2NiwxMDUiIGZpbGw9InVybCgjZzEpIiBvcGFjaXR5PSIwLjkyIi8+CiAgPHBvbHlnb24gcG9pbnRzPSI2MiwxMDUgNzIsODggODIsMTA1IiBmaWxsPSJ1cmwoI2cyKSIgb3BhY2l0eT0iMC45Ii8+CiAgPHBvbHlnb24gcG9pbnRzPSI3OCwxMDUgODgsODggOTgsMTA1IiBmaWxsPSJ1cmwoI2cyKSIgb3BhY2l0eT0iMC44OCIvPgogIDxwb2x5Z29uIHBvaW50cz0iOTQsMTA1IDEwNCw4OCAxMTQsMTA1IiBmaWxsPSJ1cmwoI2czKSIgb3BhY2l0eT0iMC44MiIvPgogIDxwb2x5Z29uIHBvaW50cz0iMTEwLDEwNSAxMjAsODggMTMwLDEwNSIgZmlsbD0idXJsKCNnMykiIG9wYWNpdHk9IjAuNyIvPgogIDxwb2x5Z29uIHBvaW50cz0iMTI2LDEwNSAxMzYsODggMTQ2LDEwNSIgZmlsbD0idXJsKCNnNCkiIG9wYWNpdHk9IjAuNSIvPgogIDxwb2x5Z29uIHBvaW50cz0iMTQwLDEwNSAxNDgsOTEgMTU2LDEwNSIgZmlsbD0idXJsKCNnNCkiIG9wYWNpdHk9IjAuMyIvPgoKICA8IS0tIFJvdyA0IC0tPgogIDxwb2x5Z29uIHBvaW50cz0iMjIsODggMzIsNzEgNDIsODgiIGZpbGw9InVybCgjZzEpIiBvcGFjaXR5PSIwLjkzIi8+CiAgPHBvbHlnb24gcG9pbnRzPSIzOCw4OCA0OCw3MSA1OCw4OCIgZmlsbD0idXJsKCNnMSkiIG9wYWNpdHk9IjAuOSIvPgogIDxwb2x5Z29uIHBvaW50cz0iNTQsODggNjQsNzEgNzQsODgiIGZpbGw9InVybCgjZzIpIiBvcGFjaXR5PSIwLjg4Ii8+CiAgPHBvbHlnb24gcG9pbnRzPSI3MCw4OCA4MCw3MSA5MCw4OCIgZmlsbD0idXJsKCNnMikiIG9wYWNpdHk9IjAuODIiLz4KICA8cG9seWdvbiBwb2ludHM9Ijg2LDg4IDk2LDcxIDEwNiw4OCIgZmlsbD0idXJsKCNnMykiIG9wYWNpdHk9IjAuNzIiLz4KICA8cG9seWdvbiBwb2ludHM9IjEwMiw4OCAxMTIsNzEgMTIyLDg4IiBmaWxsPSJ1cmwoI2czKSIgb3BhY2l0eT0iMC41NSIvPgogIDxwb2x5Z29uIHBvaW50cz0iMTE2LDg4IDEyNCw3NCAxMzIsODgiIGZpbGw9InVybCgjZzQpIiBvcGFjaXR5PSIwLjM1Ii8+CiAgPHBvbHlnb24gcG9pbnRzPSIxMzAsODggMTM3LDc2IDE0NCw4OCIgZmlsbD0idXJsKCNnNCkiIG9wYWNpdHk9IjAuMTgiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ib3BhY2l0eSIgdmFsdWVzPSIwLjE4OzAuMDg7MC4xOCIgZHVyPSI0cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICA8L3BvbHlnb24+CgogIDwhLS0gUm93IDMgLS0+CiAgPHBvbHlnb24gcG9pbnRzPSIyOCw3MSAzOCw1NCA0OCw3MSIgZmlsbD0idXJsKCNnMSkiIG9wYWNpdHk9IjAuODgiLz4KICA8cG9seWdvbiBwb2ludHM9IjQ0LDcxIDU0LDU0IDY0LDcxIiBmaWxsPSJ1cmwoI2cxKSIgb3BhY2l0eT0iMC44NSIvPgogIDxwb2x5Z29uIHBvaW50cz0iNjAsNzEgNzAsNTQgODAsNzEiIGZpbGw9InVybCgjZzIpIiBvcGFjaXR5PSIwLjc4Ii8+CiAgPHBvbHlnb24gcG9pbnRzPSI3Niw3MSA4Niw1NCA5Niw3MSIgZmlsbD0idXJsKCNnMikiIG9wYWNpdHk9IjAuNjgiLz4KICA8cG9seWdvbiBwb2ludHM9IjkyLDcxIDEwMiw1NCAxMTIsNzEiIGZpbGw9InVybCgjZzMpIiBvcGFjaXR5PSIwLjUyIi8+CiAgPHBvbHlnb24gcG9pbnRzPSIxMDYsNzEgMTE0LDU3IDEyMiw3MSIgZmlsbD0idXJsKCNnMykiIG9wYWNpdHk9IjAuMzIiLz4KICA8cG9seWdvbiBwb2ludHM9IjEyMCw3MSAxMjcsNTkgMTM0LDcxIiBmaWxsPSJ1cmwoI2c0KSIgb3BhY2l0eT0iMC4xNSI+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiB2YWx1ZXM9IjAuMTU7MC4wNjswLjE1IiBkdXI9IjVzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogIDwvcG9seWdvbj4KICA8cG9seWdvbiBwb2ludHM9IjEzMiw2OCAxMzcsNjAgMTQyLDY4IiBmaWxsPSJ1cmwoI2c0KSIgb3BhY2l0eT0iMC4wNyI+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiB2YWx1ZXM9IjAuMDc7MC4wMjswLjA3IiBkdXI9IjMuNXMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgPC9wb2x5Z29uPgoKICA8IS0tIFJvdyAyIC0tPgogIDxwb2x5Z29uIHBvaW50cz0iMzgsNTQgNDcsMzkgNTYsNTQiIGZpbGw9InVybCgjZzEpIiBvcGFjaXR5PSIwLjgiLz4KICA8cG9seWdvbiBwb2ludHM9IjUyLDU0IDYxLDM5IDcwLDU0IiBmaWxsPSJ1cmwoI2cxKSIgb3BhY2l0eT0iMC43MiIvPgogIDxwb2x5Z29uIHBvaW50cz0iNjYsNTQgNzUsMzkgODQsNTQiIGZpbGw9InVybCgjZzIpIiBvcGFjaXR5PSIwLjYiLz4KICA8cG9seWdvbiBwb2ludHM9IjgwLDU0IDg5LDM5IDk4LDU0IiBmaWxsPSJ1cmwoI2cyKSIgb3BhY2l0eT0iMC40NSIvPgogIDxwb2x5Z29uIHBvaW50cz0iOTQsNTQgMTAyLDQxIDExMCw1NCIgZmlsbD0idXJsKCNnMykiIG9wYWNpdHk9IjAuMjgiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ib3BhY2l0eSIgdmFsdWVzPSIwLjI4OzAuMTQ7MC4yOCIgZHVyPSI0LjVzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogIDwvcG9seWdvbj4KICA8cG9seWdvbiBwb2ludHM9IjEwOCw1NCAxMTQsNDMgMTIwLDU0IiBmaWxsPSJ1cmwoI2c0KSIgb3BhY2l0eT0iMC4xMiI+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiB2YWx1ZXM9IjAuMTI7MC4wNDswLjEyIiBkdXI9IjMuOHMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgPC9wb2x5Z29uPgogIDxwb2x5Z29uIHBvaW50cz0iMTE5LDUxIDEyMyw0NCAxMjcsNTEiIGZpbGw9InVybCgjZzQpIiBvcGFjaXR5PSIwLjA1Ij4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIHZhbHVlcz0iMC4wNTswLjAxOzAuMDUiIGR1cj0iNC4ycyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICA8L3BvbHlnb24+CgogIDwhLS0gUm93IDEgKHRvcCBwZWFrKSDigJQgbW9zdGx5IGRpc3NvbHZlZCAtLT4KICA8cG9seWdvbiBwb2ludHM9IjUwLDM5IDU3LDI3IDY0LDM5IiBmaWxsPSJ1cmwoI2cxKSIgb3BhY2l0eT0iMC41NSIvPgogIDxwb2x5Z29uIHBvaW50cz0iNjIsMzkgNjksMjcgNzYsMzkiIGZpbGw9InVybCgjZzIpIiBvcGFjaXR5PSIwLjQiLz4KICA8cG9seWdvbiBwb2ludHM9Ijc0LDM5IDgwLDI4IDg2LDM5IiBmaWxsPSJ1cmwoI2cyKSIgb3BhY2l0eT0iMC4yNSI+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiB2YWx1ZXM9IjAuMjU7MC4xOzAuMjUiIGR1cj0iNXMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgPC9wb2x5Z29uPgogIDxwb2x5Z29uIHBvaW50cz0iODQsMzcgODksMjggOTQsMzciIGZpbGw9InVybCgjZzMpIiBvcGFjaXR5PSIwLjEyIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIHZhbHVlcz0iMC4xMjswLjA0OzAuMTIiIGR1cj0iNHMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgPC9wb2x5Z29uPgogIDxwb2x5Z29uIHBvaW50cz0iOTMsMzUgOTcsMjggMTAxLDM1IiBmaWxsPSJ1cmwoI2c0KSIgb3BhY2l0eT0iMC4wNiI+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiB2YWx1ZXM9IjAuMDY7MC4wMTswLjA2IiBkdXI9IjMuNXMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgPC9wb2x5Z29uPgoKICA8IS0tIFNjYXR0ZXJlZCBwYXJ0aWNsZXMgLS0+CiAgPHBvbHlnb24gcG9pbnRzPSIxMDIsMzAgMTA0LDI2IDEwNiwzMCIgZmlsbD0iIzkzQzVGRCIgb3BhY2l0eT0iMC4wNCI+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiB2YWx1ZXM9IjAuMDQ7MC4wMTswLjA0IiBkdXI9IjNzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogIDwvcG9seWdvbj4KICA8cG9seWdvbiBwb2ludHM9IjExMCwzNSAxMTIsMzIgMTE0LDM1IiBmaWxsPSIjOTNDNUZEIiBvcGFjaXR5PSIwLjAzIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIHZhbHVlcz0iMC4wMzswLjAwNTswLjAzIiBkdXI9IjRzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogIDwvcG9seWdvbj4KICA8cG9seWdvbiBwb2ludHM9IjE0NSw4NSAxNDcsODIgMTQ5LDg1IiBmaWxsPSIjOTNDNUZEIiBvcGFjaXR5PSIwLjA4Ij4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIHZhbHVlcz0iMC4wODswLjAyOzAuMDgiIGR1cj0iMy4ycyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICA8L3BvbHlnb24+CiAgPHBvbHlnb24gcG9pbnRzPSIxNTUsOTYgMTU3LDkzIDE1OSw5NiIgZmlsbD0iI0JGREJGRSIgb3BhY2l0eT0iMC4wNSI+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiB2YWx1ZXM9IjAuMDU7MC4wMTswLjA1IiBkdXI9IjQuOHMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgPC9wb2x5Z29uPgogIDxwb2x5Z29uIHBvaW50cz0iMTM4LDYyIDE0MCw1OSAxNDIsNjIiIGZpbGw9IiM5M0M1RkQiIG9wYWNpdHk9IjAuMDQiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ib3BhY2l0eSIgdmFsdWVzPSIwLjA0OzAuMDA4OzAuMDQiIGR1cj0iNS4ycyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICA8L3BvbHlnb24+Cjwvc3ZnPgo='); }
.brand-name { font-family: var(--font-mono); font-weight: 600; }
.nav-links { display: flex; align-items: center; gap: 1.7rem; }
.nav-links a:not(.btn) { color: var(--ink-soft); font-size: var(--fs-body); transition: color .15s ease; }
.nav-links a:not(.btn):hover { color: var(--ink); text-decoration: none; }
.nav-links a.is-current { color: var(--ink); }

/* buttons (body size, white text on deep blue) */
.btn { display: inline-flex; align-items: center; gap: 0.5rem; font-family: var(--font-body); font-weight: 600; font-size: var(--fs-body);
  padding: 0.7rem 1.25rem; border-radius: 9px; border: 1px solid transparent; cursor: pointer;
  transition: transform .14s ease, box-shadow .2s ease, border-color .15s ease, background .15s ease; }
.btn-primary { background: var(--signal-deep); color: #fff; box-shadow: 0 8px 20px -8px rgba(29,78,216,.5); }
.btn-primary:hover { background: #1A45C0; color: #fff; text-decoration: none; transform: translateY(-2px); box-shadow: 0 14px 30px -8px rgba(29,78,216,.55); }
.btn-ghost { background: #fff; color: var(--ink); border-color: var(--line); box-shadow: var(--shadow-sm); }
.btn-ghost:hover { color: var(--ink); text-decoration: none; border-color: var(--signal); }
.btn-arrow::after { content: "→"; font-family: var(--font-mono); }

/* hero */
.hero { padding: clamp(3.5rem, 8vw, 7rem) 0 clamp(2.5rem, 5vw, 4rem); }
.hero h1 { max-width: 18ch; }
.hero h1 .sig, .sig { background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero .lead { font-size: var(--fs-heading); font-family: var(--font-body); font-weight: 400; line-height: 1.4;
  color: var(--ink-soft); margin-top: 1.6rem; max-width: 52ch; }
.hero-cta { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2.2rem; }

.hero-xl { position: relative; overflow: hidden; padding-top: clamp(3rem, 7vw, 5.5rem); }
.hero-xl::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: linear-gradient(var(--line-2) 1px, transparent 1px), linear-gradient(90deg, var(--line-2) 1px, transparent 1px);
  background-size: 32px 32px;
  -webkit-mask-image: radial-gradient(ellipse 95% 75% at 50% 14%, #000 24%, transparent 78%);
          mask-image: radial-gradient(ellipse 95% 75% at 50% 14%, #000 24%, transparent 78%); }
.hero-xl > * { position: relative; z-index: 1; }

.hero-pill { display: inline-flex; align-items: center; gap: .6rem; font-family: var(--font-mono); font-size: var(--fs-caption);
  letter-spacing: .07em; text-transform: uppercase; color: var(--ink-soft); border: 1px solid var(--line);
  background: #fff; box-shadow: var(--shadow-sm); padding: .42rem .85rem; border-radius: 999px; margin-bottom: 1.7rem; }
.hero-pill .pulse { width: .5rem; height: .5rem; border-radius: 50%; background: var(--signal); }
@keyframes pulse { 0%{box-shadow:0 0 0 0 rgba(37,99,235,.45)} 70%{box-shadow:0 0 0 8px rgba(37,99,235,0)} 100%{box-shadow:0 0 0 0 rgba(37,99,235,0)} }
@media (prefers-reduced-motion: no-preference) { .hero-pill .pulse { animation: pulse 2.4s infinite; } }

/* scope */
.scope { margin-top: clamp(2.2rem, 4vw, 3.4rem); border: 1px solid var(--line); border-radius: 14px;
  background: linear-gradient(180deg, #FBFCFE, #F4F7FC); padding: 1.1rem 1.1rem 0.5rem; box-shadow: var(--shadow-lg); position: relative; }
.scope svg { display: block; width: 100%; height: auto; }
.scope-svg path { filter: drop-shadow(0 1px 4px rgba(37,99,235,.35)); }
.scope-xl .scope-svg { height: clamp(230px, 32vw, 330px) !important; }
.scope-cap { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 0.5rem; font-family: var(--font-mono);
  font-size: var(--fs-caption); color: var(--ink-dim); padding: 0.65rem 0.3rem 0.45rem; border-top: 1px solid var(--line); margin-top: 0.45rem; }
.scope-cap .k-noise { color: #97A0B0; }
.scope-cap .k-clean { color: var(--signal); }

/* trust strip */
.trust { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem 1.4rem; font-family: var(--font-mono);
  font-size: var(--fs-caption); color: var(--ink-soft); margin-top: 2.1rem; }
.trust b { color: var(--ink); font-weight: 600; }
.trust .sep { width: 1px; height: 1rem; background: var(--line); display: inline-block; }

/* section */
.section { padding: clamp(3rem, 6vw, 5.5rem) 0; border-top: 1px solid var(--line); }
.section-head { max-width: 60ch; margin-bottom: 2.4rem; }
.section-head p { color: var(--ink-soft); margin-top: 1rem; }

/* proof */
.proof { position: relative; border-radius: 16px; padding: clamp(1.6rem,3vw,2.6rem); background: var(--bg-2);
  border: 1px solid var(--line); box-shadow: var(--shadow-md); overflow: hidden; }
.proof::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--grad); }
.proof .eyebrow { color: var(--ink-dim); }
.proof h3 { margin-bottom: 1.5rem; max-width: 46ch; }
.bench { font-family: var(--font-mono); font-size: var(--fs-caption); line-height: 1.5; display: grid; gap: 0.6rem; }
.bench-row { display: grid; grid-template-columns: minmax(7rem, 1fr) auto; gap: 0.8rem 1.2rem; align-items: baseline;
  padding-bottom: 0.6rem; border-bottom: 1px solid var(--line); }
.bench-row:last-child { border-bottom: 0; padding-bottom: 0; }
.bench-label { color: var(--ink-soft); }
.bench-vals { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; justify-content: flex-end; }
.bench-vals span { white-space: nowrap; }
.neg { color: #6E7686; }
.pos { color: var(--clean); font-weight: 600; }
.section-lead { max-width: 46rem; margin: 0 auto 1.4rem; line-height: 1.65; }
.proof-note { font-size: .93rem; color: var(--ink-dim); margin: 1.2rem auto 0; max-width: 44rem; line-height: 1.6; text-align: center; }
.frow .proof-note, .card .proof-note { text-align: left; margin-left: 0; }

/* stats — numbers use heading size, accent colour */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; }
.stat { border-left: 3px solid; border-image: var(--grad) 1; padding-left: 1rem; }
.stat .v { font-family: var(--font-display); font-size: var(--fs-heading); font-weight: 600; letter-spacing: -0.02em; color: var(--signal); line-height: 1.1; }
.stat .l { font-size: var(--fs-caption); color: var(--ink-soft); margin-top: 0.4rem; line-height: 1.45; }

/* steps */
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
.step { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 1.6rem; box-shadow: var(--shadow-sm);
  transition: transform .15s ease, border-color .15s ease, box-shadow .2s ease; }
.step:hover { transform: translateY(-3px); border-color: var(--signal); box-shadow: var(--shadow-md); }
.step .n { font-family: var(--font-mono); font-size: var(--fs-caption); letter-spacing: .12em; color: var(--signal); }
.step h3 { margin: .65rem 0 .5rem; }
.step p { color: var(--ink-soft); margin: 0; }

/* outcome cards */
.benefits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.3rem; }
.benefit { display: block; padding: 1.6rem; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow-sm);
  transition: transform .15s ease, border-color .15s ease, box-shadow .2s ease; }
.benefit:hover { transform: translateY(-3px); border-color: var(--signal); box-shadow: var(--shadow-md); text-decoration: none; }
.benefit h3 { margin: 0 0 .55rem; }
.benefit p { color: var(--ink-soft); margin: 0 0 1rem; }
.benefit .go { font-family: var(--font-mono); font-size: var(--fs-caption); color: var(--signal); }

/* legacy cards */
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
.card { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 1.6rem 1.5rem; display: flex; flex-direction: column;
  box-shadow: var(--shadow-sm); transition: border-color .15s ease, transform .15s ease, box-shadow .2s ease; }
.card:hover { border-color: var(--signal); transform: translateY(-3px); box-shadow: var(--shadow-md); text-decoration: none; }
.card .num { font-family: var(--font-mono); font-size: var(--fs-caption); color: var(--signal); letter-spacing: 0.1em; }
.card h3 { margin: 0.7rem 0 0.6rem; }
.card p { color: var(--ink-soft); margin-bottom: 1.2rem; }
.card .go { font-family: var(--font-mono); font-size: var(--fs-caption); color: var(--signal); margin-top: auto; }

/* feature rows */
.rows { display: grid; gap: 0; }
.frow { display: grid; grid-template-columns: 0.9fr 1.1fr; column-gap: 2rem; row-gap: .8rem; padding: 1.9rem 0; border-top: 1px solid var(--line); }
.frow h3 { grid-column: 1; grid-row: 1; }
.frow > p, .frow > form, .frow > ul { grid-column: 2; }
.frow:first-child { border-top: 0; }
.frow p { color: var(--ink-soft); margin: 0; }

/* modes table */
.modes { width: 100%; border-collapse: collapse; font-size: var(--fs-body); }
.modes th, .modes td { text-align: left; padding: 0.95rem 1rem; border-bottom: 1px solid var(--line); vertical-align: top; color: var(--ink-soft); }
.modes thead th { font-family: var(--font-mono); font-size: var(--fs-caption); text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-dim); border-bottom: 2px solid var(--signal); }
.modes td.mode-name { font-family: var(--font-mono); font-weight: 600; color: var(--signal); white-space: nowrap; }
.modes td.mode-lat { font-family: var(--font-mono); color: var(--ink); white-space: nowrap; }
.modes td strong { color: var(--ink); }

/* pricing */
.plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; align-items: stretch; }
.plan { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 1.9rem 1.6rem; display: flex; flex-direction: column;
  box-shadow: var(--shadow-sm); transition: transform .15s ease, box-shadow .2s ease; }
.plan:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.plan.featured { border: 2px solid var(--signal); box-shadow: 0 24px 56px -28px rgba(37,99,235,.4); }
.plan .badge { font-family: var(--font-mono); font-size: var(--fs-caption); letter-spacing: .12em; text-transform: uppercase; color: var(--signal); }
.plan h3 { margin: .5rem 0 .2rem; }
.plan .who { color: var(--ink-soft); margin: 0 0 1.2rem; }
.plan .price { font-family: var(--font-display); font-size: var(--fs-heading); font-weight: 600; letter-spacing: -.02em; color: var(--ink); line-height: 1.1; }
.plan .price sup { font-size: var(--fs-caption); color: var(--signal); font-weight: 600; }
.plan .price small { font-family: var(--font-mono); font-size: var(--fs-caption); font-weight: 400; color: var(--ink-dim); display: block; margin-top: .4rem; line-height: 1.45; }
.plan ul { list-style: none; padding: 0; margin: 1.4rem 0; display: grid; gap: .65rem; }
.plan li { color: var(--ink); padding-left: 1.5rem; position: relative; }
.plan li::before { content: "+"; position: absolute; left: 0; color: var(--signal); font-family: var(--font-mono); font-weight: 600; }
.plan .btn { margin-top: auto; justify-content: center; }
.plan-foot { font-size: var(--fs-caption); color: var(--ink-soft); margin-top: 2rem; max-width: 90ch; line-height: 1.55; }
.plan-foot code { font-family: var(--font-mono); background: var(--bg-4); padding: 0 .35em; border-radius: 4px; color: var(--ink); }
.plan-foot b { color: var(--ink); }

/* CTA band */
.cta-band { position: relative; border-radius: 16px; padding: clamp(2rem,4vw,3.4rem); overflow: hidden; background: var(--bg-2);
  border: 1px solid var(--line); box-shadow: var(--shadow-md); }
.cta-band::after { content: ""; position: absolute; width: 340px; height: 340px; right: -90px; top: -120px; border-radius: 50%;
  background: radial-gradient(circle, var(--glow-soft), transparent 70%); pointer-events: none; }
.cta-band > * { position: relative; }
.cta-band h2 { max-width: 22ch; }
.cta-band p { color: var(--ink-soft); margin-top: 1rem; }
.cta-band .hero-cta { margin-top: 1.8rem; }
.ent { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 2rem; align-items: center; }
.ent .tag { font-family: var(--font-mono); font-size: var(--fs-caption); letter-spacing: .14em; text-transform: uppercase; color: var(--signal); }

/* faq */
.faq { display: grid; gap: 0; max-width: 62rem; }
.faq details { border-top: 1px solid var(--line); padding: 1.15rem 0; }
.faq summary { font-family: var(--font-display); font-weight: 600; font-size: var(--fs-heading); cursor: pointer; list-style: none;
  display: flex; justify-content: space-between; gap: 1rem; color: var(--ink); line-height: 1.25; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-family: var(--font-mono); color: var(--signal); }
.faq details[open] summary { color: var(--signal); }
.faq details[open] summary::after { content: "\2212"; }
.faq p { margin: .8rem 0 0; color: var(--ink-soft); }

/* footer */
.footer { border-top: 1px solid var(--line); padding: 3rem 0 3.5rem; margin-top: 1rem; background: var(--bg-2); }
.footer-in { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2rem; }
.footer .brand { margin-bottom: 0.8rem; }
.footer p { color: var(--ink-soft); }
.footer h4 { font-family: var(--font-mono); font-size: var(--fs-caption); text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-dim); margin: 0 0 0.85rem; }
.footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.footer ul a { color: var(--ink-soft); font-size: var(--fs-caption); }
.footer ul a:hover { color: var(--ink); }
.disclaimer { font-size: var(--fs-caption); color: var(--ink-dim); border-top: 1px solid var(--line); margin-top: 2.4rem; padding-top: 1.4rem; max-width: 86ch; line-height: 1.55; }
.disclaimer code { font-family: var(--font-mono); background: var(--bg-4); padding: 0 0.3em; border-radius: 4px; color: var(--ink-soft); }

/* reveal */
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }

/* responsive */
@media (max-width: 860px) {
  .cards, .steps, .benefits, .plans { grid-template-columns: 1fr; }
  .frow, .ent, .footer-in { grid-template-columns: 1fr; gap: 1rem; }
  .stats { grid-template-columns: repeat(2, 1fr); }
  .nav-links { gap: 1.1rem; }
  .nav-links a:not(.btn) { display: none; }
}
@media (max-width: 520px) {
  .stats { grid-template-columns: 1fr; }
  .bench-row { grid-template-columns: 1fr; }
  .bench-vals { justify-content: flex-start; }
}

/* =====================================================================
   CENTERED LAYOUT — consistent symmetric column (fixes ragged alignment)
   Hero + section intros centre; panels/grids stay full container width.
   ===================================================================== */
.hero { text-align: center; }
.hero .eyebrow, .section-head .eyebrow { justify-content: center; }
.hero h1 { max-width: 26ch; margin-left: auto; margin-right: auto; }
.hero .lead { max-width: 56ch; margin-left: auto; margin-right: auto; }
.hero-cta { justify-content: center; }
.trust { justify-content: center; }
.section-head { max-width: 64ch; margin-left: auto; margin-right: auto; text-align: center; }
.section-head p { max-width: 100%; margin-left: auto; margin-right: auto; }

/* =====================================================================
   TWO-PRODUCT NAV (tabs + subnav) + model compiler COMPONENTS — unified palette
   ===================================================================== */
.nav-left { display: inline-flex; align-items: center; gap: 1.4rem; }
.prod-tabs { display: inline-flex; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: var(--bg-2); }
.prod-tab { padding: .5rem .95rem; font-size: var(--fs-body); color: var(--ink-soft); white-space: nowrap; transition: background .15s ease, color .15s ease; }
.prod-tab:hover { color: var(--ink); text-decoration: none; }
.prod-tab + .prod-tab { border-left: 1px solid var(--line); }
.prod-tab.active { background: var(--signal-deep); color: #fff; }
.prod-tab.active:hover { color: #fff; }

.subnav { border-top: 1px solid var(--line); background: var(--bg); }
.subnav-in { max-width: var(--maxw); margin: 0 auto; padding: .55rem var(--pad-x); display: flex; flex-wrap: wrap; gap: 1.4rem; }
.subnav a { font-size: var(--fs-caption); color: var(--ink-soft); padding: .15rem 0; border-bottom: 2px solid transparent; }
.subnav a:hover { color: var(--ink); text-decoration: none; }
.subnav a.active { color: var(--ink); border-bottom-color: var(--signal); }

.steps.four { grid-template-columns: repeat(4, 1fr); }

.code { font-family: var(--font-mono); font-size: var(--fs-caption); background: var(--bg-2); border: 1px solid var(--line);
  border-radius: 10px; padding: 1.1rem 1.2rem; overflow-x: auto; color: var(--ink); line-height: 1.6; white-space: pre; margin: 0 0 1rem; }
.code .c { color: var(--ink-dim); }

.passport { width: 100%; border-collapse: collapse; font-size: var(--fs-body); background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-sm); }
.passport th, .passport td { text-align: left; padding: .8rem 1.1rem; border-bottom: 1px solid var(--line); vertical-align: top; }
.passport tr:last-child td { border-bottom: 0; }
.passport td.k { font-family: var(--font-mono); font-size: var(--fs-caption); color: var(--signal); white-space: nowrap; }
.passport td.v { color: var(--ink-soft); }
.passport thead th { font-family: var(--font-mono); font-size: var(--fs-caption); text-transform: uppercase; letter-spacing: .1em; color: var(--ink-dim); border-bottom: 2px solid var(--signal); background: var(--bg-2); }

.status-pending { font-family: var(--font-mono); font-size: var(--fs-caption); color: var(--ink-dim); border: 1px solid var(--line); border-radius: 999px; padding: .1rem .55rem; }

@media (max-width: 860px) {
  .nav-left { gap: .7rem; }
  .prod-tab { padding: .45rem .6rem; font-size: var(--fs-caption); }
  .subnav-in { gap: 1rem; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .steps.four { grid-template-columns: 1fr; }
}

/* anchored sections clear the sticky two-row header */
section[id] { scroll-margin-top: 112px; }

/* =====================================================================
   PLATFORM REBUILD — maturity badges, doors, lifecycle
   ===================================================================== */
.status { display: inline-flex; align-items: center; gap: .45rem; font-family: var(--font-mono); font-size: var(--fs-caption);
  letter-spacing: .06em; text-transform: uppercase; padding: .32rem .72rem; border-radius: 999px; border: 1px solid var(--line); background: #fff; }
.status::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; }
.status--preview { color: #1D4ED8; } .status--preview::before { background: #2563EB; }
.status--dev     { color: #56607A; } .status--dev::before     { background: #94A3B8; }

/* lifecycle flow */
.cycle { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .55rem; font-family: var(--font-mono); font-size: var(--fs-caption);
  margin: 1.6rem 0 0; }
.cycle b { border: 1px solid var(--line); border-radius: 999px; padding: .42rem .9rem; background: #fff; color: var(--ink); font-weight: 600; box-shadow: var(--shadow-sm); }
.cycle i { color: var(--signal); font-style: normal; }

/* three doors */
.doors { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
.door { display: flex; flex-direction: column; padding: 1.7rem 1.6rem; border: 1px solid var(--line); border-radius: 14px; background: #fff;
  box-shadow: var(--shadow-sm); transition: transform .15s ease, border-color .15s ease, box-shadow .2s ease; }
.door:hover { transform: translateY(-4px); border-color: var(--signal); box-shadow: var(--shadow-md); text-decoration: none; }
.door .door-top { display: flex; align-items: center; justify-content: space-between; gap: .6rem; margin-bottom: 1rem; }
.door .door-n { font-family: var(--font-mono); font-size: var(--fs-caption); letter-spacing: .12em; color: var(--signal); }
.door h3 { margin: 0 0 .55rem; }
.door p { color: var(--ink-soft); margin: 0 0 1.2rem; }
.door .go { font-family: var(--font-mono); font-size: var(--fs-caption); color: var(--signal); margin-top: auto; }
@media (max-width: 860px) { .doors { grid-template-columns: 1fr; } }

/* small note line under hero status */
.hero .status { margin-bottom: 1.4rem; }

/* =====================================================================
   FILTER & CONTROL as first-class options
   ===================================================================== */
.doors.two { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 860px) { .doors.two { grid-template-columns: 1fr; } }
/* denser top nav to fit 8 items */
@media (max-width: 1280px) { .nav-links { gap: 1.05rem; } }

/* =====================================================================
   ===================================================================== */
.lead-form { display: grid; gap: 1rem; max-width: 30rem; }
.lead-form.wide { max-width: 42rem; }
.form-row { display: grid; gap: .4rem; }
.form-row label { font-family: var(--font-mono); font-size: var(--fs-caption); color: var(--ink-soft); letter-spacing: .02em; }
.form-row input, .form-row textarea {
  font-family: var(--font-body); font-size: var(--fs-body); padding: .7rem .9rem;
  border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--ink);
  width: 100%; box-sizing: border-box; transition: border-color .15s ease, box-shadow .15s ease;
}
.form-row input:focus, .form-row textarea:focus { outline: none; border-color: var(--signal); box-shadow: 0 0 0 3px rgba(37,99,235,.14); }
.form-row textarea { resize: vertical; min-height: 5.5rem; font-family: var(--font-body); line-height: 1.5; }
.form-row input::placeholder, .form-row textarea::placeholder { color: var(--ink-dim); }
.form-actions { display: flex; gap: .9rem; align-items: center; flex-wrap: wrap; margin-top: .2rem; }
.form-actions .btn { border: none; cursor: pointer; }
.form-note { font-family: var(--font-mono); font-size: var(--fs-caption); color: var(--ink-dim); margin: 0; line-height: 1.5; }
.form-two { display: grid; grid-template-columns: 1fr 1fr; gap: 1.6rem; align-items: start; }
.form-two > div { border: 1px solid var(--line); border-radius: 14px; padding: 1.5rem; background: #fff; box-shadow: var(--shadow-sm); }
.form-two h3 { margin: 0 0 .3rem; }
.form-two .who { color: var(--ink-soft); margin: 0 0 1rem; }
@media (max-width: 860px) { .form-two { grid-template-columns: 1fr; } }
/* honeypot, hidden from humans, visible to bots */
.form-hp { position: absolute; left: -9999px; opacity: 0; height: 0; width: 0; overflow: hidden; }

/* =====================================================================
   MOBILE NAV — hamburger toggle (fixes: menu was fully hidden <860px)
   ===================================================================== */
.nav-toggle { display: none; margin-left: auto; flex-direction: column; justify-content: center; gap: 4px;
  background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: .6rem .62rem; cursor: pointer; }
.nav-toggle span { display: block; width: 18px; height: 2px; background: var(--ink); border-radius: 2px; }
@media (max-width: 860px) {
  .nav-in { position: relative; }
  .nav-toggle { display: inline-flex; }
  .nav.nav-open .nav-links { position: absolute; top: calc(100% + 8px); right: var(--pad-x); left: var(--pad-x);
    background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-md);
    flex-direction: column; align-items: stretch; padding: .8rem; gap: .15rem; z-index: 60; }
  .nav.nav-open .nav-links a:not(.btn) { display: block; padding: .6rem .65rem; border-radius: 8px; }
  .nav.nav-open .nav-links a.is-current { background: var(--bg-2); }
  .nav.nav-open .nav-links .btn { margin-top: .5rem; justify-content: center; }
}

/* =====================================================================
   WORD-OF-MOUTH SHARE ROW (thanks page) + research list
   ===================================================================== */
.share-row { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; margin-top: 1.6rem; }
.share-note { font-family: var(--font-mono); font-size: var(--fs-caption); color: var(--ink-dim); margin-top: .9rem; }
.doc-list { display: grid; gap: 1rem; max-width: 46rem; }
.doc-item { display: block; border: 1px solid var(--line); border-radius: 12px; background: #fff; padding: 1.4rem 1.5rem; box-shadow: var(--shadow-sm); transition: transform .15s ease, border-color .15s ease; }
.doc-item:hover { transform: translateY(-2px); border-color: var(--signal); text-decoration: none; }
.doc-item h3 { margin: 0 0 .35rem; }
.doc-item p { color: var(--ink-soft); margin: 0; }
.doc-item .go { font-family: var(--font-mono); font-size: var(--fs-caption); color: var(--signal); display: inline-block; margin-top: .7rem; }

/* select fields for qualification forms */
.form-row select { font-family: var(--font-body); font-size: var(--fs-body); padding: .7rem .9rem; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--ink); width: 100%; box-sizing: border-box; }
.form-row select:focus { outline: none; border-color: var(--signal); box-shadow: 0 0 0 3px rgba(37,99,235,.14); }

/* buy buttons: hidden until a real checkout URL is pasted (activated by JS) */

/* =====================================================================
   NAV DROPDOWNS — two top buttons: Products / Pricing
   ===================================================================== */
.nav-dd { position: relative; }
.nav-dd-btn { display: inline-flex; align-items: center; gap: .4rem; }
.dd-caret { font-size: .68em; color: var(--ink-dim); transform: translateY(1px); }
.nav-dd-menu { position: absolute; top: calc(100% + 10px); left: 50%; transform: translateX(-50%);
  background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-md);
  padding: .5rem; display: none; min-width: 15.5rem; z-index: 70; }
.nav-dd-menu::before { content: ""; position: absolute; top: -12px; left: 0; right: 0; height: 12px; }
.nav-dd-menu a { display: block; padding: .55rem .75rem; border-radius: 8px; white-space: nowrap; }
.nav-dd-menu a:hover { background: var(--bg-2); text-decoration: none; }
.nav-dd:hover .nav-dd-menu, .nav-dd:focus-within .nav-dd-menu { display: block; }
@media (max-width: 860px) {
  .nav.nav-open .nav-links .nav-dd-btn { display: flex; font-weight: 600; padding: .6rem .65rem; }
  .nav.nav-open .nav-dd-menu { position: static; transform: none; display: block; border: none; box-shadow: none; padding: 0 0 .3rem .9rem; min-width: 0; }
}

/* consent note under lead forms */
.form-consent { font-size: .78rem; color: var(--ink-dim); margin: .7rem 0 0; }
.form-consent a { color: var(--ink-dim); text-decoration: underline; }


/* one-line pricing note under product hero lead */
.price-note { max-width: 46rem; margin: .9rem auto 0; text-align: center; font-size: .95rem; color: var(--ink-dim); }
.price-note a { white-space: nowrap; }



/* ===== mobile overflow guard (fix half-width squeeze) ===== */
html, body { max-width: 100%; overflow-x: hidden; }
.hero, .cta-band, section { overflow-x: clip; }
table { max-width: 100%; }
@media (max-width: 620px) {
  .wrap { width: 100%; }
  table.modes, table.passport, table { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; white-space: nowrap; }
  .cta-band::after, .hero::after, .hero::before { display: none !important; }
  .wrap > *, .prose, p.prose, .tbl-note, .lead, .section-head, .section-head > * { max-width: 100% !important; }
  h1 { overflow-wrap: anywhere; }
}

/* ===== button tones ===== */
.btn-primary { background: #3B58AA; box-shadow: 0 8px 18px -8px rgba(59,88,170,.45); }
.btn-primary:hover { background: #334D94; }
.btn-strong { background: #fff; color: #0E9CB0; border: 2px solid #0E9CB0; box-shadow: 0 6px 16px -10px rgba(14,156,176,.45); }
.btn-strong:hover { background: #F0FAFB; color: #0C8A9C; border-color: #0C8A9C; }
.btn-ghost { color: #0E9CB0; border-color: #0E9CB0; }
.btn-ghost:hover { background: #F0FAFB; color: #0C8A9C; border-color: #0C8A9C; }

/* nav dd tap */
.nav-dd.open .nav-dd-menu { display: block; }
/* v7: additions to the base stylesheet */
.ru-two{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.4rem,3vw,2.6rem);align-items:start}
@media (max-width:900px){.ru-two{grid-template-columns:1fr}}
.ru-price-row{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:baseline;
  padding:.9rem 0;border-bottom:1px solid var(--line-2)}
.ru-price-row:last-child{border-bottom:0}
.ru-price-row b{font-family:var(--font-display);font-size:1.05rem}
.ru-price-row .p{font-family:var(--font-display);font-weight:600;white-space:nowrap;color:var(--ink)}
.ru-price-row span{color:var(--ink-soft);font-size:.94rem}
@media (max-width:640px){.ru-price-row{grid-template-columns:1fr;gap:.25rem}}
.ru-faq{border-top:1px solid var(--line)}
.ru-faq details{border-bottom:1px solid var(--line-2)}
.ru-faq summary{list-style:none;cursor:pointer;padding:.95rem 0;font-family:var(--font-display);
  font-weight:600;font-size:1.02rem;display:flex;justify-content:space-between;gap:1rem;align-items:center}
.ru-faq summary::-webkit-details-marker{display:none}
.ru-faq summary::after{content:"+";color:var(--signal);font-weight:400;font-size:1.3rem;line-height:1}
.ru-faq details[open] summary::after{content:"–"}
.ru-faq p{margin:0 0 1rem;color:var(--ink-soft);max-width:74ch}
.ru-lang{font-family:var(--font-mono);font-size:.72rem;border:1px solid var(--line);
  border-radius:4px;padding:.2rem .45rem;color:var(--ink-dim)!important}
.ru-lang:hover{border-color:var(--ink-soft);color:var(--ink)!important;text-decoration:none}

.doc-drop{border:2px dashed var(--line);border-radius:14px;background:var(--bg-2);
  padding:clamp(1.6rem,4vw,2.6rem) 1.2rem;text-align:center;transition:border-color .15s,background .15s}
.doc-drop.is-over{border-color:var(--signal);background:#F2F6FF}
.doc-drop-t{font-family:var(--font-display);font-weight:600;font-size:1.18rem;margin:0 0 .5rem}
.doc-drop-s{margin:0 0 .9rem;color:var(--ink-soft)}
.doc-drop-n{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-dim);line-height:1.65;margin:0 0 .3rem}
.linkbtn{background:none;border:0;padding:0;font:inherit;font-family:var(--font-mono);font-size:.72rem;
  color:var(--signal);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.res{margin-top:1.4rem;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden;box-shadow:var(--shadow-sm)}
.res__bar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;padding:.75rem 1rem;
  border-bottom:1px solid var(--line-2);font-family:var(--font-mono);font-size:.74rem;color:var(--ink-dim);background:var(--bg-2)}
.res__bar b{color:var(--ink)}
.res__bar .sp{margin-left:auto}
.res__map{display:flex;flex-wrap:wrap;gap:.7rem 1rem;align-items:flex-end;padding:.85rem 1rem;border-bottom:1px solid var(--line-2)}
.res__map-l,.res__map-n{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);align-self:center}
.res__map label{display:block;font-family:var(--font-mono);font-size:.66rem;color:var(--ink-soft)}
.res__map select{display:block;margin-top:.25rem;font-family:var(--font-body);font-size:.85rem;
  padding:.35rem .4rem;border:1px solid var(--line);border-radius:6px;background:#fff;max-width:11rem}
.finds{display:grid;gap:1px;background:var(--line-2)}
.find{background:#fff;padding:1rem 1.1rem}
.find__h{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.35rem}
.find__h h3{margin:0;font-size:1.02rem}
.find p{margin:0 0 .5rem;color:var(--ink-soft);font-size:.95rem;max-width:74ch}
.find__why{font-family:var(--font-mono);font-size:.72rem}
.find--fail{box-shadow:inset 3px 0 0 #B42318}
.find--warn{box-shadow:inset 3px 0 0 #B54708}
.find--pass{box-shadow:inset 3px 0 0 var(--clean)}
.chip{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-mono);font-size:.66rem;
  letter-spacing:.08em;text-transform:uppercase;border:1px solid currentColor;border-radius:999px;padding:.1rem .5rem}
.chip::before{content:"";width:.4rem;height:.4rem;border-radius:50%;background:currentColor}
.chip--pass{color:var(--clean)}.chip--warn{color:#B54708}.chip--fail{color:#B42318}
.chip--idle{color:var(--ink-dim);border-style:dashed}
.res__seg,.res__plot,.res__est,.res__cant{padding:1rem 1.1rem;border-top:1px solid var(--line-2)}
.res__seg b,.res__plot b,.res__est b,.res__cant b{font-family:var(--font-display);font-size:1.02rem;display:block;margin-bottom:.45rem}
.res__seg p,.res__cant p,.res__est p{margin:0;color:var(--ink-soft);font-size:.95rem;max-width:74ch}
.res__plot svg{display:block;width:100%;height:auto;background:var(--bg-2);border:1px solid var(--line-2);border-radius:8px}
.res__note{margin:.7rem 0 0;color:var(--ink-soft);font-size:.92rem;max-width:74ch}
.res__none{font-family:var(--font-mono);font-size:.8rem;color:var(--ink-dim);margin:0}
.res__act{display:flex;flex-wrap:wrap;gap:.6rem;padding:1rem 1.1rem;border-top:1px solid var(--line-2);background:var(--bg-2)}
.res__priv{margin:0;padding:0 1.1rem 1rem;background:var(--bg-2);font-family:var(--font-mono);font-size:.7rem;color:var(--ink-dim);line-height:1.6}
.res__est-n{font-family:var(--font-display);font-weight:700;font-size:1.9rem;color:var(--signal);margin-bottom:.3rem}
.res__err{margin-top:1.2rem;padding:1rem;border:1px solid #B42318;border-radius:10px;color:#B42318;background:#FEF3F2}
.res .legend{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.68rem;color:var(--ink-dim);padding:.4rem .1rem 0}

/* v7: compact 4-column footer */
.footer-in{grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2rem}
.footer-in p{font-size:.92rem;line-height:1.6}
.footer-in ul{gap:.4rem}
@media (max-width:900px){.footer-in{grid-template-columns:1fr 1fr;gap:1.6rem}}
@media (max-width:560px){.footer-in{grid-template-columns:1fr}}

/* v8: four product cards, compact lists, no italics in code */
.doors--4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px){.doors--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.doors--4{grid-template-columns:minmax(0,1fr)}}
.doors--4 .door{padding:1.3rem 1.25rem}
.doors--4 .door h3{font-size:1.12rem}
.doors--4 .door p{font-size:.93rem}
.doors--4 .door-n{font-size:.62rem;letter-spacing:.1em}
/* compact deliverable list — was oversized boxes */
.list-tight{list-style:none;margin:.2rem 0 0;padding:0;display:grid;gap:.55rem}
.list-tight li{position:relative;padding-left:1.2rem;font-size:.97rem;color:var(--ink-soft);line-height:1.55}
.list-tight li::before{content:"";position:absolute;left:0;top:.62em;width:.6rem;height:1px;background:var(--signal)}
.list-tight li b{color:var(--ink)}
/* pricing table: right-aligned money column, no link underline noise */
table.tbl td.pr a{color:var(--ink);text-decoration:none;font-weight:600}
table.tbl td.pr a:hover{color:var(--signal)}
.plan-note{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-dim);margin:.35rem 0 0}

/* ═══ v9: типографика и выравнивание ═══ */

/* 1. Заголовки перестают ломаться: 18ch было слишком узко */
.hero h1{max-width:24ch}
.hero.hero-xl h1{max-width:20ch}
h1,h2,h3,h4,.cta-band h2{text-wrap:balance}
p,li,.lead,.vw{text-wrap:pretty}

/* 2. Чёткая иерархия: h3 больше не спорит с h2 */
.section-head h2{font-size:clamp(1.55rem,2.5vw,2.1rem);line-height:1.14}
h3{font-size:1.12rem;line-height:1.3;letter-spacing:-.012em}
.ru-two h3,.card h3,.door h3,.step h3,.sku h3{font-size:1.12rem}
.ru-two>div>h3:first-child{margin:0 0 .6rem;padding-bottom:.5rem;border-bottom:1px solid var(--line-2)}

/* 3. Списки-коробки становятся списком, заполняющим ширину */
.doc-list{max-width:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 2rem}
.doc-item{border:0;border-radius:0;background:none;box-shadow:none;padding:0 0 0 1.25rem;
  position:relative;font-size:.98rem;color:var(--ink-soft);line-height:1.55}
.doc-item::before{content:"";position:absolute;left:0;top:.62em;width:.65rem;height:1px;background:var(--signal)}
.ru-two .doc-list{grid-template-columns:minmax(0,1fr)}
@media (max-width:760px){.doc-list{grid-template-columns:minmax(0,1fr)}}

/* 4. Финальный блок: содержимое по центру, без пустой половины экрана */
.cta-band{text-align:center;padding:clamp(1.8rem,3.4vw,2.8rem)}
.cta-band .eyebrow{justify-content:center}
.cta-band h2{max-width:26ch;margin-left:auto;margin-right:auto}
.cta-band p{max-width:62ch;margin-left:auto;margin-right:auto}
.cta-band .hero-cta{justify-content:center}

/* 5. Секции без карточной сетки не жмутся к левому краю */
.section .wrap > .prose,
.section .wrap > p:not(.proof-note):not(.eyebrow){max-width:74ch}
.proof-note{max-width:76ch;margin-left:auto;margin-right:auto}

/* v10: pricing table columns and prose blocks */
#pricing table.tbl td.k{width:14rem;min-width:11rem}
#pricing table.tbl td.pr{width:9rem}
@media(max-width:760px){#pricing table.tbl td.k{width:auto;min-width:0}}
#models .wrap > p{max-width:74ch;margin-left:auto;margin-right:auto}
.section .wrap > p.proof-note{max-width:74ch;margin-left:auto;margin-right:auto}
