/* ===========================================================================
   NT theme for the homepage, light.
   White canvas, cool gray surfaces, near-black type, hairline borders in
   black at low opacity. The Ask orb stays the one dark, living element.
   =========================================================================== */

html.theme-nt:root {
  --nt-bg: #ffffff;
  --nt-bg-sidebar: #f6f7f9;
  --nt-bg-elev: #f4f5f7;
  --nt-bg-surface: #f3f4f6;
  --nt-bg-surface-hover: #eceef1;
  --nt-bg-active: #e6e8ec;
  --nt-hover-fill: #e8eaee;
  --nt-gray-300: #d9dce1;
  --nt-text: #151517;
  --nt-text-secondary: #5c5e66;
  --nt-text-tertiary: #8a8c94;
  --nt-border: rgba(21, 21, 23, 0.08);
  --nt-border-strong: rgba(21, 21, 23, 0.14);
  --nt-ok: #59d499;
  --nt-warn: #ff9217;
  --nt-info: #2bafff;
  /* Storm accent, darkened so it holds on white */
  --nt-accent: #2c313c;
  --nt-accent-soft: #6d7382;
  --nt-radius-sm: 8px;
  --nt-radius: 10px;
  --nt-radius-xl: 12px;
  --nt-radius-2xl: 16px;

  /* Map the snapshot's tokens onto the NT palette */
  --color-white: var(--nt-bg);
  --color-canvas: var(--nt-bg);
  --color-fog: var(--nt-bg-surface);
  --color-fog-dark: var(--nt-bg-active);
  --color-warm-yellow: var(--nt-bg-surface);
  --color-button-surface: var(--nt-bg-active);
  --color-sand: var(--nt-bg-active);
  --color-dark: var(--nt-text);
  --color-dark-hover: #2a2c31;
  --color-secondary: var(--nt-text-secondary);
  --color-muted: var(--nt-text-tertiary);
  --color-dim: var(--nt-text-tertiary);
  --color-dark-3: rgba(21, 21, 23, 0.03);
  --color-dark-8: rgba(21, 21, 23, 0.06);
  --color-dark-30: rgba(21, 21, 23, 0.3);
  --color-border: var(--nt-border-strong);
  --color-border-light: rgba(21, 21, 23, 0.06);
  --color-border-soft: var(--nt-border);
  --color-border-emphasis: rgba(21, 21, 23, 0.22);
  --color-ui-ground: var(--nt-bg);
  --color-ui-line: var(--nt-border);
  --color-ui-card-border: var(--nt-border);
  --color-ui-ink: var(--nt-text);
  --color-ui-sub: var(--nt-text-secondary);
  --color-ui-body: var(--nt-text-secondary);
  --color-ui-inner-light: rgba(255, 255, 255, 0.7);
  --color-canvas-muted: rgba(255, 255, 255, 0.6);
  --color-canvas-dim: rgba(255, 255, 255, 0.4);
  --color-canvas-border: rgba(255, 255, 255, 0.3);
  --color-canvas-border-subtle: rgba(255, 255, 255, 0.15);
  --color-red: var(--nt-accent);
  --color-geo-shu: var(--nt-accent);
  --color-red-tint: rgba(154, 163, 181, 0.12);
  --color-indigo: var(--nt-accent);
  --color-indigo-tint: rgba(154, 163, 181, 0.12);
  --color-green: var(--nt-ok);
  --color-jade: var(--nt-ok);
  --color-success: var(--nt-ok);
  --color-sage: var(--nt-ok);
  --color-forest: var(--nt-ok);
  --color-green-tint: rgba(89, 212, 153, 0.12);
  --color-sage-tint-strong: rgba(89, 212, 153, 0.2);
  --color-gold: var(--nt-warn);
  --color-gold-700: var(--nt-warn);
  --color-amber: #ffb46b;
  --color-gold-tint: rgba(255, 146, 23, 0.12);
  --color-gold-halo: rgba(255, 146, 23, 0.25);
  --color-ui-accent: var(--nt-accent);
  --color-ui-accent-deep: var(--nt-accent);
  --color-ui-accent-bright: var(--nt-accent-soft);
  --color-ui-glow: rgba(154, 163, 181, 0.25);
  --color-ui-glow-soft: rgba(154, 163, 181, 0.12);
  --fog-50: #f4f5f7;
  --fog-100: #eceef2;
  --fog-200: #e2e4e9;
  --fog-300: #d0d3da;
  --fog-400: #b4b7c0;
  --fog-500: #8e919a;
  --fog-600: #6e717a;
  --fog-700: #5c5e66;
  --fog-800: #3e4046;
  --fog-900: #2a2c31;
  --fog-950: #151517;

  --radius: var(--nt-radius);
  --radius-button: var(--nt-radius-sm);
  --radius-badge: 6px;
  --radius-card: var(--nt-radius-2xl);

  --font-display: "Onest Local", ui-sans-serif, system-ui, sans-serif;
  --font-body: "Onest Local", ui-sans-serif, system-ui, sans-serif;

  color-scheme: light;
  background: var(--nt-bg);
}

/* The homepage wrapper (.nt-site) re-declares its own light tokens; map them too. */
html.theme-nt .nt-site {
  --color-canvas: var(--nt-bg);
  --color-button-surface: var(--nt-bg-active);
  --color-dark: var(--nt-text);
  --color-white: var(--nt-bg);
  --fog-50: #f4f5f7;
  --fog-100: #eceef2;
  --fog-200: #e2e4e9;
  --fog-300: #d0d3da;
  --fog-400: #b4b7c0;
  --fog-500: #8e919a;
  --fog-600: #6e717a;
  --fog-700: #5c5e66;
  --fog-800: #3e4046;
  --fog-900: #2a2c31;
  --fog-950: #151517;
  --color-border: var(--nt-border-strong);
  --color-border-soft: var(--nt-border);
  --color-border-emphasis: rgba(21, 21, 23, 0.22);
  --color-text-secondary: var(--nt-text-secondary);
  --color-gold: var(--nt-warn);
  --color-jade: var(--nt-ok);
  --color-jade-channel: 89 212 153;
  --color-geo-shu-channel: 44 49 60;
  --radius-card: var(--nt-radius-2xl);
  --radius-button: var(--nt-radius-sm);
  background: var(--nt-bg);
  color: var(--nt-text);
}

html.theme-nt,
html.theme-nt body,
html.theme-nt body *:not(pre):not(code):not(kbd):not(samp) {
  font-family: "Onest Local", ui-sans-serif, system-ui, sans-serif !important;
}

html.theme-nt body {
  background: var(--nt-bg);
  color: var(--nt-text);
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "ss01" 1, "kern" 1;
}

html.theme-nt ::selection {
  background: rgba(154, 163, 181, 0.35);
}

/* ---------------------------------------------------------------------------
   Navigation: cabinet top bar — hairline bottom border, quiet links.
   --------------------------------------------------------------------------- */
