/* DDMind homepage v3. Generated from prototype/v3; do not edit here. */
/* DDMind homepage v3
   Every rule is scoped under .v3-root (or html.v3-js .v3-root) so it wins over Webflow's base styles.

   Idea     The page is set like an annotated document. Each section pairs an exhibit (main column) with
            annotations (margin column). A thin trace line runs in the gutter between the two; every dot
            on it ties an annotation to its exhibit.
   Colour   white | band #F5F6F8 | hairline #E3E5EA / #D3D6DE | ink #0E1630 | text #454C63 | muted #646B82
            blue #1F2BB4 belongs to the trace system only (origin dot, nodes, markers, active step, focus, link hover)
   Type     Inter (optical sizes) 400 / 500 / 600. On Webflow it is the site's own Inter ("Inter Variablefont Opsz
            Wght", served from Webflow's CDN), so no page asks Google for fonts before a cookie choice; the local
            prototype falls back to "Inter" from Google Fonts (head links, for previews only; not copied to Webflow)
   Space    4 8 12 16 24 32 48 64 96 128 160
   Shape    plates 14 (10 on phones) | small 8 | buttons are pills | hairlines, no shadows (one faint one: the Products panel)
   Layers   section backgrounds < thread (z 1) < content (z 2) < leaders over the slide (z 3) < nav (z 60)

   Three states, so nothing can stay hidden:
   1  no script            everything visible, every step shows its own picture
   2  html.v3-js           (set by the one-line script in <head>) things wait for their entrance; if v3.js
                           never arrives they are shown after 3 s by a CSS animation
   3  .v3-root.v3-ready    (set by v3.js) stepper, film controls, thread and leaders switch on              */

.v3-root,.v3-root *,.v3-root *::before,.v3-root *::after{box-sizing:border-box}
.v3-root h1,.v3-root h2,.v3-root h3,.v3-root h4,.v3-root h5,.v3-root p,.v3-root ul,.v3-root ol,.v3-root li,.v3-root figure{margin:0;padding:0}
.v3-root h1,.v3-root h2,.v3-root h3,.v3-root h4,.v3-root h5{font-family:inherit;font-weight:600;color:inherit;letter-spacing:inherit;text-transform:none}
.v3-root p{font-size:inherit;line-height:inherit;color:inherit}
.v3-root a{color:inherit;text-decoration:none}
.v3-root ul{list-style:none}
.v3-root img,.v3-root video{display:block;max-width:100%}

