
/* Scroll-led product presentation */
body{--ease:cubic-bezier(.22,1,.36,1)}nav{position:sticky;top:0;z-index:50;max-width:none;height:76px;padding:0 max(6%,calc((100% - 1126px)/2));background:rgba(255,255,255,.88);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transition:box-shadow 0.6s}body.scrolled nav{box-shadow:0 1px 15px #17253608}.hero:not(.product-hero){grid-template-columns:1fr;text-align:center;padding-top:92px;padding-bottom:70px;gap:45px;max-width:1280px}.hero:not(.product-hero) .eyebrow{justify-content:center}.hero:not(.product-hero) h1{font-size:clamp(50px,7.5vw,104px);letter-spacing:-5px;line-height:1.02;max-width:1000px;margin:25px auto}.hero:not(.product-hero) h1 br:first-of-type{display:none}.hero:not(.product-hero) h1 span{background:linear-gradient(100deg,#64b469,#379ac1 55%,#4080bf);-webkit-background-clip:text;background-clip:text;color:transparent}.hero:not(.product-hero) p{max-width:600px;margin:24px auto 28px;font-size:18px}.hero:not(.product-hero) .visual{width:min(100%,660px);height:470px;margin:0 auto;background:radial-gradient(ellipse at center,#edf5fc,white 70%);border:0;overflow:visible}.hero .visual .flow{left:6%;top:25px;width:310px}.hero .visual .pulse{right:2%;top:172px;width:280px}.hero .visual .dots{left:12%;bottom:12px;width:265px}.hero .visual .mock{box-shadow:0 20px 55px #263a5010}.hero .visual .orbit{left:23%;top:12%;width:355px;height:355px}.visual-label{bottom:-8px}.scroll-cue{display:flex;justify-content:center;gap:9px;align-items:center;font-size:10px;color:#9aa5ae;margin-top:28px;letter-spacing:1px}.scroll-cue span{font-size:18px}.section{padding-top:105px;padding-bottom:105px}.section h2{font-size:clamp(33px,4.5vw,60px);letter-spacing:-2.4px}.card{padding:35px;border-radius:19px}.card .icon{width:61px;height:61px;border-radius:16px}.card h3{font-size:36px}.showcase,.workflow,.security-panel,.cta{border-radius:23px}.platform-layout h2{font-size:clamp(36px,4.8vw,64px)}.platform-layout figure{transform:translateY(var(--device-y,0px)) scale(var(--device-scale,1));transform-origin:center}.reveal{opacity:1;transform:none}.motion-enabled .reveal:not(.is-visible){opacity:0;transform:translateY(38px)}.motion-enabled .reveal{transition:opacity 1.8s var(--ease),transform 1.8s var(--ease);transition-delay:var(--reveal-delay,0ms)}.motion-enabled .hero>div:first-child{animation:hero-appear 2.2s var(--ease) both}@keyframes hero-appear{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}.scroll-story{height:240vh;min-height:1600px;position:relative;background:#f7f9fb;margin:10px 0 0}.story-pin{position:sticky;top:76px;min-height:600px;height:calc(100svh - 76px);max-width:1280px;margin:auto;display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;padding:45px 6%;gap:50px;overflow:hidden}.story-copy h2{font-size:clamp(36px,4.6vw,64px);line-height:1.1;letter-spacing:-2.5px;margin:22px 0}.story-copy p{max-width:350px}.story-stage{height:410px;position:relative;perspective:1000px}.story-product{position:absolute;inset:0;background:white;border:1px solid #e6ebf1;border-radius:20px;padding:32px;box-shadow:0 24px 65px #1e354d0c;transform-origin:50% 80%;opacity:0;pointer-events:none}.story-product:first-child{opacity:1}.story-product a{pointer-events:auto}.story-product header{display:flex;gap:13px;align-items:center;font-size:24px;font-weight:550}.story-product header img{width:48px;height:48px;border-radius:13px}.story-product h3{font-size:31px;line-height:1.2;letter-spacing:-1px;margin:30px 0 20px}.story-product ul{list-style:none;padding:0;margin:0 0 22px}.story-product li{border-top:1px solid #edf0f4;padding:13px 0;font-size:13px;color:#7d8a96}.story-product li:before{content:'✓';margin-right:10px;color:var(--story-color)}.story-product .textlink{color:var(--story-color)}.story-progress{display:flex;gap:8px;margin-top:30px;max-width:220px}.story-progress span{height:3px;background:#dce4ec;flex:1;border-radius:3px;position:relative;overflow:hidden}.story-progress span:after{content:'';position:absolute;inset:0;background:#19232e;transform:scaleX(var(--fill,0));transform-origin:left}.story-count{font-size:11px;margin-top:16px;color:#82909d;letter-spacing:1px}.story-help{font-size:10px;color:#98a5b0;margin-top:12px}.motion-off .scroll-story{height:auto;min-height:0}.motion-off .story-pin{position:relative;top:0;height:auto;max-height:none;display:block;overflow:visible}.motion-off .story-stage{height:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:35px}.motion-off .story-product{position:relative;opacity:1!important;transform:none!important;padding:25px}.motion-off .story-copy p{max-width:600px}.motion-off .story-product h3{font-size:24px}.motion-off .story-progress,.motion-off .story-count,.motion-off .story-help{display:none}.motion-off .reveal{opacity:1!important;transform:none!important;transition:none!important}.motion-off .platform-layout figure{transform:none!important}
@media(max-width:800px){nav{height:70px}.hero:not(.product-hero){padding-top:60px}.hero:not(.product-hero) h1{letter-spacing:-2.7px}.hero:not(.product-hero) h1 br:first-of-type{display:block}.hero:not(.product-hero) p{font-size:16px}.hero:not(.product-hero) .visual{height:440px;overflow:hidden}.hero .visual .flow{left:0;width:270px}.hero .visual .pulse{right:0;width:235px;top:178px}.hero .visual .dots{left:3%;width:235px;bottom:15px}.section{padding-top:65px;padding-bottom:65px}.section h2{letter-spacing:-1.4px}.scroll-story{height:220vh;min-height:1300px}.story-pin{top:70px;height:calc(100svh - 70px);min-height:630px;grid-template-columns:1fr;gap:12px;padding:30px 6%;align-content:center}.story-copy h2{font-size:37px;margin:14px 0}.story-copy p{font-size:13px;max-width:100%;margin:10px 0}.story-progress{margin-top:15px}.story-count{margin-top:10px}.story-stage{height:330px;margin-top:12px}.story-product{padding:23px}.story-product header{font-size:21px}.story-product header img{width:37px;height:37px}.story-product h3{font-size:25px;margin:20px 0 14px}.story-product li{padding:10px 0;font-size:12px}.story-product ul{margin-bottom:14px}.story-help{display:none}.motion-off .story-stage{grid-template-columns:1fr}.visual-label{bottom:0}}@media(max-height:700px) and (min-width:801px){.story-pin{min-height:500px}.story-stage{height:380px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1!important;transform:none!important}.scroll-story{height:auto;min-height:0}.story-pin{position:relative;top:0;height:auto;display:block;overflow:visible}.story-stage{height:auto;display:grid;gap:20px;margin-top:30px}.story-product{position:relative;opacity:1!important;transform:none!important}.platform-layout figure{transform:none!important}}

/* Application overview: all three applications remain visible. */
.story-overview{background:#f7f9fb;padding:70px 6%;margin:0}.story-overview .story-pin{position:relative;top:0;display:block;height:auto;min-height:0;max-width:1126px;padding:0;overflow:visible}.story-overview .story-copy{text-align:center;max-width:690px;margin:0 auto 35px}.story-overview .story-copy .eyebrow{justify-content:center}.story-overview .story-copy h2{font-size:clamp(34px,4.8vw,60px);line-height:1.08;margin:18px 0}.story-overview .story-copy h2 br{display:none}.story-overview .story-copy p{max-width:540px;margin:0 auto;font-size:15px}.story-overview .story-stage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;height:auto;margin:0;perspective:none}.story-overview .story-product{position:relative;inset:auto;opacity:1;visibility:visible;pointer-events:auto;padding:27px;border-radius:18px;box-shadow:0 10px 30px #1e354d06;display:flex;flex-direction:column;min-width:0}.story-overview .story-product h3{font-size:26px;min-height:64px;margin:24px 0 16px}.story-overview .story-product header{font-size:23px}.story-overview .story-product ul{margin-bottom:12px}.story-overview .story-product li{font-size:12px;padding:12px 0}.story-overview .story-product .textlink{margin-top:auto;padding-top:17px}.mini-preview{height:102px;background:#f8fafc;border:1px solid #edf1f4;border-radius:10px;padding:15px;margin:0 0 20px}.flow-preview>div{display:flex;align-items:center;gap:8px;font-size:10px;margin-bottom:9px}.flow-preview span{color:#64b469}.flow-preview i{width:70px;max-width:35%;height:5px;background:#d9e5dd;border-radius:5px}.flow-preview b{font-weight:400;margin-left:auto;font-size:8px;color:#7a9280}.pulse-preview{display:flex;align-items:flex-end;gap:9px;padding:15px 18px}.pulse-preview i{flex:1;border-radius:3px 3px 0 0;background:#b4d1e3}.pulse-preview i:nth-last-child(-n+2){background:#379ac1}.dots-preview{display:flex;gap:7px;align-items:center;justify-content:center}.dots-preview span{font-size:9px;color:#b45424;background:#fff0e6;padding:9px 6px;border-radius:5px}.dots-preview b{font-size:10px;color:#de723c}.motion-off .story-overview .story-product h3{font-size:26px}@media(max-width:767px){.story-overview{padding:48px 6%}.story-overview .story-stage{grid-template-columns:1fr}.story-overview .story-product{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;padding:25px}.story-overview .story-product header,.story-overview .story-product h3,.story-overview .mini-preview{grid-column:1}.story-overview .story-product h3{min-height:0;font-size:25px;margin:18px 0}.story-overview .mini-preview{margin-bottom:0}.story-overview .story-product ul{grid-column:2;grid-row:1/span 3;align-self:center;margin:0}.story-overview .story-product .textlink{grid-column:2;align-self:end}.story-overview .story-copy{margin-bottom:26px}.story-overview .story-copy h2{font-size:38px}}@media(max-width:520px){.story-overview .story-product{display:flex;padding:24px}.story-overview .mini-preview{margin-bottom:18px}.story-overview .story-product ul{margin-bottom:18px}.story-overview .story-copy h2{font-size:34px}.story-overview .story-copy p{font-size:13px}}

/* Unified application descriptions with the original overview graphics. */
.story-identity{line-height:1.2}.story-tagline{display:block;font-size:9px;font-weight:400;letter-spacing:.8px;color:#8d9aa8;margin-top:6px}.story-overview .story-description{font-size:13px;line-height:1.85;margin:0 0 20px}
@media(min-width:521px) and (max-width:767px){.story-overview .story-product{grid-template-areas:"identity features" "headline features" "description features" "preview action"}.story-overview .story-product header{grid-area:identity}.story-overview .story-product h3{grid-area:headline}.story-overview .mini-preview{grid-area:preview;align-self:start}.story-overview .story-description{grid-area:description;align-self:start;margin-bottom:20px}.story-overview .story-product ul{grid-area:features}.story-overview .story-product .textlink{grid-area:action;margin-top:15px}}

/* Standalone brand statement between the applications and ecosystem. */
.motto-section{max-width:1280px;margin:0 auto;padding:90px 6% 100px;text-align:center;background:#fff}
.motto-section h2{margin:0;font-size:clamp(30px,5.4vw,76px);line-height:1.16;font-weight:600;letter-spacing:-.045em}
.motto-section h2 span{background:linear-gradient(100deg,#64b469,#379ac1 55%,#4080bf);-webkit-background-clip:text;background-clip:text;color:transparent}
@media(max-width:800px){.motto-section{padding-top:65px;padding-bottom:72px}.motto-section h2{line-height:1.22}}

/* Clear, touch-friendly calls to explore each application. */
.story-overview .story-product .textlink,.demo .textlink{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:48px;padding:14px 18px;border:1px solid #19232e;border-radius:10px;background:#19232e;color:#fff;font-size:13px;font-weight:600;line-height:1.4;box-shadow:0 3px 8px #19232e0d;transition:background 0.4s,border-color 0.4s,box-shadow 0.4s,transform 0.4s}
.story-overview .story-product .textlink span,.demo .textlink span{font-size:18px;line-height:1}
.story-overview .story-product .textlink:hover,.demo .textlink:hover{background:#304959;border-color:#304959;box-shadow:0 7px 16px #19232e20;transform:translateY(-2px)}
.story-overview .story-product .textlink:active,.demo .textlink:active{transform:translateY(0);box-shadow:none}
.story-overview .story-product .textlink:focus-visible,.demo .textlink:focus-visible{outline:3px solid #3b6cef;outline-offset:4px}

/* Give the main slogans a short, staged entrance as they come into view. */
.motion-enabled .phrase-emphasis.is-visible{animation:phrase-arrive 2s var(--ease) both}
.motion-enabled .phrase-emphasis.is-visible>span{display:inline-block;max-width:100%;vertical-align:top;animation:phrase-accent 2.3s var(--ease) 0.36s both}
.motion-enabled .motto-section h2.is-visible{animation-duration:2.3s}
.motion-enabled .motto-section h2.is-visible>span{background-size:210% 100%;animation:phrase-accent 2.4s var(--ease) 0.6s both,phrase-color-sweep 4.4s ease-out 0.6s both}
@keyframes phrase-arrive{from{opacity:0;transform:translateY(22px) scale(.985);filter:blur(5px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
@keyframes phrase-accent{from{opacity:0;transform:translateY(12px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes phrase-color-sweep{from{background-position:100% 50%;background-size:210% 100%}to{background-position:0% 50%;background-size:100% 100%}}
.motion-off .phrase-emphasis,.motion-off .phrase-emphasis>span{animation:none!important;filter:none!important;opacity:1!important;transform:none!important}
@media(prefers-reduced-motion:reduce){.phrase-emphasis,.phrase-emphasis>span{animation:none!important;filter:none!important;opacity:1!important;transform:none!important}}

/* Keep the three application cards together on iPad in either orientation. */
@media(min-width:768px) and (max-width:1100px){
  .story-overview{padding:48px 4%}
  .story-overview .story-stage{gap:14px}
  .story-overview .story-copy{margin-bottom:28px}
  .story-overview .story-copy h2{font-size:38px}
  .story-overview .story-product{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 3.6em 1fr 84px auto auto;gap:16px;padding:18px;border-radius:16px;font-size:22px}
  .story-overview .story-product header{font-size:21px;gap:10px}
  .story-overview .story-product header img{width:38px;height:38px;border-radius:10px}
  .story-overview .story-tagline{font-size:8px;letter-spacing:.4px}
  .story-overview .story-product h3,.motion-off .story-overview .story-product h3{font-size:22px;line-height:1.2;min-height:0;margin:0;letter-spacing:-.6px}
  .story-overview .story-description{font-size:13px;line-height:1.75;margin:0}
  .story-overview .mini-preview{height:84px;margin:0;padding:12px 10px;min-width:0}
  .story-overview .pulse-preview{gap:6px}
  .story-overview .dots-preview{gap:3px;padding:10px 5px}
  .story-overview .dots-preview span{font-size:8px;padding:8px 3px}
  .story-overview .dots-preview b{font-size:9px}
  .story-overview .story-product ul{margin:0}
  .story-overview .story-product li{font-size:12px;line-height:1.5;padding:10px 0}
  .story-overview .story-product li:before{margin-right:6px}
  .story-overview .story-product .textlink{min-height:46px;margin:0;padding:12px 8px;font-size:12px;gap:8px}
}

/* Let scroll-driven illustrations ease into their position at the calmer pace. */
.motion-enabled .graphic-window,.motion-enabled .platform-layout figure{transition:transform 1.4s cubic-bezier(.22,.61,.36,1)}
.motion-off .graphic-window{transition:none!important}
@media(prefers-reduced-motion:reduce){.graphic-window,.platform-layout figure{transition:none!important}}

/* Share content rows so headings sit directly above aligned descriptions. */
@media(min-width:768px){
  .story-overview .story-product{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:subgrid;grid-row:span 6;row-gap:16px}
  .story-overview .story-product h3{min-height:0;margin:0;align-self:start}
  .story-overview .story-description{margin:0}
  .story-overview .mini-preview{margin:0}
  .story-overview .story-product ul{margin:0}
  .story-overview .story-product .textlink{margin:0}
}

/* Blur the noise as the visitor continues down the page. */
.motto-noise{font-style:normal;display:inline-block;color:#7a838c}
.motion-enabled .motto-noise{filter:blur(var(--noise-blur,0px));opacity:var(--noise-opacity,1)}
.motion-off .motto-noise{opacity:1}
@media(prefers-reduced-motion:reduce){.motto-noise{opacity:1!important}}

/* Keep the outcome at a constant size with its own text gradient. */
.motto-team{display:inline-block;font-weight:inherit;color:transparent;background:linear-gradient(100deg,#64b469,#379ac1 55%,#4080bf);background-clip:text;-webkit-background-clip:text;transform-origin:center}


.motion-off .motto-noise{filter:none}
.motion-off .motto-team{transform:none}
@media(prefers-reduced-motion:reduce){.motto-noise{filter:none!important}.motto-team{transform:none!important}}

.motto-section h2>.motto-outcome{background:none;color:inherit;background-clip:initial;-webkit-background-clip:initial}

/* Refined home typography, scaling naturally between mobile and desktop. */
.hero:not(.product-hero) h1{font-weight:600}
.motto-noise{font-size:clamp(28px,4.690432vw,66px);font-weight:700}
.motto-team{font-size:clamp(34px,5.628518vw,74px)}

/* Slightly stronger group entrance; individual windows retain subtle scroll drift. */
.motion-enabled .app-graphic.reveal{transition-duration:2.2s}
.motion-enabled .app-graphic.reveal:not(.is-visible){transform:translateY(64px)}

/* Product miniatures build in sequence as each card enters the viewport. */
.pulse-preview{position:relative}
.pulse-preview>i{transform-origin:bottom}
.mini-trend{position:absolute;inset:12px 18px;width:calc(100% - 36px);height:calc(100% - 24px);overflow:visible;fill:none;stroke:#24698d;stroke-width:2;pointer-events:none}
.mini-trend circle{fill:#fff}
.motion-enabled .story-product.is-visible .pulse-preview>i{animation:mini-bar-rise 1.6s var(--ease) both;animation-delay:calc(.3s + var(--bar)*.12s)}
.pulse-preview>i:nth-child(1){--bar:0}.pulse-preview>i:nth-child(2){--bar:1}.pulse-preview>i:nth-child(3){--bar:2}.pulse-preview>i:nth-child(4){--bar:3}.pulse-preview>i:nth-child(5){--bar:4}.pulse-preview>i:nth-child(6){--bar:5}.pulse-preview>i:nth-child(7){--bar:6}
.motion-enabled .story-product.is-visible .mini-trend path{stroke-dasharray:1;animation:mini-line-draw 1.8s ease-in-out 2.7s both}
.motion-enabled .story-product.is-visible .mini-trend circle{animation:mini-step-in .7s ease 4.2s both}
.motion-enabled .story-product.is-visible .flow-preview>div{animation:mini-step-in 1.2s var(--ease) both;animation-delay:calc(.5s + var(--row)*.8s)}
.flow-preview>div:nth-child(1){--row:0}.flow-preview>div:nth-child(2){--row:1}.flow-preview>div:nth-child(3){--row:2}
.motion-enabled .story-product.is-visible .flow-preview i{transform-origin:left;animation:mini-task-fill 1.6s var(--ease) both;animation-delay:calc(.8s + var(--row)*.8s)}


@keyframes mini-bar-rise{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes mini-line-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes mini-step-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes mini-task-fill{from{transform:scaleX(.2)}to{transform:scaleX(1)}}

/* The three colored devices move together into the final connected composition. */
.device-assembly{display:block;width:100%;height:auto;overflow:visible}
.device-part{transform-box:fill-box;transform-origin:center}
.motion-enabled .device-figure.is-visible .device-desktop{animation:device-desktop-join 3s var(--ease) .2s both}
.motion-enabled .device-figure.is-visible .device-tablet{animation:device-tablet-join 3s var(--ease) .5s both}
.motion-enabled .device-figure.is-visible .device-mobile{animation:device-mobile-join 3s var(--ease) .8s both}
@keyframes device-desktop-join{from{transform:translateY(-18px);opacity:.4}to{transform:none;opacity:1}}
@keyframes device-tablet-join{from{transform:translate(-44px,22px);opacity:.25}to{transform:none;opacity:1}}
@keyframes device-mobile-join{from{transform:translate(44px,22px);opacity:.25}to{transform:none;opacity:1}}
.motion-off .device-part,.motion-off .mini-preview *{animation:none!important}
@media(prefers-reduced-motion:reduce){.device-part,.mini-preview *{animation:none!important}}

/* Pulse miniature matches the main finance chart, with explicit SVG colors. */
.story-overview .mini-preview{height:110px}
.story-overview .pulse-preview{display:block;padding:8px 10px}
.pulse-chart-svg{display:block;width:100%;height:100%;overflow:visible}
.pulse-chart-bar{transform-box:fill-box;transform-origin:center bottom}
.motion-enabled .story-product.is-visible .pulse-chart-bar{animation:pulse-bar-grow 1.6s var(--ease) both;animation-delay:calc(.3s + var(--bar)*.14s)}
.motion-enabled .story-product.is-visible .pulse-chart-line{stroke-dasharray:1;animation:pulse-curve-draw 1.8s ease-in-out 2.7s both}
.motion-enabled .story-product.is-visible .pulse-chart-tip{animation:mini-step-in .6s ease 4.2s both}
@keyframes pulse-bar-grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes pulse-curve-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}

/* Dots: one central opportunity branches out to related people and property. */
.story-overview .dots-preview{display:block;padding:8px 10px}
.dots-network{display:block;width:100%;height:100%;overflow:visible}
.dots-network-hub,.dots-network-node{transform-box:fill-box;transform-origin:center}
.motion-enabled .story-product.is-visible .dots-network-hub{animation:mini-step-in 1s var(--ease) .3s both}
.motion-enabled .story-product.is-visible .dots-network-link{stroke-dasharray:1;animation:dots-network-connect .9s ease-in-out both;animation-delay:calc(.9s + var(--branch)*.5s)}
.motion-enabled .story-product.is-visible .dots-network-node{animation:mini-step-in .9s var(--ease) both;animation-delay:calc(1.5s + var(--branch)*.5s)}
@keyframes dots-network-connect{from{stroke-dashoffset:1;opacity:0}to{stroke-dashoffset:0;opacity:1}}

/* Four evenly spaced tasks fill the Flow preview. */
.story-overview .flow-preview{display:flex;flex-direction:column;justify-content:space-between}
.story-overview .flow-preview>div{margin-bottom:0}
.flow-preview>div:nth-child(4){--row:3}
