<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Cobl · Follow up when the deal needs it</title><style>@font-face{font-family:"STK Bureau Serif Variable Complete";src:url(https://cdn.prod.website-files.com/68ee0ef582e0631038583e04/6a85b5fbe174d6db1359e4af_STKBureauSerifVariableComplete.woff2) format("woff2");font-weight:150 700;font-style:normal;font-display:swap}@font-face{font-family:"STK Bureau Serif";src:url(https://cdn.prod.website-files.com/68ee0ef582e0631038583e04/6a85b5fbe174d6db1359e4af_STKBureauSerifVariableComplete.woff2) format("woff2");font-weight:150 700;font-style:normal;font-display:swap}</style><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Instrument+Sans:wght@400&display=swap" rel="stylesheet"><style>:root {--page: #f8f8f8;--cb-text-primary: #181818;--cb-text-secondary: #545352;--cb-text-tertiary: #767473;--cb-border-subtle: #efeeed;--cb-surface-subtle: #efeeed;--cb-surface-sunken: #e8e7e6;--cb-surface-elevated: #f8f8f8;--cb-accent: #9eff78;--cb-lime-100: #e9fae3;--cb-lime-500: #69ff1f;--cb-success: #2ebd43;--cb-success-text: #216b2e;--cb-progress: #2f5e3e;--cb-danger: #d9453d;--cb-danger-text: #a82e29;--cb-danger-bg: rgba(217, 69, 61, .09);--cb-primary: #0c0c0c;--ribbon: var(--cb-accent);--cb-ease: cubic-bezier(.22, 1, .36, 1);--cb-serif: "STK Bureau Serif", "STK Bureau Serif Variable Complete", Georgia, serif;--cb-sans: "Inter", system-ui, sans-serif;}html, body { background: transparent; margin: 0; }body { padding-inline: 0; overflow-x: hidden; }html, body { width: 100%; height: 100%; overflow: hidden; background: #e9e8e6; }.hero-wrap { position: absolute; inset: 0; overflow: hidden; transition: opacity .4s ease; }.hero-wrap.is-out { opacity: 0; }.hero { position: absolute; left: 0; top: 0; width: 1440px; height: 850px; transform-origin: 0 0; }.hero__head {position: absolute; left: 49.5px; top: 56px; width: 1341px; box-sizing: border-box; padding-inline: 32px;display: flex; flex-direction: column; align-items: center; gap: 16px;}.hero__title { margin: 0; display: flex; align-items: center; justify-content: center; gap: 12px; white-space: nowrap;font: 400 34px/40px var(--cb-serif); letter-spacing: -.68px; color: var(--cb-text-primary); }.hero__mark { display: inline-flex; padding: 0 8px; background: var(--cb-accent); font-style: italic; line-height: normal; }.hero__sub { margin: 0; text-align: center; font: 400 14px/1.2 var(--cb-sans); color: var(--cb-text-secondary); }.hero__bg {position: absolute; left: 50px; top: 147px; width: 1340px; height: 569px;border-radius: 0; overflow: hidden;}.hero__bg::before, .hero__bg::after { content: ""; position: absolute; left: -18px; top: -424px; width: 1376px; height: 1032px; z-index: 0; pointer-events: none; }.hero__bg::before { background: url("https://cdn.prod.website-files.com/68ee0ef582e0631038583e04/6ac3ca83263fa6711ed4d4f5_hv4-hero-bg.jpg") center bottom / 100% 100% no-repeat; opacity: .93; }.hero__bg::after { background: linear-gradient(180deg, rgba(102,102,102,0) 54.748%, rgba(0,0,0,.35) 94.283%), linear-gradient(180deg, #f8f8f8 50%, rgba(255,255,255,0) 67.829%); }.hero__bg > * { z-index: 1; }.hero__cta { text-decoration: none; display: inline-block; }.hero__cta {position: absolute; left: calc(50% - .5px); top: 51px; translate: -50% 0;padding: 8px 16px; border: 0; border-radius: 8px; background: var(--cb-primary); color: #fff;font: 500 14px/20px var(--cb-sans); cursor: pointer;transition: background-color 200ms var(--cb-ease), opacity 600ms var(--cb-ease), translate 800ms var(--cb-ease), visibility 0s linear 0s;}.hero__cta.is-waiting { opacity: 0; translate: -50% 10px; visibility: hidden; transition: none; }.hero__cta.is-in { animation: cta-ring 1400ms ease-out 250ms 1; }@keyframes cta-ring {0% { box-shadow: 0 0 0 0 rgba(158, 255, 120, .7); }100% { box-shadow: 0 0 0 14px rgba(158, 255, 120, 0); }}.hero__cta:hover { background: #2a2a2a; }.hero__cta:focus-visible { outline: 2px solid var(--cb-accent); outline-offset: 2px; }.hero__proof {position: absolute; left: 50%; bottom: 16px; translate: -50% 0; width: 1236px;display: flex; align-items: center; justify-content: center; gap: 12px;font: 400 10px/1.4 var(--cb-sans); letter-spacing: .6px; text-transform: uppercase; color: #fff; white-space: nowrap;}.hero__proof img { width: 16px; height: 16px; }.hero__proof b { font-weight: 700; }.hero__ribbon { position: absolute; left: 0; top: 0; width: 1440px; height: 850px; overflow: visible; pointer-events: none; }.hero__ribbon-path {--ribbon-dur: 4200ms; --ribbon-delay: 200ms;fill: none; stroke: var(--ribbon); stroke-width: 33; stroke-linecap: butt; stroke-linejoin: miter;stroke-dasharray: 1; stroke-dashoffset: 0;animation: ribbon-draw var(--ribbon-dur) cubic-bezier(.65, 0, .35, 1) var(--ribbon-delay) both;}@keyframes ribbon-draw { from { stroke-dashoffset: 1; } }.hero .hc { position: absolute; }.hc--proposal { left: 30px; top: 203.91px; }.hc--priority { left: 1004px; top: 199px; }.hc--deal { left: 1041px; top: 305px; }.hc--engage { left: 472px; top: 336px; }.hc--call { left: 97px; top: 397px; }.hc--intro { left: 1013px; top: 430px; }.hc { animation: hc-float var(--fd, 12s) cubic-bezier(.45, 0, .55, 1) var(--fdl, 900ms) infinite; }.hc--proposal { --fd: 11s; --fa: 2.5px; --fdl: 900ms; }.hc--priority { --fd: 12.5s; --fa: 2px; --fdl: 1600ms; }.hc--deal { --fd: 10.5s; --fa: 2.5px; --fdl: 1200ms; }.hc--engage { --fd: 14s; --fa: 1.5px; --fdl: 1400ms; }.hc--call { --fd: 13s; --fa: 3px; --fdl: 1100ms; }.hc--intro { --fd: 11.8s; --fa: 2.5px; --fdl: 2000ms; }@keyframes hc-float { 50% { transform: translateY(calc(var(--fa, 6px) * -1)); } }.hero__ribbon { animation: ribbon-sway 16s cubic-bezier(.45, 0, .55, 1) 4500ms infinite; }@keyframes ribbon-sway { 50% { translate: 0 -1.5px; } }.type-ch { opacity: 0; }.type-ch.is-typed { opacity: 1; }.type-ch.is-caret { position: relative; }.type-ch.is-caret::after {content: ""; position: absolute; left: 100%; top: .12em; bottom: .08em; width: 1.5px; margin-left: 1px;background: currentColor; border-radius: 1px;animation: type-caret 900ms steps(1, end) infinite;}.type-ch.is-caret.is-typing::after { animation: none; }@keyframes type-caret { 50% { opacity: 0; } }.hc:not(.is-on), .hc:not(.is-on) * { animation-play-state: paused !important; }.replay {position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 10;padding: 8px 14px; border: 1px solid var(--cb-border-subtle); border-radius: 999px;background: #fff; color: var(--cb-text-primary); font: 500 12px/1 var(--cb-sans); cursor: pointer;box-shadow: 0 4px 16px rgba(0, 0, 0, .08);}.replay:hover { background: var(--cb-surface-elevated); }.replay:focus-visible { outline: 2px solid var(--cb-success); outline-offset: 2px; }.cb-deal {--cb-fill-dur: 2400ms; --cb-fill-delay: 400ms;box-sizing: border-box; width: 278px; padding: 8.1px 16.6px;background: #fff; border-radius: 8.3px; box-shadow: 0 8.3px 24.9px rgba(0, 0, 0, .06);display: flex; flex-direction: column; gap: 8.3px; font-family: var(--cb-sans);animation: cb-rise 700ms var(--cb-ease) both;}.cb-deal__name { margin: 0 0 1px; font: 500 12.3px/17px var(--cb-serif); color: var(--cb-text-primary); }.cb-deal__row { display: flex; justify-content: space-between; align-items: baseline; }.cb-deal__label { font: 400 10px/17.6px var(--cb-sans); color: var(--cb-text-tertiary); }.cb-deal__value { font: 600 12.375px/18.7px var(--cb-sans); color: var(--cb-text-primary); font-variant-numeric: tabular-nums; }.cb-deal__bar { height: 6.22px; border-radius: 3.11px; background: var(--cb-border-subtle); overflow: hidden; }.cb-deal__fill { width: 72%; height: 100%; border-radius: inherit; background: var(--cb-progress); transform-origin: left center;animation: cb-fill var(--cb-fill-dur) cubic-bezier(.45, 0, .25, 1) var(--cb-fill-delay) both; }.cb-priority {box-sizing: border-box; width: 403px; padding: 11.68px 15.57px;display: flex; align-items: center; gap: 11.68px;background: #fff; border-radius: 10.29px; font-family: var(--cb-sans);animation: cb-rise 700ms var(--cb-ease) both;}.cb-priority__account { width: 179.14px; display: flex; flex-direction: column; gap: 1.95px; }.cb-priority__name { margin: 0; font: 500 12.65px/17.52px var(--cb-serif); color: var(--cb-text-primary); }.cb-priority__signal { display: flex; align-items: center; gap: 5.84px; font: 400 10.71px/14.6px var(--cb-sans); color: var(--cb-text-secondary); }.cb-priority__dot { width: 5.84px; height: 5.84px; border-radius: 50%; background: var(--cb-success); animation: cb-pulse-lg 2400ms ease-out 900ms infinite; }.cb-priority__potential { display: flex; align-items: center; gap: 7.79px; }.cb-priority__track { width: 62.29px; height: 3.89px; border-radius: 1.95px; background: var(--cb-border-subtle); overflow: hidden; }.cb-priority__fill { width: 94%; height: 100%; border-radius: inherit; background: var(--cb-accent); transform-origin: left center; animation: cb-fill 1100ms var(--cb-ease) 300ms both; }.cb-priority__score { width: 17.52px; font: 500 11.68px/16.55px var(--cb-sans); color: var(--cb-text-primary); font-variant-numeric: tabular-nums; }.cb-priority__cta {box-sizing: border-box; width: 81.76px; height: 31.15px; padding: 0 7.79px;display: inline-flex; align-items: center; justify-content: center;border: 0; border-radius: 7.79px; background: var(--cb-accent);font: 500 10.71px/14.6px var(--cb-sans); color: var(--cb-text-primary); white-space: nowrap; cursor: pointer;transition: transform 200ms var(--cb-ease), filter 200ms var(--cb-ease);}.cb-priority__cta:hover { filter: brightness(.96); }.cb-priority__cta:active { transform: scale(.97); }.cb-call {box-sizing: border-box; width: 274px; min-height: 358px; padding: 13.85px 15.83px 15.83px;display: flex; flex-direction: column; align-items: flex-start; gap: 11.875px;background: #fff; border: .99px solid var(--cb-border-subtle); border-radius: 11.875px;box-shadow: 0 7.92px 19.79px rgba(0, 0, 0, .08); font-family: var(--cb-sans);animation: cb-rise 700ms var(--cb-ease) both;}.cb-call p { margin: 0; }.cb-call__meta { display: flex; align-items: center; gap: 7.92px; font: 400 10.885px/14.84px var(--cb-sans); color: var(--cb-text-tertiary); }.cb-call__chip { padding: 2.97px 7.92px; border-radius: 5.94px; background: var(--cb-surface-subtle); font-weight: 500; color: var(--cb-text-primary); }.cb-call__title { font: 400 15.83px/17.81px var(--cb-serif); color: var(--cb-text-primary); white-space: nowrap; }.cb-call__wave { width: 198.9px; height: 23.75px; display: flex; align-items: center; gap: 1.98px; }.cb-call__wave i {display: block; width: 2.47px; height: var(--h); flex: none; border-radius: 1.24px; background: var(--cb-surface-sunken);transform-origin: center; animation: cb-audio var(--d, 1200ms) ease-in-out var(--dl, 0ms) infinite alternate; --lo: .55;}.cb-call__wave i.is-live { background: var(--cb-lime-500); --lo: .3; }.cb-call__objection { box-sizing: border-box; width: 100%; padding-left: 9.9px; border-left: 1.98px solid var(--cb-success);display: flex; flex-direction: column; align-items: flex-start; gap: 5.94px; }.cb-call__quote { font: 400 12.865px/17.81px var(--cb-serif); color: var(--cb-text-primary); }.cb-call__ready { padding: 2.97px 7.92px; border-radius: 5.94px; background: rgba(74, 212, 92, .14);font: 500 10.39px/13.85px var(--cb-sans); color: var(--cb-success-text); animation: cb-fade-up 500ms var(--cb-ease) 700ms both; }.cb-call__label { font: 500 10.885px/14.84px var(--cb-sans); color: var(--cb-text-tertiary); }.cb-call__tasks { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 7.92px; }.cb-call__task { position: relative; display: flex; align-items: center; gap: 7.92px;font: 400 12.37px/16.82px var(--cb-sans); color: var(--cb-text-primary); white-space: nowrap; cursor: pointer; user-select: none; transition: color 250ms ease; }.cb-call__input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }.cb-call__box { box-sizing: border-box; flex: none; width: 13.85px; height: 13.85px; border-radius: 3.96px;border: 1.19px solid var(--cb-border-subtle); background: #fff; display: grid; place-items: center;transition: background-color 220ms var(--cb-ease), border-color 220ms var(--cb-ease), transform 160ms var(--cb-ease); }.cb-call__tick { width: 9px; height: 9px; overflow: visible; }.cb-call__tick path { fill: none; stroke: #fff; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round;stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 120ms ease; }@media (hover: hover) { .cb-call__task:hover .cb-call__box { border-color: #cfcdcb; } }.cb-call__task:active .cb-call__box { transform: scale(.88); }.cb-call__input:focus-visible + .cb-call__box { outline: 2px solid var(--cb-success); outline-offset: 2px; }.cb-call__task:has(.cb-call__input:checked) { color: var(--cb-text-tertiary); }.cb-call__input:checked + .cb-call__box { background: var(--cb-success); border-color: var(--cb-success); }.cb-call__input:checked + .cb-call__box .cb-call__tick path { stroke-dashoffset: 0; transition: stroke-dashoffset 300ms var(--cb-ease) 90ms; }.cb-move {box-sizing: border-box; display: flex; flex-direction: column;background: rgba(23, 23, 23, .4); -webkit-backdrop-filter: blur(var(--blur)); backdrop-filter: blur(var(--blur));border: var(--hair) solid rgba(255, 255, 255, .2); border-radius: var(--r);filter: drop-shadow(0 var(--sy) var(--sb) rgba(0, 0, 0, .12));font-family: var(--cb-sans); color: #fff;animation: cb-rise 700ms var(--cb-ease) both;}.cb-move p { margin: 0; }.cb-move--proposal { width: 365px; --blur: 16.26px; --hair: .9px; --r: 10.84px; --sy: 9.03px; --sb: 12.65px;--px: 18.07px; --py: 10.84px; --meta: 10.84px; --head: 17.17px; --chip: 9.49px; --chip-lh: 12.65px; --dot: 5.42px;--body: 12.65px; --btn: 11.29px; --btn-py: 7.23px; --btn-px: 10.84px; --btn-r: 5.42px; --gap: 7.23px; --act-px: 15.36px; --act-pt: 9.03px; --body-pb: 3.61px; }.cb-move--intro { width: 395px; --blur: 17.24px; --hair: .96px; --r: 11.5px; --sy: 9.58px; --sb: 13.41px;--px: 19.16px; --py: 11.5px; --meta: 11.5px; --head: 18.2px; --chip: 10.06px; --chip-lh: 13.41px; --dot: 5.75px;--body: 13.41px; --btn: 11.97px; --btn-py: 7.66px; --btn-px: 11.5px; --btn-r: 5.75px; --gap: 7.66px; --act-px: 16.29px; --act-pt: 9.58px; --body-pb: 3.83px; }.cb-move__header { padding: var(--py) var(--px); display: flex; justify-content: space-between; align-items: flex-start; border-bottom: var(--hair) solid rgba(239, 238, 237, .1); }.cb-move__title { display: flex; flex-direction: column; gap: 1.85px; line-height: 1.4; white-space: nowrap; }.cb-move__meta { display: flex; gap: 5.5px; font-size: var(--meta); }.cb-move__via { font-family: "Instrument Sans", var(--cb-sans); color: rgba(255, 255, 255, .7); }.cb-move__heading { font: 400 var(--head)/1.4 var(--cb-serif); }.cb-move__chip { display: inline-flex; align-items: center; gap: 4.6px; padding: 2.8px 7.4px; border-radius: 999px; background: var(--cb-lime-100);font: 500 var(--chip)/var(--chip-lh) var(--cb-sans); color: var(--cb-success-text); white-space: nowrap;animation: cb-pop 450ms var(--cb-ease) 550ms both; }.cb-move__dot { width: var(--dot); height: var(--dot); border-radius: 50%; background: var(--cb-success); animation: cb-pulse 2400ms ease-out 1100ms infinite; }.cb-move__body { padding: var(--py) var(--px) var(--body-pb); font: 500 var(--body)/1.4 var(--cb-sans); }.cb-move__actions { padding: var(--act-pt) var(--act-px) var(--py); display: flex; justify-content: flex-end; gap: var(--gap); }.cb-move__btn { padding: var(--btn-py) var(--btn-px); border-radius: var(--btn-r); font: 500 var(--btn)/1.4 var(--cb-sans); white-space: nowrap; cursor: pointer;transition: background-color 200ms var(--cb-ease), transform 200ms var(--cb-ease), filter 200ms var(--cb-ease); }.cb-move__btn:active { transform: scale(.97); }.cb-move__btn--ghost { background: transparent; border: var(--hair) solid rgba(232, 231, 230, .1); color: #fff; }.cb-move__btn--ghost:hover { background: rgba(255, 255, 255, .06); }.cb-move__btn--primary { padding-inline: calc(var(--btn-px) * 1.083); background: var(--cb-accent); border: 0; color: #000; }.cb-move__btn--primary:hover { filter: brightness(.96); }.cb-engage {--cb-line-dur: 2000ms; --cb-line-delay: 300ms; --cb-sent-at: 2200ms;--cb-silence-dur: 1800ms; --cb-silence-delay: 2550ms; --cb-now-at: 4250ms;--cb-curve-ease: cubic-bezier(.45, 0, .25, 1); --cb-reply-at: 4800ms; --cb-opened-at: 5400ms;box-sizing: border-box; width: 463px; min-height: 291px;background: #fff; border: .93px solid var(--cb-border-subtle); border-radius: 11.15px;box-shadow: 0 7.44px 18.59px rgba(0, 0, 0, .08); overflow: hidden; font-family: var(--cb-sans);animation: cb-rise 700ms var(--cb-ease) both;}.cb-engage p { margin: 0; }.cb-engage__header { box-sizing: border-box; width: 423.6px; padding: 13.01px 14.87px 9.29px; display: flex; justify-content: space-between; align-items: center; }.cb-engage__title { display: flex; flex-direction: column; gap: 2.79px; white-space: nowrap; }.cb-engage__name { font: 400 16.73px/18.59px var(--cb-serif); color: var(--cb-text-primary); }.cb-engage__sub { font: 400 11.15px/14.87px var(--cb-sans); color: var(--cb-text-secondary); }.cb-engage__risk { display: inline-flex; align-items: center; gap: 4.65px; padding: 2.79px 7.44px; border-radius: 999px; background: var(--cb-danger-bg);font: 500 10.22px/13.94px var(--cb-sans); color: var(--cb-danger-text); }.cb-engage__risk i { width: 5.58px; height: 5.58px; border-radius: 50%; background: var(--cb-danger); }.cb-engage__chart { position: relative; height: 158px; }.cb-engage__chart svg { position: absolute; inset: 0; width: 461.14px; height: 158px; overflow: visible; }.cb-grid line { stroke: var(--cb-border-subtle); stroke-width: .93; }.cb-area { fill: rgba(46, 189, 67, .12); animation: cb-fade 1200ms ease calc(var(--cb-line-delay) + 800ms) both; }.cb-line { fill: none; stroke: var(--cb-success); stroke-width: 1.86; stroke-linecap: round; stroke-linejoin: round;stroke-dasharray: 1; stroke-dashoffset: 0; animation: cb-draw var(--cb-line-dur) var(--cb-curve-ease) var(--cb-line-delay) both; }.cb-marker { stroke: #d2d0ce; stroke-width: .93; stroke-dasharray: 2.8 2.8; animation: cb-fade 500ms ease var(--cb-sent-at) both; }.cb-point { transform-box: fill-box; transform-origin: center; animation: cb-pop-point 500ms var(--cb-ease) both; }.cb-point--sent { fill: var(--cb-success);animation: cb-pop-point 500ms var(--cb-ease) var(--cb-sent-at) both, cb-breathe 2400ms ease-in-out calc(var(--cb-sent-at) + 600ms) infinite; }.cb-engage__silence { animation: cb-reveal var(--cb-silence-dur) var(--cb-curve-ease) var(--cb-silence-delay) both; }.cb-silence { fill: none; stroke: var(--cb-danger); stroke-width: 1.86; stroke-dasharray: 4.6 3.7; stroke-linecap: round; stroke-linejoin: round; }.cb-point--now { fill: var(--cb-danger);animation: cb-pop-point 500ms var(--cb-ease) var(--cb-now-at) both, cb-breathe 2400ms ease-in-out calc(var(--cb-now-at) + 600ms) infinite; }.cb-point-ring { fill: none; stroke: var(--cb-danger); stroke-width: 1; transform-box: fill-box; transform-origin: center; opacity: 0;animation: cb-ring 2400ms ease-out calc(var(--cb-now-at) + 500ms) infinite; }.cb-point-ring--sent { stroke: var(--cb-success); animation-delay: calc(var(--cb-sent-at) + 500ms); }.cb-chip { position: absolute; padding: 2.79px 7.44px; border-radius: 5.58px; font: 500 9.76px/13.01px var(--cb-sans); white-space: nowrap; }.cb-chip--sent { left: 244.29px; top: 3.72px; background: var(--cb-surface-elevated); color: var(--cb-text-primary); animation: cb-fade-up 500ms var(--cb-ease) calc(var(--cb-sent-at) + 100ms) both; }.cb-chip--silent { left: 345.76px; top: 74.88px; background: var(--cb-danger-bg); color: var(--cb-danger-text); animation: cb-fade-up 500ms var(--cb-ease) var(--cb-now-at) both; }.cb-axis span { position: absolute; top: 139.42px; font: 400 9.29px/13.01px var(--cb-sans); color: var(--cb-text-tertiary); }.cb-engage__stats { padding: 11.15px 14.87px 13.01px; display: flex; gap: 37.18px; border-top: .93px solid var(--cb-border-subtle); white-space: nowrap; }.cb-stat { display: flex; flex-direction: column; gap: 1.86px; animation: cb-fade-up 600ms var(--cb-ease) both; }.cb-stat--reply { animation-delay: var(--cb-reply-at); }.cb-stat--opened { animation-delay: var(--cb-opened-at); }.cb-stat__label { font: 400 10.22px/13.94px var(--cb-sans); color: var(--cb-text-tertiary); }.cb-stat__value { font: 500 12.08px/16.73px var(--cb-sans); color: var(--cb-text-primary); }.cb-call { min-height: 0; }.hc--proposal { left: 74px; }.hc--priority { left: 962px; }.hc--intro { left: 968px; }.cb-call__task { width: 100%; }.cb-call__tasks { width: 100%; }.cb-due { margin-left: auto; font: 400 10.89px/14.84px var(--cb-sans); color: var(--cb-text-tertiary); font-style: normal; }.cb-plan__title { font: 400 15.83px/20px var(--cb-serif); color: var(--cb-text-primary); white-space: nowrap; }.cb-plan__who { display: flex; align-items: center; gap: 6px; font: 400 10.89px/14.84px var(--cb-sans); color: var(--cb-text-tertiary); }.cb-plan__who i { width: 5.6px; height: 5.6px; border-radius: 50%; background: var(--cb-success); animation: cb-pulse 2400ms ease-out 1100ms infinite; }@media (max-aspect-ratio: 13/10) { .hero__ribbon-path { stroke-width: 28; } }@keyframes cb-rise { from { opacity: 0; translate: 0 8px; } }@keyframes cb-fill { from { transform: scaleX(0); } }@keyframes cb-fade { from { opacity: 0; } }@keyframes cb-fade-up { from { opacity: 0; transform: translateY(3px); } }@keyframes cb-pop { from { opacity: 0; transform: scale(.92); } }@keyframes cb-pop-point { from { opacity: 0; transform: scale(.3); } }@keyframes cb-audio { from { transform: scaleY(var(--lo)); } to { transform: scaleY(1); } }@keyframes cb-draw { from { stroke-dashoffset: 1; } }@keyframes cb-reveal { from { clip-path: inset(0 100% 0 283px); } to { clip-path: inset(0 0 0 283px); } }@keyframes cb-pulse {0% { box-shadow: 0 0 0 0 rgba(46, 189, 67, .45); } 70% { box-shadow: 0 0 0 4.5px rgba(46, 189, 67, 0); } 100% { box-shadow: 0 0 0 0 rgba(46, 189, 67, 0); }}@keyframes cb-pulse-lg {0% { box-shadow: 0 0 0 0 rgba(46, 189, 67, .45); } 70% { box-shadow: 0 0 0 5px rgba(46, 189, 67, 0); } 100% { box-shadow: 0 0 0 0 rgba(46, 189, 67, 0); }}@keyframes cb-breathe { 50% { scale: 1.3; } }@keyframes cb-ring { 0% { opacity: .5; transform: scale(1); } 70% { opacity: 0; transform: scale(2.6); } 100% { opacity: 0; transform: scale(2.6); } }.cb-card { transition: scale 320ms var(--cb-ease); will-change: scale; }@media (hover: hover) { .cb-card:hover { scale: 1.03; } }.hc:hover { z-index: 5; }@media (prefers-reduced-motion: reduce) {.cb-card, .cb-card *, .hero__ribbon-path, .hc, .hero__ribbon { animation: none !important; transition: none !important; }.cb-card:hover { scale: 1; }.cb-point-ring { display: none; }.replay { display: none; }.hero__cta { opacity: 1 !important; visibility: visible !important; translate: -50% 0 !important; }}</style><div class="hero-wrap" id="heroWrap"><section class="hero" id="hero" aria-label="Cobl hero"><template id="heroTpl"><div class="hero__bg"></div><svg class="hero__ribbon" viewBox="0 0 1440 850" width="1440" height="850" aria-hidden="true" focusable="false"><path class="hero__ribbon-path" pathLength="1"
transform="matrix(0.9996524 -0.0263658 0.0263658 0.9996524 -120.390625 96.3017578)"
d="M 0 89.869140625 C 72.83333587646484 45.70247268676758 227.5 -16.130859375 263.5 89.869140625 C 308.5 222.369140625 141 611.869140625 604 477.369140625 C 1067 342.869140625 1220.5 437.869140625 1325 581.369140625 C 1429.5 724.869140625 1285.9892578125 835.3896484375 1230.4892578125 725.8896484375 C 1174.9892578125 616.3896484375 1073.50390625 56 1468.00390625 0"/></svg><div class="hc hc--deal" data-order="4"><div class="cb-card cb-deal" role="group" aria-label="Deal progress: Arcline Defence"><div><p class="cb-deal__name">Arcline Defence</p><div class="cb-deal__row"><span class="cb-deal__label">Toward close</span><span class="cb-deal__value">€120k · <span data-count="72">72</span>%</span></div></div><div class="cb-deal__bar" role="progressbar" aria-valuenow="72" aria-valuemin="0" aria-valuemax="100"><div class="cb-deal__fill"></div></div></div></div><div class="hc hc--priority" data-order="1"><div class="cb-card cb-priority" role="group" aria-label="Signal: Helix Security budget approved"><div class="cb-priority__account"><p class="cb-priority__name">Helix Security</p><div class="cb-priority__signal"><span class="cb-priority__dot" aria-hidden="true"></span>Budget approved for Q1</div></div><div class="cb-priority__potential"><div class="cb-priority__track" role="meter" aria-valuenow="94" aria-valuemin="0" aria-valuemax="100" aria-label="Priority"><div class="cb-priority__fill"></div></div><span class="cb-priority__score">94</span></div><button class="cb-priority__cta" type="button">Follow up</button></div></div><div class="hc hc--call" data-order="3"><article class="cb-card cb-call" aria-label="Follow-up plan for Northgate Cyber"><div class="cb-call__meta"><span class="cb-call__chip">Follow-up plan</span><span>Next 2 weeks</span></div><p class="cb-plan__title cb-call__title">Get Northgate back on track</p><p class="cb-plan__who"><i aria-hidden="true"></i>Prepared by Cobl from the last call</p><p class="cb-call__label">Upcoming tasks</p><ul class="cb-call__tasks" aria-label="Upcoming tasks"><li><label class="cb-call__task"><input class="cb-call__input" type="checkbox" checked data-intro-check><span class="cb-call__box" aria-hidden="true"><svg class="cb-call__tick" viewBox="0 0 9 9"><path pathLength="1" d="M1.6 4.7 3.6 6.6 7.4 2.4"/></svg></span>Send a short recap to Alice<em class="cb-due">Today</em></label></li><li><label class="cb-call__task"><input class="cb-call__input" type="checkbox"><span class="cb-call__box" aria-hidden="true"><svg class="cb-call__tick" viewBox="0 0 9 9"><path pathLength="1" d="M1.6 4.7 3.6 6.6 7.4 2.4"/></svg></span>Share the CFO business case<em class="cb-due">Wed</em></label></li><li><label class="cb-call__task"><input class="cb-call__input" type="checkbox"><span class="cb-call__box" aria-hidden="true"><svg class="cb-call__tick" viewBox="0 0 9 9"><path pathLength="1" d="M1.6 4.7 3.6 6.6 7.4 2.4"/></svg></span>Book the security review<em class="cb-due">Fri</em></label></li></ul></article></div><div class="hc hc--proposal" data-order="0"><article class="cb-card cb-move cb-move--proposal" aria-label="Alert: Arcline Defence opened the proposal 3 times"><header class="cb-move__header"><div class="cb-move__title"><div class="cb-move__meta"><span>Alert,</span><span class="cb-move__via">via: Arcline Defence</span></div><p class="cb-move__heading">Proposal opened 3 times</p></div><span class="cb-move__chip"><span class="cb-move__dot" aria-hidden="true"></span>Just now</span></header><div class="cb-move__body"><p>Shared with their CFO this morning</p></div><div class="cb-move__actions"><button class="cb-move__btn cb-move__btn--ghost" type="button">View activity</button><button class="cb-move__btn cb-move__btn--primary" type="button">Follow up now</button></div></article></div><div class="hc hc--engage" data-order="2"><article class="cb-card cb-engage" aria-label="Northgate Cyber buyer engagement over the last six weeks"><header class="cb-engage__header"><div class="cb-engage__title"><p class="cb-engage__name">Northgate Cyber</p><p class="cb-engage__sub">Buyer engagement · last 6 weeks</p></div><span class="cb-engage__risk"><i aria-hidden="true"></i>At risk</span></header><div class="cb-engage__chart" role="img" aria-label="Engagement rose until the proposal was sent two weeks ago, then dropped over nine days of silence."><svg viewBox="0 0 461.14 158" aria-hidden="true"><g class="cb-grid"><line x1="22.31" x2="414.53" y1="31.6" y2="31.6"/><line x1="22.31" x2="414.53" y1="64.44" y2="64.44"/><line x1="22.31" x2="414.53" y1="97.28" y2="97.28"/><line x1="22.31" x2="414.53" y1="130.12" y2="130.12"/></g><path class="cb-area" d="M22.31 69.04 L153.05 45.39 L218.42 51.3 L283.79 53.28 L283.79 130.12 L22.31 130.12 Z"/><line class="cb-marker" x1="283.79" x2="283.79" y1="24.17" y2="130.12"/><path class="cb-line" pathLength="1" d="M22.31 69.04 L153.05 45.39 L218.42 51.3 L283.79 53.28"/></svg><svg class="cb-engage__silence" viewBox="0 0 461.14 158" aria-hidden="true"><path class="cb-silence" d="M283.79 53.28 L349.16 97 L414.53 106.48"/></svg><svg viewBox="0 0 461.14 158" aria-hidden="true"><circle class="cb-point-ring cb-point-ring--sent" cx="283.79" cy="53.28" r="4.18"/><circle class="cb-point cb-point--sent" cx="283.79" cy="53.28" r="4.18"/><circle class="cb-point-ring" cx="414.53" cy="106.48" r="4.18"/><circle class="cb-point cb-point--now" cx="414.53" cy="106.48" r="4.18"/></svg><span class="cb-chip cb-chip--sent">Proposal sent</span><span class="cb-chip cb-chip--silent">9 days silent</span><div class="cb-axis" aria-hidden="true"><span style="left:15.33px">6w</span><span style="left:80.71px">5w</span><span style="left:146.08px">4w</span><span style="left:211.45px">3w</span><span style="left:276.82px">2w</span><span style="left:343.12px">1w</span><span style="left:404.31px">Now</span></div></div><div class="cb-engage__stats"><div class="cb-stat cb-stat--reply"><span class="cb-stat__label">Last reply</span><span class="cb-stat__value">9 days ago</span></div><div class="cb-stat cb-stat--opened"><span class="cb-stat__label">Proposal opened</span><span class="cb-stat__value">Not yet</span></div></div></article></div><div class="hc hc--intro" data-order="5"><article class="cb-card cb-move cb-move--intro" aria-label="Next move: Re-engage Alice"><header class="cb-move__header"><div class="cb-move__title"><div class="cb-move__meta"><span>Next move,</span><span class="cb-move__via">via: 9 days of silence</span></div><p class="cb-move__heading">Re-engage Alice</p></div><span class="cb-move__chip"><span class="cb-move__dot" aria-hidden="true"></span>Draft ready</span></header><div class="cb-move__body"><p>A short note with the case study<br>she asked for on the call.</p></div><div class="cb-move__actions"><button class="cb-move__btn cb-move__btn--ghost" type="button">Preview</button><button class="cb-move__btn cb-move__btn--primary" type="button">Send follow-up</button></div></article></div></template></section></div><script>
(function () {
var wrap = document.getElementById('heroWrap');
var hero = document.getElementById('hero');
var tpl = document.getElementById('heroTpl');
var still = matchMedia('(prefers-reduced-motion: reduce)').matches;
var BASE = 250, STEP = 140;
var APPEAR = { proposal: 400, call: 900, engage: 1600, intro: 2400, deal: 2850, priority: 3300 };
function appearAt(hc) { for (var k in APPEAR) if (hc.classList.contains('hc--' + k)) return APPEAR[k]; return BASE; }
var timers = [];
var WIDE = [50, 147, 1340, 569], NARROW = [452, 300, 503, 350];
function fit() {
var W = wrap.clientWidth, H = wrap.clientHeight;
var narrow = W / H < 1.3, R = narrow ? NARROW : WIDE;
var k = narrow ? Math.min(W / R[2], H / R[3]) : Math.max(W / R[2], H / R[3]);
var ox = (W - R[2] * k) / 2 - R[0] * k, oy = (H - R[3] * k) / 2 - R[1] * k;
hero.style.transform = 'translate(' + ox + 'px,' + oy + 'px) scale(' + k + ')';
}
function initCall(card, delay) {
card.querySelectorAll('.cb-call__wave i').forEach(function (bar, i) {
var r = Math.abs(Math.sin(i * 12.9898) * 43758.5453) % 1;
var live = bar.classList.contains('is-live');
bar.style.setProperty('--d', Math.round((live ? 520 : 760) + r * (live ? 380 : 620)) + 'ms');
bar.style.setProperty('--dl', -Math.round(r * 1400) + 'ms');
});
if (still) return;
var first = card.querySelector('[data-intro-check]');
if (!first) return;
first.checked = false;
var t = setTimeout(function () { first.checked = true; }, delay + 1300);
timers.push(t);
first.addEventListener('change', function () { clearTimeout(t); }, { once: true });
}
function initDeal(card) {
var el = card.querySelector('[data-count]');
var fill = card.querySelector('.cb-deal__fill');
if (!el || !fill || still) return;
var target = +el.dataset.count;
el.textContent = '0';
fill.addEventListener('animationend', function () { el.textContent = target; }, { once: true });
requestAnimationFrame(function step() {
if (!fill.isConnected) return;
var m = getComputedStyle(fill).transform;
var scale = m === 'none' ? 1 : parseFloat(m.split('(')[1]);
el.textContent = Math.round(target * scale);
if (scale < 1) requestAnimationFrame(step);
});
}
var TYPE_MIN = 45; // fastest keystroke (ms)
var TYPE_MAX = 95; // slowest keystroke (ms)
var TYPE_SPACE = 70; // extra pause after a word
var CARET_HOLD = 1100; // caret blinks this long after the last letter, then goes
function typeIn(el, start, speed) {
speed = speed || 1;
var original = el.innerHTML;
el.setAttribute('aria-label', el.textContent.replace(/\s+/g, ' ').trim());
var chars = [];
(function walk(node) {
Array.prototype.slice.call(node.childNodes).forEach(function (n) {
if (n.nodeType === 3) {
var frag = document.createDocumentFragment();
Array.from(n.textContent).forEach(function (ch) {
if (/\s/.test(ch)) { frag.appendChild(document.createTextNode(ch)); if (chars.length) chars[chars.length - 1].space = true; return; }
var sp = document.createElement('span');
sp.className = 'type-ch';
sp.setAttribute('aria-hidden', 'true');
sp.textContent = ch;
frag.appendChild(sp);
chars.push({ el: sp });
});
n.parentNode.replaceChild(frag, n);
} else if (n.nodeType === 1 && n.tagName !== 'BR') {
walk(n);
}
});
})(el);
if (!chars.length) return;
var t = start;
chars.forEach(function (c) {
c.at = t;
t += (TYPE_MIN + Math.random() * (TYPE_MAX - TYPE_MIN) + (c.space ? TYPE_SPACE : 0)) * speed;
});
var caret = null;
function moveCaret(sp, typing) {
if (caret) caret.classList.remove('is-caret', 'is-typing');
caret = sp;
sp.classList.add('is-caret');
sp.classList.toggle('is-typing', typing);
}
chars.forEach(function (c, i) {
timers.push(setTimeout(function () {
if (!el.isConnected) return;
c.el.classList.add('is-typed');
moveCaret(c.el, i < chars.length - 1);
}, c.at));
});
timers.push(setTimeout(function () {
if (!el.isConnected) return;
el.innerHTML = original; el.removeAttribute('aria-label');
}, t + CARET_HOLD));
return t;
}
var TYPE_ORDER = [
'.cb-move--proposal .cb-move__heading',
'.cb-call__title',
'.cb-engage__name',
'.cb-move--intro .cb-move__heading',
'.cb-deal__name',
'.cb-priority__name'
];
var TYPE_FIRST = 800; // first title starts typing
var TYPE_OVERLAP = .45; // next title starts when the previous is this far through
var TYPE_GAP = [120, 380];// plus a random breath (ms) so the cadence never repeats
function scheduleTyping() {
var at = TYPE_FIRST, last = 0;
TYPE_ORDER.forEach(function (sel) {
var el = hero.querySelector(sel);
if (!el) return;
var hc = el.closest('.hc'); if (hc) at = Math.max(at, appearAt(hc) + 350);
var speed = .85 + Math.random() * .35;
var end = typeIn(el, at, speed);
last = Math.max(last, end);
at = at + (end - at) * TYPE_OVERLAP + TYPE_GAP[0] + Math.random() * (TYPE_GAP[1] - TYPE_GAP[0]);
});
return last;
}
var CTA_AFTER = 120; // pause after the stroke finishes before the CTA appears
function play() {
timers.forEach(clearTimeout); timers = [];
hero.querySelectorAll(':scope > :not(template)').forEach(function (n) { n.remove(); });
hero.appendChild(tpl.content.cloneNode(true));
hero.querySelectorAll('.hc').forEach(function (hc) {
var delay = still ? 0 : appearAt(hc);
if (hc.querySelector('.cb-call')) initCall(hc, delay);
if (hc.querySelector('.cb-deal')) initDeal(hc);
timers.push(setTimeout(function () { hc.classList.add('is-on'); }, delay));
});
if (!still) scheduleTyping();
}
var started = false;
fit();
window.addEventListener('resize', fit);
if ('ResizeObserver' in window) new ResizeObserver(fit).observe(wrap);
if ('IntersectionObserver' in window) {
new IntersectionObserver(function (es) { es.forEach(function (e) {
if (e.isIntersecting && !started) { started = true; play(); }
}); }, { threshold: .3 }).observe(document.body);
} else { started = true; play(); }
})();
</script></body></html>