/* --------- Tokens and base (phone first) --------- */
.v3-root{
  --v3-band:#F5F6F8;
  --v3-hair:#E3E5EA;
  --v3-hair2:#D3D6DE;
  --v3-ink:#0E1630;
  --v3-text:#454C63;
  --v3-muted:#646B82;
  --v3-doubt:#848BA1;
  --v3-blue:#1F2BB4;
  --v3-blue-hi:#232ED1;
  --v3-line:#C5CAE2;
  --v3-out:cubic-bezier(.2,.7,.2,1);
  --v3-navh:64px;
  --v3-pad:clamp(20px,4.2vw,60px);
  --v3-w:min(1320px,calc(100vw - 2 * var(--v3-pad)));
  --v3-gut:0px;
  --v3-mw:0px;
  --v3-main:var(--v3-w);
  --v3-sec:80px;
  --v3-gap:32px;
  --v3-r:10px;
  --v3-h2:clamp(30px,calc(var(--v3-w) / 9.4),36px);
  --v3-sem:clamp(12px,calc(var(--v3-w) / 26.5),15px);
  --v3-mark:108px;
  position:relative;
  isolation:isolate;
  overflow-x:hidden;
  overflow-x:clip;
  background:#fff;
  color:var(--v3-ink);
  font-family:"Inter Variablefont Opsz Wght","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:17px;
  line-height:1.5;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
.v3-root .v3-wrap{position:relative;z-index:2;width:var(--v3-w);margin-left:auto;margin-right:auto}
.v3-root .v3-nw{white-space:nowrap}
.v3-root a:focus-visible{outline:2px solid var(--v3-blue);outline-offset:3px;border-radius:4px}
.v3-root .v3-btn:focus-visible{border-radius:999px}
/* a link reached with the keyboard is scrolled clear of the fixed nav, so its focus ring is never underneath it */
.v3-root a{scroll-margin-top:calc(var(--v3-navh) + 16px);scroll-margin-bottom:16px}

/* --------- Buttons and text links --------- */
.v3-root .v3-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 28px;border-radius:999px;background:var(--v3-ink);color:#fff;font-size:17px;line-height:1;font-weight:500;letter-spacing:-.01em;white-space:nowrap;transition:background-color .2s ease-out,transform .2s ease-out}
.v3-root .v3-btn:hover{background:#222C52}
.v3-root .v3-btn:active{transform:scale(.98)}
.v3-root .v3-btn-sm{height:36px;padding:0 16px;font-size:14px}
.v3-root .v3-btn-sm::after{content:"";position:absolute;left:0;right:0;top:-4px;bottom:-4px}
.v3-root .v3-link,.v3-root .v3-more{font-weight:500;letter-spacing:-.008em;color:var(--v3-ink);text-decoration:underline;text-decoration-color:var(--v3-hair2);text-decoration-thickness:1px;text-underline-offset:5px;transition:color .2s ease-out,text-decoration-color .2s ease-out}
.v3-root .v3-link{display:inline-block;font-size:17px;line-height:28px}
.v3-root .v3-link:hover,.v3-root .v3-more:hover{color:var(--v3-blue);text-decoration-color:var(--v3-blue)}

/* --------- Navigation --------- */
.v3-root .v3-nav{position:fixed;top:0;left:0;right:0;z-index:60;background:#fff;border-bottom:1px solid transparent;transition:border-color .25s ease-out}
.v3-root .v3-nav.v3-scrolled,.v3-root .v3-nav.v3-sheet-open{border-bottom-color:var(--v3-hair)}
.v3-root .v3-nav-in{display:flex;align-items:center;height:var(--v3-navh)}
.v3-root .v3-logo{display:block;flex:none}
/* in the nav the home link is a full 44px target; the logo itself keeps its size */
.v3-root .v3-nav .v3-logo{display:flex;align-items:center;height:44px}
.v3-root .v3-logo-img{width:100px;height:24px}
.v3-root .v3-nav-list{display:none}
.v3-root .v3-nav-right{display:flex;align-items:center;margin-left:auto}
.v3-root .v3-nav-login{display:none}
.v3-root .v3-menu-btn{display:inline-flex;align-items:center;height:44px;margin-left:6px;padding:0 0 0 12px;font-size:15px;line-height:1;font-weight:500;color:var(--v3-ink)}
.v3-root .v3-menu-btn::after{content:"";flex:none;width:16px;height:7px;margin-left:8px;border-top:1.5px solid currentColor;border-bottom:1.5px solid currentColor}
/* sheet open: the label reads "Close", so the two bars become a cross */
.v3-root .v3-nav.v3-sheet-open .v3-menu-btn::after{height:16px;border:0;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1.5 1.5l9 9M10.5 1.5l-9 9' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") center/12px 12px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1.5 1.5l9 9M10.5 1.5l-9 9' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") center/12px 12px no-repeat}
.v3-root .v3-sheet{position:absolute;top:100%;left:0;right:0;max-height:calc(100vh - var(--v3-navh));overflow-y:auto;background:#fff;border-top:1px solid var(--v3-hair);border-bottom:1px solid var(--v3-hair);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s ease-out,transform .3s var(--v3-out),visibility 0s linear .3s}
.v3-root .v3-nav.v3-sheet-open .v3-sheet{opacity:1;visibility:visible;transform:none;transition-delay:0s}
/* without v3.js "Menu" still works: it links to the sheet, which opens as the link target */
.v3-root:not(.v3-ready) .v3-sheet:target{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.v3-root .v3-sheet-in{padding:4px 0 16px}
.v3-root .v3-sheet-link{display:flex;align-items:center;height:56px;border-top:1px solid var(--v3-hair);font-size:20px;line-height:1.2;font-weight:600;letter-spacing:-.015em;color:var(--v3-ink)}
.v3-root .v3-sheet-link:first-child{border-top:0}
.v3-root .v3-sheet-link:last-child{font-weight:500;color:var(--v3-text)}

/* --------- Thread layer (the svg is built by v3.js from 900px up) --------- */
.v3-root .v3-thread{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;overflow:hidden;pointer-events:none}
.v3-root .v3-thread-svg{position:absolute;top:0;left:0;display:block}
.v3-root .v3-t-a{fill:none;stroke-width:1}
.v3-root .v3-t-b{fill:none;stroke-width:1;transition:stroke-dashoffset 1.2s var(--v3-out)}
.v3-root .v3-t-lead{fill:none;stroke:var(--v3-blue);stroke-width:1;transition:stroke-dashoffset .8s var(--v3-out)}

/* --------- Entrance (only with JavaScript; see the three states above) --------- */
html.v3-js .v3-root .v3-rv{opacity:0;transform:translateY(14px);transition:opacity .7s ease-out,transform .7s var(--v3-out)}
html.v3-js .v3-root .v3-rv.v3-in{opacity:1;transform:none}
html.v3-js .v3-root .v3-rv[data-v3-d="1"]{transition-delay:.08s}
html.v3-js .v3-root .v3-rv[data-v3-d="2"]{transition-delay:.16s}
html.v3-js .v3-root .v3-rv[data-v3-d="3"]{transition-delay:.24s}
html.v3-js .v3-root:not(.v3-ready) .v3-rv{animation:v3-show 0s linear 3s forwards}
html.v3-js .v3-root.v3-static .v3-rv{opacity:1;transform:none;transition:none}
@keyframes v3-show{to{opacity:1;transform:none}}

/* --------- Hero --------- */
.v3-root .v3-hero{padding:calc(var(--v3-navh) + 24px) 0 64px}
.v3-root .v3-h1{margin-left:-.05em;font-size:clamp(44px,calc(var(--v3-w) / 5.5),64px);line-height:1.02;font-weight:600;letter-spacing:-.022em;color:var(--v3-ink)}
/* the full stop of the headline is the origin of the trace */
.v3-root .v3-stop{display:inline-block;width:.16em;height:.16em;margin-left:.035em;border-radius:50%;background:var(--v3-blue);color:transparent;line-height:1;overflow:hidden;vertical-align:baseline}
.v3-root .v3-hero-grid{display:flex;flex-wrap:wrap;align-items:center;margin-top:18px}
.v3-root .v3-notes{flex:0 0 100%}
.v3-root .v3-note{font-size:19px;line-height:26px;letter-spacing:-.012em;color:var(--v3-text);text-wrap:balance}
.v3-root .v3-note-b{margin-top:4px;font-weight:600;color:var(--v3-ink)}
.v3-root .v3-film{position:relative;flex:0 0 100%;margin-top:24px;aspect-ratio:16/9;overflow:hidden;border-radius:var(--v3-r);background:#0A1230}
.v3-root .v3-film-video{width:100%;height:100%;object-fit:cover}
/* never the browser's own controls, also where scripting is switched off (Chrome and Safari would show them) */
.v3-root .v3-film-video::-webkit-media-controls{display:none}
.v3-root .v3-film-row{display:none}
.v3-root .v3-hero-cta{flex:0 0 100%;margin-top:16px}
.v3-root .v3-hero-cta .v3-btn{width:100%}
.v3-root .v3-hero-more{display:none}
.v3-root .v3-more{display:inline-flex;align-items:center;min-height:44px;font-size:15px;line-height:1.3}
/* film controls exist only once v3.js runs */
.v3-root.v3-ready .v3-film{cursor:pointer}
.v3-root.v3-ready .v3-film-row{position:relative;flex:0 0 100%;display:flex;align-items:center;height:28px}
.v3-root .v3-film-bar{position:relative;flex:1 1 auto;height:1px;background:var(--v3-hair2)}
.v3-root .v3-film-fill{position:absolute;left:0;top:-.5px;width:100%;height:2px;background:var(--v3-blue);transform:scaleX(0);transform-origin:0 50%;transition:transform .3s linear}
.v3-root .v3-film-toggle{position:relative;flex:none;width:44px;height:44px;margin:-8px -16px -8px -6px;color:var(--v3-muted);transition:color .2s ease-out}
.v3-root .v3-film-toggle:hover{color:var(--v3-ink)}
.v3-root .v3-film-toggle:focus-visible{outline-offset:-9px;border-radius:8px}
.v3-root .v3-film-toggle::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3.6 1.6v8.8a.5.5 0 0 0 .77.42l6.6-4.4a.5.5 0 0 0 0-.84l-6.6-4.4a.5.5 0 0 0-.77.42z'/%3E%3C/svg%3E") center/12px 12px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3.6 1.6v8.8a.5.5 0 0 0 .77.42l6.6-4.4a.5.5 0 0 0 0-.84l-6.6-4.4a.5.5 0 0 0-.77.42z'/%3E%3C/svg%3E") center/12px 12px no-repeat}
.v3-root .v3-hero-grid.v3-playing .v3-film-toggle::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Crect x='2.5' y='1.5' width='2.5' height='9' rx='.6'/%3E%3Crect x='7' y='1.5' width='2.5' height='9' rx='.6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Crect x='2.5' y='1.5' width='2.5' height='9' rx='.6'/%3E%3Crect x='7' y='1.5' width='2.5' height='9' rx='.6'/%3E%3C/svg%3E")}
.v3-root.v3-ready .v3-hero-cta{margin-top:8px}
.v3-root.v3-ready .v3-hero-more{display:block;flex:0 0 100%;margin-top:4px}
.v3-root.v3-ready .v3-hero-grid.v3-no-full .v3-hero-more{display:none}

/* --------- Sections --------- */
.v3-root .v3-sec{padding:0 0 var(--v3-sec);scroll-margin-top:var(--v3-navh)}
.v3-root .v3-band{background:var(--v3-band)}
.v3-root .v3-head{position:relative;padding-top:80px}
.v3-root .v3-h2{margin-left:-.04em;font-size:var(--v3-h2);line-height:1.08;font-weight:600;letter-spacing:-.022em;color:var(--v3-ink);text-wrap:balance}
.v3-root .v3-doubt{color:var(--v3-doubt)}
.v3-root .v3-lead{max-width:31em;margin-top:16px;font-size:18px;line-height:1.5;letter-spacing:-.006em;color:var(--v3-text);text-wrap:pretty}

/* --------- Challenge: the example slide --------- */
.v3-root .v3-exhibit{position:relative;margin-top:var(--v3-gap)}
.v3-root .v3-slide{padding:1.7em 1.6em 1.5em;border:1px solid var(--v3-hair);border-radius:var(--v3-r);background:#fff;color:var(--v3-ink);font-size:var(--v3-sem)}
.v3-root .v3-sl-label{font-size:max(11px,.74em);line-height:1.35;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--v3-muted)}
.v3-root .v3-sl-title{margin-top:.35em;font-size:1.42em;line-height:1.18;font-weight:600;letter-spacing:-.018em}
.v3-root .v3-sl-body{margin-top:1.2em}
.v3-root .v3-sl-li{display:flex;align-items:center;min-height:2.6em}
.v3-root .v3-sl-li::before{content:"";flex:none;width:.34em;height:.34em;margin-right:.85em;border-radius:50%;background:var(--v3-ink)}
.v3-root .v3-sl-tx{font-size:1.12em;line-height:1.3;letter-spacing:-.008em}
/* numbered marker: one end of a trace */
.v3-root .v3-mk,.v3-root .v3-q-key{flex:none;display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--v3-blue);color:#fff;font-size:11px;line-height:1;font-weight:600;letter-spacing:0;font-variant-numeric:tabular-nums}
.v3-root .v3-sl-li .v3-mk{margin-left:.7em}
.v3-root .v3-sl-figs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:.8em;margin-top:1em}
.v3-root .v3-fig{padding:1em .8em .9em;border-radius:8px;background:var(--v3-band)}
.v3-root .v3-fig-v{font-size:1.9em;line-height:1;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.v3-root .v3-fig-row{display:flex;align-items:center;min-height:20px;margin-top:.5em}
.v3-root .v3-fig-l{font-size:max(11px,.85em);line-height:1.3;white-space:nowrap;color:var(--v3-text)}
.v3-root .v3-fig-row .v3-mk{margin-left:.6em}
.v3-root .v3-sl-foot{margin-top:1.4em;font-size:max(11px,.7em);line-height:1.3;color:var(--v3-muted)}

/* --------- Challenge: the reviewers' questions --------- */
.v3-root .v3-qs{position:relative;margin-top:32px}
.v3-root .v3-q{position:relative;padding:0 0 26px 36px}
.v3-root .v3-q:last-child{padding-bottom:0}
.v3-root .v3-q-key{position:absolute;left:0;top:0}
.v3-root .v3-q-role{font-size:14px;line-height:20px;font-weight:500;color:var(--v3-muted)}
.v3-root .v3-q-text{margin-top:2px;font-size:19px;line-height:25px;font-weight:500;letter-spacing:-.012em;color:var(--v3-ink);text-wrap:balance}
.v3-root .v3-leaders{display:none}
.v3-root.v3-ready .v3-q{transition:opacity .6s ease-out}
.v3-root.v3-ready .v3-exhibit:not(.v3-go) .v3-q{opacity:0}
.v3-root.v3-ready .v3-exhibit.v3-go .v3-q:nth-child(2){transition-delay:.2s}
.v3-root.v3-ready .v3-exhibit.v3-go .v3-q:nth-child(3){transition-delay:.4s}

/* --------- Verification ---------
   Base: every step shows its own picture (phones, and any width without v3.js).
   With v3.js it becomes four tabs above one picture (600 to 899) or the margin stepper beside one picture (900 up). */
.v3-root .v3-stage{margin-top:var(--v3-gap)}
.v3-root .v3-step + .v3-step{margin-top:56px}
.v3-root .v3-step-hit,.v3-root .v3-step-prog,.v3-root .v3-frame{display:none}
.v3-root .v3-step-n{font-size:13px;line-height:20px;font-weight:500;letter-spacing:.02em;font-variant-numeric:tabular-nums;color:var(--v3-muted)}
.v3-root .v3-step-t{margin-top:4px;font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-.02em;color:var(--v3-ink)}
.v3-root .v3-step-d{margin-top:6px;font-size:17px;line-height:1.45;color:var(--v3-text)}
.v3-root .v3-shot{margin-top:20px;aspect-ratio:1980/1341;overflow:hidden;border:1px solid var(--v3-hair);border-radius:var(--v3-r);background:#F4F5F9}
.v3-root .v3-shot-img{width:100%;height:100%;object-fit:cover}
.v3-root .v3-cap{margin-top:16px;font-size:14px;line-height:20px;color:var(--v3-muted)}
@keyframes v3-prog-y{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes v3-prog-x{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* --------- Security: a term sheet --------- */
.v3-root .v3-terms{position:relative;margin-top:var(--v3-gap)}
.v3-root .v3-term{position:relative;padding-bottom:28px}
.v3-root .v3-term-t{font-size:20px;line-height:26px;font-weight:600;letter-spacing:-.014em;color:var(--v3-ink)}
.v3-root .v3-term-d{margin-top:4px;font-size:16px;line-height:1.5;color:var(--v3-text);text-wrap:pretty}
.v3-root .v3-proof{position:relative}
.v3-root .v3-proof-a{margin-top:4px}
.v3-root .v3-proof-b{margin-top:10px}

/* --------- Closing --------- */
.v3-root .v3-closing{padding:96px 0 80px}
.v3-root .v3-rive{position:relative;width:var(--v3-mark);height:var(--v3-mark);margin:calc(var(--v3-mark) * -.125) 0 calc(var(--v3-mark) * -.155) calc(var(--v3-mark) * -.1175);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-2.854 -3.4 37.14 37.14'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='28' y1='2' x2='2.8' y2='27.2' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23151EAB'/%3E%3Cstop offset='1' stop-color='%2312186B'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg fill='url(%23g)' fill-rule='evenodd'%3E%3Cpath d='M28.0367 7.52916C25.9702 9.59568 22.1139 9.65196 20.0474 11.7184L19.4003 12.3655C18.213 13.5529 18.0458 15.5909 16.9571 16.8692C16.9105 16.924 16.8612 16.9774 16.8094 17.0292C15.5277 18.311 13.2737 18.4922 11.9919 19.774L11.7861 19.9798C10.1665 21.5994 10.1137 24.3864 8.98571 26.3798C8.81548 26.6806 8.60218 26.9638 8.34581 27.2201C6.81954 28.7464 4.34488 28.7464 2.81856 27.2201C1.29225 25.6938 1.29225 23.2191 2.81856 21.6928C3.07489 21.4365 3.35796 21.2232 3.65878 21.053C5.65219 19.925 8.43923 19.8721 10.0588 18.2525L10.2647 18.0466C11.5464 16.7649 11.7277 14.511 13.0095 13.2292C13.0612 13.1774 13.1146 13.1282 13.1693 13.0816C14.4476 11.9928 16.4858 11.8256 17.6731 10.6383L18.3201 9.99121C20.3867 7.92473 20.4429 4.0684 22.5094 2.00191C24.0357 0.475599 26.5103 0.475599 28.0367 2.00191C29.563 3.52823 29.563 6.00288 28.0367 7.52916Z'/%3E%3Cpath d='M19.3716 22.0674C21.3264 20.1127 24.8991 20.0664 26.9799 18.2466C27.046 18.1889 27.1106 18.1285 27.1736 18.0655C28.6999 16.5392 28.6999 14.0646 27.1736 12.5383C25.6473 11.012 23.1726 11.012 21.6463 12.5383C21.5834 12.6012 21.523 12.6658 21.4653 12.7318C19.6454 14.8127 19.5991 18.3855 17.6444 20.3402L16.9638 21.0207C15.6821 22.3025 13.4281 22.4838 12.1464 23.7655C11.097 24.8148 11.097 26.5161 12.1464 27.5655C13.1957 28.6148 14.897 28.6148 15.9464 27.5655C17.2281 26.2837 17.4094 24.0297 18.6912 22.7479L19.3716 22.0674Z'/%3E%3Cpath d='M9.52597 12.222C11.4807 10.2673 15.0534 10.221 17.1343 8.40115C17.2004 8.34342 17.2649 8.28303 17.3279 8.22007C18.8542 6.6938 18.8542 4.21915 17.3279 2.69283C15.8016 1.16652 13.3269 1.16652 11.8006 2.69283C11.7377 2.75579 11.6773 2.82037 11.6195 2.88642C9.79975 4.96735 9.75342 8.54004 7.7987 10.4948L7.11822 11.1752C5.83645 12.457 3.58246 12.6383 2.30069 13.9201C1.25133 14.9694 1.25133 16.6707 2.30069 17.72C3.35 18.7694 5.05135 18.7694 6.10066 17.72C7.38243 16.4383 7.56368 14.1843 8.84545 12.9026L9.52597 12.222Z'/%3E%3Cpath d='M2.41291 9.60196C3.50841 10.6975 5.28456 10.6975 6.38006 9.60196C7.47555 8.50646 7.47555 6.73031 6.38005 5.63482C5.28456 4.53932 3.50841 4.53932 2.41291 5.63482C1.31742 6.73031 1.31742 8.50646 2.41291 9.60196Z'/%3E%3Cpath d='M20.5125 27.206C21.608 28.3015 23.3842 28.3015 24.4797 27.206C25.5752 26.1105 25.5752 24.3343 24.4797 23.2388C23.3842 22.1433 21.608 22.1433 20.5125 23.2388C19.417 24.3343 19.417 26.1105 20.5125 27.206Z'/%3E%3C/g%3E%3C/svg%3E") center/100% 100% no-repeat}
/* once the animated canvas has drawn, it takes over from the static mark behind it */
.v3-root .v3-rive.v3-live{background-image:none}
.v3-root .v3-rive-cv{display:block;width:100%;height:100%}
.v3-root .v3-closing .v3-h2{margin-top:24px}
.v3-root .v3-cta-row{display:flex;flex-direction:column;align-items:flex-start;margin-top:32px}
.v3-root .v3-cta-row .v3-btn{width:100%}
.v3-root .v3-mail{margin-top:10px;padding:8px 0}

/* --------- Footer --------- */
.v3-root .v3-foot{padding:48px 0 32px;border-top:1px solid var(--v3-hair);background:var(--v3-band)}
.v3-root .v3-foot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;row-gap:36px}
.v3-root .v3-foot-brand{grid-column:1 / -1}
/* the link is only as wide as the logo, not the whole column (and never under 24px tall) */
.v3-root .v3-foot-brand .v3-logo{display:flex;align-items:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;min-height:24px}
.v3-root .v3-foot-tag{margin-top:18px;font-size:15px;line-height:24px;font-weight:500;color:var(--v3-ink)}
.v3-root .v3-foot-addr{margin-top:6px;font-size:14px;line-height:22px;color:var(--v3-muted)}
.v3-root .v3-foot-h{font-size:13px;line-height:20px;font-weight:500;letter-spacing:0;color:var(--v3-muted)}
.v3-root .v3-foot-list{margin-top:8px}
.v3-root .v3-foot-a{display:inline-block;font-size:15px;line-height:24px;padding:4px 0;font-weight:500;letter-spacing:-.006em;color:var(--v3-ink);transition:color .2s ease-out}
.v3-root .v3-foot-a:hover{color:var(--v3-blue)}
.v3-root .v3-foot-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 24px;margin-top:48px;padding-top:24px;border-top:1px solid var(--v3-hair2)}
.v3-root .v3-foot-copy{font-size:13px;line-height:20px;color:var(--v3-muted)}
/* the legal group, left: the copyright, then Privacy Policy and "Change cookie settings" (a button v3.js adds).
   Phones: the copyright on its own line, the two links under it. */
.v3-root .v3-foot-legal-l{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 20px}
.v3-root .v3-foot-legal-l > p{flex:0 0 100%}
.v3-root .v3-foot-legal-l .v3-foot-la{display:inline-block;margin:-2px 0;padding:2px 0;font-weight:500;color:var(--v3-text);transition:color .2s ease-out}
.v3-root .v3-foot-legal-l .v3-foot-la:hover{color:var(--v3-blue)}
/* "Change cookie settings" looks exactly like the link beside it */
.v3-root .v3-foot-btn{border:0;border-radius:0;background:none;font-family:inherit;letter-spacing:inherit;text-align:inherit;text-transform:none;cursor:pointer;-webkit-appearance:none;appearance:none}
.v3-root .v3-foot-btn:focus-visible{outline:2px solid var(--v3-blue);outline-offset:3px;border-radius:4px}

/* --------- Cookie consent ---------
   v3.js builds the banner; the site-wide consent script shows it (an inline display:block, so the outer box
   must look right as a block) and paints each .switch inline in the old palette. Here the track is its own
   element that follows the checkbox, and the inline paint on .switch is cleared. The Webflow site styles for
   label and .switch are reset as well. Phones: a sheet along the bottom; from 600px: a card bottom left. */
.v3-root .v3-ck{display:none;position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:55;max-height:calc(100vh - 24px);overflow-y:auto;padding:18px 18px 14px;border:1px solid var(--v3-hair);border-radius:14px;background:#fff;color:var(--v3-ink);box-shadow:0 2px 6px rgba(14,22,48,.05),0 24px 48px -20px rgba(14,22,48,.28);font-size:14px;line-height:21px;text-align:left;animation:v3-ck-in .45s var(--v3-out)}
.v3-root .v3-ck:focus{outline:none}
.v3-root .v3-ck:focus-visible{outline:2px solid var(--v3-blue);outline-offset:2px}
@keyframes v3-ck-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.v3-root .v3-ck-text{font-size:14px;line-height:21px;letter-spacing:-.003em;color:var(--v3-text);text-wrap:pretty}
.v3-root .v3-ck-text a{color:var(--v3-ink);text-decoration:underline;text-decoration-color:var(--v3-hair2);text-decoration-thickness:1px;text-underline-offset:3px;transition:color .2s ease-out,text-decoration-color .2s ease-out}
.v3-root .v3-ck-text a:hover{color:var(--v3-blue);text-decoration-color:var(--v3-blue)}
.v3-root .v3-ck-list{margin-top:12px;border-bottom:1px solid var(--v3-hair)}
.v3-root .v3-ck-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;margin:0;padding:0;border-top:1px solid var(--v3-hair);font-size:14px;line-height:20px;font-weight:500;letter-spacing:-.006em;color:var(--v3-ink);cursor:pointer}
.v3-root .v3-ck-fixed{cursor:default}
.v3-root .v3-ck-note{font-weight:400;color:var(--v3-muted)}
.v3-root .v3-ck .switch{position:relative;display:block;flex:none;width:36px;height:20px;margin:0;padding:0;border:0;border-radius:999px;background:transparent!important;opacity:1;transition:none}
.v3-root .v3-ck-input{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:999px;opacity:0;cursor:pointer;-webkit-appearance:none;appearance:none}
.v3-root .v3-ck-input:disabled{cursor:default}
.v3-root .v3-ck-track{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:999px;background:var(--v3-hair2);transition:background-color .2s ease-out}
.v3-root .v3-ck-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(14,22,48,.24);transition:transform .25s var(--v3-out)}
.v3-root .v3-ck-input:checked~.v3-ck-track{background:var(--v3-blue)}
.v3-root .v3-ck-input:checked~.v3-ck-knob{transform:translateX(16px)}
/* a switch that is off and can be turned on keeps a visible edge (#848BA1 on white: 3.4:1) */
.v3-root .v3-ck-input:not(:checked):not(:disabled)~.v3-ck-track{box-shadow:inset 0 0 0 1px var(--v3-doubt)}
/* mandatory: on, and visibly not changeable */
.v3-root .v3-ck-input:disabled~.v3-ck-track{opacity:.35}
.v3-root .v3-ck-input:focus-visible~.v3-ck-track{outline:2px solid var(--v3-blue);outline-offset:2px}
/* Accept all and Decline side by side, the same size; Decline is outlined like Save selection (as on the live site,
   refusing is as easy to find and to hit as accepting). The row shares its width out evenly; no label ever wraps. */
.v3-root .v3-ck-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.v3-root .v3-ck-btn{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;height:44px;margin:0;padding:0 16px;border:1px solid transparent;border-radius:999px;background:transparent;font-family:inherit;font-size:14px;line-height:1;font-weight:500;letter-spacing:-.006em;text-transform:none;white-space:nowrap;cursor:pointer;-webkit-appearance:none;appearance:none;transition:background-color .2s ease-out,border-color .2s ease-out,color .2s ease-out,transform .2s ease-out}
.v3-root .v3-ck-btn:active{transform:scale(.98)}
.v3-root .v3-ck-btn:focus-visible{outline:2px solid var(--v3-blue);outline-offset:2px}
.v3-root .v3-ck-b1{background:var(--v3-ink);color:#fff}
.v3-root .v3-ck-b1:hover{background:#222C52}
/* Accept all and Decline always split their share evenly (the label may use a pixel of its padding on a phone) */
.v3-root .v3-ck-b1,.v3-root .v3-ck-b3{min-width:0}
.v3-root .v3-ck-b2,.v3-root .v3-ck-b3{border-color:var(--v3-hair2);background:#fff;color:var(--v3-ink)}
.v3-root .v3-ck-b2:hover,.v3-root .v3-ck-b3:hover{border-color:var(--v3-ink)}
/* the narrowest phones: Accept all | Decline as two halves, Save selection across under them */
@media (max-width:379.98px){
  .v3-root .v3-ck-acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .v3-root .v3-ck-b2{grid-column:1 / -1}
}
@media (max-width:599.98px){
  .v3-root .v3-ck-btn{padding:0 14px}
}

/* While the banner is open, v3.js sets --v3-ck-room to the room it takes at the bottom of the window, and the page
   ends that much lower: scrolled to the end, the footer's last line (the copyright) still clears the banner. */
.v3-root .v3-foot-legal{margin-bottom:var(--v3-ck-room,0px)}

/* --------- Calendly popup (opened by demo.js; Calendly's widget.css draws it outside .v3-root) ---------
   Calendly puts its close control in the corner of the window, far from what people see: Calendly's page, a
   white card inside its frame. Here it is a 40px round control (44px to touch) kept with that card.
   Frame (from 976px): width 80% held between 900 and 1000px, height 90% up to 700px, centred. The card starts
   66px into the frame; it is 680px wide (centred) while the frame is under 1000px, 900px wide at 1000px (800 on
   the calendar step). Below 976px the frame fills the window under a 50px strip; from a 650px frame the card is
   the same centred 680px card, below that it fills the frame. */
body .calendly-overlay .calendly-popup-close{width:40px;height:40px;border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 2l10 10M12 2L2 12' fill='none' stroke='%230E1630' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center/14px 14px no-repeat;box-shadow:0 1px 2px rgba(14,22,48,.12),0 8px 24px -10px rgba(14,22,48,.4);transition:background-color .15s ease-out,transform .15s ease-out}
body .calendly-overlay .calendly-popup-close::after{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;border-radius:50%}
body .calendly-overlay .calendly-popup-close:hover{background-color:#EEF0F4}
body .calendly-overlay .calendly-popup-close:active{transform:scale(.95)}
/* demo.js makes it a focusable button: a white rim, then the blue ring, so the ring reads on any scrim */
body .calendly-overlay .calendly-popup-close:focus{outline:none}
body .calendly-overlay .calendly-popup-close:focus-visible{outline:2px solid #1F2BB4;outline-offset:2px;box-shadow:0 0 0 2px #fff,0 8px 24px -10px rgba(14,22,48,.4)}
/* the scrim in the site's ink rather than Calendly's grey */
body .calendly-overlay{background-color:rgba(14,22,48,.45)}
/* phones: Calendly's own place, the right end of the strip, just above its full-width card. The page's nav steps
   back while the popup is open (demo.js sets html.v3-cal-open), so the close control is the only thing up there. */
@media (max-width:975.98px){
  body .calendly-overlay .calendly-popup-close{top:5px;right:10px}
  html.v3-cal-open .v3-root .v3-nav{visibility:hidden}
}
/* tablets: just above the card's top right corner (670 rather than 650 leaves room for a 17px scrollbar) */
@media (min-width:670px) and (max-width:975.98px){
  body .calendly-overlay .calendly-popup-close{top:64px;right:auto;left:min(calc(50% + 300px),calc(100% - 56px))}
}
/* from 976: beside the card, level with its top edge; the clamp() steps from the 680px card to the 900px card
   exactly where the frame reaches 1000px */
@media (min-width:976px){
  body .calendly-overlay .calendly-popup-close{top:max(8px,calc(50% - min(45%,350px) + 66px));right:auto;left:calc(50% + 352px + clamp(0px,(80% - 999.5px) * 220,110px))}
}

/* ========= One column (below 900): the thread in its simplified form ========= */
@media (max-width:899.98px){
  /* a short stub with a node drops into every section heading */
  .v3-root .v3-head::before{content:"";position:absolute;left:3px;top:0;width:1px;height:52px;background:var(--v3-line)}
  .v3-root .v3-head::after{content:"";position:absolute;left:0;top:52px;width:7px;height:7px;border-radius:50%;background:var(--v3-blue)}
  /* the questions hang from the slide as a 1-2-3 chain */
  .v3-root .v3-qs::before{content:"";position:absolute;left:9.5px;top:-32px;width:1px;height:32px;background:var(--v3-line)}
  .v3-root .v3-q::before{content:"";position:absolute;left:9.5px;top:20px;bottom:0;width:1px;background:var(--v3-line)}
  .v3-root .v3-q:last-child::before{display:none}
  /* security: a dotted chain down the left edge, one dot per point, that runs on into the closing mark */
  .v3-root .v3-terms{padding-left:28px}
  .v3-root .v3-terms::before{content:"";position:absolute;left:3px;top:13px;bottom:calc(var(--v3-sec) * -1);width:1px;background:var(--v3-line)}
  .v3-root .v3-term::before,.v3-root .v3-proof::before{content:"";position:absolute;left:-28px;top:9.5px;width:7px;height:7px;border-radius:50%;background:var(--v3-blue)}
  .v3-root .v3-proof::before{top:10.5px}
  /* the closing starts 96px above the mark: the chain drops 26, takes one 45 degree chamfer across to the mark's
     first strand and stops 6px above it, fading out */
  .v3-root .v3-closing .v3-wrap::before{content:"";position:absolute;left:0;top:-96px;width:48px;height:90px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='90' viewBox='0 0 48 90'%3E%3Cdefs%3E%3ClinearGradient id='t' x1='0' y1='70' x2='0' y2='90' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23C5CAE2'/%3E%3Cstop offset='1' stop-color='%23C5CAE2' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M3.5 0V26L42.5 65V90' fill='none' stroke='url(%23t)' stroke-width='1'/%3E%3C/svg%3E") 0 0/48px 90px no-repeat}
}

/* phones: section headings hold 34 to 36px and break over lines. "confidential documents." must stay together,
   so that one heading follows the column width instead */
@media (max-width:599.98px){
  .v3-root .v3-security .v3-h2{font-size:min(var(--v3-h2),calc(var(--v3-w) / 10.45))}
}

/* the narrowest phones: logo, button and Menu still need air between them */
@media (max-width:359.98px){
  .v3-root .v3-logo-img{width:88px;height:21px}
  .v3-root .v3-btn-sm{padding:0 13px}
  .v3-root .v3-menu-btn{margin-left:2px;padding-left:10px}
  .v3-root .v3-sl-tx{font-size:1em}
  .v3-root .v3-sl-figs{grid-template-columns:minmax(0,1fr);row-gap:.7em}
}

/* ========= Tablet and up (600) ========= */
@media (min-width:600px){
  .v3-root{
    --v3-sec:96px;
    --v3-gap:48px;
    --v3-h2:clamp(36px,calc(var(--v3-w) / 14.4),56px);
    --v3-sem:clamp(12px,calc(var(--v3-w) / 50),16px);
    --v3-figw:15em;
    --v3-slx:2.6em;
    --v3-slgap:2em;
  }
  .v3-root .v3-logo-img{width:113px;height:27px}
  .v3-root .v3-h1{font-size:calc(var(--v3-w) / 9.4);line-height:1.04;white-space:nowrap}
  .v3-root .v3-hero{padding-bottom:96px}
  .v3-root .v3-note{font-size:21px;line-height:28px}
  .v3-root .v3-note-b{margin-top:2px}
  .v3-root .v3-hero-cta{flex:0 0 auto;margin-top:20px}
  .v3-root .v3-hero-cta .v3-btn{width:auto}
  .v3-root.v3-ready .v3-hero-cta{margin-top:12px}
  .v3-root.v3-ready .v3-hero-more{flex:0 0 auto;margin:12px 0 0 28px}
  .v3-root .v3-h2{line-height:1.05}
  .v3-root .v3-lead{margin-top:24px;font-size:19px}

  /* the slide as a finished 16:9 board slide: fixed rows, so the questions can be aligned to the claims by CSS */
  .v3-root .v3-slide{display:grid;grid-template-rows:1em 2.76em 2.94em 18.3em 1.99em 1em;padding:2.7em var(--v3-slx) 2.5em}
  .v3-root .v3-sl-label{grid-row:1;font-size:max(11px,.72em);line-height:1.39}
  .v3-root .v3-sl-title{grid-row:2;align-self:end;margin-top:0;font-size:2.05em;line-height:1.15;letter-spacing:-.02em}
  .v3-root .v3-sl-body{grid-row:4;display:grid;grid-template-columns:minmax(0,1fr) var(--v3-figw);column-gap:var(--v3-slgap);margin-top:0}
  .v3-root .v3-sl-list{display:grid;grid-template-rows:repeat(4,minmax(0,1fr))}
  .v3-root .v3-sl-li{min-height:0;border-top:1px solid var(--v3-hair)}
  .v3-root .v3-sl-li:first-child{border-top-color:transparent}
  .v3-root .v3-sl-tx{font-size:1.15em}
  .v3-root .v3-sl-figs{grid-template-columns:minmax(0,1fr);grid-template-rows:8.6em 8.6em;row-gap:1.1em;column-gap:0;margin-top:0}
  .v3-root .v3-fig{padding:2em 1.7em 0}
  .v3-root .v3-fig-v{font-size:2.9em}
  .v3-root .v3-fig-row{height:1.1em;min-height:0;margin-top:.55em}
  .v3-root .v3-sl-foot{grid-row:6;align-self:end;margin-top:0;font-size:max(11px,.68em)}

  .v3-root .v3-term{display:grid;grid-template-columns:minmax(0,max(36%,216px)) minmax(0,1fr);column-gap:24px;align-items:baseline}
  .v3-root .v3-term-d{margin-top:0}
  .v3-root .v3-cta-row{flex-direction:row;align-items:center;gap:8px 32px}
  .v3-root .v3-cta-row .v3-btn{width:auto}
  .v3-root .v3-mail{margin-top:0}
  .v3-root .v3-closing .v3-h2{margin-top:32px}
  .v3-root .v3-foot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .v3-root .v3-foot-legal-l > p{flex:0 1 auto}

  /* cookie consent: a compact card in a bottom corner (left from 900px, right below that; see the next block) */
  .v3-root .v3-ck{left:24px;right:auto;bottom:24px;width:400px;max-width:calc(100% - 48px);max-height:calc(100vh - 48px);padding:20px 20px 16px}
  .v3-root .v3-ck-row{min-height:40px}
  .v3-root .v3-ck-btn{height:36px}
}

/* tablets: the stacked hero puts its Get access bottom left, so the card takes the bottom right corner; from 900 the
   hero's call to action sits right of the card, and the card goes back to the left */
@media (min-width:600px) and (max-width:899.98px){
  .v3-root .v3-ck{left:auto;right:24px}
}

/* tabs: four steps above one picture (needs v3.js) */
@media (min-width:600px) and (max-width:899.98px){
  .v3-root.v3-ready .v3-stage{position:relative}
  .v3-root.v3-ready .v3-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:20px}
  .v3-root.v3-ready .v3-step + .v3-step{margin-top:0}
  .v3-root.v3-ready .v3-step-body{position:relative;height:100%;padding:16px 0 28px;border-top:1px solid var(--v3-hair2)}
  .v3-root.v3-ready .v3-step-hit{display:block;position:absolute;top:-8px;left:-4px;right:-4px;bottom:8px;z-index:3;border-radius:8px}
  .v3-root.v3-ready .v3-step-prog{display:block;position:absolute;left:0;top:-1.5px;width:100%;height:2px;background:var(--v3-blue);transform:scaleX(0);transform-origin:0 50%}
  .v3-root.v3-ready .v3-step.v3-run .v3-step-prog{animation:v3-prog-x 5.5s linear forwards}
  .v3-root.v3-ready .v3-stage.v3-manual .v3-step.v3-on .v3-step-prog{transform:scaleX(1);transition:transform .4s var(--v3-out)}
  .v3-root.v3-ready .v3-step-t{font-size:22px;color:var(--v3-muted);transition:color .3s ease-out}
  .v3-root.v3-ready .v3-step-d{font-size:14px;line-height:1.4;color:var(--v3-muted);transition:color .3s ease-out}
  .v3-root.v3-ready .v3-step:hover .v3-step-t,.v3-root.v3-ready .v3-step.v3-on .v3-step-t{color:var(--v3-ink)}
  .v3-root.v3-ready .v3-step.v3-on .v3-step-n{color:var(--v3-blue)}
  .v3-root.v3-ready .v3-step.v3-on .v3-step-d{color:var(--v3-text)}
  .v3-root.v3-ready .v3-frame{display:block;aspect-ratio:1980/1341;border:1px solid var(--v3-hair);border-radius:var(--v3-r);background:#F4F5F9}
  .v3-root.v3-ready .v3-shot{position:absolute;left:0;bottom:0;z-index:1;width:100%;margin-top:0;opacity:0;visibility:hidden;transition:opacity 0s linear .5s,visibility 0s linear .5s}
  .v3-root.v3-ready .v3-step.v3-on .v3-shot{z-index:2;opacity:1;visibility:visible;transition:opacity .5s ease-out,visibility 0s linear 0s}
}

/* ========= Desktop (900): exhibit | gutter with the thread | margin ========= */
@media (min-width:900px){
  .v3-root{
    --v3-gut:clamp(40px,3.9vw,56px);
    --v3-mw:clamp(240px,22.5vw,320px);
    --v3-main:calc(var(--v3-w) - var(--v3-gut) - var(--v3-mw));
    /* the film is sized from the window height: nav 64 + 20 + headline + 24 + film + progress row 28 + 16 spare.
       Within 20px of the full main column it takes the full column (that uses up to 14 of the 16 spare), so the
       hero's gutter sits on the page's gutter in as many windows as possible. */
    --v3-fx:calc((100vh - 152px) * 1.4742);
    --v3-fw:min(var(--v3-main),max(min(var(--v3-main),520px),calc(var(--v3-fx) + clamp(0px,calc((var(--v3-fx) - var(--v3-main) + 20px) * 999),20px))));
    /* how far the hero's gutter then sits left of the page's gutter (0 wherever the film fills the main column) */
    --v3-jog:calc(var(--v3-main) - var(--v3-fw));
    /* the term sheet's title column; the footer's first column follows it */
    --v3-tcol:max(calc(var(--v3-main) * .36),216px);
    --v3-sec:clamp(96px,8.9vw,160px);
    --v3-gap:clamp(48px,4.45vw,64px);
    --v3-r:14px;
    --v3-h2:clamp(34px,calc(var(--v3-main) / 14.4),68px);
    --v3-sem:max(12px,calc(var(--v3-main) / 59));
    --v3-mark:124px;
  }
  .v3-root .v3-grid{display:grid;grid-template-columns:var(--v3-main) minmax(0,var(--v3-mw));column-gap:var(--v3-gut);align-items:start}

  .v3-root .v3-nav-list{display:flex;align-items:center;margin-left:36px}
  .v3-root .v3-nav-item{position:relative}
  .v3-root .v3-nav-link{display:inline-flex;align-items:center;height:36px;padding:0 12px;border-radius:8px;font-size:14px;line-height:1;font-weight:500;color:var(--v3-text);white-space:nowrap;transition:color .2s ease-out}
  .v3-root .v3-nav-link:hover,.v3-root .v3-has-menu.v3-open .v3-nav-trigger{color:var(--v3-ink)}
  .v3-root .v3-nav-trigger::after{content:"";width:6px;height:6px;margin:-3px 0 0 8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .25s var(--v3-out)}
  .v3-root .v3-has-menu.v3-open .v3-nav-trigger::after{transform:translateY(3px) rotate(225deg)}
  .v3-root .v3-nav-login{display:inline-flex;margin-right:8px}
  .v3-root .v3-menu-btn,.v3-root .v3-sheet{display:none}
  .v3-root .v3-menu{position:absolute;top:100%;left:-8px;padding-top:12px;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .2s ease-out,transform .25s var(--v3-out),visibility 0s linear .2s}
  .v3-root .v3-has-menu:hover .v3-menu,.v3-root .v3-has-menu:focus-within .v3-menu,.v3-root .v3-has-menu.v3-open .v3-menu,.v3-root .v3-menu:target{opacity:1;visibility:visible;transform:none;transition-delay:0s}
  /* with v3.js the panel follows one state only (.v3-open), so aria-expanded can never disagree with what is shown */
  .v3-root.v3-ready .v3-has-menu:not(.v3-open) .v3-menu{opacity:0;visibility:hidden;transform:translateY(-4px);transition-delay:0s,0s,.2s}
  .v3-root .v3-menu-in{width:328px;padding:8px;border:1px solid var(--v3-hair);border-radius:14px;background:#fff;box-shadow:0 16px 40px -24px rgba(14,22,48,.2)}
  .v3-root .v3-menu-item{display:block;padding:11px 12px 12px;border-radius:8px;transition:background-color .15s ease-out}
  .v3-root .v3-menu-item:hover,.v3-root .v3-menu-item:focus-visible{background:var(--v3-band)}
  .v3-root .v3-menu-name{font-size:15px;line-height:20px;font-weight:600;letter-spacing:-.008em;color:var(--v3-ink)}
  .v3-root .v3-menu-desc{margin-top:2px;font-size:13px;line-height:18px;color:var(--v3-muted)}

  /* a node on the gutter line and a short tick: how an annotation is tied to the thread */
  .v3-root .v3-pin{position:relative}
  .v3-root .v3-pin::before{content:"";position:absolute;left:calc(var(--v3-gut) / -2 - 3.5px);top:10.5px;width:7px;height:7px;border-radius:50%;background:var(--v3-blue)}
  .v3-root .v3-pin::after{content:"";position:absolute;left:calc(var(--v3-gut) / -2 + 3.5px);top:13.5px;width:calc(var(--v3-gut) / 2 - 11.5px);height:1px;background:var(--v3-blue);transform-origin:0 50%}
  .v3-root.v3-threaded .v3-pin::before{opacity:0;transition:opacity .4s ease-out}
  .v3-root.v3-threaded .v3-pin::after{transform:scaleX(0);transition:transform .5s var(--v3-out) .1s}
  .v3-root.v3-threaded .v3-pin.v3-lit::before{opacity:1}
  .v3-root.v3-threaded .v3-pin.v3-lit::after{transform:none}

  /* Under the film the thread steps across from the hero's gutter to the page's with one 45 degree chamfer.
     On short windows the white space below the hero deepens so that step has room (v3.js draws it). Past a
     240px step (windows under about 640px tall) the space is not deepened any further and the line is not joined. */
  .v3-root .v3-hero{padding:calc(var(--v3-navh) + 20px) 0 max(clamp(80px,8.9vw,128px),min(calc(var(--v3-jog) + 40px),calc((240px - var(--v3-jog)) * 999)))}
  .v3-root .v3-h1{font-size:calc(var(--v3-fw) / 8.98)}
  .v3-root .v3-hero-grid{display:grid;grid-template-columns:var(--v3-fw) minmax(0,1fr);column-gap:var(--v3-gut);align-items:start;margin-top:24px}
  .v3-root .v3-notes{grid-column:2;grid-row:1;max-width:var(--v3-mw);margin-top:-5px}
  .v3-root .v3-note{max-width:13.4em;font-size:20px;line-height:28px;letter-spacing:-.014em}
  .v3-root .v3-note-b{margin-top:14px}
  .v3-root .v3-film{grid-column:1;grid-row:1;margin-top:0}
  .v3-root.v3-ready .v3-film-row{grid-column:1;grid-row:2}
  .v3-root.v3-ready .v3-film-row::after{content:"";position:absolute;left:calc(100% + 8px);top:13.5px;width:calc(var(--v3-gut) / 2 - 11.5px);height:1px;background:var(--v3-blue);transform-origin:100% 50%}
  .v3-root.v3-ready.v3-threaded .v3-film-row::after{transform:scaleX(0);transition:transform .5s var(--v3-out) .1s}
  .v3-root.v3-ready.v3-threaded .v3-film-row.v3-lit::after{transform:none}
  .v3-root .v3-hero-cta,.v3-root.v3-ready .v3-hero-cta{grid-column:2;grid-row:1;align-self:end;margin-top:0}
  .v3-root.v3-ready .v3-hero-more{grid-column:2;grid-row:2;align-self:center;margin:0;height:28px}
  .v3-root .v3-more{min-height:0;height:28px;font-size:14px;line-height:28px;color:var(--v3-text)}

  .v3-root .v3-sec{padding:var(--v3-sec) 0}
  .v3-root .v3-head{max-width:var(--v3-main);padding-top:0}
  .v3-root .v3-lead{margin-top:24px;font-size:clamp(18px,1.45vw,21px)}

  .v3-root .v3-qs{display:grid;grid-template-rows:minmax(calc(var(--v3-sem) * 7.4),auto) minmax(calc(var(--v3-sem) * 9.7),auto) auto;align-content:start;margin-top:0;padding-top:calc(var(--v3-sem) * 8 - 10px)}
  .v3-root .v3-q{padding:0 0 12px}
  .v3-root .v3-q-key{left:calc(var(--v3-gut) / -2 - 10px)}
  .v3-root .v3-q-text{margin-top:3px;font-size:18px;line-height:24px}
  /* leaders drawn by v3.js: the key in the margin becomes a plain node, the number stays on the slide */
  .v3-root .v3-exhibit.v3-led .v3-q-key{left:calc(var(--v3-gut) / -2 - 3.5px);top:6.5px;width:7px;height:7px;font-size:0}
  .v3-root .v3-exhibit.v3-led .v3-q::after{content:"";position:absolute;left:calc(var(--v3-gut) / -2 + 3.5px);top:9.5px;width:calc(var(--v3-gut) / 2 - 11.5px);height:1px;background:var(--v3-blue)}
  .v3-root .v3-exhibit.v3-led .v3-leaders{display:block;position:absolute;top:0;left:0;width:100%;height:100%;z-index:3;pointer-events:none}

  /* stepper (needs v3.js): the steps are margin notes; the gutter line carries the progress */
  .v3-root.v3-ready .v3-stage{position:relative;display:grid;grid-template-columns:var(--v3-main) minmax(0,var(--v3-mw));column-gap:var(--v3-gut);align-items:start}
  .v3-root.v3-ready .v3-frame{display:block;grid-column:1;grid-row:1;aspect-ratio:1980/1341;border:1px solid var(--v3-hair);border-radius:var(--v3-r);background:#F4F5F9}
  .v3-root.v3-ready .v3-steps{grid-column:2;grid-row:1;align-self:stretch;display:flex;flex-direction:column}
  .v3-root.v3-ready .v3-step{flex:1 1 0;display:flex;flex-direction:column}
  .v3-root.v3-ready .v3-step + .v3-step{margin-top:0}
  .v3-root.v3-ready .v3-step-body{position:relative;flex:1 1 auto;padding-bottom:16px}
  .v3-root.v3-ready .v3-step-hit{display:block;position:absolute;top:-6px;left:calc(var(--v3-gut) / -2 - 12px);right:0;bottom:6px;z-index:3;border-radius:8px}
  .v3-root.v3-ready .v3-step-body::before{content:"";position:absolute;left:calc(var(--v3-gut) / -2 - 4.5px);top:5.5px;width:9px;height:9px;border:1.5px solid var(--v3-blue);border-radius:50%;background:#fff;transition:background-color .3s ease-out,opacity .4s ease-out}
  .v3-root.v3-ready .v3-step.v3-on .v3-step-body::before{background:var(--v3-blue)}
  .v3-root.v3-ready.v3-threaded .v3-step-body::before{opacity:0}
  .v3-root.v3-ready.v3-threaded .v3-step-body.v3-lit::before{opacity:1}
  /* step to source: a short rule from the active node across the gutter into the edge of the picture */
  .v3-root.v3-ready .v3-step-body::after{content:"";position:absolute;left:calc(var(--v3-gut) * -1);top:9.5px;width:calc(var(--v3-gut) / 2 - 4.5px);height:1px;background:var(--v3-blue);transform:scaleX(0);transform-origin:100% 50%;transition:transform .4s var(--v3-out)}
  .v3-root.v3-ready .v3-step.v3-on .v3-step-body::after{transform:none}
  /* 5.5 s of progress travel down the gutter line from the active node to the next one */
  .v3-root.v3-ready .v3-step-prog{display:block;position:absolute;left:calc(var(--v3-gut) / -2 - 1px);top:10px;width:2px;height:100%;background:var(--v3-blue);transform:scaleY(0);transform-origin:50% 0}
  .v3-root.v3-ready .v3-step.v3-run .v3-step-prog{animation:v3-prog-y 5.5s linear forwards}
  /* the last step has no next node: its run ends level with the bottom edge of the picture */
  .v3-root.v3-ready .v3-step:last-child .v3-step-prog{height:calc(100% - 10px)}
  .v3-root.v3-ready .v3-step-n{transition:color .3s ease-out}
  .v3-root.v3-ready .v3-step-t{margin-top:6px;font-size:clamp(24px,1.95vw,28px);color:var(--v3-muted);transition:color .3s ease-out}
  .v3-root.v3-ready .v3-step-d{font-size:clamp(15px,1.15vw,16px);color:var(--v3-muted);transition:color .3s ease-out}
  .v3-root.v3-ready .v3-step:hover .v3-step-t,.v3-root.v3-ready .v3-step.v3-on .v3-step-t{color:var(--v3-ink)}
  .v3-root.v3-ready .v3-step.v3-on .v3-step-n{color:var(--v3-blue)}
  .v3-root.v3-ready .v3-step.v3-on .v3-step-d{color:var(--v3-text)}
  .v3-root.v3-ready .v3-shot{position:absolute;top:0;left:0;z-index:1;width:var(--v3-main);margin-top:0;opacity:0;visibility:hidden;transition:opacity 0s linear .5s,visibility 0s linear .5s}
  .v3-root.v3-ready .v3-step.v3-on .v3-shot{z-index:2;opacity:1;visibility:visible;transition:opacity .5s ease-out,visibility 0s linear 0s}
  .v3-root .v3-cap{max-width:var(--v3-main)}
  /* without v3.js the pictures stay stacked; keep them to the width of the main column */
  .v3-root .v3-step{max-width:var(--v3-main)}
  .v3-root.v3-ready .v3-step{max-width:none}

  .v3-root .v3-term{grid-column:1;grid-template-columns:minmax(0,var(--v3-tcol)) minmax(0,1fr);column-gap:32px;padding:26px 0 27px;border-top:1px solid var(--v3-hair2)}
  .v3-root .v3-term:nth-child(4){border-bottom:1px solid var(--v3-hair2)}
  .v3-root .v3-term-t{line-height:28px}
  .v3-root .v3-term-d{max-width:34em;font-size:17px;line-height:26px}
  .v3-root .v3-proof{grid-column:2;margin-top:27px}
  .v3-root .v3-proof-a{grid-row:1}
  .v3-root .v3-proof-b{grid-row:4}

  .v3-root .v3-closing{padding:var(--v3-sec) 0}
  .v3-root .v3-closing .v3-h2{margin-top:32px}
  .v3-root .v3-cta-row{margin-top:48px}

  .v3-root .v3-foot{padding:64px 0 32px}
  /* "Product" starts on the same axis as the term-sheet sentences above (the title column plus the gap);
     the Contact column starts on the margin column, like every annotation above it */
  .v3-root .v3-foot-grid{grid-template-columns:var(--v3-tcol) repeat(2,calc((var(--v3-main) - var(--v3-tcol) - 64px) / 2)) minmax(0,1fr);column-gap:32px;row-gap:0}
  .v3-root .v3-foot-brand{grid-column:auto}
  .v3-root .v3-foot-contact{padding-left:calc(var(--v3-gut) - 32px)}
  .v3-root .v3-foot-a{line-height:22px;padding:3px 0}
  .v3-root .v3-foot-legal{margin-top:64px}
}

/* landscape windows taller than the hero: it takes the whole first screen (up to 1160px) with its block centred,
   and the band starts at the fold. Nothing changes where the hero is already as tall as the window, which is
   every laptop size from 1280x720 to 1440x900. */
@media (min-width:900px) and (orientation:landscape){
  .v3-root .v3-hero{display:flex;flex-direction:column;justify-content:center;min-height:min(100vh,1160px)}
}

/* from 1100: room for the finished slide at full size */
@media (min-width:1100px){
  .v3-root{--v3-figw:19em;--v3-slx:3.4em;--v3-slgap:3.2em}
}
@media (min-width:1280px){
  .v3-root .v3-note{font-size:22px}
  .v3-root .v3-q-text{font-size:20px;line-height:26px}
}
@media (min-width:1440px){
  .v3-root .v3-note{max-width:12.6em;font-size:24px;line-height:30px;letter-spacing:-.016em}
  .v3-root .v3-note.v3-pin::before{top:11.5px}
  .v3-root .v3-note.v3-pin::after{top:14.5px}
}

/* ========= Reduced motion: everything in its final state ========= */
@media (prefers-reduced-motion:reduce){
  html.v3-js .v3-root .v3-rv{opacity:1;transform:none;transition:none;animation:none}
  .v3-root.v3-ready .v3-q{transition:none}
  .v3-root.v3-threaded .v3-pin::before,.v3-root.v3-threaded .v3-pin::after,.v3-root.v3-ready.v3-threaded .v3-film-row::after{transition:none}
  .v3-root .v3-t-b,.v3-root .v3-t-lead,.v3-root .v3-film-fill,.v3-root .v3-btn,.v3-root .v3-menu,.v3-root .v3-sheet,.v3-root .v3-nav-trigger::after{transition:none}
  .v3-root.v3-ready .v3-shot,.v3-root.v3-ready .v3-step.v3-on .v3-shot,.v3-root.v3-ready .v3-step-body::before,.v3-root.v3-ready .v3-step-body::after,.v3-root.v3-ready .v3-step-prog{transition:none}
  .v3-root.v3-ready .v3-step.v3-run .v3-step-prog{animation:none}
  .v3-root .v3-ck{animation:none}
  .v3-root .v3-ck-track,.v3-root .v3-ck-knob,.v3-root .v3-ck-btn{transition:none}
  .v3-root .v3-ck-btn:active{transform:none}
  body .calendly-overlay .calendly-popup-close{transition:none}
}

/* Windows contrast themes: everything drawn with a background colour would vanish, so the parts that carry
   meaning keep their own colours, and the button gets an outline. */
@media (forced-colors:active){
  .v3-root .v3-stop,.v3-root .v3-mk,.v3-root .v3-q-key,.v3-root .v3-film-fill,.v3-root .v3-film-toggle::before,.v3-root .v3-menu-btn::after,.v3-root .v3-pin::before,.v3-root.v3-ready .v3-step-body::before,.v3-root.v3-ready .v3-step-prog{forced-color-adjust:none}
  .v3-root .v3-btn{border:1px solid ButtonText}
  .v3-root .v3-film-bar{background:GrayText}
  .v3-root.v3-ready .v3-step.v3-on .v3-step-t{text-decoration:underline}
  /* cookie switches: an outlined track, a solid knob, the highlight colour when on */
  .v3-root .v3-ck-track{border:1px solid CanvasText}
  .v3-root .v3-ck-knob{forced-color-adjust:none;background:CanvasText;box-shadow:none}
  .v3-root .v3-ck-input:checked~.v3-ck-track{forced-color-adjust:none;background:Highlight}
  .v3-root .v3-ck-input:checked~.v3-ck-knob{background:HighlightText}
  .v3-root .v3-ck-btn{border-color:ButtonText}
}