html.theme-nt .site-nav {
  background: rgba(255, 255, 255, 0.86);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

html.theme-nt .site-nav.border-border {
  border-color: var(--nt-border);
}

html.theme-nt .site-nav a,
html.theme-nt .site-nav button {
  color: var(--nt-text-secondary);
}

html.theme-nt .site-nav a:hover,
html.theme-nt .site-nav button:hover {
  color: var(--nt-text);
}

/* ---------------------------------------------------------------------------
   Brand: the NT monogram from the cabinet sidebar, without the orb. One
   monoline stroke — the right stem of the N runs into the crossbar of the T.
   Draws itself on hover, the same gesture as the cabinet mark.
   --------------------------------------------------------------------------- */
html.theme-nt .site-nav a.nt-brand,
html.theme-nt footer a.nt-brand,
html.theme-nt .site-nav a.nt-brand:hover,
html.theme-nt footer a.nt-brand:hover {
  color: var(--nt-text) !important;
  text-decoration: none;
}

html.theme-nt .nt-brand-mark {
  display: block;
  width: 34px;
  height: 34px;
  overflow: visible;
}

html.theme-nt .nt-brand-stroke {
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  /* N (16 + 18.36 + 16) + crossbar 9 + stem 16 ≈ 75.4; the gap is longer so offset 76.5 leaves no cap dot */
  stroke-dasharray: 76 77;
  stroke-dashoffset: 0;
}

/* Header mark: every 5 s the stroke runs back out and draws itself again */
html.theme-nt .site-nav .nt-brand-stroke {
  animation: nt-brand-cycle 5s infinite;
}

@keyframes nt-brand-cycle {
  0%,
  56% {
    stroke-dashoffset: 0;
    animation-timing-function: cubic-bezier(0.65, 0, 0.35, 1);
  }
  76%,
  80% {
    stroke-dashoffset: 76.5;
    animation-timing-function: cubic-bezier(0.65, 0, 0.35, 1);
  }
  100% {
    stroke-dashoffset: 0;
  }
}

html.theme-nt .nt-brand:hover .nt-brand-stroke,
html.theme-nt .nt-brand:focus-visible .nt-brand-stroke {
  animation: nt-brand-draw 1.1s cubic-bezier(0.65, 0, 0.35, 1) 1;
}

@keyframes nt-brand-draw {
  0% {
    stroke-dashoffset: 76.5;
  }
  100% {
    stroke-dashoffset: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  html.theme-nt .site-nav .nt-brand-stroke,
  html.theme-nt .nt-brand:hover .nt-brand-stroke,
  html.theme-nt .nt-brand:focus-visible .nt-brand-stroke {
    animation: none;
  }
}

/* Outline buttons in the nav follow .btn from the cabinet */
html.theme-nt .site-nav a.border {
  border-color: var(--nt-border-strong);
  border-radius: var(--nt-radius-sm);
  background: transparent;
  color: var(--nt-text);
}

html.theme-nt .site-nav a.border:hover {
  background: var(--nt-hover-fill);
}

html.theme-nt .nav-dropdown,
html.theme-nt .nav-mobile-drawer {
  background: var(--nt-bg-surface);
  border: 1px solid var(--nt-border);
  border-radius: var(--nt-radius-xl);
  box-shadow: 0 16px 40px rgba(21, 21, 23, 0.12);
}

/* ---------------------------------------------------------------------------
   Ask pill — the exact shape from NT-ai: 36 px pill, graphite radial fill,
   storm orb (92 px canvas at contrast 1.75) bleeding past the edges, icon and
   label on top with a soft text shadow.
   --------------------------------------------------------------------------- */
html.theme-nt .nt-callback {
  position: relative;
  top: auto;
  right: auto;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 36px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: radial-gradient(circle at 50% 42%, #d5dae4, #6d7382 58%, #2c313c);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  text-decoration: none;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
  overflow: hidden;
  white-space: nowrap;
  cursor: pointer;
}

html.theme-nt .nt-callback:hover {
  color: #fff;
}

html.theme-nt .nt-callback,
html.theme-nt .nt-callback:hover,
html.theme-nt .nt-callback:focus-visible {
  color: #fff !important;
}

/* The orb is a square at least as wide as the pill, so its rim never shows. */
html.theme-nt .nt-callback-orb {
  pointer-events: none;
  position: absolute;
  top: 50%;
  left: 50%;
  width: max(92px, calc(100% + 32px));
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
}

html.theme-nt .nt-callback-canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
  filter: contrast(1.75);
}

html.theme-nt .nt-callback:hover .nt-callback-orb {
  filter: brightness(1.08);
}

html.theme-nt .nt-callback-icon,
html.theme-nt .nt-callback-label {
  position: relative;
  z-index: 1;
}

html.theme-nt .nt-callback-icon {
  width: 16px;
  height: 16px;
  color: #fff;
}

/* Wide variant for the hero: login-submit from NT-ai. */
html.theme-nt .nt-callback--wide {
  height: 52px;
  padding: 0 22px;
  font-size: 16px;
  background: #141820;
}

html.theme-nt .nt-callback--wide .nt-callback-orb {
  width: max(420px, calc(100% + 120px));
}

/* ---------------------------------------------------------------------------
   Hero
   --------------------------------------------------------------------------- */
html.theme-nt .nt-hero-hero {
  background: var(--nt-bg) !important;
}

html.theme-nt .nt-hero-h1 {
  letter-spacing: -0.03em;
  font-weight: 600;
}

/* Rotating word uses the dark body of the hero orb at night, before the pale mist. */
html.theme-nt .nt-hero-h1-word {
  color: #0c1424;
  background: linear-gradient(180deg, #070c1a 0%, #1a2438 62%, #3d4860 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

html.theme-nt .nt-hero-sub {
  color: var(--nt-text-secondary);
  font-weight: 400;
}

html.theme-nt .nt-hero-counter {
  align-self: flex-start;
  padding: 6px 12px;
  border: 1px solid var(--nt-border);
  border-radius: 999px;
  background: var(--nt-bg-surface);
  color: var(--nt-text-tertiary);
}

html.theme-nt .nt-hero-counter-num {
  color: var(--nt-text);
}

html.theme-nt .nt-hero-counter-label {
  color: var(--nt-text-tertiary);
}

/* Carousel cards: .card from the cabinet */
html.theme-nt .nt-hero-depth-cards {
  --dcard-radius: var(--nt-radius-2xl);
  --dcard-shadow-recede: 0 20px 40px -20px rgba(0, 0, 0, 0.6);
  --dcard-shadow-lift: 0 30px 60px -24px rgba(0, 0, 0, 0.8);
}

html.theme-nt .nt-hero-depth-cards .nt-hero-dcard-surface {
  background: var(--nt-bg-surface);
  border: 1px solid var(--nt-gray-300);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

html.theme-nt .nt-hero-depth-cards .nt-hero-dcard[data-orb-pos="active"]:focus-visible .nt-hero-dcard-surface {
  box-shadow: 0 0 0 2px var(--nt-accent);
}

html.theme-nt .nt-hero-depth-cards .nt-hero-dcard-toptitle,
html.theme-nt .nt-hero-depth-cards .nt-hero-dstage-header,
html.theme-nt .nt-hero-invite-label {
  color: var(--nt-text-tertiary) !important;
}

html.theme-nt .nt-hero-depth-cards .nt-hero-dcard-industry {
  color: var(--nt-text-tertiary);
}

html.theme-nt .nt-hero-depth-cards .nt-hero-dcard-label {
  color: var(--nt-text);
  font-weight: 600;
}

html.theme-nt .nt-hero-depth-cards .nt-hero-dstage .nt-hero-arrow {
  color: var(--nt-text-tertiary);
}

html.theme-nt .nt-hero-depth-cards .nt-hero-dstage .nt-hero-arrow:hover:not(:disabled) {
  color: var(--nt-text);
  background: var(--nt-hover-fill);
}

html.theme-nt .nt-hero-depth-cards .nt-hero-dstage .nt-hero-arrow:focus-visible {
  outline-color: var(--nt-border-strong);
}

html.theme-nt .nt-hero-depth-cards .nt-hero-dcard-play {
  background: var(--nt-text);
  color: var(--nt-bg);
}

/* Active card: the colored webp orb is replaced by the live storm orb. */
html.theme-nt .nt-hero-dcard-cover [style*="background-image"] {
  transition: opacity 0.4s ease;
}

html.theme-nt .nt-hero-dcard[data-orb-pos="active"] .nt-hero-dcard-cover[data-live-orb="1"] [style*="background-image"] {
  opacity: 0;
}

html.theme-nt .nt-hero-dcard-cover > div {
  filter: none !important;
}

html.theme-nt .nt-card-orb {
  position: absolute;
  inset: 0;
  display: block;
  width: 100% !important;
  height: 100% !important;
  border-radius: 50%;
  filter: contrast(1.6);
}

/* Hero: one round sphere, the same size as the cabinet chat orb. */
html.theme-nt .nt-talk {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 28px;
  width: min(100%, 520px);
  min-height: 480px;
}

html.theme-nt .nt-talk-orb {
  width: min(58vmin, 320px);
  height: min(58vmin, 320px);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  overflow: hidden;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
}

html.theme-nt a.nt-talk-orb:focus-visible {
  outline: 2px solid var(--nt-text);
  outline-offset: 6px;
}

html.theme-nt .talk-orb-canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
  filter: contrast(1.75);
  transition: filter 2.4s ease;
}

html.theme-nt .nt-talk.is-hot .talk-orb-canvas {
  filter: contrast(1.08);
}


html.theme-nt .nt-talk-start {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 200px;
  padding: 12px 28px;
  border-radius: 999px;
  background: var(--nt-text);
  color: var(--nt-bg);
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  text-decoration: none;
}

html.theme-nt .nt-talk-start:hover {
  background: #2a2c31;
}

/* ---------------------------------------------------------------------------
   Sections, cards, typography
   --------------------------------------------------------------------------- */
html.theme-nt h1,
html.theme-nt h2,
html.theme-nt h3 {
  letter-spacing: -0.025em;
  font-weight: 600;
}

html.theme-nt .nt-eyebrow,
html.theme-nt .nt-marquee__heading {
  color: var(--nt-text-tertiary);
}

html.theme-nt .nt-marquee__img {
  opacity: 0.72;
}

/* Surfaces: anything painted with fog becomes a .card */
html.theme-nt .bg-fog,
html.theme-nt .bg-fog\/40,
html.theme-nt .bg-fog\/50,
html.theme-nt .bg-fog\/60 {
  background-color: var(--nt-bg-surface);
}

html.theme-nt [class*="border-border"],
html.theme-nt .border-border-soft {
  border-color: var(--nt-border);
}

html.theme-nt .rounded,
html.theme-nt .rounded-card {
  border-radius: var(--nt-radius-2xl);
}

html.theme-nt .rounded-badge {
  border-radius: 6px;
}

/* Primary actions: white pill with dark text (btn-primary) */
html.theme-nt .nt-hero-cta-primary,
html.theme-nt a.bg-dark,
html.theme-nt button.bg-dark {
  background: var(--nt-text);
  color: var(--nt-bg);
  border-color: var(--nt-text);
  border-radius: 999px;
}

html.theme-nt .nt-hero-cta-primary:hover,
html.theme-nt a.bg-dark:hover,
html.theme-nt button.bg-dark:hover {
  background: #2a2c31;
  border-color: #2a2c31;
}

/* Secondary actions: hairline outline, hover fill */
html.theme-nt a.border.border-border,
html.theme-nt button.border.border-border,
html.theme-nt a.border.border-dark,
html.theme-nt button.border.border-dark {
  border-color: var(--nt-border-strong);
  border-radius: 999px;
  background: transparent;
  color: var(--nt-text);
}

html.theme-nt a.border.border-border:hover,
html.theme-nt button.border.border-border:hover,
html.theme-nt a.border.border-dark:hover,
html.theme-nt button.border.border-dark:hover {
  background: var(--nt-hover-fill);
}

/* Inputs */
html.theme-nt input,
html.theme-nt textarea,
html.theme-nt select {
  background: var(--nt-bg-elev);
  border-color: var(--nt-border-strong);
  color: var(--nt-text);
  border-radius: var(--nt-radius-sm);
}

html.theme-nt input::placeholder,
html.theme-nt textarea::placeholder {
  color: var(--nt-text-tertiary);
}

html.theme-nt input:focus,
html.theme-nt textarea:focus {
  border-color: var(--nt-text-tertiary);
  outline: none;
}

/* Code samples: pre from the cabinet — gray-0 field, 8 px radius */
html.theme-nt .font-mono,
html.theme-nt pre {
  background: var(--nt-bg-sidebar);
  color: var(--nt-text-secondary);
}

html.theme-nt .text-\[var\(--color-sage\)\] {
  color: var(--nt-ok);
}

/* Latency bar */
html.theme-nt .nt-latency__bar {
  background: rgba(21, 21, 23, 0.08);
}

html.theme-nt .nt-latency__fill--industry {
  background: rgba(21, 21, 23, 0.22);
}

html.theme-nt .nt-latency__num--trail .nt-latency__int {
  color: rgba(21, 21, 23, 0.35);
}

/* Price block: three figures, a three-step scale and a footnote under the star. */
html.theme-nt .nt-latency__row {
  justify-content: flex-start;
  gap: clamp(20px, 4vw, 56px);
}

html.theme-nt .nt-latency__num--trail {
  margin-left: auto;
}

html.theme-nt .nt-latency__num--mid .nt-latency__int {
  font-family: var(--font-display);
  font-weight: var(--w-leicht);
  letter-spacing: -0.02em;
  color: rgba(21, 21, 23, 0.62);
  font-size: clamp(48px, 6vw, 80px);
  line-height: 0.92;
}

html.theme-nt .nt-latency__num--mid .nt-latency__unit {
  font-family: var(--font-display);
  font-weight: var(--w-kraftig);
  letter-spacing: -0.01em;
  color: rgba(21, 21, 23, 0.45);
  margin-left: 0.12em;
  font-size: clamp(16px, 1.6vw, 24px);
  line-height: 1;
}

html.theme-nt .nt-latency__num > .nt-latency__star {
  align-self: flex-start;
  margin-left: 0.1em;
  font-family: var(--font-display);
  font-weight: var(--w-kraftig);
  line-height: 1;
  color: var(--color-text-secondary);
  font-size: clamp(22px, 2.4vw, 32px);
}

html.theme-nt .nt-latency__num--lead > .nt-latency__star {
  font-size: clamp(40px, 4.4vw, 64px);
  color: var(--nt-accent);
}

html.theme-nt .nt-latency__num--trail > .nt-latency__star {
  color: rgba(21, 21, 23, 0.35);
}

html.theme-nt .nt-latency__fill--industry {
  z-index: 1;
}

html.theme-nt .nt-latency__fill--mid {
  z-index: 2;
  background: var(--nt-accent-soft);
}

html.theme-nt .nt-latency__fill--mid-filled {
  width: var(--mid-pct, 32%);
  transition: width 0.6s cubic-bezier(0.33, 1, 0.68, 1);
}

html.theme-nt .nt-latency__bar-caption {
  position: relative;
  display: block;
  height: 40px;
  margin-top: 0;
}

html.theme-nt .nt-latency__mark {
  position: absolute;
  top: 0;
  left: var(--x);
  color: var(--color-text-secondary);
  font-family: var(--font-display);
  font-weight: var(--w-kraftig);
  font-size: 12px;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
  white-space: nowrap;
}

html.theme-nt .nt-latency__mark::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 1px;
  height: 12px;
  background: currentColor;
}

html.theme-nt .nt-latency__mark > span {
  display: block;
  padding: 16px 0 0 8px;
}

html.theme-nt .nt-latency__bar-caption-label--trail {
  position: absolute;
  right: 0;
  top: 16px;
}

@media (max-width: 720px) {
  html.theme-nt .nt-latency__bar-caption {
    height: 64px;
  }

  html.theme-nt .nt-latency__mark:not(.nt-latency__mark--alt)::before {
    height: 36px;
  }

  html.theme-nt .nt-latency__mark:not(.nt-latency__mark--alt) > span {
    padding-top: 40px;
  }

  html.theme-nt .nt-latency__bar-caption-label--trail {
    top: 40px;
  }

  html.theme-nt .nt-latency__num--mid .nt-latency__int,
  html.theme-nt .nt-latency__num--trail .nt-latency__int {
    font-size: 32px;
  }

  html.theme-nt .nt-latency__num--mid .nt-latency__unit {
    font-size: 12px;
  }

  html.theme-nt .nt-latency__num > .nt-latency__star {
    font-size: 14px;
  }

  html.theme-nt .nt-latency__num--lead > .nt-latency__star {
    font-size: 26px;
  }
}

html.theme-nt .nt-latency__note {
  margin: 20px 0 0;
  max-width: 48rem;
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: -0.01em;
  color: var(--color-text-secondary);
}

html.theme-nt .nt-latency__note + .nt-latency__note {
  margin-top: 8px;
}

html.theme-nt .nt-latency__note + .nt-latency__replay-row {
  margin-top: 16px;
}

/* Stories */
html.theme-nt .nt-stories-section {
  background: var(--nt-bg);
}

/* Status dots: ok/warn colours from the CRM */
html.theme-nt .nt-live-dot {
  background: var(--nt-ok);
  box-shadow: 0 0 0 4px rgba(89, 212, 153, 0.18);
}

/* FAQ */
html.theme-nt .faq-panel,
html.theme-nt [data-faq-panel] {
  color: var(--nt-text-secondary);
}

html.theme-nt .faq-panel p:not(:last-child) {
  padding-bottom: 10px;
}

/* Cookie notice: menu surface */
html.theme-nt #cookie-notice {
  background: var(--nt-bg-surface);
  border: 1px solid var(--nt-border);
  border-radius: var(--nt-radius-xl);
  box-shadow: 0 16px 40px rgba(21, 21, 23, 0.12);
  color: var(--nt-text-secondary);
}

/* Phones: a full-width card above the bottom edge, clear of rounded screen corners. */
@media (max-width: 767px) {
  html.theme-nt #cookie-notice {
    left: 16px;
    right: 16px;
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    width: auto;
    flex-direction: row;
    align-items: center;
    gap: 14px;
    padding: 12px 12px 12px 16px;
    border-radius: 20px;
  }
  html.theme-nt #cookie-notice > p:first-child { display: none; }
  html.theme-nt #cookie-notice > p.hidden {
    display: block;
    flex: 1;
    min-width: 0;
    font-size: 13px;
    line-height: 1.35;
    letter-spacing: -0.01em;
    color: var(--nt-text-secondary);
  }
  html.theme-nt #cookie-notice > button {
    flex: none;
    align-self: center;
    min-height: 40px;
    margin: 0;
    padding: 0 18px;
    border-radius: 999px;
    background: var(--nt-text);
    color: var(--nt-bg);
    font-size: 14px;
  }
}

/* ---------------------------------------------------------------------------
   Footer: sidebar colour with a hairline on top
   --------------------------------------------------------------------------- */
html.theme-nt footer {
  background: var(--nt-bg-sidebar) !important;
  border-top: 1px solid var(--nt-border);
  color: var(--nt-text-secondary);
}

html.theme-nt footer h3 {
  color: var(--nt-text);
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

html.theme-nt footer a {
  color: var(--nt-text-secondary) !important;
}

html.theme-nt footer a:hover {
  color: var(--nt-text) !important;
}

html.theme-nt footer input {
  background: var(--nt-bg-elev);
}

html.theme-nt footer button {
  background: var(--nt-text);
  color: var(--nt-bg);
  border-radius: var(--nt-radius-sm);
}

/* Customer wordmarks were drawn for a white page, so they need no treatment. */

@media (prefers-reduced-motion: reduce) {
  html.theme-nt .nt-callback-canvas,
  html.theme-nt .nt-card-orb {
    filter: none;
  }
}


/* ---------------------------------------------------------------------------
   Customer-story video tile: text over the photo stays white, the play chip
   becomes a dark glass pill.
   --------------------------------------------------------------------------- */
html.theme-nt .nt-stories-hero [style*="color:var(--color-white)"] {
  color: #fff !important;
}

html.theme-nt .nt-stories-hero [style*="rgb(255 255 255 / 0.94)"] {
  border-radius: 999px !important;
  color: var(--nt-text) !important;
}

html.theme-nt .nt-stories-hero a[href^="/customers/"][style*="aspect-ratio"] {
  border-radius: var(--nt-radius-xl) !important;
}


/* The server illustration is drawn for a light page; leave its fills alone. */


/* Wide pill: keep the label readable whatever the orb is doing underneath. */
html.theme-nt .nt-callback--wide .nt-callback-canvas {
  opacity: 0.8;
}

html.theme-nt .nt-callback--wide::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(12, 13, 15, 0.18), rgba(12, 13, 15, 0.5));
  pointer-events: none;
}

html.theme-nt .nt-callback--wide .nt-callback-label,
html.theme-nt .nt-callback--wide .nt-callback-icon {
  z-index: 2;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
}

/* Inactive carousel cards: keep the colourful waveform orbs in the storm range. */
html.theme-nt .nt-hero-dcard:not([data-orb-pos="active"]) .nt-hero-dcard-cover [style*="background-image"] {
  filter: grayscale(0.55);
}

/* ---------------------------------------------------------------------------
   Bento figures: one drawing language for the six platform cards.
   Hairline frames, a dotted field, ink for "on", the night orb as the agent.
   --------------------------------------------------------------------------- */
html.theme-nt .nt-stage {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: auto;
  padding: 14px;
  border: 1px solid var(--nt-border);
  border-radius: 10px;
  background:
    radial-gradient(circle at 1px 1px, rgba(21, 21, 23, 0.06) 1px, transparent 1px) 0 0 / 12px 12px,
    var(--nt-bg-surface);
  color: var(--nt-text);
  font-family: var(--font-display);
  overflow: hidden;
}

html.theme-nt .nt-stage--flush {
  flex: 1;
  margin: 0;
  padding: 20px;
  border: 0;
  border-radius: 0;
  gap: 14px;
}

html.theme-nt .nt-stage b {
  font-weight: 600;
}

html.theme-nt .nt-stage small {
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--nt-text-secondary);
}

html.theme-nt .nt-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

html.theme-nt .nt-dot,
html.theme-nt .nt-live i {
  display: inline-block;
  flex: none;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--nt-ok);
  box-shadow: 0 0 0 0 rgba(89, 212, 153, 0.5);
  animation: nt-pulse 2s ease-out infinite;
}

html.theme-nt .nt-live {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--nt-text-secondary);
}

@keyframes nt-pulse {
  70% { box-shadow: 0 0 0 6px rgba(89, 212, 153, 0); }
  100% { box-shadow: 0 0 0 0 rgba(89, 212, 153, 0); }
}

/* The agent orb: a small night sphere, echoing the hero. */
html.theme-nt .nt-agent-orb {
  display: block;
  flex: none;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: radial-gradient(circle at 32% 24%, #9aa3b8 0, #2a3550 42%, #070c1a 100%);
}

/* 1. Создание ------------------------------------------------------------- */
html.theme-nt .nt-prompt {
  display: flex;
  align-items: center;
  gap: 2px;
  min-height: 38px;
  padding: 6px 6px 6px 14px;
  border: 1px solid var(--nt-border-strong);
  border-radius: 999px;
  background: #fff;
  font-size: 13px;
}

html.theme-nt .nt-typed {
  white-space: nowrap;
}

html.theme-nt .nt-caret {
  width: 1px;
  height: 15px;
  margin-left: 1px;
  background: var(--nt-text);
  animation: nt-blink 1s steps(1) infinite;
}

@keyframes nt-blink {
  50% { opacity: 0; }
}

html.theme-nt .nt-send {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  margin-left: auto;
  border-radius: 50%;
  background: var(--nt-text);
  color: #fff;
}

html.theme-nt .nt-stem {
  align-self: center;
  width: 1px;
  height: 12px;
  margin: -4px 0;
  background: var(--nt-text-tertiary);
}

html.theme-nt .nt-agent {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--nt-border-strong);
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}

