/* The Forward Deployed site's own parts, on top of landing.css: header links and mobile menu, the floating connector,
   the landing's availability line and hero visual, and the About, Pricing, FAQ, Contact and Blog pages. No inline styles anywhere: the page security policy allows only these files. */

/* The landing's sign-in box links to the platform's sign-in page instead of posting a form. The portal's
   button inherits its font (".landing button { font: inherit; }"), so the link does too, to look the same. */
.lp-signin .login-options a.lp-btn { font-weight: inherit; }

/* ---------- header ---------- */
.lp-nav .lp-signin-link { opacity: 1; border: 1px solid var(--lp-ink); padding: 9px 12px; }
.lp-nav .lp-cta[aria-current=page] { background: #2a2f33; }
/* The header (fixed, with a backdrop blur) is the menu panel's containing block, so the panel hangs from its bottom edge. */
.lp-menu { display: none; position: static; }
.lp-menu summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px; font: 800 11px/1 var(--lp-mono); letter-spacing: .08em; text-transform: uppercase; padding: 10px 12px; border: 1px solid var(--lp-ink); background: #fff; }
.lp-menu summary::-webkit-details-marker { display: none; }
.lp-menu-icon, .lp-menu-icon::before, .lp-menu-icon::after { display: block; width: 14px; height: 2px; background: var(--lp-ink); position: relative; }
.lp-menu-icon::before, .lp-menu-icon::after { content: ""; position: absolute; left: 0; }
.lp-menu-icon::before { top: -5px; } .lp-menu-icon::after { top: 5px; }
.lp-menu[open] .lp-menu-icon { background: transparent; }
.lp-menu[open] .lp-menu-icon::before { top: 0; transform: rotate(45deg); }
.lp-menu[open] .lp-menu-icon::after { top: 0; transform: rotate(-45deg); }
.lp-menu-nav { position: absolute; top: 100%; left: 0; right: 0; height: calc(100vh - 66px); height: calc(100dvh - 66px); overflow-y: auto; background: var(--lp-paper); border-top: 1px solid var(--lp-line); padding: 12px 16px 40px; display: grid; align-content: start; }
.lp-menu-nav a { padding: 16px 2px; border-bottom: 1px solid var(--lp-line); font-size: 22px; font-weight: 900; letter-spacing: -.03em; }
.lp-menu-nav a[aria-current=page] { color: #006f75; }
.lp-menu-nav .lp-menu-cta { margin-top: 18px; border: 0; background: var(--lp-ink); color: #fff; text-align: center; font: 900 12px/1 Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; letter-spacing: .08em; text-transform: uppercase; padding: 18px; }
.lp-menu-nav .lp-menu-signin { border: 1px solid var(--lp-ink); margin-top: 10px; text-align: center; font: 900 12px/1 Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; letter-spacing: .08em; text-transform: uppercase; padding: 17px; }
.lp-nav a:focus-visible, .lp-menu summary:focus-visible, .lp-btn:focus-visible, .lp-float summary:focus-visible, .lp-float button:focus-visible { outline: 3px solid var(--lp-cyan); outline-offset: 2px; }
.lp-footer nav { row-gap: 10px; }

@media (max-width: 960px) {
  .lp-nav a:not(.lp-cta) { display: none; }
  .lp-top { gap: 10px; }
  .lp-nav { margin-left: auto; }
  .lp-menu { display: block; }
  .lp-nav .lp-cta { white-space: nowrap; }
}
@media (max-width: 480px) {
  .lp-top { gap: 8px; }
  .lp-brand { font-size: 19px; gap: 7px; }
  .lp-brand img { width: 28px; height: 28px; }
  .lp-nav .lp-cta { padding: 9px 10px; font-size: 10px; letter-spacing: .06em; }
  .lp-menu summary { padding: 9px 10px; }
  .lp-menu-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* ---------- the floating connector ---------- */
.lp-float { position: fixed; top: 78px; right: 16px; z-index: 9; max-width: calc(100vw - 32px); font-size: 13px; }
.lp-float summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px; margin-left: auto; width: fit-content; padding: 8px 12px; background: var(--lp-ink); color: #fff; font: 800 10px/1 var(--lp-mono); letter-spacing: .1em; text-transform: uppercase; box-shadow: 0 6px 24px rgba(10, 13, 15, .18); }
.lp-float summary::-webkit-details-marker { display: none; }
.lp-float summary::after { content: "+"; font-size: 13px; line-height: 1; margin-left: 2px; }
.lp-float[open] summary::after { content: "–"; }
.lp-float-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--lp-green); box-shadow: 0 0 0 3px rgba(67, 194, 75, .25); }
.lp-float-body { margin-top: 6px; background: #fff; border: 1px solid var(--lp-ink); box-shadow: 0 10px 30px rgba(10, 13, 15, .16); }
.lp-float-row { display: flex; align-items: stretch; }
.lp-float-row code { flex: 1; min-width: 0; padding: 9px 10px; font: 600 12px/1.3 var(--lp-mono); overflow-wrap: anywhere; }
.lp-float-copy { border: 0; background: var(--lp-ink); color: #fff; padding: 0 12px; font: 800 10px/1 var(--lp-mono); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.lp-float-hide { border: 0; border-left: 1px solid var(--lp-line); background: #fff; color: #555; padding: 0 11px; font-size: 16px; line-height: 1; cursor: pointer; }
.lp-float-hide[hidden] { display: none; }
.st-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.lp-float[hidden] { display: none; }
@media (max-width: 760px) {
  /* compact: a small pill at the bottom right, above the content's edge */
  .lp-float { top: auto; bottom: 14px; right: 12px; }
  .lp-float[open] { left: 12px; }
  .lp-float-body { width: auto; }
  .lp-float { display: flex; flex-direction: column-reverse; }
  .lp-float-body { margin: 0 0 6px; }
}

/* ---------- landing: availability line and hero ---------- */
.st-avail { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin: 0 0 26px; padding: 9px 16px 9px 12px; background: var(--lp-cyan); color: var(--lp-ink); border-radius: 999px; font-size: 14px; line-height: 1.35; font-weight: 600; max-width: 100%; }
.st-avail b { font-weight: 900; }
.st-avail-dot { position: relative; width: 10px; height: 10px; border-radius: 50%; background: var(--lp-ink); flex: none; }
.st-avail-dot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: rgba(10, 13, 15, .45); animation: st-pulse 2.4s ease-out infinite; }
@keyframes st-pulse { 0% { transform: scale(1); opacity: .9; } 70%, 100% { transform: scale(2.8); opacity: 0; } }
.st-hero-top { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, .75fr); gap: clamp(28px, 4vw, 64px); align-items: center; }
.st-hero-top .tk { width: 100%; max-width: 420px; justify-self: end; }
.st-hero .lp-hero-sub { grid-template-columns: 1fr; gap: 22px; }
.st-hero .lp-actions { justify-content: flex-start; }
.st-hero h1 { margin-top: 18px; }

/* billable tokens, explained (the Pricing page) */
.st-price-points { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--lp-ink); }
.st-price-points li { padding: 20px 20px 6px 0; border-right: 1px solid var(--lp-line); min-width: 0; }
.st-price-points li + li { padding-left: 20px; }
.st-price-points li:last-child { border-right: 0; }
.st-price-points span { font: 800 11px/1 var(--lp-mono); letter-spacing: .14em; color: #666; }
.st-price-points h3 { font-size: 20px; letter-spacing: -.035em; line-height: 1.1; margin: 12px 0 8px; }
.st-price-points p { font-size: 15px; line-height: 1.5; color: #41423e; margin: 0; }

@media (max-width: 1100px) {
  .st-price-points { grid-template-columns: repeat(2, 1fr); }
  .st-price-points li:nth-child(2) { border-right: 0; }
  .st-price-points li:nth-child(3) { padding-left: 0; }
  .st-price-points li:nth-child(n+3) { border-top: 1px solid var(--lp-line); }
}
@media (max-width: 760px) {
  .st-avail { font-size: 13px; border-radius: 18px; }
  .st-hero-top { grid-template-columns: 1fr; gap: 26px; }
  .st-hero-top .tk { justify-self: start; width: min(62%, 240px); }
  .st-price-points { grid-template-columns: 1fr; }
  .st-price-points li, .st-price-points li + li { padding: 18px 0; border-right: 0; border-bottom: 1px solid var(--lp-line); border-top: 0; }
}
@media (prefers-reduced-motion: reduce) { .st-avail-dot::after { animation: none; opacity: 0; } }

/* ---------- inner pages ---------- */
.st-page-hero { padding-bottom: 46px; }
.st-page-hero h1 { max-width: 1100px; }
.st-lead { font-size: clamp(17px, 1.45vw, 21px); line-height: 1.45; color: #41423e; margin: 0; max-width: 820px; }
.st-lead a, .st-prose a, .st-faq-item a, .st-post-body a { text-decoration: underline; }
.st-actions-left { justify-content: flex-start; margin-top: 26px; }
.st-prose { max-width: 820px; }
.st-prose p { font-size: 17px; line-height: 1.6; color: #2c2e2b; margin: 0 0 14px; }
.st-cols { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--lp-ink); }
.st-cols > div { padding: 22px 22px 8px 0; border-right: 1px solid var(--lp-line); min-width: 0; }
.st-cols > div + div { padding-left: 22px; }
.st-cols > div:last-child { border-right: 0; }
.st-cols h3 { font-size: 20px; letter-spacing: -.035em; line-height: 1.1; margin: 0 0 10px; }
.st-cols p { font-size: 15px; line-height: 1.55; color: #41423e; margin: 0 0 10px; }
.st-cols ul { margin: 0; padding-left: 18px; font-size: 15px; line-height: 1.6; color: #41423e; }
.st-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border: 1px solid var(--lp-ink); background: #fff; }
.st-facts div { padding: 18px; border-right: 1px solid var(--lp-line); }
.st-facts div:last-child { border-right: 0; }
.st-facts dt { font: 800 10px/1.3 var(--lp-mono); letter-spacing: .12em; text-transform: uppercase; color: #666; margin-bottom: 8px; }
.st-facts dd { margin: 0; font-size: 16px; line-height: 1.45; font-weight: 700; }

/* pricing page */
.st-price-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.st-price-card { border: 1px solid var(--lp-ink); background: #fff; padding: 20px; display: flex; flex-direction: column; }
.st-price-card h3 { margin: 0 0 6px; font-size: 19px; letter-spacing: -.03em; line-height: 1.15; }
.st-price-card .st-price-what { margin: 0 0 14px; font-size: 14px; line-height: 1.5; color: #555; }
.st-price-card .st-price { margin: auto 0 0; font-size: 15px; line-height: 1.45; }
.st-price-card .st-price b { display: block; font-size: 26px; letter-spacing: -.04em; line-height: 1.05; margin-bottom: 4px; }
.st-price-card .st-price b small { font-size: 13px; letter-spacing: 0; font-weight: 700; color: #555; }
.st-note { margin: 22px 0 0; padding: 14px 16px; border-left: 4px solid var(--lp-yellow); background: #fffbe6; font-size: 15px; line-height: 1.5; max-width: 900px; }
.st-rules { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 5vw; }
.st-rules li { padding: 16px 0; border-bottom: 1px solid var(--lp-line); font-size: 16px; line-height: 1.5; }
.st-rules b { display: block; margin-bottom: 4px; }

/* FAQ */
.st-faq-group { display: grid; grid-template-columns: .7fr 1.3fr; gap: 5vw; padding: 34px 0; border-top: 1px solid var(--lp-ink); }
.st-faq-group h2 { margin: 0; font-size: clamp(22px, 2vw, 30px); letter-spacing: -.04em; line-height: 1.05; }
.st-faq-item { padding: 0 0 22px; }
.st-faq-item + .st-faq-item { border-top: 1px solid var(--lp-line); padding-top: 20px; }
.st-faq-item h3 { margin: 0 0 8px; font-size: 18px; letter-spacing: -.02em; line-height: 1.25; }
.st-faq-item p { margin: 0; font-size: 16px; line-height: 1.6; color: #2c2e2b; }

/* contact */
.st-contact { align-items: start; }
.st-contact .lp-end-copy p { font-size: 18px; line-height: 1.5; color: #41423e; }
.ct-form { display: grid; gap: 14px; margin: 0; }
.ct-form label { display: grid; gap: 6px; font: 800 11px/1.3 var(--lp-mono); letter-spacing: .12em; text-transform: uppercase; color: #555; }
.ct-form label small { font-weight: 600; letter-spacing: 0; text-transform: none; }
.ct-form input, .ct-form textarea, .ct-form select { width: 100%; border: 1px solid var(--lp-ink); border-radius: 0; background: #fff; color: var(--lp-ink); padding: 12px; font: 400 15px/1.4 Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; letter-spacing: 0; text-transform: none; }
.ct-form select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--lp-ink) 50%), linear-gradient(135deg, var(--lp-ink) 50%, transparent 50%); background-position: calc(100% - 18px) 55%, calc(100% - 13px) 55%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 36px; }
.ct-form textarea { resize: vertical; min-height: 150px; }
.ct-form input:focus, .ct-form textarea:focus, .ct-form select:focus { outline: 2px solid var(--lp-cyan); outline-offset: 1px; }
.ct-form .lp-btn { width: 100%; padding: 16px; font-size: 12px; }
.ct-form .lp-btn:disabled { opacity: .6; cursor: progress; }
.ct-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.ct-status { margin: 0; font-size: 14px; line-height: 1.5; min-height: 1.5em; }
.ct-status.is-error { color: #a3203c; }
.ct-status.is-sent { color: #1f6b33; }

/* blog */
.st-post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.st-post-card { border: 1px solid var(--lp-ink); background: #fff; display: flex; flex-direction: column; }
.st-post-card-media { aspect-ratio: 1200 / 630; background: var(--lp-ink); overflow: hidden; }
.st-post-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.st-post-card-body { padding: 18px; }
.st-post-card h2 { margin: 6px 0 8px; font-size: 20px; letter-spacing: -.03em; line-height: 1.15; }
.st-post-card p { margin: 0 0 10px; font-size: 14px; line-height: 1.5; color: #41423e; }
.st-post-meta { font: 700 10px/1.3 var(--lp-mono) !important; letter-spacing: .1em; text-transform: uppercase; color: #666 !important; }
.st-post-more { font: 800 11px/1 var(--lp-mono); letter-spacing: .08em; text-transform: uppercase; }
.st-post-body { max-width: 760px; margin: 0 auto; padding: 40px 16px 20px; font-size: 18px; line-height: 1.65; color: #1f2120; }
.st-post-body h2 { font-size: 28px; letter-spacing: -.035em; line-height: 1.15; margin: 38px 0 12px; }
.st-post-body h3 { font-size: 20px; letter-spacing: -.02em; margin: 26px 0 8px; }
.st-post-body p, .st-post-body li { margin: 0 0 14px; }
.st-post-cover img, .st-post-figure img { width: 100%; height: auto; display: block; }
.st-toc { border: 1px solid var(--lp-line); background: #fff; padding: 16px 18px; margin: 26px 0; font-size: 15px; }
.st-toc ol { margin: 8px 0 0; padding-left: 20px; }
.st-byline { margin: 14px 0 0; font-size: 14px; color: #555; }
.st-post-foot { max-width: 760px; margin: 0 auto 60px; padding: 0 16px; display: flex; gap: 10px; flex-wrap: wrap; }
.st-soon-links { padding-top: 0; }

@media (max-width: 1100px) {
  .st-cols, .st-price-grid, .st-post-grid { grid-template-columns: repeat(2, 1fr); }
  .st-cols > div:nth-child(2) { border-right: 0; }
  .st-cols > div:nth-child(3) { padding-left: 0; border-top: 1px solid var(--lp-line); }
  .st-facts { grid-template-columns: repeat(2, 1fr); }
  .st-facts div:nth-child(2) { border-right: 0; }
  .st-facts div:nth-child(-n+2) { border-bottom: 1px solid var(--lp-line); }
}
@media (max-width: 760px) {
  .st-cols, .st-price-grid, .st-post-grid, .st-faq-group, .st-rules, .st-facts { grid-template-columns: 1fr; }
  .st-cols > div, .st-cols > div + div { padding: 18px 0; border-right: 0; border-top: 0; border-bottom: 1px solid var(--lp-line); }
  .st-facts div { border-right: 0; border-bottom: 1px solid var(--lp-line); }
  .st-facts div:last-child { border-bottom: 0; }
  .st-faq-group { gap: 16px; padding: 26px 0; }
  .st-post-body { font-size: 17px; }
}

/* additions: four-column practices on About, the contact page's spacing and its no-script thank-you note */
.st-cols-4 { grid-template-columns: repeat(4, 1fr); }
.st-contact { padding-top: 130px; }
.ct-sent { display: none; margin-top: 16px !important; padding: 12px 14px; background: #e8f3ed; border-left: 4px solid var(--lp-green); font-size: 15px !important; }
.ct-sent:target { display: block; }
@media (max-width: 1100px) { .st-cols-4 > div:nth-child(3) { padding-left: 0; } .st-cols-4 > div:nth-child(4) { border-top: 1px solid var(--lp-line); } }
@media (max-width: 760px) { .st-contact { padding-top: 96px; } }

/* ---------- the new-age firm pages (landing, /services, /vision, /roadmap, /experts) ----------
   Same tokens, type and grid motif as the rest of the site. Every animation moves only opacity, translate or scale,
   so it runs off the main thread, and rests under prefers-reduced-motion. */

/* a status light: on duty (green, pulsing) or joining (a hollow ring) */
.aw-light { position: relative; display: inline-block; flex: none; width: 9px; height: 9px; border-radius: 50%; background: var(--lp-green); box-shadow: 0 0 0 3px rgba(67, 194, 75, .22); }
.aw-light::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--lp-green); animation: aw-ping 2.4s ease-out infinite; }
@keyframes aw-ping { 0% { transform: scale(1); opacity: .7; } 70%, 100% { transform: scale(2.8); opacity: 0; } }

/* hero */
.aw-hero h1 { font-size: clamp(27px, 3.43vw, 55px); line-height: .94; margin-bottom: 22px; max-width: 14.5em; }
.aw-hero h1 em, .st-page-hero h1 em { white-space: nowrap; }
.aw-hero .lp-hero-sub p { max-width: 760px; }
.aw-hero-vis { margin: 0; width: 100%; max-width: 440px; justify-self: end; }
.aw-hero-vis .tk { width: 100%; }
.aw-hero-vis figcaption { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 11px 14px; background: var(--lp-ink); color: var(--lp-paper); border-top: 1px solid rgba(242, 239, 230, .12); }
.aw-hero-vis figcaption b { font: 800 10px/1.3 var(--lp-mono); letter-spacing: .12em; text-transform: uppercase; }
.aw-hero-vis figcaption span:last-child { flex-basis: 100%; font-size: 13px; line-height: 1.4; color: #b6bdb9; }
.aw-pillars { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--lp-ink); }
.aw-pillars li { padding: 20px 22px 4px 0; border-right: 1px solid var(--lp-line); min-width: 0; }
.aw-pillars li + li { padding-left: 22px; }
.aw-pillars li:last-child { border-right: 0; }
.aw-pillars span { font: 800 11px/1 var(--lp-mono); letter-spacing: .14em; color: #666; }
.aw-pillars h3 { font-size: 22px; letter-spacing: -.04em; line-height: 1.05; margin: 12px 0 8px; }
.aw-pillars p { font-size: 15px; line-height: 1.5; color: #41423e; margin: 0; }

/* the nod: what waits, and the business that doesn't */
.aw-waits { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--lp-line); border: 1px solid var(--lp-line); }
.aw-waits li { background: var(--lp-paper); padding: 26px 24px; min-width: 0; position: relative; }
.aw-waits b { display: block; font-size: clamp(24px, 2.2vw, 34px); letter-spacing: -.05em; line-height: 1; margin-bottom: 12px; }
.aw-waits span:not(.aw-light) { display: block; font-size: 16px; line-height: 1.45; color: #41423e; }
.aw-waits .is-business { background: var(--lp-ink); color: #fff; }
.aw-waits .is-business span:not(.aw-light) { color: #b6bdb9; }
.aw-waits .is-business .aw-light { position: absolute; top: 18px; right: 18px; }
.aw-shift { margin-top: 56px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.aw-shift-big { margin: 0; font-size: clamp(22px, 2.66vw, 42px); font-weight: 900; letter-spacing: -.065em; word-spacing: .06em; line-height: .98; }
.aw-shift-big span { display: block; }
.aw-shift-big span + span { margin-top: .12em; }
.aw-shift-big mark { color: inherit; }
.aw-shift-note { margin: 20px 0 0; max-width: 480px; font-size: 18px; line-height: 1.45; color: #41423e; }

/* the stack collapsing into one layer */
.aw-collapse { position: relative; overflow: hidden; display: grid; gap: 8px; padding: 26px; background-color: var(--lp-ink); background-image: linear-gradient(rgba(242, 239, 230, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(242, 239, 230, .045) 1px, transparent 1px); background-size: 36px 36px; }
.aw-stack { display: grid; gap: 8px; }
.aw-stack span { --o: 0px; --d: 48px; display: flex; align-items: center; height: 40px; padding: 0 14px; min-width: 0; border: 1px solid rgba(242, 239, 230, .22); background: rgba(242, 239, 230, .06); color: #c9d0cc; font: 700 11px/1.2 var(--lp-mono); letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  translate: var(--o) 0; animation: aw-fall 9s cubic-bezier(.6, 0, .3, 1) infinite both; will-change: translate, opacity; }
.aw-stack span:nth-child(1) { --o: 0px; --d: 288px; animation-delay: .4s; width: 88%; }
.aw-stack span:nth-child(2) { --o: 16px; --d: 240px; animation-delay: .32s; width: 80%; }
.aw-stack span:nth-child(3) { --o: 4px; --d: 192px; animation-delay: .24s; width: 92%; }
.aw-stack span:nth-child(4) { --o: 24px; --d: 144px; animation-delay: .16s; width: 76%; }
.aw-stack span:nth-child(5) { --o: 8px; --d: 96px; animation-delay: .08s; width: 90%; }
.aw-stack span:nth-child(6) { --o: 30px; --d: 48px; animation-delay: 0s; width: 70%; }
.aw-one { position: relative; display: flex; align-items: center; gap: 10px; height: 52px; padding: 0 16px; background: var(--lp-cyan); color: var(--lp-ink); }
.aw-one b { font-size: 17px; letter-spacing: -.03em; }
.aw-one small { margin-left: auto; font: 800 10px/1 var(--lp-mono); letter-spacing: .12em; text-transform: uppercase; }
.aw-one .aw-light { background: var(--lp-ink); box-shadow: 0 0 0 3px rgba(10, 13, 15, .18); }
.aw-one .aw-light::after { background: var(--lp-ink); }
.aw-one::after { content: ""; position: absolute; inset: -5px; border: 2px solid var(--lp-cyan); opacity: 0; animation: aw-glow 9s ease-out infinite; }
@keyframes aw-fall {
  0% { opacity: 0; translate: var(--o) -10px; scale: 1; }
  6%, 34% { opacity: 1; translate: var(--o) 0; scale: 1; }
  52%, 100% { opacity: 0; translate: 0 var(--d); scale: .96 .25; }
}
@keyframes aw-glow { 0%, 44% { opacity: 0; scale: .98; } 54% { opacity: 1; scale: 1; } 80%, 100% { opacity: 0; scale: 1.05; } }

/* the private room's lock, in the journey's closing row */
.aw-room-lock { position: relative; display: inline-block; vertical-align: -1px; width: 12px; height: 10px; margin: 0 8px 0 0; background: var(--lp-yellow); }
.aw-room-lock::before { content: ""; position: absolute; left: 1px; bottom: 9px; width: 10px; height: 7px; border: 2px solid var(--lp-yellow); border-bottom: 0; border-radius: 5px 5px 0 0; box-sizing: border-box; }

/* ---------- /roadmap: four stages, from the work you ask for to the work that never stops ----------
   One progression, left to right (top to bottom on small screens): today's stage is solid and lit, the stages to
   come are dashed, and the destination is the dark card at the end. Each stage's strip shows how the work runs:
   once, on repeat, always, and for good. */
.rm-hero h1 { max-width: 15em; }
.rm-road { padding-top: 72px; }
.rm-stages { list-style: none; margin: 0; padding: 48px 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.rm-stage { position: relative; min-width: 0; display: flex; flex-direction: column; padding: 24px 22px 22px; border: 1px dashed rgba(10, 13, 15, .4); }
/* the path to the next stage: from this stage's node to the next one's */
.rm-stage:not(:last-child)::after { content: ""; position: absolute; top: -35px; left: 36px; right: -34px; height: 3px; background: repeating-linear-gradient(90deg, rgba(10, 13, 15, .45) 0 10px, transparent 10px 17px); }
.rm-node { position: absolute; z-index: 1; top: -48px; left: 22px; width: 28px; height: 28px; border-radius: 50%; border: 3px solid var(--lp-ink); background: var(--lp-paper); }
.rm-stage.is-now { background: #fff; border: 1px solid var(--lp-ink); }
.rm-stage.is-now .rm-node { background: var(--lp-cyan); }
.rm-stage.is-now .rm-node::after { content: ""; position: absolute; inset: -3px; border-radius: 50%; background: var(--lp-cyan); animation: aw-ping 2.4s ease-out infinite; }
.rm-stage.is-goal { background: var(--lp-ink); color: #fff; border: 1px solid var(--lp-ink); }
.rm-stage.is-goal .rm-node { top: -54px; left: 16px; width: 40px; height: 40px; background: var(--lp-ink); box-shadow: 0 0 0 5px var(--lp-paper), 0 0 0 8px var(--lp-cyan); }
.rm-stage.is-goal .rm-node::after { content: ""; position: absolute; inset: 9px; border-radius: 50%; background: var(--lp-cyan); }
.rm-tag { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0; font: 800 11px/1.2 var(--lp-mono); letter-spacing: .12em; text-transform: uppercase; }
.rm-no { color: #7a7d78; }
.rm-status { margin-left: auto; padding: 5px 7px; font-size: 9px; letter-spacing: .1em; border: 1px dashed #7a6400; color: #6b5800; }
.is-now .rm-status { border: 1px solid var(--lp-cyan); background: var(--lp-cyan); color: var(--lp-ink); }
.is-goal .rm-no { color: #9ca7a2; }
.is-goal .rm-status { border-color: var(--lp-yellow); color: var(--lp-yellow); }
.rm-stage h2 { margin: 18px 0 16px; font-size: clamp(30px, 2.9vw, 48px); font-weight: 900; letter-spacing: -.065em; word-spacing: .06em; line-height: .96; }
.rm-stage.is-goal h2 { font-size: clamp(26px, 2.3vw, 38px); color: var(--lp-cyan); }
.rm-sig { display: block; height: 12px; margin: 0 0 18px; background-color: rgba(10, 13, 15, .08); }
.rm-sig.is-once { background-image: linear-gradient(90deg, var(--lp-cyan) 0 18%, transparent 18%); }
.rm-sig.is-repeat { background-image: repeating-linear-gradient(90deg, var(--lp-ink) 0 9%, transparent 9% 25%); }
.rm-sig.is-always { background-color: var(--lp-ink); }
.rm-sig.is-for-good { background-color: var(--lp-cyan); box-shadow: 0 0 18px rgba(0, 194, 203, .55); }
.rm-what { margin: 0 0 20px; font-size: 16px; line-height: 1.5; color: #41423e; }
.is-goal .rm-what { color: #c9d0cc; }
.rm-eg { list-style: none; margin: auto 0 0; padding: 14px 0 0; border-top: 1px solid var(--lp-line); display: grid; gap: 7px; }
.rm-eg::before { content: "For example"; content: "For example" / ""; margin-bottom: 2px; font: 800 9px/1.2 var(--lp-mono); letter-spacing: .12em; text-transform: uppercase; color: #7a7d78; }
.rm-eg li { font-size: 15px; font-weight: 700; letter-spacing: -.01em; line-height: 1.35; }
.is-goal .rm-eg { border-top-color: rgba(255, 255, 255, .16); }
.is-goal .rm-eg::before { color: #9ca7a2; }
.rm-end { padding: 44px 4.5vw; border-bottom: 1px solid var(--lp-line); background: var(--lp-paper2); }
.rm-end p { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; font-size: clamp(22px, 2.4vw, 36px); font-weight: 900; letter-spacing: -.05em; line-height: 1.1; }
.rm-end a { text-decoration: underline; text-decoration-color: var(--lp-cyan); text-decoration-thickness: 4px; text-underline-offset: 6px; }
.rm-end a:hover { background: var(--lp-cyan); }
@media (max-width: 1000px) {
  .rm-road { padding-top: 40px; }
  .rm-stages { grid-template-columns: 1fr; gap: 18px; padding: 0 0 0 48px; }
  .rm-stage:not(:last-child)::after { top: 36px; bottom: -40px; left: -35px; right: auto; width: 3px; height: auto; background: repeating-linear-gradient(180deg, rgba(10, 13, 15, .45) 0 10px, transparent 10px 17px); }
  .rm-node { top: 22px; left: -48px; }
  .rm-stage.is-goal .rm-node { top: 16px; left: -54px; }
}
@media (prefers-reduced-motion: reduce) { .rm-stage.is-now .rm-node::after { animation: none; opacity: 0; } }

/* what you get done: one tile per team, linking to that team on /services */
.aw-out-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.aw-out { position: relative; min-width: 0; display: flex; flex-direction: column; padding: 22px 20px 20px; background: #fff; border: 1px solid var(--lp-line); border-top: 3px solid var(--lp-ink); transition: border-color .2s, translate .2s; }
.aw-out:hover { border-color: var(--lp-ink); translate: 0 -2px; }
.aw-out:focus-within { box-shadow: 0 0 0 3px var(--lp-cyan); }
.aw-out h3 { margin: 0 0 14px; font-size: clamp(22px, 1.9vw, 28px); letter-spacing: -.045em; line-height: 1.02; }
.aw-out h3 a::after { content: ""; position: absolute; inset: 0; }
.aw-out h3 a:focus-visible { outline: none; }
.aw-out-steps { list-style: none; margin: 0 0 18px; padding: 0; font-size: 15px; line-height: 1.5; color: #41423e; }
.aw-out-steps li { display: inline; }
.aw-out-steps li + li::before { content: " \2192  "; content: " \2192  " / ""; color: #00868c; font-weight: 800; }
.aw-out-go { margin-top: auto; font: 800 10px/1.3 var(--lp-mono); letter-spacing: .1em; text-transform: uppercase; text-decoration: underline; text-decoration-color: var(--lp-cyan); text-decoration-thickness: 2px; text-underline-offset: 4px; }

/* start */
.aw-start { list-style: none; margin: 28px 0 0; padding: 0; border-top: 1px solid var(--lp-ink); max-width: 640px; }
.aw-start li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 10px; padding: 16px 0; border-bottom: 1px solid var(--lp-line); }
.aw-start li > span { font: 800 11px/1 var(--lp-mono); letter-spacing: .14em; color: #666; padding-top: 6px; }
.aw-start b { display: block; font-size: 20px; letter-spacing: -.03em; line-height: 1.2; }
.lp-end-copy .aw-start p { margin: 4px 0 0; font-size: 15px; line-height: 1.5; color: #41423e; }
.aw-start .lp-copy { max-width: 440px; }
.lp-end-copy p.aw-private { margin: 20px 0 0; max-width: 640px; font-size: 15px; line-height: 1.5; color: #41423e; }
.aw-private a { font-weight: 700; white-space: nowrap; text-decoration: underline; text-decoration-color: var(--lp-cyan); text-decoration-thickness: 2px; text-underline-offset: 3px; }

/* inner pages: steps, controls and the video page */
.aw-flow { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.aw-flow-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.aw-flow li { min-width: 0; padding-top: 16px; border-top: 3px solid var(--lp-ink); }
.aw-flow span { font: 800 11px/1 var(--lp-mono); letter-spacing: .14em; color: #666; }
.aw-flow h3 { margin: 12px 0 8px; font-size: 21px; letter-spacing: -.04em; line-height: 1.08; }
.aw-flow p { margin: 0; font-size: 15px; line-height: 1.5; color: #41423e; }
.aw-control { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.aw-control li { min-width: 0; padding: 20px; background: #fff; border: 1px solid var(--lp-line); border-top: 3px solid var(--lp-cyan); }
.aw-control h3 { margin: 0 0 8px; font-size: 20px; letter-spacing: -.035em; line-height: 1.1; }
.aw-control p { margin: 0; font-size: 15px; line-height: 1.5; color: #41423e; }
.aw-player { margin: 34px 0 0; border: 1px solid var(--lp-ink); background: var(--lp-ink); max-width: 1280px; }
.aw-video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; background-color: #0d1113; background-image: radial-gradient(circle at 20% 25%, rgba(0, 194, 203, .22), transparent 32%), linear-gradient(rgba(242, 239, 230, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(242, 239, 230, .05) 1px, transparent 1px); background-size: auto, 42px 42px, 42px 42px; }
.aw-video p { color: #fff; padding: 20px; }
.aw-player figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 20px; padding: 12px 16px; color: #fff; }
.aw-player figcaption b { font-size: 17px; letter-spacing: -.02em; }
.aw-player figcaption span { font: 800 10px/1.4 var(--lp-mono); letter-spacing: .1em; text-transform: uppercase; color: #9ca7a2; }
.aw-lines { list-style: none; margin: 0; padding: 0; max-width: 1100px; }
.aw-lines li { padding: 14px 0; border-top: 1px solid var(--lp-line); font-size: clamp(22px, 2.24vw, 35px); font-weight: 900; letter-spacing: -.055em; word-spacing: .04em; line-height: 1.02; }
.aw-lines .is-quiet { font-size: clamp(18px, 1.7vw, 24px); font-weight: 600; letter-spacing: -.02em; line-height: 1.35; color: #41423e; }
.aw-lines .is-lit { margin-top: 8px; padding: 18px 20px; background: var(--lp-ink); color: #fff; border-top: 0; }
.aw-timeline { list-style: none; margin: 0; padding: 0; }
.aw-timeline > li { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 24px; padding: 22px 20px; border-top: 1px solid var(--lp-line); }
.aw-era { display: flex; align-items: center; gap: 10px; font: 800 13px/1.3 var(--lp-mono); letter-spacing: .06em; align-self: start; padding-top: 5px; }
.aw-era::before { content: ""; flex: none; width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--lp-ink); }
.aw-timeline h3 { margin: 0 0 6px; font-size: 24px; letter-spacing: -.04em; line-height: 1.08; }
.aw-timeline p { margin: 0; font-size: 16px; line-height: 1.5; color: #41423e; }
.aw-timeline .is-now { background: var(--lp-ink); color: #fff; border-top: 0; }
.aw-timeline .is-now .aw-era { color: var(--lp-cyan); }
.aw-timeline .is-now .aw-era::before { background: var(--lp-cyan); border-color: var(--lp-cyan); box-shadow: 0 0 0 4px rgba(0, 194, 203, .25); }
.aw-timeline .is-now p { color: #b6bdb9; }
.aw-quote { margin: 0 0 26px; max-width: 1150px; font-size: clamp(22px, 2.52vw, 41px); font-weight: 900; letter-spacing: -.06em; word-spacing: .05em; line-height: 1; }
.ct-note { margin-top: 0 !important; margin-bottom: 14px !important; font-size: 15px !important; }

@media (max-width: 1100px) {
  .aw-pillars, .aw-waits, .aw-control, .aw-out-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aw-pillars li:nth-child(2) { border-right: 0; }
  .aw-pillars li:nth-child(3) { padding-left: 0; }
  .aw-pillars li:nth-child(n+3) { border-top: 1px solid var(--lp-line); }
  .aw-flow { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 14px; }
  .aw-flow-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aw-shift { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .aw-hero-vis { justify-self: start; max-width: 300px; }
  .aw-pillars, .aw-waits, .aw-control, .aw-flow, .aw-flow-4, .aw-out-grid { grid-template-columns: 1fr; }
  .aw-pillars li, .aw-pillars li + li { padding: 18px 0; border-right: 0; border-top: 0; border-bottom: 1px solid var(--lp-line); }
  .aw-collapse { padding: 18px; }
  .aw-stack span { font-size: 10px; letter-spacing: .06em; padding: 0 10px; }
  .aw-stack span:nth-child(n) { --o: 0px; width: 100%; }
  .aw-timeline > li { grid-template-columns: 1fr; gap: 8px; padding: 18px 14px; }
  .aw-lines .is-lit { padding: 14px 16px; }
}
/* About's four practices: .st-cols-4 is declared after the shared column rules, so it needs its own breakpoints. */
@media (max-width: 1100px) { .st-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .st-cols-4 { grid-template-columns: 1fr; } .st-cols-4 > div:nth-child(n) { padding-left: 0; border-top: 0; } }
@media (prefers-reduced-motion: reduce) {
  .aw-light::after, .aw-one::after { animation: none; opacity: 0; }
  .aw-stack span { animation: none; opacity: .55; }
  .aw-out { transition: none; }
}

/* Hero: what the AI Workforce replaces, struck through, then the one line that replaces it. */
.aw-swap { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 4px 0 18px; padding: 14px 16px; border: 1px solid var(--lp-line); background: rgba(255, 255, 255, .45); }
.aw-swap ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.aw-swap li { font: 800 11px/1 var(--lp-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--lp-muted); padding: 7px 9px; border: 1px dashed var(--lp-line); }
.aw-swap s { text-decoration-thickness: 2px; text-decoration-color: var(--lp-orange); }
.aw-swap-arrow { font-size: 20px; font-weight: 900; }
.aw-swap p { margin: 0; font-size: 15px; }
.aw-swap p b { background: var(--lp-cyan); padding: 1px 5px; }
@media (max-width: 640px) { .aw-swap { padding: 12px; } .aw-swap-arrow { transform: rotate(90deg); } }

/* ---------- "Every token, put to work" (landing #journey) ----------
   The dark live panel, with the job's six stops as its tiles: a glowing token runs along the rail under them, and
   each tile lights up with its status chip as the token arrives. Without assets/journey.js, or with reduced motion,
   this is a static diagram: every tile lit, every vignette in its final state and the meters where the job ends. The
   script adds .is-live, marks each stop .is-wait, .is-on or .is-done, and sets data-step (0 to 6) for the meters.
   Vignettes animate in from their waiting state; their final state is the plain style, so a finished stop simply
   rests there. Only opacity, translate and scale move. */
.aw-journey { background: var(--lp-paper2); }
.aw-jr { --vis-h: 142px; position: relative; }
.aw-jr-os { margin-top: 0; }
.aw-jr-top-right { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px 16px; }
.aw-jr-tools { display: flex; gap: 6px; }
.aw-jr-tools[hidden] { display: none; }
.aw-jr-tools button { padding: 7px 10px; border: 1px solid rgba(255, 255, 255, .35); background: transparent; color: #fff; font: 800 9px/1 var(--lp-mono); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.aw-jr-tools button:hover { background: #fff; color: var(--lp-ink); }
.aw-jr-tools button:focus-visible, .aw-jr-stage:focus-visible { outline: 3px solid var(--lp-cyan); outline-offset: 4px; }
.aw-jr-stage { position: relative; margin-top: 22px; }
.aw-jr-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.aw-jr-step { position: relative; min-width: 0; display: flex; flex-direction: column; transition: opacity .5s; }
/* the rail under the tiles, from each stop's node to the next */
.aw-jr-step::before { content: ""; position: absolute; left: 8px; right: -8px; bottom: 7px; height: 2px; background: rgba(255, 255, 255, .55); }
.aw-jr-step:last-child::before { display: none; }
.aw-jr-tile { flex: 1; display: flex; flex-direction: column; min-width: 0; padding: 14px 12px 12px; border: 1px solid rgba(255, 255, 255, .13); background: rgba(255, 255, 255, .035); transition: border-color .4s, box-shadow .4s; }
.aw-jr-node { position: relative; z-index: 1; flex: none; width: 16px; height: 16px; margin: 16px 0 0; border-radius: 50%; border: 2px solid #fff; background: var(--lp-cyan); transition: background-color .4s; }
.aw-jr-no { font: 800 9px/1 var(--lp-mono); letter-spacing: .12em; color: #9fa8a3; }
.aw-jr-step h3 { margin: 14px 0 6px; font-size: 16px; letter-spacing: -.03em; line-height: 1.12; color: #fff; }
.aw-jr-cap { margin: 0 0 14px; font-size: 12px; line-height: 1.45; color: #b6bdb9; }
.aw-jr-facts > span:not(.aw-jr-sep) { display: block; position: relative; padding-left: 16px; }
.aw-jr-facts > span:not(.aw-jr-sep) + .aw-jr-sep + span { margin-top: 2px; }
.aw-jr-facts > span:not(.aw-jr-sep)::before { content: ""; position: absolute; left: 1px; top: .42em; width: 8px; height: 4px; border-left: 2px solid var(--lp-green); border-bottom: 2px solid var(--lp-green); rotate: -45deg; }
.aw-jr-sep { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* the status chip, in the live panel's task style */
.aw-jr-chip { margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; padding: 6px 8px; background: #080b0d; border: 1px solid rgba(255, 255, 255, .14); font: 700 8px/1.2 var(--lp-mono); letter-spacing: .06em; text-transform: uppercase; color: #c9d0cc; transition: border-color .4s; }
.aw-jr-chip::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--lp-green); }
.aw-jr-token { display: none; position: absolute; left: 0; top: 0; z-index: 2; width: 16px; height: 16px; background: var(--lp-cyan); box-shadow: 0 0 0 4px rgba(0, 194, 203, .22), 0 0 22px rgba(0, 194, 203, .9); opacity: 0; pointer-events: none; transition: transform .6s cubic-bezier(.6, 0, .3, 1), opacity .3s; will-change: transform; }
.aw-jr-token.is-jump { transition: opacity .3s; }
/* under the tiles: who can be in the room, and where it runs */
.aw-jr-room { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 10px 24px; margin-top: 20px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .14); }
.aw-jr-room p { margin: 0; max-width: 860px; font-size: 14px; line-height: 1.5; color: #c9d0cc; }
.aw-jr-room b { color: #fff; }
.aw-jr-room a { margin-left: 4px; font: 800 10px/1.3 var(--lp-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--lp-yellow); text-decoration: underline; text-underline-offset: 4px; white-space: nowrap; }
.aw-jr-room a:focus-visible { outline: 3px solid var(--lp-cyan); outline-offset: 3px; }
.aw-jr-room > span { font: 800 9px/1.4 var(--lp-mono); letter-spacing: .06em; text-transform: uppercase; color: #aab3ae; }

/* the vignettes */
.aw-jr-vis { position: relative; display: flex; flex-direction: column; gap: 8px; height: var(--vis-h); margin-top: 12px; padding: 12px; overflow: hidden; background: #080b0d; border: 1px solid rgba(255, 255, 255, .14); color: #fff; }
.aw-jr .v-label { display: flex; align-items: center; gap: 6px; font: 800 9px/1.2 var(--lp-mono); letter-spacing: .12em; text-transform: uppercase; color: #9ca7a2; }
.aw-jr .v-token { display: inline-block; flex: none; width: 14px; height: 14px; background: var(--lp-cyan); box-shadow: 0 0 0 3px rgba(0, 194, 203, .2), 0 0 14px rgba(0, 194, 203, .8); }
.aw-jr .v-ask, .aw-jr .v-room { background-image: linear-gradient(rgba(242, 239, 230, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(242, 239, 230, .05) 1px, transparent 1px); background-size: 18px 18px; }
.aw-jr .v-bar { display: flex; align-items: center; gap: 4px; font: 800 9px/1 var(--lp-mono); letter-spacing: .1em; text-transform: uppercase; color: #9ca7a2; }
.aw-jr .v-bar i { width: 6px; height: 6px; border-radius: 50%; background: #454d50; }
.aw-jr .v-bar span { margin-left: 6px; }
.aw-jr .v-bubble { align-self: flex-end; max-width: 94%; margin-top: 4px; padding: 8px 10px; border-radius: 12px 12px 2px 12px; background: var(--lp-paper); color: var(--lp-ink); font-size: 13px; font-weight: 800; line-height: 1.2; }
.aw-jr .v-born { margin-top: auto; display: flex; align-items: center; gap: 8px; font: 800 9px/1.2 var(--lp-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--lp-cyan); }
.aw-jr .v-price { font-size: 26px; font-weight: 900; letter-spacing: -.045em; line-height: 1; }
.aw-jr .v-never { margin-top: -4px; font: 800 9px/1 var(--lp-mono); letter-spacing: .12em; text-transform: uppercase; color: #7fdc86; }
.aw-jr .v-btn { position: relative; margin-top: auto; display: grid; place-items: center; height: 32px; background: #1b2124; border: 1px solid rgba(255, 255, 255, .3); font: 800 10px/1 var(--lp-mono); letter-spacing: .12em; text-transform: uppercase; }
.aw-jr .v-btn::before { content: ""; position: absolute; inset: 0; background: var(--lp-cyan); }
.aw-jr .v-btn > span { position: relative; grid-area: 1 / 1; }
.aw-jr .v-btn-a { color: #fff; opacity: 0; }
.aw-jr .v-btn-b { color: var(--lp-ink); }
.aw-jr .v-lines { display: grid; gap: 5px; }
.aw-jr .v-lines i { height: 5px; background: #3a4245; transform-origin: left; }
.aw-jr .v-lines i:nth-child(2) { width: 84%; }
.aw-jr .v-lines i:nth-child(3) { width: 62%; }
.aw-jr .v-checks { margin-top: auto; display: grid; gap: 5px; }
.aw-jr .v-checks span { position: relative; padding-left: 18px; font: 800 9px/12px var(--lp-mono); letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.aw-jr .v-checks span::before { content: ""; position: absolute; left: 0; top: 0; width: 12px; height: 12px; background: var(--lp-green); }
.aw-jr .v-checks span::after { content: ""; position: absolute; left: 3px; top: 3px; width: 6px; height: 3px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; rotate: -45deg; }
.aw-jr .v-ask-btn { position: relative; overflow: hidden; display: grid; place-items: center; height: 38px; margin-top: 4px; border: 1.5px solid var(--lp-yellow); color: var(--lp-ink); font: 800 10px/1 var(--lp-mono); letter-spacing: .08em; text-transform: uppercase; }
.aw-jr .v-ask-btn::before { content: ""; position: absolute; inset: 0; background: var(--lp-yellow); }
.aw-jr .v-txt { position: relative; }
.aw-jr .v-ripple { position: absolute; left: 50%; top: 50%; width: 24px; height: 24px; margin: -12px 0 0 -12px; border-radius: 50%; background: rgba(10, 13, 15, .28); opacity: 0; }
.aw-jr .v-sent { align-self: flex-start; margin-top: auto; padding: 6px 8px; background: rgba(255, 216, 0, .1); border: 1px solid rgba(255, 216, 0, .45); color: var(--lp-yellow); font: 800 9px/1 var(--lp-mono); letter-spacing: .1em; text-transform: uppercase; }
.aw-jr .v-room .v-label { color: #9ca7a2; }
.aw-jr .v-lock { position: relative; width: 10px; height: 8px; margin-top: 4px; background: var(--lp-yellow); }
.aw-jr .v-lock::before { content: ""; position: absolute; left: 1px; bottom: 8px; width: 8px; height: 6px; border: 2px solid var(--lp-yellow); border-bottom: 0; border-radius: 4px 4px 0 0; }
.aw-jr .v-people { margin-top: auto; display: flex; align-items: flex-end; justify-content: center; gap: 10px; }
.aw-jr .v-person { display: grid; justify-items: center; gap: 4px; }
.aw-jr .v-person i { position: relative; width: 30px; height: 34px; }
.aw-jr .v-person i::before { content: ""; position: absolute; left: 50%; top: 0; width: 13px; height: 13px; margin-left: -6.5px; border-radius: 50%; background: var(--lp-paper); }
.aw-jr .v-person i::after { content: ""; position: absolute; left: 0; bottom: 0; width: 30px; height: 17px; border-radius: 15px 15px 3px 3px; background: var(--lp-paper); }
.aw-jr .v-person.is-expert i::before, .aw-jr .v-person.is-expert i::after { background: var(--lp-yellow); }
.aw-jr .v-person small { font: 800 8px/1 var(--lp-mono); letter-spacing: .1em; text-transform: uppercase; color: #c9d0cc; }
.aw-jr .v-mid { display: grid; justify-items: center; gap: 7px; padding-bottom: 16px; }
.aw-jr .v-check { position: relative; width: 20px; height: 20px; border-radius: 50%; background: var(--lp-green); box-shadow: 0 0 0 4px rgba(67, 194, 75, .22); }
.aw-jr .v-check::after { content: ""; position: absolute; left: 6px; top: 6px; width: 7px; height: 3px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; rotate: -45deg; }
.aw-jr .v-files { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 2px; }
.aw-jr .v-files i { padding: 7px 7px 7px 6px; border: 1px solid #fff; border-left-width: 4px; background: #fff; color: var(--lp-ink); font: 800 9px/1 var(--lp-mono); font-style: normal; letter-spacing: .06em; text-transform: uppercase; }
.aw-jr .v-files .f-word { border-left-color: var(--lp-cyan); }
.aw-jr .v-files .f-excel { border-left-color: var(--lp-green); }
.aw-jr .v-files .f-ppt { border-left-color: var(--lp-orange); }
.aw-jr .v-keep { margin-top: auto; display: flex; align-items: center; gap: 7px; font: 800 9px/1.3 var(--lp-mono); letter-spacing: .06em; text-transform: uppercase; }
.aw-jr .v-keep::before { content: ""; flex: none; width: 10px; height: 10px; background: var(--lp-paper); box-shadow: 3px 3px 0 var(--lp-cyan); }

/* the meters */
.aw-meter { margin-top: 28px; display: grid; gap: 22px; padding: 26px 22px 20px; background: #fff; border: 1px solid var(--lp-line); }
.aw-meter-row { display: grid; grid-template-columns: 150px minmax(0, 1fr) minmax(0, 290px); gap: 8px 18px; align-items: center; }
.aw-meter-name { display: flex; align-items: center; gap: 8px; font: 800 11px/1.2 var(--lp-mono); letter-spacing: .12em; text-transform: uppercase; }
.aw-meter-dot { position: relative; flex: none; width: 9px; height: 9px; border-radius: 50%; background: #b9b5aa; }
.is-old .aw-meter-dot { background: var(--lp-orange); }
.aw-meter-track { position: relative; height: 22px; background: var(--lp-paper2); }
.aw-meter-fill { position: absolute; inset: 0; transform-origin: left; }
.is-old .aw-meter-fill { background: repeating-linear-gradient(135deg, var(--lp-orange) 0 8px, #ffa552 8px 16px); }
.is-new .aw-meter-fill { background: var(--lp-cyan); scale: .18 1; }
.aw-meter-tag { position: absolute; top: 50%; translate: 0 -50%; padding: 4px 6px; background: var(--lp-ink); color: #fff; font: 800 9px/1 var(--lp-mono); letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; transition: opacity .4s; }
.t-still { right: 5px; }
.t-stop { left: calc(18% + 8px); }
.aw-meter-note { font-size: 14px; line-height: 1.4; color: #41423e; }
.aw-jr-close { margin: 30px 0 0; max-width: 1100px; font-size: clamp(22px, 1.82vw, 28px); font-weight: 900; letter-spacing: -.055em; word-spacing: .05em; line-height: 1.04; }

/* live: waiting stops are dim, the active one glows */
.aw-jr.is-live .aw-jr-token { display: block; }
.aw-jr.is-live:not([data-step="0"]) .aw-jr-token { opacity: 1; }
.aw-jr.is-live .aw-jr-step.is-wait { opacity: .38; }
.aw-jr.is-live .is-wait .aw-jr-node { background: #0d1113; }
.aw-jr.is-live .aw-jr-step:not(.is-done)::before { background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .3) 0 6px, transparent 6px 11px); }
/* the chip lights up as the token arrives */
.aw-jr.is-live .is-wait .aw-jr-chip { opacity: 0; }
.aw-jr.is-live .is-on .aw-jr-chip { border-color: var(--lp-cyan); color: #fff; animation: aw-jr-rise .35s .2s both; }
.aw-jr.is-live .is-on .aw-jr-chip::before { background: var(--lp-cyan); box-shadow: 0 0 0 3px rgba(0, 194, 203, .3); }
.aw-jr.is-live .is-wait .v-txt { color: var(--lp-yellow); }
.aw-jr.is-live .is-on .v-txt { animation: aw-jr-ink .2s .35s both; }
.aw-jr.is-live .is-on .aw-jr-tile { border-color: var(--lp-cyan); box-shadow: 0 0 0 1px var(--lp-cyan), 0 0 28px rgba(0, 194, 203, .28); }
/* waiting state of each vignette */
.aw-jr.is-live .is-wait :is(.v-bubble, .v-born, .v-person, .v-mid, .v-files i, .v-keep, .v-sent, .v-checks span, .v-lines i) { opacity: 0; }
.aw-jr.is-live .is-wait .v-btn::before, .aw-jr.is-live .is-wait .v-btn-b, .aw-jr.is-live .is-wait .v-ask-btn::before { opacity: 0; }
.aw-jr.is-live .is-wait .v-btn-a { opacity: 1; }
/* and how each arrives */
.aw-jr.is-live .is-on .v-bubble { animation: aw-jr-rise .45s .1s both; }
.aw-jr.is-live .is-on .v-born { animation: aw-jr-pop .4s .6s both; }
.aw-jr.is-live .is-on .v-btn { animation: aw-jr-press .3s .5s both; }
.aw-jr.is-live .is-on .v-btn::before, .aw-jr.is-live .is-on .v-btn-b { animation: aw-jr-fade .25s .65s both; }
.aw-jr.is-live .is-on .v-btn-a { animation: aw-jr-unfade .2s .65s both; }
.aw-jr.is-live .is-on .v-lines i { animation: aw-jr-grow .5s both; }
.aw-jr.is-live .is-on .v-lines i:nth-child(1) { animation-delay: .1s; }
.aw-jr.is-live .is-on .v-lines i:nth-child(2) { animation-delay: .35s; }
.aw-jr.is-live .is-on .v-lines i:nth-child(3) { animation-delay: .6s; }
.aw-jr.is-live .is-on .v-checks span { animation: aw-jr-pop .35s both; }
.aw-jr.is-live .is-on .v-checks span:nth-child(1) { animation-delay: .5s; }
.aw-jr.is-live .is-on .v-checks span:nth-child(2) { animation-delay: .85s; }
.aw-jr.is-live .is-on .v-checks span:nth-child(3) { animation-delay: 1.2s; }
.aw-jr.is-live .is-on .v-ripple { animation: aw-jr-ripple .5s .3s both; }
.aw-jr.is-live .is-on .v-ask-btn::before { animation: aw-jr-fade .2s .35s both; }
.aw-jr.is-live .is-on .v-sent { animation: aw-jr-slide .4s .6s both; }
.aw-jr.is-live .is-on .v-lock::before { animation: aw-jr-lock .35s .15s both; }
.aw-jr.is-live .is-on .v-person { animation: aw-jr-rise .4s .2s both; }
.aw-jr.is-live .is-on .v-person.is-expert { animation-delay: .4s; }
.aw-jr.is-live .is-on .v-mid .v-token { animation: aw-jr-slide .45s .65s both; }
.aw-jr.is-live .is-on .v-mid .v-check { animation: aw-jr-pop .35s 1.15s both; }
.aw-jr.is-live .is-on .v-mid { opacity: 1; }
.aw-jr.is-live .is-on .v-files i { animation: aw-jr-drop .4s both; }
.aw-jr.is-live .is-on .v-files i:nth-child(1) { animation-delay: .2s; }
.aw-jr.is-live .is-on .v-files i:nth-child(2) { animation-delay: .45s; }
.aw-jr.is-live .is-on .v-files i:nth-child(3) { animation-delay: .7s; }
.aw-jr.is-live .is-on .v-keep { animation: aw-jr-rise .4s 1s both; }
.aw-jr.is-paused .aw-jr-stage *, .aw-jr.is-paused .aw-jr-stage *::before, .aw-jr.is-paused .aw-jr-stage *::after { animation-play-state: paused !important; }
@keyframes aw-jr-rise { from { opacity: 0; translate: 0 8px; } }
@keyframes aw-jr-pop { from { opacity: 0; scale: .2; } }
@keyframes aw-jr-fade { from { opacity: 0; } }
@keyframes aw-jr-unfade { from { opacity: 1; } }
@keyframes aw-jr-grow { from { opacity: 1; scale: 0 1; } }
@keyframes aw-jr-press { 0%, 100% { scale: 1; } 45% { scale: .9; } }
@keyframes aw-jr-ripple { from { opacity: .8; scale: .2; } to { opacity: 0; scale: 6; } }
@keyframes aw-jr-slide { from { opacity: 0; translate: -22px 0; } }
@keyframes aw-jr-drop { from { opacity: 0; translate: 0 -18px; } }
@keyframes aw-jr-lock { from { translate: 0 -4px; } }
@keyframes aw-jr-ink { from { color: var(--lp-yellow); } }

/* live meters: each step's target, reached over that step's stay (journey.js STAY) */
.aw-jr.is-live .aw-meter-fill { transition: scale .5s ease; }
.aw-jr.is-live .is-old .aw-meter-fill { scale: .05 1; }
.aw-jr.is-live .is-new .aw-meter-fill { scale: 0 1; }
.aw-jr.is-live .t-still, .aw-jr.is-live .t-stop { opacity: 0; transition: opacity .4s; }
.aw-jr.is-live[data-step="1"] .is-old .aw-meter-fill { scale: .15 1; transition: scale 1.2s linear; }
.aw-jr.is-live[data-step="2"] .is-old .aw-meter-fill { scale: .25 1; transition: scale 1.2s linear; }
.aw-jr.is-live[data-step="3"] .is-old .aw-meter-fill { scale: .42 1; transition: scale 1.8s linear; }
.aw-jr.is-live[data-step="4"] .is-old .aw-meter-fill { scale: .53 1; transition: scale 1.1s linear; }
.aw-jr.is-live[data-step="5"] .is-old .aw-meter-fill { scale: .69 1; transition: scale 1.7s linear; }
.aw-jr.is-live[data-step="6"] .is-old .aw-meter-fill { scale: 1 1; transition: scale 2.2s linear; }
.aw-jr.is-live[data-step="3"] .is-new .aw-meter-fill, .aw-jr.is-live[data-step="4"] .is-new .aw-meter-fill { scale: .1 1; transition: scale 1.8s linear; }
.aw-jr.is-live[data-step="4"] .is-new .aw-meter-fill { transition: none; }
.aw-jr.is-live[data-step="5"] .is-new .aw-meter-fill, .aw-jr.is-live[data-step="6"] .is-new .aw-meter-fill { scale: .18 1; transition: scale 1.7s linear; }
.aw-jr.is-live[data-step="6"] .is-new .aw-meter-fill { transition: none; }
.aw-jr.is-live[data-step="6"] .t-still, .aw-jr.is-live[data-step="6"] .t-stop { opacity: 1; transition-delay: .6s; }
/* the Forward Deployed light is on only while the work runs */
.aw-jr.is-live:is([data-step="3"], [data-step="5"]) .is-new .aw-meter-dot { background: var(--lp-green); box-shadow: 0 0 0 3px rgba(67, 194, 75, .25); }
.aw-jr.is-live .is-old .aw-meter-dot::after, .aw-jr.is-live:is([data-step="3"], [data-step="5"]) .is-new .aw-meter-dot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: inherit; animation: aw-ping 1.6s ease-out infinite; }

@media (max-width: 1199px) and (min-width: 641px) {
  .aw-jr-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 22px; }
  .aw-jr-step:nth-child(3)::before { display: none; }
  .aw-meter-row { grid-template-columns: 130px minmax(0, 1fr); }
  .aw-meter-note { grid-column: 2; }
}
@media (max-width: 640px) {
  .aw-jr { --vis-h: 128px; }
  .aw-jr-os .lp-os-shell { padding: 16px 14px; }
  .aw-jr-os .lp-os-top { flex-wrap: wrap; }
  .aw-jr-top-right { justify-content: flex-start; }
  /* the stops stack, and the token runs down the rail on the left */
  .aw-jr-steps { grid-template-columns: 1fr; gap: 14px; }
  .aw-jr-step { display: grid; grid-template-columns: 16px minmax(0, 1fr); column-gap: 10px; align-items: start; }
  .aw-jr-tile { grid-column: 2; grid-row: 1; }
  .aw-jr-node { grid-column: 1; grid-row: 1; margin: 16px 0 0; }
  .aw-jr-step::before { left: 7px; right: auto; top: 16px; bottom: -30px; width: 2px; height: auto; }
  .aw-jr.is-live .aw-jr-step:not(.is-done)::before { background: repeating-linear-gradient(180deg, rgba(255, 255, 255, .3) 0 6px, transparent 6px 11px); }
  .aw-jr-cap { font-size: 13px; }
  .aw-meter { padding: 24px 16px 18px; }
  .aw-meter-row { grid-template-columns: 1fr; }
  .aw-jr-close { font-size: 26px; }
}
@media (prefers-reduced-motion: reduce) {
  .aw-jr-tools { display: none !important; }
  .aw-jr-step, .aw-jr-tile, .aw-jr-chip, .aw-meter-fill, .aw-meter-tag { transition: none; }
}

/* "We exist for one reason": a full-width band before the final call to action, and the About page's opening line. */
.aw-success { padding: 110px 4.5vw; background: var(--lp-ink); color: #fff; text-align: center; }
.aw-success .lp-kicker { color: var(--lp-cyan); margin: 0 0 18px; }
.aw-success h2 { max-width: 16em; margin: 0 auto; font-size: clamp(24px, 3.64vw, 53px); line-height: .98; letter-spacing: -.06em; font-weight: 900; }
.aw-success h2 em { font-style: normal; color: var(--lp-ink); background: var(--lp-cyan); padding: 0 .08em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.aw-success .aw-success-why { max-width: 38em; margin: 28px auto 0; font-size: clamp(16px, 1.35vw, 19px); line-height: 1.55; color: #b6bdb9; }
.aw-success .aw-success-credit { margin: 22px auto 0; font-size: clamp(18px, 1.8vw, 24px); color: #d9dcd8; }
.aw-about-why { margin: 0 0 14px; font-size: 18px; }
.aw-about-why b { background: var(--lp-yellow); padding: 0 4px; }
@media (max-width: 640px) { .aw-success { padding: 72px 20px; } }

/* ---------- /services: teams first, then every service, compact ----------
   A card shows its name, purpose, formats and availability. "See what you get" opens the files you get, what you
   provide, the approach and the expert link; a link to the card opens it (assets/site.js). */
.sv-how { padding-top: 56px; padding-bottom: 56px; }
.sv-team { scroll-margin-top: 84px; }
.sv-team:target { box-shadow: inset 0 0 0 3px var(--lp-cyan); }
.sv-card:not(:has(details[open])) .sv-purpose { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
.sv-card .sv-more { margin-top: 14px; }
.sv-more summary { align-items: center; padding-bottom: 2px; }
.sv-more summary span { text-decoration: underline; text-decoration-color: var(--lp-cyan); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.sv-more .sv-more-hide, .sv-more[open] .sv-more-show { display: none; }
.sv-more[open] .sv-more-hide { display: inline; }
.sv-get h4 { margin-top: 16px; color: #1f6b33; }
/* a practice: its name is the heading; its service lines are small labels on the cards, all in one grid */
.sv-practice { padding-top: 64px; padding-bottom: 64px; }
.sv-practice-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px 5vw; align-items: end; margin-bottom: 28px; padding-bottom: 22px; border-bottom: 1px solid var(--lp-ink); }
.sv-practice-head h2 { margin: 0; font-size: clamp(24px, 2.94vw, 45px); font-weight: 900; letter-spacing: -.065em; word-spacing: .06em; line-height: .94; }
.sv-pitch { margin: 14px 0 0; font-size: clamp(18px, 1.6vw, 22px); font-weight: 700; letter-spacing: -.02em; line-height: 1.3; }
.sv-practice-notes p { margin: 0; font-size: 14px; line-height: 1.5; color: #41423e; max-width: 640px; }
.sv-practice-notes p + p { margin-top: 10px; padding-left: 10px; border-left: 3px solid var(--lp-cyan); }
.sv-practice-notes b { color: var(--lp-ink); }
.sv-line { margin: 0 0 10px; font: 800 9px/1.35 var(--lp-mono); letter-spacing: .1em; text-transform: uppercase; color: #6b6f6a; scroll-margin-top: 104px; }
.sv-ref { min-width: 0; padding: 16px 18px; border: 1px dashed rgba(10, 13, 15, .35); font-size: 13px; line-height: 1.45; color: #41423e; }
.sv-ref > p:not(.sv-line) { margin: 0 0 8px; }
@media (max-width: 760px) { .sv-practice-head { grid-template-columns: 1fr; } .sv-practice { padding-top: 48px; padding-bottom: 48px; } }
.sv-get .sv-files li:first-child { border-top-color: var(--lp-ink); }
.sv-how-more { margin: 18px 0 0; font: 800 11px/1.3 var(--lp-mono); letter-spacing: .1em; text-transform: uppercase; }
.sv-how-more a, .sv-expert-link a { text-decoration: underline; text-decoration-color: var(--lp-cyan); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.lp-end-copy p.sv-expert-link { margin-top: 18px; font: 800 12px/1.3 var(--lp-mono); letter-spacing: .1em; text-transform: uppercase; }

/* The practices, listed the same way everywhere: About's list and the /services jump links, with Digital &
   Technology marked coming soon. */
.st-practices { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.lp-btn.is-soon { border-style: dashed; background: transparent; color: #4b4e4a; }
.lp-btn.is-soon small { margin-left: 6px; font: 800 9px/1 var(--lp-mono); letter-spacing: .1em; color: #6b5800; }
span.lp-btn.is-soon { cursor: default; }
span.lp-btn.is-soon:hover { transform: none; }

/* The old way keeps charging: a seat or an hour ticks on above its bar at each stop, and after the result it keeps
   ticking while the stripes run. Without motion, the finished picture shows every tick and "Still billing". */
.aw-meter-ticks { position: absolute; inset: -19px 0 auto 0; height: 16px; pointer-events: none; }
.aw-meter-ticks i { position: absolute; top: 0; translate: -50% 0; padding: 2px 5px; background: #fff3e6; border: 1px solid var(--lp-orange); color: #8a4a00; font: 800 9px/1.2 var(--lp-mono); font-style: normal; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.aw-meter-ticks i:nth-child(1) { left: 12%; } .aw-meter-ticks i:nth-child(2) { left: 30%; } .aw-meter-ticks i:nth-child(3) { left: 48%; }
.aw-meter-ticks i:nth-child(4) { left: 66%; } .aw-meter-ticks i:nth-child(5) { left: 84%; }
.aw-jr.is-live .aw-meter-ticks i { opacity: 0; scale: .6; transition: opacity .3s, scale .3s; }
.aw-jr.is-live:is([data-step="1"], [data-step="2"], [data-step="3"], [data-step="4"], [data-step="5"], [data-step="6"]) .aw-meter-ticks i:nth-child(1),
.aw-jr.is-live:is([data-step="2"], [data-step="3"], [data-step="4"], [data-step="5"], [data-step="6"]) .aw-meter-ticks i:nth-child(2),
.aw-jr.is-live:is([data-step="3"], [data-step="4"], [data-step="5"], [data-step="6"]) .aw-meter-ticks i:nth-child(3),
.aw-jr.is-live:is([data-step="4"], [data-step="5"], [data-step="6"]) .aw-meter-ticks i:nth-child(4),
.aw-jr.is-live:is([data-step="5"], [data-step="6"]) .aw-meter-ticks i:nth-child(5) { opacity: 1; scale: 1; }
.aw-jr.is-live[data-step="6"] .aw-meter-ticks i { animation: aw-tick 1.1s ease-in-out infinite; }
.aw-jr.is-live[data-step="6"] .aw-meter-ticks i:nth-child(2n) { animation-delay: .55s; }
.aw-jr.is-live[data-step="6"] .is-old .aw-meter-fill { background-size: 22.6px 22.6px; animation: aw-bill .6s linear infinite; }
@keyframes aw-tick { 0%, 100% { translate: -50% 0; } 50% { translate: -50% -3px; } }
@keyframes aw-bill { to { background-position: 22.6px 0; } }
@keyframes aw-tick-tag { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }
.aw-jr.is-live[data-step="6"] .t-still { animation: aw-tick-tag 1.1s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .aw-meter-ticks i, .aw-jr .is-old .aw-meter-fill, .t-still { animation: none !important; } }

/* ---------- "Watch: why instant?": the hero button opens the instant-firm film in a dialog ---------- */
.st-watch::before { content: "▶"; margin-right: 8px; font-size: 10px; }
.st-film { width: min(1100px, calc(100vw - 32px)); max-width: none; max-height: calc(100vh - 32px); padding: 0; border: 0; background: transparent; color: #f2efe6; overflow: auto; }
.st-film::backdrop { background: rgba(10, 13, 15, .84); }
.st-film-box { background: var(--lp-ink); border: 1px solid rgba(242, 239, 230, .18); }
.st-film-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 12px 12px 18px; border-bottom: 1px solid rgba(242, 239, 230, .14); }
.st-film-bar h2 { margin: 0; font-size: 15px; letter-spacing: .08em; text-transform: uppercase; font-family: var(--lp-mono); }
.st-film-close { width: 40px; height: 40px; border: 1px solid rgba(242, 239, 230, .35); background: transparent; color: #f2efe6; font-size: 24px; line-height: 1; cursor: pointer; }
.st-film-close:hover { background: rgba(242, 239, 230, .1); }
.st-film-close:focus-visible, .st-film-script summary:focus-visible { outline: 3px solid var(--lp-cyan); outline-offset: 2px; }
.st-film-script { padding: 12px 18px 16px; font-size: 14px; line-height: 1.55; color: #b6bdb9; }
.st-film-script summary { cursor: pointer; font-family: var(--lp-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: #f2efe6; }
.st-film-script p { margin: 10px 0 0; }
.ct-instant a { font-weight: 800; }

/* Who leads: the customer's team at the centre, lit; everything else supports and points inward */
.aw-lead-map { margin-top: 44px; display: grid; grid-template-columns: minmax(0, 1fr) 52px minmax(0, 1.25fr) 52px minmax(0, 1fr); grid-template-rows: auto 44px auto 44px auto; align-items: center; justify-items: stretch; }
.aw-lead-ai { grid-area: 1 / 3; } .aw-lead-down { grid-area: 2 / 3; }
.aw-lead-net { grid-area: 3 / 1; } .aw-lead-right { grid-area: 3 / 2; }
.aw-lead-team { grid-area: 3 / 3; } .aw-lead-left { grid-area: 3 / 4; }
.aw-lead-staff { grid-area: 3 / 5; } .aw-lead-up { grid-area: 4 / 3; }
.aw-lead-guests { grid-area: 5 / 3; }
.aw-lead-card { background: var(--lp-paper2); border: 1px solid var(--lp-line); padding: 16px 18px; min-width: 0; }
.aw-lead-card h3 { margin: 8px 0 4px; font-size: 18px; letter-spacing: -.03em; line-height: 1.15; }
.aw-lead-card p { margin: 0; font-size: 14px; line-height: 1.4; color: #41423e; }
.aw-lead-tag, .aw-lead-kicker { display: block; font: 800 10px/1 var(--lp-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--lp-muted); }
.aw-lead-arrow { text-align: center; font-size: 26px; font-weight: 900; line-height: 1; color: var(--lp-green); animation: aw-lead-pulse 2.6s ease-in-out infinite; }
.aw-lead-team { position: relative; background: var(--lp-ink); color: #fff; padding: 34px 28px; text-align: center; border: 2px solid var(--lp-green); box-shadow: 0 0 0 6px rgba(67, 194, 75, .2), 0 0 70px rgba(67, 194, 75, .38); }
.aw-lead-team .aw-lead-kicker { color: var(--lp-green); }
.aw-lead-team .aw-light { position: absolute; top: 14px; right: 14px; }
.aw-lead-team h3 { margin: 12px 0 6px; font-size: clamp(30px, 3.4vw, 52px); letter-spacing: -.06em; line-height: .95; }
.aw-lead-team p { margin: 0; font-size: 18px; font-weight: 800; letter-spacing: -.02em; color: #d9f5dc; }
.aw-lead-note { margin: 40px 0 0; max-width: 720px; font-size: 18px; line-height: 1.45; color: #41423e; }
.aw-lead-note a { font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
@keyframes aw-lead-pulse { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }
@media (max-width: 760px) {
  .aw-lead-map { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: none; gap: 10px; }
  .aw-lead-ai, .aw-lead-net, .aw-lead-staff, .aw-lead-guests, .aw-lead-team { grid-area: auto; }
  .aw-lead-arrow { display: none; }
  .aw-lead-team { grid-column: 1 / -1; order: 9; margin-top: 30px; }
  .aw-lead-team::before { content: "↓  ↓  ↓  ↓"; position: absolute; top: -28px; left: 0; right: 0; text-align: center; font-size: 22px; font-weight: 900; color: var(--lp-green); }
}
@media (prefers-reduced-motion: reduce) { .aw-lead-arrow { animation: none; opacity: 1; } }
/* skip link: the first focusable element on every page, visible only when focused */
.skip { position: absolute; left: -9999px; top: 0; z-index: 1000; padding: 12px 18px; background: var(--lp-green); color: var(--lp-ink); font-weight: 900; border: 1px solid var(--lp-ink); }
.skip:focus { left: 0; }
main:focus { outline: none; }
.aw-fig { margin: 18px 0 0; font: 800 12px/1.4 var(--lp-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--lp-muted); }
.aw-fig a { text-decoration: underline; text-underline-offset: 3px; }
.aw-out-count { margin: -6px 0 12px; font: 800 11px/1 var(--lp-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--lp-muted); }
.aw-faq-list { max-width: 860px; }
.aw-support { margin: 22px 0 0; max-width: 640px; padding: 14px 18px; border-left: 6px solid var(--lp-green); background: #fff; font-size: 17px; line-height: 1.45; color: #2f312d; }
.aw-support b { color: var(--lp-ink); }
.aw-support-tag { display: block; margin-bottom: 6px; font: 800 10px/1 var(--lp-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--lp-muted); }
.lp-security.ex-why { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ex-why .aw-lead-tag + h3 { margin-top: 10px; }
@media (max-width: 1100px) { .lp-security.ex-why { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .lp-security.ex-why { grid-template-columns: 1fr; } }
/* roadmap stages 2 to 4: the example functions as small chips, not a list of headings */
.rm-eg-fn { display: flex; flex-wrap: wrap; gap: 6px; }
.rm-eg-fn::before { flex: 0 0 100%; }
.rm-eg-fn li { padding: 3px 9px; border: 1px solid var(--lp-line); font-size: 12px; font-weight: 700; line-height: 1.4; letter-spacing: 0; background: rgba(255, 255, 255, .6); }
.is-goal .rm-eg-fn li { border-color: rgba(255, 255, 255, .22); background: transparent; }

/* Draft services page by role (/services-new) */
.sx-jump { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }
.sx-modes { list-style: none; margin: 34px 0 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1px; background: var(--lp-line); border: 1px solid var(--lp-line); }
.sx-mode { position: relative; background: var(--lp-paper); padding: 20px 18px 50px; min-width: 0; }
.sx-mode h3 { margin: 10px 0 8px; font-size: 20px; letter-spacing: -.03em; line-height: 1.1; }
.sx-mode p { margin: 0; font-size: 14.5px; line-height: 1.45; color: #41423e; }
.sx-group { font: 800 10px/1 var(--lp-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--lp-muted); }
.sx-mode.is-deliver { background: #f7f5ee; } .sx-mode.is-run { background: #eef3ee; } .sx-mode.is-anytime { background: #fff; }
.sx-status { display: inline-block; font: 800 9.5px/1 var(--lp-mono); letter-spacing: .12em; text-transform: uppercase; padding: 5px 7px; }
.sx-mode .sx-status { position: absolute; left: 18px; bottom: 18px; }
.sx-status.is-available { background: var(--lp-cyan); color: var(--lp-ink); }
.sx-status.is-coming { border: 1px dashed #8a7a00; color: #6b5f00; background: #fff8c2; }
.sx-role-list { margin-top: 34px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.sx-role { background: #fff; border: 1px solid var(--lp-line); padding: 22px 24px 10px; scroll-margin-top: 90px; min-width: 0; }
.sx-role header { position: relative; padding-right: 90px; margin-bottom: 8px; }
.sx-role header h3 { margin: 0; font-size: 24px; letter-spacing: -.04em; }
.sx-role header p { margin: 4px 0 0; font-size: 14px; color: var(--lp-muted); }
.sx-role header .sx-status { position: absolute; top: 2px; right: 0; }
.sx-grid { margin: 0; }
.sx-row { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 14px; padding: 10px 0; border-top: 1px solid var(--lp-line); }
.sx-row dt { font: 800 11px/1.4 var(--lp-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--lp-ink); }
.sx-row dt small { display: block; margin-top: 3px; font-size: 9.5px; color: #6b5f00; }
.sx-row dd { margin: 0; font-size: 15px; line-height: 1.45; color: #2f312d; }
.sx-row.is-coming dd { color: #6a6c67; }
@media (max-width: 1100px) { .sx-modes { grid-template-columns: repeat(3, minmax(0, 1fr)); } .sx-role-list { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .sx-modes { grid-template-columns: 1fr; } .sx-row { grid-template-columns: 1fr; gap: 4px; } }
.sx-outcome { margin: 4px 0 12px; padding: 10px 12px; background: var(--lp-paper); border-left: 4px solid var(--lp-green); font-size: 15px; font-weight: 700; line-height: 1.4; }
.sx-outcome span { display: block; margin-bottom: 3px; font: 800 9.5px/1 var(--lp-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--lp-muted); }
.sx-deliv { border-top: 1px solid var(--lp-line); padding: 12px 0 14px; }
.sx-deliv p { margin: 0 0 8px; font: 800 10px/1 var(--lp-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--lp-muted); }
.sx-deliv ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.sx-deliv a { display: inline-block; padding: 4px 9px; border: 1px solid var(--lp-line); background: var(--lp-paper); font-size: 12.5px; font-weight: 700; line-height: 1.35; }
.sx-deliv a:hover { border-color: var(--lp-ink); }

/* Pricing: what every token includes */
.px-incl { list-style: none; margin: 34px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--lp-line); border: 1px solid var(--lp-line); }
.px-incl li { background: #fff; padding: 22px 20px; min-width: 0; }
.px-incl li:last-child { background: var(--lp-paper); }
.px-incl h3 { margin: 10px 0 8px; font-size: 22px; letter-spacing: -.035em; line-height: 1.1; }
.px-incl p { margin: 0; font-size: 15px; line-height: 1.45; color: #41423e; }
.px-tag { display: inline-block; padding: 4px 7px; font: 800 9.5px/1 var(--lp-mono); letter-spacing: .12em; text-transform: uppercase; background: var(--lp-green); color: var(--lp-ink); }
.px-more { margin-top: 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.px-more p { margin: 0; padding: 16px 18px; border-left: 4px solid var(--lp-cyan); background: #fff; font-size: 15.5px; line-height: 1.5; color: #2f312d; }
.px-more b { color: var(--lp-ink); }
.px-more a { font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1100px) { .px-incl { grid-template-columns: repeat(2, minmax(0, 1fr)); } .px-more { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .px-incl { grid-template-columns: 1fr; } }

/* ---------- /guides: reference articles on the forward deployed model ----------
   They reuse the blog article styles (.st-post, .st-post-body, .st-toc, .st-faq-item); these are the few extra parts. */
.gd-crumbs ol { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 8px; font: 700 11px/1.4 var(--lp-mono); letter-spacing: .08em; text-transform: uppercase; color: #666; }
.gd-crumbs li + li::before { content: "/"; margin-right: 8px; color: #999; }
.gd-crumbs a { text-decoration: underline; text-underline-offset: 3px; }
.gd-crumbs [aria-current] { color: var(--lp-ink); }
.gd .st-post-body { padding-top: 32px; }
.gd .st-post-body [id] { scroll-margin-top: 86px; }
.gd-takeaways { margin: 0 0 8px; padding: 18px 20px 6px; background: #fff; border: 1px solid var(--lp-ink); border-left: 6px solid var(--lp-cyan); }
.gd .gd-takeaways h2 { margin: 0 0 12px; font: 800 11px/1.3 var(--lp-mono); letter-spacing: .16em; text-transform: uppercase; }
.gd-takeaways ul { margin: 0; padding-left: 20px; font-size: 16.5px; line-height: 1.55; }
.gd .st-toc li { margin: 0 0 6px; }
.gd-note { max-width: none; }
.gd-table { margin: 18px 0 26px; overflow-x: auto; border: 1px solid var(--lp-ink); background: #fff; }
.gd-table:focus-visible { outline: 3px solid var(--lp-cyan); outline-offset: 2px; }
.gd-table table { border-collapse: collapse; width: 100%; min-width: 640px; font-size: 14.5px; line-height: 1.45; }
.gd-table caption { text-align: left; padding: 10px 12px; font: 800 11px/1.3 var(--lp-mono); letter-spacing: .12em; text-transform: uppercase; background: var(--lp-paper2); border-bottom: 1px solid var(--lp-ink); }
.gd-table th, .gd-table td { padding: 10px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--lp-line); }
.gd-table thead th { font: 800 10px/1.3 var(--lp-mono); letter-spacing: .1em; text-transform: uppercase; color: #555; border-bottom: 1px solid var(--lp-ink); }
.gd-table tbody th { font-weight: 800; }
.gd-table tbody tr:last-child > * { border-bottom: 0; }
.gd-sources { padding-left: 22px; font-size: 16px; line-height: 1.5; }
.gd-sources li { margin: 0 0 10px; }
.gd-cite .lp-label { margin-top: 16px; }
.gd-cite .lp-copy { margin: 6px 0 0; }
.gd-cite .lp-copy code { font-size: 12.5px; line-height: 1.5; }
.gd-related ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.gd-related li { margin: 0; }
.gd-related a { display: block; border: 1px solid var(--lp-ink); background: #fff; padding: 14px 16px; text-decoration: none; }
.gd-related a:hover { background: var(--lp-paper2); }
.gd-related b { display: block; font-size: 18px; letter-spacing: -.02em; }
.gd-related span { display: block; margin-top: 4px; font-size: 14.5px; line-height: 1.45; color: #41423e; }
.gd-az { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; }
.gd-az a { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px; border: 1px solid var(--lp-ink); background: #fff; font: 800 13px/1 var(--lp-mono); text-decoration: none; }
.gd-az a:hover, .gd-az a:focus-visible { background: var(--lp-ink); color: #fff; }
.gd-terms { margin: 0 0 8px; padding: 0; }
.gd-term { padding: 14px 0 6px; border-bottom: 1px solid var(--lp-line); }
.gd-term:target { background: #fffbe6; }
.gd-term dt { font-size: 20px; font-weight: 900; letter-spacing: -.02em; line-height: 1.2; }
.gd-term dfn { font-style: normal; }
.gd-term dd { margin: 6px 0 0; }
.gd-term dd p { margin: 0 0 8px; font-size: 17px; line-height: 1.55; }
.gd-term dd p.gd-see { font-size: 14px; color: #555; }
.gd-anchor { margin-left: 6px; font: 700 14px/1 var(--lp-mono); color: #8a8a85; text-decoration: none; }
.gd-anchor:hover, .gd-anchor:focus-visible { color: var(--lp-ink); }
.gd-grid { grid-template-columns: repeat(2, 1fr); }
.gd-standards { list-style: none; margin: 0 0 28px; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 5vw; max-width: 1000px; }
.gd-standards li { padding: 14px 0; border-bottom: 1px solid var(--lp-line); font-size: 16px; line-height: 1.5; }
.gd-standards a { text-decoration: underline; }
@media (min-width: 1000px) { .gd-table { margin-left: -90px; margin-right: -90px; } }
@media (max-width: 760px) { .gd-grid, .gd-standards { grid-template-columns: 1fr; } .gd-takeaways { padding-left: 16px; padding-right: 14px; } }
/* The Hiring Index (/guides/forward-deployed-engineer-hiring-index): bar charts drawn as inline SVG, headline figures and downloads. */
.gd-chart { margin: 18px 0 10px; max-width: 520px; }
.gd-chart figcaption { margin: 0 0 8px; font: 800 11px/1.3 var(--lp-mono); letter-spacing: .12em; text-transform: uppercase; }
.gd-chart svg { display: block; width: 100%; height: auto; overflow: visible; }
.gd-chart-label { font-size: 12.5px; font-weight: 600; fill: var(--lp-ink); }
.gd-chart-value { font-size: 12px; font-weight: 700; fill: #41423e; }
.gd-chart-bar { fill: #00818a; }
.gd-table.gd-narrow { max-width: 640px; }
.gd-table.gd-narrow table { min-width: 0; }
.gd-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; margin: 18px 0 22px; padding: 0; }
.gd-stats div { display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: 6px; padding: 14px 16px; background: #fff; border: 1px solid var(--lp-ink); }
.gd-stats dt { font: 800 10px/1.35 var(--lp-mono); letter-spacing: .1em; text-transform: uppercase; color: #555; }
.gd-stats dd { margin: 0; font-size: 24px; font-weight: 900; letter-spacing: -.03em; line-height: 1.15; }
.gd-downloads { list-style: none; margin: 18px 0 22px; padding: 0; display: grid; gap: 14px; }
.gd-downloads li { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin: 0; }
.gd-downloads span { font-size: 15px; line-height: 1.45; color: #41423e; }
@media (min-width: 1000px) { .gd-table.gd-narrow { margin-left: 0; margin-right: 0; } }
