/* ============================================================
     AI Intent Advertising lander — DRAFT for review
     Rides the nn-landing kit (page-net30-landing.php conventions).
     Tokens mirror net30-landing.css so the port to page-ai-ads.php
     is mechanical. Delta components carry the .nnai- prefix.
     ============================================================ */
  @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

  /* The Fair theme pads .edgtf-content; every sibling lander strips it so the
     hero can sit flush. Without this the page sits lower than /net-30/. */
  .edgtf-content .nn-landing { margin: 0; padding: 0; }
  .nn-landing { background: #ffffff; }

  .nn-landing {
    --nn-primary: oklch(60% 0.18 254);
    --nn-primary-hex: #4b6cf7;
    --nn-primary-deep: oklch(45% 0.17 254);
    --nn-primary-glow: oklch(70% 0.16 254);
    --nn-primary-10: rgba(75,108,247,0.1);
    --nn-fg: #1e1e2e;
    --nn-muted: #59616e;
    --nn-bg: #fff;
    --nn-bg-alt: #f8f9ff;
    --nn-bg-accent: #eef2ff;
    --nn-border: #e8eaf2;
    --nn-dark: #0f1117;
    --nn-radius-sm: 8px; --nn-radius-md: 12px; --nn-radius-lg: 16px;
    --nn-radius-xl: 20px; --nn-radius-2xl: 24px;
    --nn-shadow-md: 0 4px 12px rgba(0,0,0,.1), 0 2px 4px rgba(0,0,0,.06);
    --nn-shadow-lg: 0 10px 30px rgba(0,0,0,.12), 0 4px 8px rgba(0,0,0,.06);
    --nn-shadow-primary: 0 20px 60px -20px rgba(75,108,247,.35);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    color: var(--nn-fg);
    background: var(--nn-bg);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
  }
  .nn-landing * { box-sizing: border-box; }

  .nn-wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
  .nn-section { padding: 96px 0; }
  .nn-section--alt { background: var(--nn-bg-alt); }
  .nn-section--dark { background: var(--nn-dark); color: #fff; }
  .nn-center { text-align: center; }

  .nn-eyebrow { display: inline-block; font-size: 12px; font-weight: 600; letter-spacing: .12em;
    text-transform: uppercase; color: var(--nn-primary-hex); margin-bottom: 12px; }
  .nn-eyebrow--light { color: #8fa2ff; }
  .nn-heading { font-family: "Segoe UI", system-ui, sans-serif; font-size: clamp(1.875rem, 4vw, 3rem);
    font-weight: 700; line-height: 1.12; letter-spacing: -.025em; margin: 0 0 16px; text-wrap: balance; }
  .nn-heading--hero { font-size: clamp(2.5rem, 5.5vw, 4rem); margin-bottom: 20px; }
  .nn-heading--xl { font-size: clamp(2.5rem, 5vw, 3.75rem); }
  .nn-heading--light { color: #fff; }
  .nn-dot { color: var(--nn-primary-hex); }
  .nn-sub { font-size: 18px; color: var(--nn-muted); margin: 0 0 32px; max-width: 62ch; }
  .nn-center .nn-sub { margin-left: auto; margin-right: auto; }
  .nn-sub--light { color: rgba(255,255,255,.72); }

  .nn-btn { display: inline-flex; align-items: center; gap: 8px; padding: 14px 28px; font-weight: 600;
    font-size: 16px; border-radius: var(--nn-radius-md); border: none; line-height: 1;
    text-decoration: none; cursor: pointer; transition: all .2s ease; }
  .nn-btn--primary { background: var(--nn-primary-hex); background: var(--nn-primary); color: #fff;
    box-shadow: var(--nn-shadow-md); }
  .nn-btn--primary:hover { filter: brightness(1.08); transform: translateY(-1px); box-shadow: var(--nn-shadow-lg); }
  .nn-btn--ghost { background: #fff; color: var(--nn-fg); border: 1.5px solid var(--nn-border); }
  .nn-btn--ghost:hover { background: #eef4fd; border-color: rgba(25,128,232,.3); color: #1980e8; }

  /* ---------- HERO ---------- */
  .nn-hero { padding: 110px 0 60px; overflow: hidden;
    background: #ffffff radial-gradient(ellipse at top right, rgba(75,108,247,.15), transparent 60%); }
  .nn-hero__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
  .nn-hero__badge { display: inline-flex; align-items: center; gap: 6px; line-height: 1.3;
    background: rgba(25,128,232,0.1); color: #1980e8; font-size: 12px; font-weight: 700;
    letter-spacing: .05em; text-transform: uppercase; padding: 5px 10px; border-radius: 100px;
    margin-bottom: 24px; border: 1px solid rgba(25,128,232,.22); }
  .nn-hero__ctas { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 28px; }
  .nn-hero__trust { display: flex; gap: 22px; flex-wrap: wrap; font-size: 14px; color: var(--nn-muted); }
  .nn-hero__trust span::before { content: "✓"; color: var(--nn-primary-hex); font-weight: 700; margin-right: 7px; }

  /* Stylized, unbranded AI-chat visual. Illustration only: no platform marks. */
  .nnai-chat { background: #fff; border: 1px solid var(--nn-border); border-radius: var(--nn-radius-xl);
    box-shadow: var(--nn-shadow-lg); padding: 22px 22px 18px; max-width: 500px; margin-left: auto; }
  .nnai-chat__bar { display: flex; gap: 6px; margin-bottom: 18px; }
  .nnai-chat__bar i { width: 9px; height: 9px; border-radius: 50%; background: var(--nn-border); }
  .nnai-chat__q { background: var(--nn-bg-accent); color: var(--nn-fg); font-size: 14px; font-weight: 500;
    padding: 12px 16px; border-radius: 14px 14px 4px 14px; width: fit-content; max-width: 85%;
    margin-left: auto; margin-bottom: 14px; min-height: 1.5em; }
  .nnai-chat__a { font-size: 13.5px; color: var(--nn-muted); padding: 2px 4px 14px; }
  .nnai-chat__a p { margin: 0 0 8px; }
  .nnai-chat__a .nnai-skeleton { display: block; height: 8px; border-radius: 4px; background: #edeff6; margin-top: 8px; }
  .nnai-chat__a .nnai-skeleton.w2 { width: 72%; }
  .nnai-ad { border: 1px solid #e3e6ee; background: #fff; border-radius: 14px;
    display: flex; align-items: stretch; overflow: hidden;
    box-shadow: 0 1px 4px rgba(16,23,39,.06); }
  .nnai-ad__img { flex: 0 0 138px; min-height: 138px; background: #dfe6f5 center / cover no-repeat; }
  .nnai-ad__body { flex: 1 1 auto; min-width: 0; padding: 12px 14px; display: flex;
    flex-direction: column; justify-content: center; gap: 3px; }
  .nnai-photo-img { width: 100%; display: block; border-radius: var(--nn-radius-lg);
    object-fit: cover; aspect-ratio: 4 / 3; height: auto; }
  .nnai-photo-img--tall { margin-bottom: 24px; }

  .nnai-callout { border-left: 3px solid var(--nn-primary-hex); background: #fbfcff;
    border-radius: 0 var(--nn-radius-sm) var(--nn-radius-sm) 0; padding: 14px 18px;
    font-size: 15px; margin-top: 24px; }
  .nnai-lane-note { text-align: center; color: var(--nn-muted); font-size: 15px;
    max-width: 72ch; margin: 28px auto 0; }
  .nn-features__grid.nn-features__grid--four { grid-template-columns: repeat(2, 1fr); max-width: 920px;
    margin-left: auto; margin-right: auto; }
  .nnai-proof-slot { border: 1.5px dashed rgba(255,255,255,.35); border-radius: var(--nn-radius-lg);
    color: rgba(255,255,255,.65); font-size: 13.5px; padding: 28px; max-width: 560px; margin: 8px auto 0; }
  .nnai-fit-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 48px; }
  .nnai-fit-h { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
    margin: 0 0 16px; }
  .nnai-fit-h--good { color: #1f7a3d; }
  .nnai-fit-h--not { color: #b04a4a; }
  .nnai-fit-list { display: grid; gap: 12px; }
  .nn-req-item--not::before { content: "\2715"; color: #b04a4a; }
  .nnai-price-micro { text-align: center; font-size: 13.5px; color: var(--nn-muted); margin: 12px 0 0; }
  .nn-btn:focus-visible, .nn-faq__question:focus-visible {
    outline: 3px solid rgba(75,108,247,.55); outline-offset: 2px; }
  @media (max-width: 768px) {
    .nn-features__grid.nn-features__grid--four, .nnai-fit-cols { grid-template-columns: 1fr !important; }
  }
  .nnai-ad__head { display: flex; align-items: center; gap: 7px; }
  .nnai-ad__favicon { flex: 0 0 auto; width: 16px; height: 16px; border-radius: 4px; background: var(--nn-primary-hex);
    color: #fff; font-size: 9px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
  .nnai-ad__brand { font-size: 12.5px; font-weight: 600; color: #3f4756; overflow: hidden;
    text-overflow: ellipsis; white-space: nowrap; }
  .nnai-ad__pill { flex: 0 0 auto; font-size: 10.5px; font-weight: 600; color: #5a6270;
    background: #eef0f4; padding: 1px 8px; border-radius: 100px; }
  .nnai-ad__menu { margin-left: auto; color: #9aa1b1; font-size: 15px; line-height: 1; }
  .nnai-ad__title { font-size: 15.5px; font-weight: 700; color: var(--nn-fg); }
  .nnai-ad__desc { font-size: 13.5px; color: var(--nn-muted); }
  .nnai-chat__note { text-align: center; font-size: 11.5px; color: #9aa1b1; margin-top: 14px; }

  /* Hero animation states (JS-driven; reduced-motion shows the static scene) */
  .nnai-chat__stage { min-height: 300px; }
  .nnai-caret { display: inline-block; width: 2px; height: 1em; background: var(--nn-fg);
    vertical-align: text-bottom; margin-left: 2px; animation: nnai-blink 0.9s steps(1) infinite; }
  @keyframes nnai-blink { 50% { opacity: 0; } }
  .nnai-anim .nnai-chat__q, .nnai-anim .nnai-chat__a, .nnai-anim .nnai-ad { opacity: 0; }
  .nnai-anim .nnai-chat__q { transition: opacity .3s ease; }
  .nnai-anim .nnai-chat__a { transition: opacity .5s ease; }
  .nnai-anim .nnai-ad { transform: translateY(12px); transition: opacity .5s ease, transform .5s ease; }
  .nnai-anim .nnai-on { opacity: 1; transform: none; }
  .nnai-chat.nnai-fadeout .nnai-chat__stage { opacity: 0; transition: opacity .4s ease; }
  /* During the handover the elements must SNAP to hidden. Letting them ease out
     while the stage eases back in shows the next ad as a ghost for ~0.4s. */
  .nnai-chat.nnai-instant .nnai-chat__q,
  .nnai-chat.nnai-instant .nnai-chat__a,
  .nnai-chat.nnai-instant .nnai-ad { transition: none !important; }
  .nnai-chat .nnai-chat__stage { opacity: 1; transition: opacity .4s ease; }
  @media (prefers-reduced-motion: reduce) {
    .nnai-anim .nnai-chat__q, .nnai-anim .nnai-chat__a, .nnai-anim .nnai-ad { opacity: 1; transform: none; }
    .nnai-caret { display: none; }
  }

  /* ---------- photo slots (draft placeholders; real shots picked at port time) ---------- */
  .nnai-photo { border: 1.5px dashed rgba(75,108,247,.4); background: var(--nn-bg-accent);
    border-radius: var(--nn-radius-lg); display: flex; align-items: center; justify-content: center;
    text-align: center; color: var(--nn-muted); font-size: 12.5px; padding: 16px; line-height: 1.5; }
  .nnai-photo--tall { aspect-ratio: 4 / 3; margin-bottom: 24px; }
  .nnai-photo-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
    max-width: 860px; margin: 40px auto 0; }
  .nnai-photo-strip .nnai-photo { aspect-ratio: 4 / 3; }
  @media (max-width: 768px) { .nnai-photo-strip { grid-template-columns: 1fr; } }

  /* ---------- ROI ---------- */
  .nnai-roi-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 48px; }
  .nnai-roi-stat { background: #fff; border: 1px solid var(--nn-border); border-radius: var(--nn-radius-lg);
    padding: 28px; text-align: center; }
  .nnai-roi-stat .n { font-family: "Segoe UI", system-ui, sans-serif; font-size: clamp(2rem, 3.5vw, 2.75rem);
    font-weight: 800; letter-spacing: -.02em; color: var(--nn-primary-hex); line-height: 1.1;
    font-variant-numeric: tabular-nums; }
  .nnai-roi-stat .l { font-weight: 600; margin-top: 6px; }
  .nnai-roi-stat .d { font-size: 14.5px; color: var(--nn-muted); margin-top: 6px; }
  .nnai-roi-caveat { text-align: center; font-size: 13.5px; color: var(--nn-muted); margin: 20px auto 0;
    max-width: 70ch; }
  .nnai-roi-qa { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 40px; }
  .nnai-roi-qa .nn-feature-card h3 { font-size: 17px; }
  @media (max-width: 1024px) {
    .nnai-roi-strip, .nnai-roi-qa { grid-template-columns: 1fr; }
  }

  /* ---------- explainer timeline ---------- */
  .nn-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
  .nn-timeline { list-style: none; margin: 28px 0 0; padding: 0; display: grid; gap: 20px; }
  .nn-timeline li { display: flex; gap: 16px; align-items: flex-start; }
  .nn-timeline__num { flex: 0 0 34px; height: 34px; border-radius: 50%; background: var(--nn-primary-10);
    color: var(--nn-primary-hex); font-weight: 700; font-size: 15px; display: inline-flex;
    align-items: center; justify-content: center; }
  .nn-timeline strong { display: block; margin-bottom: 2px; }
  .nn-timeline p { margin: 0; color: var(--nn-muted); font-size: 15.5px; }

  .nn-pro-tip { background: var(--nn-primary-hex); background: var(--nn-primary);
    border-radius: var(--nn-radius-xl); padding: 28px 36px; color: #fff; margin-top: 56px;
    display: flex; gap: 28px; align-items: flex-start; }
  .nn-pro-tip__icon { flex: 0 0 48px; height: 48px; border-radius: 12px; background: rgba(255,255,255,.2);
    display: inline-flex; align-items: center; justify-content: center; }
  .nn-pro-tip__eyebrow { font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
    opacity: .75; margin-bottom: 6px; }
  .nn-pro-tip__title { font-size: 19px; font-weight: 700; margin-bottom: 6px; }
  .nn-pro-tip__text { margin: 0; color: rgba(255,255,255,.85); font-size: 15.5px; max-width: 75ch; }

  /* ---------- two lanes ---------- */
  .nnai-lanes { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 48px; }
  .nnai-lane { background: #fff; border: 1px solid var(--nn-border); border-radius: var(--nn-radius-lg);
    padding: 32px; }
  .nnai-lane--paid { border-color: rgba(75,108,247,.4); box-shadow: var(--nn-shadow-primary); }
  .nnai-lane__tag { display: inline-block; font-size: 10.5px; font-weight: 700; letter-spacing: .1em;
    text-transform: uppercase; padding: 4px 10px; border-radius: 100px; margin-bottom: 14px; }
  .nnai-lane--earned .nnai-lane__tag { background: #eef7f0; color: #1f7a3d; }
  .nnai-lane--paid .nnai-lane__tag { background: var(--nn-primary-10); color: var(--nn-primary-hex); }
  .nnai-lane h3 { font-size: 21px; margin: 0 0 8px; letter-spacing: -.01em; }
  .nnai-lane p { color: var(--nn-muted); font-size: 15.5px; margin: 0 0 16px; }
  .nnai-lane ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; font-size: 15px; }
  .nnai-lane li::before { content: "✓"; color: var(--nn-primary-hex); font-weight: 700; margin-right: 8px; }
  .nnai-lane--earned li::before { color: #1f7a3d; }

  /* ---------- feature cards ---------- */
  .nn-features__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 48px; }
  .nn-feature-card { background: #fff; border: 1px solid var(--nn-border); border-radius: var(--nn-radius-lg);
    padding: 28px; }
  .nn-feature-card__icon { width: 44px; height: 44px; border-radius: 12px; background: var(--nn-primary-10);
    color: var(--nn-primary-hex); display: inline-flex; align-items: center; justify-content: center;
    margin-bottom: 16px; }
  .nn-feature-card h3 { font-size: 17px; margin: 0 0 8px; }
  .nn-feature-card p { margin: 0; color: var(--nn-muted); font-size: 15.5px; line-height: 1.55; }

  /* ---------- mid CTA ---------- */
  .nnai-midcta { background: var(--nn-bg-accent); padding: 64px 0; text-align: center; }
  .nnai-midcta h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 700; letter-spacing: -.02em;
    margin: 0 0 24px; }
  .nnai-midcta__note { font-size: 14px; color: var(--nn-muted); margin: 16px 0 0; }

  /* ---------- process ---------- */
  .nnai-process { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 48px; }
  .nn-process-card { position: relative; background: #fff; border: 1px solid var(--nn-border);
    border-radius: var(--nn-radius-lg); padding: 32px 28px; overflow: hidden; }
  .nn-process-card__ghost { position: absolute; right: 12px; top: -14px; font-size: 96px; font-weight: 800;
    color: var(--nn-bg-accent); line-height: 1; user-select: none; }
  .nn-process-card h3 { position: relative; font-size: 18px; margin: 0 0 10px; }
  .nn-process-card p { position: relative; margin: 0; color: var(--nn-muted); font-size: 15.5px; line-height: 1.55; }
  .nn-process-card__phase { position: relative; display: inline-block; font-size: 11px; font-weight: 700;
    letter-spacing: .1em; text-transform: uppercase; color: var(--nn-primary-hex); margin-bottom: 10px; }

  /* ---------- pricing ---------- */
  .nnai-price-card { background: #fff; border: 1.5px solid rgba(75,108,247,.4); border-radius: var(--nn-radius-2xl);
    box-shadow: var(--nn-shadow-primary); max-width: 720px; margin: 48px auto 0; padding: 44px 48px; }
  .nnai-price-rows { display: grid; gap: 0; margin: 8px 0 24px; }
  .nnai-price-row { display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
    padding: 16px 0; border-bottom: 1px solid var(--nn-border); }
  .nnai-price-row:last-child { border-bottom: none; }
  .nnai-price-row .k { font-weight: 600; }
  .nnai-price-row .k small { display: block; font-weight: 400; color: var(--nn-muted); font-size: 13.5px; }
  .nnai-price-row .v { font-family: "Segoe UI", system-ui, sans-serif; font-weight: 700; font-size: 22px;
    white-space: nowrap; font-variant-numeric: tabular-nums; }
  .nnai-price-row .v small { font-weight: 500; font-size: 13px; color: var(--nn-muted); }
  .nnai-price-notes { display: grid; gap: 10px; margin: 0 0 28px; padding: 0; list-style: none;
    font-size: 14px; color: var(--nn-muted); }
  .nnai-price-notes li { padding-left: 22px; position: relative; }
  .nnai-price-notes li::before { content: ""; position: absolute; left: 0; top: 7px; width: 8px; height: 8px;
    border-radius: 2px; background: var(--nn-primary-hex); }
  .nnai-price-card .nn-btn { width: 100%; justify-content: center; }
  .nnai-price-total { background: var(--nn-bg-accent); border-radius: var(--nn-radius-md);
    padding: 18px 22px; margin: 4px 0 20px; }
  .nnai-price-total .t { display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
    font-weight: 700; font-size: 17px; }
  .nnai-price-total .t .v { font-family: "Segoe UI", system-ui, sans-serif; font-size: 24px;
    font-variant-numeric: tabular-nums; white-space: nowrap; }
  .nnai-price-total .b { font-size: 13.5px; color: var(--nn-muted); margin-top: 6px; }
  .nnai-price-return { border-left: 3px solid var(--nn-primary-hex); background: #fbfcff;
    border-radius: 0 var(--nn-radius-sm) var(--nn-radius-sm) 0; padding: 14px 18px;
    font-size: 14px; color: var(--nn-fg); margin: 0 0 24px; }
  .nnai-price-return strong { color: var(--nn-primary-hex); }
  .nnai-gets { margin: 0 0 28px; }
  .nnai-gets h4 { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
    color: var(--nn-muted); margin: 0 0 12px; }
  .nnai-gets ul { margin: 0; padding: 0; list-style: none; display: grid;
    grid-template-columns: 1fr 1fr; gap: 8px 24px; font-size: 14px; }
  .nnai-gets li { padding-left: 20px; position: relative; color: var(--nn-fg); }
  .nnai-gets li::before { content: "✓"; position: absolute; left: 0; color: var(--nn-primary-hex);
    font-weight: 700; }
  @media (max-width: 768px) { .nnai-gets ul { grid-template-columns: 1fr; } }

  /* ---------- requirements ---------- */
  .nn-req-card { background: #fff; border: 1px solid var(--nn-border); border-radius: var(--nn-radius-xl);
    box-shadow: var(--nn-shadow-md); max-width: 880px; margin: 48px auto 0; padding: 44px 48px; }
  .nn-req-card__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 40px; }
  .nn-req-item { display: flex; gap: 12px; align-items: flex-start; font-size: 15.5px; }
  .nn-req-item::before { content: "✓"; flex: 0 0 auto; color: var(--nn-primary-hex); font-weight: 700; }

  /* ---------- FAQ ---------- */
  .nn-faq { max-width: 760px; margin: 48px auto 0; }
  .nn-faq__item { border: 1px solid var(--nn-border); border-radius: var(--nn-radius-md); background: #fff;
    margin-bottom: 12px; overflow: hidden; }
  .nn-faq__question { width: 100%; display: flex; justify-content: space-between; align-items: center;
    gap: 16px; padding: 18px 22px; background: none; border: none; font: inherit; font-weight: 600;
    font-size: 16px; color: var(--nn-fg); text-align: left; cursor: pointer; }
  .nn-faq__question svg { flex: 0 0 auto; transition: transform .35s ease; color: var(--nn-muted); }
  .nn-faq__answer { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
  .nn-faq__answer-inner { padding: 0 22px 20px; color: var(--nn-muted); font-size: 15.5px; }
  .nn-faq__answer-inner p { margin: 0 0 10px; }
  .nn-faq__answer-inner p:last-child { margin-bottom: 0; }
  .nn-faq__item.nn-open .nn-faq__answer { max-height: 600px; }
  .nn-faq__item.nn-open .nn-faq__question svg { transform: rotate(180deg); }

  /* ---------- final CTA ---------- */
  .nn-cta__inner { max-width: 680px; margin: 0 auto; }
  .nn-cta__trust { display: flex; gap: 26px; justify-content: center; flex-wrap: wrap; margin-top: 28px;
    font-size: 14px; color: rgba(255,255,255,.65); }

  /* ---------- reveal ---------- */
  .nn-reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
  .nn-reveal.nn-visible { opacity: 1; transform: none; }
  .nn-d1 { transition-delay: .1s; } .nn-d2 { transition-delay: .2s; }
  .nn-d3 { transition-delay: .3s; } .nn-d4 { transition-delay: .4s; } .nn-d5 { transition-delay: .5s; }
  @media (prefers-reduced-motion: reduce) {
    .nn-reveal { opacity: 1; transform: none; transition: none; }
  }

  /* ---------- responsive ---------- */
  @media (max-width: 1024px) {
    .nn-features__grid, .nnai-process { grid-template-columns: 1fr 1fr; }
  }
  /* Mobile: the creative must not crowd out the copy */
  @media (max-width: 620px) {
    .nnai-chat { padding: 16px 16px 14px; max-width: none; }
    .nnai-chat__q { font-size: 13.5px; padding: 10px 13px; }
    .nnai-chat__a { font-size: 12.5px; }
    .nnai-ad__img { flex: 0 0 104px; min-height: 104px; }
    .nnai-ad__body { padding: 10px 12px; }
    .nnai-ad__brand { font-size: 11.5px; }
    .nnai-ad__pill { font-size: 9.5px; padding: 1px 6px; }
    .nnai-ad__menu { display: none; }
    .nnai-ad__title { font-size: 14px; }
    .nnai-ad__desc { font-size: 12.5px; }
    .nnai-chat__note { font-size: 10.5px; }
  }
  @media (max-width: 400px) {
    .nnai-ad__img { flex: 0 0 88px; min-height: 88px; }
    .nnai-ad__title { font-size: 13.5px; }
    .nnai-ad__desc { font-size: 12px; }
  }

  @media (max-width: 768px) {
    .nn-section { padding: 64px 0; }
    .nn-hero { padding: 80px 0 48px; }
    .nn-hero__grid, .nn-cols, .nnai-lanes, .nn-req-card__grid { grid-template-columns: 1fr; }
    .nnai-chat { margin: 0 auto; }
    .nn-features__grid, .nnai-process { grid-template-columns: 1fr; }
    .nn-pro-tip { flex-direction: column; padding: 24px; }
    .nnai-price-card, .nn-req-card { padding: 32px 24px; }
    .nnai-price-row .v { font-size: 19px; }
  }