html.theme-nt .nt-agent-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

html.theme-nt .nt-agent-text b {
  overflow: hidden;
  font-size: 13px;
  letter-spacing: -0.01em;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

html.theme-nt .nt-agent-text small {
  letter-spacing: 0;
  text-transform: none;
  font-size: 11px;
}

html.theme-nt .nt-sub {
  display: flex;
  align-items: center;
  gap: 8px;
}

html.theme-nt .nt-badge {
  flex: none;
  padding: 2px 7px;
  border-radius: 999px;
  background: var(--nt-bg-active);
  color: var(--nt-text-secondary);
  font-size: 9.5px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

html.theme-nt .nt-progress {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 2px;
  width: calc(var(--n, 0) / 6 * 100%);
  background: var(--nt-text);
  transition: width 0.45s ease;
}

html.theme-nt .nt-chips {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

html.theme-nt .nt-chip {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  padding: 7px 8px;
  border: 1px solid var(--nt-border-strong);
  border-radius: 8px;
  background: #fff;
  color: var(--nt-text-tertiary);
  font-size: 10.5px;
  white-space: nowrap;
  transition: background 0.35s, color 0.35s, border-color 0.35s, transform 0.35s;
}

html.theme-nt .nt-chip svg {
  flex: none;
}

html.theme-nt .nt-chip.is-on {
  border-color: var(--nt-text);
  background: var(--nt-text);
  color: #fff;
}

html.theme-nt .nt-chip.is-now {
  transform: translateY(-2px);
}

/* 2. Тестирование --------------------------------------------------------- */
html.theme-nt .nt-num {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

html.theme-nt .nt-chart {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

html.theme-nt .nt-chart .nt-grid {
  stroke: var(--nt-border-strong);
  stroke-dasharray: 2 4;
}

html.theme-nt .nt-chart .nt-line {
  stroke: var(--nt-text);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 0;
  animation: nt-draw 8s ease-in-out infinite;
}

html.theme-nt .nt-chart .nt-area {
  animation: nt-area 8s ease-in-out infinite;
}

html.theme-nt .nt-chart .nt-fail {
  fill: #fff;
  stroke: var(--nt-text);
  stroke-width: 1.4;
}

html.theme-nt .nt-chart .nt-end {
  fill: var(--nt-text);
}

html.theme-nt .nt-chart .nt-end-ring {
  fill: none;
  stroke: var(--nt-text);
  stroke-opacity: 0.25;
  transform-box: fill-box;
  transform-origin: center;
  animation: nt-ring 2s ease-out infinite;
}

@keyframes nt-draw {
  0% { stroke-dashoffset: 1; opacity: 1; }
  45%, 88% { stroke-dashoffset: 0; opacity: 1; }
  98% { stroke-dashoffset: 0; opacity: 0; }
  100% { stroke-dashoffset: 1; opacity: 0; }
}

@keyframes nt-area {
  0%, 20% { opacity: 0; }
  50%, 88% { opacity: 1; }
  98%, 100% { opacity: 0; }
}

@keyframes nt-ring {
  from { transform: scale(0.5); opacity: 1; }
  to { transform: scale(1.4); opacity: 0; }
}

html.theme-nt .nt-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

html.theme-nt .nt-stats span {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

html.theme-nt .nt-stats b {
  font-size: 16px;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

html.theme-nt .nt-stats small {
  font-size: 9.5px;
}

html.theme-nt .nt-rollout {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 10px;
  border-top: 1px solid var(--nt-border);
}

html.theme-nt .nt-now {
  display: grid;
  justify-items: end;
  font-size: 11px;
  font-weight: 600;
  font-style: normal;
}

html.theme-nt .nt-now em {
  grid-area: 1 / 1;
  font-style: normal;
  opacity: 0;
  transition: opacity 0.3s;
}

html.theme-nt .nt-now em.is-on {
  opacity: 1;
}

html.theme-nt .nt-segs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
}

html.theme-nt .nt-segs i {
  height: 5px;
  border-radius: 3px;
  background: var(--nt-gray-300);
  transition: background 0.4s;
}

html.theme-nt .nt-segs i.is-on {
  background: var(--nt-text);
}

/* 3. Омниканальность ------------------------------------------------------ */
html.theme-nt .nt-thread {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

html.theme-nt .nt-msg {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  opacity: 0.18;
  transform: translateY(5px);
  transition: opacity 0.45s, transform 0.45s;
}

html.theme-nt .nt-msg.is-on {
  opacity: 1;
  transform: none;
}

html.theme-nt .nt-ch {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 9.5px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--nt-text-secondary);
}

html.theme-nt .nt-bub {
  justify-self: start;
  max-width: 100%;
  overflow: hidden;
  padding: 6px 11px;
  border: 1px solid var(--nt-border-strong);
  border-radius: 12px 12px 12px 3px;
  background: #fff;
  font-size: 11.5px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

html.theme-nt .nt-msg--out .nt-bub {
  border-color: var(--nt-text);
  border-radius: 12px 12px 3px 12px;
  background: var(--nt-text);
  color: #fff;
}

html.theme-nt .nt-bub--voice {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

html.theme-nt .nt-bub--voice em {
  font-style: normal;
  font-size: 10px;
  color: var(--nt-text-secondary);
  font-variant-numeric: tabular-nums;
}

html.theme-nt .nt-wave {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  height: 14px;
}

html.theme-nt .nt-wave i,
html.theme-nt .nt-bars i {
  display: block;
  width: 2px;
  height: calc(var(--h) * 1%);
  border-radius: 2px;
  background: var(--nt-text);
  transform-origin: center;
  animation: nt-bar 1.2s ease-in-out infinite alternate;
  animation-delay: calc(var(--d) * -1s);
}

@keyframes nt-bar {
  from { transform: scaleY(0.35); }
  to { transform: scaleY(1); }
}

html.theme-nt .nt-memory {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border: 1px dashed var(--nt-text-tertiary);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.6);
}

html.theme-nt .nt-memory-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

html.theme-nt .nt-memory-text b {
  font-size: 12px;
}

html.theme-nt .nt-memory-text small {
  letter-spacing: 0;
  text-transform: none;
  font-size: 10.5px;
}

/* 4. Интеграции ----------------------------------------------------------- */
html.theme-nt .nt-orbit {
  height: 224px;
  padding: 0;
  gap: 0;
}

html.theme-nt .nt-ring {
  position: absolute;
  left: 50%;
  top: 50%;
  width: calc(var(--r) * 2);
  height: calc(var(--r) * 2);
  border: 1px dashed var(--nt-text-tertiary);
  border-radius: 50%;
  opacity: 0.7;
  transform: translate(-50%, -50%);
}

html.theme-nt .nt-spin {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  animation: nt-spin 90s linear infinite;
}

html.theme-nt .nt-spin--in {
  animation-duration: 70s;
  animation-direction: reverse;
}

html.theme-nt .nt-slot {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0;
  height: 0;
  rotate: var(--a);
}

html.theme-nt .nt-tile {
  position: absolute;
  left: -19px;
  top: calc(var(--r) * -1 - 19px);
  display: block;
  width: 38px;
  height: 38px;
  padding: 7px;
  border: 1px solid var(--nt-border-strong);
  border-radius: 10px;
  background: #fff;
  rotate: calc(var(--a) * -1);
  animation: nt-unspin 90s linear infinite;
  transition: border-color 0.2s, scale 0.2s;
}

html.theme-nt .nt-spin--in .nt-tile {
  animation-duration: 70s;
  animation-direction: reverse;
}

html.theme-nt .nt-tile:hover {
  border-color: var(--nt-text);
  scale: 1.08;
}

html.theme-nt .nt-tile img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

html.theme-nt .nt-hub {
  position: absolute;
  left: 50%;
  top: 50%;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid var(--nt-border-strong);
  border-radius: 50%;
  background: #fff;
  transform: translate(-50%, -50%);
}

html.theme-nt .nt-hub .nt-agent-orb {
  width: 32px;
  height: 32px;
}

@keyframes nt-spin {
  to { transform: rotate(360deg); }
}

@keyframes nt-unspin {
  to { transform: rotate(-360deg); }
}

/* 5. Мониторинг ----------------------------------------------------------- */
html.theme-nt .nt-clock {
  font-size: 10.5px;
  color: var(--nt-text-secondary);
  font-variant-numeric: tabular-nums;
}

html.theme-nt .nt-bars {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 36px;
}

html.theme-nt .nt-bars i {
  width: 3px;
  opacity: 0.85;
}

html.theme-nt .nt-track {
  position: relative;
  height: 1px;
  margin: 4px 6px;
  background: var(--nt-border-strong);
}

html.theme-nt .nt-pin {
  position: absolute;
  top: 50%;
  left: var(--x);
  width: 9px;
  height: 9px;
  margin: -4.5px 0 0 -4.5px;
  border: 1.5px solid var(--nt-gray-300);
  border-radius: 50%;
  background: #fff;
  transition: background 0.3s, border-color 0.3s, box-shadow 0.3s;
}

html.theme-nt .nt-pin.is-on {
  border-color: var(--nt-text);
  background: var(--nt-text);
}

html.theme-nt .nt-pin.is-now {
  box-shadow: 0 0 0 4px rgba(21, 21, 23, 0.12);
}

html.theme-nt .nt-pin--end.is-on {
  background: #fff;
  border-width: 2.5px;
}

html.theme-nt .nt-events {
  display: grid;
  min-height: 64px;
}

html.theme-nt .nt-ev {
  display: flex;
  flex-direction: column;
  gap: 3px;
  grid-area: 1 / 1;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.4s, transform 0.4s;
}

html.theme-nt .nt-ev.is-on {
  opacity: 1;
  transform: none;
}

html.theme-nt .nt-ev time {
  font-size: 10px;
  letter-spacing: 0.08em;
  color: var(--nt-text-secondary);
  font-variant-numeric: tabular-nums;
}

html.theme-nt .nt-ev b {
  font-size: 13px;
  line-height: 1.25;
}

html.theme-nt .nt-ev span {
  font-size: 12px;
  line-height: 1.35;
  color: var(--nt-text-secondary);
}

html.theme-nt .nt-ev--end b {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

/* 6. Инфраструктура ------------------------------------------------------- */
html.theme-nt .nt-perim {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding: 20px 12px 12px;
  border: 1px dashed var(--nt-text-tertiary);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.55);
}

html.theme-nt .nt-perim-label {
  position: absolute;
  top: -8px;
  left: 12px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 8px;
  background: var(--nt-bg-surface);
  color: var(--nt-text-secondary);
  font-size: 9.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

html.theme-nt .nt-layer {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: calc(var(--k) * 10px);
  padding: 8px 10px;
  border: 1px solid var(--nt-border-strong);
  border-radius: 8px;
  background: #fff;
  font-size: 12px;
  opacity: 0.45;
  transition: opacity 0.4s, border-color 0.4s;
}

html.theme-nt .nt-layer.is-on {
  border-color: var(--nt-text);
  opacity: 1;
}

html.theme-nt .nt-tick {
  display: grid;
  place-items: center;
  width: 16px;
  height: 16px;
  margin-left: auto;
  border-radius: 50%;
  background: var(--nt-bg-active);
  color: transparent;
  transition: background 0.35s, color 0.35s;
}

html.theme-nt .nt-layer.is-on .nt-tick {
  background: var(--nt-text);
  color: #fff;
}

html.theme-nt .nt-outside {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--nt-text-tertiary);
  font-size: 11px;
}

html.theme-nt .nt-outside i {
  flex: 1;
  border-top: 1px dotted var(--nt-text-tertiary);
}

html.theme-nt .nt-outside b {
  display: grid;
  place-items: center;
  width: 16px;
  height: 16px;
  border: 1px solid var(--nt-text-tertiary);
  border-radius: 50%;
  font-size: 11px;
  font-weight: 500;
  line-height: 1;
}

@media (prefers-reduced-motion: reduce) {
  html.theme-nt .nt-stage *,
  html.theme-nt .nt-stage {
    animation: none !important;
    transition: none !important;
  }
}

/* ---------------------------------------------------------------------------
   Quick start: "30 minutes" strip under the 7-day timeline, then the offer.
   --------------------------------------------------------------------------- */
html.theme-nt .nt-quick {
  display: flex;
  flex-direction: column;
  gap: 40px;
  padding-top: 24px;
}

html.theme-nt .nt-quick-head {
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-width: 720px;
}

html.theme-nt .nt-quick-headline {
  margin: 0;
  max-width: 720px;
  font-family: var(--font-display);
  font-size: clamp(34px, 3vw, 44px);
  line-height: 1.05;
  letter-spacing: -0.022em;
  color: var(--nt-text);
}

html.theme-nt .nt-quick-lead {
  margin: 0;
  max-width: 520px;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.45;
  letter-spacing: -0.01em;
  color: var(--nt-text-secondary);
}

html.theme-nt .nt-q {
  margin: 0;
  padding: 22px;
  gap: 18px;
  border-radius: 14px;
}

html.theme-nt .nt-q-clock {
  display: grid;
  justify-items: end;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

html.theme-nt .nt-q-clock > span {
  grid-area: 1 / 1;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.3s, transform 0.3s;
}

html.theme-nt .nt-q-clock > span.is-on {
  opacity: 1;
  transform: none;
}

html.theme-nt .nt-q-rail {
  position: relative;
  height: 2px;
  border-radius: 2px;
  background: var(--nt-border-strong);
  overflow: hidden;
}

html.theme-nt .nt-q-rail i {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--nt-text);
  transform-origin: 0 50%;
  transform: scaleX(calc(var(--n, 0) / 4));
  transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}

html.theme-nt .nt-q-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

html.theme-nt .nt-q-step {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 16px;
  border: 1px solid var(--nt-border-strong);
  border-radius: 10px;
  background: #fff;
  color: var(--nt-text-tertiary);
  opacity: 0.55;
  transition: opacity 0.4s, border-color 0.4s, color 0.4s, transform 0.4s;
}

html.theme-nt .nt-q-step.is-on {
  opacity: 1;
  border-color: var(--nt-text);
  color: var(--nt-text);
}

html.theme-nt .nt-q-step.is-now {
  transform: translateY(-3px);
}

html.theme-nt .nt-q-ico {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin-bottom: 6px;
  border-radius: 50%;
  background: var(--nt-bg-surface);
  color: var(--nt-text-secondary);
  transition: background 0.4s, color 0.4s;
}

html.theme-nt .nt-q-step.is-on .nt-q-ico {
  background: var(--nt-text);
  color: #fff;
}

html.theme-nt .nt-q-time {
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--nt-text-secondary);
}

html.theme-nt .nt-q-step b {
  font-size: 16px;
  line-height: 1.25;
  color: var(--nt-text);
}

html.theme-nt .nt-q-sub {
  font-size: 13px;
  line-height: 1.4;
  color: var(--nt-text-secondary);
}

html.theme-nt .nt-quick-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding-top: 8px;
  text-align: center;
}

html.theme-nt .nt-quick-offer {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(26px, 2.4vw, 34px);
  line-height: 1.1;
  letter-spacing: -0.022em;
  color: var(--nt-text);
}

html.theme-nt .nt-talk--inline {
  min-height: 0;
  margin-top: 8px;
  gap: 24px;
}

html.theme-nt .nt-talk--inline .nt-talk-orb {
  width: 240px;
  height: 240px;
}

@media (max-width: 900px) {
  html.theme-nt .nt-q-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html.theme-nt .nt-quick { gap: 32px; }
}

@media (max-width: 520px) {
  html.theme-nt .nt-q { padding: 16px; }
  html.theme-nt .nt-q-steps { grid-template-columns: 1fr; }
  html.theme-nt .nt-q-step { padding: 14px; }
}

/* ---------------------------------------------------------------------------
   "Как используют NT": a header with arrows, cards with a small figure each.
   --------------------------------------------------------------------------- */
html.theme-nt .nt-uc-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 36px;
}

html.theme-nt .nt-uc-title {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}

html.theme-nt .nt-uc-h2 {
  margin: 0;
  max-width: 20ch;
  font-family: var(--font-display);
  font-size: clamp(34px, 3vw, 44px);
  line-height: 1.05;
  letter-spacing: -0.022em;
  color: var(--nt-text);
}

html.theme-nt .nt-uc-lead {
  margin: 0;
  max-width: 480px;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.45;
  letter-spacing: -0.01em;
  color: var(--nt-text-secondary);
}

html.theme-nt .nt-uc-head .nt-uc-controls {
  margin: 0;
  flex: none;
}

html.theme-nt .nt-uc-arrow {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border-color: var(--nt-border-strong);
  background: #fff;
  transition: background 0.2s, color 0.2s, border-color 0.2s, opacity 0.2s;
}

html.theme-nt .nt-uc-arrow:hover:not(:disabled) {
  background: var(--nt-text);
  border-color: var(--nt-text);
  color: #fff;
}

html.theme-nt .nt-uc-track {
  gap: 16px;
  padding: 2px 2px 6px;
  margin: 0 -2px;
}

html.theme-nt .nt-uc-card {
  gap: 0;
  padding: 10px;
  border: 1px solid var(--nt-border-strong);
  border-radius: 16px;
  background: #fff;
  box-shadow: none;
  transition: border-color 0.25s, transform 0.25s;
}

html.theme-nt .nt-uc-card:hover {
  border-color: var(--nt-text);
  transform: translateY(-2px);
}

html.theme-nt .nt-uc-fig {
  border: 1px solid var(--nt-border);
  border-radius: 10px;
  background:
    radial-gradient(circle at 1px 1px, rgba(21, 21, 23, 0.06) 1px, transparent 1px) 0 0 / 12px 12px,
    var(--nt-bg-surface);
  overflow: hidden;
}

html.theme-nt .nt-uc-fig svg {
  display: block;
  width: 100%;
  height: auto;
  font-family: var(--font-display);
}

html.theme-nt .nt-uc-fig .nw { fill: #fff; stroke: rgba(21, 21, 23, 0.14); stroke-width: 1; }
html.theme-nt .nt-uc-fig .nk { fill: #151517; }
html.theme-nt .nt-uc-fig .no { fill: url(#nt-uc-orb); }
html.theme-nt .nt-uc-fig .nok { fill: #59d499; }
html.theme-nt .nt-uc-fig .ni { fill: none; stroke: #151517; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
html.theme-nt .nt-uc-fig .ni2 { fill: none; stroke: #151517; stroke-width: 2; stroke-linecap: round; }
html.theme-nt .nt-uc-fig .nokp { fill: none; stroke: #2fb87a; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
html.theme-nt .nt-uc-fig .ng { fill: none; stroke: #8a8c94; stroke-width: 1.3; stroke-linecap: round; stroke-dasharray: 3 3; }
html.theme-nt .nt-uc-fig .ngl { fill: rgba(21, 21, 23, 0.14); }
html.theme-nt .nt-uc-fig .nkl { fill: rgba(21, 21, 23, 0.07); }
html.theme-nt .nt-uc-fig .nwl { fill: rgba(255, 255, 255, 0.6); }
html.theme-nt .nt-uc-fig .ring { stroke: #151517; stroke-width: 1.4; }
html.theme-nt .nt-uc-fig .tt { fill: #151517; font-size: 10.5px; font-weight: 500; }
html.theme-nt .nt-uc-fig .tu { fill: #8a8c94; font-size: 9.5px; letter-spacing: 0.04em; }
html.theme-nt .nt-uc-fig .tw { fill: #fff; font-size: 10.5px; font-weight: 600; }
html.theme-nt .nt-uc-fig .ttb { font-weight: 600; }
html.theme-nt .nt-uc-fig .th { fill: #151517; font-size: 17px; font-weight: 600; letter-spacing: -0.02em; }
html.theme-nt .nt-uc-fig .thw { fill: #fff; font-size: 22px; font-weight: 600; letter-spacing: -0.03em; }
html.theme-nt .nt-uc-fig .tuw { fill: rgba(255, 255, 255, 0.7); font-size: 9.5px; letter-spacing: 0.04em; }
html.theme-nt .nt-uc-fig .niw { fill: none; stroke: #fff; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
html.theme-nt .nt-uc-fig .ngw { fill: none; stroke: rgba(255, 255, 255, 0.35); stroke-width: 1.3; stroke-dasharray: 3 3; }
html.theme-nt .nt-uc-fig .nbg { fill: var(--nt-bg-surface); }

html.theme-nt .nt-uc-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px 12px 14px;
}

html.theme-nt .nt-uc-n {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--nt-text-tertiary);
  font-variant-numeric: tabular-nums;
}

html.theme-nt .nt-uc-progress {
  position: relative;
  height: 2px;
  margin-top: 24px;
  border-radius: 2px;
  background: var(--nt-border-strong);
}

html.theme-nt .nt-uc-progress i {
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(var(--p, 0) * (100% - var(--w, 33%)));
  width: var(--w, 33%);
  border-radius: inherit;
  background: var(--nt-text);
  transition: left 0.15s linear;
}

@media (max-width: 700px) {
  html.theme-nt .nt-uc-head { flex-direction: column; align-items: flex-start; gap: 20px; }
  html.theme-nt .nt-uc-head .nt-uc-controls { align-self: flex-end; }
}

/* ---------------------------------------------------------------------------
   Proof block: pilot funnel and price per lead.
   --------------------------------------------------------------------------- */
html.theme-nt .nt-proof {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

html.theme-nt .nt-proof-head {
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-width: 720px;
}

html.theme-nt .nt-proof-h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(34px, 3vw, 44px);
  line-height: 1.05;
  letter-spacing: -0.022em;
  color: var(--nt-text);
}

html.theme-nt .nt-proof-lead {
  margin: 0;
  max-width: 560px;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.45;
  letter-spacing: -0.01em;
  color: var(--nt-text-secondary);
}

html.theme-nt .nt-proof-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 16px;
}

html.theme-nt .nt-pf {
  margin: 0;
  padding: 22px;
  gap: 18px;
  border-radius: 14px;
}

html.theme-nt .nt-pf-sub {
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--nt-text-tertiary);
}

html.theme-nt .nt-pf-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "label val"
    "bar bar";
  align-items: baseline;
  gap: 8px 12px;
  opacity: 0.4;
  transition: opacity 0.5s;
}

html.theme-nt .nt-pf-row.is-on {
  opacity: 1;
}

html.theme-nt .nt-pf-label {
  grid-area: label;
  font-size: 14px;
  color: var(--nt-text-secondary);
}

html.theme-nt .nt-pf-val {
  grid-area: val;
  display: flex;
  align-items: baseline;
  gap: 8px;
  white-space: nowrap;
}

html.theme-nt .nt-pf-val b {
  font-size: 20px;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}

html.theme-nt .nt-pf-val small {
  font-size: 11px;
  letter-spacing: 0.02em;
  text-transform: none;
  color: var(--nt-text-tertiary);
}

html.theme-nt .nt-pf-bar {
  grid-area: bar;
  display: block;
  height: 10px;
  border-radius: 5px;
  background: rgba(21, 21, 23, 0.06);
  overflow: hidden;
}

html.theme-nt .nt-pf-bar i {
  display: block;
  height: 100%;
  width: calc(var(--w) * 1%);
  min-width: 4px;
  border-radius: 5px;
  background: var(--nt-text-tertiary);
  transform: scaleX(0);
  transform-origin: 0 50%;
  transition: transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}

html.theme-nt .nt-pf-row.is-on .nt-pf-bar i {
  transform: scaleX(1);
}

html.theme-nt .nt-pf-row--key .nt-pf-bar i {
  background: var(--nt-text);
}

html.theme-nt .nt-pf-row--key .nt-pf-label {
  color: var(--nt-text);
}

html.theme-nt .nt-pp-note {
  margin: 0;
  padding-top: 14px;
  border-top: 1px solid var(--nt-border);
  font-size: 12.5px;
  line-height: 1.45;
  color: var(--nt-text-secondary);
}

html.theme-nt .nt-proof-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

html.theme-nt .nt-proof-stat {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 22px;
  border: 1px solid var(--nt-border-strong);
  border-radius: 14px;
  background: #fff;
}

html.theme-nt .nt-proof-stat b {
  font-family: var(--font-display);
  font-size: clamp(32px, 3.2vw, 44px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  color: var(--nt-text);
}

html.theme-nt .nt-proof-stat span {
  font-size: 14px;
  line-height: 1.4;
  color: var(--nt-text-secondary);
}

html.theme-nt .nt-proof-foot {
  margin: 0;
  max-width: 880px;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--nt-text-tertiary);
}

@media (max-width: 900px) {
  html.theme-nt .nt-proof-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  html.theme-nt .nt-proof-stats { grid-template-columns: 1fr; }
  html.theme-nt .nt-pf { padding: 16px; }
}

/* Price-of-contact rows: a free source has no bar; "on request" is hatched flat. */
html.theme-nt .nt-pf-row--zero .nt-pf-bar i {
  min-width: 0;
  width: 0;
}

html.theme-nt .nt-pf-row--ask .nt-pf-bar i {
  background: rgba(21, 21, 23, 0.1);
  box-shadow: inset 0 0 0 1px rgba(21, 21, 23, 0.18);
}

html.theme-nt .nt-pf-row--ask .nt-pf-val b {
  font-size: 15px;
  font-weight: 500;
  color: var(--nt-text-secondary);
}

html.theme-nt .nt-pf-val small {
  white-space: normal;
  max-width: 190px;
  text-align: right;
}

/* Proof block, second pass: day panel and the price-per-lead table. */
html.theme-nt .nt-pd-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}

html.theme-nt .nt-pd-list li {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

html.theme-nt .nt-pd-list b {
  font-family: var(--font-display);
  font-size: clamp(28px, 2.6vw, 36px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  color: var(--nt-text);
  white-space: nowrap;
}

html.theme-nt .nt-pd-list span {
  font-size: 13px;
  line-height: 1.4;
  color: var(--nt-text-secondary);
}

html.theme-nt .nt-pt-stage {
  margin: 0;
  padding: 22px;
  gap: 16px;
  border-radius: 14px;
}

html.theme-nt .nt-pt {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 8px;
  font-family: var(--font-display);
}

html.theme-nt .nt-pt thead th {
  padding: 0 16px 2px;
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: right;
  color: var(--nt-text-tertiary);
}

html.theme-nt .nt-pt thead th:first-child {
  text-align: left;
}

html.theme-nt .nt-pt tbody th,
html.theme-nt .nt-pt tbody td {
  padding: 16px;
  background: #fff;
  border-top: 1px solid var(--nt-border-strong);
  border-bottom: 1px solid var(--nt-border-strong);
  vertical-align: middle;
}

html.theme-nt .nt-pt tbody th {
  border-left: 1px solid var(--nt-border-strong);
  border-radius: 10px 0 0 10px;
  text-align: left;
  font-weight: 500;
}

html.theme-nt .nt-pt tbody td:last-child {
  border-right: 1px solid var(--nt-border-strong);
  border-radius: 0 10px 10px 0;
}

html.theme-nt .nt-pt tbody td {
  text-align: right;
  font-size: 14px;
  color: var(--nt-text-secondary);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

html.theme-nt .nt-pt tbody td b {
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--nt-text);
}

html.theme-nt .nt-pt-name {
  display: block;
  font-size: 15px;
  color: var(--nt-text);
}

html.theme-nt .nt-pt tbody th small {
  display: block;
  margin-top: 3px;
  font-size: 12px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--nt-text-tertiary);
}

html.theme-nt .nt-pt tbody tr.nt-pt-key th,
html.theme-nt .nt-pt tbody tr.nt-pt-key td {
  background: var(--nt-text);
  border-color: var(--nt-text);
  color: rgba(255, 255, 255, 0.72);
}

html.theme-nt .nt-pt tbody tr.nt-pt-key .nt-pt-name,
html.theme-nt .nt-pt tbody tr.nt-pt-key td b {
  color: #fff;
}

html.theme-nt .nt-pt tbody tr.nt-pt-key th small {
  color: rgba(255, 255, 255, 0.6);
}

@media (max-width: 760px) {
  html.theme-nt .nt-pt thead { display: none; }
  html.theme-nt .nt-pt,
  html.theme-nt .nt-pt tbody,
  html.theme-nt .nt-pt tr,
  html.theme-nt .nt-pt th,
  html.theme-nt .nt-pt td { display: block; }
  html.theme-nt .nt-pt { border-spacing: 0; }
  html.theme-nt .nt-pt tbody tr {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    margin-bottom: 10px;
    border: 1px solid var(--nt-border-strong);
    border-radius: 10px;
    background: #fff;
    overflow: hidden;
  }
  html.theme-nt .nt-pt tbody th {
    grid-column: 1 / -1;
    border: 0;
    border-radius: 0;
    background: transparent;
    padding: 14px 14px 6px;
  }
  html.theme-nt .nt-pt tbody td {
    border: 0;
    border-radius: 0;
    background: transparent;
    padding: 6px 14px 14px;
    text-align: left;
    white-space: normal;
    font-size: 13px;
  }
  html.theme-nt .nt-pt tbody td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 4px;
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--nt-text-tertiary);
  }
  html.theme-nt .nt-pt tbody tr.nt-pt-key { background: var(--nt-text); border-color: var(--nt-text); }
  html.theme-nt .nt-pt tbody tr.nt-pt-key th,
  html.theme-nt .nt-pt tbody tr.nt-pt-key td { background: transparent; }
  html.theme-nt .nt-pt tbody tr.nt-pt-key td::before { color: rgba(255, 255, 255, 0.6); }
  html.theme-nt .nt-pt tbody td b { font-size: 16px; }
  html.theme-nt .nt-pt-stage { padding: 16px; }
}


/* ---------------------------------------------------------------------------
   "Начать знакомство": the page fills with pixels from top to bottom and the
   demo offer appears on the light sign-in screen of NT-ai (js/nt-demo.js).
   --------------------------------------------------------------------------- */
html.nt-demo-lock { overflow: hidden; }

html.theme-nt .nt-demo {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  overflow: auto;
  color: #0d0d0d;
  color-scheme: light;
  opacity: 1;
  transition: opacity 0.25s ease;
}

html.theme-nt .nt-demo[hidden] { display: none; }
html.theme-nt .nt-demo.is-filled { background: #fcfcfc; }
html.theme-nt .nt-demo.is-closing { opacity: 0; pointer-events: none; }

html.theme-nt .nt-demo-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

html.theme-nt .nt-demo-close {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 2;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid #d6d6d6;
  border-radius: 999px;
  background: #fff;
  color: #0d0d0d;
  cursor: pointer;
}

html.theme-nt .nt-demo-close:hover { border-color: #0d0d0d; }
html.theme-nt .nt-demo-close:focus-visible { outline: 2px solid #0d0d0d; outline-offset: 3px; }

html.theme-nt .nt-demo-panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(480px, 100%);
  text-align: center;
}

html.theme-nt .nt-demo-title {
  margin: 0 0 14px;
  max-width: 24rem;
  color: #0d0d0d;
  font-size: 32px;
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 1.15;
}

html.theme-nt .nt-demo-lead {
  margin: 0 0 36px;
  max-width: 26rem;
  color: #6f6f6f;
  font-size: 16px;
  line-height: 1.45;
}

html.theme-nt .nt-demo-title,
html.theme-nt .nt-demo-lead,
html.theme-nt .nt-demo-points,
html.theme-nt .nt-demo-form {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
}

html.theme-nt .nt-demo.is-step-1 .nt-demo-title,
html.theme-nt .nt-demo.is-step-2 .nt-demo-lead,
html.theme-nt .nt-demo.is-step-3 .nt-demo-points,
html.theme-nt .nt-demo.is-step-3 .nt-demo-form {
  opacity: 1;
  transform: none;
}

html.theme-nt .nt-demo-form {
  width: min(440px, 100%);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

html.theme-nt .nt-demo-intro {
  width: 100%;
  text-align: left;
}
html.theme-nt .nt-demo-intro .nt-demo-lead { margin-bottom: 24px; }

html.theme-nt .nt-demo-points {
  display: grid;
  gap: 14px;
  margin: 0 0 32px;
  padding: 0;
  list-style: none;
}
html.theme-nt .nt-demo-points li {
  position: relative;
  padding-left: 32px;
  color: #0d0d0d;
  font-size: 16px;
  line-height: 1.45;
}
html.theme-nt .nt-demo-points li::before {
  content: "";
  position: absolute;
  top: 1px;
  left: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #0d0d0d url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 10.5l2.6 2.5L14 7.5'/%3E%3C/svg%3E") center / 20px no-repeat;
}

@media (min-width: 860px) {
  html.theme-nt .nt-demo-panel {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 380px));
    justify-content: center;
    column-gap: clamp(56px, 8vw, 120px);
    align-items: center;
    width: min(880px, 100%);
  }
  html.theme-nt .nt-demo-intro .nt-demo-title {
    max-width: none;
    font-size: clamp(34px, 3vw, 42px);
    line-height: 1.08;
  }
  html.theme-nt .nt-demo-points { margin-bottom: 0; }
  html.theme-nt .nt-demo-form { width: 100%; }
  html.theme-nt .nt-demo-done { grid-column: 1 / -1; }
}

html.theme-nt .nt-demo.is-done .nt-demo-intro { display: none; }

html.theme-nt .nt-demo-form[hidden],
html.theme-nt .nt-demo-done[hidden] { display: none; }

html.theme-nt .nt-demo-ask {
  margin: 0 0 4px;
  color: #0d0d0d;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.3;
}

html.theme-nt .nt-demo-input {
  width: 100%;
  height: 52px;
  padding: 0 20px;
  border: 1px solid #d6d6d6;
  border-radius: 999px;
  background: #fff;
  color: #0d0d0d;
  font: inherit;
  font-size: 16px;
  text-align: center;
}

html.theme-nt .nt-demo-input::placeholder { color: #8a8a8a; }
html.theme-nt .nt-demo-input:focus { outline: none; border-color: #111; }
html.theme-nt .nt-demo-input.is-invalid { border-color: #c62828; }

html.theme-nt .nt-demo-submit {
  width: 100%;
  border: 0;
}

html.theme-nt .nt-demo-submit:disabled { opacity: 0.6; cursor: default; }
html.theme-nt .nt-demo-submit:focus-visible { outline: 2px solid #0d0d0d; outline-offset: 3px; }

html.theme-nt .nt-demo-note {
  min-height: 20px;
  margin: 0;
  color: #6f6f6f;
  font-size: 14px;
  line-height: 1.4;
}

html.theme-nt .nt-demo-note.is-error { color: #c62828; }

html.theme-nt .nt-demo-consent {
  margin: 0;
  color: #8a8a8a;
  font-size: 12px;
  line-height: 1.4;
}
html.theme-nt .nt-demo-consent a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

html.theme-nt .nt-demo-done {
  display: flex;
  flex-direction: column;
  align-items: center;
  animation: nt-demo-in 0.6s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}

html.theme-nt .nt-demo-done .nt-demo-title,
html.theme-nt .nt-demo-done .nt-demo-lead {
  opacity: 1;
  transform: none;
}

html.theme-nt .nt-demo-back {
  height: 44px;
  padding: 0 24px;
  border: 1px solid #d6d6d6;
  border-radius: 999px;
  background: #fff;
  color: #0d0d0d;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
}

html.theme-nt .nt-demo-back:hover { border-color: #0d0d0d; }

@keyframes nt-demo-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}

@media (max-width: 520px) {
  html.theme-nt .nt-demo { padding: 72px 20px 32px; align-items: flex-start; }
  html.theme-nt .nt-demo-title { font-size: 26px; }
  html.theme-nt .nt-demo-close { top: 14px; right: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  html.theme-nt .nt-demo,
  html.theme-nt .nt-demo-title,
  html.theme-nt .nt-demo-lead,
  html.theme-nt .nt-demo-points,
  html.theme-nt .nt-demo-form { transition: none; }
  html.theme-nt .nt-demo-done { animation: none; }
}

/* ---------------------------------------------------------------------------
   «Начать знакомство»: the page fades, the sphere comes to the middle,
   under it — what is happening (line search, queue, microphone), then the talk.
   --------------------------------------------------------------------------- */
html.theme-nt .nt-meet {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  color: #0d0d0d;
  color-scheme: light;
}
html.theme-nt .nt-meet[hidden] { display: none; }

html.theme-nt .nt-meet-veil {
  position: absolute;
  inset: 0;
  background: rgba(252, 252, 252, 0.9);
  -webkit-backdrop-filter: blur(14px) saturate(0.9);
  backdrop-filter: blur(14px) saturate(0.9);
  opacity: 0;
  transition: opacity 0.45s ease;
}
html.theme-nt .nt-meet.is-open .nt-meet-veil { opacity: 1; }
html.theme-nt .nt-meet.is-closing .nt-meet-veil { opacity: 0; transition-duration: 0.25s; }

html.theme-nt .nt-meet-close {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 2;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid #d6d6d6;
  border-radius: 999px;
  background: #fff;
  color: #0d0d0d;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.4s ease 0.3s, border-color 0.2s;
}
html.theme-nt .nt-meet.is-open .nt-meet-close { opacity: 1; }
html.theme-nt .nt-meet.is-closing .nt-meet-close { opacity: 0; transition-delay: 0s; }
html.theme-nt .nt-meet-close:hover { border-color: #0d0d0d; }
html.theme-nt .nt-meet-close:focus-visible { outline: 2px solid #0d0d0d; outline-offset: 3px; }

html.theme-nt .nt-meet-card {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(460px, 100%);
  text-align: center;
}

/* The sphere: lands in the middle from the place where it was pressed. */
html.theme-nt .nt-meet-orb-wrap {
  position: relative;
  width: min(52vmin, 240px);
  height: min(52vmin, 240px);
  margin-bottom: 22px;
  transform-origin: 0 0;
  will-change: transform;
}
html.theme-nt .nt-meet.is-flying .nt-meet-orb-wrap {
  transition: transform 0.7s cubic-bezier(0.2, 0.75, 0.2, 1);
}
html.theme-nt .nt-meet-orb {
  display: block;
  width: 100% !important;
  height: 100% !important;
  border-radius: 50%;
  filter: contrast(1.08);
}
/* A soft ring that breathes while we are looking for a line. */
html.theme-nt .nt-meet-ring {
  position: absolute;
  inset: -14px;
  border-radius: 50%;
  border: 1px solid rgba(13, 13, 13, 0.14);
  opacity: 0;
  pointer-events: none;
}
html.theme-nt .nt-meet.is-searching .nt-meet-ring {
  opacity: 1;
  animation: nt-meet-breathe 2.2s ease-in-out infinite;
}
html.theme-nt .nt-meet-ring::after {
  content: "";
  position: absolute;
  inset: -16px;
  border-radius: 50%;
  border: 1px solid rgba(13, 13, 13, 0.07);
}
html.theme-nt .nt-meet-orb { transition: transform 0.09s linear; transform-origin: center; }
/* Alexey speaks: rings run outward from the sphere. */
html.theme-nt .nt-meet.is-speaking .nt-meet-ring {
  opacity: 1;
  animation: nt-meet-ripple 1.1s ease-out infinite;
}
html.theme-nt .nt-meet.is-speaking .nt-meet-ring::after {
  animation: nt-meet-ripple 1.1s ease-out 0.4s infinite;
}
/* You speak: the ring tightens and darkens with the voice. */
html.theme-nt .nt-meet.is-hearing .nt-meet-ring {
  opacity: 1;
  border-color: rgba(13, 13, 13, calc(0.14 + var(--mic, 0) * 0.6));
  transform: scale(calc(0.985 + var(--mic, 0) * 0.04));
  animation: none;
  transition: transform 0.09s linear, border-color 0.09s linear;
}
@keyframes nt-meet-ripple {
  0% { transform: scale(0.98); opacity: 0.7; }
  100% { transform: scale(1.14); opacity: 0; }
}

html.theme-nt .nt-meet-status {
  margin: 0 0 8px;
  color: #0d0d0d;
  font-size: 28px;
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1.15;
}
html.theme-nt .nt-meet-dots {
  display: inline-block;
  width: 1.1em;
  text-align: left;
}
html.theme-nt .nt-meet.is-searching .nt-meet-dots::after {
  content: "";
  animation: nt-meet-dots 1.4s steps(4, end) infinite;
}
html.theme-nt .nt-meet-sub {
  min-height: 22px;
  margin: 0 0 18px;
  color: #6f6f6f;
  font-size: 15px;
  line-height: 1.45;
}

/* Queue: one dot per person ahead, the filled one is you. */
html.theme-nt .nt-meet-queue {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 18px;
}
html.theme-nt .nt-meet-queue[hidden] { display: none; }
html.theme-nt .nt-meet-queue i {
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid #0d0d0d;
  background: #fff;
  animation: nt-meet-in 0.4s ease both;
}
html.theme-nt .nt-meet-queue i.is-you { background: #0d0d0d; }
html.theme-nt .nt-meet-queue i.is-busy { border-color: #bdbdbd; }
html.theme-nt .nt-meet-queue span {
  margin-left: 4px;
  color: #6f6f6f;
  font-size: 13px;
}

/* Microphone: five bars that move with the voice. */
html.theme-nt .nt-meet-mic {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 36px;
  padding: 0 14px 0 12px;
  border: 1px solid #e3e3e3;
  border-radius: 999px;
  background: #fff;
  color: #6f6f6f;
  font-size: 13px;
  line-height: 1;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.4s ease, transform 0.4s ease, border-color 0.3s;
}
html.theme-nt .nt-meet-mic.is-on { opacity: 1; transform: none; }
html.theme-nt .nt-meet-mic.is-live { border-color: #0d0d0d; color: #0d0d0d; }
html.theme-nt .nt-meet-mic-bars {
  display: flex;
  align-items: center;
  gap: 3px;
  height: 16px;
}
html.theme-nt .nt-meet-mic-bars i {
  display: block;
  width: 3px;
  height: 16px;
  border-radius: 2px;
  background: currentColor;
  transform: scaleY(0.18);
  transform-origin: center;
  transition: transform 0.08s linear;
}
html.theme-nt .nt-meet-mic.is-muted .nt-meet-mic-bars i { background: #c62828; }

html.theme-nt .nt-meet-lines {
  min-height: 44px;
  width: 100%;
  margin: 16px 0 14px;
  color: #444;
  font-size: 15px;
  line-height: 1.45;
}
html.theme-nt .nt-meet-lines p {
  margin: 4px 0;
  animation: nt-meet-in 0.35s ease both;
}
html.theme-nt .nt-meet-lines p b { font-weight: 600; color: #0d0d0d; }
/* «Не робот»: невидим, пока проверка не попросит нажать. */
html.theme-nt .nt-meet-human:not(:empty) { margin-top: 12px; }

html.theme-nt .nt-meet-actions {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
}
html.theme-nt .nt-meet-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 44px;
  padding: 0 24px;
  border: 0;
  border-radius: 999px;
  background: #0d0d0d;
  color: #fff;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
}
html.theme-nt .nt-meet-btn:hover { background: #2a2c31; }
html.theme-nt .nt-meet-btn--ghost {
  background: #fff;
  color: #0d0d0d;
  border: 1px solid #d6d6d6;
}
html.theme-nt .nt-meet-btn--ghost:hover { background: #fff; border-color: #0d0d0d; }
html.theme-nt .nt-meet-btn:focus-visible { outline: 2px solid #0d0d0d; outline-offset: 3px; }

/* Text under the sphere appears a beat after it lands. */
html.theme-nt .nt-meet-status,
html.theme-nt .nt-meet-sub,
html.theme-nt .nt-meet-queue,
html.theme-nt .nt-meet-lines,
html.theme-nt .nt-meet-actions {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.2, 0.7, 0.2, 1);
}
html.theme-nt .nt-meet.is-open .nt-meet-status { opacity: 1; transform: none; transition-delay: 0.35s; }
html.theme-nt .nt-meet.is-open .nt-meet-sub,
html.theme-nt .nt-meet.is-open .nt-meet-queue { opacity: 1; transform: none; transition-delay: 0.5s; }
html.theme-nt .nt-meet.is-open .nt-meet-lines,
html.theme-nt .nt-meet.is-open .nt-meet-actions { opacity: 1; transform: none; transition-delay: 0.65s; }
html.theme-nt .nt-meet.is-closing .nt-meet-card { opacity: 0; transition: opacity 0.25s ease; }

/* Name and phone sheet above the talk. */
html.theme-nt .nt-meet-modal {
  position: fixed;
  inset: 0;
  z-index: 10001;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(13, 13, 13, 0.22);
}
html.theme-nt .nt-meet-modal[hidden] { display: none; }
html.theme-nt .nt-meet-sheet {
  width: min(420px, 100%);
  padding: 26px 24px 22px;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.14);
  text-align: center;
  animation: nt-meet-in 0.35s ease both;
}
html.theme-nt .nt-meet-sheet h3 {
  margin: 0 0 8px;
  font-size: 24px;
  font-weight: 600;
  letter-spacing: -0.03em;
}
html.theme-nt .nt-meet-sheet p { margin: 0 0 16px; color: #6f6f6f; font-size: 15px; line-height: 1.45; }
html.theme-nt .nt-meet-sheet input {
  width: 100%;
  height: 52px;
  box-sizing: border-box;
  margin: 0 0 10px;
  padding: 0 20px;
  border: 1px solid #d6d6d6;
  border-radius: 999px;
  background: #fff;
  color: #0d0d0d;
  font: inherit;
  font-size: 16px;
  text-align: center;
}
html.theme-nt .nt-meet-sheet input::placeholder { color: #8a8a8a; }
html.theme-nt .nt-meet-sheet input:focus { outline: none; border-color: #111; }
html.theme-nt .nt-meet-sheet input.is-invalid { border-color: #c62828; }
html.theme-nt .nt-meet-error { min-height: 1.3em; margin: 0 0 12px; color: #c62828; font-size: 14px; }
html.theme-nt .nt-meet-sheet .nt-meet-actions { opacity: 1; transform: none; transition: none; }

@keyframes nt-meet-breathe {
  0%, 100% { transform: scale(1); opacity: 0.55; }
  50% { transform: scale(1.06); opacity: 1; }
}
@keyframes nt-meet-dots {
  0% { content: ""; }
  25% { content: "."; }
  50% { content: ".."; }
  75% { content: "..."; }
  100% { content: ""; }
}
@keyframes nt-meet-in {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}

@media (max-width: 520px) {
  html.theme-nt .nt-meet { padding: 72px 20px 32px; }
  html.theme-nt .nt-meet-status { font-size: 24px; }
  html.theme-nt .nt-meet-close { top: 14px; right: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  html.theme-nt .nt-meet-veil,
  html.theme-nt .nt-meet-close,
  html.theme-nt .nt-meet-orb-wrap,
  html.theme-nt .nt-meet-status,
  html.theme-nt .nt-meet-sub,
  html.theme-nt .nt-meet-queue,
  html.theme-nt .nt-meet-lines,
  html.theme-nt .nt-meet-actions,
  html.theme-nt .nt-meet-mic { transition: none; }
  html.theme-nt .nt-meet-ring,
  html.theme-nt .nt-meet.is-speaking .nt-meet-ring,
  html.theme-nt .nt-meet.is-speaking .nt-meet-ring::after,
  html.theme-nt .nt-meet-dots::after,
  html.theme-nt .nt-meet-queue i,
  html.theme-nt .nt-meet-lines p,
  html.theme-nt .nt-meet-sheet { animation: none; }
}

/* Preview-only: price cycle, integration lead, comparison banner. */
html.theme-nt .nt-impl-lead {
  max-width: 720px;
  margin: 14px 0 0;
  color: var(--nt-text-secondary);
  font-size: 16px;
  line-height: 1.45;
}

html.theme-nt .nt-rate-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 24px clamp(12px, 2vw, 24px);
  margin: 0 0 32px;
}
html.theme-nt .nt-rate-group {
  display: flex;
  align-items: flex-start;
  gap: clamp(14px, 2.6vw, 36px);
}
html.theme-nt .nt-rate-group--ref { margin-left: auto; }
html.theme-nt .nt-rate {
  display: block;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  cursor: pointer;
  text-align: left;
  -webkit-tap-highlight-color: transparent;
}
html.theme-nt .nt-rate--ref { text-align: right; }
html.theme-nt .nt-rate:focus-visible { outline: 2px solid var(--nt-text); outline-offset: 4px; }
/* Every slot is laid out at full size; resting figures are only scaled down. */
html.theme-nt .nt-rate-num {
  display: inline-flex;
  align-items: baseline;
  font-family: var(--font-display);
  font-weight: var(--w-leicht);
  font-size: clamp(88px, 10vw, 140px);
  line-height: 0.92;
  letter-spacing: -0.02em;
  color: rgba(21, 21, 23, 0.62);
  transform: scale(0.5);
  transform-origin: 0 100%;
  transition: transform 0.45s cubic-bezier(0.33, 1, 0.68, 1), color 0.45s ease;
}
html.theme-nt .nt-rate--ref .nt-rate-num {
  color: rgba(21, 21, 23, 0.35);
  transform-origin: 100% 100%;
}
html.theme-nt .nt-rate b { font-weight: inherit; }
html.theme-nt .nt-rate small {
  margin-left: 0.12em;
  font-size: 0.275em;
  font-weight: var(--w-kraftig);
  letter-spacing: -0.01em;
  color: rgba(21, 21, 23, 0.45);
  transition: color 0.45s ease;
}
html.theme-nt .nt-rate-cap {
  display: block;
  max-width: 11em;
  margin-top: 10px;
  font-family: var(--font-body);
  font-size: 13px;
  line-height: 1.35;
  letter-spacing: -0.01em;
  color: var(--color-text-secondary);
  transition: color 0.3s ease;
}
html.theme-nt .nt-rate--ref .nt-rate-cap {
  max-width: 14em;
  margin-left: auto;
}
html.theme-nt .nt-rate.is-on .nt-rate-num {
  transform: none;
  color: var(--color-dark);
}
html.theme-nt .nt-rate.is-on small { color: var(--color-text-secondary); }
html.theme-nt .nt-rate.is-on .nt-rate-cap { color: var(--color-dark); }

html.theme-nt .nt-rate-scale { position: relative; }
html.theme-nt .nt-rate-range {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 8.824%;
  width: 14.706%;
  z-index: 3;
  background: var(--color-geo-shu);
  transform: scaleX(0);
  transform-origin: 0 50%;
}
html.theme-nt .nt-rate-range.is-filled {
  transform: none;
  transition: transform 0.5s cubic-bezier(0.33, 1, 0.68, 1) 0.3s;
}
html.theme-nt .nt-rate-dot {
  position: absolute;
  top: 50%;
  left: clamp(5px, var(--x, 8.824%), calc(100% - 5px));
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--color-dark);
  box-shadow: 0 0 0 3px var(--color-canvas);
  transform: translate(-50%, -50%);
  transition: left 0.5s cubic-bezier(0.33, 1, 0.68, 1);
}
html.theme-nt .nt-rate-mark { transition: color 0.3s ease; }
html.theme-nt .nt-rate-mark.is-on { color: var(--color-dark); }
html.theme-nt .nt-rate-bracket {
  position: absolute;
  top: 0;
  left: 8.824%;
  width: 14.706%;
  height: 8px;
  border: 1px solid currentColor;
  border-top: 0;
  color: var(--color-text-secondary);
  font-family: var(--font-display);
  font-weight: var(--w-kraftig);
  font-size: 12px;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
  white-space: nowrap;
}
html.theme-nt .nt-rate-bracket > span {
  position: absolute;
  top: 16px;
  left: -1px;
}

html.theme-nt .nt-rate-fixed {
  max-width: 640px;
  margin: 16px 0 10px;
  color: var(--nt-text);
  font-size: 16px;
  line-height: 1.45;
}
html.theme-nt .nt-rate-plaques {
  display: grid;
  max-width: 640px;
}
html.theme-nt .nt-rate-plaque {
  grid-area: 1 / 1;
  margin: 0;
  color: var(--nt-text-secondary);
  font-size: 16px;
  line-height: 1.5;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s ease;
}
html.theme-nt .nt-rate-plaque.is-on {
  opacity: 1;
  pointer-events: auto;
}
html.theme-nt .nt-rate-plaques + .nt-latency__replay-row { margin-top: 20px; }

/* Tariff plans: prepayment price list in a modal dialog (js/nt-rates.js). */
html:has(.nt-tariffs[open]) { overflow: hidden; }
html.theme-nt .nt-tariffs {
  width: min(440px, calc(100% - 32px));
  max-width: none;
  max-height: calc(100% - 32px);
  margin: auto;
  padding: 0;
  border: 1px solid var(--color-border);
  border-radius: 20px;
  background: #fff;
  color: var(--color-dark);
  box-shadow: 0 24px 64px rgba(13, 13, 13, 0.16);
  overflow: auto;
}
html.theme-nt .nt-tariffs::backdrop { background: rgba(13, 13, 13, 0.36); }
html.theme-nt .nt-tariffs[open] { animation: nt-tariffs-in 0.28s cubic-bezier(0.2, 0.7, 0.2, 1); }
html.theme-nt .nt-tariffs[open]::backdrop { animation: nt-tariffs-fade 0.28s ease; }
@keyframes nt-tariffs-in { from { opacity: 0; transform: translateY(12px) scale(0.98); } }
@keyframes nt-tariffs-fade { from { opacity: 0; } }
html.theme-nt .nt-tariffs-body {
  position: relative;
  padding: 32px 32px 24px;
}
html.theme-nt .nt-tariffs-close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 1px solid #d6d6d6;
  border-radius: 999px;
  background: #fff;
  color: #0d0d0d;
  cursor: pointer;
}
html.theme-nt .nt-tariffs-close:hover { border-color: #0d0d0d; }
html.theme-nt .nt-tariffs-close:focus-visible { outline: 2px solid #0d0d0d; outline-offset: 3px; }
html.theme-nt .nt-tariffs-title {
  margin: 0 52px 8px 0;
  color: #0d0d0d;
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 1.15;
}
html.theme-nt .nt-tariffs-lead {
  margin: 0 0 20px;
  color: var(--color-text-secondary);
  font-size: 15px;
  line-height: 1.45;
}
html.theme-nt .nt-tariffs-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
  line-height: 1.3;
  font-variant-numeric: tabular-nums;
}
html.theme-nt .nt-tariffs-table th {
  padding: 0 0 10px;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-text-secondary);
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: var(--w-kraftig);
  letter-spacing: 0.08em;
  text-align: left;
  text-transform: uppercase;
}
html.theme-nt .nt-tariffs-table td {
  padding: 11px 0;
  border-bottom: 1px solid rgba(21, 21, 23, 0.08);
  color: var(--color-text-secondary);
}
html.theme-nt .nt-tariffs-table th:last-child,
html.theme-nt .nt-tariffs-table td:last-child { text-align: right; }
html.theme-nt .nt-tariffs-table td:last-child { color: var(--color-dark); font-weight: 600; }
html.theme-nt .nt-tariffs-table .is-best td { border-bottom: 0; color: var(--color-dark); font-weight: 600; }
@media (max-width: 720px) {
  html.theme-nt .nt-tariffs-body { padding: 24px 20px 16px; }
  html.theme-nt .nt-tariffs-title { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  html.theme-nt .nt-tariffs[open],
  html.theme-nt .nt-tariffs[open]::backdrop { animation: none; }
}
@media (max-width: 720px) {
  html.theme-nt .nt-rate-bracket > span { top: 40px; }
}
html.theme-nt .nt-rate-group-label { display: none; }

/* Phones: the price row becomes a vertical scale, one bar per price measured against 34 ₽. */
@media (max-width: 720px) {
  html.theme-nt [data-rates] .nt-rate-scale,
  html.theme-nt [data-rates] .nt-latency__bar-caption { display: none; }
  html.theme-nt .nt-rate-row {
    display: grid;
    gap: 28px;
    margin: 0 0 24px;
  }
  html.theme-nt .nt-rate-group { display: grid; gap: 0; }
  html.theme-nt .nt-rate-group--ref { margin-left: 0; }
  html.theme-nt .nt-rate-group-label {
    display: block;
    margin-bottom: 4px;
    font-family: var(--font-display);
    font-weight: var(--w-kraftig);
    font-size: 12px;
    line-height: 1.2;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
  }
  html.theme-nt .nt-rate,
  html.theme-nt .nt-rate--ref {
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr);
    align-items: center;
    gap: 10px 12px;
    width: 100%;
    padding: 12px 0;
    text-align: left;
  }
  html.theme-nt .nt-rate-num,
  html.theme-nt .nt-rate--ref .nt-rate-num {
    grid-row: 1;
    grid-column: 1;
    font-size: 40px;
    line-height: 1;
    transform: none;
  }
  html.theme-nt .nt-rate small { font-size: 0.4em; }
  html.theme-nt .nt-rate-cap,
  html.theme-nt .nt-rate--ref .nt-rate-cap {
    grid-row: 1;
    grid-column: 2;
    max-width: none;
    margin: 0;
    font-size: 14px;
  }
  html.theme-nt .nt-rate::before,
  html.theme-nt .nt-rate::after {
    content: "";
    grid-row: 2;
    grid-column: 1 / -1;
    height: 3px;
  }
  html.theme-nt .nt-rate::before { background: rgba(21, 21, 23, 0.08); }
  html.theme-nt .nt-rate::after {
    justify-self: start;
    width: var(--pct);
    background: var(--nt-accent-soft);
    transform: scaleX(0);
    transform-origin: 0 50%;
    transition: background-color 0.3s ease;
  }
  html.theme-nt .nt-rate--ref::after { background: rgba(21, 21, 23, 0.22); }
  html.theme-nt .nt-rate-row.is-filled .nt-rate::after {
    transform: none;
    transition: transform 0.8s cubic-bezier(0.33, 1, 0.68, 1) calc(var(--i, 0) * 90ms), background-color 0.3s ease;
  }
  html.theme-nt .nt-rate.is-on::after { background: var(--color-dark); }
}
@media (prefers-reduced-motion: reduce) {
  html.theme-nt .nt-rate-num,
  html.theme-nt .nt-rate small,
  html.theme-nt .nt-rate-cap,
  html.theme-nt .nt-rate-mark,
  html.theme-nt .nt-rate-dot,
  html.theme-nt .nt-rate-plaque,
  html.theme-nt .nt-rate-range.is-filled,
  html.theme-nt .nt-rate-row.is-filled .nt-rate::after,
  html.theme-nt [data-rates] .nt-latency__fill { transition: none; }
}

/* Preview-only: one orb travels between the hero sphere, the bottom-right corner and the offer sphere. */
html.nt-orb-travel .nt-talk-orb { position: relative; }
html.nt-orb-travel .nt-talk-orb > .talk-orb-canvas { display: none; }
html.theme-nt .nt-orb-fly {
  position: absolute;
  left: 0;
  top: 0;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  overflow: hidden;
  transform-origin: 0 0;
  pointer-events: none;
}
html.theme-nt .nt-orb-fly.is-hot .talk-orb-canvas { filter: contrast(1.08); }
html.theme-nt a.nt-orb-float {
  position: fixed;
  top: auto;
  left: auto;
  right: calc(24px + env(safe-area-inset-right, 0px));
  bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  z-index: 90;
  width: 320px;
  height: 320px;
  transform-origin: 100% 100%;
  will-change: transform;
}
html.theme-nt a.nt-orb-float[hidden] { display: none; }
@media (max-width: 640px) {
  html.theme-nt a.nt-orb-float {
    right: calc(16px + env(safe-area-inset-right, 0px));
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  }
}

/* Preview-only: tighter steps in the phone timeline. */
html.theme-nt .nt-impl-mobile-item:not(:last-child) { padding-bottom: 40px; }

/* Preview-only: menu items are anchors to page sections. */
html.theme-nt .site-nav .nt-nav-link[aria-current="true"] { background-color: var(--color-border); }
html.theme-nt .nav-mobile-drawer .nt-nav-link::after {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--nt-text);
  opacity: 0;
  transition: opacity var(--duration-fast, 0.15s) ease;
}
html.theme-nt .nav-mobile-drawer .nt-nav-link[aria-current="true"]::after { opacity: 1; }

/* ---------------------------------------------------------------------------
   Legal pages: privacy policy (legal/privacy/index.html).
   --------------------------------------------------------------------------- */
html.theme-nt .nt-legal {
  --nt-legal-body: #3d3f45;
  padding-bottom: clamp(64px, 8vw, 120px);
}
html.theme-nt .nt-legal :is(h1, h2, h3) { -webkit-hyphens: manual; hyphens: manual; }

html.theme-nt .nt-legal-hero {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
  padding-top: clamp(48px, 7vw, 104px);
  padding-bottom: clamp(36px, 4vw, 56px);
}
html.theme-nt .nt-legal-title {
  margin: 0;
  max-width: 900px;
  font-family: var(--font-display);
  font-size: clamp(32px, 5vw, 68px);
  line-height: 1.02;
  letter-spacing: -0.035em;
  color: var(--nt-text);
}
html.theme-nt .nt-legal-lead {
  margin: 0;
  max-width: 680px;
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: -0.01em;
  color: var(--nt-text-secondary);
}
html.theme-nt .nt-legal-draft-note {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(255, 146, 23, 0.12);
  color: #8a4b00;
  font-size: 13px;
  line-height: 1.3;
}
html.theme-nt .nt-legal-draft-note::before {
  content: "";
  flex: none;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--nt-warn);
}
html.theme-nt .nt-legal-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 48px;
  width: 100%;
  margin: 10px 0 0;
  padding-top: 24px;
  border-top: 1px solid var(--nt-border);
}
html.theme-nt .nt-legal-meta dt {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--nt-text-tertiary);
}
html.theme-nt .nt-legal-meta dd {
  margin: 6px 0 0;
  font-size: 15px;
  color: var(--nt-text);
}

html.theme-nt .nt-legal-fill {
  padding: 0 4px;
  border-radius: 4px;
  background: rgba(255, 146, 23, 0.14);
  box-shadow: inset 0 -1px 0 rgba(255, 146, 23, 0.7);
  color: var(--nt-text);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

html.theme-nt .nt-legal-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 40px;
  align-items: start;
}
html.theme-nt .nt-legal-aside { display: none; }
@media (min-width: 1024px) {
  html.theme-nt .nt-legal-body {
    grid-template-columns: 232px minmax(0, 1fr);
    gap: clamp(48px, 6vw, 96px);
  }
  html.theme-nt .nt-legal-aside { display: block; height: 100%; }
  html.theme-nt .nt-legal-toc-m { display: none; }
}
html.theme-nt .nt-legal-toc {
  position: sticky;
  top: calc(var(--nav-height) + var(--announcement-height) + 32px);
}
html.theme-nt .nt-legal-toc-title {
  margin: 0 0 12px 10px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--nt-text-tertiary);
}
html.theme-nt .nt-legal-toc ol,
html.theme-nt .nt-legal-toc-m ol {
  display: grid;
  gap: 2px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: toc;
}
html.theme-nt .nt-legal-toc a,
html.theme-nt .nt-legal-toc-m a {
  display: flex;
  gap: 10px;
  padding: 7px 10px;
  border-radius: var(--nt-radius-sm);
  color: var(--nt-text-secondary);
  font-size: 14px;
  line-height: 1.3;
  text-decoration: none;
  transition: background-color 0.15s ease, color 0.15s ease;
}
html.theme-nt .nt-legal-toc a::before,
html.theme-nt .nt-legal-toc-m a::before {
  counter-increment: toc;
  content: counter(toc, decimal-leading-zero);
  flex: none;
  width: 18px;
  padding-top: 1px;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  color: var(--nt-text-tertiary);
}
html.theme-nt .nt-legal-toc a:hover,
html.theme-nt .nt-legal-toc-m a:hover,
html.theme-nt .nt-legal-toc a[aria-current="true"],
html.theme-nt .nt-legal-toc-m a[aria-current="true"] {
  background: var(--nt-bg-surface);
  color: var(--nt-text);
}

html.theme-nt .nt-legal-toc-m {
  margin: 0 0 32px;
  border: 1px solid var(--nt-border-strong);
  border-radius: var(--nt-radius-2xl);
  background: var(--nt-bg);
}
html.theme-nt .nt-legal-toc-m summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  font-size: 15px;
  font-weight: 600;
  color: var(--nt-text);
  list-style: none;
  cursor: pointer;
}
html.theme-nt .nt-legal-toc-m summary::-webkit-details-marker { display: none; }
html.theme-nt .nt-legal-toc-m summary::after {
  content: "";
  width: 8px;
  height: 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform 0.2s ease;
}
html.theme-nt .nt-legal-toc-m[open] summary::after { transform: translateY(2px) rotate(-135deg); }
html.theme-nt .nt-legal-toc-m ol { padding: 0 8px 10px; }

html.theme-nt .nt-legal-doc {
  min-width: 0;
  max-width: 760px;
  counter-reset: legal-sec;
}

html.theme-nt .nt-legal-summary {
  margin: 0 0 48px;
  padding: clamp(22px, 3vw, 32px);
  border-radius: var(--nt-radius-2xl);
  background: var(--nt-bg-surface);
}
html.theme-nt .nt-legal-summary-title {
  margin: 0 0 20px;
  font-size: 20px;
  line-height: 1.2;
  color: var(--nt-text);
}
html.theme-nt .nt-legal-points {
  display: grid;
  gap: 18px 32px;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (min-width: 720px) {
  html.theme-nt .nt-legal-points { grid-template-columns: 1fr 1fr; }
}
html.theme-nt .nt-legal-points li {
  position: relative;
  padding-left: 32px;
  font-size: 15px;
  line-height: 1.5;
  color: var(--nt-text-secondary);
}
html.theme-nt .nt-legal-points li b {
  display: block;
  margin-bottom: 2px;
  font-weight: 600;
  color: var(--nt-text);
}
html.theme-nt .nt-legal-points li::before {
  content: "";
  position: absolute;
  top: 1px;
  left: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--nt-text) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 10.5l2.6 2.5L14 7.5'/%3E%3C/svg%3E") center / 20px no-repeat;
}

html.theme-nt .nt-legal-sec {
  counter-increment: legal-sec;
  padding: 40px 0;
  border-top: 1px solid var(--nt-border);
}
html.theme-nt .nt-legal-sec h2 {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin: 0 0 20px;
  font-family: var(--font-display);
  font-size: clamp(22px, 2.2vw, 28px);
  line-height: 1.2;
  color: var(--nt-text);
}
html.theme-nt .nt-legal-num {
  flex: none;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
  color: var(--nt-text-tertiary);
}
html.theme-nt .nt-legal-sec h3 {
  margin: 28px 0 12px;
  font-size: 17px;
  line-height: 1.3;
  color: var(--nt-text);
}
html.theme-nt .nt-legal-sec p {
  margin: 0 0 14px;
  font-size: 16px;
  line-height: 1.65;
  color: var(--nt-legal-body);
}
html.theme-nt .nt-legal-sec p:last-child { margin-bottom: 0; }
html.theme-nt .nt-legal-doc a:not(.nt-nav-link) {
  color: var(--nt-text);
  text-decoration: underline;
  text-decoration-color: var(--nt-border-strong);
  text-underline-offset: 3px;
}
html.theme-nt .nt-legal-doc a:not(.nt-nav-link):hover { text-decoration-color: currentColor; }

html.theme-nt .nt-legal-list,
html.theme-nt .nt-legal-bullets {
  display: grid;
  gap: 10px;
  margin: 0 0 14px;
  padding: 0;
  list-style: none;
}
html.theme-nt .nt-legal-list { counter-reset: legal-item; gap: 12px; }
html.theme-nt .nt-legal-list:last-child,
html.theme-nt .nt-legal-bullets:last-child { margin-bottom: 0; }
html.theme-nt .nt-legal-list li,
html.theme-nt .nt-legal-bullets li {
  position: relative;
  font-size: 16px;
  line-height: 1.65;
  color: var(--nt-legal-body);
}
html.theme-nt .nt-legal-list li { padding-left: 44px; }
html.theme-nt .nt-legal-list li::before {
  counter-increment: legal-item;
  content: counter(legal-sec) "." counter(legal-item);
  position: absolute;
  left: 0;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  color: var(--nt-text-tertiary);
  line-height: 1.85;
}
html.theme-nt .nt-legal-bullets li { padding-left: 22px; }
html.theme-nt .nt-legal-bullets li::before {
  content: "";
  position: absolute;
  top: 0.78em;
  left: 4px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--nt-text-tertiary);
}
html.theme-nt .nt-legal-bullets b { font-weight: 600; color: var(--nt-text); }

html.theme-nt .nt-legal-terms {
  margin: 0 0 16px;
  border-top: 1px solid var(--nt-border);
}
html.theme-nt .nt-legal-terms:last-child { margin-bottom: 0; }
html.theme-nt .nt-legal-terms > div {
  display: grid;
  gap: 4px 24px;
  padding: 14px 0;
  border-bottom: 1px solid var(--nt-border);
}
html.theme-nt .nt-legal-terms dt {
  font-size: 15px;
  font-weight: 600;
  color: var(--nt-text);
}
html.theme-nt .nt-legal-terms dd {
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
  color: var(--nt-legal-body);
}

html.theme-nt .nt-legal-purposes {
  display: grid;
  gap: 14px;
  margin-top: 24px;
}
html.theme-nt .nt-legal-purpose {
  padding: 22px 24px 10px;
  border: 1px solid var(--nt-border-strong);
  border-radius: var(--nt-radius-2xl);
  background: var(--nt-bg);
}
html.theme-nt .nt-legal-purpose h3 {
  margin: 0 0 14px;
  font-size: 18px;
}
html.theme-nt .nt-legal-purpose dl { margin: 0; }
html.theme-nt .nt-legal-purpose dl > div {
  display: grid;
  gap: 2px 20px;
  padding: 11px 0;
  border-top: 1px solid var(--nt-border);
}
html.theme-nt .nt-legal-purpose dt {
  padding-top: 3px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--nt-text-tertiary);
}
html.theme-nt .nt-legal-purpose dd {
  margin: 0;
  font-size: 15px;
  line-height: 1.55;
  color: var(--nt-legal-body);
}
@media (min-width: 720px) {
  html.theme-nt .nt-legal-terms > div { grid-template-columns: 200px minmax(0, 1fr); }
  html.theme-nt .nt-legal-purpose dl > div { grid-template-columns: 140px minmax(0, 1fr); }
}

html.theme-nt .nt-legal-contact {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px 40px;
  margin-top: 16px;
  padding: clamp(24px, 4vw, 40px);
  border-radius: 20px;
  background: var(--nt-text);
  color: #fff;
}
html.theme-nt .nt-legal-contact h2 {
  margin: 0 0 8px;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.15;
  color: #fff;
}
html.theme-nt .nt-legal-contact p {
  margin: 0;
  max-width: 420px;
  font-size: 15px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.7);
}
html.theme-nt .nt-legal-contact .nt-legal-mail {
  font-size: 17px;
  font-weight: 600;
  color: #fff;
}
html.theme-nt .nt-legal-contact .nt-legal-fill {
  background: rgba(255, 146, 23, 0.24);
  color: #fff;
}

/* ---------------------------------------------------------------------------
   Footer: brand line and callback link on top, then sections, scenarios
   and documents.
   --------------------------------------------------------------------------- */
html.theme-nt .nt-footer-top {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px 48px;
  margin-bottom: 40px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--nt-border);
}
html.theme-nt .nt-footer-tagline {
  margin: 16px 0 0;
  max-width: 400px;
  font-size: 15px;
  line-height: 1.5;
  color: var(--nt-text-secondary);
}
html.theme-nt .nt-footer-contact {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 20px;
}
html.theme-nt .nt-footer-contact-text {
  margin: 0;
  font-size: 15px;
  font-weight: 500;
  color: var(--nt-text);
}
html.theme-nt footer a.nt-footer-call {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 0 16px;
  border: 1px solid var(--nt-border-strong);
  border-radius: var(--nt-radius-sm);
  background: #fff;
  color: var(--nt-text) !important;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
html.theme-nt footer a.nt-footer-call:hover {
  border-color: var(--nt-text);
  background: var(--nt-text);
  color: #fff !important;
}
html.theme-nt .nt-footer-call svg,
html.theme-nt .nt-footer-up svg {
  flex: none;
  width: 14px;
  height: 14px;
}
html.theme-nt footer li > a {
  padding: 4px 0;
  line-height: 1.3;
}
html.theme-nt footer li > a[aria-current="page"] {
  color: var(--nt-text) !important;
}
html.theme-nt .nt-footer-bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px 32px;
  padding-top: 24px;
  border-top: 1px solid var(--nt-border);
}
html.theme-nt .nt-footer-legal {
  flex: 1 1 320px;
  display: grid;
  gap: 8px;
  min-width: 0;
}
html.theme-nt .nt-footer-company {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--nt-text);
}
html.theme-nt .nt-footer-reqs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 20px;
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
}
html.theme-nt .nt-footer-reqs > div {
  display: flex;
  gap: 6px;
  min-width: 0;
}
html.theme-nt .nt-footer-reqs dt {
  flex: none;
  color: var(--nt-text-tertiary);
}
html.theme-nt .nt-footer-reqs dd {
  margin: 0;
  color: var(--nt-text-secondary);
  font-variant-numeric: tabular-nums;
}
html.theme-nt .nt-footer-note {
  margin: 4px 0 6px;
  max-width: 640px;
  font-size: 12px;
  line-height: 1.5;
  color: var(--nt-text-tertiary);
}
html.theme-nt footer a.nt-footer-up {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
}

/* ---------------------------------------------------------------------------
   Scenario pages (scenarios/<slug>/index.html): task, how NT helps with a
   sample call, results, launch facts, related scenarios.
   --------------------------------------------------------------------------- */
html.theme-nt .nt-case :is(h1, h2, h3) { -webkit-hyphens: manual; hyphens: manual; }

html.theme-nt .nt-case-hero {
  display: grid;
  gap: 40px;
  align-items: center;
  padding-top: clamp(40px, 6vw, 88px);
  padding-bottom: clamp(24px, 3vw, 40px);
}
@media (min-width: 960px) {
  html.theme-nt .nt-case-hero {
    grid-template-columns: minmax(0, 1fr) minmax(0, 560px);
    gap: clamp(48px, 6vw, 96px);
  }
}
html.theme-nt .nt-case-crumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 13px;
  color: var(--nt-text-tertiary);
}
html.theme-nt .nt-case-crumbs a {
  color: var(--nt-text-secondary);
  text-decoration: none;
}
html.theme-nt .nt-case-crumbs a:hover { color: var(--nt-text); }
html.theme-nt .nt-case-title {
  margin: 18px 0 0;
  font-family: var(--font-display);
  font-size: clamp(36px, 5vw, 64px);
  line-height: 1.02;
  letter-spacing: -0.035em;
  color: var(--nt-text);
}
html.theme-nt .nt-case-lead {
  margin: 20px 0 0;
  max-width: 560px;
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: -0.01em;
  color: var(--nt-text-secondary);
}
html.theme-nt .nt-case-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 28px;
  margin-top: 32px;
}
html.theme-nt .nt-case-textlink {
  font-size: 15px;
  font-weight: 500;
  color: var(--nt-text);
  text-decoration: underline;
  text-decoration-color: var(--nt-border-strong);
  text-underline-offset: 4px;
}
html.theme-nt .nt-case-textlink:hover { text-decoration-color: currentColor; }
html.theme-nt .nt-case-figure {
  padding: 10px;
  border: 1px solid var(--nt-border-strong);
  border-radius: 20px;
  background: #fff;
}
html.theme-nt .nt-case-figure .nt-uc-fig { border-radius: 12px; }

html.theme-nt .nt-case-sec { padding-top: clamp(56px, 7vw, 104px); }
html.theme-nt .nt-case-head {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 720px;
  margin-bottom: clamp(28px, 3vw, 40px);
}
html.theme-nt .nt-case-h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(28px, 3vw, 44px);
  line-height: 1.05;
  letter-spacing: -0.022em;
  color: var(--nt-text);
}
html.theme-nt .nt-case-text {
  margin: 4px 0 0;
  max-width: 680px;
  font-size: 17px;
  line-height: 1.6;
  color: #3d3f45;
}

html.theme-nt .nt-case-pains,
html.theme-nt .nt-case-gains,
html.theme-nt .nt-case-steps,
html.theme-nt .nt-case-chat,
html.theme-nt .nt-case-needs,
html.theme-nt .nt-case-facts,
html.theme-nt .nt-case-more {
  margin: 0;
  padding: 0;
  list-style: none;
}
html.theme-nt .nt-case-pains {
  display: grid;
  gap: 12px;
  counter-reset: pain;
}
html.theme-nt .nt-case-pains li {
  counter-increment: pain;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 22px 24px 24px;
  border-radius: 16px;
  background: var(--nt-bg-surface);
}
html.theme-nt .nt-case-pains li::before {
  content: counter(pain, decimal-leading-zero);
  margin-bottom: 18px;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  color: var(--nt-text-tertiary);
}
html.theme-nt :is(.nt-case-pains, .nt-case-gains, .nt-case-steps) b {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--nt-text);
}
html.theme-nt :is(.nt-case-pains, .nt-case-gains, .nt-case-steps) span {
  font-size: 15px;
  line-height: 1.55;
  color: var(--nt-text-secondary);
}
@media (min-width: 720px) {
  html.theme-nt .nt-case-pains { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
}

html.theme-nt .nt-case-how {
  display: grid;
  gap: 32px;
  align-items: start;
}
@media (min-width: 960px) {
  html.theme-nt .nt-case-how {
    grid-template-columns: minmax(0, 1fr) minmax(0, 520px);
    gap: clamp(48px, 6vw, 96px);
  }
}
html.theme-nt .nt-case-steps {
  display: grid;
  counter-reset: step;
}
html.theme-nt .nt-case-steps li {
  counter-increment: step;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 6px 12px;
  padding: 22px 0;
  border-top: 1px solid var(--nt-border);
}
html.theme-nt .nt-case-steps li:last-child { border-bottom: 1px solid var(--nt-border); }
html.theme-nt .nt-case-steps li::before {
  content: counter(step, decimal-leading-zero);
  grid-row: span 2;
  padding-top: 4px;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  color: var(--nt-text-tertiary);
}

html.theme-nt .nt-case-call {
  margin: 0;
  padding: 18px;
  border: 1px solid var(--nt-border-strong);
  border-radius: 20px;
  background: #fff;
}
html.theme-nt .nt-case-call-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
  font-size: 13px;
  font-weight: 500;
  color: var(--nt-text-secondary);
}
html.theme-nt .nt-case-call-orb {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: radial-gradient(circle at 32% 24%, #9aa3b8, #2a3550 42%, #070c1a);
}
html.theme-nt .nt-case-chat {
  display: grid;
  gap: 10px;
}
html.theme-nt .nt-case-chat li {
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-width: 86%;
}
html.theme-nt .nt-case-chat .is-agent { justify-self: end; align-items: flex-end; }
html.theme-nt .nt-case-chat .is-client { justify-self: start; align-items: flex-start; }
html.theme-nt .nt-case-who {
  padding: 0 4px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--nt-text-tertiary);
}
html.theme-nt .nt-case-chat p {
  margin: 0;
  padding: 10px 14px;
  font-size: 15px;
  line-height: 1.45;
}
html.theme-nt .nt-case-chat .is-agent p {
  border-radius: 14px 14px 4px 14px;
  background: var(--nt-text);
  color: #fff;
}
html.theme-nt .nt-case-chat .is-client p {
  border-radius: 14px 14px 14px 4px;
  background: var(--nt-bg-surface);
  color: var(--nt-text);
}
html.theme-nt .nt-case-result {
  margin-top: 18px;
  padding: 14px 16px 6px;
  border-radius: 14px;
  background: var(--nt-bg-surface);
}
html.theme-nt .nt-case-result-title {
  margin: 0 0 6px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--nt-text-tertiary);
}
html.theme-nt .nt-case-result dl { margin: 0; }
html.theme-nt .nt-case-result dl > div {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 12px;
  padding: 9px 0;
  border-top: 1px solid var(--nt-border);
}
html.theme-nt .nt-case-result dl > div:first-child { border-top: 0; }
html.theme-nt .nt-case-result dt {
  font-size: 13px;
  line-height: 1.45;
  color: var(--nt-text-secondary);
}
html.theme-nt .nt-case-result dd {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--nt-text);
}
html.theme-nt .nt-case-result dd:is(.is-ok, .is-warn)::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 8px;
  border-radius: 50%;
  vertical-align: 1px;
  background: var(--nt-ok);
}
html.theme-nt .nt-case-result dd.is-ok { color: #1f8f5a; }
html.theme-nt .nt-case-result dd.is-warn { color: #a85a00; }
html.theme-nt .nt-case-result dd.is-warn::before { background: var(--nt-warn); }

html.theme-nt .nt-case-gains {
  display: grid;
  gap: 12px;
}
html.theme-nt .nt-case-gains li {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 24px;
  border: 1px solid var(--nt-border-strong);
  border-radius: 16px;
  background: #fff;
}
html.theme-nt .nt-case-gains li::before {
  content: "";
  width: 28px;
  height: 28px;
  margin-bottom: 18px;
  border-radius: 50%;
  background: var(--nt-text) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 10.5l2.6 2.5L14 7.5'/%3E%3C/svg%3E") center / 22px no-repeat;
}
@media (min-width: 640px) {
  html.theme-nt .nt-case-gains { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
}
@media (min-width: 1100px) {
  html.theme-nt .nt-case-gains { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

html.theme-nt .nt-case-launch {
  display: grid;
  gap: 32px;
  align-items: start;
}
@media (min-width: 960px) {
  html.theme-nt .nt-case-launch {
    grid-template-columns: minmax(0, 1fr) minmax(0, 520px);
    gap: clamp(48px, 6vw, 96px);
  }
}
html.theme-nt .nt-case-needs { display: grid; }
html.theme-nt .nt-case-needs li {
  position: relative;
  padding: 14px 0 14px 34px;
  border-top: 1px solid var(--nt-border);
  font-size: 16px;
  line-height: 1.5;
  color: #3d3f45;
}
html.theme-nt .nt-case-needs li:last-child { border-bottom: 1px solid var(--nt-border); }
html.theme-nt .nt-case-needs li::before {
  content: "";
  position: absolute;
  top: 16px;
  left: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--nt-bg-active) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23151517' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 10.5l2.6 2.5L14 7.5'/%3E%3C/svg%3E") center / 20px no-repeat;
}
html.theme-nt .nt-case-note {
  margin: 20px 0 0;
  padding: 14px 16px;
  border-radius: 12px;
  background: var(--nt-bg-surface);
  font-size: 14px;
  line-height: 1.55;
  color: var(--nt-text-secondary);
}
html.theme-nt .nt-case-facts { display: grid; gap: 12px; }
html.theme-nt .nt-case-facts a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px 20px;
  padding: 22px 24px;
  border-radius: 16px;
  background: var(--nt-bg-surface);
  color: var(--nt-text);
  text-decoration: none;
  transition: background-color 0.15s ease;
}
html.theme-nt .nt-case-facts a:hover { background: var(--nt-bg-surface-hover); }
html.theme-nt .nt-case-facts b {
  font-family: var(--font-display);
  font-size: 30px;
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -0.03em;
}
html.theme-nt .nt-case-facts span {
  grid-column: 1;
  font-size: 14px;
  line-height: 1.5;
  color: var(--nt-text-secondary);
}
html.theme-nt .nt-case-facts svg {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  width: 16px;
  height: 16px;
  transition: transform 0.2s ease;
}
html.theme-nt .nt-case-facts a:hover svg { transform: translateX(3px); }

html.theme-nt .nt-case-more-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px 24px;
  margin-bottom: clamp(24px, 3vw, 36px);
}
html.theme-nt .nt-case-more {
  display: grid;
  gap: 16px;
}
@media (min-width: 640px) {
  html.theme-nt .nt-case-more { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 960px) {
  html.theme-nt .nt-case-more { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
html.theme-nt .nt-case-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 10px;
  border: 1px solid var(--nt-border-strong);
  border-radius: 16px;
  background: #fff;
  color: var(--nt-text);
  text-decoration: none;
  transition: border-color 0.25s, transform 0.25s;
}
html.theme-nt .nt-case-card:hover {
  border-color: var(--nt-text);
  transform: translateY(-2px);
}
html.theme-nt .nt-case-card-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 22px;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--nt-text);
}
html.theme-nt .nt-case-card-copy {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--nt-text-secondary);
}
@media (prefers-reduced-motion: reduce) {
  html.theme-nt .nt-case-card,
  html.theme-nt .nt-case-facts svg { transition: none; }
  html.theme-nt .nt-case-card:hover,
  html.theme-nt .nt-case-facts a:hover svg { transform: none; }
}

/* ---------------------------------------------------------------------------
   Service pages: /inbox, /login and /signup stub, 404
   --------------------------------------------------------------------------- */
html.theme-nt .nt-service .nt-legal-hero { padding-bottom: clamp(32px, 4vw, 48px); }
html.theme-nt .nt-service-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
html.theme-nt .nt-service-btn {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 20px;
  border: 1px solid var(--nt-border-strong);
  border-radius: 999px;
  background: #fff;
  color: var(--nt-text);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -0.01em;
  text-decoration: none;
  transition: background-color 0.18s ease, border-color 0.18s ease;
}
html.theme-nt .nt-service-btn:hover { background: var(--nt-bg-surface); }
html.theme-nt .nt-service-btn--primary { background: var(--nt-text); border-color: var(--nt-text); color: #fff; }
html.theme-nt .nt-service-btn--primary:hover { background: #2c2d33; }
html.theme-nt .nt-service-btn:focus-visible { outline: 2px solid #0d0d0d; outline-offset: 3px; }

html.theme-nt .nt-inbox {
  display: grid;
  gap: 12px;
  max-width: 760px;
  color: var(--nt-text-secondary);
  font-size: 15px;
}
html.theme-nt .nt-inbox-card {
  padding: 18px 20px;
  border: 1px solid var(--nt-border);
  border-radius: 14px;
  background: #fff;
  color: var(--nt-text);
}
html.theme-nt .nt-inbox-card header { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
html.theme-nt .nt-inbox-kind { font-weight: 600; letter-spacing: -0.01em; }
html.theme-nt .nt-inbox-card time { color: var(--nt-text-tertiary); font-size: 13px; font-variant-numeric: tabular-nums; }
html.theme-nt .nt-inbox-card dl { margin: 0; display: grid; gap: 6px; }
html.theme-nt .nt-inbox-field { display: grid; grid-template-columns: 110px 1fr; gap: 12px; }
html.theme-nt .nt-inbox-field dt { color: var(--nt-text-tertiary); font-size: 13px; }
html.theme-nt .nt-inbox-field dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 480px) {
  html.theme-nt .nt-inbox-field { grid-template-columns: 1fr; gap: 2px; }
}

/* ---------------------------------------------------------------------------
   Cabinet login (js/nt-login.js): email and password in a panel under
   «Войти». Fixed under the header link; inline in the mobile drawer.
   --------------------------------------------------------------------------- */
html.theme-nt .nt-login-pop {
  position: fixed;
  z-index: 1001;
  width: min(320px, calc(100vw - 32px));
  padding: 16px;
  border: 1px solid var(--nt-border, rgba(13, 13, 13, 0.08));
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(13, 13, 13, 0.14), 0 2px 8px rgba(13, 13, 13, 0.06);
  animation: nt-login-pop 0.18s cubic-bezier(0.2, 0.7, 0.2, 1);
  transform-origin: top right;
}
html.theme-nt .nt-login-pop[hidden] { display: none; }
html.theme-nt .nt-login-pop.is-inline {
  position: static;
  width: 100%;
  padding: 12px 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
@keyframes nt-login-pop { from { opacity: 0; transform: translateY(-6px) scale(0.98); } }
html.theme-nt a[data-nt-login][aria-expanded="true"] { background-color: var(--color-border); color: var(--nt-text); }
html.theme-nt .nt-login-form { display: flex; flex-direction: column; gap: 8px; width: 100%; margin: 0; }
html.theme-nt .nt-login-field { position: relative; width: 100%; }
html.theme-nt .nt-login-field[hidden] { display: none; }
html.theme-nt .nt-login-input {
  width: 100%;
  height: 46px;
  padding: 0 18px;
  border: 1px solid #d6d6d6;
  border-radius: 999px;
  background: #fff;
  color: #0d0d0d;
  font: inherit;
  font-size: 15px;
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
}
html.theme-nt .nt-login-field--secret .nt-login-input { padding-right: 48px; }
html.theme-nt .nt-login-input::placeholder { color: #8a8a8a; }
html.theme-nt .nt-login-input:focus { outline: none; border-color: #0d0d0d; box-shadow: 0 0 0 4px rgba(13, 13, 13, 0.06); }
html.theme-nt .nt-login-input.is-invalid { border-color: #d93025; box-shadow: 0 0 0 4px rgba(217, 48, 37, 0.08); }
html.theme-nt .nt-login-eye {
  position: absolute;
  top: 50%;
  right: 5px;
  transform: translateY(-50%);
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #8a8a8a;
  cursor: pointer;
}
html.theme-nt .nt-login-eye:hover,
html.theme-nt .nt-login-eye.is-on { color: #0d0d0d; }
html.theme-nt .nt-login-error {
  margin: 0;
  padding: 0 18px;
  color: #c62828;
  font-size: 13px;
  line-height: 1.4;
  text-align: left;
}
html.theme-nt .nt-login-error.is-note { color: var(--color-text-secondary); }
html.theme-nt .nt-login-submit {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 46px;
  margin-top: 4px;
  overflow: hidden;
  border: 0;
  border-radius: 999px;
  background: #141820;
  color: #fff;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
}
html.theme-nt .nt-login-orb {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 560px;
  height: 560px;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
html.theme-nt .nt-login-orb-canvas { display: block; width: 100% !important; height: 100% !important; }
html.theme-nt .nt-login-submit-label { position: relative; z-index: 1; }
html.theme-nt .nt-login-submit:disabled { opacity: 0.55; cursor: default; }
html.theme-nt .nt-login-submit:focus-visible { outline: 2px solid #0d0d0d; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  html.theme-nt .nt-login-pop { animation: none; }
}
