{"v":"r18","html":"<style>:host{all:initial;display:block}[hidden]:not([hidden=until-found i]){display:none!important}img{max-width:100%}@media (min-width:900px){[id]{scroll-margin-top:var(--hd)}}</style><div class=\"ykb\"><style>\n/* Round 4 shared layer: brand primitives (yoke-brand tokens.json), reset, utilities. Light only. */\n:host{\n  --ink:#111317; --canvas:#F7F4EC; --paper:#FFFFFF; --panel:#EFEEE8; --stone:#D8D5CD; --muted:#686A63;\n  --coral:#F04B37; --lime:#CDF05B; --blue:#315BFF; --sky:#A7D8FF;\n  --font:\"Instrument Sans\",\"Instrument Sans Variable\",Inter,Arial,sans-serif;\n  --ease:cubic-bezier(.2,0,0,1); --joint:cubic-bezier(.65,0,.35,1);\n  color-scheme:light;\n}\n*,*::before,*::after{box-sizing:border-box}\n:host{-webkit-text-size-adjust:100%}\n.ykb{margin:0;font-family:var(--font);font-size:16px;line-height:24px;font-weight:450;color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:clip}\nh1,h2,h3,p,ul,ol,figure,blockquote,dl,dd{margin:0}\nul,ol{padding:0;list-style:none}\na{color:inherit}\nbutton{font:inherit;color:inherit}\nsvg{display:block}\n[hidden]{display:none!important}\n:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:6px}\n.sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}\n.i{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none}\n.logo{display:block;height:24px;width:auto}\n.tnum{font-variant-numeric:tabular-nums}\n@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important;scroll-behavior:auto!important}}\n\n/* Round 15. Phone first (390), desktop from 900. Round 4 look: paper, blueprint grid, ink hairlines,\n   Blue for data, Lime for what you get, Coral for Yoke. */\n:host{--grid:#EDEBE5;--line:#DEDBD3;--soft:#45473F;--g:16px;--hd:56px}\n@media (min-width:900px){:host{--g:clamp(32px,4.5vw,64px);--hd:64px}}\n:host{scroll-behavior:smooth}\n@media (min-width:900px){:host{scroll-padding-top:var(--hd)}}\n@media (prefers-reduced-motion: reduce){:host{scroll-behavior:auto}}\n.ykb{background:var(--paper)}\n.bp{background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:32px 32px;background-position:-1px -1px}\n.wrap{max-width:1320px;margin-inline:auto;padding-inline:var(--g)}\n.ex{display:inline-flex;align-items:center;height:20px;padding-inline:7px;border:1px dashed #BDB9AE;border-radius:4px;font-size:10px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap;background:var(--paper);flex:none}\n.eyb{font-size:12px;line-height:16px;font-weight:650;letter-spacing:.09em;text-transform:uppercase;color:var(--soft)}\n.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding-inline:24px;border-radius:999px;border:0;background:var(--ink);color:var(--paper);font-size:16px;font-weight:600;text-decoration:none;white-space:nowrap;cursor:pointer}\n.btn:hover{background:#2A2D33}\n.btn .i{width:18px;height:18px}\n.mono{display:inline-grid;place-items:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--panel);border:1px solid var(--stone);font-size:12.5px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}\n.mono.co{border-radius:9px;background:var(--ink);border-color:var(--ink);color:var(--paper)}\n.mono.sm{width:28px;height:28px;font-size:10.5px}\n.mono.sm.co{border-radius:7px}\n\n/* header and sticky bar */\n.hd{position:relative;z-index:40;background:var(--paper);border-bottom:1px solid var(--line)}\n.hd .wrap{height:var(--hd);display:flex;align-items:center;justify-content:space-between;gap:16px}\n.hd .home{display:inline-flex;align-items:center;min-height:44px}\n.hd .logo{height:22px}\n.hd .btn{min-height:44px;padding-inline:18px;font-size:14.5px}\n@media (min-width:900px){.hd{position:sticky;top:0;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.hd .logo{height:24px}}\n.sbar{position:fixed;left:0;right:0;bottom:0;z-index:50;padding:10px var(--g) calc(10px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-top:1px solid var(--line);transform:translateY(110%);transition:transform 260ms var(--ease)}\n.sbar.on{transform:none}\n.sbar .btn{width:100%}\n@media (min-width:900px){.sbar{display:none}}\n\n/* type */\nh1{font-size:clamp(36px,9.6vw,44px);line-height:1.02;letter-spacing:-.04em;font-weight:700;text-wrap:balance}\n.h2{font-size:clamp(29px,7.6vw,34px);line-height:1.06;letter-spacing:-.035em;font-weight:700;text-wrap:balance}\n.lead{font-size:17px;line-height:1.5;color:var(--soft)}\n.sub{font-size:17.5px;line-height:1.5;color:var(--soft)}\n@media (min-width:900px){\n  h1{font-size:clamp(48px,4.4vw,64px);line-height:.98}\n  .h2{font-size:clamp(38px,3.6vw,52px);line-height:1.02}\n  .lead{font-size:clamp(17px,1.3vw,19px)}\n  .sub{font-size:clamp(18px,1.4vw,20px)}\n}\n\n/* sections */\n.sec{padding-block:48px;border-bottom:1px solid var(--line)}\n.sec-top{display:grid;gap:14px;margin-bottom:24px}\n@media (min-width:900px){\n  .sec{padding-block:clamp(64px,7vw,96px)}\n  .sec-top{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:20px clamp(32px,5vw,80px);align-items:end;margin-bottom:clamp(28px,3vw,44px)}\n  .two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center}\n  .two .sec-top{grid-template-columns:minmax(0,1fr);margin-bottom:0}\n}\n.under{margin-top:20px;font-size:16px;line-height:1.5;font-weight:550;color:var(--ink)}\n\n/* the product-style card every mockup sits in */\n.mk{background:var(--paper);border:1px solid var(--ink);border-radius:16px;overflow:hidden}\n.mh{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:10px 16px;border-bottom:1px solid var(--line)}\n.mh b{font-size:15px;line-height:20px;font-weight:650}\n.mb{padding:14px 16px}\n\n/* staged reveal: the first item is always visible; the rest land once, in order */\n.sq{transition:opacity 420ms var(--ease),transform 420ms var(--ease)}\n.sq.pend{opacity:0;transform:translateY(8px)}\n.sq.pend.x{transform:translateX(-8px)}\n\n/* ---------- Hero ---------- */\n.hero{padding-block:28px 40px;border-bottom:1px solid var(--line)}\n.hero-g{display:grid;gap:32px}\n.hero-t{display:grid;justify-items:start;gap:16px}\n.hero-t .btn{margin-top:4px}\n.proof{display:grid;gap:8px;font-size:14px;line-height:20px}\n.proof .pl{font-size:12px;line-height:16px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}\n.proof ul{display:flex;flex-wrap:wrap;gap:8px}\n.proof li{display:grid;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}\n.proof li b{font-size:15px;font-weight:700;letter-spacing:-.01em}\n.proof li span{font-size:12.5px;color:var(--muted)}\n@media (min-width:900px){\n  .hero{padding-block:clamp(36px,5vh,64px) clamp(44px,6vh,72px)}\n  .hero-g{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:clamp(40px,5vw,88px);align-items:center}\n  .hero-t{gap:20px}\n}\n.hc{max-width:460px;width:100%;justify-self:center}\n.hc .ln{display:grid;grid-template-columns:36px minmax(0,1fr);gap:12px;align-items:center;padding:11px 16px;border-top:1px solid var(--line);font-size:15.5px;line-height:21px}\n.hc .ln:first-child{border-top:0}\n.hc .ln b{font-weight:700;font-variant-numeric:tabular-nums}\n.hc .ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--panel);color:var(--ink)}\n.hc .ic .i{width:18px;height:18px}\n.hc .ln.data .ic{background:color-mix(in srgb,var(--sky) 50%,var(--paper));color:var(--blue)}\n.hc .ln.win{background:var(--lime);font-weight:600}\n.hc .ln.win .ic{background:var(--ink);color:var(--lime)}\n.hc .ln.bill{border-top:1.5px dashed #BDB9AE;background:#FBFAF6}\n.hc .ln.bill .ic{background:var(--paper);border:1px solid var(--line);color:var(--ink)}\n.hc .ln.skip .ic{color:var(--muted)}\n.hc .ln.end{border-top:1px solid var(--ink)}\n.hc .ln.end b{font-size:17px}\n\n/* ---------- 2A: the cost chart and the receipt ---------- */\n.chart{margin-top:4px}\n.ct{font-size:14px;line-height:20px;font-weight:650;color:var(--ink)}\n.cbox{position:relative;margin-top:-6px;display:none}\n.fn{margin-top:14px;font-size:12.5px;line-height:18px;color:var(--muted);max-width:90ch}\n#cv{display:block;overflow:visible;font-family:var(--font)}\n#cv .tk{font-size:12.5px;font-weight:600;fill:#686A63}\n#cv .xl{font-size:13px;font-weight:600;fill:#2E302B}\n#cv .tot{font-size:16px;font-weight:700;fill:#111317;font-variant-numeric:tabular-nums}\n#cv .ly{font-size:12.5px;font-weight:650}\n#cv .ly2{font-size:10.5px;font-weight:550}\n#cv .note text{font-size:11.5px;font-weight:550;fill:#FFFFFF}\n#cv .nm{font-size:18px;font-weight:700;fill:#111317}\n#cv .nm2,#cv .yk2{font-size:13px;font-weight:550;fill:#45473F}\n#cv .yk{font-size:16px;font-weight:700;fill:#111317}\n#cv .note,#cv .tot,#cv .lab,#cv .nmg{transition:opacity 300ms}\n#cv .lay,#cv .lab,#cv .hit{cursor:pointer}\n#cv .lay{transition:filter 150ms}\n#cv .lay.on{filter:brightness(.93)}\n#cv .lab:focus{outline:none}\n#cv .lab:focus-visible text{text-decoration:underline}\n.tip{position:absolute;z-index:6;width:min(330px,100%);padding:12px 14px;border-radius:12px;background:var(--paper);border:1px solid var(--ink);box-shadow:0 14px 34px -14px rgba(17,19,23,.35);font-size:13px;line-height:18px;color:var(--soft)}\n.tip p + p{margin-top:6px}\n.tip .w{color:var(--ink);font-weight:600}\n.tip b{font-weight:650;color:var(--ink)}\n.tip .src,.dt .src{font-size:12px;color:var(--muted)}\n.tip a,.dt a{color:var(--ink);text-underline-offset:2px}\n.dt .src a{display:inline-block;padding-block:15px;margin-block:-15px}\n.rc{margin-top:12px;max-width:520px}\n.rc .rl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:baseline;padding:10px 16px;border-top:1px dashed #CFCBC1;font-size:15.5px;line-height:21px}\n.rc .rl:first-child{border-top:0}\n.rc .rl .amt{font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}\n.rc .rl small{grid-column:1/-1;text-wrap:pretty;font-size:12.5px;line-height:17px;color:var(--muted)}\n.rc .rl.tot{border-top:1.5px solid var(--ink);font-size:16.5px}\n.rc .rl.tot span{font-weight:750}\n.rc .yk{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;padding:12px 16px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--coral) 8%,var(--paper));font-size:15px;line-height:21px;font-weight:550}\n.rc .yk i{width:18px;height:5px;margin-top:8px;border-radius:3px;background:var(--coral)}\n.dts{border-top:1px solid var(--line)}\n.dts summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding-inline:16px;font-size:14.5px;font-weight:650;cursor:pointer;list-style:none}\n.dts summary::-webkit-details-marker{display:none}\n.dts summary .i{width:18px;height:18px;transition:transform 200ms}\n.dts[open] summary .i{transform:rotate(180deg)}\n.dts .dl{display:grid;gap:12px;padding:0 16px 16px;font-size:13.5px;line-height:19px;color:var(--soft)}\n.dt b{display:block;color:var(--ink);font-weight:650}\n.dt p + p{margin-top:4px}\n@media (min-width:1130px){.cbox{display:block}.rc{display:none}}\n\n/* ---------- 2B: a builder's week ---------- */\n.wk{max-width:520px;width:100%}\n.wk .day{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 16px;border-top:1px solid var(--line);font-size:15px;line-height:21px}\n.wk .day:first-child{border-top:0}\n.wk .d{display:grid;place-items:center;height:28px;border-radius:6px;background:var(--panel);font-size:12px;font-weight:700;letter-spacing:.03em}\n.wk .h{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:650;white-space:nowrap;font-variant-numeric:tabular-nums}\n.wk .h .i{width:14px;height:14px;color:var(--muted)}\n.wk .tot{display:flex;align-items:center;gap:10px;padding:13px 16px;background:var(--ink);color:var(--paper);font-size:15.5px;line-height:21px;font-weight:650}\n.wk .tot .i{width:18px;height:18px}\n\n/* ---------- 3: one account, five stages ---------- */\n.flow{display:grid;gap:0}\n.stg{display:grid;gap:8px}\n.stg > .k{display:flex;align-items:center;gap:8px;font-size:11.5px;line-height:16px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}\n.stg > .k .ex{margin-left:auto;font-style:normal}\n.stg > .k span{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--ink);color:var(--paper);font-size:10.5px;letter-spacing:0}\n.box{border:1px solid var(--ink);border-radius:14px;background:var(--paper);padding:12px 14px;font-size:14.5px;line-height:20px}\n.acc{display:flex;align-items:center;gap:10px}\n.acc .mono:nth-child(2){margin-left:-16px;box-shadow:0 0 0 2px var(--paper)}\n.acc b{display:block;font-size:15px}\n.acc small{display:block;font-size:13px;color:var(--soft)}\n.fit{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;align-items:start}\n.fit .ok,.chk .ok{width:24px;height:24px;border-radius:50%;background:var(--lime);border:1px solid var(--ink);display:grid;place-items:center}\n.fit .ok .i,.chk .ok .i{width:13px;height:13px;stroke-width:2.6}\n.facts{display:grid;gap:8px}\n.fact{display:grid;gap:3px}\n.fact span{font-weight:600}\n.srcl{display:inline-flex;align-items:center;gap:5px;justify-self:start;height:22px;padding-inline:6px 8px;border-radius:5px;background:color-mix(in srgb,var(--sky) 45%,var(--paper));border:1px solid color-mix(in srgb,var(--blue) 30%,transparent);font-size:11.5px;font-weight:600;white-space:nowrap;color:var(--ink)}\n.srcl .i{width:12px;height:12px;color:var(--blue)}\n.msg .from{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;color:var(--muted)}\n.msg .from b{color:var(--ink);font-size:14px}\n.msg p{font-size:15px;line-height:23px}\n.chip{display:inline-flex;align-items:center;height:18px;padding-inline:6px;margin-left:3px;border-radius:4px;background:color-mix(in srgb,var(--sky) 55%,var(--paper));border:1px solid color-mix(in srgb,var(--blue) 25%,transparent);font-size:10px;line-height:1;font-weight:700;letter-spacing:.03em;text-transform:uppercase;vertical-align:2px;white-space:nowrap}\n.rep{display:grid;gap:10px}\n.bub{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:start}\n.bub p{background:var(--ink);color:var(--paper);border-radius:12px 12px 12px 4px;padding:9px 12px;font-size:14.5px;line-height:20px}\n.sorted{display:inline-flex;align-items:center;gap:6px;justify-self:start;min-height:28px;padding:4px 10px;border-radius:6px;background:var(--lime);border:1px solid var(--ink);font-size:13px;line-height:18px;font-weight:650}\n.sorted .i{width:14px;height:14px;stroke-width:2.4}\n.wire{width:1.5px;height:24px;margin-left:10px;background:var(--blue);position:relative}\n.wire::after{content:\"\";position:absolute;left:-3.5px;bottom:-1px;border:4px solid transparent;border-top:5px solid var(--blue);border-bottom:0}\n@media (min-width:900px){\n  .flow{grid-template-columns:minmax(0,.82fr) 28px minmax(0,.9fr) 28px minmax(0,1.05fr) 28px minmax(0,1.6fr) 28px minmax(0,1fr);align-items:start}\n  .wire{width:100%;height:1.5px;margin:0;margin-top:52px}\n  .wire::after{left:auto;right:-1px;bottom:auto;top:-3.25px;border:4px solid transparent;border-left:5px solid var(--blue);border-right:0}\n  .acc{flex-wrap:wrap}\n}\n\n/* ---------- 4: the contact that keeps itself fresh ---------- */\n.ctc{max-width:500px;width:100%}\n.ctc .who{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}\n.ctc .who b{display:block;font-size:16.5px;line-height:22px}\n.ctc .who .ex{margin-left:auto}\n.evs{position:relative;display:grid;gap:0;padding:6px 16px}\n.ev{position:relative;display:grid;grid-template-columns:44px 32px minmax(0,1fr);gap:10px;align-items:start;padding:10px 0;font-size:15px;line-height:21px}\n.ev .m{font-size:12px;line-height:28px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}\n.ev .ic{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--sky) 45%,var(--paper));border:1px solid color-mix(in srgb,var(--blue) 30%,transparent);color:var(--blue);position:relative;z-index:1}\n.ev .ic .i{width:14px;height:14px}\n.ev + .ev::before{content:\"\";position:absolute;left:67.25px;top:-12px;height:22px;width:1.5px;background:var(--line)}\n.ev .t{padding-top:3px}\n.flag{display:inline-block;white-space:nowrap;padding:1px 6px;border-radius:5px;background:var(--lime);font-weight:650;box-decoration-break:clone;-webkit-box-decoration-break:clone}\n.ev.hot .ic{background:var(--lime);border-color:var(--ink);color:var(--ink)}\n.ctc .tag{padding:11px 16px;border-top:1px solid var(--line);background:#FBFAF6}\n.ctc .tag span{display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:4px 11px;border-radius:7px;background:var(--lime);border:1px solid var(--ink);font-size:14px;font-weight:650}\n.ctc .tag .i{width:15px;height:15px;stroke-width:2.4}\n.ev .t::first-letter,.wk .day > span:nth-child(2)::first-letter,.row small::first-letter{text-transform:uppercase}\n\n/* ---------- 5: how it works ---------- */\n.steps{display:grid;gap:28px}\n.step{display:grid;gap:10px;align-content:start}\n.step h3{display:flex;align-items:baseline;gap:10px;font-size:20px;line-height:26px;letter-spacing:-.015em;font-weight:700}\n.step h3 span{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;background:var(--ink);color:var(--paper);font-size:13px;letter-spacing:0;transform:translateY(-2px)}\n.step > p{font-size:15.5px;line-height:23px;color:var(--soft)}\n.step .mk{margin-top:4px}\n.chk{display:grid;grid-template-columns:24px minmax(0,1fr);gap:9px;align-items:start;font-size:15px;line-height:22px;font-weight:600}\n.chk span:last-child::first-letter,.cl li span:last-child::first-letter{text-transform:uppercase}\n.url{flex:1;min-width:0;display:flex;align-items:center;gap:8px;height:36px;padding-inline:10px;border:1px solid var(--line);border-radius:8px;background:#FBFAF6;font-size:14px;font-weight:600}\n.url .i{width:16px;height:16px;color:var(--muted)}\n.learn{display:grid;gap:7px;align-content:start}\n.learn .k{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}\n.learn p{font-size:14px;line-height:20px}\n.learn p b{font-weight:650}\n.rows{display:grid}\n.row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line);font-size:14px;line-height:19px}\n.row:first-child{border-top:0;padding-top:0}\n.row b{display:block;font-weight:650}\n.row small{display:block;font-size:12.5px;line-height:17px;color:var(--soft)}\n.fitb{display:inline-flex;align-items:center;height:22px;padding-inline:7px;border-radius:5px;font-size:11.5px;font-weight:650;white-space:nowrap;background:color-mix(in srgb,var(--sky) 45%,var(--paper));color:var(--ink);border:1px solid color-mix(in srgb,var(--blue) 30%,transparent)}\n.fitb.good{background:var(--paper);border-color:var(--line);color:var(--soft)}\n.fbtn{display:flex;align-items:center;justify-content:center;height:36px;margin-top:10px;border-radius:999px;background:var(--ink);color:var(--paper);font-size:13.5px;font-weight:600}\n.tl{display:grid}\n.tl li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:center;font-size:14px;line-height:19px;min-height:30px}\n.tl .d{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--panel);border:1px solid var(--stone)}\n.tl .d .i{width:13px;height:13px}\n.tl li.w{min-height:22px;color:var(--muted);font-size:12.5px;font-weight:600}\n.tl li.w .d{background:none;border:0;height:22px;width:24px;position:relative}\n.tl li.w .d::before{content:\"\";position:absolute;left:11.25px;top:0;bottom:0;border-left:1.5px dashed #BDB9AE}\n.tl li.rs .d{background:var(--lime);border-color:var(--ink)}\n.tl li.bk{margin-top:6px}\n.tl li.bk span:last-child{background:var(--lime);border:1px solid var(--ink);border-radius:6px;padding:4px 8px;font-weight:650;justify-self:start}\n.tl li.bk .d{background:var(--ink);border-color:var(--ink);color:var(--lime)}\n.caps{margin-top:32px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}\n.caps li{display:flex;align-items:center;gap:9px;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-size:14px;line-height:18px;font-weight:600}\n.caps .i{width:18px;height:18px;color:var(--blue)}\n@media (min-width:900px){\n  .steps{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto auto auto auto;column-gap:clamp(20px,2.4vw,36px);row-gap:0}\n  .step{grid-row:span 4;grid-template-rows:subgrid;row-gap:10px}\n  .step .mk{display:flex;flex-direction:column}\n  .step .mk .mb{flex:1}\n  .caps{grid-template-columns:repeat(6,minmax(0,1fr));margin-top:40px}\n}\n\n/* ---------- 6: how you pay, compared ---------- */\n.cmp{width:100%;border-collapse:separate;border-spacing:0;font-size:15px;line-height:21px;display:none}\n.cmp th,.cmp td{padding:14px 16px;text-align:left;vertical-align:top;border-top:1px solid var(--line)}\n.cmp thead th{border-top:0;font-size:12px;line-height:16px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding-block:10px}\n.cmp tbody th{font-weight:650;width:23%}\n.cmp tr.yk th,.cmp tr.yk td{background:color-mix(in srgb,var(--coral) 7%,var(--paper));border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);font-weight:600}\n.cmp tr.yk th{border-left:1.5px solid var(--ink);border-radius:12px 0 0 12px;position:relative}\n.cmp tr.yk td:last-child{border-right:1.5px solid var(--ink);border-radius:0 12px 12px 0}\n.cmp tr.yk + tr th,.cmp tr.yk + tr td{border-top:0}\n.ykn{display:inline-flex;align-items:center;gap:8px}\n.ykn .sym{width:26px;height:auto}\n.cards{display:grid;gap:12px}\n.cc{border:1px solid var(--line);border-radius:14px;background:var(--paper);padding:14px 16px}\n.cc h3{display:flex;align-items:center;gap:8px;font-size:17px;line-height:22px;font-weight:700;margin-bottom:8px}\n.cc dl{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:6px 12px;font-size:14px;line-height:19px}\n.cc dt{color:var(--muted);font-weight:550}\n.cc dd{font-weight:550}\n.cc.yk{border:1.5px solid var(--ink);background:color-mix(in srgb,var(--coral) 7%,var(--paper))}\n.cc.yk dd{font-weight:650}\n@media (min-width:900px){.cmp{display:table}.cards{display:none}}\n\n/* ---------- 7: offer and form ---------- */\n.offer{display:grid;gap:24px}\n.offer-l{display:grid;gap:20px}\n.cl{display:grid;gap:10px}\n.cl li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:start;font-size:16px;line-height:23px;font-weight:550}\n.cl .ok{width:24px;height:24px;border-radius:50%;background:var(--lime);border:1px solid var(--ink);display:grid;place-items:center}\n.cl .ok .i{width:13px;height:13px;stroke-width:2.6}\n.pv .mb{display:grid;gap:12px}\n.pv .acc b{font-size:15px}\n.pv .kv{font-size:15px;line-height:22px}\n.pv .kv b{font-weight:650}\n.pv .fl{font-weight:600}\n.pv .cr{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px dashed #CFCBC1;background:#FBFAF6;font-size:14px;font-weight:600}\n.pv .cr .i{width:16px;height:16px;color:var(--muted)}\n.gf{border:1px solid var(--ink);border-radius:18px;background:var(--paper);padding:20px 16px;display:grid;gap:16px}\n.fld{display:grid;gap:6px;font-size:14.5px;line-height:20px;font-weight:650}\n.fld em{font-style:normal;font-size:12.5px;font-weight:550;color:var(--muted);margin-left:6px}\n.fld input,.fld select{font:inherit;font-weight:450;font-size:16px;line-height:22px;min-height:48px;padding:11px 13px;border-radius:10px;border:1px solid #BDB9AE;background:var(--paper);color:var(--ink);width:100%;min-width:0}\n.fld select{appearance:none;-webkit-appearance:none;padding-right:40px;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111317' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 12px center;background-size:18px}\n.fld input:focus,.fld select:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--ink)}\n.fld [aria-invalid=\"true\"]{border-color:var(--coral);box-shadow:inset 0 0 0 1px var(--coral)}\n.fld .err{font-size:13px;line-height:18px;font-weight:600;color:#C2341F}\n.gf .btn{width:100%;margin-top:4px}\n.conf{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:start;border:1px solid var(--ink);border-radius:18px;background:var(--lime);padding:22px 18px}\n.conf:focus{outline:none}\n.conf .ok{width:40px;height:40px;border-radius:50%;background:var(--ink);color:var(--lime);display:grid;place-items:center}\n.conf .ok .i{width:20px;height:20px;stroke-width:2.6}\n.conf p{font-size:17px;line-height:1.5;font-weight:550}\n@media (min-width:900px){\n  .offer{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,4vw,64px);align-items:start}\n  .offer-l{display:grid;gap:22px}\n  .gf{padding:28px}\n}\n.foot{padding-block:24px 32px;font-size:13px;line-height:19px;color:var(--muted)}\n.foot .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:10px 24px}\n.foot .logo{height:20px}\n@media (max-width:899px){.foot{padding-bottom:96px}}\n\n/* ================= Round 16 layer, on top of round 15's base.css =================\n   Smaller headings, varied section shapes, one dark section, product-grade mockups, faces, bolder meaningful color. */\n:host{--ink2:#1B1E24;--ink3:#2A2D33;--inkb:#3C4048;--dim:#8E9088;\n  --c-news:#A7D8FF;--c-ravi:#315BFF;--c-you:#D8D5CD;--c-offer:#CDF05B;--c-goal:#F7F4EC}\n\n/* type: H2 at most two lines; phones use the font's narrower cut so long headings stay at two */\nh1{font-size:clamp(34px,9.4vw,40px);line-height:1.02;font-stretch:86%}\n.h2{font-size:28px;line-height:1.08;letter-spacing:-.03em;font-stretch:82%}\n@media (min-width:900px){\n  h1{font-size:clamp(44px,3.7vw,54px);line-height:1;font-stretch:100%}\n  .h2{font-size:clamp(34px,3vw,44px);line-height:1.06;letter-spacing:-.032em;font-stretch:100%}\n}\n.lead{max-width:60ch}\n.intro{display:grid;gap:12px;margin-bottom:24px;max-width:820px}\n@media (min-width:900px){.intro{margin-bottom:36px}}\n\n/* section surfaces: the rhythm alternates so no two neighbours look alike */\n.s-paper{background:var(--paper)}\n.s-canvas{background:var(--canvas)}\n.sec{border-bottom:0}\n.sec + .sec{box-shadow:inset 0 1px 0 var(--line)}\n.sec.dark,.sec.dark + .sec{box-shadow:none}\n\n/* faces and small marks */\n.fc{display:inline-block;flex:none;width:36px;height:36px;border-radius:50%;background:var(--panel) center/cover no-repeat;box-shadow:0 0 0 2px var(--paper)}\n.fc.sm{width:26px;height:26px}\n.fc.lg{width:44px;height:44px}\n.fc.you{display:inline-grid;place-items:center;background:var(--ink3);color:var(--c-you)}\n.fc.you .i{width:15px;height:15px}\n.fnote{margin-top:10px;font-size:12.5px;line-height:18px;color:var(--muted)}\n.pill{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:3px 10px;border-radius:999px;font-size:13px;line-height:18px;font-weight:650;white-space:nowrap;background:var(--panel);color:var(--ink)}\n.pill .i{width:14px;height:14px;stroke-width:2.2}\n.pill.lime{background:var(--lime);box-shadow:inset 0 0 0 1px var(--ink)}\n.pill.sky{background:color-mix(in srgb,var(--sky) 55%,var(--paper));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--blue) 35%,transparent)}\ns.was{color:var(--muted);text-decoration-thickness:1.5px;text-decoration-color:var(--muted);font-weight:550}\n\n/* the app frame every mockup sits in */\n.app{background:var(--paper);border:1px solid var(--ink);border-radius:14px;overflow:hidden;box-shadow:0 22px 44px -30px rgba(17,19,23,.35)}\n.app-bar{display:flex;align-items:center;gap:10px;min-height:42px;padding:7px 12px;background:#FBFAF6;border-bottom:1px solid var(--line)}\n.app-bar .dots{display:flex;gap:5px;flex:none}\n.app-bar .dots i{width:8px;height:8px;border-radius:50%;background:var(--stone)}\n.app-bar .sym{width:22px;height:auto;flex:none}\n.app-bar b{font-size:14px;line-height:19px;font-weight:650;min-width:0}\n.app-bar .ex{margin-left:auto}\n.app-bar .co{font-size:13px;color:var(--muted)}\n\n/* ---------- 1. Hero ---------- */\n.hc .ln{padding-block:10px}\n.hc .ln.two{grid-template-columns:36px minmax(0,1fr);background:#FBFAF6}\n.hc .ln.two .ic{background:var(--lime);border:1px solid var(--ink)}\n.hc .ln.two > span:last-child{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}\n.hc .ln.two s.was{font-size:14.5px;line-height:20px;white-space:normal}\n.hc .ln.ok .ic{background:var(--lime);border:1px solid var(--ink)}\n.hc .ln.ok b{font-weight:650}\n.hc-c{display:block;max-width:none}\n.hc-c .ln{font-size:15px}\n.hc-d{display:none}\n.hero-t{gap:14px}\n.hero-t .btn{margin-top:2px}\n.badges{display:flex;flex-wrap:wrap;gap:6px}\n.badges li{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:4px 10px;border:1px solid var(--stone);border-radius:8px;background:var(--paper);font-size:13px;line-height:18px;font-weight:650}\n.badges .i{width:15px;height:15px;color:var(--ink)}\n.proof{gap:10px}\n.proof .pl{margin-top:4px}\n.cust{display:grid;gap:8px}\n.cq{display:grid;grid-template-columns:36px minmax(0,1fr);gap:4px 10px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}\n.cq .who b{display:block;font-size:14px;line-height:19px}\n.cq .who span{display:block;font-size:12.5px;line-height:17px;color:var(--muted)}\n.cq .res{grid-column:1/-1;font-size:17px;line-height:22px;font-weight:700;letter-spacing:-.01em;margin-top:4px}\n.cq blockquote{grid-column:1/-1;font-size:14.5px;line-height:21px;color:var(--soft)}\n@media (min-width:900px){\n  .hero-g{grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr)}\n  .hero-t{gap:18px}\n  .hero-t .eyb{order:1}.hero-t h1{order:2}.hero-t .sub{order:3}.hero-t .btn{order:4}.hero-t .proof{order:5}\n  .hc-c{display:none}.hc-d{display:block}\n  .cust{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start}\n}\n\n/* ---------- 2A. The waste bar ---------- */\n.waste .wbx{padding:18px 16px 16px}\n.span-l{position:relative;display:flex;justify-content:center;margin-bottom:10px;font-size:13.5px;line-height:18px;font-weight:650}\n.span-l::before{content:\"\";position:absolute;left:0;right:0;top:50%;height:8px;margin-top:-1px;border:1.5px solid var(--ink);border-bottom:0;border-radius:3px 3px 0 0}\n.span-l span{position:relative;padding-inline:10px;background:var(--paper)}\n.wbar{display:flex;height:96px;border-radius:8px;overflow:hidden;border:1.5px solid var(--ink)}\n.wbar .lm{flex:0 0 3.83%;min-width:11px;background:var(--lime);border-right:1.5px solid var(--ink)}\n.wbar .dk{flex:1;display:flex;flex-direction:column;justify-content:center;gap:2px;padding-inline:16px;background:var(--ink);color:var(--paper)}\n.wbar .dk b{font-size:21px;line-height:26px;font-weight:700;letter-spacing:-.015em}\n.wbar .dk span{font-size:14px;line-height:19px;color:var(--stone)}\n.lime-l{position:relative;display:flex;align-items:center;gap:8px;margin-top:12px;padding-left:2px;font-size:14px;line-height:19px;font-weight:650}\n.lime-l::before{content:\"\";position:absolute;left:5px;top:-13px;height:12px;border-left:1.5px solid var(--ink)}\n.lime-l i{width:12px;height:12px;border-radius:3px;background:var(--lime);border:1px solid var(--ink);flex:none}\n.yk-row{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;padding:13px 16px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--coral) 9%,var(--paper));font-size:15px;line-height:22px;font-weight:550}\n.yk-row .sym{width:22px;height:auto;margin-top:4px}\n.more{margin-top:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}\n.more > summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;font-size:15.5px;font-weight:650;cursor:pointer;list-style:none}\n.more > summary::-webkit-details-marker{display:none}\n.more > summary .i{width:20px;height:20px;transition:transform 200ms}\n.more[open] > summary .i{transform:rotate(180deg)}\n.more .chart{padding-bottom:20px}\n@media (min-width:900px){\n  .waste .wbx{padding:24px 24px 20px}\n  .wbar{height:112px}\n  .wbar .dk{padding-inline:24px}\n  .wbar .dk b{font-size:26px;line-height:32px}\n  .wbar .dk span{font-size:15px}\n  .yk-row{padding:14px 24px;font-size:16px}\n}\n\n/* ---------- 2B. A builder's week ---------- */\n.wk .day{grid-template-columns:44px minmax(0,1fr) auto}\n.wk .day .t{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;align-items:start}\n.wk .day .t .i{width:16px;height:16px;margin-top:2px;color:var(--muted)}\n.wk .h{padding:3px 8px;border-radius:999px;background:var(--panel)}\n@media (min-width:900px){\n  .rev{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}\n  .rev > .intro{order:2;margin-bottom:0}\n  .rev > figure{order:1;justify-self:start}\n}\n\n/* ---------- 3. The engine room, on ink ---------- */\n.sec.dark{background:var(--ink);color:var(--canvas)}\n.dark .h2{color:var(--canvas)}\n.dark .lead{color:var(--stone)}\n.dark .under{color:var(--canvas)}\n.dark .fnote{color:var(--stone)}\n.dark .ex{background:transparent;border-color:#5A5E66;color:var(--stone)}\n.er{position:relative;display:grid;gap:0;margin-top:8px}\n.er-wires{display:none}\n.er .k{font-size:11px;line-height:15px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--stone)}\n.dpan{background:var(--ink2);border:1px solid var(--inkb);border-radius:14px}\n.acct{padding:14px}\n.acct .ah{display:flex;align-items:center;gap:10px}\n.acct .ah .fc{margin-left:-14px;box-shadow:0 0 0 2px var(--ink2)}\n.acct .ah b{display:block;font-size:15px;line-height:20px}\n.acct .ah small{display:block;font-size:13px;line-height:18px;color:var(--stone)}\n.acct .ah .ex{margin-left:auto;align-self:start}\n.acct .mono.co{background:var(--canvas);color:var(--ink);border-color:var(--canvas)}\n.fitl{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;align-items:start;margin-top:12px;padding-top:12px;border-top:1px solid var(--inkb);font-size:14px;line-height:20px}\n.fitl .ok{width:22px;height:22px;border-radius:50%;background:var(--lime);color:var(--ink);display:grid;place-items:center}\n.fitl .ok .i{width:12px;height:12px;stroke-width:2.8}\n.facts2{display:grid;gap:14px}\n.fg{display:grid;gap:7px}\n.fcs{display:flex;flex-wrap:wrap;gap:6px}\n.fct{display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:4px 10px;border-radius:7px;border:1px dashed var(--inkb);font-size:13px;line-height:18px;font-weight:600;color:var(--dim);transition:all 380ms var(--ease)}\n.fct .i{width:14px;height:14px;flex:none}\n.fct.used{border-style:solid}\n.fct.used.on{border-color:var(--c);color:var(--canvas);background:color-mix(in srgb,var(--c) 16%,var(--ink2))}\n.fct.used.on .i{color:var(--c)}\n.core{padding:14px;display:grid;gap:12px}\n.wbs{display:grid;gap:9px}\n.wbs .wb{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;align-items:center;font-size:12px;font-weight:650;color:var(--stone)}\n.wbs .wb span.t{display:block;height:8px;border-radius:4px;background:var(--ink3);overflow:hidden}\n.wbs .wb i{display:block;height:100%;width:0;border-radius:4px;background:var(--c);transition:width 700ms var(--joint)}\n.er.weighed .wbs .wb i{width:calc(var(--w) * 100%)}\n.dial2{display:grid;justify-items:center;gap:2px}\n.dial2 svg{width:112px;height:62px}\n.dial2 .arc{fill:none;stroke:var(--ink3);stroke-width:8;stroke-linecap:round}\n.dial2 .nd{stroke:var(--canvas);stroke-width:2.4;stroke-linecap:round;transform-origin:56px 56px;transition:transform 700ms var(--joint);transform:rotate(0deg)}\n.er.weighed .dial2 .nd{transform:rotate(-38deg)}\n.dial2 small{font-size:12.5px;line-height:17px;font-weight:600;color:var(--canvas)}\n.outc{display:grid;gap:12px}\n.tpl{padding:12px 14px;border:1px dashed #5A5E66;border-radius:12px;background:transparent}\n.tpl p:last-child{margin-top:4px;font-size:14.5px;line-height:21px;color:#B4B6AE}\n.msgc{padding:14px}\n.msgc .mh2{display:flex;align-items:center;justify-content:space-between;gap:10px}\n.msgc .mh2 .k{color:var(--canvas)}\n.msgc .mh2 .k .sym{display:inline-block;width:20px;height:auto;vertical-align:-3px;margin-right:6px}\n.key{display:flex;flex-wrap:wrap;gap:2px 6px;margin-top:8px;font-size:12px;line-height:18px;font-weight:600;color:var(--stone)}\n.key .kk{color:var(--canvas);text-decoration:underline 2.5px var(--c);text-underline-offset:4px}\n.key .kk.goal{text-decoration-style:dashed}\n.mtext{margin-top:10px;font-size:16px;line-height:28px;color:var(--canvas)}\n.ph{transition:color 300ms,background-color 300ms;text-decoration:underline 3px var(--c);text-underline-offset:6px;text-decoration-skip-ink:none}\n.ph.goal{text-decoration-style:dashed;text-decoration-thickness:2.5px}\n.er.write .ph:not(.on){color:transparent;background:var(--ink3);border-radius:4px;text-decoration-color:transparent;box-decoration-break:clone;-webkit-box-decoration-break:clone}\n.sig{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:13px;line-height:18px;font-weight:600;color:var(--stone)}\n.sig time,.reply2 time{margin-left:auto;font-size:12px;font-weight:550;color:var(--stone);font-variant-numeric:tabular-nums}\n.reply2{display:grid;grid-template-columns:36px minmax(0,1fr);gap:6px 10px;align-items:start;transition:opacity 400ms var(--ease),transform 400ms var(--ease)}\n.reply2 .bub2{background:var(--canvas);color:var(--ink);border-radius:14px 14px 14px 4px;padding:10px 12px;font-size:14.5px;line-height:20px}\n.reply2 .rmeta{grid-column:2;display:flex;align-items:center;gap:8px;flex-wrap:wrap}\n.reply2 .sorted{margin:0;transition:opacity 300ms,transform 300ms}\n.er.write .reply2:not(.on){opacity:0;transform:translateY(6px)}\n.er.write .reply2:not(.sort) .sorted{opacity:0;transform:scale(.96)}\n.dark .sorted{background:var(--lime);border-color:var(--lime);color:var(--ink)}\n/* phone: a vertical story; the dim facts and the weighing panel step aside */\n.er > * + *{margin-top:26px;position:relative}\n.er > * + *::before{content:\"\";position:absolute;left:18px;top:-21px;height:16px;border-left:1.5px solid #5A5E66}\n.er-c{display:none}\n.fct:not(.used){display:none}\n.fg:has(.fct.used) .fcs{gap:6px}\n@media (min-width:900px){\n  .er{grid-template-columns:minmax(0,200px) minmax(0,268px) minmax(0,176px) minmax(0,1fr);column-gap:46px;align-items:center}\n  .er > * + *{margin-top:0}\n  .er > * + *::before{display:none}\n  .er-wires{display:block;position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}\n  .er-c{display:block}\n  .fct:not(.used){display:inline-flex}\n  .er-wires path{fill:none;stroke-linecap:round;transition:stroke 400ms,opacity 400ms}\n  .er-wires .w-in{stroke:#4A4E57;stroke-width:1.2;stroke-dasharray:3 4}\n  .er-wires .w-src{stroke:#3C4048;stroke-width:1.4}\n  .er-wires .w-src.on{stroke:var(--c);stroke-width:1.8}\n  .er-wires .w-out{stroke:#4A4E57;stroke-width:2}\n  .er-wires .w-out.on{stroke:var(--canvas)}\n}\n\n/* ---------- 4. The moment comes first ---------- */\n.ctc2{max-width:520px;width:100%;justify-self:end}\n.ctc2 .now{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:start;padding:16px}\n.ctc2 .now .sg{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--blue);color:var(--paper)}\n.ctc2 .now .sg .i{width:22px;height:22px;stroke-width:2}\n.ctc2 .now p{font-size:19px;line-height:26px;font-weight:650;letter-spacing:-.01em}\n.ctc2 .now .pill{margin-right:4px;vertical-align:1px;font-size:13px}\n.ctc2 .bgx{padding:12px 16px 14px;border-top:1px solid var(--line)}\n.ctc2 .bgx ul{display:grid;gap:8px;margin-top:8px}\n.ctc2 .bgx li{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;align-items:start;font-size:14px;line-height:20px;color:var(--soft)}\n.ctc2 .bgx li .ic{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--sky) 45%,var(--paper));color:var(--blue)}\n.ctc2 .bgx li .ic .i{width:13px;height:13px}\n.ctc2 .bgx li b{color:var(--ink);font-weight:650}\n.ctc2 .kf{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:12px 16px;border-top:1px solid var(--line);background:#FBFAF6;font-size:14px;line-height:20px;font-weight:650}\n.k2{font-size:11px;line-height:15px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}\n\n/* ---------- 5. Product-grade step mockups and the capability strip ---------- */\n.step .app{margin-top:4px}\n.urlb{flex:1;min-width:0;display:flex;align-items:center;gap:7px;height:28px;padding-inline:9px;border:1px solid var(--line);border-radius:7px;background:var(--paper);font-size:13px;font-weight:600}\n.urlb .i{width:14px;height:14px;color:var(--muted)}\n.lrn{display:grid;gap:8px;padding:12px 14px}\n.lrn .pill{justify-self:start}\n.lrn .lr{display:grid;grid-template-columns:26px minmax(0,1fr);gap:9px;align-items:start;font-size:13.5px;line-height:19px}\n.lrn .lr .ic{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;background:var(--panel)}\n.lrn .lr .ic .i{width:14px;height:14px}\n.lrn .lr b{font-weight:650}\n.rows2{display:grid;padding:6px 14px 12px}\n.row2{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:13.5px;line-height:18px}\n.row2 .av2{position:relative;width:44px;height:30px}\n.row2 .av2 .mono{position:absolute;left:0;top:1px}\n.row2 .av2 .fc{position:absolute;left:16px;top:0;width:28px;height:28px}\n.row2 b{display:block;font-weight:650}\n.row2 small{display:flex;align-items:center;gap:5px;font-size:12px;line-height:16px;color:var(--soft)}\n.row2 small .i{width:12px;height:12px;color:var(--blue);flex:none}\n.row2 small::first-letter{text-transform:uppercase}\n.fbtn2{display:flex;align-items:center;justify-content:center;gap:6px;height:36px;margin-top:12px;border-radius:999px;background:var(--ink);color:var(--paper);font-size:13.5px;font-weight:600}\n.fbtn2 .i{width:15px;height:15px}\n.tl2{display:grid;padding:12px 14px}\n.tl2 li{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;align-items:center;font-size:13.5px;line-height:18px;min-height:30px}\n.tl2 .d{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--sky) 45%,var(--paper));color:var(--blue)}\n.tl2 .d .i{width:13px;height:13px}\n.tl2 li.w{min-height:22px;color:var(--muted);font-size:12px;font-weight:600}\n.tl2 li.w .d{background:none;height:22px;position:relative}\n.tl2 li.w .d::before{content:\"\";position:absolute;left:12.25px;top:0;bottom:0;border-left:1.5px dashed #BDB9AE}\n.tl2 li.w span:last-child{display:inline-flex}\n.tl2 li.rs .d{background:var(--lime);color:var(--ink);border:1px solid var(--ink)}\n.tl2 li.bk{margin-top:8px}\n.tl2 li.bk .d{background:var(--ink);color:var(--lime)}\n.tl2 li.bk span:last-child{justify-self:start}\n.caps li{min-width:0}\n.tgl{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:6px;padding:0 4px;border:0;background:none;font-size:15px;font-weight:650;color:var(--ink);cursor:pointer;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1.5px}\n.tgl .i{width:18px;height:18px;transition:transform 200ms}\n.tgl[aria-expanded=\"true\"] .i{transform:rotate(180deg)}\n@media (max-width:899px){\n  .caps{margin-top:24px}\n  .caps:not(.all){grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}\n  .caps:not(.all) li:not([data-core]){display:none}\n  .caps:not(.all) li{flex-direction:column;justify-content:start;gap:5px;min-height:64px;padding:8px 2px;border:0;background:none;font-size:10.5px;line-height:13px;text-align:center}\n  .caps:not(.all) li .i{width:22px;height:22px}\n}\n@media (min-width:900px){.caps-t{display:none}}\n\n/* ---------- 6. Comparison on phones ---------- */\n.mx{display:grid;border:1px solid var(--ink);border-radius:14px;overflow:hidden;background:var(--paper)}\n.mx-h,.mx-r > div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}\n.mx-h > *{padding:12px 12px 10px;font-size:14.5px;line-height:19px;font-weight:700}\n.mx-h .y,.mx-r .y{background:color-mix(in srgb,var(--coral) 8%,var(--paper))}\n.mx-h .y{display:flex;align-items:center;gap:7px}\n.mx-h .y .sym{width:24px;height:auto}\n.mx-r{border-top:1px solid var(--line)}\n.mx-r .k2{padding:8px 12px 0}\n.mx-r > div > span{padding:4px 12px 11px;font-size:14px;line-height:19px}\n.mx-r .y{font-weight:650}\n.mx-r .k2 + div > span.y{padding-top:4px}\n.mx-r{display:grid}\n.mx-r .k2{grid-column:1/-1}\n.mx-r .k2{background:linear-gradient(90deg,color-mix(in srgb,var(--coral) 8%,var(--paper)) 50%,var(--paper) 50%)}\n.mx.nk .mx-h .y,.mx.nk .mx-r .y,.mx.nk .mx-r .k2{background:var(--paper)}\n.mx + .mx{margin-top:12px}\n.cmp-p{display:grid;gap:4px}\n.cmp-p .cards{margin-top:6px}\n@media (min-width:900px){.cmp-p{display:none}}\n\n/* ---------- 7. Offer ---------- */\n.offer2{display:grid;gap:22px}\n.offer2 .ol{display:grid;gap:18px;align-content:start}\n.pv2 .bd{display:grid;gap:12px;padding:14px 16px}\n.pv2 .acc .fc{margin-left:-14px}\n.pv2 .why{display:grid;grid-template-columns:26px minmax(0,1fr);gap:9px;align-items:start;font-size:14.5px;line-height:21px}\n.pv2 .why .ic{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:var(--paper)}\n.pv2 .why .ic .i{width:13px;height:13px;stroke-width:2.2}\n.pv2 .fl2{padding:10px 12px;border-radius:12px 12px 12px 4px;background:var(--panel);font-size:15px;line-height:22px}\n.pv2 .fl2 b{font-weight:650}\n.pv2 .cr{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px dashed #CFCBC1;background:#FBFAF6;font-size:13.5px;font-weight:600}\n.pv2 .cr .i{width:16px;height:16px;color:var(--muted)}\n.pv2 .cr small{font-size:12.5px;font-weight:550;color:var(--muted)}\n.safe{margin-top:-4px;font-size:13px;line-height:18px;color:var(--muted);text-align:center}\n@media (min-width:900px){\n  .offer2{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:clamp(32px,4.5vw,72px);align-items:start}\n  .offer2 .fbox{position:sticky;top:calc(var(--hd) + 24px)}\n}\n.fc-f101{background-image:url(https://cdn.prod.website-files.com/6580ba9f4259d2de5a4189c2/6ae4ef29a7dc56603d0d7e71_yk-t2-01.jpg)}.fc-f202{background-image:url(https://cdn.prod.website-files.com/6580ba9f4259d2de5a4189c2/6ae4ef9f9ea943a973cff316_yk-t2-02.jpg)}.fc-f302{background-image:url(https://cdn.prod.website-files.com/6580ba9f4259d2de5a4189c2/6ae4ef9f577c02c6b5782b18_yk-t2-03.jpg)}\n/* fixes after first render */\n.wk .day .t > span::first-letter{text-transform:uppercase}\n#cv .yk2.b{font-weight:700;fill:#111317}\n.acc2 b{display:block;font-size:15.5px;line-height:21px}\n.acc2 small{display:block;font-size:13px;line-height:18px;color:var(--soft)}\n@media (max-width:899px){\n  .outc{gap:0}\n  .outc > * + *{margin-top:26px;position:relative}\n  .outc > * + *::before{content:\"\";position:absolute;left:18px;top:-21px;height:16px;border-left:1.5px solid #5A5E66}\n}\n/* round 16, pass 2 */\n@media (min-width:900px){.hd{background:var(--paper);backdrop-filter:none;-webkit-backdrop-filter:none}}\nh1{letter-spacing:-.025em}\n.h2{letter-spacing:-.018em}\n@media (min-width:900px){h1{letter-spacing:-.04em}.h2{letter-spacing:-.032em}}\n.atop{display:flex;justify-content:flex-end;margin:-4px -4px 6px 0}\n.acct .ah .fc{margin-left:-12px}\n.row2 .av2,.acc3 .av2{position:relative;width:54px;height:30px;flex:none}\n.row2 .av2 .fc,.acc3 .av2 .fc{left:26px;width:28px;height:28px}\n.acc3{display:flex;align-items:center;gap:10px}\n.acc3 .av2 .mono{position:absolute;left:0;top:1px}\n.acc3 .av2 .fc{position:absolute;top:0}\n.row2{grid-template-columns:54px minmax(0,1fr) auto}\n@media (min-width:900px){\n  .rev{grid-template-columns:minmax(0,520px) minmax(0,1fr)}\n  .er{grid-template-columns:minmax(0,214px) minmax(0,262px) minmax(0,170px) minmax(0,1fr);column-gap:44px}\n}\n@media (max-width:899px){\n  .steps{gap:24px}\n  .step{gap:8px}\n  .lrn{gap:6px;padding:10px 12px}\n  .rows2{padding:4px 12px 10px}\n  .row2{padding:7px 0}\n  .tl2{padding:10px 12px}\n  .tl2 li{min-height:27px}\n  .tl2 li.w{min-height:18px}\n  .tl2 li.w .d{height:18px}\n  .caps:not(.all) li{min-height:56px;padding:6px 0}\n  .under{margin-top:14px}\n}\n.dark .sym path:last-child{stroke:#F7F4EC}\n\n/* ================= Round 17 layer: copy pass, live showstopper, concrete heroes, real proof, color meanings ================= */\n:host{--c-offer:#9C9E96;--err:#B42318}\nb,strong{font-weight:650}\n.lead b,.sub b{color:var(--ink);font-weight:650}\n.dark .lead b{color:var(--canvas)}\n@media (max-width:899px){.lead{font-size:16px}.sub{font-size:16.5px}}\n.fld .err{color:var(--err)}\n.fld [aria-invalid=\"true\"]{border-color:var(--err);box-shadow:inset 0 0 0 1px var(--err)}\n\n/* color meanings: Lime = outcomes only, Blue = signals/data only, Coral = Yoke */\n.chk .ok,.cl .ok{background:var(--paper);border:1.5px solid var(--ink)}\n.fitl .ok{background:var(--canvas)}\n.tl2 .d{background:var(--panel);color:var(--ink)}\n.caps .i{color:var(--ink)}\n.msgc{border-top:2px solid var(--coral)}\n.msgc .mh2 .k{color:#F26A59}\n\n/* ---------- hero proof: the real badges and customers ---------- */\n.badges{flex-wrap:nowrap;align-items:center;gap:6px}\n.badges li{border:0;padding:0;min-height:0;background:none;border-radius:0}\n.badges img{display:block;height:30px;width:auto}\n.cq{grid-template-columns:40px minmax(0,1fr) auto;border-radius:14px}\n.cq .ph-c{width:40px;height:40px;border-radius:50%;object-fit:cover;display:block}\n.cq .clogo{height:15px;width:auto;align-self:start;margin-top:3px}\n@media (min-width:900px){.badges{gap:10px}.badges img{height:38px}}\n\n/* ---------- Page A's hero card: real-looking accounts, then the bill ---------- */\n.hcA .arow{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 14px;border-top:1px solid var(--line)}\n.hcA .arow:first-child{border-top:0}\n.hcA .arow .fc{width:36px;height:36px;box-shadow:none}\n.hcA .who b{display:block;font-size:14.5px;line-height:19px}\n.hcA .who small{display:block;font-size:12.5px;line-height:17px;color:var(--soft)}\n.hcA .pill{font-size:12px;min-height:24px;padding:2px 9px}\n.sumline{padding:10px 14px;border-top:1px solid var(--line);font-size:13px;line-height:18px;font-weight:600;color:var(--soft);font-variant-numeric:tabular-nums}\n.bill2{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:12px;padding:11px 14px;border-top:1px dashed #CFCBC1;background:#FBFAF6}\n.bill2 .lv{display:grid;gap:3px;align-content:start}\n.bill2 .lb{font-size:11.5px;line-height:15px;font-weight:650;color:var(--muted)}\n.bill2 .lv b{font-size:15px;line-height:20px;font-weight:650}\n.bill2 .yk .pill{justify-self:start;font-size:13.5px}\n.bill2.in{display:inline-grid;grid-template-columns:auto auto;gap:18px;padding:0;border:0;background:none;vertical-align:top}\n.hc-c .ln.win{padding-block:9px}\n.hcA + .fnote,.hc-d .fnote{margin-top:8px}\n@media (min-width:900px){.hc-d{width:100%;max-width:470px;justify-self:end}.hc-d .hcA{max-width:none}}\n\n/* ---------- Section 4: three signal pills, two labeled values ---------- */\n.sigs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}\n.sigs .pill{font-size:13px}\n.sigs .pill .i{color:var(--blue)}\n.ctc2 .kf{gap:8px 14px}\n\n/* ---------- Section 5: the mockups lead ---------- */\n@media (min-width:900px){\n  .step h3{font-size:18px;line-height:24px}\n  .step > p{font-size:15px;line-height:22px}\n  .step .app{min-height:330px;display:flex;flex-direction:column}\n  .step .app > :last-child{flex:1}\n  .step .app-bar{min-height:50px;padding:9px 14px}\n  .step .app-bar b{font-size:15px}\n  .lrn{gap:12px;padding:18px}\n  .lrn .lr{font-size:15px;line-height:21px;grid-template-columns:32px minmax(0,1fr)}\n  .lrn .lr .ic{width:32px;height:32px}\n  .rows2{padding:8px 16px 16px}\n  .row2{padding:12px 0;font-size:15px;line-height:20px}\n  .row2 small{font-size:13px;line-height:18px}\n  .fbtn2{height:42px;font-size:14.5px}\n  .tl2{padding:16px}\n  .tl2 li{font-size:15px;line-height:20px;min-height:34px}\n  .tl2 li.w{min-height:24px;font-size:13px}\n}\n\n/* ---------- Section 7: customer logos above the form ---------- */\n.fcol{display:grid;gap:16px;align-content:start}\n.logos .k2{margin-bottom:10px}\n.logos ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 12px;align-items:center;justify-items:center}\n.logos img{display:block;height:20px;width:auto;max-width:100%;object-fit:contain;filter:grayscale(1) contrast(1.1);mix-blend-mode:multiply;opacity:.72}\n.logos li:nth-child(1) img,.logos li:nth-child(4) img{height:30px}\n@media (min-width:900px){\n  .logos ul{display:flex;justify-content:space-between;gap:16px}\n  .offer2 .fbox{position:static}\n  .fcol{position:sticky;top:calc(var(--hd) + 24px)}\n}\n\n/* ---------- Section 3: the live engine room ---------- */\n.ph{text-decoration:none!important;color:inherit!important;background:none!important}\n.ph .rest{visibility:hidden}\n.ph .end{display:inline-block;width:0;height:1em;vertical-align:-2px}\n.ph.cur .ty::after{content:\"\";display:inline-block;width:2px;height:1.05em;margin-left:1px;vertical-align:-3px;background:var(--canvas);animation:blink .8s steps(1) infinite}\n@keyframes blink{50%{opacity:0}}\n.key{display:none}\n.msgc{position:relative}\n.chip2{display:inline-flex;align-items:center;height:22px;padding-inline:8px;border-radius:999px;font-size:11.5px;font-weight:700;letter-spacing:.02em;white-space:nowrap;opacity:0;transform:scale(.6);transition:opacity 220ms var(--ease),transform 260ms cubic-bezier(.3,1.6,.5,1)}\n.chip2.in{opacity:1;transform:scale(1)}\n.chip2.in.out{opacity:0;transform:scale(.96);transition:opacity 450ms var(--ease),transform 450ms var(--ease)}\n.chip2[data-s=\"news\"]{background:var(--c-news);color:var(--ink)}\n.chip2[data-s=\"ravi\"]{background:var(--c-ravi);color:var(--paper)}\n.chip2[data-s=\"you\"]{background:var(--c-you);color:var(--ink)}\n.chip2[data-s=\"offer\"]{background:var(--c-offer);color:var(--ink)}\n.chip2[data-s=\"goal\"]{background:var(--c-goal);color:var(--ink)}\n.chipg{display:flex;flex-wrap:wrap;gap:6px;min-height:22px;margin-top:8px}\n.tplw{display:grid;gap:8px;justify-items:start}\n.noreply{display:inline-flex;align-items:center;min-height:24px;padding:2px 10px;border-radius:999px;background:var(--ink3);color:var(--stone);font-size:12px;font-weight:650;transition:opacity 300ms var(--ease),transform 300ms var(--ease)}\n.er.live:not(.nr) .noreply{opacity:0;transform:translateY(-4px)}\n.er.nr .tpl{opacity:.82}\n.fc.you{position:relative;overflow:visible}\n.fc.you .ym{position:absolute;right:-6px;bottom:-4px;display:grid;place-items:center;width:15px;height:15px;border-radius:50%;background:var(--ink2)}\n.fc.you .ym .sym{width:11px;height:auto}\n.rbw{display:grid}\n.reply2 .dots{display:none;align-items:center;gap:4px;justify-self:start;padding:12px 14px;border-radius:14px 14px 14px 4px;background:var(--canvas)}\n.reply2 .dots i{width:6px;height:6px;border-radius:50%;background:#8E9088;animation:dot 1s infinite}\n.reply2 .dots i:nth-child(2){animation-delay:.15s}.reply2 .dots i:nth-child(3){animation-delay:.3s}\n@keyframes dot{0%,60%,100%{transform:none;opacity:.5}30%{transform:translateY(-3px);opacity:1}}\n.er.live .reply2{opacity:0;transform:translateX(-10px)}\n.er.live .reply2.typing,.er.live .reply2.on{opacity:1;transform:none}\n.er.live .reply2.typing .dots{display:inline-flex}\n.er.live .reply2.typing .bub2{display:none}\n.er.live .reply2:not(.on) .bub2{visibility:hidden}\n.er.live .reply2:not(.sort) .rmeta{opacity:0}\n.er.live .reply2.sort .sorted{animation:stamp 420ms cubic-bezier(.3,1.5,.5,1) both}\n@keyframes stamp{0%{opacity:0;transform:scale(1.35) rotate(-4deg)}100%{opacity:1;transform:none}}\n.er-f{position:relative}\n.scan{position:absolute;left:-10px;right:-10px;top:-50px;height:50px;pointer-events:none;opacity:0;background:linear-gradient(transparent,rgba(167,216,255,.2) 55%,rgba(167,216,255,.32) 70%,transparent);border-bottom:1px solid rgba(167,216,255,.55);z-index:2}\n.er.scanning .scan{animation:scan 1.4s linear forwards}\n@keyframes scan{0%{top:-50px;opacity:1}92%{opacity:1}100%{top:calc(100% - 10px);opacity:0}}\n.er-wires path.w-src,.er-wires path.w-out{transition:stroke-dashoffset 650ms var(--ease),stroke 300ms}\n.erfoot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}\n.erfoot .fnote{margin:0}\n.replay{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--inkb);background:transparent;color:var(--canvas);font-size:14px;font-weight:600;cursor:pointer;flex:none}\n.replay:hover{background:var(--ink3)}\n.replay .i{width:16px;height:16px}\n.more4{font-size:12.5px;line-height:18px;font-weight:600;color:var(--dim)}\n@media (min-width:900px){\n  .more4{display:none}\n  .chipg{display:none}\n  .msgc .mtext{padding-right:74px}\n  .msgc .chip2{position:absolute;right:12px;margin-top:-11px}\n}\n@media (max-width:899px){\n  .er > * + *{margin-top:14px}\n  .er > * + *::before{top:-12px;height:10px}\n  .facts2{gap:8px}\n  .fg{gap:4px}\n  /* one compact weighing row: five labeled bars and the tone, on one line */\n  .er-c{display:block}\n  .core{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;padding:10px 12px}\n  .wbs{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}\n  .wbs .wb{grid-template-columns:minmax(0,1fr);gap:3px;font-size:10.5px;line-height:13px}\n  .wbs .wb span.t{height:5px}\n  .dial2{display:block}\n  .dial2 svg{display:none}\n  .dial2 small{font-size:11.5px;line-height:13px;white-space:nowrap}\n  .mtext{font-size:15.5px;line-height:25px}\n  .outc > * + *{margin-top:14px}\n  .outc > * + *::before{top:-12px;height:10px}\n}\n/* the dots sit over the (hidden) reply bubble, so nothing below moves when the reply lands */\n.rbw{grid-template-areas:\"r\"}\n.rbw > *{grid-area:r}\n.er.live .reply2.typing .bub2{display:block;visibility:hidden}\n.reply2 .dots{align-self:start}\n.sumline span{white-space:nowrap}\n@media (max-width:899px){.badges{gap:5px}.badges img{height:26px}}\n/* logos: sized by area so each carries the same visual weight (a long wordmark sits lower than a stacked mark) */\n.logos img{height:auto!important;width:auto}\n.logos li:nth-child(1) img{height:34px!important}\n.logos li:nth-child(2) img{height:14px!important}\n.logos li:nth-child(3) img{height:20px!important}\n.logos li:nth-child(4) img{height:30px!important}\n.logos li:nth-child(5) img{height:21px!important}\n.logos li:nth-child(6) img{height:26px!important}\n.logos ul{min-height:36px}\n.logos img{mix-blend-mode:normal}\n.logos li:nth-child(6) img{height:24px!important}\n@media (min-width:900px){.logos ul{gap:10px}}\n@media (min-width:900px){\n  .er{grid-template-columns:minmax(0,196px) minmax(0,250px) minmax(0,156px) minmax(0,1fr);column-gap:38px}\n  .msgc .mtext{padding-right:66px;font-size:15.5px;line-height:26px}\n  .wbs .wb{grid-template-columns:40px minmax(0,1fr)}\n}\n/* \"worth contacting\" is a signal, so it is Blue everywhere (hero pill, section 4 pill, the waste bar's small segment) */\n.wbar .lm{flex:0 0 5%;background:var(--blue)}\n.lime-l i{background:var(--blue)}\n@media (max-width:899px){.sigs{flex-wrap:nowrap;gap:5px}.sigs .pill{font-size:12px;padding:3px 8px;gap:4px;min-height:26px}.sigs .pill .i{width:12px;height:12px}}\n\n/* ================= Round 18 layer ================= */\n/* section 3: the approved prototypes, desktop from 1100px, phone below (centered, at most 480px) */\n@media (max-width:1099px){#ssd{display:none}}\n@media (min-width:1100px){#ssp{display:none}}\n#get .under{margin-top:22px}\n\n/* Page A's hero card: the summary as three figures, the meetings in Lime */\n.figs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}\n.figs p{display:grid;gap:2px;align-content:start;padding:10px 14px}\n.figs p + p{border-left:1px solid var(--line)}\n.figs b{font-size:22px;line-height:26px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}\n.figs span{font-size:12px;line-height:16px;font-weight:550;color:var(--soft)}\n.figs .win{background:var(--lime)}\n.figs .win span{color:var(--ink)}\n.hcA .arow .pill{justify-self:end}\n\n</style>\n<svg width=\"0\" height=\"0\" style=\"position:absolute\" aria-hidden=\"true\" focusable=\"false\">\n  <defs>\n    <symbol id=\"i-like\" viewBox=\"0 0 24 24\"><path d=\"M7 10v12\"/><path d=\"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z\"/></symbol>\n    <symbol id=\"i-comment\" viewBox=\"0 0 24 24\"><path d=\"M7.9 20A9 9 0 1 0 4 16.1L2 22Z\"/></symbol>\n    <symbol id=\"i-follow\" viewBox=\"0 0 24 24\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"/><circle cx=\"9\" cy=\"7\" r=\"4\"/><path d=\"M19 8v6\"/><path d=\"M22 11h-6\"/></symbol>\n    <symbol id=\"i-connect\" viewBox=\"0 0 24 24\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"/><circle cx=\"9\" cy=\"7\" r=\"4\"/><path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"/></symbol>\n    <symbol id=\"i-dm\" viewBox=\"0 0 24 24\"><path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"/><path d=\"M8 8h8\"/><path d=\"M8 12h5\"/></symbol>\n    <symbol id=\"i-email\" viewBox=\"0 0 24 24\"><rect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"/><path d=\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\"/></symbol>\n    <symbol id=\"i-voicemail\" viewBox=\"0 0 24 24\"><circle cx=\"6\" cy=\"12\" r=\"4\"/><circle cx=\"18\" cy=\"12\" r=\"4\"/><path d=\"M6 16h12\"/></symbol>\n    <symbol id=\"i-wait\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 6v6l4 2\"/></symbol>\n    <symbol id=\"i-reply\" viewBox=\"0 0 24 24\"><path d=\"M9 17 4 12l5-5\"/><path d=\"M20 18v-2a4 4 0 0 0-4-4H4\"/></symbol>\n    <symbol id=\"i-stop\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m4.9 4.9 14.2 14.2\"/></symbol>\n    <symbol id=\"i-check\" viewBox=\"0 0 24 24\"><path d=\"M20 6 9 17l-5-5\"/></symbol>\n    <symbol id=\"i-job\" viewBox=\"0 0 24 24\"><path d=\"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"/><rect width=\"20\" height=\"14\" x=\"2\" y=\"6\" rx=\"2\"/></symbol>\n    <symbol id=\"i-post\" viewBox=\"0 0 24 24\"><path d=\"M12 20h9\"/><path d=\"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z\"/></symbol>\n    <symbol id=\"i-funding\" viewBox=\"0 0 24 24\"><path d=\"m22 7-8.5 8.5-5-5L2 17\"/><path d=\"M16 7h6v6\"/></symbol>\n    <symbol id=\"i-news\" viewBox=\"0 0 24 24\"><path d=\"M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-2 2Zm0 0a2 2 0 0 1-2-2v-9c0-1.1.9-2 2-2h2\"/><path d=\"M18 14h-8\"/><path d=\"M15 18h-5\"/><path d=\"M10 6h8v4h-8Z\"/></symbol>\n    <symbol id=\"i-play\" viewBox=\"0 0 24 24\"><path d=\"M6 3v18l14-9Z\"/></symbol>\n    <symbol id=\"i-pause\" viewBox=\"0 0 24 24\"><rect x=\"14\" y=\"4\" width=\"4\" height=\"16\" rx=\"1\"/><rect x=\"6\" y=\"4\" width=\"4\" height=\"16\" rx=\"1\"/></symbol>\n    <symbol id=\"i-arrow\" viewBox=\"0 0 24 24\"><path d=\"M5 12h14\"/><path d=\"m12 5 7 7-7 7\"/></symbol>\n    <symbol id=\"i-down\" viewBox=\"0 0 24 24\"><path d=\"M12 5v14\"/><path d=\"m19 12-7 7-7-7\"/></symbol>\n    <symbol id=\"i-review\" viewBox=\"0 0 24 24\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"/><circle cx=\"9\" cy=\"7\" r=\"4\"/><path d=\"m16 11 2 2 4-4\"/></symbol>\n    <symbol id=\"i-inbox\" viewBox=\"0 0 24 24\"><path d=\"M22 12h-6l-2 3h-4l-2-3H2\"/><path d=\"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"/></symbol>\n    <symbol id=\"i-x\" viewBox=\"0 0 24 24\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></symbol>\n    <symbol id=\"i-eye\" viewBox=\"0 0 24 24\"><path d=\"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z\"/><circle cx=\"12\" cy=\"12\" r=\"3\"/></symbol>\n  <symbol id=\"i-hire\" viewBox=\"0 0 24 24\"><circle cx=\"9\" cy=\"8\" r=\"4\"/><path d=\"M2 21a7 7 0 0 1 14 0M19 8v6M16 11h6\"/></symbol><symbol id=\"i-cal\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\"/><path d=\"M8 3v4M16 3v4M3 10h18\"/></symbol><symbol id=\"i-school\" viewBox=\"0 0 24 24\"><path d=\"M2 9.5 12 4.5l10 5-10 5z\"/><path d=\"M6 11.5V16c3 2.2 9 2.2 12 0v-4.5\"/></symbol><symbol id=\"i-web\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M3 12h18M12 3c2.6 2.6 3.8 5.6 3.8 9S14.6 18.4 12 21c-2.6-2.6-3.8-5.6-3.8-9S9.4 5.6 12 3z\"/></symbol><symbol id=\"i-pen\" viewBox=\"0 0 24 24\"><path d=\"M12 20h9\"/><path d=\"M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z\"/></symbol><symbol id=\"i-tag\" viewBox=\"0 0 24 24\"><path d=\"M20.6 13.4l-7.2 7.2a2 2 0 0 1-2.8 0L3 13V3h10l7.6 7.6a2 2 0 0 1 0 2.8z\"/><circle cx=\"7.5\" cy=\"7.5\" r=\"1.5\"/></symbol><symbol id=\"i-goal\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"9\"/><circle cx=\"12\" cy=\"12\" r=\"5\"/><circle cx=\"12\" cy=\"12\" r=\"1\"/></symbol><symbol id=\"i-clock\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M12 7v5l3 2\"/></symbol><symbol id=\"i-archive\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"4\" rx=\"1\"/><path d=\"M5 8v11a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V8M10 12h4\"/></symbol><symbol id=\"i-search\" viewBox=\"0 0 24 24\"><circle cx=\"11\" cy=\"11\" r=\"7\"/><path d=\"M20 20l-3.5-3.5\"/></symbol><symbol id=\"i-building\" viewBox=\"0 0 24 24\"><rect x=\"4\" y=\"3\" width=\"16\" height=\"18\" rx=\"1.5\"/><path d=\"M9 7h2M13 7h2M9 11h2M13 11h2M9 15h2M13 15h2\"/></symbol><symbol id=\"i-alert\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M12 7.5v5M12 16h.01\"/></symbol><symbol id=\"i-plus\" viewBox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\"/></symbol><symbol id=\"i-refresh\" viewBox=\"0 0 24 24\"><path d=\"M20 12a8 8 0 0 1-14.2 5M4 12a8 8 0 0 1 14.2-5\"/><path d=\"M18.5 3.5V7H15M5.5 20.5V17H9\"/></symbol><symbol id=\"i-credits\" viewBox=\"0 0 24 24\"><ellipse cx=\"12\" cy=\"6.5\" rx=\"7\" ry=\"3\"/><path d=\"M5 6.5v5c0 1.7 3.1 3 7 3s7-1.3 7-3v-5M5 11.5v5c0 1.7 3.1 3 7 3s7-1.3 7-3v-5\"/></symbol><symbol id=\"i-table\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\"/><path d=\"M3 9.5h18M3 15h18M9 4v16\"/></symbol><symbol id=\"i-send\" viewBox=\"0 0 24 24\"><path d=\"M21 3 10.5 13.5M21 3l-6.5 18-4-7.5L3 9.5z\"/></symbol><symbol id=\"i-ccheck\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M8 12.3l2.8 2.8L16.2 9.5\"/></symbol><symbol id=\"i-swap\" viewBox=\"0 0 24 24\"><path d=\"M7 4 3 8l4 4M3 8h14M17 20l4-4-4-4M21 16H7\"/></symbol><symbol id=\"i-phone\" viewBox=\"0 0 24 24\"><path d=\"M5.5 3.5h3.5l2 5-2.5 1.6a11 11 0 0 0 5.4 5.4l1.6-2.5 5 2V19a2 2 0 0 1-2 2A17.5 17.5 0 0 1 3.5 5.5a2 2 0 0 1 2-2z\"/></symbol><symbol id=\"i-shield\" viewBox=\"0 0 24 24\"><path d=\"M12 3l7.5 3v5.5c0 4.6-3.2 8.2-7.5 9.5-4.3-1.3-7.5-4.9-7.5-9.5V6z\"/><path d=\"M8.8 12l2.2 2.2 4.2-4.4\"/></symbol><symbol id=\"i-sort\" viewBox=\"0 0 24 24\"><path d=\"M4 6h16M7 12h10M10 18h4\"/></symbol><symbol id=\"i-moon\" viewBox=\"0 0 24 24\"><path d=\"M20 14.5A8.5 8.5 0 1 1 9.5 4a7 7 0 0 0 10.5 10.5z\"/></symbol><symbol id=\"i-info\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4\"/><path d=\"M12 8h.01\"/></symbol><symbol id=\"i-link\" viewBox=\"0 0 24 24\"><path d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"/><path d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"/></symbol><symbol id=\"i-list\" viewBox=\"0 0 24 24\"><path d=\"M8 6h13\"/><path d=\"M8 12h13\"/><path d=\"M8 18h13\"/><path d=\"M3 6h.01\"/><path d=\"M3 12h.01\"/><path d=\"M3 18h.01\"/></symbol><symbol id=\"i-bug\" viewBox=\"0 0 24 24\"><path d=\"m8 2 1.88 1.88\"/><path d=\"M14.12 3.88 16 2\"/><path d=\"M9 7.13v-1a3 3 0 1 1 6 0v1\"/><path d=\"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6\"/><path d=\"M12 20v-9\"/><path d=\"M6.53 9C4.6 8.8 3 7.1 3 5\"/><path d=\"M6 13H2\"/><path d=\"M3 21c0-2.1 1.7-3.9 3.8-4\"/><path d=\"M20.97 5c0 2.1-1.6 3.8-3.5 4\"/><path d=\"M22 13h-4\"/><path d=\"M17.2 17c2.1.1 3.8 1.9 3.8 4\"/></symbol><symbol id=\"i-globe\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M2 12h20\"/><path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"/></symbol><symbol id=\"i-target\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><circle cx=\"12\" cy=\"12\" r=\"6\"/><circle cx=\"12\" cy=\"12\" r=\"2\"/></symbol><symbol id=\"i-sms\" viewBox=\"0 0 24 24\"><rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\"/><path d=\"M12 18h.01\"/></symbol><symbol id=\"i-signal\" viewBox=\"0 0 24 24\"><path d=\"M2 12h4l3-8 4 16 3-8h6\"/></symbol><symbol id=\"i-db\" viewBox=\"0 0 24 24\"><ellipse cx=\"12\" cy=\"5\" rx=\"8\" ry=\"3\"/><path d=\"M4 5v6c0 1.7 3.6 3 8 3s8-1.3 8-3V5\"/><path d=\"M4 11v6c0 1.7 3.6 3 8 3s8-1.3 8-3v-6\"/></symbol><symbol id=\"i-spark\" viewBox=\"0 0 24 24\"><path d=\"M12 3l1.9 5.8L20 11l-6.1 2.2L12 19l-1.9-5.8L4 11l6.1-2.2z\"/></symbol><symbol id=\"i-hammer\" viewBox=\"0 0 24 24\"><path d=\"m15 12-8.5 8.5a2.12 2.12 0 1 1-3-3L12 9\"/><path d=\"M17.64 15 22 10.64\"/><path d=\"m20.91 11.7-1.25-1.25c-.6-.6-.93-1.4-.93-2.25v-.86L16.01 4.6a5.56 5.56 0 0 0-3.94-1.64H9l.92.82A6.18 6.18 0 0 1 12 8.4v1.56l2 2h2.47l2.26 1.91\"/></symbol><symbol id=\"i-user\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"8\" r=\"4\"/><path d=\"M4 21v-1a6 6 0 0 1 6-6h4a6 6 0 0 1 6 6v1\"/></symbol><symbol id=\"i-award\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"9\" r=\"6\"/><path d=\"M8.5 13.9 7 22l5-3 5 3-1.5-8.1\"/></symbol><symbol id=\"i-chev\" viewBox=\"0 0 24 24\"><path d=\"m6 9 6 6 6-6\"/></symbol></defs>\n</svg>\n\n\n<header class=\"hd\"><div class=\"wrap\"><a class=\"home\" href=\"#top\" aria-label=\"Yoke, back to top\"><svg class=\"logo\" role=\"img\" aria-label=\"Yoke\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"5.00 7.00 401.59 102.00\"><path d=\"M16.000 18.000 C16.000 52.000 36.000 58.000 96.000 58.000 C156.000 58.000 160.000 64.000 160.000 98.000\" stroke=\"#F04B37\" fill=\"none\" stroke-width=\"22.0\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M168.000 18.000 C168.000 52.000 148.000 58.000 96.000 58.000 C44.000 58.000 28.000 64.000 28.000 98.000\" stroke=\"#111317\" fill=\"none\" stroke-width=\"22.0\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path transform=\"translate(190.4239 103.9000) scale(0.106250)\" d=\"M279 0V-291L11 -720H196L408 -339H321L532 -720H701L433 -291V0Z\" fill=\"#111317\"/><path transform=\"translate(240.6828 103.9000) scale(0.106250)\" d=\"M302 10Q218 10 154.5 -23.5Q91 -57 55.5 -117.5Q20 -178 20 -257Q20 -336 55.5 -395.0Q91 -454 154.5 -487.0Q218 -520 302 -520Q387 -520 450.5 -487.0Q514 -454 549.0 -395.0Q584 -336 584 -257Q584 -178 548.5 -117.5Q513 -57 449.5 -23.5Q386 10 302 10ZM302 -108Q337 -108 365.5 -126.0Q394 -144 411.0 -177.5Q428 -211 428 -258Q428 -327 391.5 -364.5Q355 -402 302 -402Q249 -402 212.5 -364.0Q176 -326 176 -258Q176 -211 193.0 -177.5Q210 -144 238.5 -126.0Q267 -108 302 -108Z\" fill=\"#111317\"/><path transform=\"translate(299.7606 103.9000) scale(0.106250)\" d=\"M60 0V-720H210V0ZM387 0 175 -265 382 -510H555L312 -242L319 -289L565 0Z\" fill=\"#111317\"/><path transform=\"translate(347.7343 103.9000) scale(0.106250)\" d=\"M300 10Q215 10 152.0 -23.5Q89 -57 54.5 -117.0Q20 -177 20 -255Q20 -334 54.5 -393.5Q89 -453 151.0 -486.5Q213 -520 295 -520Q374 -520 432.0 -488.0Q490 -456 522.0 -399.0Q554 -342 554 -265Q554 -249 553.0 -235.5Q552 -222 550 -210H108V-309H429L403 -291Q403 -353 373.5 -382.5Q344 -412 293 -412Q234 -412 201.5 -372.0Q169 -332 169 -252Q169 -174 201.5 -136.0Q234 -98 299 -98Q335 -98 361.0 -110.0Q387 -122 400 -149H541Q516 -75 455.5 -32.5Q395 10 300 10Z\" fill=\"#111317\"/></svg></a><a class=\"btn\" href=\"#start\">Get started</a></div></header>\n<main>\n  <!-- ================= 1. Hero, Page B ================= -->\n  <section class=\"hero bp\" id=\"top\">\n    <div class=\"wrap hero-g\">\n      <div class=\"hero-t\">\n        <p class=\"eyb\">For teams running outbound in Clay</p>\n        <h1>Book meetings with your dream accounts, without fixing outbound every week</h1>\n        <figure class=\"app hc hc-c\" aria-label=\"Example: this week, Yoke handled\">\n          <div class=\"app-bar\"><svg class=\"sym\" viewBox=\"5 7 174 102\" aria-hidden=\"true\"><path d=\"M16 18C16 52 36 58 96 58C156 58 160 64 160 98\" stroke=\"#F04B37\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M168 18C168 52 148 58 96 58C44 58 28 64 28 98\" stroke=\"#111317\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg><b>This week, Yoke handled</b><span class=\"ex\">Example</span></div>\n          <ol>\n            <li class=\"ln data\"><span class=\"ic\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-refresh\"/></svg></span><span><b>31</b> stale emails replaced before sending</span></li>\n            <li class=\"ln ok\"><span class=\"ic\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-check\"/></svg></span><span><b>Upkeep:</b> done for you</span></li>\n            <li class=\"ln win\"><span class=\"ic\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-cal\"/></svg></span><span><b>3</b> meetings booked</span></li>\n          </ol>\n        </figure>\n        <a class=\"btn\" href=\"#start\">Get started</a>\n        <p class=\"sub\">Yoke checks fit first, researches each account, writes one-to-one and books the meeting. It handles the upkeep as it goes, from stale emails to job changes, <b>so nobody has to babysit it.</b></p>\n        <div class=\"proof\">\n          <ul class=\"badges\" aria-label=\"Recognition\">\n            <li><img src=\"https://cdn.prod.website-files.com/6580ba9f4259d2de5a4189c2/6ae4efa064b2f6ca49b86400_yk-t2-04.webp\" alt=\"G2 Users Love Us\" width=\"67\" height=\"84\"></li>\n            <li><img src=\"https://cdn.prod.website-files.com/6580ba9f4259d2de5a4189c2/6ae4efa08db962c6d944a4d1_yk-t2-05.webp\" alt=\"Over 10 years, as the industry\u2019s leading platform\" width=\"144\" height=\"84\"></li>\n            <li><img src=\"https://cdn.prod.website-files.com/6580ba9f4259d2de5a4189c2/67ef255db92715ab84318678_ad721b80-a8d6-478c-951e-a939c2dc1c20.svg\" alt=\"Capterra 4.6\" width=\"278\" height=\"91\"></li>\n            <li><img src=\"https://cdn.prod.website-files.com/6580ba9f4259d2de5a4189c2/6ae4efa0f95959ba16bbec5e_yk-t2-07.webp\" alt=\"Software Advice 4.6\" width=\"208\" height=\"84\"></li>\n          </ul>\n          <p class=\"pl\">Yoke customers</p>\n          <div class=\"cust\">\n            <figure class=\"cq\"><img class=\"ph-c\" src=\"https://cdn.prod.website-files.com/6580ba9f4259d2de5a4189c2/6ae4efa0216daa69864286a5_yk-t2-08.webp\" alt=\"\" width=\"40\" height=\"40\"><span class=\"who\"><b>Xavier Chang</b><span>XC Consulting</span></span><p class=\"res\">33 meetings in 60 days</p></figure>\n            <figure class=\"cq\"><img class=\"ph-c\" src=\"https://cdn.prod.website-files.com/6580ba9f4259d2de5a4189c2/6ae4efbd60754f0de606c9d4_yk-t2-09.webp\" alt=\"\" width=\"40\" height=\"40\"><span class=\"who\"><b>Greg Wise</b><span>OneScreen.ai</span></span><img class=\"clogo\" src=\"https://cdn.prod.website-files.com/6580ba9f4259d2de5a4189c2/6ae4efbda7dc56603d0d9ee5_yk-t2-10.webp\" alt=\"OneScreen.ai\" height=\"16\"><p class=\"res\">60 meetings booked in 60 days</p><blockquote>\u201cI let it run and wait until people are ready to talk.\u201d</blockquote></figure>\n          </div>\n        </div>\n\n      </div>\n      <figure class=\"app hc hc-d\" id=\"hcB\" aria-label=\"Example: this week, Yoke handled\">\n        <div class=\"app-bar\"><svg class=\"sym\" viewBox=\"5 7 174 102\" aria-hidden=\"true\"><path d=\"M16 18C16 52 36 58 96 58C156 58 160 64 160 98\" stroke=\"#F04B37\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M168 18C168 52 148 58 96 58C44 58 28 64 28 98\" stroke=\"#111317\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg><b>This week, Yoke handled</b><span class=\"ex\">Example</span></div>\n        <ol>\n          <li class=\"ln data sq\"><span class=\"ic\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-refresh\"/></svg></span><span><b>31</b> stale emails replaced before sending</span></li>\n          <li class=\"ln data sq\"><span class=\"ic\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-job\"/></svg></span><span><b>4</b> job changes followed to the new company</span></li>\n          <li class=\"ln skip sq\"><span class=\"ic\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-shield\"/></svg></span><span><b>2</b> skipped: already in an open deal</span></li>\n          <li class=\"ln sq\"><span class=\"ic\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-sort\"/></svg></span><span><b>9</b> replies sorted</span></li>\n          <li class=\"ln ok sq\"><span class=\"ic\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-check\"/></svg></span><span><b>Upkeep:</b> done for you</span></li>\n          <li class=\"ln win end sq\"><span class=\"ic\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-cal\"/></svg></span><span><b>3</b> meetings booked</span></li>\n        </ol>\n      </figure>\n    </div>\n  </section>\n\n  <!-- ================= 2. Why it matters, Page B ================= -->\n  <section class=\"sec s-canvas\" id=\"why\">\n    <div class=\"wrap two rev\">\n      <div class=\"intro\">\n        <h2 class=\"h2\">Your outbound only runs while someone keeps fixing it</h2>\n        <p class=\"lead\">Syncs break, emails go stale, waterfalls need new guardrails, and sales keeps asking for new lists. <b>All of it lands on the one person who can fix it.</b></p>\n      </div>\n      <figure class=\"app wk\" id=\"wk\" aria-label=\"Example: a builder's week\">\n        <div class=\"app-bar\"><span class=\"dots\"><i></i><i></i><i></i></span><b>A builder\u2019s week</b><span class=\"ex\">Example</span></div>\n        <ol>\n          <li class=\"day sq\"><span class=\"d\">Mon</span><span class=\"t\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-swap\"/></svg><span>CRM sync broke, rewire it</span></span><span class=\"h\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-clock\"/></svg>2 hrs</span></li>\n          <li class=\"day sq\"><span class=\"d\">Tue</span><span class=\"t\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-email\"/></svg><span>312 emails gone stale, re-run enrichment</span></span><span class=\"h\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-clock\"/></svg>1.5 hrs</span></li>\n          <li class=\"day sq\"><span class=\"d\">Wed</span><span class=\"t\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-list\"/></svg><span>sales wants a new list, the third ask this week</span></span><span class=\"h\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-clock\"/></svg>3 hrs</span></li>\n          <li class=\"day sq\"><span class=\"d\">Thu</span><span class=\"t\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-bug\"/></svg><span>the waterfall is returning wrong numbers, debug it</span></span><span class=\"h\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-clock\"/></svg>2 hrs</span></li>\n          <li class=\"day sq\"><span class=\"d\">Fri</span><span class=\"t\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-alert\"/></svg><span>the job-change trigger stopped firing, fix it</span></span><span class=\"h\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-clock\"/></svg>1.5 hrs</span></li>\n        </ol>\n        <p class=\"tot\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-clock\"/></svg>10 hrs of upkeep, and nothing new built</p>\n      </figure>\n    </div>\n  </section>\n\n  <!-- ================= 3. What you get (shared): the engine room, on ink, live ================= -->\n  <section class=\"sec dark\" id=\"get\">\n    <div class=\"wrap\">\n      <div class=\"sec-top\">\n        <h2 class=\"h2\">The right people, each with a message worth answering</h2>\n        <p class=\"lead\"><b>Yoke runs the whole flow on every account:</b> the waterfall, the research, the scoring and the follow-ups. Then it writes a few lines worth answering.</p>\n      </div>\n<div id=\"ssd\" class=\"ss\"></div>\n<template id=\"ssd-tpl\"><style>\n/* Layout: one dark stage, three zones left to right: the queue, what Yoke finds, and one composer where weighing and writing happen together */\n:host{\n  --ink:#0E1014; --stage:#14171D; --panel:#1B1F27; --line:#2A303B; --mute:#7C8494; --soft:#B7BDC9; --fg:#F2F3F5;\n  --coral:#F04B37; --lime:#CDF05B; --blue:#4D7BFF; --sky:#8FCBFF; --gold:#F2C14E;\n  --font:\"Instrument Sans\",system-ui,-apple-system,sans-serif; --mono:\"JetBrains Mono\",ui-monospace,monospace;\n  color-scheme:dark;\n}\n*{box-sizing:border-box}\n\n.stage{position:relative;background:radial-gradient(1200px 500px at 60% 0%,#1A1F29 0%,var(--stage) 60%);border:1px solid var(--line);border-radius:18px;padding:22px;overflow:hidden}\n.grid{position:relative;z-index:1;display:grid;grid-template-columns:210px 88px minmax(0,270px) 72px minmax(0,1fr);column-gap:0;align-items:start}\n.grid>section:nth-child(1){grid-column:1}.grid>section:nth-child(2){grid-column:3}.grid>section:nth-child(3){grid-column:5}\nsvg.wires{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}\n.wires path{fill:none;stroke-width:1.6;stroke-linecap:round;transition:stroke .35s,opacity .4s,stroke-width .35s}\n.zone-h{font:500 11px/1 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--mute);margin-bottom:12px;display:flex;justify-content:space-between;gap:8px}\n\n/* queue */\n.queue{display:grid;gap:6px}\n.q{display:block;padding:8px;border-radius:10px;border:1px solid transparent;cursor:pointer;transition:background .3s,border-color .3s,opacity .3s;opacity:.3;background:none;color:inherit;font:inherit;text-align:left;width:100%}\n.q:hover{opacity:.8}\n.q:focus-visible{outline:2px solid var(--sky);outline-offset:2px}\n.q.on{opacity:1;background:var(--panel);border-color:#363d4a}\n.q.done{opacity:.3}\n.q.on.done{opacity:.6}\n.av{width:34px;height:34px;border-radius:50%;flex:none;display:grid;place-items:center;font:600 12px/1 var(--font);color:var(--ink)}\n.q .row{display:flex;align-items:center;gap:10px}\n.q .t{min-width:0;flex:1}\n.q .nm{display:flex;align-items:baseline;gap:8px}\n.q .t b{display:block;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}\n.q .t .who{display:block;font-size:12px;color:var(--mute)}\n.q .st{margin-left:auto;flex:none;font:500 10.5px/1 var(--mono);color:var(--mute)}\n.q.on .st{color:var(--gold)}\n.q.on:not(.done) .st{animation:work 2.6s ease-in-out infinite}\n@keyframes work{50%{opacity:.6}}\n.q.done .st{color:#93A653}\n.xp{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.2,.8,.2,1)}\n.q.open .xp{grid-template-rows:1fr}\n.xpi{overflow:hidden;display:block}\n.xpb{display:block;margin-top:10px;padding-top:10px;border-top:1px solid #303643}\n.xpb .v{display:block;font-size:13px;color:var(--soft)}\n.xpb .ok{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font:600 12px/1 var(--font);color:var(--ink);background:var(--lime);padding:5px 8px;border-radius:999px;opacity:0;transform:scale(.8);transition:.3s}\n.q.pass .xpb .ok{opacity:1;transform:none}\n\n/* findings */\n.cats{display:grid;gap:16px}\n.cat{opacity:0;transform:translateX(-8px);transition:.45s}\n.cat.show{opacity:1;transform:none}\n.cat-h{display:flex;align-items:center;gap:8px;font:600 12.5px/1 var(--font);margin-bottom:8px}\n.cat-h .dot{width:8px;height:8px;border-radius:50%}\n.cat-h .scan{font:500 11px/1 var(--mono);color:var(--mute);margin-left:6px}\n.cat-h .scan.busy::after{content:\"\";display:inline-block;width:10px;animation:dots 1s steps(4) infinite}\n@keyframes dots{0%{content:\"\"}25%{content:\".\"}50%{content:\"..\"}75%{content:\"...\"}}\n.items{display:flex;flex-direction:column;align-items:flex-start}\n.cat.sub{margin:-6px 0 0 16px;padding-left:12px;border-left:1px dashed #333a46}\n.cat.sub .cat-h{font:600 11.5px/1 var(--font);color:var(--soft)}\n.cat.sub .cat-h .dot{width:6px;height:6px}\n.cat.sub .it{font-size:12.5px;padding:5px 9px}\n.it{font-size:13px;padding:6px 10px;border-radius:8px;border:1px solid var(--line);color:var(--soft);background:#171B22;opacity:0;transform:translateY(4px);margin-bottom:6px;max-height:44px;overflow:hidden;transition:opacity .3s,transform .3s,border-color .35s,background .35s,color .35s,max-height .45s ease,margin .45s ease,padding .45s ease,border-width .45s ease}\n.cat .it.gone{max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0;border-width:0;opacity:0}\n.it.show{opacity:1;transform:none}\n.it.dim{opacity:.3}\n.it.pick{color:var(--fg);font-weight:600}\n\n/* composer: weighing rail + message in one card */\n.comp{background:var(--panel);border:1px solid #363d4a;border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px}\n.comp-h{display:flex;align-items:center;gap:8px;font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--coral)}\n.comp-h .to{margin-left:4px;color:var(--soft);text-transform:none;letter-spacing:0;font-family:var(--font);font-size:12px}\n.tone{margin-left:auto;display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-family:var(--font)}\n.tone .tk{font-size:12px;color:var(--mute)}\n.reel{position:relative;display:block;width:120px;height:22px;overflow:hidden;border-radius:6px;background:#141820;border:1px solid #2C323D;-webkit-mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent);mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent)}\n.rl{display:block;will-change:transform}\n.rl span{display:block;height:22px;line-height:22px;padding:0 9px;font-size:13px;font-weight:600;color:var(--soft);white-space:nowrap}\n.reel.set .rl span:last-child{color:var(--fg)}\n.reel.set{border-color:#4A5262}\n.body{border-top:1px solid var(--line);padding-top:14px}\n.lines{display:flex;flex-direction:column;gap:10px}\n.ln{font-size:16.5px;line-height:1.45;color:var(--fg)}\n.ln .ch{transition:color .5s ease}\n.ln{position:relative;min-height:1.45em}\n.chips{position:absolute;inset:0;pointer-events:none;z-index:3}\n.tag-src{position:absolute;font:600 10.5px/1 var(--font);padding:4px 7px;border-radius:999px;color:var(--ink);box-shadow:0 0 0 3px var(--stage),0 4px 14px rgba(0,0,0,.45);transform:translate(-100%,-50%) scale(.8);opacity:0;transition:opacity .3s,transform .3s cubic-bezier(.2,1.4,.4,1);white-space:nowrap}\n.tag-src.on{opacity:1;transform:translate(-100%,-50%)}\n.wst{font:500 10.5px/1 var(--mono);letter-spacing:0;text-transform:none;color:var(--fg);margin-left:4px;opacity:0;transition:opacity .3s}\n.wst.on{opacity:1;animation:work 2.6s ease-in-out infinite}\n.wst.on.done{animation:none;color:var(--mute)}\n.wires .w-feed{stroke-width:1.2}\n.wires .w-out{stroke-width:1.6}\n.caret{display:inline-block;width:2px;height:1.05em;vertical-align:-2px;margin-left:1px}\n.caret{animation:blink .8s steps(1) infinite}\n@keyframes blink{50%{opacity:0}}\n.meta{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--mute);opacity:0;transition:.3s}\n.meta.on{opacity:1}\n.meta .sent{color:var(--soft)}\n.reply{display:flex;gap:10px;align-items:flex-start;opacity:0;transform:translateY(8px);transition:.4s}\n.reply.on{opacity:1;transform:none}\n.bub{background:#F2F3F5;color:#14171D;border-radius:14px 14px 14px 4px;padding:9px 12px;font-size:14.5px;max-width:100%}\n.typing{display:inline-flex;gap:4px;padding:12px 14px;background:#2A303B;border-radius:14px}\n.typing i{width:6px;height:6px;border-radius:50%;background:var(--soft);animation:bob 1s infinite}\n.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}\n@keyframes bob{0%,60%,100%{transform:none;opacity:.5}30%{transform:translateY(-3px);opacity:1}}\n.outcome{display:inline-flex;align-items:center;gap:6px;font:700 12.5px/1 var(--font);color:var(--ink);background:var(--lime);padding:7px 10px;border-radius:999px;opacity:0;transform:scale(1.35) rotate(-4deg);transition:.35s cubic-bezier(.2,1.4,.4,1);align-self:flex-start}\n.outcome.on{opacity:1;transform:none}\n\n.controls{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;position:relative;z-index:1}\n.btn{font:600 12.5px/1 var(--font);color:var(--soft);background:#1B1F27;border:1px solid #363d4a;border-radius:999px;padding:9px 12px;cursor:pointer}\n.btn:hover{color:var(--fg)}\n.btn:focus-visible{outline:2px solid var(--sky);outline-offset:2px}\n.foot{color:var(--mute);font-size:12px}\n.fadeout .cats,.fadeout .body,.fadeout .after{opacity:0;transition:opacity .45s}\n\n@media (max-width:980px){\n  .grid{grid-template-columns:minmax(0,1fr);gap:20px}\n  .grid>section:nth-child(n){grid-column:auto}\n  svg.wires{display:none}\n  .queue{grid-template-columns:repeat(3,minmax(0,1fr))}\n  .q .st,.q .t .who{display:none}\n  .comp{min-height:0}\n}\n@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}\n\n/* page port: the host stands in for the prototype page (its .wrap was a grid with an 18px gap) */\n:host{display:grid;gap:18px;color:var(--fg);font-family:var(--font);font-size:15px;line-height:1.45}\n/* page port: the small Pause and Replay buttons keep their look but get a 44px tap area */\n.btn{position:relative}.btn::after{content:\"\";position:absolute;inset:-7px -3px}\n.measuring *{transition:none!important}\n</style>\n  <div class=\"stage\" id=\"stage\" aria-label=\"Animated example of Yoke researching accounts and writing messages\">\n    <svg class=\"wires\" id=\"wires\" aria-hidden=\"true\"></svg><div class=\"chips\" id=\"chips\" aria-hidden=\"true\"></div>\n    <div class=\"grid\">\n      <section aria-label=\"Accounts\">\n        <div class=\"zone-h\"><span>Search list</span></div>\n        <div class=\"queue\" id=\"queue\"></div>\n      </section>\n\n      <section aria-label=\"What Yoke found\">\n        <div class=\"zone-h\"><span>Deep enrichment</span></div>\n        <div class=\"cats\" id=\"cats\"></div>\n      </section>\n\n      <section aria-label=\"Outreach\">\n        <div class=\"zone-h\"><span>Outreach</span></div>\n        <div class=\"comp\" id=\"comp\">\n          <div class=\"comp-h\"><svg width=\"16\" height=\"10\" viewBox=\"5 7 165 92\" aria-hidden=\"true\"><path d=\"M16 18C16 52 36 58 96 58C156 58 160 64 160 98\" stroke=\"#F04B37\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\"/><path d=\"M168 18C168 52 148 58 96 58C44 58 28 64 28 98\" stroke=\"#F2F3F5\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\"/></svg><span class=\"wst\" id=\"wst\"></span><span class=\"tone\"><span class=\"tk\">Tone</span><span class=\"reel\" id=\"reel\"><span class=\"rl\" id=\"rl\"></span></span></span></div>\n          <div class=\"body\">\n            <div class=\"lines\" id=\"lines\"></div>\n          </div>\n          <div class=\"after\" style=\"display:grid;gap:10px\">\n            <div class=\"meta\" id=\"meta\"><span class=\"sent\">Sent from your LinkedIn</span><span id=\"time\">9:14</span></div>\n            <div class=\"reply\" id=\"reply\"></div>\n            <div id=\"outcomeWrap\" style=\"display:flex\"></div>\n          </div>\n        </div>\n      </section>\n    </div>\n    <div class=\"controls\"><button class=\"btn\" id=\"pause\" type=\"button\">Pause</button><button class=\"btn\" id=\"replay\" type=\"button\">Replay</button></div>\n  </div>\n  <p class=\"foot\">Example people and companies.</p>\n</template>\n\n<div id=\"ssp\" class=\"ss\"></div>\n<template id=\"ssp-tpl\"><style>\n/* Layout: one phone-width section; a fixed-size stage (about half the screen) where the cloud of facts gathers into a sorted strip and the message writes below it */\n:host{\n  --ink:#0E1014; --stage:#14171D; --panel:#1B1F27; --line:#2A303B; --mute:#7C8494; --soft:#B7BDC9; --fg:#F2F3F5;\n  --coral:#F04B37; --lime:#CDF05B; --blue:#4D7BFF; --sky:#8FCBFF; --gold:#F2C14E;\n  --font:\"Instrument Sans\",system-ui,-apple-system,\"Segoe UI\",sans-serif; --mono:\"JetBrains Mono\",ui-monospace,Menlo,monospace;\n  color-scheme:dark;\n}\n*{box-sizing:border-box}\n/* on wide screens, show a real 390\u00d7844 phone viewport */\n\n.deck{position:relative;isolation:isolate;margin-bottom:12px}\n.deck .u{position:absolute;inset:0;border:1px solid var(--line);border-radius:18px;z-index:-1;pointer-events:none}\n.deck .u{border-color:#2C323D}\n.deck .u1{background:#191D24;transform:translateY(7px) scale(.965)}\n.deck .u2{background:#14171D;transform:translateY(14px) scale(.93)}\n.stage.leave{transform:translateX(-115%) rotate(-4deg);opacity:0;transition:transform .55s cubic-bezier(.55,0,.75,.2),opacity .5s ease-in}\n.stage.enter{transform:translateY(7px) scale(.965);opacity:.6;transition:none}\n.stage{transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .4s;position:relative;background:radial-gradient(500px 260px at 70% 0%,#1A1F29 0%,var(--stage) 70%);border:1px solid var(--line);border-radius:18px;padding:11px 11px 12px;display:grid;gap:9px;cursor:pointer;user-select:none}\n.stage:focus-visible{outline:2px solid var(--sky);outline-offset:3px}\n.tile{display:flex;align-items:center;gap:10px;transition:opacity .35s}\n.av{width:36px;height:36px;border-radius:50%;flex:none;display:grid;place-items:center;font:600 12px/1 var(--font);color:var(--ink);transition:transform .45s cubic-bezier(.2,1.3,.4,1)}\n.tile .t{min-width:0;flex:1}\n.tile .nm{display:flex;align-items:baseline;gap:8px}\n.tile b{font-size:14.5px;font-weight:600;white-space:nowrap}\n.tile .st{margin-left:auto;font:500 10.5px/1 var(--mono);color:var(--gold);animation:work 2.6s ease-in-out infinite}\n.tile .st.done{animation:none;color:#93A653}\n@keyframes work{50%{opacity:.6}}\n.tile .who{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--mute);white-space:nowrap}\n.icp{margin-left:auto;color:var(--fg);font-weight:600;opacity:0;transform:translateX(-4px);transition:.35s}\n.icp.on{opacity:1;transform:none}\n.lbl{display:flex;justify-content:space-between;font:500 10.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);padding-top:9px;border-top:1px solid var(--line)}\n.lbl .n{text-transform:none;letter-spacing:0}\n\n.body{position:relative;height:var(--bh,300px)}\n.chip,.mchip{font-size:12.5px;line-height:1;padding:7px 9px;border-radius:8px;border:1px solid var(--line);white-space:nowrap}\n.chip{position:absolute;left:0;top:0;color:var(--soft);background:#171B22;opacity:0;will-change:transform;\n  transition:transform .62s cubic-bezier(.22,.8,.22,1),opacity .35s ease,background .35s,border-color .35s,color .35s,box-shadow .35s}\n.chip.pick{color:var(--fg);font-weight:600}\n.chip.rest{opacity:.42!important}\n.chip.act{box-shadow:0 0 0 3px rgba(242,243,245,.08)}\n.measure{position:absolute;left:0;right:0;display:flex;flex-wrap:wrap;gap:7px;visibility:hidden;pointer-events:none}\n.measure.cloud{flex-direction:column;flex-wrap:nowrap;gap:9px}\n.mrow{display:flex;justify-content:center;gap:8px}\n\n.card{position:absolute;left:0;right:0;grid-template-columns:minmax(0,1fr);background:var(--panel);border:1px solid #363d4a;border-radius:14px;padding:10px 12px 12px;display:grid;gap:7px;opacity:0;transform:translateY(10px);transition:opacity .4s,transform .45s cubic-bezier(.2,.8,.2,1)}\n.card.on{opacity:1;transform:none}\n.ch{display:flex;align-items:center;gap:8px;min-height:22px;min-width:0}\n.wst{font:500 10.5px/1 var(--mono);white-space:nowrap;color:var(--fg);opacity:0;transition:opacity .3s}\n.wst.on{opacity:1;animation:work 2.6s ease-in-out infinite}\n.out{display:none;font:700 11.5px/1 var(--font);color:var(--ink);background:var(--lime);padding:5px 8px;border-radius:999px;white-space:nowrap}\n.out.on{display:inline-block;animation:stamp .4s cubic-bezier(.2,1.4,.4,1)}\n@keyframes stamp{from{opacity:0;transform:scale(1.3) rotate(-4deg)}to{opacity:1;transform:none}}\n.wst.gone{display:none}\n.ch svg{flex:none}\n.tone{flex:none}\n.tone{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--mute)}\n.reel{position:relative;display:block;width:88px;height:20px;overflow:hidden;border-radius:6px;background:#141820;border:1px solid #2C323D;-webkit-mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent);mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent)}\n.rl{display:block}\n.rl span{display:block;height:20px;line-height:20px;padding:0 7px;font-size:12px;font-weight:600;color:var(--soft);white-space:nowrap}\n.reel.set .rl span:last-child{color:var(--fg)}\n.lines{display:grid;gap:4px}\n.ln{font-size:14.5px;line-height:1.4;color:var(--fg)}\n.ln .ch2{transition:color .5s ease}\n.caret{display:inline-block;width:2px;height:1.05em;vertical-align:-2px;margin-left:1px;animation:blink .8s steps(1) infinite}\n@keyframes blink{50%{opacity:0}}\n.reply{position:absolute;left:0;right:0;display:flex;gap:9px;align-items:flex-start;opacity:0;transform:translateY(8px);transition:.4s}\n.reply.on{opacity:1;transform:none}\n.reply .av{width:28px;height:28px;font-size:10.5px}\n.bub{background:#F2F3F5;color:#14171D;border-radius:14px 14px 14px 4px;padding:7px 10px;font-size:13.5px;line-height:1.35}\n.typing{display:inline-flex;gap:4px;padding:11px 13px;background:#2A303B;border-radius:14px}\n.typing i{width:6px;height:6px;border-radius:50%;background:var(--soft);animation:bob 1s infinite}\n.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}\n@keyframes bob{0%,60%,100%{transform:none;opacity:.5}30%{transform:translateY(-3px);opacity:1}}\n.fade .body,.fade .lbl{opacity:0;transition:opacity .35s}\n.reset *{transition:none!important}\n.note{margin:0;font-size:12px;color:var(--mute)}\n\n@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}\n\n/* page port: the host stands in for the prototype's phone screen (a 14px-gap column), centered, at most 480px */\n:host{display:flex;flex-direction:column;gap:14px;max-width:480px;margin-inline:auto;color:var(--fg);font-family:var(--font);font-size:15px;line-height:1.45}\n/* page port: \"Pause\" sits beside the line under the stage, in the same style */\n.notes{display:flex;align-items:center;justify-content:space-between;gap:12px}\n.pz{flex:none;min-height:44px;min-width:44px;margin:-12px -6px -12px 0;padding:0 6px;border:0;background:none;font:inherit;font-size:12px;color:var(--mute);cursor:pointer}\n.pz:hover{color:var(--soft)}.pz:focus-visible{outline:2px solid var(--sky);outline-offset:2px;border-radius:4px}\n</style>\n      <div class=\"deck\"><span class=\"u u2\"></span><span class=\"u u1\"></span>\n      <div class=\"stage\" id=\"stage\" tabindex=\"0\" role=\"img\" aria-label=\"Animated example: Yoke reads public facts about a contact, keeps the four that matter and writes a message from them. Tap to replay.\">\n        <div class=\"tile\" id=\"tile\">\n          <span class=\"av\" id=\"av\"></span>\n          <span class=\"t\"><span class=\"nm\"><b id=\"co\"></b><span class=\"st\" id=\"st\">Working</span></span><span class=\"who\"><span id=\"who\"></span><span class=\"icp\" id=\"icp\">\u2713 Matches your ICP</span></span></span>\n        </div>\n        <div class=\"lbl\"><span id=\"lblt\">Finding data</span><span class=\"n\" id=\"lbln\"></span></div>\n        <div class=\"body\" id=\"body\">\n          <div id=\"chips\"></div>\n          <div class=\"card\" id=\"card\">\n            <div class=\"ch\"><svg width=\"16\" height=\"10\" viewBox=\"5 7 165 92\" aria-hidden=\"true\"><path d=\"M16 18C16 52 36 58 96 58C156 58 160 64 160 98\" stroke=\"#F04B37\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\"/><path d=\"M168 18C168 52 148 58 96 58C44 58 28 64 28 98\" stroke=\"#F2F3F5\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\"/></svg><span class=\"wst\" id=\"wst\">Writing your outreach</span><span class=\"out\" id=\"out\"></span><span class=\"tone\">Tone <span class=\"reel\" id=\"reel\"><span class=\"rl\" id=\"rl\"></span></span></span></div>\n            <div class=\"lines\" id=\"lines\"></div>\n          </div>\n          <div class=\"reply\" id=\"reply\"></div>\n          <div class=\"measure cloud\" id=\"mc\" aria-hidden=\"true\"></div>\n          <div class=\"measure\" id=\"mr\" aria-hidden=\"true\"></div>\n        </div>\n      </div>\n      </div>\n      <div class=\"notes\"><p class=\"note\">Tap to replay. Example people and companies.</p><button class=\"pz\" id=\"pause\" type=\"button\">Pause</button></div>\n</template>\n\n      <p class=\"under\">For founders, agencies and GTM teams: hand off the routine outbound, keep your custom builds.</p>\n    </div>\n  </section>\n\n  <!-- ================= 4. Fresh data and signals (shared; H2 and bottom row per page) ================= -->\n  <section class=\"sec s-canvas\" id=\"fresh\">\n    <div class=\"wrap two\">\n      <div class=\"intro\">\n        <h2 class=\"h2\">Contacts that stay current, without a single re-run</h2>\n        <p class=\"lead\">New job, new email, new title: caught as it happens. Yoke keeps every contact current from many data sources, with no re-runs.</p>\n      </div>\n      <div class=\"ctcw\">\n        <figure class=\"app ctc2\" aria-label=\"Example: a contact Yoke keeps fresh\">\n          <div class=\"app-bar\"><i class=\"fc sm fc-f302\" aria-hidden=\"true\"></i><b>Dana Whitfield</b><span class=\"co\">Harbor Lane</span><span class=\"ex\">Example</span></div>\n          <div class=\"now\"><span class=\"sg\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-signal\"/></svg></span><p><span class=\"pill sky\">Worth contacting now:</span> Dana visited your pricing page today</p></div>\n          <div class=\"bgx\"><p class=\"k2\">Kept fresh in the background</p>\n            <ul>\n              <li><span class=\"ic\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-job\"/></svg></span><span><b>Jun:</b> promoted to VP Operations, so the title is updated</span></li>\n              <li><span class=\"ic\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-email\"/></svg></span><span><b>Mar:</b> email verified</span></li>\n            </ul></div>\n          <p class=\"kf\"><span class=\"pill lime\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-refresh\"/></svg>Keeping it fresh: automatic</span></p>\n        </figure>\n        <p class=\"fnote\">Example people. Photos are AI-generated.</p>\n      </div>\n    </div>\n  </section>\n\n  <!-- ================= 5. How it works (shared) ================= -->\n  <section class=\"sec bp\" id=\"how\">\n    <div class=\"wrap\">\n      <div class=\"intro\"><h2 class=\"h2\">Yoke runs every step, from first signal to booked meeting</h2></div>\n      <ol class=\"steps\">\n        <li class=\"step\">\n          <h3><span>1</span>It learns your market.</h3>\n          <p>Start from your website, LinkedIn or a list from Clay. Yoke learns your buyers, offer and voice.</p>\n          <p class=\"chk\"><span class=\"ok\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-check\"/></svg></span><span>no tables to build</span></p>\n          <div class=\"app\"><div class=\"app-bar\"><span class=\"dots\"><i></i><i></i><i></i></span><span class=\"urlb\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-globe\"/></svg>yourcompany.com</span><span class=\"ex\">Example</span></div>\n            <div class=\"lrn\"><span class=\"pill\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-check\"/></svg>Learned</span>\n              <p class=\"lr\"><span class=\"ic\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-user\"/></svg></span><span><b>Buyers:</b> ops leaders at 3PLs and food distributors, 200+ trucks</span></p>\n              <p class=\"lr\"><span class=\"ic\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-target\"/></svg></span><span><b>Offer:</b> cut detention and routing costs</span></p>\n              <p class=\"lr\"><span class=\"ic\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-pen\"/></svg></span><span><b>Tone:</b> plain, direct</span></p></div></div>\n        </li>\n        <li class=\"step\">\n          <h3><span>2</span>It finds the right people at the right moment.</h3>\n          <p>Signals from site visits, job changes and LinkedIn, with a fit check on every account.</p>\n          <p class=\"chk\"><span class=\"ok\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-check\"/></svg></span><span>you approve who it goes after</span></p>\n          <div class=\"app\"><div class=\"app-bar\"><svg class=\"sym\" viewBox=\"5 7 174 102\" aria-hidden=\"true\"><path d=\"M16 18C16 52 36 58 96 58C156 58 160 64 160 98\" stroke=\"#F04B37\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M168 18C168 52 148 58 96 58C44 58 28 64 28 98\" stroke=\"#111317\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg><b>Accounts to approve</b><span class=\"ex\">Example</span></div>\n            <div class=\"rows2\">\n              <div class=\"row2\"><span class=\"av2\"><span class=\"mono sm co\">CF</span><i class=\"fc fc-f101\" aria-hidden=\"true\"></i></span><span><b>Calder Freight</b><small><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-signal\"/></svg>opened a Dallas hub</small></span><span class=\"pill sky\">Strong fit</span></div>\n              <div class=\"row2\"><span class=\"av2\"><span class=\"mono sm co\">NF</span><i class=\"fc fc-f202\" aria-hidden=\"true\"></i></span><span><b>Northpine Foods</b><small><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-signal\"/></svg>hiring 3 supply planners</small></span><span class=\"pill sky\">Strong fit</span></div>\n              <div class=\"row2\"><span class=\"av2\"><span class=\"mono sm co\">HL</span><i class=\"fc fc-f302\" aria-hidden=\"true\"></i></span><span><b>Harbor Lane</b><small><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-signal\"/></svg>VP Operations visited your pricing page</small></span><span class=\"pill\">Good fit</span></div>\n              <span class=\"fbtn2\" aria-hidden=\"true\"><svg class=\"i\"><use href=\"#i-check\"/></svg>Approve 3 accounts</span>\n            </div></div>\n        </li>\n        <li class=\"step\">\n          <h3><span>3</span>It reaches out and books the meeting.</h3>\n          <p>One-to-one from your own LinkedIn and inbox. Replies sorted, meetings booked, CRM updated.</p>\n          <p class=\"chk\"><span class=\"ok\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-check\"/></svg></span><span>before every send, it checks your CRM, your exclusions and account-safety limits</span></p>\n          <div class=\"app\"><div class=\"app-bar\"><svg class=\"sym\" viewBox=\"5 7 174 102\" aria-hidden=\"true\"><path d=\"M16 18C16 52 36 58 96 58C156 58 160 64 160 98\" stroke=\"#F04B37\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M168 18C168 52 148 58 96 58C44 58 28 64 28 98\" stroke=\"#111317\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg><b>Outreach</b><span class=\"ex\">Example</span></div>\n            <ol class=\"tl2\">\n              <li><span class=\"d\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-connect\"/></svg></span><span>LinkedIn: connection request</span></li>\n              <li class=\"w\"><span class=\"d\"></span><span>2-24 hrs</span></li>\n              <li><span class=\"d\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-dm\"/></svg></span><span>LinkedIn: message</span></li>\n              <li class=\"w\"><span class=\"d\"></span><span>2-24 hrs</span></li>\n              <li><span class=\"d\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-email\"/></svg></span><span>Email</span></li>\n              <li class=\"rs\"><span class=\"d\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-sort\"/></svg></span><span>Reply sorted: \u201cInterested: Tuesday works\u201d</span></li>\n              <li class=\"bk\"><span class=\"d\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-check\"/></svg></span><span class=\"pill lime\">Meeting booked \u00b7 CRM updated</span></li>\n            </ol></div>\n        </li>\n      </ol>\n      <p class=\"fnote\">Example people. Photos are AI-generated.</p>\n      <ul class=\"caps\" id=\"caps\" aria-label=\"What Yoke covers\">\n        <li data-core><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-signal\"/></svg>Signals</li>\n        <li data-core><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-refresh\"/></svg>Fresh data</li>\n        <li><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-target\"/></svg>Fit scoring</li>\n        <li data-core><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-search\"/></svg>Research</li>\n        <li data-core><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-connect\"/></svg>LinkedIn</li>\n        <li data-core><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-email\"/></svg>Email</li>\n        <li><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-voicemail\"/></svg>Voicemail</li>\n        <li><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-sms\"/></svg>SMS</li>\n        <li><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-reply\"/></svg>Reply handling</li>\n        <li><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-swap\"/></svg>CRM sync</li>\n        <li data-core><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-table\"/></svg>Connects to Clay</li>\n        <li><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-spark\"/></svg>Works from Claude or ChatGPT</li>\n      </ul>\n      <button class=\"tgl caps-t\" type=\"button\" aria-expanded=\"false\" aria-controls=\"caps\" data-tgl=\"all\">See all 12<svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-chev\"/></svg></button>\n      <p class=\"under\">Your custom builds stay in Clay. The routine outbound, and its data, move to Yoke.</p>\n    </div>\n  </section>\n\n  <!-- ================= 6. How you pay, compared (shared; H2 and phone layout per page) ================= -->\n  <section class=\"sec s-paper\" id=\"pay\">\n    <div class=\"wrap\">\n      <div class=\"intro\"><h2 class=\"h2\">Outbound running in days, without hiring or building</h2></div>\n      <table class=\"cmp\">\n        <thead><tr><th scope=\"col\"><span class=\"sr\">Option</span></th><th scope=\"col\">How you pay</th><th scope=\"col\">First meetings</th><th scope=\"col\">Your time</th><th scope=\"col\">Upkeep</th></tr></thead>\n        <tbody>\n          <tr class=\"yk\"><th scope=\"row\"><span class=\"ykn\"><svg class=\"sym\" viewBox=\"5 7 174 102\" aria-hidden=\"true\"><path d=\"M16 18C16 52 36 58 96 58C156 58 160 64 160 98\" stroke=\"#F04B37\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M168 18C168 52 148 58 96 58C44 58 28 64 28 98\" stroke=\"#111317\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>Yoke</span></th><td>Per message sent; data and research included</td><td>In days</td><td>Minutes a day</td><td>Handled for you</td></tr>\n          <tr><th scope=\"row\">Clay plus sending tools</th><td>Per lookup and per action, plus each sending tool</td><td>Once you\u2019ve built it</td><td>Hours a week</td><td>You</td></tr>\n          <tr><th scope=\"row\">Hire a GTM Engineer</th><td>A salary (median $127,500)</td><td>Months</td><td>Hiring and onboarding</td><td>Them</td></tr>\n          <tr><th scope=\"row\">Build it yourself with AI tools</th><td>API calls, plus your time</td><td>Weeks</td><td>Hours a week</td><td>You</td></tr>\n        </tbody>\n      </table>\n      <div class=\"cmp-p\">\n        <div class=\"mx\" role=\"table\" aria-label=\"Yoke compared with Clay plus sending tools\">\n          <div class=\"mx-h\" role=\"row\"><b class=\"y\" role=\"columnheader\"><svg class=\"sym\" viewBox=\"5 7 174 102\" aria-hidden=\"true\"><path d=\"M16 18C16 52 36 58 96 58C156 58 160 64 160 98\" stroke=\"#F04B37\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M168 18C168 52 148 58 96 58C44 58 28 64 28 98\" stroke=\"#111317\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>Yoke</b><b role=\"columnheader\">Clay plus sending tools</b></div>\n          <div class=\"mx-r\"><p class=\"k2\">How you pay</p><div role=\"row\"><span class=\"y\" role=\"cell\">Per message sent; data and research included</span><span role=\"cell\">Per lookup and per action, plus each sending tool</span></div></div>\n          <div class=\"mx-r\"><p class=\"k2\">First meetings</p><div role=\"row\"><span class=\"y\" role=\"cell\">In days</span><span role=\"cell\">Once you\u2019ve built it</span></div></div>\n          <div class=\"mx-r\"><p class=\"k2\">Your time</p><div role=\"row\"><span class=\"y\" role=\"cell\">Minutes a day</span><span role=\"cell\">Hours a week</span></div></div>\n          <div class=\"mx-r\"><p class=\"k2\">Upkeep</p><div role=\"row\"><span class=\"y\" role=\"cell\">Handled for you</span><span role=\"cell\">You</span></div></div>\n        </div>\n        <div class=\"mx nk\" role=\"table\" aria-label=\"Hiring compared with building it yourself\">\n          <div class=\"mx-h\" role=\"row\"><b role=\"columnheader\">Hire a GTM Engineer</b><b role=\"columnheader\">Build it yourself with AI tools</b></div>\n          <div class=\"mx-r\"><p class=\"k2\">How you pay</p><div role=\"row\"><span role=\"cell\">A salary (median $127,500)</span><span role=\"cell\">API calls, plus your time</span></div></div>\n          <div class=\"mx-r\"><p class=\"k2\">First meetings</p><div role=\"row\"><span role=\"cell\">Months</span><span role=\"cell\">Weeks</span></div></div>\n          <div class=\"mx-r\"><p class=\"k2\">Your time</p><div role=\"row\"><span role=\"cell\">Hiring and onboarding</span><span role=\"cell\">Hours a week</span></div></div>\n          <div class=\"mx-r\"><p class=\"k2\">Upkeep</p><div role=\"row\"><span role=\"cell\">Them</span><span role=\"cell\">You</span></div></div>\n        </div>\n      </div>\n    </div>\n  </section>\n\n  <!-- ================= 7. The offer and the form (shared; marked lines per page) ================= -->\n  <section class=\"sec s-canvas\" id=\"start\">\n    <div class=\"wrap offer2\">\n      <div class=\"ol\">\n        <div class=\"intro\" style=\"margin-bottom:0\"><p class=\"eyb\">Early access</p><h2 class=\"h2\">See who Yoke would contact for you, and what it would say</h2>\n          <p class=\"lead\">Tell us who you are and where to look. That\u2019s all. In days, not weeks, you get:</p></div>\n        <ul class=\"cl\">\n          <li><span class=\"ok\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-check\"/></svg></span><span>the accounts worth contacting now, and why each one</span></li>\n          <li><span class=\"ok\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-check\"/></svg></span><span>the first message for each, in your voice</span></li>\n          <li><span class=\"ok\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-check\"/></svg></span><span>what it took, which is nothing to build</span></li>\n        </ul>\n        <div>\n          <figure class=\"app pv2\" aria-label=\"Example of what you get\">\n            <div class=\"app-bar\"><svg class=\"sym\" viewBox=\"5 7 174 102\" aria-hidden=\"true\"><path d=\"M16 18C16 52 36 58 96 58C156 58 160 64 160 98\" stroke=\"#F04B37\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M168 18C168 52 148 58 96 58C44 58 28 64 28 98\" stroke=\"#111317\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg><span class=\"ex\">Example</span></div>\n            <div class=\"bd\">\n              <div class=\"acc3\"><span class=\"av2\"><span class=\"mono sm co\">HL</span><i class=\"fc fc-f302\" aria-hidden=\"true\"></i></span><div class=\"acc2\"><b>Harbor Lane</b><small>Dana Whitfield, VP Operations</small></div></div>\n              <p class=\"why\"><span class=\"ic\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-signal\"/></svg></span><span><b>Why now:</b> visited your pricing page this week, and Harbor Lane just opened a Savannah site</span></p>\n              <p class=\"fl2\"><b>First line:</b> \u201cDana, congrats on the Savannah site.\u201d</p>\n            </div>\n          </figure>\n          <p class=\"fnote\">Example people. Photos are AI-generated.</p>\n        </div>\n      </div>\n      <div class=\"fcol\">\n        <div class=\"logos\"><p class=\"k2\">Yoke customers</p>\n          <ul>\n            <li><img src=\"https://cdn.prod.website-files.com/6580ba9f4259d2de5a4189c2/6ae4efbdf0fb1f67bd43848e_yk-t2-11.webp\" alt=\"Exponential Results\" height=\"30\"></li>\n            <li><img src=\"https://cdn.prod.website-files.com/6580ba9f4259d2de5a4189c2/6ae4efbda7dc56603d0d9ee5_yk-t2-10.webp\" alt=\"OneScreen.ai\" height=\"30\"></li>\n            <li><img src=\"https://cdn.prod.website-files.com/6580ba9f4259d2de5a4189c2/6ae4efbd27ab59289d22ff0e_yk-t2-12.webp\" alt=\"Catalyst Financial Group\" height=\"30\"></li>\n            <li><img src=\"https://cdn.prod.website-files.com/6580ba9f4259d2de5a4189c2/6ae4efbdd82a98cc50e8f16d_yk-t2-13.webp\" alt=\"AdvicePeriod\" height=\"30\"></li>\n            <li><img src=\"https://cdn.prod.website-files.com/6580ba9f4259d2de5a4189c2/6ae4efbdf0fb1f67bd4384ec_yk-t2-14.webp\" alt=\"Wellington-Altus\" height=\"30\"></li>\n            <li><img src=\"https://cdn.prod.website-files.com/6580ba9f4259d2de5a4189c2/6ae4efbee646e5ef02472510_yk-t2-15.webp\" alt=\"Humi\" height=\"30\"></li>\n          </ul></div>\n      <div class=\"fbox\" id=\"fbox\">\n        <form class=\"gf\" id=\"gf\" novalidate>\n          <div class=\"fld\"><label for=\"f-email\">Business email</label><input id=\"f-email\" name=\"email\" type=\"email\" autocomplete=\"email\" inputmode=\"email\" required aria-describedby=\"e-email\"><p class=\"err\" id=\"e-email\" hidden>Enter your business email.</p></div>\n          <div class=\"fld\"><label for=\"f-li\">LinkedIn profile<em>Optional</em></label><input id=\"f-li\" name=\"linkedin\" type=\"text\" inputmode=\"url\" autocomplete=\"url\" autocapitalize=\"off\" placeholder=\"linkedin.com/in/you\"></div>\n          <div class=\"fld\"><label for=\"f-web\">Website<em>Optional</em></label><input id=\"f-web\" name=\"website\" type=\"text\" inputmode=\"url\" autocapitalize=\"off\" placeholder=\"yourcompany.com\"></div>\n          <div class=\"fld\"><label for=\"f-role\">Your role</label>\n            <select id=\"f-role\" name=\"role\" required aria-describedby=\"e-role\">\n              <option value=\"\">Choose one</option>\n              <option>I build outbound for my company (GTM Engineer, RevOps)</option>\n              <option>I build outbound for clients (agency)</option>\n              <option>I run my own outbound (founder, small team)</option>\n              <option>I lead a sales team</option>\n              <option>I\u2019m a sales rep</option>\n              <option value=\"other\">Other</option>\n            </select><p class=\"err\" id=\"e-role\" hidden>Choose your role.</p></div>\n          <div class=\"fld\" id=\"f-other-w\" hidden><label for=\"f-other\">What\u2019s your role?</label><input id=\"f-other\" name=\"role_other\" type=\"text\" aria-describedby=\"e-other\"><p class=\"err\" id=\"e-other\" hidden>Tell us your role.</p></div>\n          <button class=\"btn\" type=\"submit\">Get started</button>\n          <p class=\"safe\">You\u2019ll see exactly what Yoke would do. Nothing is sent.</p>\n        </form>\n        <div class=\"conf\" id=\"conf\" hidden tabindex=\"-1\" role=\"status\"><span class=\"ok\"><svg class=\"i\" aria-hidden=\"true\"><use href=\"#i-check\"/></svg></span><p>You\u2019re in for early access. Your accounts and first messages arrive by email in less than a week. We\u2019ll tell you when your account opens.</p></div>\n      </div>\n      </div>\n    </div>\n  </section>\n</main>\n\n<footer class=\"foot\"><div class=\"wrap\"><svg class=\"logo\" role=\"img\" aria-label=\"Yoke\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"5.00 7.00 401.59 102.00\"><path d=\"M16.000 18.000 C16.000 52.000 36.000 58.000 96.000 58.000 C156.000 58.000 160.000 64.000 160.000 98.000\" stroke=\"#F04B37\" fill=\"none\" stroke-width=\"22.0\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M168.000 18.000 C168.000 52.000 148.000 58.000 96.000 58.000 C44.000 58.000 28.000 64.000 28.000 98.000\" stroke=\"#111317\" fill=\"none\" stroke-width=\"22.0\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path transform=\"translate(190.4239 103.9000) scale(0.106250)\" d=\"M279 0V-291L11 -720H196L408 -339H321L532 -720H701L433 -291V0Z\" fill=\"#111317\"/><path transform=\"translate(240.6828 103.9000) scale(0.106250)\" d=\"M302 10Q218 10 154.5 -23.5Q91 -57 55.5 -117.5Q20 -178 20 -257Q20 -336 55.5 -395.0Q91 -454 154.5 -487.0Q218 -520 302 -520Q387 -520 450.5 -487.0Q514 -454 549.0 -395.0Q584 -336 584 -257Q584 -178 548.5 -117.5Q513 -57 449.5 -23.5Q386 10 302 10ZM302 -108Q337 -108 365.5 -126.0Q394 -144 411.0 -177.5Q428 -211 428 -258Q428 -327 391.5 -364.5Q355 -402 302 -402Q249 -402 212.5 -364.0Q176 -326 176 -258Q176 -211 193.0 -177.5Q210 -144 238.5 -126.0Q267 -108 302 -108Z\" fill=\"#111317\"/><path transform=\"translate(299.7606 103.9000) scale(0.106250)\" d=\"M60 0V-720H210V0ZM387 0 175 -265 382 -510H555L312 -242L319 -289L565 0Z\" fill=\"#111317\"/><path transform=\"translate(347.7343 103.9000) scale(0.106250)\" d=\"M300 10Q215 10 152.0 -23.5Q89 -57 54.5 -117.0Q20 -177 20 -255Q20 -334 54.5 -393.5Q89 -453 151.0 -486.5Q213 -520 295 -520Q374 -520 432.0 -488.0Q490 -456 522.0 -399.0Q554 -342 554 -265Q554 -249 553.0 -235.5Q552 -222 550 -210H108V-309H429L403 -291Q403 -353 373.5 -382.5Q344 -412 293 -412Q234 -412 201.5 -372.0Q169 -332 169 -252Q169 -174 201.5 -136.0Q234 -98 299 -98Q335 -98 361.0 -110.0Q387 -122 400 -149H541Q516 -75 455.5 -32.5Q395 10 300 10Z\" fill=\"#111317\"/></svg><span>\u00a9 2026 Yoke</span></div></footer>\n<div class=\"sbar\" id=\"sbar\" aria-hidden=\"true\"><a class=\"btn\" href=\"#start\" tabindex=\"-1\">Get started</a></div></div>","js":"\n(() => {\n  const RM = matchMedia('(prefers-reduced-motion: reduce)').matches;\n  const icon = (id, cls = 'i') => `<svg class=\"${cls}\" aria-hidden=\"true\"><use href=\"#i-${id}\"/></svg>`;\n  const esc = s => String(s).replace(/[&<>\"]/g, c => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' }[c]));\n  const $ = (s, r = document) => r.querySelector(s), $$ = (s, r = document) => [...r.querySelectorAll(s)];\n  const SYM = `<svg class=\"sym\" viewBox=\"5 7 174 102\" aria-hidden=\"true\"><path d=\"M16 18C16 52 36 58 96 58C156 58 160 64 160 98\" stroke=\"#F04B37\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M168 18C168 52 148 58 96 58C44 58 28 64 28 98\" stroke=\"#111317\" fill=\"none\" stroke-width=\"22\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>`;\n  const NS = 'http://www.w3.org/2000/svg';\n  /* plays while on screen, from the start each time it comes into view; holds its end state otherwise */\n  function onView(el, fn, th = .3) { if (!('IntersectionObserver' in window)) return fn(true); new IntersectionObserver(es => fn(es[0].isIntersecting), { threshold: th }).observe(el); }\n  function clock() { let ts = []; return { at(fn, s) { ts.push(setTimeout(fn, s * 1000)); }, clear() { ts.forEach(clearTimeout); ts = []; } }; }\n  const setBtn = (b, on) => { if (!b) return; b.querySelector('use').setAttribute('href', on ? '#i-pause' : '#i-play'); b.querySelector('span').textContent = on ? 'Pause' : 'Play'; b.setAttribute('aria-label', (on ? 'Pause' : 'Play') + ' the animation'); };\n  function scene(el, btn, start, stop, th = .3) {\n    let on = false, user = false;\n    const go = () => { if (on || RM) return; on = true; setBtn(btn, true); start(); };\n    const halt = () => { on = false; setBtn(btn, false); stop(); };\n    if (RM) { if (btn) btn.hidden = true; return { get on() { return false; } }; }\n    onView(el, v => { if (user) return; v ? go() : on && halt(); }, th);\n    btn && btn.addEventListener('click', () => { user = true; on ? halt() : go(); });\n    return { get on() { return on; } };\n  }\n\n  /* ================= staged reveals: plays once on view; the first item is there at rest ================= */\n  function stage(root, groups, gap) {\n    if (!root || RM || !('IntersectionObserver' in window)) return;\n    const rest = groups.slice(1).map(g => [].concat(g));\n    rest.flat().forEach(e => e.classList.add('pend'));\n    const io = new IntersectionObserver(es => {\n      if (!es.some(e => e.isIntersecting)) return;\n      io.disconnect();\n      rest.forEach((g, i) => setTimeout(() => g.forEach(e => e.classList.remove('pend')), (i + 1) * gap * 1000));\n    }, { rootMargin: '0px 0px -22% 0px', threshold: 0 });\n    io.observe(root);\n  }\n  /* ================= toggles: closed by default ================= */\n  $$('[data-tgl]').forEach(b => b.addEventListener('click', () => {\n    const t = $('#' + b.getAttribute('aria-controls')), on = b.getAttribute('aria-expanded') !== 'true';\n    b.setAttribute('aria-expanded', String(on));\n    if (b.dataset.tgl === 'all') t.classList.toggle('all', on); else t.hidden = !on;\n  }));\n\n  /* ================= sticky \"Get started\" on phones: after the hero, never over the form ================= */\n  {\n  const bar = $('#sbar'), link = bar.querySelector('a');\n  let heroIn = true, formIn = false;\n  const upd = () => { const on = !heroIn && !formIn; bar.classList.toggle('on', on); bar.setAttribute('aria-hidden', String(!on)); link.tabIndex = on ? 0 : -1; };\n  if ('IntersectionObserver' in window) {\n    new IntersectionObserver(es => { heroIn = es[0].isIntersecting; upd(); }).observe($('#top'));\n    new IntersectionObserver(es => { formIn = es[0].isIntersecting; upd(); }).observe($('#fbox'));\n  }\n  }\n\n  /* ================= the form: one step, checked inline, confirmation in place ================= */\n  {\n  const gf = $('#gf'), role = $('#f-role'), otherW = $('#f-other-w'), other = $('#f-other'), email = $('#f-email');\n  const EMAIL = /^[^\\s@]+@[^\\s@.]+(\\.[^\\s@.]+)+$/;\n  let tried = false;\n  const mark = (input, err, bad) => { input.setAttribute('aria-invalid', String(bad)); $('#' + err).hidden = !bad; return !bad; };\n  function check() {\n    const a = mark(email, 'e-email', !EMAIL.test(email.value.trim()));\n    const b = mark(role, 'e-role', !role.value);\n    const c = role.value !== 'other' || mark(other, 'e-other', !other.value.trim());\n    return [a, b, c];\n  }\n  role.addEventListener('change', () => {\n    const o = role.value === 'other'; otherW.hidden = !o; other.required = o;\n    if (o) other.focus(); else { other.removeAttribute('aria-invalid'); $('#e-other').hidden = true; }\n    if (tried) check();\n  });\n  gf.addEventListener('input', () => { if (tried) check(); });\n  gf.addEventListener('submit', e => {\n    e.preventDefault(); tried = true;\n    const ok = check(), first = [email, role, other][ok.indexOf(false)];\n    if (first) return first.focus();\n    gf.hidden = true; const c = $('#conf'); c.hidden = false; c.focus({ preventScroll: true });\n  });\n  }\n\n  /* ===== showstopper, desktop: the approved prototype (v10), ported by port.py ===== */\n(() => {\n  const CAT = {\n    signal:{label:'Buying signal',short:'Signal',color:'var(--blue)',hex:'#4D7BFF'},\n    person:{label:'Personal',short:'',color:'var(--sky)',hex:'#8FCBFF'},\n    common:{label:'Common ground',short:'',color:'var(--sky)',hex:'#8FCBFF'},\n    offer:{label:'Your offer',short:'Offer',color:'var(--coral)',hex:'#F04B37'},\n    goal:{label:'Goal',short:'Goal',color:'var(--lime)',hex:'#CDF05B'}\n  };\n  const LEADS = [\n    { first:'Ravi', name:'Ravi Shah', role:'COO', co:'Calder Freight', av:'#8FCBFF', fit:'3PL \u00b7 200+ trucks \u00b7 Texas', tone:'plain, direct', tsteps:['upbeat','peer-to-peer','direct, useful'],\n      cats:[\n        {k:'signal', items:['Opened a Dallas hub','Hiring 2 dispatchers','New VP Sales'], pick:0},\n        {k:'person', items:['Post on on-time rates','Joined in 2021'], pick:0},\n        {k:'common', items:['You ran a 40-truck fleet','Both from Houston'], pick:0},\n        {k:'offer',  items:['Cut detention costs for 3PLs','Case study: regional 3PL'], pick:0}\n      ],\n      lines:['Ravi, congrats on the Dallas hub.','Your post on on-time rates rang true from my years running a 40-truck fleet.','We cut detention costs for 3PLs your size.','Worth 20 minutes?'],\n      reply:'Good timing, we\u2019re feeling it in Dallas. Tuesday?', outcome:'Interested \u00b7 Tuesday works', time:'9:14' },\n    { first:'Joan', name:'Joan Mercer', role:'VP Operations', co:'Northpine Foods', av:'#CDF05B', fit:'Food distributor \u00b7 400 staff', tone:'warm', tsteps:['timely','personal','warm, helpful'],\n      cats:[\n        {k:'signal', items:['Hiring 3 supply planners','New cold-storage site'], pick:0},\n        {k:'person', items:['Cold Chain Forum panelist','Ex-Sysco'], pick:0},\n        {k:'common', items:['You spoke on the same panel','Same alma mater'], pick:0},\n        {k:'offer',  items:['Route planning before new hires land'], pick:0}\n      ],\n      lines:['Joan, saw Northpine is hiring three supply planners.','We shared the Cold Chain Forum stage last spring.','I help food distributors plan routes before new hires land.','Open to a quick call?'],\n      reply:'I remember that panel! Thursday works.', outcome:'Meeting booked \u00b7 Thu', time:'10:31' },\n    { first:'Dana', name:'Dana Whitfield', role:'VP Operations', co:'Harbor Lane', av:'#F2F3F5', fit:'Distributor \u00b7 3 sites \u00b7 Southeast', tone:'casual', tsteps:['upbeat','shop talk','easygoing'],\n      cats:[\n        {k:'signal', items:['Visited your pricing page','Opened a Savannah site'], pick:1},\n        {k:'person', items:['Post on dock delays','Promoted in June'], pick:0},\n        {k:'common', items:['Your cold-chain years'], pick:0},\n        {k:'offer',  items:['Cut dock wait times','Savannah customers'], pick:0}\n      ],\n      lines:['Dana, congrats on the Savannah site.','Your post on dock delays hit home from my cold-chain years.','We cut dock wait times for distributors your size.','Worth a look?'],\n      reply:'Not my area, but Lisa Park runs routing. Try her.', outcome:'Referral \u00b7 Lisa Park added', time:'8:52' }\n  ];\n  const LINE_AFTER = {signal:0, common:1, offer:2};\n  const LINE_SRC = [['signal'],['person'],['offer'],['goal']];\n  const EXTRA = [['MH','Meridian Haulage'],['PP','Pacifica Produce']];\n  const RM = matchMedia('(prefers-reduced-motion: reduce)').matches;\n  const host = document.getElementById('ssd'), root = host.attachShadow({mode:'open'});\n  root.innerHTML = document.getElementById('ssd-tpl').innerHTML;\n  const $ = id => root.getElementById(id);\n  const stage=$('stage'), svg=$('wires'), queue=$('queue'), cats=$('cats'), lines=$('lines');\n  let cur=0, timers=[], paused=false;\n  const initials = n => n.split(' ').map(s=>s[0]).join('');\n  const label = (k,l) => CAT[k].label;\n  const short = (k,l) => (k==='person'||k==='common') ? 'Personal' : CAT[k].short;\n\n  let off=true; /* page port: also hold while scrolled out of view */\n  function gate(fn){return ()=>{ if(paused||off){ timers.push(setTimeout(gate(fn),150)); return;} fn(); };}\n  const T=(ms,fn)=>{timers.push(setTimeout(gate(fn),ms));};\n  function clear(){timers.forEach(clearTimeout);timers=[];}\n\n  queue.innerHTML = LEADS.map((l,i)=>`<button class=\"q\" type=\"button\" data-i=\"${i}\"><span class=\"row\"><span class=\"av\" style=\"background:${l.av}\">${initials(l.name)}</span><span class=\"t\"><span class=\"nm\"><b>${l.co}</b><span class=\"st\">Queued</span></span><span class=\"who\">${l.name}, ${l.role}</span></span></span><span class=\"xp\"><span class=\"xpi\"><span class=\"xpb\"><span class=\"v\">${l.fit}</span><span class=\"ok\">\u2713 Matches your ICP</span></span></span></span></button>`).join('')\n    + EXTRA.map(e=>`<div class=\"q\" aria-hidden=\"true\" style=\"cursor:default\"><span class=\"row\"><span class=\"av\" style=\"background:#5E6676;color:#F2F3F5\">${e[0]}</span><span class=\"t\"><span class=\"nm\"><b>${e[1]}</b><span class=\"st\">Queued</span></span></span></span></div>`).join('');\n  queue.addEventListener('click',e=>{const b=e.target.closest('button.q'); if(!b) return; paused=false; $('pause').textContent='Pause'; start(+b.dataset.i);});\n\n  // tone reel: scrolls through options and lands, a little closer each time\n  const POOL=['formal','friendly','bold','curious','concise','playful','upbeat','direct','warm','casual','neutral','candid'];\n  let toneNow='neutral';\n  function reelSet(word,final){const rl=$('rl');rl.style.transition='none';rl.style.transform='none';rl.innerHTML=`<span>${word}</span>`;toneNow=word;$('reel').classList.toggle('set',!!final);}\n  function spin(word,final){\n    if(RM){reelSet(word,final);return;}\n    const n=final?9:5, list=[toneNow];\n    while(list.length<n){const w=POOL[Math.floor(Math.random()*POOL.length)]; if(w!==list[list.length-1]&&w!==word) list.push(w);}\n    list.push(word);\n    const rl=$('rl'); $('reel').classList.remove('set');\n    rl.style.transition='none'; rl.style.transform='none'; rl.innerHTML=list.map(w=>`<span>${w}</span>`).join(''); rl.getBoundingClientRect();\n    const D=final?1300:750;\n    rl.style.transition=`transform ${D}ms cubic-bezier(.12,.75,.2,1)`; rl.style.transform=`translateY(${-(list.length-1)*22}px)`;\n    toneNow=word; setTimeout(()=>{ if(toneNow===word){ reelSet(word,final); } }, D+40);\n  }\n\n  // ---------- wires: each picked finding runs straight to the line it shaped ----------\n  let wires=[]; const NS='http://www.w3.org/2000/svg', GREY='#566072';\n  const SR=()=>stage.getBoundingClientRect();\n  function geom(w){\n    const s=SR(), a=w.a.getBoundingClientRect(), b=w.b.getBoundingClientRect(); let x1,y1,x2,y2;\n    if(w.kind==='feed'){const r=w.a.querySelector('.row').getBoundingClientRect(); x1=a.right-s.left; y1=r.top+r.height/2-s.top; x2=b.left-s.left; y2=b.top+b.height/2-s.top;}\n    else {x1=a.right-s.left; y1=a.top+a.height/2-s.top; x2=b.left-s.left-8; y2=b.top+12-s.top; if(w.dot){w.dot.setAttribute('cx',x2);w.dot.setAttribute('cy',y2);}}\n    const dx=(x2-x1)*.5; w.p.setAttribute('d',`M${x1} ${y1} C${x1+dx} ${y1}, ${x2-dx} ${y2}, ${x2} ${y2}`);\n  }\n  function addWire(kind,a,b,color){\n    const w={kind,a,b}; w.p=document.createElementNS(NS,'path'); w.p.setAttribute('class','w-'+kind); w.p.style.stroke=color; svg.appendChild(w.p);\n    if(kind==='out'){w.dot=document.createElementNS(NS,'circle');w.dot.setAttribute('r','2.6');w.dot.setAttribute('fill',color);w.dot.style.opacity=RM?1:0;w.dot.style.transition='opacity .2s';svg.appendChild(w.dot);}\n    wires.push(w); const s=SR(); svg.setAttribute('viewBox',`0 0 ${s.width} ${s.height}`); geom(w);\n    if(!RM && getComputedStyle(svg).display!=='none'){const L=w.p.getTotalLength(); w.p.style.strokeDasharray=L; w.p.style.strokeDashoffset=L; w.p.getBoundingClientRect();\n      w.p.style.transition='stroke-dashoffset .5s ease, stroke .35s, opacity .4s'; w.p.style.strokeDashoffset=0;\n      setTimeout(()=>{w.p.style.strokeDasharray='';w.p.style.strokeDashoffset='';w.p.style.transition='';if(w.dot)w.dot.style.opacity=1;},520);}\n    return w;\n  }\n  function dropWire(w){w.p.remove();w.dot&&w.dot.remove();wires=wires.filter(x=>x!==w);}\n  function clearWires(){wires=[];svg.innerHTML='';$('chips').innerHTML='';}\n  function render(){ if(getComputedStyle(svg).display==='none') return; const s=SR(); svg.setAttribute('viewBox',`0 0 ${s.width} ${s.height}`); wires.forEach(geom); }\n  addEventListener('resize',()=>render());\n  function follow(ms){const end=performance.now()+ms;const f=()=>{render();if(performance.now()<end)requestAnimationFrame(f);};requestAnimationFrame(f);}\n\n  // ---------- typing with a colored leading edge ----------\n  function typeInto(el,text,ms,color,done){\n    if(RM){el.textContent=text; done&&done(); return;}\n    let caret=el.querySelector('.caret');\n    if(!caret){caret=document.createElement('span');caret.className='caret';el.appendChild(caret);}\n    caret.style.background=color;\n    let i=0;const step=Math.max(16,ms/text.length);\n    const tick=()=>{ const s=document.createElement('span');s.className='ch';s.textContent=text[i];s.style.color=color;el.insertBefore(s,caret);\n      setTimeout(()=>{s.style.color='';},70); i++;\n      if(i<text.length) T(step,tick); else T(220,()=>{done&&done();}); };\n    T(step,tick);\n  }\n  function backspace(el,n,done){\n    const tick=()=>{const chs=el.querySelectorAll('.ch'); if(!chs.length||n<=0){done();return;} chs[chs.length-1].remove(); n--; T(28,tick);};\n    T(380,tick);\n  }\n\n  function setup(l){\n    clearWires(); stage.classList.remove('fadeout');\n    queue.querySelectorAll('button.q').forEach((q,i)=>{q.classList.toggle('on',i===cur);q.classList.toggle('done',i<cur);q.querySelector('.st').textContent=i===cur?'Working':i<cur?'Done':'Queued';});\n    queue.querySelectorAll('button.q').forEach(q=>q.classList.remove('open','pass'));\n    cats.innerHTML=l.cats.map((c,ci)=>`<div class=\"cat${c.k==='common'?' sub':''}\" data-c=\"${ci}\"><div class=\"cat-h\"><span class=\"dot\" style=\"background:${CAT[c.k].color}\"></span>${label(c.k,l)}<span class=\"scan\">scanning</span></div><div class=\"items\">${c.items.map((t,ii)=>`<span class=\"it\" data-i=\"${ii}\">${t}</span>`).join('')}</div></div>`).join('');\n    reelSet('neutral',false); lineEls=[];\n    lines.innerHTML=''; $('meta').className='meta'; $('time').textContent=l.time;\n    $('reply').className='reply'; $('reply').innerHTML=''; $('outcomeWrap').innerHTML='';\n    $('wst').textContent=''; $('wst').className='wst';\n  }\n\n  function pick(it,k){it.classList.add('pick');it.style.borderColor=CAT[k].hex;it.style.background=CAT[k].hex+'29';}\n  let lineEls=[];\n  function addLine(){const d=document.createElement('div');d.className='ln';const txt=document.createElement('span');d.appendChild(txt);lines.appendChild(d);return {d,txt};}\n  function lineAt(li){ while(lineEls.length<=li) lineEls.push(addLine()); return lineEls[li]; }\n\n  // the source chip sits raised over the start of the line for 1 s\n  function writeLine(l,li,t){\n    const text=l.lines[li], ms=Math.min(1000,text.length*17), k=LINE_SRC[li][0], color=li===3?'#F2F3F5':CAT[k].hex;\n    T(t,()=>{\n      const {d,txt}=lineAt(li); let tag=null;\n      if(li===0){ $('wst').textContent='Writing your message'; $('wst').className='wst on'; }\n      if(li<3){ const s=SR(), cr=$('comp').getBoundingClientRect(), lr=d.getBoundingClientRect();\n        tag=document.createElement('span');tag.className='tag-src';tag.textContent=short(k,l);tag.style.background=CAT[k].color;\n        tag.style.left=(cr.left-s.left-6)+'px'; tag.style.top=(lr.top+12-s.top)+'px'; $('chips').appendChild(tag);\n        requestAnimationFrame(()=>requestAnimationFrame(()=>tag.classList.add('on'))); }\n      const finish=()=>{const c=txt.querySelector('.caret'); c&&c.remove(); if(tag){T(300,()=>{tag.classList.remove('on');T(350,()=>tag.remove());});}};\n      typeInto(txt,text,ms,color,finish);\n    });\n    return ms+300;\n  }\n\n  function run(l){\n    let t=150; const q=queue.querySelector(`button.q[data-i=\"${cur}\"]`);\n    T(t,()=>{q.classList.add('open');}); t+=500;\n    T(t,()=>{q.classList.add('pass');}); t+=420;\n    const idx=k=>l.cats.findIndex(c=>c.k===k);\n    const GROUPS=[{cs:[idx('signal')],li:0},{cs:[idx('person'),idx('common')],li:1},{cs:[idx('offer')],li:2}];\n    GROUPS.forEach((g,gi)=>{\n      let decide=t;\n      g.cs.forEach((ci,k)=>{ // common ground starts while personal is still coming in\n        const c=l.cats[ci], el=()=>cats.querySelector(`.cat[data-c=\"${ci}\"]`); let tt=t+k*260;\n        T(tt,()=>{el().classList.add('show');el().querySelector('.scan').classList.add('busy');});\n        tt+=300; c.items.forEach((_,ii)=>T(tt+ii*120,()=>{const it=el().querySelector(`.it[data-i=\"${ii}\"]`); it.classList.add('show'); it._feed=addWire('feed',q,it,GREY);}));\n        decide=Math.max(decide,tt+c.items.length*120+160);\n      });\n      T(decide,()=>g.cs.forEach(ci=>{const c=l.cats[ci], el=cats.querySelector(`.cat[data-c=\"${ci}\"]`), sc=el.querySelector('.scan');\n        sc.classList.remove('busy'); sc.textContent=`${c.items.length} found \u00b7 1 used`;\n        el.querySelectorAll('.it').forEach((it,ii)=>{if(ii!==c.pick){it.classList.add('dim'); it._feed&&(it._feed.p.style.opacity=.3);}});}));\n      const wt=decide+180;\n      T(wt,()=>{g.cs.forEach(ci=>{const c=l.cats[ci], it=cats.querySelector(`.cat[data-c=\"${ci}\"] .it[data-i=\"${c.pick}\"]`);\n        pick(it,c.k); if(it._feed){it._feed.p.style.stroke=CAT[c.k].hex; it._feed.p.style.strokeWidth=1.6;} addWire('out',it,lineAt(g.li).d,CAT[c.k].hex);}); spin(l.tsteps[gi],false);});\n      T(wt+800,()=>{g.cs.forEach(ci=>cats.querySelectorAll(`.cat[data-c=\"${ci}\"] .it.dim`).forEach(it=>{it.classList.add('gone'); if(it._feed){it._feed.p.style.opacity=0; const w=it._feed; T(500,()=>dropWire(w));}})); follow(650);});\n      t=wt+560;\n      t+=writeLine(l,g.li,t);\n    });\n    T(t,()=>{spin(l.tone,true);}); t+=900;\n    t+=writeLine(l,3,t);\n    T(t,()=>{$('meta').classList.add('on'); $('wst').textContent='Message sent'; $('wst').className='wst on done';}); t+=450;\n    T(t,()=>{showReply(l,false);}); t+=2800;\n    T(t,()=>{q.classList.add('done');q.querySelector('.st').textContent='Done';});\n    t+=800;\n    T(t,()=>{stage.classList.add('fadeout');clearWires();}); t+=500;\n    T(t,()=>{start((cur+1)%LEADS.length);});\n  }\n\n  function showReply(l,instant){\n    const r=$('reply'), av=`<span class=\"av\" style=\"background:${l.av};width:30px;height:30px;font-size:11px\">${initials(l.name)}</span>`;\n    r.innerHTML=av+`<span class=\"typing\"><i></i><i></i><i></i></span>`; r.classList.add('on');\n    const fin=()=>{r.innerHTML=av+`<span class=\"bub\">${l.reply}</span>`;\n      $('outcomeWrap').innerHTML=`<span class=\"outcome\">\u2713 ${l.outcome}</span>`; const o=$('outcomeWrap').firstChild;\n      if(instant) o.classList.add('on'); else T(450,()=>o.classList.add('on'));};\n    if(instant) fin(); else T(900,fin);\n  }\n\n  function finalState(l){\n    queue.querySelector(`button.q[data-i=\"${cur}\"]`).classList.add('open','pass');\n    cats.querySelectorAll('.cat').forEach((c,ci)=>{c.classList.add('show');c.querySelector('.scan').textContent=`${l.cats[ci].items.length} found \u00b7 1 used`;c.querySelectorAll('.it').forEach((it,ii)=>{it.classList.add('show');if(ii===l.cats[ci].pick)pick(it,l.cats[ci].k);else it.classList.add('dim','gone');});});\n    reelSet(l.tone,true);\n    l.lines.forEach((t,li)=>{lineAt(li).txt.textContent=t;});\n    $('meta').classList.add('on'); showReply(l,true);\n    $('wst').textContent='Message sent'; $('wst').className='wst on done';\n    requestAnimationFrame(()=>{const q=queue.querySelector(`button.q[data-i=\"${cur}\"]`); l.cats.forEach((c,ci)=>{const it=cats.querySelector(`.cat[data-c=\"${ci}\"] .it.pick`); addWire('feed',q,it,CAT[c.k].hex).p.style.strokeWidth=1.6; addWire('out',it,lineAt(c.k==='signal'?0:c.k==='offer'?2:1).d,CAT[c.k].hex);});});\n  }\n\n  function fixHeight(){ /* page port */\n    const g=stage.querySelector('.grid'); if(!g.offsetWidth) return; const keep=cur; stage.classList.add('measuring'); g.style.minHeight=''; let max=0;\n    LEADS.forEach((l,i)=>{ cur=i; setup(l); const q=queue.querySelector(`button.q[data-i=\"${i}\"]`); q.classList.add('open','pass');\n      l.lines.forEach((t,li)=>{lineAt(li).txt.textContent=t;}); $('meta').classList.add('on');\n      $('reply').innerHTML=`<span class=\"av\" style=\"background:${l.av};width:30px;height:30px;font-size:11px\">${initials(l.name)}</span><span class=\"bub\">${l.reply}</span>`; $('reply').classList.add('on');\n      $('outcomeWrap').innerHTML=`<span class=\"outcome on\">\u2713 ${l.outcome}</span>`; max=Math.max(max,g.offsetHeight); });\n    g.style.minHeight=Math.ceil(max)+'px'; cur=keep; setup(LEADS[cur]); stage.classList.remove('measuring');\n  }\n  let fhW=-1; const refit=()=>{ const w=stage.offsetWidth; if(!w||w===fhW) return; fhW=w; const running=timers.length>0; fixHeight(); if(running) start(cur); else if(!RM) queue.querySelector(`button.q[data-i=\"${cur}\"]`).classList.add('open'); else start(cur); };\n  (document.fonts&&document.fonts.ready?document.fonts.ready:Promise.resolve()).then(refit); addEventListener('resize',()=>{ clearTimeout(refit.t); refit.t=setTimeout(refit,200); });\n  function start(i){ clear(); cur=i; const l=LEADS[i]; setup(l); if(RM){finalState(l);return;} run(l); }\n\n  $('pause').addEventListener('click',()=>{paused=!paused;$('pause').textContent=paused?'Play':'Pause';});\n  $('replay').addEventListener('click',()=>{paused=false;$('pause').textContent='Pause';start(cur);});\n\n  if('IntersectionObserver' in window && !RM){\n    let started=false; const io=new IntersectionObserver(es=>{const e=es[0], was=off; off=!e.isIntersecting; if(e.intersectionRatio>=.3&&!started){started=true;start(0);} else if(started&&was&&!off) start(cur); /* back in view: replay this account */},{threshold:[0,.3]}); io.observe(stage);\n    setup(LEADS[0]); queue.querySelector('button.q[data-i=\"0\"]').classList.add('open');\n  } else { off=false; start(0); }\n})();\n\n  /* ===== showstopper, phone: the approved prototype (v4), ported by port.py ===== */\n(() => {\n  const COL={signal:'#4D7BFF',person:'#8FCBFF',common:'#8FCBFF',offer:'#F04B37'};\n  const ORDER=['signal','person','common','offer'];\n  const LINE_OF={signal:0,person:1,common:1,offer:2};\n  // items: cloud order; k marks the four Yoke uses\n  const LEADS=[\n    {co:'Calder Freight',who:'Ravi Shah, COO',av:'#8FCBFF',ini:'RS',tone:'plain, direct',tsteps:['upbeat','peer-to-peer','direct, useful'],\n     items:[['Hiring 2 dispatchers'],['Opened a Dallas hub','signal'],['Joined in 2021'],['Post on on-time rates','person'],['Ran a 40-truck fleet','common'],['New VP Sales'],['Both from Houston'],['Cuts detention costs','offer'],['Case study: regional 3PL']],\n     lines:['Ravi, congrats on the Dallas hub.','Your post on on-time rates rang true from my years running a 40-truck fleet.','We cut detention costs for 3PLs your size.','Worth 20 minutes?'],\n     reply:'Good timing, we\u2019re feeling it in Dallas. Tuesday?',out:'\u2713 Interested \u00b7 Tuesday'},\n    {co:'Northpine Foods',who:'Joan Mercer, VP Operations',av:'#CDF05B',ini:'JM',tone:'warm',tsteps:['timely','personal','warm, helpful'],\n     items:[['Ex-Sysco'],['Hiring 3 planners','signal'],['New cold-storage site'],['Cold Chain Forum panel','person'],['Shared a panel with you','common'],['Same alma mater'],['Grocery case study'],['Route planning','offer'],['Posts about hiring']],\n     lines:['Joan, saw Northpine is hiring three supply planners.','We shared the Cold Chain Forum stage last spring.','I help food distributors plan routes before new hires land.','Open to a quick call?'],\n     reply:'I remember that panel! Thursday works.',out:'\u2713 Meeting booked \u00b7 Thu'},\n    {co:'Harbor Lane',who:'Dana Whitfield, VP Operations',av:'#F2F3F5',ini:'DW',tone:'casual',tsteps:['upbeat','shop talk','easygoing'],\n     items:[['Visited pricing page'],['Opened a Savannah site','signal'],['Promoted in June'],['Post on dock delays','person'],['Your cold-chain years','common'],['Savannah customers'],['3 sites, Southeast'],['Cuts dock wait times','offer'],['Hiring a planner']],\n     lines:['Dana, congrats on the Savannah site.','Your post on dock delays hit home from my cold-chain years.','We cut dock wait times for distributors your size.','Worth a look?'],\n     reply:'Not my area, but Lisa Park runs routing. Try her.',out:'\u2713 Referral \u00b7 Lisa Park'}\n  ];\n  const RM=matchMedia('(prefers-reduced-motion: reduce)').matches;\n  const host=document.getElementById('ssp'), root=host.attachShadow({mode:'open'});\n  root.innerHTML=document.getElementById('ssp-tpl').innerHTML;\n  const $=id=>root.getElementById(id);\n  const stage=$('stage'), body=$('body'), chipsEl=$('chips'), mc=$('mc'), mr=$('mr'), card=$('card'), linesEl=$('lines'), reply=$('reply');\n  let cur=0, timers=[], chips=[], cloudXY=[], rowXY=[], picks=[], lineEls=[];\n  let paused=false, off=true; /* page port: Pause, and hold while scrolled out of view */\n  function gate(fn){return ()=>{ if(paused||off){ timers.push(setTimeout(gate(fn),150)); return;} fn(); };}\n  const T=(ms,fn)=>timers.push(setTimeout(gate(fn),ms));\n  const clear=()=>{timers.forEach(clearTimeout);timers=[];};\n  const tr=(c,[x,y],s=1)=>{c.style.transform=`translate(${x}px,${y}px) scale(${s})`;};\n\n  // ---- tone reel ----\n  const POOL=['formal','friendly','bold','curious','concise','playful','upbeat','direct','warm','casual','candid'];\n  let toneNow='neutral';\n  function reelSet(w,final){const rl=$('rl');rl.style.transition='none';rl.style.transform='none';rl.innerHTML=`<span>${w}</span>`;toneNow=w;$('reel').classList.toggle('set',!!final);}\n  function spin(w,final){ if(RM){reelSet(w,final);return;}\n    const n=final?9:5, list=[toneNow]; while(list.length<n){const p=POOL[Math.floor(Math.random()*POOL.length)]; if(p!==list[list.length-1]&&p!==w) list.push(p);} list.push(w);\n    const rl=$('rl'); $('reel').classList.remove('set'); rl.style.transition='none'; rl.style.transform='none'; rl.innerHTML=list.map(x=>`<span>${x}</span>`).join(''); rl.getBoundingClientRect();\n    const D=final?1300:750; rl.style.transition=`transform ${D}ms cubic-bezier(.12,.75,.2,1)`; rl.style.transform=`translateY(${-(list.length-1)*20}px)`;\n    toneNow=w; T(D+40,()=>{ if(toneNow===w) reelSet(w,final); }); }\n\n  // ---- typing with a colored leading edge ----\n  function typeInto(el,text,ms,color,done){\n    if(RM){el.textContent=text;done&&done();return;}\n    const caret=document.createElement('span');caret.className='caret';caret.style.background=color;el.appendChild(caret);\n    let i=0; const step=Math.max(15,ms/text.length);\n    const tick=()=>{const s=document.createElement('span');s.className='ch2';s.textContent=text[i];s.style.color=color;el.insertBefore(s,caret);\n      setTimeout(()=>{s.style.color='';},70); i++; if(i<text.length) T(step,tick); else T(200,()=>{caret.remove();done&&done();});};\n    T(step,tick);\n  }\n\n  // ---- layout: measure the cloud and the sorted strip, place the card and reply ----\n  function layout(l){\n    chipsEl.innerHTML=''; mc.innerHTML=''; mr.innerHTML=''; linesEl.innerHTML=''; reply.innerHTML=''; lineEls=[];\n    // cloud rows of two, each pick on the same side as its slot in the strip, so the gather only moves up\n    const un=l.items.filter(x=>!x[1]), pk=k=>l.items.find(x=>x[1]===k);\n    const rows=[[pk('signal'),un[0]],[un[1],pk('person')],[pk('common'),un[2]],[un[3],pk('offer')],[un[4]]];\n    chips=[];\n    rows.forEach(r=>{const row=document.createElement('div');row.className='mrow';mc.appendChild(row);\n      r.forEach(([t,k])=>{const c=document.createElement('span');c.className='chip';c.textContent=t;c.dataset.k=k||'';chipsEl.appendChild(c);chips.push(c);\n        const m=document.createElement('span');m.className='mchip';m.textContent=t;row.appendChild(m);});});\n    picks=ORDER.map(k=>chips.findIndex(c=>c.dataset.k===k));\n    picks.forEach(i=>{const m=document.createElement('span');m.className='mchip';m.textContent=chips[i].textContent;mr.appendChild(m);});\n    // the strip sits at the top; the cloud sits centered in the space the card will use\n    mr.style.top='0px';\n    const rowH=mr.offsetHeight;\n    card.style.top=(rowH+9)+'px';\n    // measure the finished card to fix the stage height for all three accounts\n    const H=body.offsetHeight;\n    mc.style.top=Math.max(0,(H-mc.offsetHeight)/2-8)+'px';\n    cloudXY=[...mc.querySelectorAll('.mchip')].map(m=>[m.offsetLeft,m.offsetTop+mc.offsetTop]);\n    rowXY=[]; [...mr.children].forEach((m,j)=>{rowXY[picks[j]]=[m.offsetLeft,m.offsetTop];});\n    chips.forEach((c,i)=>{c.style.transition='none';tr(c,cloudXY[i],.7);c.style.opacity=0;c.getBoundingClientRect();c.style.transition='';});\n    l.lines.forEach(()=>{const d=document.createElement('div');d.className='ln';linesEl.appendChild(d);lineEls.push(d);});\n  }\n  // fixed stage height: tallest finished account, measured once\n  function fixHeight(){\n    let max=0;\n    LEADS.forEach(l=>{layout(l); l.lines.forEach((t,i)=>lineEls[i].textContent=t);\n      reply.innerHTML=`<span class=\"av\">${l.ini}</span><span class=\"bub\">${l.reply}</span>`;\n      const h=card.offsetTop+card.offsetHeight+8+reply.offsetHeight; max=Math.max(max,h);});\n    body.style.setProperty('--bh',Math.ceil(max)+'px');\n  }\n\n  function setup(l){\n    stage.classList.remove('fade'); stage.classList.add('reset');\n    $('av').textContent=l.ini; $('av').style.background=l.av; $('co').textContent=l.co; $('who').textContent=l.who;\n    $('st').textContent='Working'; $('st').className='st'; $('icp').className='icp';\n    $('lbln').textContent=''; $('lblt').textContent='Finding data'; card.className='card'; $('wst').className='wst'; $('out').className='out'; $('out').textContent=l.out;\n    reply.className='reply'; reelSet('neutral',false);\n    layout(l); stage.getBoundingClientRect(); stage.classList.remove('reset');\n  }\n\n  function lightLine(li,on){chips.forEach(c=>{if(!c.dataset.k) return; const mine=LINE_OF[c.dataset.k]===li; c.classList.toggle('act',on&&mine); c.classList.toggle('rest',on&&!mine);});}\n\n  function run(l){\n    let t=100;\n    if(!RM){$('av').style.transform='scale(.6)'; T(30,()=>$('av').style.transform='');}\n    T(t+250,()=>$('icp').classList.add('on'));\n    t+=250;\n    $('lbln').textContent='searching\u2026';\n    // 1. the cloud: every fact pops in where it sits\n    chips.forEach((c,i)=>T(t+i*105,()=>{c.style.opacity=1;tr(c,cloudXY[i],1);}));\n    t+=chips.length*105+350;\n    // 2. the four that matter light up; the rest dim\n    T(t,()=>{$('lbln').textContent=`9 found \u00b7 4 used`;\n      chips.forEach(c=>{const k=c.dataset.k; if(k){c.classList.add('pick');c.style.borderColor=COL[k];c.style.background=COL[k]+'2E';} else c.style.opacity=.22;});});\n    t+=650;\n    // 3. the rest leave; the four glide up into story order\n    T(t,()=>{chips.forEach((c,i)=>{ if(!c.dataset.k){c.style.opacity=0;tr(c,[cloudXY[i][0],cloudXY[i][1]+6],.92);} });});\n    t+=320;\n    T(t,()=>{$('lblt').textContent='Relevant data'; picks.forEach((i,j)=>T(j*150,()=>tr(chips[i],rowXY[i],1)));});\n    t+=880;\n    T(t,()=>card.classList.add('on'));\n    t+=380;\n    // 4. write, one line per source\n    T(t,()=>$('wst').classList.add('on'));\n    l.lines.forEach((text,li)=>{\n      const ms=Math.min(1050,text.length*17), color=li===3?'#F2F3F5':COL[ORDER[[0,1,3][li]]];\n      if(li===3){ T(t,()=>{lightLine(0,false);spin(l.tone,true);}); t+=900; }\n      else T(t,()=>{lightLine(li,true);spin(l.tsteps[li],false);});\n      T(t,()=>typeInto(lineEls[li],text,ms,color));\n      t+=ms+520;\n    });\n    // 5. the reply, and the outcome takes the status slot\n    T(t,()=>{const top=card.offsetTop+card.offsetHeight+8; reply.style.top=top+'px';\n      reply.innerHTML=`<span class=\"av\" style=\"background:${l.av}\">${l.ini}</span><span class=\"typing\"><i></i><i></i><i></i></span>`; reply.classList.add('on');});\n    t+=950;\n    T(t,()=>{reply.querySelector('.typing').outerHTML=`<span class=\"bub\">${l.reply}</span>`;});\n    t+=450;\n    T(t,()=>{$('wst').className='wst gone'; $('out').classList.add('on'); $('st').textContent='Done'; $('st').classList.add('done');});\n    t+=2600;\n    T(t,()=>stage.classList.add('leave')); t+=560;\n    T(t,()=>start((cur+1)%LEADS.length,true));\n  }\n\n  function finalState(l){\n    $('icp').classList.add('on'); $('lbln').textContent='9 found \u00b7 4 used'; $('lblt').textContent='Relevant data';\n    chips.forEach((c,i)=>{const k=c.dataset.k; if(k){c.classList.add('pick');c.style.borderColor=COL[k];c.style.background=COL[k]+'2E';c.style.opacity=1;tr(c,rowXY[i],1);} else c.style.opacity=0;});\n    card.classList.add('on'); l.lines.forEach((t,i)=>lineEls[i].textContent=t); reelSet(l.tone,true);\n    reply.style.top=(card.offsetTop+card.offsetHeight+8)+'px'; reply.innerHTML=`<span class=\"av\" style=\"background:${l.av}\">${l.ini}</span><span class=\"bub\">${l.reply}</span>`; reply.classList.add('on');\n    $('wst').className='wst gone'; $('out').classList.add('on'); $('st').textContent='Done'; $('st').classList.add('done');\n  }\n\n  function start(i,fromDeck){clear(); cur=i; const l=LEADS[i];\n    if(fromDeck&&!RM){ stage.classList.remove('leave'); stage.classList.add('enter'); setup(l); stage.getBoundingClientRect();\n      requestAnimationFrame(()=>{stage.classList.remove('enter');}); T(450,()=>run(l)); return; }\n    stage.classList.remove('leave','enter'); setup(l); if(RM){finalState(l);return;} run(l);}\n  const pz=$('pause'), setPz=()=>{pz.textContent=paused?'Play':'Pause';};\n  pz.addEventListener('click',()=>{paused=!paused;setPz();});\n  stage.addEventListener('click',()=>{paused=false;setPz();start(cur);});\n  stage.addEventListener('keydown',e=>{if(e.key==='Enter'||e.key===' '){e.preventDefault();paused=false;setPz();start(cur);}});\n\n  const go=()=>{fixHeight(); setup(LEADS[0]);\n    if('IntersectionObserver' in window && !RM){let s=false; new IntersectionObserver(es=>{const e=es[0], was=off; off=!e.isIntersecting; if(e.intersectionRatio>=.5&&!s){s=true;start(0);} else if(s&&was&&!off) start(cur); /* back in view: replay this account */},{threshold:[0,.5]}).observe(stage.parentElement); /* the deck: the stage itself slides out between accounts */} else {off=false; start(0);}};\n  (document.fonts&&document.fonts.ready?document.fonts.ready:Promise.resolve()).then(()=>{ lastW=stage.offsetWidth; go(); });\n  let rz=0, lastW=-1; /* page port: re-measure only when the stage's width changes (it is hidden on desktop) */\n  addEventListener('resize',()=>{clearTimeout(rz);rz=setTimeout(()=>{ const w=stage.offsetWidth; if(!w||w===lastW) return; lastW=w; fixHeight(); start(cur); },200);});\n})();\n\n  /* hero, desktop: the week's upkeep lands line by line and ends on the meetings (the phone card is static) */\n  if (matchMedia('(min-width:900px)').matches) stage($('#hcB'), $$('#hcB .ln'), .4);\n  /* 2B: the days arrive in order; the total is there from the start */\n  stage($('#wk'), $$('#wk .day'), .45);\n})();\n"}