1<!doctype html><html lang="en" class="cove"><head> 2 <meta charset="utf-8"> 3 <title>Unified Commercial Property Management Software | Cove</title> 4 5 <link rel="shortcut icon" href="https://cove.is/hubfs/Favicon-01.png"> 6 7 8 <meta name="description" content="Run your building from one place with Coveâs Commercial Property Management Software â seamless operations and tenant experience in one platform."> 9 10 11 12 13 14 15 16 17 18 19
19<script src="https://code.jquery.com/jquery-3.7.0.js" integrity="sha256-JlqSTELeR4TLqP0OG9dxM7yDPqX1ox/HfgiSLBj8+kM=" crossorigin="anonymous"></script>
19 20 21 22 <meta name="viewport" content="width=device-width, initial-scale=1"> 23 24 25 <meta property="og:description" content="Run your building from one place with Coveâs Commercial Property Management Software â seamless operations and tenant experience in one platform."> 26 <meta property="og:title" content="Unified Commercial Property Management Software | Cove"> 27 <meta name="twitter:description" content="Run your building from one place with Coveâs Commercial Property Management Software â seamless operations and tenant experience in one platform."> 28 <meta name="twitter:title" content="Unified Commercial Property Management Software | Cove"> 29 30 31 32 33 <style> 34a.cta_button{-moz-box-sizing:content-box !important;-webkit-box-sizing:content-box !important;box-sizing:content-box !important;vertical-align:middle}.hs-breadcrumb-menu{list-style-type:none;margin:0px 0px 0px 0px;padding:0px 0px 0px 0px}.hs-breadcrumb-menu-item{float:left;padding:10px 0px 10px 10px}.hs-breadcrumb-menu-divider:before{content:'âº';padding-left:10px}.hs-featured-image-link{border:0}.hs-featured-image{float:right;margin:0 0 20px 20px;max-width:50%}@media (max-width: 568px){.hs-featured-image{float:none;margin:0;width:100%;max-width:100%}}.hs-screen-reader-text{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px} 35</style> 36 37<link rel="stylesheet" href="https://cove.is/hubfs/hub_generated/template_assets/1/187406797743/1784748286877/template_main.min.css"> 38<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css"> 39<link rel="stylesheet" href="https://cove.is/hubfs/hub_generated/template_assets/1/187426391356/1784748285838/template_theme-overrides.min.css"> 40<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inter:regular,500,600,700%7CSora:regular,500,600"> 41<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Oswald:wght@200;300;400;500;600;700"> 42<link rel="stylesheet" href="https://cove.is/hubfs/hub_generated/template_assets/1/187426190621/1784748291870/template_child.min.css"> 43<link rel="stylesheet" href="https://cove.is/hubfs/hub_generated/module_assets/1/215778434909/1783691999062/module_HP_Site_Page_-_June_2026.min.css"> 44<link rel="stylesheet" href="https://cove.is/hubfs/hub_generated/module_assets/1/187406764215/1742187094760/module_footer-section.min.css"> 45 46 <style> 47 @import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.0.1/css/font-awesome.css'); 48 49 50 .footer.footer_section__2 .footer-section-1 { 51 padding-top:80px; 52 padding-bottom:80px; 53 } 54 .footer.footer_section__2 .footer-section-1 .flex_row { 55 border-top: px solid ; 56 } 57 58 59 60 61 62 @media(max-width:767px){ 63 .footer.footer_section__2 .footer-section-1 { 64 padding-top:48px; 65 padding-bottom:48px; 66 } 67 } 68 69 70 71 .footer.footer_section__2 .footer-section-2 { 72 padding-top:0px; 73 padding-bottom:80px; 74 } 75 .footer.footer_section__2 .footer-section-2 .flex_row { 76 border-top: 0px solid rgba(0, 0, 0, 1.0); 77 } 78 79 80 81 82 83 @media(max-width:767px){ 84 .footer.footer_section__2 .footer-section-2 { 85 padding-top:0px; 86 padding-bottom:48px; 87 } 88 } 89 90 91 92 93 94 95 96 97 98 99 100 101 .footer.footer_section__2 .footer-section-1 .col-section.num1 .footer-row.row1{ 102 padding-top: 0px; 103 padding-bottom:0px; 104 } 105 106 107 108 109 110 111 112 113 114 115 116 .footer.footer_section__2 .footer-section-1 .num1 .row1 .footer-image img{ 117 max-width: 50px; 118 } 119 120 121 122 123 .footer.footer_section__2 .footer-section-1 .col-section.num1 .footer-row.row2{ 124 padding-top: 0px; 125 padding-bottom:0px; 126 } 127 128 129 130 131 132 133 134 135 136 137 138 .footer.footer_section__2 .footer-section-1 .num1 .row2 .footer-image img{ 139 max-width: 50px; 140 } 141 142 143 144 145 .footer.footer_section__2 .footer-section-1 .col-section.num1 .footer-row.row3{ 146 padding-top: 1px; 147 padding-bottom:1px; 148 } 149 150 151 152 153 154 155 156 157 158 159 160 .footer.footer_section__2 .footer-section-1 .num1 .row3 .footer-image img{ 161 max-width: 50px; 162 } 163 164 165 166 167 168 169 170 .footer.footer_section__2 .footer-section-1 .col-section.num2 .footer-row.row1{ 171 padding-top: 0px; 172 padding-bottom:0px; 173 } 174 175 176 177 178 179 180 181 182 183 184 185 .footer.footer_section__2 .footer-section-1 .num2 .row1 .footer-image img{ 186 max-width: 50px; 187 } 188 189 190 191 192 .footer.footer_section__2 .footer-section-1 .col-section.num2 .footer-row.row2{ 193 padding-top: 0px; 194 padding-bottom:0px; 195 } 196 197 198 199 200 201 202 203 204 205 206 207 .footer.footer_section__2 .footer-section-1 .num2 .row2 .footer-image img{ 208 max-width: 50px; 209 } 210 211 212 213 214 .footer.footer_section__2 .footer-section-1 .col-section.num2 .footer-row.row3{ 215 padding-top: 0px; 216 padding-bottom:0px; 217 } 218 219 220 221 222 223 224 225 226 227 228 229 .footer.footer_section__2 .footer-section-1 .num2 .row3 .footer-image img{ 230 max-width: 50px; 231 } 232 233 234 235 236 237 238 239 .footer.footer_section__2 .footer-section-1 .flex_row.primary_font{ 240 color: rgba(255, 255, 255, 1.0); 241 } 242 243 244 245 246 247 248 249 250 .footer.footer_section__2 .footer-section-2 .col-section.num1 .footer-row.row1{ 251 padding-top: 0px; 252 padding-bottom:0px; 253 } 254 255 256 257 258 259 260 261 262 263 264 265 .footer.footer_section__2 .footer-section-2 .num1 .row1 .footer-image img{ 266 max-width: 50px; 267 } 268 269 270 271 272 .footer.footer_section__2 .footer-section-2 .col-section.num1 .footer-row.row2{ 273 padding-top: 0px; 274 padding-bottom:0px; 275 } 276 277 278 279 280 281 282 283 284 285 286 287 .footer.footer_section__2 .footer-section-2 .num1 .row2 .footer-image img{ 288 max-width: 50px; 289 } 290 291 292 293 294 .footer.footer_section__2 .footer-section-2 .flex_row.primary_font{ 295 color: rgba(255, 255, 255, 1.0); 296 } 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 @media(min-width:768px) { 312 .footer.footer_section__2 .footer-section-1 .col-section.num1{ 313 width: 100%; 314 } 315 } 316 317 318 319 @media(max-width:767px) { 320 .footer.footer_section__2 .footer-section-1 .col-section.num1{ 321 width: %; 322 } 323 } 324 325 326 327 328 @media(min-width:768px) { 329 .footer.footer_section__2 .footer-section-1 .col-section.num2{ 330 width: 100%; 331 } 332 } 333 334 335 336 @media(max-width:767px) { 337 .footer.footer_section__2 .footer-section-1 .col-section.num2{ 338 width: 100%; 339 } 340 } 341 342 343 344 345 @media(min-width:768px) { 346 .footer.footer_section__2 .footer-section-1 .col-section.num3{ 347 width: 33.333%; 348 } 349 } 350 351 352 353 @media(max-width:767px) { 354 .footer.footer_section__2 .footer-section-1 .col-section.num3{ 355 width: 100%; 356 } 357 } 358 359 360 361 362 363 364 365 @media(min-width:768px) { 366 .footer.footer_section__2 .footer-section-2 .col-section.num1{ 367 width: 100%; 368 } 369 } 370 371 372 373 @media(max-width:767px) { 374 .footer.footer_section__2 .footer-section-2 .col-section.num1{ 375 width: 100%; 376 } 377 } 378 379 380 </style> 381 382<style> 383 @font-face { 384 font-family: "Roboto"; 385 font-weight: 400; 386 font-style: normal; 387 font-display: swap; 388 src: url("/_hcms/googlefonts/Roboto/regular.woff2") format("woff2"), url("/_hcms/googlefonts/Roboto/regular.woff") format("woff"); 389 } 390 @font-face { 391 font-family: "Roboto"; 392 font-weight: 700; 393 font-style: normal; 394 font-display: swap; 395 src: url("/_hcms/googlefonts/Roboto/700.woff2") format("woff2"), url("/_hcms/googlefonts/Roboto/700.woff") format("woff"); 396 } 397 @font-face { 398 font-family: "Inter"; 399 font-weight: 400; 400 font-style: normal; 401 font-display: swap; 402 src: url("/_hcms/googlefonts/Inter/regular.woff2") format("woff2"), url("/_hcms/googlefonts/Inter/regular.woff") format("woff"); 403 } 404 @font-face { 405 font-family: "Inter"; 406 font-weight: 700; 407 font-style: normal; 408 font-display: swap; 409 src: url("/_hcms/googlefonts/Inter/700.woff2") format("woff2"), url("/_hcms/googlefonts/Inter/700.woff") format("woff"); 410 } 411 @font-face { 412 font-family: "Oswald"; 413 font-weight: 500; 414 font-style: normal; 415 font-display: swap; 416 src: url("/_hcms/googlefonts/Oswald/500.woff2") format("woff2"), url("/_hcms/googlefonts/Oswald/500.woff") format("woff"); 417 } 418 @font-face { 419 font-family: "Oswald"; 420 font-weight: 400; 421 font-style: normal; 422 font-display: swap; 423 src: url("/_hcms/googlefonts/Oswald/regular.woff2") format("woff2"), url("/_hcms/googlefonts/Oswald/regular.woff") format("woff"); 424 } 425 @font-face { 426 font-family: "Oswald"; 427 font-weight: 700; 428 font-style: normal; 429 font-display: swap; 430 src: url("/_hcms/googlefonts/Oswald/700.woff2") format("woff2"), url("/_hcms/googlefonts/Oswald/700.woff") format("woff"); 431 } 432 @font-face { 433 font-family: "Sora"; 434 font-weight: 400; 435 font-style: normal; 436 font-display: swap; 437 src: url("/_hcms/googlefonts/Sora/regular.woff2") format("woff2"), url("/_hcms/googlefonts/Sora/regular.woff") format("woff"); 438 } 439 @font-face { 440 font-family: "Sora"; 441 font-weight: 700; 442 font-style: normal; 443 font-display: swap; 444 src: url("/_hcms/googlefonts/Sora/700.woff2") format("woff2"), url("/_hcms/googlefonts/Sora/700.woff") format("woff"); 445 } 446</style> 447 448<!-- Editor Styles --> 449<style id="hs_editor_style" type="text/css"> 450.banner_area-row-0-force-full-width-section > .row-fluid { 451 max-width: none !important; 452} 453</style> 454 455 456 457 <link rel="canonical" href="https://cove.is"> 458 459<!-- Google tag (gtag.js) -->
vendor: 64 bytes, line 459
459 <script async src="https://www.googletagmanager.com/gtag/js?id=
459G-5XH7ZQ403K
vendor: 12 bytes, line 459
459"></script>
459<script>
vendor: 127 bytes, line 459
459window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', '
459G-5XH7ZQ403K
vendor: 4 bytes, line 459
459');
459</script>
459 460<!-- Google Tag Manager -->
461<script>
vendor: 327 bytes, lines 461-465
461(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 462new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 463j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 464'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 465})(window,document,'script','dataLayer','
465GTM-KF26Z399
vendor: 3 bytes, line 465
465');
465</script>
465 466<!-- End Google Tag Manager --> 467<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 467-468
467 468<script async src="https://www.googletagmanager.com/gtag/js?id=
468AW-11154263867
vendor: 13 bytes, lines 468-469
468"> 469</script>
470<script> 471
vendor: 134 bytes, lines 471-475
471window.dataLayer = window.dataLayer || []; 472 function gtag(){dataLayer.push(arguments);} 473 gtag('js', new Date()); 474 475 gtag('config', '
475AW-11154263867
vendor: 4 bytes, line 475
475');
476</script>
476 477<meta property="og:image" content="https://cove.is/hubfs/Property%20Management%20Software%20for%20CRE.jpg"> 478<meta property="og:image:width" content="2250"> 479<meta property="og:image:height" content="1176"> 480<meta property="og:image:alt" content="Property management software for CRE"> 481<meta name="twitter:image" content="https://cove.is/hubfs/Property%20Management%20Software%20for%20CRE.jpg"> 482<meta name="twitter:image:alt" content="Property management software for CRE"> 483 484<meta property="og:url" content="https://cove.is"> 485<meta name="twitter:card" content="summary_large_image"> 486<meta http-equiv="content-language" content="en"> 487 488 489 490 491 492<meta name="google-site-verification" content="bTEQTgU8sSEyCm62KQqiOTkmLGznIBHyJ-3j0eYfQWs"> 493<!-- Biscred Tag -->
494<script>(function(w,d,s,i){w.bcpf=w.bcpf||[]; 495 var b=new Date(),f=d.getElementsByTagName(s)[0],j=d.createElement(s);j.async=true; 496 w.bcpf.push({'init':b.getTime(),'account':i}); 497 j.src='https://pf.biscred.com/'+i+'/bcpf.js?'+b.getDate()+b.getMonth();f.parentNode.insertBefore(j,f);}) 498(window,document,'script','06f9f99540');</script>
498 499<!-- End Biscred Tag -->
500<script> 501 !function(w, d, s, u) { 502 if (w.oaiq) return; 503 var q = function() { 504 q.q.push(arguments); 505 }; 506 q.q = []; 507 w.oaiq = q; 508 var j = d.createElement(s); 509 j.async = 1; 510 j.src = u; 511 var f = d.getElementsByTagName(s)[0]; 512 f.parentNode.insertBefore(j, f); 513 }(window, document, "script", "https://bzrcdn.openai.com/sdk/oaiq.min.js"); 514 515 oaiq("init", { 516 pixelId: "EeWZjLBs14BkodFC5mWD3v", 517 debug: true 518 }); 519</script>
vendor: 1 bytes, line 519
519
520<script> 521 oaiq("measure", "registration_completed", { 522 type: "customer_action", 523 amount: 0, 524 currency: "USD" 525 }); 526</script>
526 527 528 <meta name="generator" content="HubSpot"></head> 529 <body> 530 <div class="body-wrapper hs-content-id-187474757559 hs-site-page page "> 531 532 533 534 <div data-global-resource-path="Cove_March2025/templates/partials/header.html"><div class="container-fluid header_dnd_sec header_top_sec"> 535<div class="row-fluid-wrapper"> 536<div class="row-fluid"> 537<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12"> 538 539</div><!--end widget-span --> 540</div> 541</div> 542</div> 543 544<style> 545 /* ====== Header Layout & FIXED Behavior ====== */ 546 .header-wrap { 547 position: relative; 548 z-index: 9999; 549 } 550 551 .cm-header { 552 position: fixed !important; 553 top: 0 !important; 554 left: 0; 555 right: 0; 556 z-index: 9999; 557 background-color: #ffffff; 558 border-bottom: 1px solid #e6edf5; 559 transition: box-shadow 0.2s ease, background-color 0.2s ease, backdrop-filter 0.2s ease; 560 561 /* critical: don't clip the fixed mobile dropdown */ 562 overflow: visible !important; 563 } 564 565 .cm-header.is-scrolled { 566 box-shadow: 0 8px 24px rgba(8, 22, 50, 0.08); 567 background-color: rgba(255, 255, 255, 0.97); 568 backdrop-filter: blur(6px); 569 } 570 571 .cm-header .header-cnt { 572 padding: 10px 0; 573 overflow: visible !important; 574 } 575 576 .cm-header .page-center { 577 max-width: 1200px; 578 margin: 0 auto; 579 padding: 0 32px; 580 display: flex; 581 align-items: center; 582 justify-content: space-between; 583 column-gap: 24px; 584 overflow: visible !important; 585 } 586 587 .cm-header .logo-cnt { 588 flex: 0 0 auto; 589 display: flex; 590 align-items: center; 591 } 592 593 .cm-header .mainNav { 594 flex: 1 1 auto; 595 min-width: 0; 596 display: flex; 597 align-items: center; 598 justify-content: flex-end; /* keep burger right */ 599 } 600 601 .cm-header .dashboard-btn { 602 flex: 0 0 auto; 603 display: flex; 604 align-items: center; 605 } 606 607 /* ====== CTA Button: Book a Demo (Desktop only) ====== */ 608 .cm-header .dashboard-btn .hs-button { 609 font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; 610 font-size: 14px; 611 font-weight: 600; 612 padding: 10px 26px; 613 border-radius: 999px; 614 border: none; 615 background-color: #52c9ec; 616 color: #ffffff; 617 display: inline-flex; 618 align-items: center; 619 justify-content: center; 620 white-space: nowrap; 621 text-decoration: none !important; 622 } 623 624 .cm-header .dashboard-btn a, 625 .cm-header .dashboard-btn a:hover, 626 .cm-header .dashboard-btn a:focus, 627 .cm-header .dashboard-btn a:active { 628 text-decoration: none !important; 629 outline: none !important; 630 border: none !important; 631 } 632 633 .cm-header .dashboard-btn .hs-button:hover { 634 filter: brightness(1.05); 635 } 636 637 /* ====== NAV TYPOGRAPHY OVERRIDES ====== */ 638 .cove-nav__link { 639 font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important; 640 font-size: 16px !important; 641 font-weight: 400 !important; 642 line-height: 24px !important; 643 color: #081632 !important; 644 text-decoration: none !important; 645 border: none !important; 646 box-shadow: none !important; 647 } 648 649 .cove-nav__mega-link { 650 font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important; 651 font-size: 16px !important; 652 line-height: 24px !important; 653 } 654 655 .cove-nav__login { 656 font-weight: 700 !important; 657 color: #081632 !important; 658 } 659 660 /* Remove theme hamburger + old theme mobile nav everywhere */ 661 .hamburger { 662 display: none !important; 663 } 664 665 .cm-header .mainNav.mobileNav, 666 .cm-header .mobileNav { 667 display: none !important; 668 } 669 670 /* ====== RESPONSIVE ====== */ 671 @media (max-width: 960px) { 672 .cm-header .page-center { 673 padding: 0 16px; 674 column-gap: 16px; 675 } 676 677 /* Hide CTA on mobile */ 678 .cm-header .dashboard-btn { 679 display: none !important; 680 } 681 } 682</style> 683 684<div class="header-wrap"> 685 <div class="cm-header"> 686 <div class="header-cnt"> 687 <div class="page-center"> 688 689 <!-- LOGO --> 690 <div class="logo-cnt"> 691 692 <div id="hs_cos_wrapper_header_logo" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-logo" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"> 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 <span id="hs_cos_wrapper_header_logo_hs_logo_widget" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_logo" style="" data-hs-cos-general-type="widget" data-hs-cos-type="logo"><a href="//cove.is?hsLang=en" id="hs-link-header_logo_hs_logo_widget" style="border-width:0px;border:0px;"><img src="https://cove.is/hs-fs/hubfs/Cove_Logo_Updated%20(1).png?width=96&height=41&name=Cove_Logo_Updated%20(1).png" class="hs-image-widget " height="41" style="height: auto;width:96px;border-width:0px;border:0px;" width="96" alt="Cove_Logo_Updated (1)" title="Cove_Logo_Updated (1)" srcset="https://cove.is/hs-fs/hubfs/Cove_Logo_Updated%20(1).png?width=48&height=21&name=Cove_Logo_Updated%20(1).png 48w, https://cove.is/hs-fs/hubfs/Cove_Logo_Updated%20(1).png?width=96&height=41&name=Cove_Logo_Updated%20(1).png 96w, https://cove.is/hs-fs/hubfs/Cove_Logo_Updated%20(1).png?width=144&height=62&name=Cove_Logo_Updated%20(1).png 144w, https://cove.is/hs-fs/hubfs/Cove_Logo_Updated%20(1).png?width=192&height=82&name=Cove_Logo_Updated%20(1).png 192w, https://cove.is/hs-fs/hubfs/Cove_Logo_Updated%20(1).png?width=240&height=103&name=Cove_Logo_Updated%20(1).png 240w, https://cove.is/hs-fs/hubfs/Cove_Logo_Updated%20(1).png?width=288&height=123&name=Cove_Logo_Updated%20(1).png 288w" sizes="(max-width: 96px) 100v
717w, 96px"></a></span> 718</div> 719 </div> 720 721 <!-- NAV: menu-section-v2 on desktop + mobile --> 722 <div class="mainNav mainNav--primary"> 723 <div id="hs_cos_wrapper_menu_section_v2" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><!-- menu-section-v2 (MODULE) --> 724<style> 725/* ========== GLOBAL NAV WRAPPER ========== */ 726.cove-nav { 727 font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; 728 background-color: #ffffff; 729 border-bottom: none; 730 position: relative; 731 z-index: 1000; 732 width: 100%; 733} 734.cove-nav__inner { 735 max-width: 1200px; 736 margin: 0 auto; 737 padding: 12px 24px; 738 display: flex; 739 align-items: center; 740 justify-content: center; 741 gap: 24px; 742 width: 100%; 743} 744.cove-nav__left { 745 display: flex; 746 align-items: center; 747 justify-content: center; 748 gap: 24px; 749 flex: 1 1 auto; 750 width: 100%; 751} 752/* ========== HAMBURGER BUTTON FOR MOBILE ========== */ 753.cove-nav__toggle { 754 display: none; 755 border: 1px solid #d3d7e5; 756 background: #ffffff; 757 padding: 8px 10px; 758 border-radius: 8px; 759 font-size: 14px; 760 cursor: pointer; 761 line-height: 1; 762 -webkit-tap-highlight-color: transparent; 763} 764.cove-nav__toggle, 765.cove-nav__toggle:active, 766.cove-nav__toggle:focus { 767 background: #ffffff !important; 768 outline: none !important; 769} 770.cove-nav__toggle-line { 771 display: block; 772 width: 18px; 773 height: 2px; 774 background-color: #081632; 775 border-radius: 999px; 776 position: relative; 777} 778.cove-nav__toggle-line::before, 779.cove-nav__toggle-line::after { 780 content: ""; 781 position: absolute; 782 left: 0; 783 width: 18px; 784 height: 2px; 785 background-color: #081632; 786 border-radius: 999px; 787} 788.cove-nav__toggle-line::before { top: -5px; } 789.cove-nav__toggle-line::after { top: 5px; } 790/* ========== MAIN NAV LIST ========== */ 791.cove-nav__items { 792 display: flex; 793 align-items: center; 794 gap: 24px; 795 list-style: none; 796 margin: 0; 797 padding: 0; 798 position: relative; 799 z-index: 2; 800} 801.cove-nav__item { 802 position: static; 803} 804.cove-nav__link { 805 border: none; 806 background: transparent; 807 padding: 8px 0; 808 font-size: 16px; 809 font-weight: 400; 810 color: #081632; 811 cursor: pointer; 812 display: inline-flex; 813 align-items: center; 814 gap: 6px; 815 position: relative; 816 text-decoration: none !important; 817 border-radius: 0 !important; 818 box-shadow: none !important; 819 outline: none !important; 820} 821.cove-nav__link:hover, 822.cove-nav__link:focus, 823.cove-nav__link:active, 824.cove-nav__item:hover > .cove-nav__link { 825 color: #081632; 826 text-decoration: none !important; 827 background: transparent !important; 828 border-radius: 0 !important; 829 box-shadow: none !important; 830 outline: none !important; 831} 832.cove-nav__link:focus-visible { 833 outline: none !important; 834 box-shadow: none !important; 835 background: transparent !important; 836 border-radius: 0 !important; 837} 838.cove-nav__link-arrow { 839 font-size: 16px; 840 line-height: 24px; 841 transform: translateY(0); 842 transition: transform 0.2s ease; 843} 844.cove-nav__item.has-mega:hover > .cove-nav__link .cove-nav__link-arrow, 845.cove-nav__item.has-mega:focus-within > .cove-nav__link .cove-nav__link-arrow { 846 transform: rotate(180deg); 847} 848/* LOGIN STYLING */ 849.cove-nav__login { 850 font-size: 16px; 851 font-weight: 700; 852 color: #081632; 853 text-decoration: none !important; 854} 855/* ========== MEGA MENU (desktop) ========== */ 856.cove-nav__mega { 857 position: absolute; 858 top: 100%; 859 margin-top: -4px; 860 left: 50%; 861 transform: translateX(-50%); 862 width: min(100vw - 32px, 1200px); 863 background-color: #ffffff; 864 border-radius: 12px; 865 box-shadow: 0 18px 40px rgba(12, 23, 53, 0.18); 866 padding: 24px 32px 28px; 867 display: none; 868 z-index: 1; 869} 870.cove-nav__mega-inner { 871 display: grid; 872 grid-template-columns: minmax(0,2fr) minmax(0,2fr) minmax(0,2fr); 873 gap: 40px; 874} 875/* 4-column mega menus on desktop (Resources) */ 876.cove-nav__mega--4col .cove-nav__mega-inner { 877 grid-template-columns: minmax(0,2fr) minmax(0,2fr) minmax(0,2fr) minmax(0,2fr); 878} 879/* Platform: intro spans both rows so the second link row tucks up close */ 880.cove-nav__mega--platform .cove-nav__mega-inner { 881 column-gap: 40px; 882 row-gap: 12px; 883} 884.cove-nav__mega--platform .cove-nav__mega-intro { 885 grid-row: 1 / span 2; 886} 887/* Second-row item aligned under the link columns (skips the intro column) */ 888.cove-nav__mega-row2 { 889 grid-column: 2 / span 2; 890} 891.cove-nav__mega-intro { 892 border-left: 4px solid #52c9ec; 893 padding-left: 16px; 894} 895.cove-nav__mega-eyebrow { 896 text-transform: uppercase; 897 letter-spacing: .12em; 898 font-size: 10px; 899 font-weight: 600; 900 color: #7c879a; 901 margin-bottom: 4px; 902} 903.cove-nav__mega-title { 904 font-size: 18px; 905 font-weight: 700; 906 color: #081632; 907 margin-bottom: 8px; 908 line-height: 1.3; 909} 910.cove-nav__mega-title span { 911 background: linear-gradient(135deg,#081632,#52c9ec); 912 -webkit-background-clip: text; 913 background-clip: text; 914 color: transparent; 915}
916.cove-nav__mega-text { 917 font-size: 13px; 918 line-height: 1.45; 919 color: #4b566a; 920 max-width: 300px; 921} 922.cove-nav__mega-section-title { 923 font-size: 14px; 924 font-weight: 700; 925 color: #081632; 926 margin-bottom: 8px; 927} 928/* Second (and later) group stacked inside the same mega column */ 929.cove-nav__mega-group + .cove-nav__mega-group { 930 margin-top: 20px; 931} 932.cove-nav__mega-list { list-style:none; padding:0; margin:0; } 933.cove-nav__mega-link { 934 display:block; 935 font-size:16px; 936 line-height:24px; 937 color:#25324b; 938 padding:4px 0; 939 text-decoration:none!important; 940} 941.cove-nav__mega-link:hover { 942 color:#081632; 943 text-decoration:underline!important; 944} 945.cove-nav__mega-tagline { 946 font-size:12px; 947 color:#7c879a; 948 margin-top:4px; 949} 950/* Desktop: hover opens mega */ 951@media (min-width:961px) { 952 .cove-nav__item.has-mega:hover > .cove-nav__mega { 953 display:block; 954 } 955} 956/* ========== MOBILE LAYOUT ========== */ 957@media (max-width:960px) { 958 .cove-nav__inner { 959 max-width: none; 960 padding: 12px 0; 961 justify-content: flex-end; /* burger on the right */ 962 } 963 .cove-nav__left { 964 justify-content: flex-end; 965 width: 100%; 966 } 967 .cove-nav__toggle { 968 display: inline-flex; 969 } 970 /* KEY FIX: make dropdown full-width and not constrained by parent */ 971 .cove-nav__items { 972 display: none; 973 flex-direction: column; 974 align-items: flex-start; 975 gap: 0; 976 position: fixed; 977 left: 0; 978 right: 0; 979 top: var(--cove-nav-top, 72px); 980 z-index: 9999; 981 background: #ffffff; 982 border-bottom: 1px solid #e2e5ee; 983 padding: 10px 16px 16px; 984 max-height: calc(100vh - var(--cove-nav-top, 72px)); 985 overflow: auto; 986 -webkit-overflow-scrolling: touch; 987 } 988 .cove-nav__items.is-open { 989 display: flex !important; 990 } 991 .cove-nav__link { 992 width: 100%; 993 justify-content: space-between; 994 padding: 14px 0; 995 } 996 .cove-nav__item { 997 width: 100%; 998 } 999 .cove-nav__item.has-mega .cove-nav__mega { 1000 position: static; 1001 transform: none; 1002 width: 100%; 1003 display: none; 1004 box-shadow: none; 1005 border-top: 1px solid #f0f2f8; 1006 padding: 12px 0 16px; 1007 margin-top: 0; 1008 } 1009 .cove-nav__item.has-mega.is-open .cove-nav__mega { 1010 display: block; 1011 } 1012 .cove-nav__mega-inner { 1013 grid-template-columns: 1fr; 1014 gap: 16px; 1015 } 1016 .cove-nav__mega--4col .cove-nav__mega-inner { 1017 grid-template-columns: 1fr; 1018 } 1019 .cove-nav__mega--platform .cove-nav__mega-inner { 1020 row-gap: 16px; 1021 } 1022 .cove-nav__mega--platform .cove-nav__mega-intro { 1023 grid-row: auto; 1024 } 1025 .cove-nav__mega-row2 { 1026 grid-column: auto; 1027 } 1028 .cove-nav__mega-group + .cove-nav__mega-group { 1029 margin-top: 16px; 1030 } 1031} 1032</style> 1033<nav class="cove-nav" data-cove-nav> 1034 <div class="cove-nav__inner"> 1035 <div class="cove-nav__left"> 1036 <!-- MOBILE HAMBURGER --> 1037 <button class="cove-nav__toggle" type="button" aria-expanded="false" aria-controls="cove-nav-items" aria-label="Menu"> 1038 <span class="cove-nav__toggle-line"></span> 1039 </button> 1040 <ul id="cove-nav-items" class="cove-nav__items"> 1041 <!-- PLATFORM --> 1042 <li class="cove-nav__item has-mega"> 1043 <button class="cove-nav__link" type="button" aria-expanded="false"> 1044 Platform <span class="cove-nav__link-arrow">â¾</span> 1045 </button> 1046 <div class="cove-nav__mega cove-nav__mega--platform"> 1047 <div class="cove-nav__mega-inner"> 1048 <div class="cove-nav__mega-intro"> 1049 <div class="cove-nav__mega-eyebrow">Platform</div> 1050 <div class="cove-nav__mega-title"> 1051 Run <span>building operations</span> and <span>tenant experience</span> in one place. 1052 </div> 1053 <p class="cove-nav__mega-text"> 1054 Unite your engineering, operations, and tenant teams with a single platform that keeps every work order, 1055 inspection, and communication in sync. 1056 </p> 1057 </div> 1058 <div> 1059 <ul class="cove-nav__mega-list"> 1060 <li> 1061 <a class="cove-nav__mega-link" href="https://cove.is/product/building-operations?hsLang=en">Building Operations</a> 1062 <div class="cove-nav__mega-tagline">Work orders, preventive maintenance, inspections, reporting.</div> 1063 </li> 1064 </ul> 1065 </div> 1066 <div> 1067 <ul class="cove-nav__mega-list"> 1068 <li> 1069 <a class="cove-nav__mega-link" href="https://cove.is/product/tenant-experience?hsLang=en">Tenant Experience</a> 1070 <div class="cove-nav__mega-tagline">Amenities, communications, events, engagement.</div> 1071 </li> 1072 </ul> 1073 </div> 1074 <div class="cove-nav__mega-row2"> 1075 <ul class="cove-nav__mega-list"> 1076 <li> 1077 <a class="cove-nav__mega-link" href="https://cove.is/product/visitor-management-software?hsLang=en">Visitor Management</a> 1078 <div class="cove-nav__mega-tagline">Registration, check-in, badges, security workflows.</div> 1079 </li> 1080 </ul> 1081 </div> 1082 </div> 1083 </div> 1084 </li> 1085 <!-- SOLUTIONS --> 1086 <li class="cove-nav__item has-mega"> 1087 <button class="cove-nav__link" type="button" aria-expanded="false"> 1088 Solutions <span class="cove-nav__link-arrow">â¾</span> 1089 </button> 1090 <div class="cove-nav__mega"> 1091 <div class="cove-nav__mega-inner"> 1092 <div class="cove-nav__mega-intro"> 1093 <div class="cove-nav__mega-eyebrow">Solutions</div> 1094 <div class="cove-nav__mega-title">Give every team <span>one source of truth</span>.</div> 1095 <p class="cove-nav__mega-text">Equip owners, managers, and engineers with modern tools to run high-performing buildings.</p> 1096 </div> 1097 <div> 1098 <div class="cove-nav__mega-group"> 1099 <div class="cove-nav__mega-section-title">By Role</div> 1100 <ul class="cove-nav__mega-list"> 1101 <li><a class="cove-nav__mega-link" href="https://cove.is/solution/property-managers?hsLang=en">Property Managers</a></li> 1102 <li><a class="cove-nav__mega-link" href="https://cove.is/solution/landlords?hsLang=en">Owners & Landlords</a></li> 1103 <li><a class="cove-nav__mega-link" href="https://cove.is/solution/engineers?hsLang=en">Engineers</a></li> 1104 </ul> 1105 </div> 1106 <div class="cove-nav__mega-group"> 1107 <div class="cove-nav__mega-section-title">By Company</div> 1108 <ul class="cove-nav__mega-list"> 1109 <li><a class="cove-nav__mega-link" href="https://cove.is/commercial-real-estate-operator-software?hsLang=en">Owner Operators</a></li> 1110 <li><a class="cove-nav__mega-link" href="https://cove.is/3rd-party-property-management-software?hsLang=en">Property Management Firms</a></li> 1111 </ul> 1112 </div> 1113 </div> 1114 <div> 1115 <div class="cove-nav__mega-section-title">By Sector</div> 1116 <ul class="cove-nav__mega-list"> 1117 <li><a class="cove-nav__mega-link" href="https://cove.is/sector/office?hsLang=en">Office</a></li> 1118 <li><a class="cove-nav__mega-link" href="https://cove.is/sector/life-sciences?hsLang=en">Life Science</a></li> 1119 <li><a class="cove-nav__mega-link" href="https://cove.is/sector/retail?hsLang=en">Retail</a></li> 1120 <li><a class="cove-nav__mega-link" href="https://cove.is/sector/industrial?hsLang=en">Industrial</a></li> 1121 <li><a class="cove-nav__mega-link" href="https://cove.is/sector/medical?hsLang=en">Medical</a></li> 1122 </ul> 1123 </div> 1124 </div> 1125 </div> 1126 </li> 1127 <!-- RESOURCES --> 1128 <li class="cove-nav__item has-mega"> 1129 <button class="cove-nav__link" type="button" aria-expanded="false"> 1130 Resources <span class="cove-nav__link-arrow">â¾</span> 1131 </button> 1132 <div class="cove-nav__mega cove-nav__mega--4col"> 1133 <div class="cove-nav__mega-inner"> 1134 <div class="cove-nav__mega-intro"> 1135 <div class="cove-nav__mega-eyebrow">Resources</div> 1136 <div class="cove-nav__mega-title">Learn from <span>operators</span>
1136 across 1B+ SF.</div> 1137 <p class="cove-nav__mega-text">Guides, webinars, and portfolio insights from the industryâs best operators.</p> 1138 </div> 1139 <div> 1140 <div class="cove-nav__mega-section-title">Insights</div> 1141 <ul class="cove-nav__mega-list"> 1142 <li><a class="cove-nav__mega-link" href="https://cove.is/building-operator-resources?hsLang=en">Guides, Reports & Webinars</a></li> 1143 <li><a class="cove-nav__mega-link" href="https://cove.is/blog-press?hsLang=en">Blog</a></li> 1144 </ul> 1145 </div> 1146 <div> 1147 <div class="cove-nav__mega-section-title">Education</div> 1148 <ul class="cove-nav__mega-list"> 1149 <li><a class="cove-nav__mega-link" href="https://support.cove.is/hc/en-us">Cove Knowledge Base</a></li> 1150 <li><a class="cove-nav__mega-link" href="https://support.cove.is/hc/en-us/articles/37652495432084-Training-Opportunities">Upcoming Trainings</a></li> 1151 </ul> 1152 </div> 1153 <div> 1154 <div class="cove-nav__mega-section-title">Proof in Market</div> 1155 <ul class="cove-nav__mega-list"> 1156 <li> 1157 <a class="cove-nav__mega-link" href="https://cove.is/buildings-powered-by-cove?hsLang=en">Portfolio & Case Studies</a> 1158 <div class="cove-nav__mega-tagline">See buildings powered by Cove.</div> 1159 </li> 1160 <li> 1161 <a class="cove-nav__mega-link" href="https://cove.is/software-integrations?hsLang=en">Integrations</a> 1162 <div class="cove-nav__mega-tagline">Explore systems Cove connects with.</div> 1163 </li> 1164 </ul> 1165 </div> 1166 </div> 1167 </div> 1168 </li> 1169 <!-- COMPANY --> 1170 <li class="cove-nav__item has-mega"> 1171 <button class="cove-nav__link" type="button" aria-expanded="false"> 1172 Company <span class="cove-nav__link-arrow">â¾</span> 1173 </button> 1174 <div class="cove-nav__mega"> 1175 <div class="cove-nav__mega-inner"> 1176 <div class="cove-nav__mega-intro"> 1177 <div class="cove-nav__mega-eyebrow">Company</div> 1178 <div class="cove-nav__mega-title">Built by <span>operators</span>.</div> 1179 <p class="cove-nav__mega-text">From our 2013 coworking roots to powering global portfolios.</p> 1180 </div> 1181 <div> 1182 <div class="cove-nav__mega-section-title">About</div> 1183 <ul class="cove-nav__mega-list"> 1184 <li><a class="cove-nav__mega-link" href="https://cove.is/team?hsLang=en">Our Team</a></li> 1185 <li><a class="cove-nav__mega-link" href="https://cove.is/advisory-board?hsLang=en">Advisory Board</a></li> 1186 <li><a class="cove-nav__mega-link" href="https://cove.is/in-the-news-cove?hsLang=en">Press</a></li> 1187 <li><a class="cove-nav__mega-link" href="https://cove.is/careers?hsLang=en">Careers</a></li> 1188 </ul> 1189 </div> 1190 <div> 1191 <div class="cove-nav__mega-section-title">Trust</div> 1192 <ul class="cove-nav__mega-list"> 1193 <li><a class="cove-nav__mega-link" href="https://trust.cove.is/">Security & Compliance</a></li> 1194 </ul> 1195 </div> 1196 </div> 1197 </div> 1198 </li> 1199 <!-- LOGIN --> 1200 <li class="cove-nav__item"> 1201 <a class="cove-nav__link cove-nav__login" href="https://manage.cove.is/">Login</a> 1202 </li> 1203 </ul> 1204 </div> 1205 </div> 1206</nav>
1207<script> 1208(function () { 1209 function initCoveNav(root) { 1210 if (!root) return; 1211 if (root.dataset.coveNavInit === "true") return; 1212 root.dataset.coveNavInit = "true"; 1213 const toggle = root.querySelector(".cove-nav__toggle"); 1214 const items = root.querySelector(".cove-nav__items"); 1215 const megas = root.querySelectorAll(".cove-nav__item.has-mega"); 1216 if (!toggle || !items) return; 1217 function setTopOffset() { 1218 // Prefer the fixed header height if present 1219 const header = document.querySelector(".cm-header"); 1220 const top = header ? Math.round(header.getBoundingClientRect().height) : 72; 1221 root.style.setProperty("--cove-nav-top", top + "px"); 1222 } 1223 function closeAllSubmenus() { 1224 megas.forEach(item => { 1225 item.classList.remove("is-open"); 1226 const btn = item.querySelector(".cove-nav__link"); 1227 if (btn) btn.setAttribute("aria-expanded", "false"); 1228 }); 1229 } 1230 function closeMobileMenu() { 1231 items.classList.remove("is-open"); 1232 toggle.setAttribute("aria-expanded", "false"); 1233 closeAllSubmenus(); 1234 } 1235 toggle.addEventListener("click", function (e) { 1236 e.preventDefault(); 1237 e.stopPropagation(); 1238 setTopOffset(); 1239 const isOpen = items.classList.toggle("is-open"); 1240 toggle.setAttribute("aria-expanded", isOpen ? "true" : "false"); 1241 if (!isOpen) closeAllSubmenus(); 1242 }); 1243 megas.forEach(item => { 1244 const btn = item.querySelector(".cove-nav__link"); 1245 if (!btn) return; 1246 btn.addEventListener("click", function (e) { 1247 if (window.innerWidth > 960) return; 1248 e.preventDefault(); 1249 e.stopPropagation(); 1250 setTopOffset(); 1251 const willOpen = !item.classList.contains("is-open"); 1252 closeAllSubmenus(); 1253 item.classList.toggle("is-open", willOpen); 1254 btn.setAttribute("aria-expanded", willOpen ? "true" : "false"); 1255 }); 1256 }); 1257 document.addEventListener("click", function (e) { 1258 if (window.innerWidth > 960) return; 1259 if (!root.contains(e.target)) closeMobileMenu(); 1260 }); 1261 root.querySelectorAll("a").forEach(a => { 1262 a.addEventListener("click", function () { 1263 if (window.innerWidth > 960) return; 1264 closeMobileMenu(); 1265 }); 1266 }); 1267 window.addEventListener("resize", function () { 1268 if (window.innerWidth > 960) closeMobileMenu(); 1269 setTopOffset(); 1270 }); 1271 // set initial offset once 1272 setTopOffset(); 1273 window.addEventListener("load", setTopOffset); 1274 } 1275 function boot() { 1276 document.querySelectorAll("[data-cove-nav]").forEach(initCoveNav); 1277 } 1278 if (document.readyState === "loading") { 1279 document.addEventListener("DOMContentLoaded", boot); 1280 } else { 1281 boot(); 1282 } 1283 window.addEventListener("load", boot); 1284})(); 1285</script>
1285</div> 1286 </div> 1287 1288 <!-- DESKTOP CTA --> 1289 <div class="dashboard-btn dashboard-btn--desktop"> 1290 <div id="hs_cos_wrapper_book_a_demo_button" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"> 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301<a class="hs-button" href="https://landing.cove.is/book-a-demo?hsLang=en" id="hs-button_book_a_demo_button" target="_blank" rel="noopener "> 1302 Book a Demo 1303</a> 1304 1305</div> 1306 </div> 1307 1308 </div> 1309 </div> 1310 </div> 1311</div> 1312 1313<div class="container-fluid header_dnd_sec header_bottom_sec"> 1314<div class="row-fluid-wrapper"> 1315<div class="row-fluid"> 1316<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12"> 1317 1318</div><!--end widget-span --> 1319</div> 1320</div> 1321</div> 1322
1323<script> 1324 (function () { 1325 var header = document.querySelector('.cm-header'); 1326 if (!header) return; 1327 1328 function onScroll() { 1329 if (window.scrollY > 10) { 1330 header.classList.add('is-scrolled'); 1331 } else { 1332 header.classList.remove('is-scrolled'); 1333 } 1334 } 1335 1336 window.addEventListener('scroll', onScroll); 1337 onScroll(); 1338 })(); 1339</script>
1339</div> 1340 1341 1342 1343 1344 1345<div class="banner_area home_page_v1_banner_area"> 1346 <div class="container-fluid top-dnd-area"> 1347<div class="row-fluid-wrapper"> 1348<div class="row-fluid"> 1349<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12"> 1350 1351<div class="row-fluid-wrapper row-depth-1 row-number-1 dnd-section banner_area-row-0-force-full-width-section"> 1352<div class="row-fluid "> 1353<div class="span12 widget-span widget-type-cell dnd-column" style="" data-widget-type="cell" data-x="0" data-w="12"> 1354 1355<div class="row-fluid-wrapper row-depth-1 row-number-2 dnd-row"> 1356<div class="row-fluid "> 1357<div class="span12 widget-span widget-type-custom_widget dnd-module" style="" data-widget-type="custom_widget" data-x="0" data-w="12"> 1358<div id="hs_cos_wrapper_widget_1782783494155" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
1358<script type="application/ld+json"> 1359{ 1360 "@context": "https://schema.org", 1361 "@type": "SoftwareApplication", 1362 "name": "Cove Commercial Property Management Software", 1363 "applicationCategory": "BusinessApplication", 1364 "applicationSubCategory": "Commercial Property Management Software", 1365 "operatingSystem": "Web, iOS, Android", 1366 "url": "https://cove.is/", 1367 "description": "Cove is unified commercial property management software that unifies building operations, tenant experience, visitor management, and portfolio intelligence in one platform for commercial real estate owners and operators.", 1368 "featureList": [ 1369 "Building operations and maintenance", 1370 "Tenant experience and amenities", 1371 "Visitor management", 1372 "CoveAI portfolio intelligence", 1373 "Integrations with access control, payments, and more", 1374 "Portfolio-level reporting" 1375 ], 1376 "keywords": "commercial property management software, property management software, commercial real estate management software, building operations software, tenant experience software", 1377 "offers": { "@type": "Offer", "priceCurrency": "USD", "price": "0", "description": "Custom pricing available. Book a demo." }, 1378 "publisher": { 1379 "@type": "Organization", 1380 "name": "Cove", 1381 "url": "https://cove.is", 1382 "logo": "https://cove.is/hs-fs/hubfs/Cove_Logo_Updated%20(1).png" 1383 } 1384} 1385</script>
vendor: 1 bytes, line 1385
1385
1386<script type="application/ld+json"> 1387{ 1388 "@context": "https://schema.org", 1389 "@type": "FAQPage", 1390 "mainEntity": [ 1391 { 1392 "@type": "Question", 1393 "name": "What is commercial property management software?", 1394 "acceptedAnswer": { "@type": "Answer", "text": "Commercial property management software runs a building or portfolio from one place, covering building operations and maintenance, tenant experience, visitor management, integrations, and portfolio reporting. Cove is unified commercial property management software built for commercial real estate owners and operators." } 1395 }, 1396 { 1397 "@type": "Question", 1398 "name": "What can you run on Cove's commercial property management software?", 1399 "acceptedAnswer": { "@type": "Answer", "text": "Cove unifies building operations, tenant experience, visitor management, and CoveAI portfolio intelligence on one platform, and integrates with your existing access control, payments, occupancy, and parking systems." } 1400 } 1401 ] 1402} 1403</script>
1403 1404<main> 1405 1406<!-- ===== HERO ===== --> 1407<div class="cove-home-section"> 1408<div class="cove-hero-wrap" style="padding: 104px 24px 110px 24px; position: relative;"> 1409 <img src="https://cove.is/hubfs/Commercial%20Building%20Management%20Software%20-%203.png" alt="" aria-hidden="true" style="position: absolute; bottom: -150px; left: 50%; transform: translateX(-50%); width: 64%; max-width: 900px; height: auto; opacity: 0.3; z-index: 0; pointer-events: none; -webkit-mask-image: linear-gradient(to bottom, black 45%, transparent 92%); mask-image: linear-gradient(to bottom, black 45%, transparent 92%);"> 1410 <div class="cove-callout" style="position: absolute; top: 24px; right: calc(50% + 250px); z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 12px 10px; width: 124px; text-align: center; word-break: normal; overflow-wrap: normal; background: rgba(255,255,255,0.55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border: 1px solid rgba(82,201,236,0.14); border-radius: 14px; font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; font-size: 11px; font-weight: 600; line-height: 1.3; color: #003567; white-space: normal; box-shadow: 0 10px 24px rgba(0,53,103,0.06), 0 2px 6px rgba(0,53,103,0.04); opacity: 0; animation: floatCallout 18s ease-in-out infinite; animation-delay: 0s;"> 1411 <span style="width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 9px; background: rgba(82,201,236,0.22); color: #003567; flex-shrink: 0;"> 1412 <svg width="20" height="20" shape-rendering="geometricPrecision" viewbox="0 0 24 24" fill="none" stroke="#003567" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z" /></svg> 1413 </span> 1414 <span>Work Order Management</span> 1415 </div> 1416 <div class="cove-callout" style="position: absolute; top: 32%; right: calc(50% + 440px); z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 12px 10px; width: 124px; text-align: center; word-break: normal; overflow-wrap: normal; background: rgba(255,255,255,0.55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border: 1px solid rgba(82,201,236,0.14); border-radius: 14px; font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; font-size: 11px; font-weight: 600; line-height: 1.3; color: #003567; white-space: normal; box-shadow: 0 10px 24px rgba(0,53,103,0.06), 0 2px 6px rgba(0,53,103,0.04); opacity: 0; animation: floatCallout 18s ease-in-out infinite; animation-delay: 2.5s;"> 1417 <span style="width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 9px; background: rgba(82,201,236,0.22); color: #003567; flex-shrink: 0;"> 1418 <svg width="20" height="20" shape-rendering="geometricPrecision" viewbox="0 0 24 24" fill="none" stroke="#003567" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="5" width="18" height="16" rx="2" /><path d="M3 10h18M8 3v4M16 3v4" /><path d="M9 15l2 2 4-4" /></svg> 1419 </span> 1420 <span>Preventive Maintenance Scheduling</span> 1421 </div> 1422 <div class="cove-callout" style="position: absolute; top: 62%; right: calc(50% + 440px); z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 12px 10px; width: 124px; text-align: center; word-break: normal; overflow-wrap: normal; background: rgba(255,255,255,0.55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border: 1px solid rgba(82,201,236,0.14); border-radius: 14px; font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; font-size: 11px; font-weight: 600; line-height: 1.3; color: #003567; white-space: normal; box-shadow: 0 10px 24px rgba(0,53,103,0.06), 0 2px 6px rgba(0,53,103,0.04); opacity: 0; animation: floatCallout 18s ease-in-out infinite; animation-delay: 5s;"> 1423 <span style="width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 9px; background: rgba(82,201,236,0.22); color: #003567; flex-shrink: 0;"> 1424 <svg width="20" height="20" shape-rendering="geometricPrecision" viewbox="0 0 24 24" fill="none" stroke="#003567" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="6" y="4" width="12" height="18" rx="2" /><path d="M9 2h6v4H9z" />
1424<path d="M9 12h6M9 16h4" /></svg> 1425 </span> 1426 <span>Inspection Tracking</span> 1427 </div> 1428 <div class="cove-callout" style="position: absolute; bottom: 32px; right: calc(50% + 250px); z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 12px 10px; width: 124px; text-align: center; word-break: normal; overflow-wrap: normal; background: rgba(255,255,255,0.55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border: 1px solid rgba(82,201,236,0.14); border-radius: 14px; font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; font-size: 11px; font-weight: 600; line-height: 1.3; color: #003567; white-space: normal; box-shadow: 0 10px 24px rgba(0,53,103,0.06), 0 2px 6px rgba(0,53,103,0.04); opacity: 0; animation: floatCallout 18s ease-in-out infinite; animation-delay: 7.5s;"> 1429 <span style="width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 9px; background: rgba(82,201,236,0.22); color: #003567; flex-shrink: 0;"> 1430 <svg width="20" height="20" shape-rendering="geometricPrecision" viewbox="0 0 24 24" fill="none" stroke="#003567" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2l8 4v6c0 5-3.5 9-8 10-4.5-1-8-5-8-10V6l8-4z" /><path d="M9 12l2 2 4-4" /></svg> 1431 </span> 1432 <span>COI Management</span> 1433 </div> 1434 <div class="cove-callout" style="position: absolute; top: 24px; left: calc(50% + 250px); z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 12px 10px; width: 124px; text-align: center; word-break: normal; overflow-wrap: normal; background: rgba(255,255,255,0.55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border: 1px solid rgba(82,201,236,0.14); border-radius: 14px; font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; font-size: 11px; font-weight: 600; line-height: 1.3; color: #003567; white-space: normal; box-shadow: 0 10px 24px rgba(0,53,103,0.06), 0 2px 6px rgba(0,53,103,0.04); opacity: 0; animation: floatCallout 18s ease-in-out infinite; animation-delay: 1.25s;"> 1435 <span style="width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 9px; background: rgba(82,201,236,0.22); color: #003567; flex-shrink: 0;"> 1436 <svg width="20" height="20" shape-rendering="geometricPrecision" viewbox="0 0 24 24" fill="none" stroke="#003567" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><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 10h8M8 13h5" /></svg> 1437 </span> 1438 <span>Communications & Announcements</span> 1439 </div> 1440 <div class="cove-callout" style="position: absolute; top: 34%; left: calc(50% + 440px); z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 12px 10px; width: 124px; text-align: center; word-break: normal; overflow-wrap: normal; background: rgba(255,255,255,0.55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border: 1px solid rgba(82,201,236,0.14); border-radius: 14px; font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; font-size: 11px; font-weight: 600; line-height: 1.3; color: #003567; white-space: normal; box-shadow: 0 10px 24px rgba(0,53,103,0.06), 0 2px 6px rgba(0,53,103,0.04); opacity: 0; animation: floatCallout 18s ease-in-out infinite; animation-delay: 3.75s;"> 1441 <span style="width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 9px; background: rgba(82,201,236,0.22); color: #003567; flex-shrink: 0;"> 1442 <svg width="20" height="20" shape-rendering="geometricPrecision" viewbox="0 0 24 24" fill="none" stroke="#003567" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9" /><path d="M13.7 21a2 2 0 0 1-3.4 0" /></svg> 1443 </span> 1444 <span>Push Notification Alerts</span> 1445 </div> 1446 <div class="cove-callout" style="position: absolute; top: 64%; left: calc(50% + 440px); z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 12px 10px; width: 124px; text-align: center; word-break: normal; overflow-wrap: normal; background: rgba(255,255,255,0.55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border: 1px solid rgba(82,201,236,0.14); border-radius: 14px; font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; font-size: 11px; font-weight: 600; line-height: 1.3; color: #003567; white-space: normal; box-shadow: 0 10px 24px rgba(0,53,103,0.06), 0 2px 6px rgba(0,53,103,0.04); opacity: 0; animation: floatCallout 18s ease-in-out infinite; animation-delay: 6.25s;"> 1447 <span style="width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 9px; background: rgba(82,201,236,0.22); color: #003567; flex-shrink: 0;"> 1448 <svg width="20" height="20" shape-rendering="geometricPrecision" viewbox="0 0 24 24" fill="none" stroke="#003567" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="11" width="16" height="10" rx="2" /><path d="M8 11V7a4 4 0 0 1 8 0v4" /><circle cx="12" cy="16" r="1.2" /></svg> 1449 </span> 1450 <span>Access Control Systems</span> 1451 </div> 1452 <div class="cove-callout" style="position: absolute; bottom: 32px; left: calc(50% + 250px); z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 12px 10px; width: 124px; text-align: center; word-break: normal; overflow-wrap: normal; background: rgba(255,255,255,0.55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border: 1px solid rgba(82,201,236,0.14); border-radius: 14px; font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; font-size: 11px; font-weight: 600; line-height: 1.3; color: #003567; white-space: normal; box-shadow: 0 10px 24px rgba(0,53,103,0.06), 0 2px 6px rgba(0,53,103,0.04); opacity: 0; animation: floatCallout 18s ease-in-out infinite; animation-delay: 8.75s;"> 1453 <span style="width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 9px; background: rgba(82,201,236,0.22); color: #003567; flex-shrink: 0;"> 1454 <svg width="20" height="20" shape-rendering="geometricPrecision" viewbox="0 0 24 24" fill="none" stroke="#003567" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="6" y="2" width="12" height="20" rx="2.5" /><path d="M11 18h2" /><rect x="9" y="5" width="6" height="9" rx="0.5" stroke-width="1.4" /></svg> 1455 </span> 1456 <span>White Labeled Apps</span> 1457 </div> 1458 <div style="max-width: 980px; margin: 0 auto; text-align: center; position: relative; z-index: 5;"> 1459 <h1 class="cove-hero-pill" style="display: inline-flex; align-items: center; gap: 10px; margin: 0 0 22px; font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #003567; padding: 8px 14px; border-radius: 999px; background: rgba(82, 201, 236, 0.14); border: 1px solid rgba(82, 201, 236, 0.35); line-height: 1;"><span style="width: 6px; height: 6px; border-radius: 50%; background: #52C9EC; box-shadow: 0 0 0 4px rgba(82, 201, 236, 0.22); display: inline-block; animation: pulseDot 2.6s ease-in-out infinite;"></span>Unified Commercial Property Management Software</h1> 1460 <p style="line-height: 1.15;"><span style="display: block;"><span class="cove-hero-headline" style="color: #0b2a4a; font-family: Sora, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; font-size: 72px; font-weight: bold; letter-spacing: -0.02em; text-wrap-mode: initial; background-color: transparent;">
1460 Built for Buildings.<br><span style="background: linear-gradient(135deg, #52C9EC 0%, #003567 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent;">Designed for What's Next.</span></span></span></p> 1461 <p class="cove-hero-subcopy" style="margin: 0 auto; max-width: 860px; font-family: Sora, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; font-weight: 400; color: #667085; line-height: 1.4; font-size: 18px;">Cove replaces fragmented point solutions with one OS that unifies your portfolio, compounds intelligence over time, and partners in your performance from day one.</p> 1462 <div class="cove-feature-strip" style="width: 100%; padding: 16px 40px; box-sizing: border-box; margin-top: 28px;"> 1463 <div class="cove-feature-row" style="display: flex; flex-direction: row; align-items: center; justify-content: center; max-width: 900px; margin: 0 auto;"> 1464 <div class="cove-feature-item" style="display: flex; flex-direction: row; align-items: center; gap: 10px; flex: 1; justify-content: center; padding: 0 24px; border-right: 1px solid #a8c8df;"><svg width="22" height="22" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" style="width: 22px; height: 22px; min-width: 22px; flex-shrink: 0; display: block;"> <rect x="1" y="8" width="8" height="14" rx="1" fill="#c5dff0" stroke="#185FA5" stroke-width="1.3"></rect> <rect x="8" y="4" width="10" height="18" rx="1" fill="#85B7EB" stroke="#185FA5" stroke-width="1.3"></rect> <rect x="17" y="10" width="6" height="12" rx="1" fill="#c5dff0" stroke="#185FA5" stroke-width="1.3"></rect> <line x1="10" y1="8" x2="12" y2="8" stroke="#185FA5" stroke-width="1" stroke-linecap="round"></line> <line x1="14" y1="8" x2="16" y2="8" stroke="#185FA5" stroke-width="1" stroke-linecap="round"></line> <line x1="10" y1="11" x2="12" y2="11" stroke="#185FA5" stroke-width="1" stroke-linecap="round"></line> <line x1="14" y1="11" x2="16" y2="11" stroke="#185FA5" stroke-width="1" stroke-linecap="round"></line> <line x1="10" y1="14" x2="12" y2="14" stroke="#185FA5" stroke-width="1" stroke-linecap="round"></line> <line x1="14" y1="14" x2="16" y2="14" stroke="#185FA5" stroke-width="1" stroke-linecap="round"></line> <rect x="10.5" y="17" width="3" height="5" rx="0.5" fill="#185FA5"></rect> </svg> <span style="font-size: 14px; font-weight: 500; color: #0a2540; white-space: nowrap; font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;">Every asset, running as one</span></div> 1465 <div class="cove-feature-item" style="display: flex; flex-direction: row; align-items: center; gap: 10px; flex: 1; justify-content: center; padding: 0 24px; border-right: 1px solid #a8c8df;"><svg width="22" height="22" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" style="width: 22px; height: 22px; min-width: 22px; flex-shrink: 0; display: block;"> <circle cx="12" cy="12" r="3" fill="#0C447C"></circle> <circle cx="12" cy="12" r="6" stroke="#378ADD" stroke-width="1.2" fill="none" stroke-dasharray="2 1.5"></circle> <circle cx="12" cy="12" r="10" stroke="#85B7EB" stroke-width="1" fill="none" stroke-dasharray="2 1.5"></circle> <circle cx="12" cy="2" r="1.4" fill="#185FA5"></circle> <circle cx="20.7" cy="17" r="1.4" fill="#185FA5"></circle> <circle cx="3.3" cy="17" r="1.4" fill="#185FA5"></circle> </svg> <span style="font-size: 14px; font-weight: 500; color: #0a2540; white-space: nowrap; font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;">AI workflows turn busywork into impact<br></span></div> 1466 <div class="cove-feature-item" style="display: flex; flex-direction: row; align-items: center; gap: 10px; flex: 1; justify-content: center; padding: 0 24px;"><svg width="22" height="22" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" style="width: 22px; height: 22px; min-width: 22px; flex-shrink: 0; display: block;"> <circle cx="12" cy="8.5" r="4" fill="#85B7EB" stroke="#185FA5" stroke-width="1.4"></circle> <path d="M4 21 C4 16.6 7.6 13 12 13 C16.4 13 20 16.6 20 21" stroke="#185FA5" stroke-width="1.4" stroke-linecap="round" fill="none"></path> <path d="M17 16 L19 18 L23 14" stroke="#0C447C" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> <span style="font-size: 14px; font-weight: 500; color: #0a2540; white-space: nowrap; font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;">Your AI roadmap, built in partnership</span></div> 1467 </div> 1468 </div> 1469 <div class="cove-cta-wrap" style="margin-top: 64px; display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: center;"> 1470 <a class="cove-cta-btn" href="https://landing.cove.is/book-a-demo?hsLang=en" style="display: inline-block; padding: 14px 36px; background: #52C9EC; color: #ffffff; font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; font-size: 16px; font-weight: 600; text-decoration: none; border-radius: 999px; box-shadow: 0 6px 18px rgba(82,201,236,0.35); transition: transform 0.15s ease, box-shadow 0.15s ease;" onmouseover="this.style.transform='translateY(-1px)'; this.style.boxShadow='0 10px 24px rgba(82,201,236,0.45)';" onmouseout="this.style.transform='translateY(0)'; this.style.boxShadow='0 6px 18px rgba(82,201,236,0.35)';">Book a Demo</a> 1471 <a class="cove-cta-btn" href="https://landing.cove.is/get-pricing-cove?hsLang=en" style="display: inline-block; padding: 14px 36px; background: #52C9EC; color: #ffffff; font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; font-size: 16px; font-weight: 600; text-decoration: none; border-radius: 999px; box-shadow: 0 6px 18px rgba(82,201,236,0.35); transition: transform 0.15s ease, box-shadow 0.15s ease;" onmouseover="this.style.transform='translateY(-1px)'; this.style.boxShadow='0 10px 24px rgba(82,201,236,0.45)';" onmouseout="this.style.transform='translateY(0)'; this.style.boxShadow='0 6px 18px rgba(82,201,236,0.35)';">Get Custom Pricing</a> 1472 </div> 1473 </div> 1474</div> 1475</div> 1476 1477<!-- ===== CUSTOMER STORIES ===== --> 1478<div class="cove-home-section"> 1479<section class="cove-module"> 1480 <div class="cove-module__inner"> 1481 <h2 class="cove-module__title">A Trusted Partner to the Industry's Leading <span class="cove-module__title-accent">Owners & Operators.</span></h2> 1482 1483 <div class="cove-row"> 1484 1485 <!-- Left logos --> 1486 <div class="cove-logos cove-row__logos--left"> 1487 <div class="cove-logos__cell"><img src="https://cove.is/hubfs/Client%20Logos/Nuveen.png" alt="Nuveen" loading="lazy"></div> 1488 <div class="cove-logos__cell"><img src="https://cove.is/hubfs/Client%20Logos/Beacon.png" alt="Beacon Capital Partners" loading="lazy"></div> 1489 <div class="cove-logos__cell">
1489<img src="https://cove.is/hubfs/Client%20Logos/Perform%20Properties.png" alt="Perform Properties" loading="lazy"></div> 1490 <div class="cove-logos__cell"><img src="https://cove.is/hubfs/Client%20Logos/Cushman%20and%20Wakefield.png" alt="Cushman & Wakefield" loading="lazy"></div> 1491 <div class="cove-logos__cell"><img src="https://cove.is/hubfs/Client%20Logos/Rudin.png" alt="Rudin" loading="lazy"></div> 1492 <div class="cove-logos__cell"><img src="https://cove.is/hubfs/Client%20Logos/Blackstone.png" alt="Blackstone" loading="lazy"></div> 1493 </div> 1494 1495 <!-- Right logos --> 1496 <div class="cove-logos cove-row__logos--right"> 1497 <div class="cove-logos__cell"><img src="https://cove.is/hubfs/Client%20Logos/Longfellow.png" alt="Longfellow" loading="lazy"></div> 1498 <div class="cove-logos__cell"><img src="https://cove.is/hubfs/Client%20Logos/Silverstein.png" alt="Silverstein Properties" loading="lazy"></div> 1499 <div class="cove-logos__cell"><img src="https://cove.is/hubfs/Client%20Logos/AREP.png" alt="American Real Estate Partners" loading="lazy"></div> 1500 <div class="cove-logos__cell"><img src="https://cove.is/hubfs/Client%20Logos/BioMed.png" alt="BioMed Realty" loading="lazy"></div> 1501 <div class="cove-logos__cell"><img src="https://cove.is/hubfs/Client%20Logos/RXR.png" alt="RXR" loading="lazy"></div> 1502 <div class="cove-logos__cell"><img src="https://cove.is/hubfs/Client%20Logos/Kairos.png" alt="Kairos Real Estate Partners" loading="lazy"></div> 1503 </div> 1504 1505 </div> 1506 1507 </div> 1508 </section> 1509</div> 1510 1511<!-- ===== COVE APPROACH ===== --> 1512<div class="cove-home-section"> 1513<section class="cove-module"> 1514 <div class="cove-container"> 1515 1516 <!-- Header --> 1517 <header class="cove-header"> 1518 <span class="cove-eyebrow">The Cove Approach</span> 1519 <h2 class="cove-title"> 1520 From Fragmented to <span class="cove-title-accent">Future-Ready</span> 1521 </h2> 1522 <p class="cove-subtitle"> 1523 Cove replaces fragmented point solutions with a single Portfolio OS, so your team moves faster, spends less, and scales without friction. 1524 </p> 1525 </header> 1526 1527 <!-- Main grid --> 1528 <div class="cove-grid"> 1529 1530 <!-- Left: Content --> 1531 <div class="cove-content"> 1532 <ul class="cove-features"> 1533 <li class="cove-feature is-active" data-slide="0"> 1534 <div class="cove-feature-icon" aria-hidden="true"> 1535 <svg viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 1536 <path d="M3 21h18M5 21V7l8-4v18M19 21V11l-6-4" /> 1537 <path d="M9 9v.01M9 12v.01M9 15v.01M9 18v.01" /> 1538 </svg> 1539 </div> 1540 <div class="cove-feature-text"> 1541 <strong>Building Operations</strong> that unify work orders, preventive maintenance, and engineering workflows into one source of truth, so every asset runs to the same standard. 1542 <a class="cove-feature-link" href="https://cove.is/product/building-operations?hsLang=en">Learn more <svg viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6" /></svg></a> 1543 </div> 1544 </li> 1545 1546 <li class="cove-feature" data-slide="1"> 1547 <div class="cove-feature-icon" aria-hidden="true"> 1548 <svg viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 1549 <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" /> 1550 <circle cx="9" cy="7" r="4" /> 1551 <path d="M23 21v-2a4 4 0 0 0-3-3.87" /> 1552 <path d="M16 3.13a4 4 0 0 1 0 7.75" /> 1553 </svg> 1554 </div> 1555 <div class="cove-feature-text"> 1556 <strong>Tenant Experience</strong> that gives occupants one front door to your portfolio, turning amenities, requests, and communications into a connected experience that builds retention. 1557 <a class="cove-feature-link" href="https://cove.is/product/tenant-experience?hsLang=en">Learn more <svg viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6" /></svg></a> 1558 </div> 1559 </li> 1560
1561 <li class="cove-feature" data-slide="2"> 1562 <div class="cove-feature-icon" aria-hidden="true"> 1563 <svg viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 1564 <path d="M3 21h18" /> 1565 <path d="M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16" /> 1566 <circle cx="14.5" cy="12" r="1" fill="currentColor" stroke="none" /> 1567 </svg> 1568 </div> 1569 <div class="cove-feature-text"> 1570 <strong>Visitor Management</strong> that runs the front desk with pre-registration, host notifications, and a check-in flow your security, ops, and tenant teams all share. 1571 <a class="cove-feature-link" href="https://cove.is/product/visitor-management-software?hsLang=en">Learn more <svg viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6" /></svg></a> 1572 </div> 1573 </li> 1574 1575 <li class="cove-feature" data-slide="3"> 1576 <div class="cove-feature-icon" aria-hidden="true"> 1577 <svg viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 1578 <path d="M12 2L9 7l-5 1 4 4-1 5 5-3 5 3-1-5 4-4-5-1z" /> 1579 <circle cx="12" cy="11" r="2" /> 1580 </svg> 1581 </div> 1582 <div class="cove-feature-text"> 1583 <strong>CoveAI</strong> working alongside your team across every building, compounding portfolio intelligence over time so the longer you run on Cove, the smarter your operation gets. 1584 <a class="cove-feature-link" href="https://cove.is/ai-property-management-software?hsLang=en">Learn more <svg viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6" /></svg></a> 1585 </div> 1586 </li> 1587 </ul> 1588 </div> 1589 1590 <!-- Right: Carousel --> 1591 <div class="cove-showcase"> 1592 <div class="cove-os-tabs" style="position:relative;width:calc(100% + 220px);height:100%;min-height:520px;border-radius:20px;overflow:hidden;border:1px solid rgba(0,53,103,0.1);box-shadow:0 24px 60px -30px rgba(0,53,103,0.25);background:#fff;"> 1593 <iframe class="cove-os-frame" data-panel="0" title="Building Operations" loading="lazy" srcdoc="<!DOCTYPE html> 1594<html lang="en"> 1595<head> 1596<meta charset="UTF-8" /> 1597<meta name="viewport" content="width=device-width, initial-scale=1.0" /> 1598<title>Cove Platform, Self-Assembling Showcase</title> 1599<link rel="preconnect" href="https://fonts.googleapis.com" /> 1600<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> 1601<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet" /> 1602<style> 1603 html,body{margin:0; height:100%; background:transparent !important;} 1604 .cove-os{ 1605 --navy-950:#06122E; --navy-900:#0A1B3D; --navy-850:#0C1C3E; --navy-800:#10264F; --navy-700:#163261; 1606 --blue-600:#2F6BFF; --blue-500:#3D78FF; --blue-400:#6398FF; --sky-300:#A8C7FF; 1607 --amber:#E0901C; --amber-bg:#FCEFD6; --amber-tx:#A9690F; 1608 --red:#EF4444; --red-bg:#FCE4E4; --red-tx:#C1342D; 1609 --slate:#64748B; --slate-bg:#EDF1F7; --slate-tx:#475569; 1610 --blue-bg:#E7F0FF; --blue-tx:#1D4ED8; --hue:#52c9ec; 1611 --ink:#0E1F44; --ink-2:#3A4A6B; --muted:#8295B6; --line:#E6EBF4; --panel:#F3F5FA; 1612 --font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; 1613 position:relative; isolation:isolate; overflow:hidden; font-family:var(--font); 1614 color:var(--ink); padding:0; height:100%; 1615 background:transparent; 1616 box-sizing:border-box; 1617 } 1618 .cove-os *,.cove-os *::before,.cove-os *::after{box-sizing:border-box;} 1619 .os-wrap{max-width:1160px; margin:0 auto; height:100%; display:flex; flex-direction:column;} 1620 .os-head{text-align:center; margin:0 auto clamp(22px,3vw,40px); max-width:680px;} 1621 .os-eyebrow{display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--sky-300); padding:7px 14px; border:1px solid rgba(168,199,255,.18); border-radius:999px; background:rgba(99,152,255,.08); margin-bottom:18px;} 1622 .os-eyebrow::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--blue-400); box-shadow:0 0 12px var(--blue-400);} 1623 .os-title{font-size:clamp(26px,4vw,42px); font-weight:800; line-height:1.08; letter-spacing:-.02em; margin:0 0 12px;} 1624 .os-title em{font-style:normal;
1624 color:var(--sky-300);} 1625 .os-sub{font-size:clamp(14px,1.5vw,17px); color:#9DB2DC; line-height:1.6; margin:0;} 1626 /* App window */ 1627 .os-window{ 1628 display:flex; flex:1; height:100%; border-radius:0; overflow:hidden; 1629 background:#fff; border:0; 1630 animation:os-pop .8s cubic-bezier(.2,.9,.3,1.2) both; 1631 } 1632 @keyframes os-pop{from{opacity:0; transform:translateY(24px) scale(.97);} to{opacity:1; transform:none;}} 1633 /* Sidebar */ 1634 .os-side{width:228px; flex:none; background:#0e1826; color:#c2cfe4; display:flex; flex-direction:column; padding:18px 14px; position:relative; overflow:hidden; 1635 animation:os-side-in .7s ease both .1s;} 1636 @keyframes os-side-in{from{transform:translateX(-30px); opacity:0;} to{transform:none; opacity:1;}} 1637 .os-brand{display:flex; align-items:center; justify-content:space-between; padding:4px 10px 14px;} .cove-logo{height:29px; width:auto; display:block;} .os-brand .cv{display:flex; align-items:center; gap:8px;} .os-brand .chev{width:16px; height:16px; color:#63799e;} 1638 .os-mark{width:30px; height:30px; border-radius:9px; background:linear-gradient(135deg,var(--blue-500),#1b46c2); flex:none; box-shadow:0 4px 12px rgba(47,107,255,.5); position:relative;} 1639 .os-mark::after{content:""; position:absolute; inset:8px; border-radius:5px; border:2px solid rgba(255,255,255,.85);} 1640 .os-brand b{font-size:15px; color:#fff; font-weight:700; line-height:1;} 1641 .os-brand span{display:block; font-size:8.5px; letter-spacing:.22em; color:#7e92bd; margin-top:3px;} 1642 .os-nav{position:relative; display:flex; flex-direction:column; gap:5px; flex:1; overflow:hidden;} 1643 .os-cap{font-size:9.5px; letter-spacing:.16em; color:#5d6f99; font-weight:700; padding:14px 10px 6px;} 1644 .os-item{display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:9px; font-size:12.5px; font-weight:500; color:#aebcdd; cursor:default; position:relative; z-index:1; transition:color .35s;} 1645 .os-item svg{width:15px; height:15px; flex:none; opacity:.85;} 1646 .os-item.active{color:#fff;} 1647 .os-ind{position:absolute; left:0; right:0; height:34px; border-radius:9px; background:rgba(255,255,255,.07); border:none; box-shadow:inset 3px 0 0 #52C9EC; z-index:0; transition:transform .5s cubic-bezier(.5,1.4,.4,1), height .3s ease; transform:translateY(0);} 1648 .os-ind::before{display:none;} 1649 .os-user{display:flex; align-items:center; gap:10px; padding:10px; margin-top:8px; border-radius:11px; background:rgba(255,255,255,.05);} 1650 .os-user .ava{width:30px; height:30px; font-size:11px;} 1651 .os-user b{font-size:12px; color:#fff; display:block;} .os-user span{font-size:10px; color:#8295b6;} 1652 /* Main */ 1653 .os-main{flex:1; background:var(--panel); display:flex; flex-direction:column; min-width:0;} 1654 .os-top{height:54px; flex:none; background:#fff; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:14px; padding:0 22px;} 1655 .os-crumb{font-size:13px; color:var(--muted); font-weight:500; white-space:nowrap;} 1656 .os-crumb b{color:var(--ink); font-weight:700;} 1657 .os-crumb i{font-style:normal; margin:0 7px; color:#c2cde0;} 1658 .os-search{flex:1; max-width:380px; height:32px; border-radius:8px; background:var(--panel); border:1px solid var(--line); display:flex; align-items:center; gap:8px; padding:0 12px; font-size:12px; color:var(--muted);} 1659 .os-search svg{width:13px; height:13px;} 1660 .os-icons{margin-left:auto; display:flex; align-items:center; gap:14px; color:var(--muted);} 1661 .os-icons svg{width:17px; height:17px;} 1662 .os-icons .ava{width:28px; height:28px; font-size:10.5px;} 1663 .os-body{flex:1; padding:22px 26px; overflow:hidden; position:relative;} 1664 .os-screen{height:100%; transition:opacity .35s ease, filter .35s ease, transform .35s ease;} 1665 .os-screen.leaving{opacity:0; filter:blur(6px); transform:scale(.985);} 1666 /* shared screen bits */ 1667 .sc-title{font-size:21px; font-weight:800; color:var(--ink); letter-spacing:-.01em; margin:0;} 1668 .sc-sub{font-size:12.5px; color:var(--muted); margin:3px 0 0;} 1669 .sc-tabs{display:flex; gap:6px; margin:16px 0 14px; flex-wrap:wrap;} 1670 .sc-tab{display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:600; color:var(--ink-2); padding:7px 12px; border-radius:9px; background:#fff; border:1px solid var(--line);} 1671 .sc-tab.on{background:var(--navy-850); color:#fff; border-color:var(--navy-850);} 1672 .sc-tab b{font-size:11px; padding:1px 7px; border-radius:999px; background:var(--panel); color:var(--ink-2);} 1673 .sc-tab.on b{background:rgba(255,255,255,.18); color:#fff;} 1674 .sc-tab.alert b{background:var(--red-bg); color:var(--red-tx);} 1675 .sc-card{background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden;} 1676 table.sc-tbl{width:100%; border-collapse:collapse; font-size:12px;} 1677 .sc-tbl thead{background:#fff !important;} .sc-tbl th{text-align:left; font-size:9.5px; letter-spacing:.07em; color:var(--muted); font-weight:700; text-transform:uppercase; padding:11px 14px; border-bottom:1px solid var(--line); background:#fff;; background:#fff !important; color:var(--muted) !important;} 1678 .sc-tbl td{padding:11px 14px; border-bottom:1px solid #F1F4FA;
1678 color:var(--ink-2); white-space:nowrap; vertical-align:middle;} 1679 .sc-tbl tr:last-child td{border-bottom:none;} 1680 .sc-tbl .id{color:#2F6BFF; font-weight:700;} 1681 .sc-tbl .strong{color:var(--ink); font-weight:600;} 1682 .site{display:inline-flex; align-items:center; gap:7px; color:var(--ink); font-weight:600;} 1683 .site svg{width:13px; height:13px; color:var(--blue-500);} 1684 .pill{display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:600; padding:3px 9px; border-radius:999px;} 1685 .pill::before{content:""; width:6px; height:6px; border-radius:50%; background:currentColor;} 1686 .pill.solid::before{display:none;} 1687 .st-blue{color:var(--blue-tx); background:var(--blue-bg);} 1688 .st-amber{color:var(--amber-tx); background:var(--amber-bg);} 1689 .st-red{color:var(--red-tx); background:var(--red-bg);} 1690 .st-slate{color:var(--slate-tx); background:var(--slate-bg);} .st-teal{color:#0e7d97; background:#d7f1f8;} 1691 .ava{display:inline-grid; place-items:center; width:24px; height:24px; border-radius:50%; color:#fff; font-size:9.5px; font-weight:700; flex:none;} 1692 .who{display:inline-flex; align-items:center; gap:8px; color:var(--ink); font-weight:600;} 1693 .who.un{color:var(--muted); font-weight:500;} 1694 .cat{display:inline-flex; align-items:center; gap:8px; color:var(--ink); font-weight:600;} 1695 .cat .ic{width:22px; height:22px; border-radius:7px; display:grid; place-items:center; flex:none;} 1696 .cat .ic svg{width:13px; height:13px; color:#fff;} 1697 .dot{display:inline-flex; align-items:center; gap:8px; color:var(--ink); font-weight:600;} 1698 .dot::before{content:""; width:9px; height:9px; border-radius:3px; background:var(--c,#2F6BFF);} 1699 /* COI stat cards */ 1700 .sc-stats{display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin-bottom:14px;} 1701 .stat{background:#fff; border:1px solid var(--line); border-radius:12px; padding:13px 13px 14px;} 1702 .stat .lab{display:flex; align-items:center; gap:6px; font-size:10px; font-weight:600; color:var(--ink-2); margin-bottom:9px; line-height:1.2;} 1703 .stat .lab::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--c,#2F6BFF); flex:none;} 1704 .stat .big{font-size:26px; font-weight:800; color:var(--ink); line-height:1;} 1705 .stat .pct{font-size:10px; font-weight:700; color:var(--c,#2F6BFF); margin-top:8px;} 1706 .stat .track{height:4px; border-radius:999px; background:var(--panel); margin-top:6px; overflow:hidden;} 1707 .stat .track i{display:block; height:100%; width:0; background:var(--c,#2F6BFF); border-radius:999px; transition:width 1s cubic-bezier(.22,1,.36,1);} 1708 /* Chart */ 1709 .ch-controls{display:flex; gap:8px; margin-bottom:14px; flex-wrap:wrap;} 1710 .ch-ctl{background:#fff; border:1px solid var(--line); border-radius:9px; padding:8px 12px; font-size:11px; min-width:120px;} 1711 .ch-ctl span{display:block; font-size:8.5px; letter-spacing:.08em; color:var(--muted); font-weight:700; text-transform:uppercase; margin-bottom:3px;} 1712 .ch-ctl b{color:var(--ink); font-weight:700; font-size:12px;} 1713 .ch-kpis{display:flex; gap:34px; margin-bottom:12px;} 1714 .ch-kpi span{display:block; font-size:9.5px; letter-spacing:.06em; color:var(--muted); font-weight:700; text-transform:uppercase;} 1715 .ch-kpi b{font-size:30px; font-weight:800; color:var(--ink); line-height:1.1;} 1716 .ch-bars{display:flex; flex-direction:column; gap:7px;} 1717 .ch-row{display:grid; grid-template-columns:96px 1fr; align-items:center; gap:12px;} 1718 .ch-name{font-size:11px; color:var(--ink-2); text-align:right; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;} 1719 .ch-track{position:relative; height:18px;} 1720 .ch-fill{height:100%; width:0; border-radius:5px; background:linear-gradient(90deg,#4f86ff,#2F6BFF); transition:width .9s cubic-bezier(.22,1,.36,1); display:flex; align-items:center; justify-content:flex-end; padding-right:7px; box-shadow:0 2px 6px rgba(47,107,255,.3);} 1721 .ch-fill b{font-size:10px; font-weight:700; color:#fff; opacity:0; transition:opacity .4s ease .5s;} 1722 .ch-fill.show b{opacity:1;} 1723 /* entrance keyframes */ 1724 @keyframes rise{from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:none;}} 1725 @keyframes pop{from{opacity:0; transform:scale(.94);} to{opacity:1; transform:none;}} 1726 .anim{opacity:0; animation:rise .55s cubic-bezier(.22,1,.36,1) both; animation-delay:var(--d,0ms);} 1727 .anim-pop{opacity:0; animation:pop .5s cubic-bezier(.2,.9,.3,1.3) both; animation-delay:var(--d,0ms);} 1728 /* controls */ 1729 .os-controls{display:none; align-items:center; justify-content:center; gap:16px; margin-top:18px;} 1730 .os-arrow{width:40px; height:40px; border-radius:50%; border:1px solid var(--hue); background:rgba(82,201,236,.14); color:#1593b8; cursor:pointer; display:grid; place-items:center; transition:.25s; flex:none;}
1731 .os-arrow:hover{background:var(--hue); border-color:var(--hue); color:#fff; transform:translateY(-2px);} 1732 .os-arrow svg{width:17px; height:17px;} 1733 .os-dots{display:flex; gap:10px;} 1734 .os-dot{--p:0; position:relative; width:32px; height:6px; border-radius:999px; border:none; padding:0; cursor:pointer; background:rgba(82,201,236,.28); overflow:hidden; transition:width .3s;} 1735 .os-dot i{position:absolute; inset:0; width:var(--p); background:linear-gradient(90deg,var(--blue-500),var(--hue)); border-radius:999px;} 1736 .os-dot.is-active{width:46px;} 1737 .os-foot{text-align:center; margin-top:clamp(28px,4vw,46px);} 1738 .os-tag{font-size:clamp(14px,1.7vw,18px); font-weight:600; color:#EAF1FF; margin:0;} 1739 .os-tag b{color:var(--sky-300); font-weight:700;} 1740 @media (max-width:760px){ 1741 .os-side{display:none;} 1742 .sc-stats{grid-template-columns:repeat(3,1fr);} 1743 .ch-kpis{gap:20px;} 1744 } 1745 @media (prefers-reduced-motion:reduce){ 1746 .cove-os .os-window,.cove-os .os-side{animation:none;} 1747 .cove-os .anim,.cove-os .anim-pop{animation-duration:.01ms !important; opacity:1;} 1748 } 1749</style> 1750</head> 1751<body style="margin:0;background:transparent;"> 1752<section class="cove-os" aria-label="Cove platform showcase"> 1753 <div class="os-wrap"> 1754 <div class="os-window"> 1755 <!-- Sidebar --> 1756 <aside class="os-side"> 1757 <div class="os-brand"><span class="cv"><img class="cove-logo" src="https://21927082.fs1.hubspotusercontent-na1.net/hubfs/21927082/Cove_Logo_White_Teal_Dot.png?width=140&name=Cove_Logo_White_Teal_Dot.png" alt="Cove" /></span><svg class="chev"
1757 viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg></div> 1758 <nav class="os-nav" id="osNav"> 1759 <div class="os-ind" id="osInd"></div> 1760 <a class="os-item" data-nav="home">${''}</a> 1761 </nav> 1762 </aside> 1763 <!-- Main --> 1764 <div class="os-main"> 1765 <div class="os-top"> 1766 <div class="os-crumb" id="osCrumb"></div> 1767 <div class="os-search"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="m21 21-4-4"/></svg>Search...</div> 1768 <div class="os-icons"> 1769 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 8a6 6 0 1 0-12 0c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.7 21a2 2 0 0 1-3.4 0"/></svg> 1770 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="9"/><path d="M9.5 9a2.5 2.5 0 1 1 3.5 2.3c-.7.4-1 .8-1 1.7"/><path d="M12 17h.01"/></svg> 1771 <span class="ava" style="background:#1D4ED8">OD</span> 1772 </div> 1773 </div> 1774 <div class="os-body"> 1775 <div class="os-screen" id="osScreen"></div> 1776 </div> 1777 </div> 1778 </div> 1779 <div class="os-controls"> 1780 <button class="os-arrow" id="osPrev" aria-label="Previous"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 18l-6-6 6-6"/></svg></button> 1781 <div class="os-dots" id="osDots"></div> 1782 <button class="os-arrow" id="osNext" aria-label="Next"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 6l6 6-6 6"/></svg></button> 1783 </div> 1784 </div> 1785</section>
1786<script> 1787(function(){ 1788 var root = document.querySelector('.cove-os'); 1789 /* ---------- icons ---------- */ 1790 var ICON = { 1791 home:'<path d="M3 11l9-8 9 8"/><path d="M5 10v10h14V10"/>', 1792 chat:'<path d="M21 15a2 2 0 0 1-2 2H8l-5 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>', 1793 inbox:'<path d="M3 5h18v14H3z"/><path d="M3 13h5l2 3h4l2-3h5"/>', 1794 wo:'<path d="M14.7 6.3a4 4 0 0 0-5.4 5.4L3 18v3h3l6.3-6.3a4 4 0 0 0 5.4-5.4l-2.5 2.5-2-2z"/>', 1795 maint:'<rect x="3" y="4" width="18" height="16" rx="2"/><path d="M8 4v4M16 4v4M3 10h18"/>', 1796 insp:'<path d="M9 11l3 3L22 4"/><path d="M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"/>', 1797 inc:'<path d="M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"/><path d="M12 9v4M12 17h.01"/>', 1798 dir:'<circle cx="9" cy="8" r="3"/><path d="M3 20a6 6 0 0 1 12 0"/><path d="M16 4a3 3 0 0 1 0 6M21 20a6 6 0 0 0-5-5.9"/>', 1799 coi:'<path d="M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z"/><path d="M9 12l2 2 4-4"/>', 1800 vis:'<rect x="3" y="4" width="18" height="16" rx="2"/><circle cx="9" cy="10" r="2"/><path d="M5 17a4 4 0 0 1 8 0M16 9h3M16 13h3"/>', 1801 reports:'<path d="M3 3v18h18"/><path d="M7 14l3-4 3 3 4-6"/>', 1802 admin:'<circle cx="12" cy="12" r="3.2"/><path d="M12 2v3M12 19v3M2 12h3M19 12h3M4.9 4.9l2.1 2.1M17 17l2.1 2.1M19.1 4.9L17 7M7 17l-2.1 2.1"/>', 1803 building:'<rect x="4" y="3" width="16" height="18" rx="1"/><path d="M9 7h2M13 7h2M9 11h2M13 11h2M9 15h2M13 15h2"/>', 1804 bolt:'<path d="M13 2 4 14h7l-1 8 9-12h-7z"/>', 1805 drop:'<path d="M12 3s6 6.5 6 11a6 6 0 0 1-12 0c0-4.5 6-11 6-11z"/>', 1806 user:'<circle cx="12" cy="8" r="4"/><path d="M4 21a8 8 0 0 1 16 0"/>', 1807 card:'<rect x="2" y="5" width="20" height="14" rx="2"/><path d="M2 10h20"/>', 1808 cal:'<rect x="3" y="4" width="18" height="17" rx="2"/><path d="M3 9h18M8 2v4M16 2v4"/>', 1809 wind:'<path d="M3 8h11a3 3 0 1 0-3-3"/><path d="M3 14h15a3 3 0 1 1-3 3"/>', 1810 spark:'<path d="M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5 18 18M18 6l-2.5 2.5M8.5 15.5 6 18"/>' 1811 }; 1812 function svg(name){return '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">'+(ICON[name]||'')+'</svg>';} 1813 /* sidebar nav build */ 1814 var NAV = [ 1815 ['home','Home'],['chat','Chat'],['inbox','Announcement Inbox'], 1816 1817 ['wo','Work Orders'],['maint','Maintenance'],['insp','Inspections'],['inc','Incidents'], 1818 1819 ['dir','Directories'],['coi','COI Management'],['vis','Visitors'],['reports','Reports & Analytics'],['admin','Admin'] 1820 ]; 1821 var navEl = document.getElementById('osNav'); 1822 var indEl = document.getElementById('osInd'); 1823 navEl.querySelectorAll('a').forEach(function(a){a.remove();}); 1824 NAV.forEach(function(it){ 1825 if(it[0]==='cap'){var c=document.createElement('div');c.className='os-cap';c.textContent=it[1];navEl.appendChild(c);return;} 1826 var a=document.createElement('a');a.className='os-item';a.dataset.nav=it[0]; 1827 a.innerHTML=svg(it[0])+'<span>'+it[1]+'</span>';navEl.appendChild(a); 1828 }); 1829 var navItems = Array.prototype.slice.call(navEl.querySelectorAll('.os-item')); 1830 /* ---------- helpers ---------- */ 1831 function site(name){return '<span class="site">'+svg('building')+name+'</span>';} 1832 var STMAP = { 1833 'Scheduled':'st-blue','In Progress':'st-blue','Active':'st-blue','Completed':'st-teal','Verified':'st-teal', 1834 'To-Do':'st-amber','Submitted':'st-amber','Accepted':'st-teal','Open':'st-amber','On Hold':'st-red','Expiring Soon':'st-amber','In Review':'st-amber', 1835 'Overdue':'st-red','Expired':'st-red','Action Needed':'st-red','Yes':'st-red', 1836 'High':'st-red','Medium':'st-amber','Low':'st-slate','No':'st-slate' 1837 };
1838 function pill(label,solid){return '<span class="pill '+(STMAP[label]||'st-slate')+(solid?' solid':'')+'">'+label+'</span>';} 1839 var AVC=['#2F6BFF','#5B53E8','#7C3AED','#0EA5E9','#DB7706','#E11D48','#475569','#1D4ED8','#0891B2']; 1840 function avaColor(n){var h=0;for(var i=0;i<n.length;i++)h=(h*31+n.charCodeAt(i))>>>0;return AVC[h%AVC.length];} 1841 function initials(n){var p=n.trim().split(/\s+/);return (p[0][0]+(p[1]?p[1][0]:'')).toUpperCase();} 1842 function who(name){if(name==='Unassigned')return '<span class="who un">Unassigned</span>';return '<span class="who"><span class="ava" style="background:'+avaColor(name)+'">'+initials(name)+'</span>'+name+'</span>';} 1843 var CATIC={'Access Card':['#5B53E8','card'],'Cleaning':['#0EA5E9','spark'],'Concierge':['#475569','user'],'Amenity Reservation':['#7C3AED','cal'],'HVAC':['#2F6BFF','wind'],'Plumbing':['#0EA5E9','drop'],'Electrical':['#DB7706','bolt'],'Janitorial':['#1D4ED8','spark']}; 1844 function cat(name){var c=CATIC[name]||['#475569','spark'];return '<span class="cat"><span class="ic" style="background:'+c[0]+'">'+svg(c[1])+'</span>'+name+'</span>';} 1845 var CATC={'HVAC':'#2F6BFF','Elevator':'#7C3AED','Janitorial':'#DB7706','Life Safety':'#E11D48','Electrical':'#E8A317','Security':'#334155','Plumbing':'#0EA5E9','Pest Control':'#1D4ED8','Exterior':'#DB7706','Logistics':'#475569'}; 1846 function catdot(name){return '<span class="dot" style="--c:'+(CATC[name]||'#2F6BFF')+'">'+name+'</span>';} 1847 function tabs(arr){return '<div class="sc-tabs">'+arr.map(function(t,i){return '<span class="sc-tab anim'+(i===0?' on':'')+(t[2]?' alert':'')+'" style="--d:'+(i*55+120)+'ms">'+t[0]+' <b>'+t[1]+'</b></span>';}).join('')+'</div>';} 1848 function head(title,sub){return '<div class="anim"><h1 class="sc-title">'+title+'</h1><p class="sc-sub">'+sub+'</p></div>';} 1849 function rows(cols, data){ 1850 var th='<tr>'+cols.map(function(c){return '<th>'+c+'</th>';}).join('')+'</tr>'; 1851 var tr=data.map(function(r,i){ 1852 return '<tr class="anim" style="--d:'+(i*65+260)+'ms">'+r.map(function(c){return '<td>'+c+'</td>';}).join('')+'</tr>'; 1853 }).join(''); 1854 return '<div class="sc-card anim" style="--d:200ms"><table class="sc-tbl"><thead>'+th+'</thead><tbody>'+tr+'</tbody></table></div>'; 1855 } 1856 /* ---------- screens ---------- */ 1857 var screens = [ 1858 { nav:'wo', crumb:'Operations <i>/</i> <b>Work Orders</b>', render:function(){ 1859 return head('Work Orders','Triage, schedule, and track maintenance tickets across your portfolio.') 1860 + tabs([['All','30'],['Scheduled','22'],['In Progress','4'],['On Hold','2'],['Overdue','2',1]]) 1861 + rows(['ID','Site','Category','Issue Type','Submitted','Status','Esc.'],[ 1862 ['<span class="id">WO-2461</span>',site('Meridian Plaza'),cat('Access Card'),'Freight Request','Dec 18, 2025',pill('Scheduled'),pill('No')], 1863 ['<span class="id">WO-2487</span>',site('Harbor Point'),cat('Concierge'),'Reservation Mgmt','May 18, 2026',pill('In Progress'),pill('No')], 1864 ['<span class="id">WO-2465</span>',site('The Lattice'),cat('Amenity Reservation'),'Office Setup','May 01, 2026',pill('Open'),pill('No')], 1865 ['<span class="id">WO-2512</span>',site('Gateway Tower'),cat('HVAC'),'Temperature','Jun 01, 2026',pill('In Progress'),pill('Yes')], 1866 ['<span class="id">WO-2402</span>',site('Vista West'),cat('Plumbing'),'Leak Repair','Feb 06, 2026',pill('On Hold'),pill('Yes')], 1867 ['<span class="id">WO-2403</span>',site('Vista West'),cat('Electrical'),'Lighting Outage','Feb 06, 2026',pill('Scheduled'),pill('No')] 1868 ]); 1869 }}, 1870 { nav:'maint', crumb:'Maintenance <i>/</i> <b>On-Demand Tasks</b>', render:function(){ 1871 return head('On-Demand Tasks','Ad-hoc maintenance tasks across equipment, suites, and floors.') 1872 + tabs([['All','88'],['To-Do','71'],['In Progress','14'],['Overdue','3',1]]) 1873 + rows(['Task #','Site','Name','Equipment','Assigned To','Status','Due'],[ 1874 ['<span class="id">PM-12100</span>',site('Meridian Plaza'),'<span class="strong">Follow up to PM-12099</span>','AHU-01',who('Unassigned'),pill('To-Do'),'May 28, 2026'], 1875 ['<span class="id">PM-11665</span>',site('Meridian Plaza'),'<span class="strong">Filter replacement</span>','AHU-01 Motor',who('Unassigned'),pill('To-Do'),'Apr 21, 2026'], 1876 ['<span class="id">PM-0368</span>',site('Harbor Point'),'<span class="strong">Pump seal service</span>
1876','In-Line Pump',who('Marcus Lane'),pill('To-Do'),'Apr 13, 2026'], 1877 ['<span class="id">PM-0367</span>',site('Harbor Point'),'<span class="strong">Replacement parts</span>','AHU-01',who('Marcus Lane'),pill('In Progress'),'Apr 13, 2026'], 1878 ['<span class="id">PM-0353</span>',site('Harbor Point'),'<span class="strong">Coil cleaning</span>','AHU-01',who('Priya Shah'),pill('To-Do'),'Feb 19, 2026'], 1879 ['<span class="id">PM-10590</span>',site('Meridian Plaza'),'<span class="strong">Quarterly chiller PM</span>','Chiller-02',who('Tara Quinn'),pill('In Progress'),'Jan 30, 2026'] 1880 ]); 1881 }}, 1882 { nav:'insp', crumb:'Inspections <i>/</i> <b>Open Inspections</b>', render:function(){ 1883 return head('Open Inspections','Scheduled and recurring inspections awaiting completion.') 1884 + tabs([['All','3,841'],['To-Do','3,778'],['In Progress','51'],['Overdue','12',1]]) 1885 + rows(['ID','Site','Name','Assigned To','Status','Building','Due','Interval'],[ 1886 ['<span class="id">INS-3196</span>',site('Meridian Plaza'),'<span class="strong">Daily Building Checklist</span>',who('Nadia Brooks'),pill('To-Do'),'Sitewide','Jun 03, 2026','Every 1 Day'], 1887 ['<span class="id">INS-3195</span>',site('Meridian Plaza'),'<span class="strong">Daily Rounds - North</span>',who('Owen Castillo'),pill('To-Do'),'District North','Jun 07, 2026','Every 1 Day'], 1888 ['<span class="id">INS-0892</span>',site('Harbor Point'),'<span class="strong">Daily Rounds</span>',who('Sela Davis'),pill('In Progress'),'Sitewide','Today','Every 1 Day'], 1889 ['<span class="id">INS-3193</span>',site('Meridian Plaza'),'<span class="strong">Building Test</span>',who('Liz Braden'),pill('To-Do'),'Sitewide','Today','Every 1 Week'], 1890 ['<span class="id">INS-3192</span>',site('Meridian Plaza'),'<span class="strong">Building Checklist Daily</span>',who('Chloe Weber'),pill('To-Do'),'Sitewide','Today','Every 1 Day'], 1891 ['<span class="id">INS-3188</span>',site('Gateway Tower'),'<span class="strong">Fire Extinguisher Check</span>',who('Marcus Lane'),pill('To-Do'),'Tower A','Jun 05, 2026','Every 1 Month'] 1892 ]); 1893 }}, 1894 { nav:'inc', crumb:'Incidents <i>/</i> <b>Open Incidents</b>', render:function(){ 1895 return head('Open Incidents','Reported safety and operational incidents under review.') 1896 + tabs([['All','26'],['High','18',1],['Medium','6'],['Low','2']]) 1897 + rows(['ID','Site','Title','Incident Type','Submitted','Status','Severity'],[ 1898 ['<span class="id">INC-0042</span>',site('Gateway Tower'),'<span class="strong">Lobby fire alarm activation</span>','Fire','Mar 23, 2026',pill('Open'),pill('High',1)], 1899 ['<span class="id">INC-0041</span>',site('Harbor Point'),'<span class="strong">Passenger trapped in Car 3</span>','Elevator Entrapment','Mar 10, 2026',pill('Open'),pill('High',1)], 1900 ['<span class="id">INC-0040</span>',site('Harbor Point'),'<span class="strong">Elevator door fault</span>','Elevator Malfunction','Feb 13, 2026',pill('Open'),pill('Medium',1)], 1901 ['<span class="id">INC-0039</span>',site('Meridian Plaza'),'<span class="strong">Ceiling leak on 14th floor</span>','Water Leak','Feb 12, 2026',pill('Open'),pill('Medium',1)], 1902 ['<span class="id">INC-0038</span>',site('Vista West'),'<span class="strong">Parking gate stuck open</span>','Access Control','Feb 12, 2026',pill('Open'),pill('Low',1)], 1903 ['<span class="id">INC-0037</span>',site('The Lattice'),'<span class="strong">After-hours intrusion alarm</span>','Security','Jan 15, 2026',pill('Open'),pill('High',1)] 1904 ]); 1905 }}, 1906 { nav:'coi', crumb:'COI Management <i>/</i> <b>Vendor COIs</b>', render:function(){ 1907 var stats=[ 1908 ['Vendors With COIs','207',98,'#2F6BFF'],['Compliant and Active','164',79,'#1
1908D4ED8'], 1909 ['Non-Compliant','11',5,'#DB7706'],['Expiring 60 Days','28',14,'#E0901C'], 1910 ['Expired','19',9,'#E11D48'],['Missing Coverage','5',2,'#C1342D'] 1911 ]; 1912 var cards='<div class="sc-stats">'+stats.map(function(s,i){ 1913 return '<div class="stat anim-pop" style="--c:'+s[3]+';--d:'+(i*70+120)+'ms"><div class="lab">'+s[0]+'</div><div class="big" data-count="'+s[1]+'">0</div><div class="pct">'+s[2]+'%</div><div class="track"><i data-w="'+s[2]+'"></i></div></div>'; 1914 }).join('')+'</div>'; 1915 var tbl=rows(['Vendor','Expiry Date','Category','Status','Compliance'],[ 1916 ['<span class="id">Apex Mechanical Group</span>','Sep 15, 2026',catdot('HVAC'),pill('Active'),pill('Verified')], 1917 ['<span class="id">Beacon Elevator Services</span>','Jan 26, 2027',catdot('Elevator'),pill('Active'),pill('Verified')], 1918 ['<span class="id">Crestline Janitorial Inc</span>','Jun 29, 2026',catdot('Janitorial'),pill('Expiring Soon'),pill('In Review')], 1919 ['<span class="id">Dynamic Fire & Safety</span>','Oct 01, 2026',catdot('Life Safety'),pill('Active'),pill('Verified')], 1920 ['<span class="id">Harborview Security LLC</span>','May 21, 2026',catdot('Security'),pill('Expired'),pill('Action Needed')], 1921 ['<span class="id">Granite Plumbing & Heating</span>','Nov 22, 2026',catdot('Plumbing'),pill('Active'),pill('Verified')] 1922 ]); 1923 return head('Vendor COI Management','Insurance certificates tracked, verified, and flagged before they lapse.')+'<div style="height:14px"></div>'+cards+tbl; 1924 }}, 1925 { nav:'reports', crumb:'Reports & Analytics <i>/</i> <b>Chart Builder</b>', render:function(){ 1926 var ctl='<div class="ch-controls">' 1927 +'<div class="ch-ctl anim" style="--d:120ms"><span>Metric</span><b>Work Order Count</b></div>' 1928 +'<div class="ch-ctl anim" style="--d:180ms"><span>Group By</span><b>Assignee</b></div>' 1929 +'<div class="ch-ctl anim" style="--d:240ms"><span>Sort Order</span><b>Descending</b></div>' 1930 +'<div class="ch-ctl anim" style="--d:300ms"><span>Page Size</span><b>25</b></div></div>'; 1931 var kpis='<div class="ch-kpis"><div class="ch-kpi anim" style="--d:200ms"><span>Total Work Order Count</span><b data-count="274">0</b></div>' 1932 +'<div class="ch-kpi anim" style="--d:280ms"><span>Matching Assignees</span><b data-count="23">0</b></div></div>'; 1933 var data=[['Lewis Smith',61],['Marcus Lane',22],['Priya Shah',20],['Diego Ramos',18],['Tara Quinn',16],['Owen Castillo',15],['Nadia Brooks',13],['Sela Davis',12],['Liz Braden',11],['Chloe Weber',10],['Sawyer Reed',9],['Dev Patel',8]]; 1934 var max=61; 1935 var bars='<div class="ch-bars">'+data.map(function(d,i){ 1936 return '<div class="ch-row anim" style="--d:'+(i*45+340)+'ms"><div class="ch-name">'+d[0]+'</div><div class="ch-track"><div class="ch-fill" data-w="'+(d[1]/max*100)+'" style="transition-delay:'+(i*45+340)+'ms"><b>'+d[1]+'</b></div></div></div>'; 1937 }).join('')+'</div>'; 1938 return head('Work Order Chart Builder','Build, save, and print custom work order analytics across your portfolio.')+'<div style="height:14px"></div>'+ctl+kpis+bars; 1939 }} 1940 ]; 1941 /* ---------- count up + bars ---------- */ 1942 function easeOut(t){return 1-Math.pow(1-t,3);} 1943 function countUp(el){ 1944 var to=parseInt(el.dataset.count,10), dur=1100, t0=null; 1945 function step(ts){if(!t0)t0=ts;var p=Math.min((ts-t0)/dur,1);el.textContent=Math.round(easeOut(p)*to).toLocaleString();if(p<1)requestAnimationFrame(step);} 1946 requestAnimationFrame(step); 1947 } 1948 function runScreen(el){ 1949 setTimeout(function(){el.querySelectorAll('[data-count]').forEach(countUp);},260); 1950 el.querySelectorAll('.stat .track i').forEach(function(i){requestAnimationFrame(function(){requestAnimationFrame(function(){i.style.width=i.dataset.w+'%';});});}); 1951 el.querySelectorAll('.ch-fill').forEach(function(f){requestAnimationFrame(function(){requestAnimationFrame(function(){f.style.width=f.dataset.w+'%';setTimeout(function(){f.classList.add('show');},f.dataset.w>14?300:600);});});}); 1952 } 1953 /* ---------- engine ---------- */ 1954 var screenEl=document.getElementById('osScreen'); 1955 var crumbEl=document.getElementById('osCrumb'); 1956 var dotsEl=document.getElementById('osDots'); 1957 var idx=0, raf=null, start=0, elapsed=0, paused=false, DWELL=2000; 1958 screens.forEach(function(_,i){var b=document.createElement('button');b.className='os-dot'+(i?'':' is-active');b.innerHTML='<i></i>';b.addEventListener('click',function(){goto(i);});dotsEl.appendChild(b);}); 1959 var dots=Array.prototype.slice.call(dotsEl.children); 1960 function moveInd(){ 1961 var a=navItems.filter(function(n){return n.classList.contains('active');})[0]; 1962 if(!a)return; indEl.style.height=a.offsetHeight+'px'; indEl.style.transform='translateY('+a.offsetTop+'px)'; 1963 } 1964 function render(i){ 1965 idx=(i+screens.length)%screens.length; var s=screens[idx]; 1966 crumbEl.innerHTML=s.crumb;
1967 navItems.forEach(function(n){n.classList.toggle('active',n.dataset.nav===s.nav);}); 1968 moveInd(); 1969 screenEl.classList.remove('leaving'); 1970 screenEl.innerHTML=s.render(); 1971 runScreen(screenEl); 1972 dots.forEach(function(d,k){d.classList.toggle('is-active',k===idx);d.firstElementChild.style.width='0%';}); 1973 startProgress(); 1974 } 1975 function goto(i){screenEl.classList.add('leaving');setTimeout(function(){render(i);},300);} 1976 function startProgress(){ 1977 cancelAnimationFrame(raf); start=0; elapsed=0; 1978 function tick(ts){ 1979 if(paused){start=ts-elapsed;raf=requestAnimationFrame(tick);return;} 1980 if(!start)start=ts; elapsed=ts-start; 1981 var p=Math.min(elapsed/DWELL,1); 1982 if(dots[idx])dots[idx].firstElementChild.style.width=(p*100)+'%'; 1983 if(p>=1){goto(idx+1);return;} 1984 raf=requestAnimationFrame(tick); 1985 } 1986 raf=requestAnimationFrame(tick); 1987 } 1988 document.getElementById('osNext').addEventListener('click',function(){goto(idx+1);}); 1989 document.getElementById('osPrev').addEventListener('click',function(){goto(idx-1);}); 1990 var win=document.querySelector('.os-window'); 1991 win.addEventListener('mouseenter',function(){paused=true;}); 1992 win.addEventListener('mouseleave',function(){paused=false;}); 1993 document.addEventListener('visibilitychange',function(){paused=document.hidden;}); 1994 if('IntersectionObserver' in window){new IntersectionObserver(function(e){paused=!e[0].isIntersecting;},{threshold:.15}).observe(win);} 1995 window.addEventListener('resize',moveInd); 1996 render(0); 1997})(); 1998</script>
1998 1999</body> 2000</html> 2001" style="position:absolute;inset:0;width:100%;height:100%;border:0;opacity:1;transition:opacity .45s ease;"></iframe> 2002 <iframe class="cove-os-frame" data-panel="1" title="Tenant Experience" loading="lazy" srcdoc="<!DOCTYPE html><html><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Sora:wght@400;500;600;700;800&display=swap" rel="stylesheet"><style>html,body{margin:0;height:100%;background:transparent;} /* ===== Platform showcase module (namespaced under .cove-os) ===== */ 2003 .cove-os{ 2004 --navy-950:#06122E; --navy-900:#0A1B3D; --navy-850:#0C1C3E; --navy-800:#10264F; 2005 --blue-600:#2F6BFF; --blue-500:#3D78FF; --blue-400:#6398FF; --sky-300:#A8C7FF; 2006 --amber:#E0901C; --amber-bg:#FCEFD6; --amber-tx:#A9690F; 2007 --red:#EF4444; --red-bg:#FCE4E4; --red-tx:#C1342D; 2008 --slate:#64748B; --slate-bg:#EDF1F7; --slate-tx:#475569; 2009 --blue-bg:#E7F0FF; --blue-tx:#1D4ED8; --hue:#52c9ec; 2010 --ink:#0E1F44; --ink-2:#3A4A6B; --muted:#8295B6; --line:#E6EBF4; --panel:#F3F5FA; 2011 --font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; 2012 position:relative; isolation:isolate; overflow:hidden; font-family:var(--font); 2013 color:var(--ink); padding:0; height:100%; background:transparent; box-sizing:border-box; 2014 } 2015 .cove-os *,.cove-os *::before,.cove-os *::after{box-sizing:border-box;} 2016 .cove-os .os-wrap{max-width:1180px; margin:0 auto; height:100%; display:flex; flex-direction:column;} 2017 .cove-os .os-window{ display:flex; flex:1; height:100%; border-radius:0; overflow:hidden; background:#fff; border:0; animation:os-pop .8s cubic-bezier(.2,.9,.3,1.2) both; } 2018 @keyframes os-pop{from{opacity:0; transform:translateY(24px) scale(.97);} to{opacity:1; transform:none;}} 2019 .cove-os .os-side{width:228px; flex:none; background:#0e1826; color:#c2cfe4; display:flex; flex-direction:column; padding:16px 13px; overflow:hidden; animation:os-side-in .7s ease both .1s;} 2020 @keyframes os-side-in{from{transform:translateX(-30px); opacity:0;} to{transform:none; opacity:1;}} 2021 .cove-os .os-brand{display:flex; align-items:center; justify-content:space-between; padding:4px 10px 14px;} .cove-logo{height:29px; width:auto; display:block;} .os-brand .cv{display:flex; align-items:center; gap:8px;} .os-brand .chev{width:16px; height:16px; color:#63799e;} 2022 .cove-os .os-mark{width:30px; height:30px; border-radius:9px; background:linear-gradient(135deg,var(--blue-500),#1b46c2); flex:none; box-shadow:0 4px 12px rgba(47,107,255,.5); position:relative;} 2023 .cove-os .os-mark::after{content:""; position:absolute; inset:8px; border-radius:5px; border:2px solid rgba(255,255,255,.85);} 2024 .cove-os .os-brand b{font-size:15px; color:#fff; font-weight:700; line-height:1;} 2025 .cove-os .os-brand span{display:block; font-size:8.5px; letter-spacing:.22em; color:#7e92bd; margin-top:3px;} 2026 .cove-os .os-nav{position:relative; display:flex; flex-direction:column; gap:5px; flex:1; overflow:hidden;} 2027 .cove-os .os-cap{font-size:9px; letter-spacing:.16em; color:#5d6f99; font-weight:700; padding:10px 10px 4px;} 2028 .cove-os .os-item{display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:8px; font-size:12px; font-weight:500; color:#aebcdd; cursor:default; position:relative; z-index:1; transition:color .35s;} 2029 .cove-os .os-item svg{width:14px; height:14px; flex:none; opacity:.85;} 2030 .cove-os .os-item.active{color:#fff;} 2031 .cove-os .os-ind{position:absolute; left:0; right:0; height:30px; border-radius:8px; background:rgba(255,255,255,.07); border:none; box-shadow:inset 3px 0 0 #52C9EC; z-index:0; transition:transform .5s cubic-bezier(.5,1.4,.4,1), height .3s ease;} 2032 .cove-os .os-ind::before{display:none;} 2033 .cove-os .os-user{display:flex; align-items:center; gap:10px; padding:9px; margin-top:6px; border-radius:11px; background:rgba(255,255,255,.05);} 2034 .cove-os .os-user .ava{width:30px; height:30px; font-size:11px;} 2035 .cove-os .os-user b{font-size:12px; color:#fff; display:block;} .cove-os .os-user span{font-size:10px; color:#8295b6;} 2036 .cove-os .os-main{flex:1; background:var(--panel); display:flex; flex-direction:column; min-width:0;} 2037 .cove-os .os-top{height:52px; flex:none; background:#fff; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:14px; padding:0 20px;} 2038 .cove-os .os-crumb{font-size:13px; color:var(--muted); font-weight:500; white-space:nowrap;} 2039 .cove-os .os-crumb b{color:var(--ink); font-weight:700;} 2040 .cove-os .os-crumb i{font-style:normal; margin:0 7px;
2040 color:#c2cde0;} 2041 .cove-os .os-search{flex:1; max-width:360px; height:31px; border-radius:8px; background:var(--panel); border:1px solid var(--line); display:flex; align-items:center; gap:8px; padding:0 12px; font-size:12px; color:var(--muted);} 2042 .cove-os .os-search svg{width:13px; height:13px;} 2043 .cove-os .os-icons{margin-left:auto; display:flex; align-items:center; gap:14px; color:var(--muted);} 2044 .cove-os .os-icons svg{width:17px; height:17px;} 2045 .cove-os .os-icons .ava{width:28px; height:28px; font-size:10.5px;} 2046 .cove-os .os-body{flex:1; padding:20px 24px; overflow:hidden; position:relative;} 2047 .cove-os .os-screen{height:100%; transition:opacity .35s ease, filter .35s ease, transform .35s ease;} 2048 .cove-os .os-screen.leaving{opacity:0; filter:blur(6px); transform:scale(.985);} 2049 .cove-os .sc-title{font-size:20px; font-weight:800; color:var(--ink); letter-spacing:-.01em; margin:0;} 2050 .cove-os .sc-sub{font-size:12px; color:var(--muted); margin:3px 0 0;} 2051 .cove-os .sc-tabs{display:flex; gap:6px; margin:14px 0 12px; flex-wrap:wrap;} 2052 .cove-os .sc-tab{display:inline-flex; align-items:center; gap:7px; font-size:11.5px; font-weight:600; color:var(--ink-2); padding:6px 11px; border-radius:9px; background:#fff; border:1px solid var(--line);} 2053 .cove-os .sc-tab.on{background:var(--navy-850); color:#fff; border-color:var(--navy-850);} 2054 .cove-os .sc-tab b{font-size:10.5px; padding:1px 7px; border-radius:999px; background:var(--panel); color:var(--ink-2);} 2055 .cove-os .sc-tab.on b{background:rgba(255,255,255,.18); color:#fff;} 2056 .cove-os .sc-tab.alert b{background:var(--red-bg); color:var(--red-tx);} 2057 .cove-os .sc-card{background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden;} 2058 .cove-os table.sc-tbl{width:100%; border-collapse:collapse; border-spacing:0; font-size:11.5px; border:0;} 2059 .cove-os .sc-tbl tr{border:0; background:transparent;} 2060 .cove-os .sc-tbl thead{background:#fff !important;} .sc-tbl th{text-align:left; font-size:9px; letter-spacing:.06em; color:var(--muted); font-weight:700; text-transform:uppercase; padding:10px 13px; border:0; border-bottom:1px solid var(--line);; background:#fff !important; color:var(--muted) !important;} 2061 .cove-os .sc-tbl td{padding:9px 13px; border:0; border-bottom:1px solid #F1F4FA; color:var(--ink-2); white-space:nowrap; vertical-align:middle;} 2062 .cove-os .sc-tbl tr:last-child td{border-bottom:none;} 2063 .cove-os .sc-tbl .id{color:#2F6BFF; font-weight:700;} 2064 .cove-os .sc-tbl .strong{color:var(--ink); font-weight:600;} 2065 .cove-os .sc-tbl .msg{color:var(--muted); font-weight:400; max-width:240px; overflow:hidden; text-overflow:ellipsis;} 2066 .cove-os .site{display:inline-flex; align-items:center; gap:7px; color:var(--ink); font-weight:600;} 2067 .cove-os .site svg{width:13px; height:13px; color:var(--blue-500);} 2068 .cove-os .acts{display:inline-flex; gap:9px; color:var(--muted);} .cove-os .acts svg{width:14px;height:14px;} 2069 .cove-os .pill{display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:600; padding:3px 9px; border-radius:999px;} 2070 .cove-os .pill::before{content:""; width:6px; height:6px; border-radius:50%; background:currentColor;} 2071 .cove-os .pill.solid::before{display:none;} 2072 .cove-os .pill.chk::before{content:""; width:11px; height:11px; border-radius:0; background:none; 2073 -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; 2074 mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; background:currentColor;} 2075 .cove-os .st-blue{color:var(--blue-tx); background:var(--blue-bg);} 2076 .cove-os .st-amber{color:var(--amber-tx); background:var(--amber-bg);} 2077 .cove-os .st-red{color:var(--red-tx); background:var(--red-bg);} 2078 .cove-os .st-slate{color:var(--slate-tx); background:var(--slate-bg);} .st-teal{color:#0e7d97; background:#d7f1f8;} 2079 .cove-os .tag{display:inline-block; font-size:10.5px; font-weight:700; color:var(--blue-tx); background:var(--blue-bg); padding:2px 9px; border-radius:7px;} 2080 .cove-os .ava{display:inline-grid; place-items:center; width:24px; height:24px; border-radius:50%; color:#fff; font-size:9.5px; font-weight:700; flex:none;} 2081 .cove-os .who{display:inline-flex; align-items:center; gap:8px; color:var(--ink); font-weight:600;} 2082 .cove-os .who.un{color:var(--muted); font-weight:500;} 2083 .cove-os .cat{display:inline-flex; align-items:center; gap:8px; color:var(--ink); font-weight:600;} 2084 .cove-os .cat .ic{width:22px; height:22px; border-radius:7px; display:grid; place-items:center; flex:none;} 2085 .cove-os .cat .ic svg{width:13px; height:13px; color:#fff;} 2086 .cove-os .dot{display:inline-flex; align-items:center; gap:8px; color:var(--ink); font-weight:600;} 2087 .cove-os .dot::before{content:""; width:9px; height:9px; border-radius:3px; background:var(--c,#2F6BFF);} 2088 .cove-os .evt-img{width:30px; height:30px; border-radius:8px; display:inline-grid; place-items:center; color:#fff;} 2089 .cove-os .evt-img svg{width:16px; height:16px;} 2090 .cove-os .sc-stats{display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin-bottom:14px;} 2091 .cove-os .stat{background:#fff; border:1px solid var(--line); border-radius:12px; padding:12px;} 2092 .cove-os .stat .lab{display:flex; align-items:center; gap:6px; font-size:10px; font-weight:600; color:var(--ink-2); margin-bottom:8px; line-height:1.2;} 2093 .cove-os .stat .lab::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--c,#2F6BFF); flex:none;} 2094 .cove-os .stat .big{font-size:25px; font-weight:800; color:var(--ink); line-height:1;} 2095 .cove-os .stat .pct{font-size:10px; font-weight:700; color:var(--c,#2F6BFF); margin-top:7px;} 2096 .cove-os .stat .track{height:4px; border-radius:999px; background:var(--panel); margin-top:6px; overflow:hidden;} 2097 .cove-os .stat .track i{display:block; height:100%; width:0; background:var(--c,#2F6BFF); border-radius:999px; transition:width 1s cubic-bezier(.22,1,.36,1);} 2098 .cove-os .ch-controls{display:flex; gap:8px; margin-bottom:12px; flex-wrap:wrap;} 2099 .cove-os .ch-ctl{background:#fff; border:1px solid var(--line); border-radius:9px; padding:7px 11px; font-size:11px; min-width:115px;}
2100 .cove-os .ch-ctl span{display:block; font-size:8.5px; letter-spacing:.08em; color:var(--muted); font-weight:700; text-transform:uppercase; margin-bottom:3px;} 2101 .cove-os .ch-ctl b{color:var(--ink); font-weight:700; font-size:12px;} 2102 .cove-os .ch-kpis{display:flex; gap:34px; margin-bottom:10px;} 2103 .cove-os .ch-kpi span{display:block; font-size:9.5px; letter-spacing:.06em; color:var(--muted); font-weight:700; text-transform:uppercase;} 2104 .cove-os .ch-kpi b{font-size:28px; font-weight:800; color:var(--ink); line-height:1.1;} 2105 .cove-os .ch-bars{display:flex; flex-direction:column; gap:6px;} 2106 .cove-os .ch-row{display:grid; grid-template-columns:92px 1fr; align-items:center; gap:12px;} 2107 .cove-os .ch-name{font-size:11px; color:var(--ink-2); text-align:right; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;} 2108 .cove-os .ch-track{position:relative; height:17px;} 2109 .cove-os .ch-fill{height:100%; width:0; border-radius:5px; background:linear-gradient(90deg,#4f86ff,#2F6BFF); transition:width .9s cubic-bezier(.22,1,.36,1); display:flex; align-items:center; justify-content:flex-end; padding-right:7px; box-shadow:0 2px 6px rgba(47,107,255,.3);} 2110 .cove-os .ch-fill b{font-size:10px; font-weight:700; color:#fff; opacity:0; transition:opacity .4s ease;} 2111 .cove-os .ch-fill.show b{opacity:1;} 2112 .cove-os .rep-grid{display:grid; grid-template-columns:1fr 1fr; gap:11px;} 2113 .cove-os .rep-card{background:#fff; border:1px solid var(--line); border-radius:12px; padding:12px 14px;} 2114 .cove-os .rep-h{font-size:12.5px; font-weight:700; color:var(--ink);} 2115 .cove-os .rep-s{font-size:9.5px; color:var(--muted); margin:1px 0 7px;} 2116 .cove-os .rep-leg{display:flex; gap:9px; flex-wrap:wrap; margin-bottom:8px;} 2117 .cove-os .lg{display:flex; align-items:center; gap:5px; font-size:9px; color:var(--ink-2); font-weight:600;} 2118 .cove-os .lg::before{content:""; width:7px; height:7px; border-radius:2px; background:var(--c);} 2119 .cove-os .lg.more{color:var(--muted);} .cove-os .lg.more::before{display:none;} 2120 .cove-os .mb-row{display:grid; grid-template-columns:64px 1fr 26px; align-items:center; gap:9px; margin-bottom:5px;} 2121 .cove-os .mb-name{font-size:9.5px; color:var(--ink-2); text-align:right; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;} 2122 .cove-os .mb-track{height:11px; border-radius:4px; background:#EEF2F8; overflow:hidden;} 2123 .cove-os .mb-fill{height:100%; width:0; border-radius:4px; transition:width .8s cubic-bezier(.22,1,.36,1);} 2124 .cove-os .mb-val{font-size:9.5px; font-weight:700; color:var(--ink);} 2125 .cove-os .ph-hero{border-radius:14px; padding:22px 22px; background:linear-gradient(120deg,#0E1F44,#1d2b50); color:#fff; position:relative; overflow:hidden; margin-bottom:16px;} 2126 .cove-os .ph-hero::after{content:""; position:absolute; right:0; top:0; bottom:0; width:55%; 2127 background:repeating-linear-gradient(95deg,rgba(255,255,255,.05) 0 26px,transparent 26px 64px); mask:linear-gradient(90deg,transparent,#000);} 2128 .cove-os .ph-hero span{font-size:11px; color:#9DB2DC; font-weight:600; position:relative;} 2129 .cove-os .ph-hero h1{font-size:25px; font-weight:800; margin:5px 0 0; position:relative;} 2130 .cove-os .ph-sec-h{display:flex; align-items:center; justify-content:space-between; margin:12px 0 9px; border-bottom:1px solid var(--line); padding-bottom:7px;} 2131 .cove-os .ph-sec-h h3{font-size:15px; font-weight:800; color:var(--ink); margin:0;} 2132 .cove-os .ph-sec-h a{font-size:11px; font-weight:700; color:var(--blue-tx);} 2133 .cove-os .ph-events{display:grid; grid-template-columns:1fr 1fr; gap:18px;} 2134 .cove-os .ph-evt{display:flex; gap:12px;} 2135 .cove-os .ph-thumb{width:80px; height:80px; border-radius:14px; flex:none; display:grid; place-items:center; color:#fff;} 2136 .cove-os .ph-thumb svg{width:30px; height:30px;} 2137 .cove-os .ph-evt .t{font-size:13px; font-weight:700; color:var(--ink); line-height:1.25;} 2138 .cove-os .ph-evt .d{font-size:11px; color:var(--muted); margin-top:4px; line-height:1.55;} 2139 .cove-os .ph-amen{display:flex; gap:16px;} 2140 .cove-os .ph-tile .img{width:150px; height:78px; border-radius:12px; display:grid; place-items:center; color:#fff;} 2141 .cove-os .ph-tile .img svg{width:30px; height:30px;} 2142 .cove-os .ph-tile .l{font-size:12px; font-weight:700; color:var(--ink); margin-top:7px;} 2143 @keyframes rise{from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:none;}} 2144 @keyframes pop{from{opacity:0; transform:scale(.94);} to{opacity:1; transform:none;}} 2145 .cove-os .anim{opacity:0; animation:rise .55s cubic-bezier(.22,1,.36,1) both; animation-delay:var(--d,0ms);} 2146 .cove-os .anim-pop{opacity:0; animation:pop .5s cubic-bezier(.2,.9,.3,1.3) both; animation-delay:var(--d,0ms);} 2147 .cove-os .os-controls{display:none;} 2148 @media (max-width:760px){ 2149 .cove-os .os-side{display:none;} 2150 .cove-os .sc-stats{grid-template-columns:repeat(3,1fr);} 2151 .cove-os .rep-grid,.cove-os .ph-events{grid-template-columns:1fr;} 2152 } 2153 @media (prefers-reduced-motion:reduce){ 2154 .cove-os .os-window,.cove-os .os-side{animation:none;} 2155 .cove-os .anim,.cove-os .anim-pop{animation-duration:.01ms !important; opacity:1;} 2156 } 2157</style></head><body> <section class="cove-os" aria-label="Cove platform showcase"> 2158 <div class="os-wrap"> 2159 <div class="os-window"> 2160 <aside class="os-side"> 2161 <div class="os-brand"><span class="cv"><img class="cove-logo" src="https://21927082.fs1.hubspotusercontent-na1.net/hubfs/21927082/Cove_Logo_White_Teal_Dot.png?width=140&name=Cove_Logo_White_Teal_Dot.png" alt="Cove" /></span><svg class="chev"
2161 viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg></div> 2162 <nav class="os-nav" id="osNav"><div class="os-ind" id="osInd"></div></nav> 2163 </aside> 2164 <div class="os-main"> 2165 <div class="os-top"> 2166 <div class="os-crumb" id="osCrumb"></div> 2167 <div class="os-search"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="m21 21-4-4"/></svg>Search...</div> 2168 <div class="os-icons"> 2169 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 8a6 6 0 1 0-12 0c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.7 21a2 2 0 0 1-3.4 0"/></svg> 2170 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="9"/><path d="M9.5 9a2.5 2.5 0 1 1 3.5 2.3c-.7.4-1 .8-1 1.7"/><path d="M12 17h.01"/></svg> 2171 <span class="ava" style="background:#1D4ED8">OD</span> 2172 </div> 2173 </div> 2174 <div class="os-body"><div class="os-screen" id="osScreen"></div></div> 2175 </div> 2176 </div> 2177 <div class="os-controls"> 2178 <button class="os-arrow" id="osPrev" aria-label="Previous"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 18l-6-6 6-6"/></svg></button> 2179 <div class="os-dots" id="osDots"></div> 2180 <button class="os-arrow" id="osNext" aria-label="Next"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 6l6 6-6 6"/></svg></button> 2181 </div> 2182 </div> 2183 </section>
2183<script>(function(){ 2184 var ICON = { 2185 home:'<path d="M3 11l9-8 9 8"/><path d="M5 10v10h14V10"/>', 2186 chat:'<path d="M21 15a2 2 0 0 1-2 2H8l-5 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>', 2187 inbox:'<path d="M3 5h18v14H3z"/><path d="M3 13h5l2 3h4l2-3h5"/>', 2188 wo:'<path d="M14.7 6.3a4 4 0 0 0-5.4 5.4L3 18v3h3l6.3-6.3a4 4 0 0 0 5.4-5.4l-2.5 2.5-2-2z"/>', 2189 maint:'<rect x="3" y="4" width="18" height="16" rx="2"/><path d="M8 4v4M16 4v4M3 10h18"/>', 2190 insp:'<path d="M9 11l3 3L22 4"/><path d="M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"/>', 2191 inc:'<path d="M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"/><path d="M12 9v4M12 17h.01"/>', 2192 resv:'<rect x="3" y="4" width="18" height="17" rx="2"/><path d="M3 9h18M8 2v4M16 2v4"/>', 2193 engage:'<path d="M3 11l18-8-8 18-2-7-8-3z"/>', 2194 dir:'<circle cx="9" cy="8" r="3"/><path d="M3 20a6 6 0 0 1 12 0"/><path d="M16 4a3 3 0 0 1 0 6M21 20a6 6 0 0 0-5-5.9"/>', 2195 coi:'<path d="M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z"/><path d="M9 12l2 2 4-4"/>', 2196 vis:'<rect x="3" y="4" width="18" height="16" rx="2"/><circle cx="9" cy="10" r="2"/><path d="M5 17a4 4 0 0 1 8 0M16 9h3M16 13h3"/>', 2197 reports:'<path d="M3 3v18h18"/><path d="M7 14l3-4 3 3 4-6"/>', 2198 admin:'<circle cx="12" cy="12" r="3.2"/><path d="M12 2v3M12 19v3M2 12h3M19 12h3M4.9 4.9l2.1 2.1M17 17l2.1 2.1M19.1 4.9L17 7M7 17l-2.1 2.1"/>', 2199 building:'<rect x="4" y="3" width="16" height="18" rx="1"/><path d="M9 7h2M13 7h2M9 11h2M13 11h2M9 15h2M13 15h2"/>', 2200 bolt:'<path d="M13 2 4 14h7l-1 8 9-12h-7z"/>', drop:'<path d="M12 3s6 6.5 6 11a6 6 0 0 1-12 0c0-4.5 6-11 6-11z"/>', 2201 user:'<circle cx="12" cy="8" r="4"/><path d="M4 21a8 8 0 0 1 16 0"/>', card:'<rect x="2" y="5" width="20" height="14" rx="2"/><path d="M2 10h20"/>', 2202 cal:'<rect x="3" y="4" width="18" height="17" rx="2"/><path d="M3 9h18M8 2v4M16 2v4"/>', wind:'<path d="M3 8h11a3 3 0 1 0-3-3"/><path d="M3 14h15a3 3 0 1 1-3 3"/>', 2203 spark:'<path d="M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5 18 18M18 6l-2.5 2.5M8.5 15.5 6 18"/>', 2204 paw:'<circle cx="6" cy="11" r="1.7"/><circle cx="9.5" cy="6.5" r="1.7"/><circle cx="14.5" cy="6.5" r="1.7"/><circle cx="18" cy="11" r="1.7"/><path d="M12 13c-2.4 0-4.3 1.9-4.3 3.8 0 1.5 1.2 2.4 2.6 2.4 1 0 1.2-.5 1.7-.5s.7.5 1.7.5c1.4 0 2.6-.9 2.6-2.4C16.3 14.9 14.4 13 12 13z"/>', 2205 bird:'<path d="M16 7a3 3 0 1 0-6 0c0 4-4 6-7 6 2 3 6 4 9 3 4-1 6-5 6-9l2-2-4 .6z"/>', 2206 music:'<path d="M9 18V5l10-2v11"/><circle cx="6" cy="18" r="3"/><circle cx="16" cy="14" r="3"/>', 2207 heart:'<path d="M12 21s-7-4.5-9.5-9C1 9 2.5 5.5 6 5.5c2 0 3 1.2 4 2.5 1-1.3 2-2.5 4-2.5 3.5 0 5 3.5 3.5 6.5C19 16.5 12 21 12 21z"/>', 2208 plane:'<path d="M21 15.5 13 11V4.5a1.5 1.5 0 0 0-3 0V11l-8 4.5V18l8-2.3V20l-2 1.3V23l3.5-1 3.5 1v-1.7L13 20v-4.3z"/>', 2209 sun:'<circle cx="12" cy="12" r="4"/><path d="M12 2v3M12 19v3M2 12h3M19 12h3M5 5l2 2M17 17l2 2M19 5l-2 2M7 17l-2 2"/>', 2210 couch:'<path d="M5 11V8a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v3"/><path d="M3 12a2 2 0 0 1 4 0v3h10v-3a2 2 0 0 1 4 0v5H3z"/><path d="M6 20v-2M18 20v-2"/>', 2211 table:'<ellipse cx="12" cy="9" rx="8" ry="3"/><path d="M4 9v3a8 3 0 0 0 16 0V9"/><circle cx="8" cy="6.5" r=".8"/><circle cx="12" cy="6" r=".8"/><circle cx="16" cy="6.5" r=".8"/>', 2212 bike:'<circle cx="6" cy="17" r="3.3"/><circle cx="18" cy="17" r="3.3"/><path d="M6 17l4-7h5l3 7M10 10l-2-3H7m3 3h6"/>', 2213 eye:'<path d="M1 12s4-7 11-7 11 7 11 7-4 7-11 7-11-7-11-7z"/><circle cx="12" cy="12" r="3"/>', 2214 edit:'<path d="M12 20h9"/><path d="M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z"/>', 2215 copy:'<rect x="9" y="9" width="11" height="11" rx="2"/><path d="M5 15V5a2 2 0 0 1 2-2h10"/>', 2216 link:'<path d="M10 13a5 5 0 0 0 7 0l2-2a5 5 0 0 0-7-7l-1 1"/><path d="M14 11a5 5 0 0 0-7 0l-2 2a5 5 0 0 0 7 7l1-1"/>', 2217 trash:'<path d="M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"/>' 2218 }; 2219 function svg(n){return '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">'+(ICON[n]||'')+'</svg>';} 2220 var NAV=[['home','Home'],['chat','Chat'],['inbox','Announcement Inbox'], 2221 ['wo','Work Orders'],['maint','Maintenance'],['insp','Inspections'],['inc','Incidents'],['resv','Reservations'], 2222 ['engage','Engage'], 2223 ['dir','Directories'],['coi','COI Management'],['vis','Visitors'],['reports','Reports & Analytics'],['admin','Admin']]; 2224 var navEl=document.getElementById('osNav'), indEl=document.getElementById('osInd');
2225 NAV.forEach(function(it){ 2226 if(it[0]==='cap'){var c=document.createElement('div');c.className='os-cap';c.textContent=it[1];navEl.appendChild(c);return;} 2227 var a=document.createElement('a');a.className='os-item';a.dataset.nav=it[0];a.innerHTML=svg(it[0])+'<span>'+it[1]+'</span>';navEl.appendChild(a); 2228 }); 2229 var navItems=Array.prototype.slice.call(navEl.querySelectorAll('.os-item')); 2230 function siteCell(n){return '<span class="site">'+svg('building')+n+'</span>';} 2231 var STMAP={'Scheduled':'st-blue','In Progress':'st-blue','Active':'st-blue','Completed':'st-teal','Verified':'st-teal','Published':'st-blue','Success':'st-teal','Yes':'st-red', 2232 'To-Do':'st-amber','Submitted':'st-amber','Accepted':'st-teal','Open':'st-amber','On Hold':'st-red','Expiring Soon':'st-amber','In Review':'st-amber', 2233 'Overdue':'st-red','Expired':'st-red','Action Needed':'st-red','High':'st-red','Medium':'st-amber','Low':'st-slate','No':'st-slate'}; 2234 function pill(label,solid){var chk=(label==='Verified'||label==='Completed'||label==='Success')?' chk':'';return '<span class="pill '+(STMAP[label]||'st-slate')+(solid?' solid':'')+chk+'">'+label+'</span>';} 2235 var AVC=['#2F6BFF','#5B53E8','#7C3AED','#0EA5E9','#DB7706','#E11D48','#475569','#1D4ED8','#0891B2']; 2236 function avaColor(n){var h=0;for(var i=0;i<n.length;i++)h=(h*31+n.charCodeAt(i))>>>0;return AVC[h%AVC.length];} 2237 function initials(n){var p=n.trim().split(/\s+/);return (p[0][0]+(p[1]?p[1][0]:'')).toUpperCase();} 2238 function who(n){if(n==='Unassigned')return '<span class="who un">Unassigned</span>';return '<span class="who"><span class="ava" style="background:'+avaColor(n)+'">'+initials(n)+'</span>'+n+'</span>';} 2239 var CATIC={'Access Card':['#5B53E8','card'],'Cleaning':['#0EA5E9','spark'],'Concierge':['#475569','user'],'Amenity Reservation':['#7C3AED','cal'],'HVAC':['#2F6BFF','wind'],'Plumbing':['#0EA5E9','drop'],'Electrical':['#DB7706','bolt'],'Janitorial':['#1D4ED8','spark']}; 2240 function cat(n){var c=CATIC[n]||['#475569','spark'];return '<span class="cat"><span class="ic" style="background:'+c[0]+'">'+svg(c[1])+'</span>'+n+'</span>';} 2241 var CATC={'HVAC':'#2F6BFF','Elevator':'#7C3AED','Janitorial':'#DB7706','Life Safety':'#E11D48','Electrical':'#E8A317','Security':'#334155','Plumbing':'#0EA5E9','Pest Control':'#1D4ED8','Exterior':'#EC4899','Logistics':'#475569'}; 2242 function catdot(n){return '<span class="dot" style="--c:'+(CATC[n]||'#2F6BFF')+'">'+n+'</span>';} 2243 function evtImg(grad,icon){return '<span class="evt-img" style="background:'+grad+'">'+svg(icon)+'</span>';} 2244 function actions(){return '<span class="acts">'+svg('edit')+svg('copy')+svg('link')+svg('trash')+'</span>';} 2245 function tabs(arr){return '<div class="sc-tabs">'+arr.map(function(t,i){return '<span class="sc-tab anim'+(i===0?' on':'')+(t[2]?' alert':'')+'" style="--d:'+(i*55+110)+'ms">'+t[0]+(t[1]!=null?' <b>'+t[1]+'</b>':'')+'</span>';}).join('')+'</div>';} 2246 function head(t,s){return '<div class="anim"><h1 class="sc-title">'+t+'</h1><p class="sc-sub">'+s+'</p></div>';} 2247 function rows(cols,data){ 2248 var th='<tr>'+cols.map(function(c){return '<th>'+c+'</th>';}).join('')+'</tr>'; 2249 var tr=data.map(function(r,i){return '<tr class="anim" style="--d:'+(i*60+250)+'ms">'+r.map(function(c){return '<td>'+c+'</td>';}).join('')+'</tr>';}).join(''); 2250 return '<div class="sc-card anim" style="--d:190ms"><table class="sc-tbl"><thead>'+th+'</thead><tbody>'+tr+'</tbody></table></div>'; 2251 } 2252 function repCard(title,sub,leg,data,base){ 2253 var max=Math.max.apply(null,data.map(function(d){return d[1];})); 2254 var legh='<div class="rep-leg">'+leg.map(function(l){return l[0]==='more'?'<span class="lg more">'+l[1]+'</span>':'<span class="lg" style="--c:'+l[1]+'">'+l[0]+'</span>';}).join('')+'</div>'; 2255 var bars=data.map(function(d,i){return '<div class="mb-row"><div class="mb-name">'+d[0]+'</div><div class="mb-track"><div class="mb-fill" data-w="'+(d[1]/max*100)+'" style="background:'+d[2]+';transition-delay:'+(base+i*55)+'ms"></div></div><div class="mb-val">'+d[1]+'</div></div>';}).join(''); 2256 return '<div class="rep-card anim" style="--d:'+base+'ms"><div class="rep-h">'+title+'</div><div class="rep-s">'+sub+'</div>'+legh+bars+'</div>'; 2257 } 2258 var SER=['#6366F1','#EF4444','#06B6D4','#E0901C','#8B5CF6','#EC4899']; 2259 var screens=[ 2260 { nav:'home', crumb:'<b>Property Home</b>', render:function(){ 2261 return '<div class="anim ph-hero"><span>Meridian Plaza</span><h1>Welcome, Owen!</h1></div>' 2262 +'<div class="anim" style="--d:120ms"><div class="ph-sec-h"><h3>Events</h3><a>SEE ALL</a></div>' 2263 +'<div class="ph-events">' 2264 +'<div class="ph-evt anim" style="--d:200ms"><div class="ph-thumb" style="background:linear-gradient(135deg,#EC4899,#F59E0B 55%,#6366F1)">'+svg('sun')+'</div><div><div class="t">Summer Rooftop Social</div><div class="d">Jun 9, 2026<br>5:00 PM - 7:00 PM<br>Rooftop Terrace</div></div></div>' 2265 +'<div class="ph-evt anim" style="--d:280ms"><div class="ph-thumb" style="background:linear-gradient(160deg,#F59E0B,#EF4444 60%,#1d2b50)">'+svg('plane')+'</div><div><div class="t">TSA PreCheck Enrollment Day</div><div class="d">Jun 16, 2026<br>9:00 AM - 3:00 PM<br>Concourse Level, Suite C</div></div></div>' 2266 +'</div></div>' 2267 +'<div class="anim" style="--d:340ms"><div class="ph-sec-h"><h3>Amenities</h3></div>' 2268 +'<div class="ph-amen">' 2269 +'<div class="ph-tile anim" style="--d:420ms"><div class="img" style="background:linear-gradient(160deg,#5a4636,#1a1f3a)">'+svg('couch')+'</div><div class="l">The Vault Lounge</div></div>' 2270 +'<div class="ph-tile anim" style="--d:480ms"><div class="img" style="background:linear-gradient(160deg,#1d2b50,#2F6BFF)">'+svg('table')+'</div><div class="l">The Assembly</div></div>' 2271 +'<div class="ph-tile anim" style="--d:540ms"><div class="img" style="background:linear-gradient(160deg,#22A7C4,#2F6BFF)">'+svg('bike')+'</div><div class="l">Bike Room</div></div>' 2272 +'</div></div>'; 2273 }}, 2274 { nav:'engage', crumb:'Engage <i>/</i> <b>Announcements</b>', render:function(){ 2275 return head('Announcements','Every announcement sent or scheduled across your properties.') 2276 +tabs([['Sent/Scheduled',null],['Drafts',null],['Templates',null]]) 2277 +rows(['Status','Subject','Message','Recipients','Send Date','Type','Delivery'],[ 2278 [pill('Scheduled'),'<span class="id">Join us for drinks at The Lounge (6/18)</span>','<span class="msg">Stop by The Lounge tonight for 10% off all drinks...</span>','<b>10,477</b>','Jun 18, 2026','<span class="tag">Property</span>','<span class="tag">Mobile Push</span>'], 2279 [pill('Scheduled'),'<span class="id">Bingo Night is back at The Lounge</span>','<span class="msg">An evening of laughs, prizes, and good company...</span>','<b>10,476</b>','Jun 15, 2026','<span class="tag">Property</span>','<span class="tag">Mobile Push</span>'], 2280 [pill('Scheduled'),'<span class="id">Give blood, save lives</span>','<span class="msg">
2280Join our June 17 blood drive in the Mezzanine...</span>','<b>10,473</b>','Jun 12, 2026','<span class="tag">Property</span>','<span class="tag">Mobile Push</span>'], 2281 [pill('Scheduled'),'<span class="id">Summer Concert Tonight, 6/11!</span>','<span class="msg">The Courtyard Summer Concert Series kicks off...</span>','<b>10,473</b>','Jun 11, 2026','<span class="tag">Marketing</span>','<span class="tag">Mobile Push</span>'], 2282 [pill('Success'),'<span class="id">Calling all nature lovers: Falcon Watch</span>','<span class="msg">Join us June 10th for a unique rooftop experience...</span>','<b>10,478</b>','Jun 02, 2026','<span class="tag">Property</span>','<span class="tag">Mobile Push</span>'], 2283 [pill('Success'),'<span class="id">June at Meridian: what\'s coming up</span>','<span class="msg">Summer is heating up and so is our events calendar...</span>','<b>10,452</b>','May 28, 2026','<span class="tag">Marketing</span>','<span class="tag">Mobile Push</span>'] 2284 ]); 2285 }}, 2286 { nav:'engage', crumb:'Engage <i>/</i> <b>Events</b>', render:function(){ 2287 return head('Events','RSVP-driven programming across your buildings.') 2288 +tabs([['Upcoming','9'],['Past',null],['Recurring','0'],['Calendar',null],['All RSVPs','3,350']]) 2289 +rows(['Image','Name','RSVP Rate','Total RSVPs','Start Date','Status'],[ 2290 [evtImg('linear-gradient(135deg,#E0901C,#C2410C)','paw'),'<span class="id">Adoption Day with Harbor Paws Rescue</span>','9.00%','45','Jun 04, 2026',pill('Published')], 2291 [evtImg('linear-gradient(135deg,#2F6BFF,#22A7C4)','bird'),'<span class="id">Rooftop Falcon Watch at Meridian Tower</span>','5.80%','29','Jun 10, 2026',pill('Published')], 2292 [evtImg('linear-gradient(135deg,#8B5CF6,#6366F1)','music'),'<span class="id">Courtyard Summer Concert Series</span>','7.40%','37','Jun 11, 2026',pill('Published')], 2293 [evtImg('linear-gradient(135deg,#EF4444,#B91C1C)','drop'),'<span class="id">Community Blood Drive (6/15)</span>','4.20%','21','Jun 15, 2026',pill('Published')], 2294 [evtImg('linear-gradient(135deg,#EC4899,#BE123C)','drop'),'<span class="id">Mezzanine Blood Drive (6/17)</span>','3.60%','18','Jun 17, 2026',pill('Published')], 2295 [evtImg('linear-gradient(135deg,#EC4899,#8B5CF6)','heart'),'<span class="id">Bingo Night at The Lounge</span>','12.86%','9','Jun 18, 2026',pill('Published')], 2296 [evtImg('linear-gradient(135deg,#2F6BFF,#1D4ED8)','home'),'<span class="id">Home Buying & Selling Seminar</span>','6.00%','30','Jun 24, 2026',pill('Published')] 2297 ]); 2298 }}, 2299 { nav:'engage', crumb:'Engage <i>/</i> <b>Highlights</b>', render:function(){ 2300 return head('Highlights','Curated content shown across the mobile app and onsite displays.') 2301 +tabs([['Highlight Sections','12'],['Mobile Highlights','1,807'],['Display / TV Highlights','36']]) 2302 +rows(['Section Title','Description','Site Visibility','Items','Active','Created'],[ 2303 ['<span class="id">2026 Engagement</span>','internal use only','Engagement Posting','<b>53</b>',pill('No'),'Jan 06, 2026'], 2304 ['<span class="id">Tenant Resources</span>','Tenant Resources','Meridian Plaza','<b>0</b>',pill('Yes'),'Mar 27, 2025'], 2305 ['<span class="id">2024 Holiday Marketplace</span>','Our 2024 Holiday Market line up!','Meridian Plaza','<b>6</b>',pill('Yes'),'Nov 20, 2024'], 2306 ['<span class="id">2025 Engagement</span>','internal use only','Engagement Posting','<b>375</b>',pill('No'),'Mar 04, 2024'], 2307 ['<span class="id">Pulse Fitness Center</span>','Pulse is a 30,000 square foot fitness club...','Meridian Plaza','<b>49</b>',pill('Yes'),'Jan 09, 2023'], 2308 ['<span class="id">Stay in the Know</span>','Timely building updates and alerts for tenants','Meridian Plaza','<b>22</b>',pill('Yes'),'Jun 09, 2022'] 2309 ]); 2310 }}, 2311 { nav:'engage', crumb:'Engage <i>/</i> <b>Surveys</b>', render:function(){ 2312 return head('Surveys','Gather tenant feedback after events and across your buildings.') 2313 +tabs([['All Surveys','3'],['Active',null],['Archived',null]]) 2314 +rows(['Actions','Name','Description','Date Added'],[ 2315 [actions(),'<span class="id">Rooftop Happy Hour Post-Event Survey</span>','<span class="msg">We\'d love to hear from you! Please take 2-3 minutes to share your thoughts...</span>','Feb 11, 2026'], 2316 [actions(),'<span class="id">Sustainability Mixer Post-Event Survey</span>','<span class="msg">We\'d love to hear from you! Please take 2-3 minutes to share your thoughts...</span>','Sep 17, 2025'], 2317 [actions(),'<span class="id">Ice Cream Social Post-Event Survey</span>','<span class="msg">We\'d love to hear from you! Please take 2-3 minutes to share your thoughts...</span>','Jul 16, 2025'] 2318 ]); 2319 }}, 2320 { nav:'reports', crumb:'Reports & Analytics <i>/</i> <b>Engagement Reporting</b>', render:function(){ 2321 var leg1=[['Dec 2025',SER[0]],['Jan 2026',SER[1]],['Nov 2025',SER[2]],['Mar 2026',SER[3]],['more','+6 more']];
2322 var leg2=[['Nov 2025',SER[0]],['Sep 2025',SER[1]],['Jun 2025',SER[2]],['Oct 2025',SER[3]],['more','+6 more']]; 2323 var leg3=[['Vault Lounge',SER[0]],['Rooftop Beehive',SER[1]],['Wellness Wed',SER[2]],['more','+4 more']]; 2324 var leg4=[['Summer Night',SER[0]],['Rooftop HH',SER[1]],['Wellness',SER[2]],['more','+2 more']]; 2325 var legT=[['Vertex Capital',SER[0]],['Bluepeak',SER[1]],['Archway',SER[2]],['more','+3 more']]; 2326 var grid='<div class="rep-grid">' 2327 +repCard('Total Monthly Highlight Clicks','Last 12 months',leg1,[['Dec 2025',142,SER[0]],['Jan 2026',128,SER[1]],['Nov 2025',104,SER[2]],['Mar 2026',96,SER[3]]],200) 2328 +repCard('Total Monthly Event Clicks','Last 12 months',leg2,[['Nov 2025',412,SER[0]],['Sep 2025',305,SER[1]],['Jun 2025',274,SER[2]],['Oct 2025',263,SER[3]]],280) 2329 +repCard('Popular Highlight Breakdown','Total clicks, last 30 days',leg3,[['Vault Lounge',28,SER[0]],['Rooftop Beehive',24,SER[1]],['Wellness Wed',16,SER[2]],['The Bathhouse',14,SER[3]]],360) 2330 +repCard('Popular Event Breakdown','Total clicks, last 30 days',leg4,[['Summer Night',132,SER[0]],['Rooftop HH',118,SER[1]],['Wellness',64,SER[2]],['Coffee & Conn',41,SER[3]]],440) 2331 +repCard('Highlight Clicks by Tenant','Last 30 days',legT,[['Vertex Capital',61,SER[0]],['Bluepeak',48,SER[1]],['Archway',37,SER[2]],['Northwind',29,SER[3]]],520) 2332 +repCard('Event Clicks by Tenant','Last 30 days',legT,[['Vertex Capital',54,SER[0]],['Northwind',41,SER[1]],['Bluepeak',33,SER[2]],['Lumen',27,SER[3]]],600) 2333 +'</div>'; 2334 return head('Engagement Reporting Dashboard','Highlight and event engagement trends across your portfolio.')+grid; 2335 }}, 2336 ]; 2337 function easeOut(t){return 1-Math.pow(1-t,3);} 2338 function countUp(el){var to=parseInt(el.dataset.count,10),dur=1100,t0=null;function s(ts){if(!t0)t0=ts;var p=Math.min((ts-t0)/dur,1);el.textContent=Math.round(easeOut(p)*to).toLocaleString();if(p<1)requestAnimationFrame(s);}requestAnimationFrame(s);} 2339 function runScreen(el){ 2340 setTimeout(function(){el.querySelectorAll('[data-count]').forEach(countUp);},250); 2341 el.querySelectorAll('[data-w]').forEach(function(f){ 2342 requestAnimationFrame(function(){requestAnimationFrame(function(){f.style.width=f.dataset.w+'%';});}); 2343 if(f.classList.contains('ch-fill')){setTimeout(function(){f.classList.add('show');},f.dataset.w>14?320:620);} 2344 }); 2345 } 2346 var screenEl=document.getElementById('osScreen'), crumbEl=document.getElementById('osCrumb'), dotsEl=document.getElementById('osDots'); 2347 var idx=0, raf=null, start=0, elapsed=0, paused=false, DWELL=2000; 2348 screens.forEach(function(_,i){var b=document.createElement('button');b.className='os-dot'+(i?'':' is-active');b.innerHTML='<i></i>';b.addEventListener('click',function(){goto(i);});dotsEl.appendChild(b);}); 2349 var dots=Array.prototype.slice.call(dotsEl.children); 2350 function moveInd(){var a=navItems.filter(function(n){return n.classList.contains('active');})[0];if(!a)return;indEl.style.height=a.offsetHeight+'px';indEl.style.transform='translateY('+a.offsetTop+'px)';} 2351 function render(i){ 2352 idx=(i+screens.length)%screens.length;var s=screens[idx]; 2353 crumbEl.innerHTML=s.crumb; 2354 navItems.forEach(function(n){n.classList.toggle('active',n.dataset.nav===s.nav);}); 2355 moveInd(); 2356 screenEl.classList.remove('leaving');screenEl.innerHTML=s.render();runScreen(screenEl); 2357 dots.forEach(function(d,k){d.classList.toggle('is-active',k===idx);d.firstElementChild.style.width='0%';}); 2358 startProgress(); 2359 } 2360 function goto(i){screenEl.classList.add('leaving');setTimeout(function(){render(i);},300);} 2361 function startProgress(){ 2362 cancelAnimationFrame(raf);start=0;elapsed=0; 2363 function tick(ts){if(paused){start=ts-elapsed;raf=requestAnimationFrame(tick);return;}if(!start)start=ts;elapsed=ts-start;var p=Math.min(elapsed/DWELL,1);if(dots[idx])dots[idx].firstElementChild.style.width=(p*100)+'%';if(p>=1){goto(idx+1);return;}raf=requestAnimationFrame(tick);} 2364 raf=requestAnimationFrame(tick); 2365 } 2366 document.getElementById('osNext').addEventListener('click',function(){goto(idx+1);}); 2367 document.getElementById('osPrev').addEventListener('click',function(){goto(idx-1);}); 2368 var win=document.querySelector('.os-window'); 2369 win.addEventListener('mouseenter',function(){paused=true;});win.addEventListener('mouseleave',function(){paused=false;}); 2370 document.addEventListener('visibilitychange',function(){paused=document.hidden;}); 2371 if('IntersectionObserver' in window){new IntersectionObserver(function(e){paused=!e[0].isIntersecting;},{threshold:.15}).observe(win);} 2372 window.addEventListener('resize',moveInd); 2373 render(0); 2374})();</script>
2374</body></html>" style="position:absolute;inset:0;width:100%;height:100%;border:0;opacity:0;pointer-events:none;transition:opacity .45s ease;"></iframe> 2375 <iframe class="cove-os-frame" data-panel="2" title="Visitor Management" loading="lazy" srcdoc="<!DOCTYPE html><html><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Sora:wght@400;500;600;700;800&display=swap" rel="stylesheet"><style>html,body{margin:0;height:100%;background:transparent;} 2376 :root { 2377 --navy: #003567; 2378 --navy-deep: #00253f; 2379 --cyan: #52C9EC; 2380 --cyan-deep: #1f9ec9; 2381 --cyan-tint: #f4fbfe; 2382 --cyan-soft: #e8f7fd; 2383 --white: #ffffff; 2384 --ink: #102a3f; 2385 --muted: #51697c; 2386 --line: #e5eef4; 2387 --radius: 22px; 2388 --shadow: 0 24px 60px -24px rgba(0, 53, 103, 0.30); 2389 --shadow-sm: 0 10px 28px -14px rgba(0, 53, 103, 0.22); 2390 --maxw: 1180px; 2391 --grad-hero: radial-gradient(120% 120% at 80% 0%, #d8f2fc 0%, #eef9fe 38%, #ffffff 75%); 2392 --grad-cyan: linear-gradient(135deg, #eafaff 0%, #c6ecfa 100%); 2393 --grad-pill: linear-gradient(135deg, #6ad2ef 0%, #2aa8d4 100%); 2394 --grad-navy: linear-gradient(150deg, #003567 0%, #00253f 100%); 2395 } 2396 * { box-sizing: border-box; margin: 0; padding: 0; } 2397 html { scroll-behavior: smooth; } 2398 body { 2399 font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif; 2400 color: var(--ink); background: var(--white); line-height: 1.6; -webkit-font-smoothing: antialiased; 2401 } 2402 h1, h2, h3, h4, h5, .font-head, .eyebrow, .btn { font-family: "Sora", "Inter", sans-serif; } 2403 h1, h2, h3 { color: var(--navy); letter-spacing: -0.025em; line-height: 1.08; } 2404 a { color: inherit; text-decoration: none; } 2405 .wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 28px; } 2406 2407 .eyebrow { 2408 display: inline-block; font-size: 12.5px; font-weight: 700; letter-spacing: 0.16em; 2409 text-transform: uppercase; color: var(--cyan-deep); margin-bottom: 16px; 2410 } 2411 2412 .btn { 2413 display: inline-flex; align-items: center; gap: 9px; font-weight: 600; font-size: 15px; 2414 padding: 14px 26px; border-radius: 999px; cursor: pointer; border: none; 2415 transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease; 2416 } 2417 .btn-primary { background: var(--navy); color: #fff; } 2418 .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 16px 32px -12px rgba(0,53,103,.55); } 2419 .btn-cyan { background: var(--grad-pill); color: var(--navy); } 2420 .btn-cyan:hover { transform: translateY(-2px); box-shadow: 0 16px 32px -12px rgba(82,201,236,.7); } 2421 .btn-ghost { background: #fff; color: var(--navy); border: 1.5px solid var(--line); } 2422 .btn-ghost:hover { border-color: var(--cyan); color: var(--cyan-deep); transform: translateY(-2px); } 2423 .btn-light { background: rgba(255,255,255,.12); color: #fff; border: 1.5px solid rgba(255,255,255,.3); } 2424 .btn-light:hover { background: rgba(255,255,255,.2); transform: translateY(-2px); } 2425 .arrow-link { font-weight: 600; color: var(--cyan-deep); font-size: 15px; display: inline-flex; align-items: center; gap: 6px; } 2426 .arrow-link span { transition: transform .2s ease; } 2427 .arrow-link:hover span { transform: translateX(4px); } 2428 2429 /* reveal animation */ 2430 .reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); } 2431 .reveal.in { opacity: 1; transform: none; } 2432 .reveal.d1 { transition-delay: .08s; } .reveal.d2 { transition-delay: .16s; } 2433 .reveal.d3 { transition-delay: .24s; } .reveal.d4 { transition-delay: .32s; } 2434 @media (prefers-reduced-motion: reduce) { .reveal { opacity:1; transform:none; transition:none; } } 2435 2436 /* NAV */ 2437 header.nav { position: sticky; top: 0; z-index: 60; background: rgba(255,255,255,.86); backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); } 2438 .nav-inner { display: flex; align-items: center; justify-content: space-between; height: 74px; } 2439 .nav-logo img { height: 30px; display: block; } 2440 .nav-links { display: flex; align-items: center; gap: 30px; } 2441 .nav-links a { font-size: 15px; font-weight: 500; color: var(--ink); } 2442 .nav-links a:hover { color: var(--cyan-deep); } 2443 .nav-right { display: flex; align-items: center; gap: 18px; } 2444 .nav-right .login { font-size: 15px; font-weight: 500; } 2445 .nav-cta { font-size: 14px; padding: 11px 22px; } 2446 @media (max-width: 940px) { .nav-links { display: none; } } 2447 2448 /* HERO */ 2449 .hero { background: var(--grad-hero); padding: 86px 0 76px; position: relative; overflow: hidden; } 2450 .hero-grid { display: grid; grid-template-columns: 1.12fr 0.9fr; gap: 52px; align-items: center; } 2451 .hero h1 { font-size: 50px; font-weight: 800; margin-bottom: 18px; text-wrap: balance; } 2452 .hero .tagline { font-family: "Sora"; font-weight: 600; font-size: 19px; color: var(--cyan-deep); margin-bottom: 22px; } 2453 .hero p.lead { font-size: 18.5px; color: var(--muted); max-width: 540px; margin-bottom: 30px; } 2454 .hero-cta { display: flex; gap: 14px; flex-wrap: wrap; } 2455 .hero-stage { position: relative; min-width: 0; } 2456 .hero-img { position: relative; width: calc(100% + 36vw); max-width: none; height: 680px; } 2457 .hero-img img { width: 100%; display: block; border-radius: 20px; box-shadow: var(--shadow), 0 0 46px -12px rgba(82,201,236,.55); } 2458 .hero-img .cove-os { height: 100%; } 2459 .hero-img .cove-os .cove-logo { width:auto !important; max-width:120px !important; height:29px !important; box-shadow:none !important; border-radius:0 !important; } 2460 .rotor { 2461 position: absolute; left: -18px; bottom: 26px; background: #fff; border: 1px solid var(--line); 2462 border-radius: 16px; padding: 14px 20px; box-shadow: var(--shadow); display: flex; align-items: center; gap: 12px; 2463 } 2464 .rotor .pulse { width: 10px; height: 10px; border-radius: 50%; background: var(--grad-pill); box-shadow: 0 0 0 0 rgba(82,201,236,.6); animation: pulse 2s infinite; } 2465 @keyframes pulse { 0%{box-shadow:0 0 0 0 rgba(82,201,236,.5);} 70%{box-shadow:0 0 0 12px rgba(82,201,236,0);} 100%{box-shadow:0 0 0 0 rgba(82,201,236,0);} } 2466 .rotor .rotor-text { font-family:"Sora"; font-weight: 600; color: var(--navy); font-size: 15px; } 2467 .rotor .rotor-text b { transition: opacity .4s ease; } 2468 .float-card { 2469 position: absolute; right: -16px; top: 26px; background: #fff; border: 1px solid var(--line); 2470 border-radius: 14px; padding: 12px 16px; box-shadow: var(--shadow); display: flex; align-items: center; gap: 11px; 2471 animation: floaty 5s ease-in-out infinite; 2472 } 2473 .float-card .ok { width: 28px; height: 28px; border-radius: 9px; background: #e7f8ef; color: #19a86b; display: grid; place-items: center; font-weight: 700; font-size: 14px; } 2474 .float-card .fc-t { font-family: "Sora"; font-weight: 600; font-size: 13.5px; color: var(--navy); } 2475 .float-card .fc-s { font-size: 11.5px; color: var(--muted); } 2476 @keyframes floaty { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-7px); } } 2477 @media (max-width: 940px) { .hero-grid { grid-template-columns: 1fr; } .hero h1 { font-size: 40px; } .hero-img { width: 100%; height: 560px; }
2477 .rotor { left: 12px; } .float-card { right: 8px; top: 10px; } } 2478 2479 /* LOGOS */ 2480 .logos { padding: 44px 0 26px; } 2481 .logos p { text-align: center; font-family: "Sora", sans-serif; font-weight: 600; color: var(--navy); font-size: 22px; margin-bottom: 26px; } 2482 .logo-track { display: flex; align-items: center; justify-content: center; gap: 48px; flex-wrap: wrap; } 2483 .logo-track img { height: 30px; filter: grayscale(1); opacity: .7; transition: opacity .25s ease, filter .25s ease; } 2484 .logo-track img:hover { filter: grayscale(0); opacity: 1; } 2485 2486 /* APPROACH (consolidation) */ 2487 .approach { padding: 92px 0; } 2488 .section-head { text-align: center; max-width: 760px; margin: 0 auto 56px; } 2489 .section-head h2 { font-size: 42px; font-weight: 800; margin-bottom: 16px; } 2490 .section-head p { font-size: 18px; color: var(--muted); } 2491 .consol { display: grid; grid-template-columns: 1fr auto 1fr; gap: 28px; align-items: center; } 2492 .consol-col h4 { font-family:"Sora"; font-size: 13px; letter-spacing:.12em; text-transform: uppercase; color: var(--muted); margin-bottom: 18px; text-align:center; } 2493 .chip-stack { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; } 2494 .chip { background: #fff; border: 1px dashed #c9d6e0; color: var(--muted); border-radius: 12px; padding: 12px 16px; font-size: 14px; font-weight: 500; display:flex; align-items:center; gap:8px; } 2495 .chip .x { color: #b6c4cf; } 2496 .consol-arrow { display: grid; place-items: center; } 2497 .consol-arrow svg { width: 46px; height: 46px; stroke: var(--cyan); fill:none; stroke-width: 2; } 2498 .one-card { 2499 background: var(--grad-cyan); border: 1px solid #bfe7f6; border-radius: var(--radius); padding: 34px; 2500 box-shadow: var(--shadow-sm); text-align: center; position: relative; overflow:hidden; 2501 } 2502 .one-card .badge { display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--line); border-radius:999px; padding:7px 15px; font-size:13px; font-weight:700; color:var(--navy); margin-bottom:16px; } 2503 .one-card h3 { font-size: 25px; margin-bottom: 10px; } 2504 .one-card p { color: var(--muted); font-size: 15.5px; } 2505 @media (max-width: 900px){ .consol { grid-template-columns: 1fr; } .consol-arrow svg { transform: rotate(90deg); } } 2506 2507 /* CAPABILITIES GRID */ 2508 .caps { padding: 30px 0 92px; } 2509 .cap-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; } 2510 .cap { 2511 background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 30px; 2512 box-shadow: var(--shadow-sm); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; 2513 } 2514 .cap:hover { transform: translateY(-6px); box-shadow: var(--shadow); border-color: #bfe7f6; } 2515 .cap .ic { width: 50px; height: 50px; border-radius: 14px; background: var(--grad-cyan); display:grid; place-items:center; margin-bottom: 18px; transition: transform .25s ease; } 2516 .cap:hover .ic { transform: scale(1.08) rotate(-3deg); } 2517 .cap .ic svg { width: 25px; height: 25px; stroke: var(--navy); fill:none; stroke-width: 2; } 2518 .cap h3 { font-size: 19px; margin-bottom: 9px; } 2519 .cap p { font-size: 14.8px; color: var(--muted); } 2520 @media (max-width: 900px){ .cap-grid { grid-template-columns: 1fr; } } 2521 2522 /* ROLES */ 2523 .roles { padding: 0 0 92px; background: linear-gradient(to bottom, #ffffff 0%, #ffffff 12%, var(--cyan-tint) 78%); } 2524 .role-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; } 2525 .role-grid .role { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 32px 30px; box-shadow: var(--shadow-sm); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; } 2526 .role-grid .role:hover { transform: translateY(-6px); box-shadow: var(--shadow); border-color: #bfe7f6; } 2527 .role-grid .role .rnum { font-family: "Sora"; font-size: 12.5px; font-weight: 700; letter-spacing: .12em; color: var(--cyan-deep); text-transform: uppercase; } 2528 .role-grid .role h3 { font-size: 21px; margin: 8px 0 12px; } 2529 .role-grid .role > p { font-size: 15px; color: var(--muted); margin-bottom: 16px; } 2530 .role-grid .role ul { list-style: none; } 2531 .role-grid .role li { font-size: 14px; color: var(--ink); padding-left: 22px; position: relative; margin-bottom: 8px; } 2532 .role-grid .role li::before { content: "â"; position: absolute; left: 0; color: var(--cyan-deep); font-weight: 700; } 2533 @media (max-width: 900px){ .role-grid { grid-template-columns: 1fr; } } 2534 2535 /* ONE OS FLOW */ 2536 .osos { padding: 84px 0 92px; background: linear-gradient(to bottom, var(--cyan-tint) 0%, var(--cyan-tint) 6%, #ffffff 62%); } 2537 .os-flow { display: flex; flex-direction: column; align-items: center; gap: 16px; max-width: 720px; margin: 8px auto 0; } 2538 .os-modules, .os-outs { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; width: 100%; } 2539 .os-mod { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 18px 20px; box-shadow: var(--shadow-sm); display: flex; align-items: center; gap: 12px; font-family: "Sora"; font-weight: 600; color: var(--navy); font-size: 15px; } 2540 .os-mod .md { width: 34px; height: 34px; border-radius: 10px; background: var(--grad-cyan); display: grid; place-items: center; flex: none; } 2541 .os-mod .md svg { width: 18px; height: 18px; stroke: var(--navy); fill: none; stroke-width: 2; } 2542 .os-arrow svg { width: 30px; height: 30px; stroke: var(--cyan); fill: none; stroke-width: 2.2; } 2543 .os-core { width: 100%; text-align: center; background: var(--grad-cyan); border: 1px solid #bfe7f6; border-radius: var(--radius); padding: 28px; box-shadow: var(--shadow-sm); } 2544 .os-core .badge { display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 6px 14px; font-size: 12.5px; font-weight: 700; color: var(--navy); margin-bottom: 12px; } 2545 .os-core h3 { font-size: 23px; margin-bottom: 6px; } 2546 .os-core p { color: var(--muted); font-size: 15px; max-width: 460px; margin: 0 auto; } 2547 .os-out { background: #fff; border: 1px solid #bfe7f6; border-radius: 16px; padding: 18px 20px; font-family: "Sora"; font-weight: 600; color: var(--navy); font-size: 15px; display: flex; align-items: center; gap: 11px; } 2548 .os-out .sp { width: 34px; height: 34px; border-radius: 10px; background: var(--grad-pill); display: grid; place-items: center; flex: none; } 2549 .os-out .sp svg { width: 18px; height: 18px; stroke: #fff; fill: none; stroke-width: 2; } 2550 @media (max-width: 900px){ .os-modules, .os-outs { grid-template-columns: 1fr; } } 2551 2552 /* INTELLIGENCE / stylized UI demo */ 2553 .intel { padding: 92px 0; background: var(--cyan-tint); } 2554 .intel-row { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; padding: 40px 0; } 2555 .intel-row.reverse .intel-text { order: 2; } 2556 .intel-text h3 { font-size: 30px; font-weight: 700; margin: 10px 0 14px; } 2557 .intel-text p { font-size: 17px; color: var(--muted); } 2558 .demo { background:#fff; border:1px solid var(--line); border-radius: var(--radius); padding: 22px; box-shadow: var(--shadow); } 2559 .demo-head { display:flex; align-items:center; justify-content:space-between; font-size:12.5px; color:var(--muted); font-weight:600; margin-bottom:14px; } 2560 .tag-live { background: var(--cyan-soft); color: var(--cyan-deep); border-radius: 999px; padding: 4px 11px; font-weight:700; font-size:11.5px; } 2561 .bubble { border-radius: 12px; padding: 9px 13px; font-size: 13.5px; margin-bottom: 8px; max-width: 86%; line-height:1.4; } 2562 .bubble.them { background: #f1f5f8; color: var(--ink); } 2563 .bubble.us { background: var(--navy); color:#fff; margin-left:auto; } 2564 .bubble small { display:block; font-size:10.5px; opacity:.7; margin-bottom:2px; font-weight:600; } 2565 .collapse-line { text-align:center; color: var(--cyan-deep); font-weight:700; font-size:12px; letter-spacing:.08em; margin: 12px 0; } 2566 .ai-summary { background: var(--grad-cyan); border:1px solid #bfe7f6; border-radius:14px; padding:16px; }
2567 .ai-summary h5 { font-family:"Sora"; font-size:14px; color:var(--navy); margin-bottom:8px; } 2568 .ai-summary ul { list-style:none; } 2569 .ai-summary li { font-size:13px; color:var(--ink); padding-left:20px; position:relative; margin-bottom:6px; } 2570 .ai-summary li::before { content:"â"; position:absolute; left:0; color: var(--cyan-deep); font-weight:700; } 2571 .coi-card { border:1px solid var(--line); border-radius:14px; padding:18px; } 2572 .coi-row { display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px solid var(--line); font-size:13.5px; } 2573 .coi-row:last-child { border:none; } 2574 .coi-row .k { color: var(--muted); } .coi-row .v { font-weight:600; color:var(--navy); } 2575 .pill-ok { display:inline-flex; align-items:center; gap:7px; background:#e7f8ef; color:#13885a; font-weight:700; font-size:13px; border-radius:999px; padding:8px 15px; margin-top:14px; } 2576 .pill-ok .d { width:8px; height:8px; border-radius:50%; background:#19a86b; } 2577 .trigger { display:grid; grid-template-columns:1fr; gap:12px; } 2578 .trigger .read { display:flex; align-items:center; justify-content:space-between; background:#fff6f2; border:1px solid #ffd9c9; border-radius:12px; padding:13px 15px; font-size:13.5px; color:#b4541f; font-weight:600; } 2579 .trigger .auto { display:flex; align-items:center; justify-content:space-between; background:var(--grad-cyan); border:1px solid #bfe7f6; border-radius:12px; padding:13px 15px; font-size:13.5px; color:var(--navy); font-weight:600; } 2580 @media (max-width: 900px){ .intel-row { grid-template-columns: 1fr; gap: 26px; } .intel-row.reverse .intel-text { order: 0; } } 2581 2582 /* STATS */ 2583 .stats { padding: 90px 0; } 2584 .stat-grid { display:grid; grid-template-columns: repeat(3,1fr); gap: 22px; } 2585 .stat { background:#fff; border:1px solid var(--line); border-radius: var(--radius); padding: 36px 30px; text-align:center; box-shadow: var(--shadow-sm); transition: transform .25s ease, box-shadow .25s ease; } 2586 .stat:hover { transform: translateY(-5px); box-shadow: var(--shadow); } 2587 .stat .num { font-family:"Sora"; font-weight: 800; font-size: 46px; color: var(--navy); letter-spacing:-.02em; line-height:1; } 2588 .stat .num em { font-style: normal; color: var(--cyan-deep); } 2589 .stat .lbl { color: var(--muted); font-size: 15px; margin-top: 12px; } 2590 @media (max-width: 900px){ .stat-grid { grid-template-columns: 1fr; } } 2591 2592 /* WILLIS */ 2593 .willis { padding: 0 0 92px; } 2594 .willis-card { display:grid; grid-template-columns: 1fr 1fr; border-radius: 26px; overflow:hidden; border:1px solid var(--line); box-shadow: var(--shadow); background:#fff; } 2595 .willis-img { position: relative; overflow: hidden; min-height: 320px; } 2596 .willis-img img { width:100%; height:100%; object-fit:cover; display:block; } 2597 .willis-text { padding: 44px 48px; display: flex; flex-direction: column; justify-content: center; } 2598 .willis-text h3 { font-size: 30px; margin-bottom: 16px; } 2599 .willis-text p { color: var(--muted); font-size: 16px; margin-bottom: 22px; } 2600 .willis-text .btn { align-self: flex-start; } 2601 @media (max-width: 900px){ .willis-card { grid-template-columns:1fr; } } 2602 2603 /* TESTIMONIALS */ 2604 .testi { padding: 0 0 92px; } 2605 .testi-grid { display:grid; grid-template-columns: repeat(3,1fr); gap: 22px; } 2606 .quote { background:#fff; border:1px solid var(--line); border-radius: var(--radius); padding: 30px; box-shadow: var(--shadow-sm); display:flex; flex-direction:column; transition: transform .25s ease, box-shadow .25s ease; } 2607 .quote:hover { transform: translateY(-5px); box-shadow: var(--shadow); } 2608 .quote .mark { font-family:"Sora"; font-size:46px; line-height:.6; color: var(--cyan); margin-bottom: 14px; } 2609 .quote p { font-size: 16px; color: var(--ink); margin-bottom: 22px; flex:1; } 2610 .quote .who { font-weight:700; color: var(--navy); font-size: 15px; } 2611 .quote .role { font-size: 13.5px; color: var(--muted); } 2612 @media (max-width: 900px){ .testi-grid { grid-template-columns: 1fr; } } 2613 2614 /* CTA */ 2615 .cta { padding: 0 0 96px; } 2616 .cta-card { background: var(--grad-navy); border-radius: 28px; padding: 70px 40px; text-align:center; position:relative; overflow:hidden; } 2617 .cta-card::before { content:""; position:absolute; right:-100px; top:-120px; width:420px; height:420px; border-radius:50%; background: radial-gradient(circle, rgba(82,201,236,.4), transparent 70%); } 2618 .cta-card::after { content:""; position:absolute; left:-120px; bottom:-140px; width:380px; height:380px; border-radius:50%; background: radial-gradient(circle, rgba(82,201,236,.22), transparent 70%); } 2619 .cta-card .tag { font-family:"Sora"; font-weight:600; color: var(--cyan); font-size:15px; position:relative; } 2620 .cta-card h2 { color:#fff; font-size: 44px; font-weight: 800; margin: 12px auto 16px; max-width: 720px; position:relative; } 2621 .cta-card p { color: rgba(255,255,255,.82); font-size: 18px; max-width: 600px; margin: 0 auto 28px; position:relative; } 2622 .cta-card .btn-wrap { position: relative; display:flex; gap:14px; justify-content:center; flex-wrap:wrap; } 2623 2624 /* FOOTER */ 2625 footer.ft { background: var(--grad-navy); color:#fff; padding: 60px 0 30px; } 2626 .ft-grid { display:grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 32px; } 2627 .ft-logo img { height: 28px; margin-bottom: 16px; } 2628 .ft-grid p.bl { color: rgba(255,255,255,.65); font-size: 14.5px; max-width: 300px; } 2629 .ft-col h5 { font-family:"Sora"; color:#fff; font-size: 13px; letter-spacing:.06em; margin-bottom: 15px; text-transform: uppercase; } 2630 .ft-col a { display:block; color: rgba(255,255,255,.7); font-size: 14.5px; margin-bottom: 10px; } 2631 .ft-col a:hover { color: var(--cyan); } 2632 .ft-bottom { border-top: 1px solid rgba(255,255,255,.14); margin-top: 42px; padding-top: 22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; color: rgba(255,255,255,.55); font-size: 13.5px; } 2633 .ft-bottom a { color: rgba(255,255,255,.7); } 2634 @media (max-width: 900px){ .ft-grid { grid-template-columns: 1fr 1fr; } } 2635 2636 /* ===== Platform showcase module (namespaced under .cove-os) ===== */ 2637 .cove-os{ 2638 --navy-850:#0C1C3E; --blue-500:#3D78FF; --blue-400:#6398FF; --sky-300:#A8C7FF; 2639 --amber-bg:#FCEFD6; --amber-tx:#A9690F; --red-bg:#FCE4E4; --red-tx:#C1342D; 2640 --slate-bg:#EDF1F7; --slate-tx:#475569; --blue-bg:#E7F0FF; --blue-tx:#1D4ED8; --hue:#52c9ec; 2641 --ink:#0E1F44; --ink-2:#3A4A6B; --muted:#8295B6; --line:#E6EBF4; --panel:#F3F5FA; 2642 --font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; 2643 position:relative; isolation:isolate; overflow:hidden; font-family:var(--font); 2644 color:var(--ink); padding:0; height:100%; background:transparent; box-sizing:border-box; 2645 } 2646 .cove-os *,.cove-os *::before,.cove-os *::after{box-sizing:border-box;} 2647 .cove-os .os-wrap{max-width:1160px; margin:0 auto; height:100%; display:flex; flex-direction:column;} 2648 .cove-os .os-window{ display:flex; flex:1; height:100%; border-radius:16px; overflow:hidden; background:#fff; border:2px solid #52C9EC; box-shadow:0 0 0 4px rgba(82,201,236,.18); animation:os-pop .8s cubic-bezier(.2,.9,.3,1.2) both; } 2649 @keyframes os-pop{from{opacity:0; transform:translateY(24px) scale(.97);} to{opacity:1; transform:none;}} 2650 .cove-os .os-side{width:228px; flex:none; background:#0e1826;
2650 color:#c2cfe4; display:flex; flex-direction:column; padding:18px 14px; position:relative; overflow:hidden; animation:os-side-in .7s ease both .1s;} 2651 @keyframes os-side-in{from{transform:translateX(-30px); opacity:0;} to{transform:none; opacity:1;}} 2652 .cove-os .os-brand{display:flex; align-items:center; justify-content:space-between; padding:4px 10px 14px;} .cove-logo{height:29px; width:auto; display:block;} .os-brand .cv{display:flex; align-items:center; gap:8px;} .os-brand .chev{width:16px; height:16px; color:#63799e;} 2653 .cove-os .os-mark{width:30px; height:30px; border-radius:9px; background:linear-gradient(135deg,var(--blue-500),#1b46c2); flex:none; box-shadow:0 4px 12px rgba(47,107,255,.5); position:relative;} 2654 .cove-os .os-mark::after{content:""; position:absolute; inset:8px; border-radius:5px; border:2px solid rgba(255,255,255,.85);} 2655 .cove-os .os-brand b{font-size:15px; color:#fff; font-weight:700; line-height:1;} 2656 .cove-os .os-brand span{display:block; font-size:8.5px; letter-spacing:.22em; color:#7e92bd; margin-top:3px;} 2657 .cove-os .os-nav{position:relative; display:flex; flex-direction:column; gap:1px; flex:1; overflow:hidden;} 2658 .cove-os .os-cap{font-size:9.5px; letter-spacing:.16em; color:#5d6f99; font-weight:700; padding:14px 10px 6px;} 2659 .cove-os .os-item{display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:9px; font-size:12.5px; font-weight:500; color:#aebcdd; cursor:default; position:relative; z-index:1; transition:color .35s;} 2660 .cove-os .os-item svg{width:15px; height:15px; flex:none; opacity:.85;} 2661 .cove-os .os-item.active{color:#fff;} 2662 .cove-os .os-ind{position:absolute; left:0; right:0; height:34px; border-radius:9px; background:rgba(255,255,255,.07); border:none; box-shadow:inset 3px 0 0 #52C9EC; z-index:0; transition:transform .5s cubic-bezier(.5,1.4,.4,1), height .3s ease; transform:translateY(0);} 2663 .cove-os .os-ind::before{display:none;} 2664 .cove-os .os-user{display:flex; align-items:center; gap:10px; padding:10px; margin-top:8px; border-radius:11px; background:rgba(255,255,255,.05);} 2665 .cove-os .os-user .ava{width:30px; height:30px; font-size:11px;} 2666 .cove-os .os-user b{font-size:12px; color:#fff; display:block;} .cove-os .os-user span{font-size:10px; color:#8295b6;} 2667 .cove-os .os-main{flex:1; background:var(--panel); display:flex; flex-direction:column; min-width:0;} 2668 .cove-os .os-top{height:54px; flex:none; background:#fff; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:14px; padding:0 22px;} 2669 .cove-os .os-crumb{font-size:13px; color:var(--muted); font-weight:500; white-space:nowrap;} 2670 .cove-os .os-crumb b{color:var(--ink); font-weight:700;} 2671 .cove-os .os-crumb i{font-style:normal; margin:0 7px; color:#c2cde0;} 2672 .cove-os .os-search{flex:1; max-width:380px; height:32px; border-radius:8px; background:var(--panel); border:1px solid var(--line); display:flex; align-items:center; gap:8px; padding:0 12px; font-size:12px; color:var(--muted);} 2673 .cove-os .os-search svg{width:13px; height:13px;} 2674 .cove-os .os-icons{margin-left:auto; display:flex; align-items:center; gap:14px; color:var(--muted);} 2675 .cove-os .os-icons svg{width:17px; height:17px;} 2676 .cove-os .os-icons .ava{width:28px; height:28px; font-size:10.5px;} 2677 .cove-os .os-body{flex:1; padding:22px 26px; overflow:hidden; position:relative;} 2678 .cove-os .os-screen{height:100%; transition:opacity .35s ease, filter .35s ease, transform .35s ease;} 2679 .cove-os .os-screen.leaving{opacity:0; filter:blur(6px); transform:scale(.985);} 2680 .cove-os .sc-title{font-size:21px; font-weight:800; color:var(--ink); letter-spacing:-.01em; margin:0;} 2681 .cove-os .sc-sub{font-size:12.5px; color:var(--muted); margin:3px 0 0;} 2682 .cove-os .sc-tabs{display:flex; gap:6px; margin:16px 0 14px; flex-wrap:wrap;} 2683 .cove-os .sc-tab{display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:600; color:var(--ink-2); padding:7px 12px; border-radius:9px; background:#fff; border:1px solid var(--line);} 2684 .cove-os .sc-tab.on{background:var(--navy-850); color:#fff; border-color:var(--navy-850);} 2685 .cove-os .sc-tab b{font-size:11px; padding:1px 7px; border-radius:999px; background:var(--panel); color:var(--ink-2);} 2686 .cove-os .sc-tab.on b{background:rgba(255,255,255,.18); color:#fff;} 2687 .cove-os .sc-tab.alert b{background:var(--red-bg); color:var(--red-tx);} 2688 .cove-os .sc-card{background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden;} 2689 .cove-os table.sc-tbl{width:100%; border-collapse:collapse; border-spacing:0; font-size:12px; border:0;} 2690 .cove-os .sc-tbl tr{border:0; background:transparent;} 2691 .cove-os .sc-tbl thead{background:#fff !important;} .sc-tbl th{text-align:left; font-size:9.5px; letter-spacing:.07em; color:var(--muted); font-weight:700; text-transform:uppercase; padding:11px 14px; border:0; border-bottom:1px solid var(--line); background:#fff;; background:#fff !important; color:var(--muted) !important;} 2692 .cove-os .sc-tbl td{padding:11px 14px; border:0; border-bottom:1px solid #F1F4FA;
2692 color:var(--ink-2); white-space:nowrap; vertical-align:middle;} 2693 .cove-os .sc-tbl tr:last-child td{border-bottom:none;} 2694 .cove-os .sc-tbl .id{color:#2F6BFF; font-weight:700;} 2695 .cove-os .sc-tbl .strong{color:var(--ink); font-weight:600;} 2696 .cove-os .site{display:inline-flex; align-items:center; gap:7px; color:var(--ink); font-weight:600;} 2697 .cove-os .site svg{width:13px; height:13px; color:var(--blue-500);} 2698 .cove-os .pill{display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:600; padding:3px 9px; border-radius:999px;} 2699 .cove-os .pill::before{content:""; width:6px; height:6px; border-radius:50%; background:currentColor;} 2700 .cove-os .pill.solid::before{display:none;} 2701 .cove-os .st-blue{color:var(--blue-tx); background:var(--blue-bg);} 2702 .cove-os .st-amber{color:var(--amber-tx); background:var(--amber-bg);} 2703 .cove-os .st-red{color:var(--red-tx); background:var(--red-bg);} 2704 .cove-os .st-slate{color:var(--slate-tx); background:var(--slate-bg);} .st-teal{color:#0e7d97; background:#d7f1f8;} 2705 .cove-os .ava{display:inline-grid; place-items:center; width:24px; height:24px; border-radius:50%; color:#fff; font-size:9.5px; font-weight:700; flex:none;} 2706 .cove-os .who{display:inline-flex; align-items:center; gap:8px; color:var(--ink); font-weight:600;} 2707 .cove-os .who.un{color:var(--muted); font-weight:500;} 2708 .cove-os .cat{display:inline-flex; align-items:center; gap:8px; color:var(--ink); font-weight:600;} 2709 .cove-os .cat .ic{width:22px; height:22px; border-radius:7px; display:grid; place-items:center; flex:none;} 2710 .cove-os .cat .ic svg{width:13px; height:13px; color:#fff;} 2711 .cove-os .dot{display:inline-flex; align-items:center; gap:8px; color:var(--ink); font-weight:600;} 2712 .cove-os .dot::before{content:""; width:9px; height:9px; border-radius:3px; background:var(--c,#2F6BFF);} 2713 .cove-os .sc-stats{display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin-bottom:14px;} 2714 .cove-os .stat{background:#fff; border:1px solid var(--line); border-radius:12px; padding:13px 13px 14px;} 2715 .cove-os .stat .lab{display:flex; align-items:center; gap:6px; font-size:10px; font-weight:600; color:var(--ink-2); margin-bottom:9px; line-height:1.2;} 2716 .cove-os .stat .lab::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--c,#2F6BFF); flex:none;} 2717 .cove-os .stat .big{font-size:26px; font-weight:800; color:var(--ink); line-height:1;} 2718 .cove-os .stat .pct{font-size:10px; font-weight:700; color:var(--c,#2F6BFF); margin-top:8px;} 2719 .cove-os .stat .track{height:4px; border-radius:999px; background:var(--panel); margin-top:6px; overflow:hidden;} 2720 .cove-os .stat .track i{display:block; height:100%; width:0; background:var(--c,#2F6BFF); border-radius:999px; transition:width 1s cubic-bezier(.22,1,.36,1);} 2721 .cove-os .ch-controls{display:flex; gap:8px; margin-bottom:14px; flex-wrap:wrap;} 2722 .cove-os .ch-ctl{background:#fff; border:1px solid var(--line); border-radius:9px; padding:8px 12px; font-size:11px; min-width:120px;} 2723 .cove-os .ch-ctl span{display:block; font-size:8.5px; letter-spacing:.08em; color:var(--muted); font-weight:700; text-transform:uppercase; margin-bottom:3px;} 2724 .cove-os .ch-ctl b{color:var(--ink); font-weight:700; font-size:12px;} 2725 .cove-os .ch-kpis{display:flex; gap:34px; margin-bottom:12px;} 2726 .cove-os .ch-kpi span{display:block; font-size:9.5px; letter-spacing:.06em; color:var(--muted); font-weight:700; text-transform:uppercase;} 2727 .cove-os .ch-kpi b{font-size:30px; font-weight:800; color:var(--ink); line-height:1.1;} 2728 .cove-os .ch-bars{display:flex; flex-direction:column; gap:7px;} 2729 .cove-os .ch-row{display:grid; grid-template-columns:96px 1fr; align-items:center; gap:12px;} 2730 .cove-os .ch-name{font-size:11px; color:var(--ink-2); text-align:right; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;} 2731 .cove-os .ch-track{position:relative; height:18px;} 2732 .cove-os .ch-fill{height:100%; width:0; border-radius:5px; background:linear-gradient(90deg,#4f86ff,#2F6BFF); transition:width .9s cubic-bezier(.22,1,.36,1); display:flex; align-items:center; justify-content:flex-end; padding-right:7px; box-shadow:0 2px 6px rgba(47,107,255,.3);} 2733 .cove-os .ch-fill b{font-size:10px; font-weight:700; color:#fff; opacity:0; transition:opacity .4s ease .5s;} 2734 .cove-os .ch-fill.show b{opacity:1;} 2735 @keyframes rise{from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:none;}} 2736 @keyframes pop{from{opacity:0; transform:scale(.94);} to{opacity:1; transform:none;}} 2737 .cove-os .anim{opacity:0; animation:rise .55s cubic-bezier(.22,1,.36,1) both; animation-delay:var(--d,0ms);} 2738 .cove-os .anim-pop{opacity:0; animation:pop .5s cubic-bezier(.2,.9,.3,1.3) both; animation-delay:var(--d,0ms);} 2739 .cove-os .os-controls{display:none;} 2740 @media (max-width:760px){ 2741 .cove-os .os-side{display:none;} 2742 .cove-os .sc-stats{grid-template-columns:repeat(3,1fr);} 2743 .cove-os .ch-kpis{gap:20px;} 2744 } 2745 @media (prefers-reduced-motion:reduce){ 2746 .cove-os .os-window,.cove-os .os-side{animation:none;} 2747 .cove-os .anim,.cove-os .anim-pop{animation-duration:.01ms !important; opacity:1;} 2748 } 2749 /* ACCESS CONTROL INTEGRATIONS */ 2750 .acint { padding: 92px 0; background: var(--cyan-tint); } 2751 .acint-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; max-width: 940px; margin: 0 auto; } 2752 .acint-logo { flex: 0 0 168px; background: #fff; border: 1px solid var(--line); border-radius: 14px; height: 92px; display: grid; place-items: center; padding: 16px; box-shadow: var(--shadow-sm); transition: transform .2s ease, box-shadow .2s ease; } 2753 .acint-logo:hover { transform: translateY(-4px); box-shadow: var(--shadow); } 2754 .acint-logo img { max-width: 100%; max-height: 44px; object-fit: contain; filter: grayscale(1); opacity: .72; transition: filter .2s ease, opacity .2s ease; } 2755 .acint-logo:hover img { filter: none; opacity: 1; } 2756 @media (max-width: 900px){ .acint-grid { grid-template-columns: repeat(3, 1fr); } } 2757 @media (max-width: 560px){ .acint-grid { grid-template-columns: repeat(2, 1fr); } } 2758 /* VISITOR PROOF + infographic (namespaced under .cove-infg) */ 2759 .vproof { padding: 0 0 92px; } 2760 .vproof-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; } 2761 .vproof-text h3 { font-size: 32px; margin-bottom: 16px; } 2762 .vproof-text p { color: var(--muted); font-size: 16px; margin-bottom: 22px; max-width: 440px; } 2763 .vproof-text .btn { align-self: flex-start; } 2764 @media (max-width: 900px){ .vproof-grid { grid-template-columns: 1fr; gap: 30px; } } 2765 2766 .cove-infg{ 2767 --navy:#16324f; --navy-d:#0d2742; --cyan:#2f8fc4; --cyan-l:#46a8db; --hi:#bfe6f7; 2768 --header:#cfeaf7; --ink:#0f2c4a; --muted:#6f8198; --line:#e7edf4; 2769 --font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; 2770 font-family:var(--font); padding:0; display:flex; justify-content:center; 2771 background:transparent; box-sizing:border-box; width:100%; 2772 } 2773 .cove-infg *,.cove-infg *::before,.cove-infg *::after{box-sizing:border-box;} 2774 .cove-infg .infg{ position:relative; width:100%; max-width:430px; background:#fff; border:1px solid var(--line); border-radius:20px;
2774 padding:24px 22px 26px; box-shadow:0 24px 60px -28px rgba(15,44,74,.4); overflow:hidden; } 2775 .cove-infg .infg-badge{position:absolute; top:18px; right:18px; width:78px; height:78px; opacity:0; transform:scale(.85); transition:opacity .6s ease .5s, transform .6s ease .5s;} 2776 .cove-infg .infg.play .infg-badge{opacity:1; transform:scale(1);} 2777 .cove-infg .infg-grid{display:grid; grid-template-columns:repeat(3,1fr); align-items:end; gap:6px; margin-top:6px;} 2778 .cove-infg .col{display:flex; flex-direction:column; justify-content:flex-end; align-items:center; height:100%;} 2779 .cove-infg .lab{font-size:13.5px; font-weight:800; color:var(--navy); line-height:1.18; text-align:center; margin-bottom:9px; opacity:0; transform:translateY(8px); transition:opacity .55s ease, transform .55s ease;} 2780 .cove-infg .lab.hdr{background:var(--header); color:var(--ink); padding:7px 11px; border-radius:9px; align-self:flex-start; text-align:left; margin-bottom:auto; margin-top:0;} 2781 .cove-infg .col.c1{justify-content:space-between;} 2782 .cove-infg .infg.play .lab{opacity:1; transform:none;} 2783 .cove-infg .lab.l2{transition-delay:.18s;} .cove-infg .lab.l3{transition-delay:.32s;} 2784 .cove-infg .bld{display:block; width:100%; height:auto; clip-path:inset(100% 0 0 0); transition:clip-path 1.05s cubic-bezier(.22,1,.36,1);} 2785 .cove-infg .infg.play .b1{clip-path:inset(0 0 0 0);
2785 transition-delay:.05s;} 2786 .cove-infg .infg.play .b2{clip-path:inset(0 0 0 0); transition-delay:.22s;} 2787 .cove-infg .infg.play .b3{clip-path:inset(0 0 0 0); transition-delay:.38s;} 2788 .cove-infg .infg-nums{display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-top:2px;} 2789 .cove-infg .nc{display:flex; flex-direction:column; align-items:center;} 2790 .cove-infg .pin{display:flex; flex-direction:column; align-items:center; opacity:0; transition:opacity .5s ease;} 2791 .cove-infg .pin .ln{width:2px; height:22px; background:var(--navy); transform:scaleY(0); transform-origin:top; transition:transform .45s ease;} 2792 .cove-infg .pin .dt{width:9px; height:9px; border-radius:50%; background:var(--navy); margin-top:-1px; transform:scale(0); transition:transform .35s cubic-bezier(.2,.9,.3,1.6);} 2793 .cove-infg .infg.play .pin{opacity:1;} .cove-infg .infg.play .pin .ln{transform:scaleY(1);} .cove-infg .infg.play .pin .dt{transform:scale(1);} 2794 .cove-infg .infg.play .nc1 .pin{transition-delay:.55s;} .cove-infg .infg.play .nc1 .pin .ln{transition-delay:.55s;} .cove-infg .infg.play .nc1 .pin .dt{transition-delay:.85s;} 2795 .cove-infg .infg.play .nc2 .pin{transition-delay:.7s;} .cove-infg .infg.play .nc2 .pin .ln{transition-delay:.7s;} .cove-infg .infg.play .nc2 .pin .dt{transition-delay:1s;} 2796 .cove-infg .infg.play .nc3 .pin{transition-delay:.85s;} .cove-infg .infg.play .nc3 .pin .ln{transition-delay:.85s;} .cove-infg .infg.play .nc3 .pin .dt{transition-delay:1.15s;} 2797 .cove-infg .num{font-size:clamp(21px,6vw,26px); font-weight:800; color:var(--navy); line-height:1; margin-top:11px;} 2798 .cove-infg .nv{font-size:11px; font-weight:700; letter-spacing:.07em; color:var(--navy); opacity:.62; margin-top:6px; text-align:center; line-height:1.25;} 2799 @media (prefers-reduced-motion:reduce){ 2800 .cove-infg .bld{clip-path:inset(0 0 0 0); transition:none;} 2801 .cove-infg .lab,.cove-infg .pin,.cove-infg .pin .ln,.cove-infg .pin .dt,.cove-infg .infg-badge{opacity:1; transform:none; transition:none;} 2802 } 2803 2804 /* ===== Mobile optimization ===== */ 2805 @media (max-width: 640px){ 2806 .wrap { padding: 0 18px; } 2807 .hero { padding: 52px 0 46px; } 2808 .hero h1 { font-size: 31px; } 2809 .hero p.lead { font-size: 16px; } 2810 .section-head { margin-bottom: 38px; } 2811 .section-head h2 { font-size: 27px; } 2812 .section-head p { font-size: 15.5px; } 2813 .approach { padding: 56px 0; } 2814 .caps { padding: 22px 0 56px; } 2815 .roles { padding: 0 0 56px; } 2816 .acint { padding: 56px 0; } 2817 .osos { padding: 56px 0; } 2818 .testi { padding: 0 0 56px; } 2819 .vproof { padding: 0 0 56px; } 2820 .cta { padding: 0 0 60px; } 2821 .cta-card { padding: 44px 22px; } 2822 .cta-card h2 { font-size: 27px; } 2823 .cta-card p { font-size: 16px; } 2824 .vproof-text h3 { font-size: 24px; } 2825 .one-card h3 { font-size: 21px; } 2826 .cap-grid, .role-grid, .testi-grid { gap: 16px; } 2827 } 2828.cove-os .os-window{border:0 !important;border-radius:0 !important;box-shadow:none !important;}</style></head><body><div class="hero-img" style="height:100%;width:100%;"><section class="cove-os" aria-label="Cove platform showcase"> 2829 <div class="os-wrap"> 2830 <div class="os-window"> 2831 <aside class="os-side"> 2832 <div class="os-brand"><span class="cv"><img class="cove-logo" src="https://21927082.fs1.hubspotusercontent-na1.net/hubfs/21927082/Cove_Logo_White_Teal_Dot.png?width=140&name=Cove_Logo_White_Teal_Dot.png" alt="Cove" /></span><svg class="chev"
2832 viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg></div> 2833 <nav class="os-nav" id="osNav"> 2834 <div class="os-ind" id="osInd"></div> 2835 </nav> 2836 </aside> 2837 <div class="os-main"> 2838 <div class="os-top"> 2839 <div class="os-crumb" id="osCrumb"></div> 2840 <div class="os-search"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="m21 21-4-4"/></svg>Search...</div> 2841 <div class="os-icons"> 2842 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 8a6 6 0 1 0-12 0c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.7 21a2 2 0 0 1-3.4 0"/></svg> 2843 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="9"/><path d="M9.5 9a2.5 2.5 0 1 1 3.5 2.3c-.7.4-1 .8-1 1.7"/><path d="M12 17h.01"/></svg> 2844 <span class="ava" style="background:#1D4ED8">OD</span> 2845 </div> 2846 </div> 2847 <div class="os-body"> 2848 <div class="os-screen" id="osScreen"></div> 2849 </div> 2850 </div> 2851 </div> 2852 <div class="os-controls"> 2853 <button class="os-arrow" id="osPrev" aria-label="Previous"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 18l-6-6 6-6"/></svg></button> 2854 <div class="os-dots" id="osDots"></div> 2855 <button class="os-arrow" id="osNext" aria-label="Next"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 6l6 6-6 6"/></svg></button> 2856 </div> 2857 </div> 2858 </section></div>
2858<script> 2859/* ===== Platform showcase module ===== */ 2860(function(){ 2861 var ICON = { 2862 home:'<path d="M3 11l9-8 9 8"/><path d="M5 10v10h14V10"/>', 2863 chat:'<path d="M21 15a2 2 0 0 1-2 2H8l-5 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>', 2864 inbox:'<path d="M3 5h18v14H3z"/><path d="M3 13h5l2 3h4l2-3h5"/>', 2865 wo:'<path d="M14.7 6.3a4 4 0 0 0-5.4 5.4L3 18v3h3l6.3-6.3a4 4 0 0 0 5.4-5.4l-2.5 2.5-2-2z"/>', 2866 maint:'<rect x="3" y="4" width="18" height="16" rx="2"/><path d="M8 4v4M16 4v4M3 10h18"/>', 2867 insp:'<path d="M9 11l3 3L22 4"/><path d="M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"/>', 2868 inc:'<path d="M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"/><path d="M12 9v4M12 17h.01"/>', 2869 dir:'<circle cx="9" cy="8" r="3"/><path d="M3 20a6 6 0 0 1 12 0"/><path d="M16 4a3 3 0 0 1 0 6M21 20a6 6 0 0 0-5-5.9"/>', 2870 coi:'<path d="M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z"/><path d="M9 12l2 2 4-4"/>', 2871 vis:'<rect x="3" y="4" width="18" height="16" rx="2"/><circle cx="9" cy="10" r="2"/><path d="M5 17a4 4 0 0 1 8 0M16 9h3M16 13h3"/>', 2872 reports:'<path d="M3 3v18h18"/><path d="M7 14l3-4 3 3 4-6"/>', 2873 admin:'<circle cx="12" cy="12" r="3.2"/><path d="M12 2v3M12 19v3M2 12h3M19 12h3M4.9 4.9l2.1 2.1M17 17l2.1 2.1M19.1 4.9L17 7M7 17l-2.1 2.1"/>', 2874 building:'<rect x="4" y="3" width="16" height="18" rx="1"/><path d="M9 7h2M13 7h2M9 11h2M13 11h2M9 15h2M13 15h2"/>', 2875 bolt:'<path d="M13 2 4 14h7l-1 8 9-12h-7z"/>', 2876 drop:'<path d="M12 3s6 6.5 6 11a6 6 0 0 1-12 0c0-4.5 6-11 6-11z"/>', 2877 user:'<circle cx="12" cy="8" r="4"/><path d="M4 21a8 8 0 0 1 16 0"/>', 2878 card:'<rect x="2" y="5" width="20" height="14" rx="2"/><path d="M2 10h20"/>', 2879 cal:'<rect x="3" y="4" width="18" height="17" rx="2"/><path d="M3 9h18M8 2v4M16 2v4"/>', 2880 wind:'<path d="M3 8h11a3 3 0 1 0-3-3"/><path d="M3 14h15a3 3 0 1 1-3 3"/>', 2881 spark:'<path d="M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5 18 18M18 6l-2.5 2.5M8.5 15.5 6 18"/>' 2882 }; 2883 function svg(name){return '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">'+(ICON[name]||'')+'</svg>';} 2884 var NAV = [ 2885 ['home','Home'],['chat','Chat'],['inbox','Announcement Inbox'], 2886 ['vis','Visitors'],['cal','Pre-Registration'],['insp','Check-Ins'],['inc','Watchlist'], 2887
2888 ['dir','Directories'],['card','Access Passes'],['reports','Reports & Analytics'],['admin','Admin'] 2889 ]; 2890 var navEl = document.getElementById('osNav'); 2891 var indEl = document.getElementById('osInd'); 2892 if(!navEl) return; 2893 navEl.querySelectorAll('a').forEach(function(a){a.remove();}); 2894 NAV.forEach(function(it){ 2895 if(it[0]==='cap'){var c=document.createElement('div');c.className='os-cap';c.textContent=it[1];navEl.appendChild(c);return;} 2896 var a=document.createElement('a');a.className='os-item';a.dataset.nav=it[0]; 2897 a.innerHTML=svg(it[0])+'<span>'+it[1]+'</span>';navEl.appendChild(a); 2898 }); 2899 var navItems = Array.prototype.slice.call(navEl.querySelectorAll('.os-item')); 2900 function site(name){return '<span class="site">'+svg('building')+name+'</span>';} 2901 var STMAP = { 2902 'Scheduled':'st-blue','In Progress':'st-blue','Active':'st-blue','Completed':'st-teal','Verified':'st-teal', 2903 'To-Do':'st-amber','Submitted':'st-amber','Accepted':'st-teal','Open':'st-amber','On Hold':'st-red','Expiring Soon':'st-amber','In Review':'st-amber', 2904 'Overdue':'st-red','Expired':'st-red','Action Needed':'st-red','Yes':'st-red', 2905 'High':'st-red','Medium':'st-amber','Low':'st-slate','No':'st-slate', 2906 'On Site':'st-blue','Checked Out':'st-slate','Expected':'st-amber','Flagged':'st-red', 2907 'Approved':'st-blue','Pending':'st-amber','Cleared':'st-blue','Pre-Registered':'st-amber' 2908 }; 2909 function pill(label,solid){return '<span class="pill '+(STMAP[label]||'st-slate')+(solid?' solid':'')+'">'+label+'</span>';} 2910 var AVC=['#2F6BFF','#5B53E8','#7C3AED','#0EA5E9','#DB7706','#E11D48','#475569','#1D4ED8','#0891B2']; 2911 function avaColor(n){var h=0;for(var i=0;i<n.length;i++)h=(h*31+n.charCodeAt(i))>>>0;return AVC[h%AVC.length];} 2912 function initials(n){var p=n.trim().split(/\s+/);return (p[0][0]+(p[1]?p[1][0]:'')).toUpperCase();} 2913 function who(name){if(name==='Unassigned')return '<span class="who un">Unassigned</span>';return '<span class="who"><span class="ava" style="background:'+avaColor(name)+'">'+initials(name)+'</span>'+name+'</span>';} 2914 var CATIC={'Access Card':['#5B53E8','card'],'Cleaning':['#0EA5E9','spark'],'Concierge':['#475569','user'],'Amenity Reservation':['#7C3AED','cal'],'HVAC':['#2F6BFF','wind'],'Plumbing':['#0EA5E9','drop'],'Electrical':['#DB7706','bolt'],'Janitorial':['#1D4ED8','spark']}; 2915 function cat(name){var c=CATIC[name]||['#475569','spark'];return '<span class="cat"><span class="ic" style="background:'+c[0]+'">'+svg(c[1])+'</span>'+name+'</span>';} 2916 var CATC={'HVAC':'#2F6BFF','Elevator':'#7C3AED','Janitorial':'#DB7706','Life Safety':'#E11D48','Electrical':'#E8A317','Security':'#334155','Plumbing':'#0EA5E9','Pest Control':'#1D4ED8','Exterior':'#DB7706','Logistics':'#475569'}; 2917 function catdot(name){return '<span class="dot" style="--c:'+(CATC[name]||'#2F6BFF')+'">'+name+'</span>';} 2918 function tabs(arr){return '<div class="sc-tabs">'+arr.map(function(t,i){return '<span class="sc-tab anim'+(i===0?' on':'')+(t[2]?' alert':'')+'" style="--d:'+(i*55+120)+'ms">'+t[0]+' <b>'+t[1]+'</b></span>';}).join('')+'</div>';} 2919 function head(title,sub){return '<div class="anim"><div class="sc-title">'+title+'</div><p class="sc-sub">'+sub+'</p></div>';} 2920 function rows(cols, data){ 2921 var th='<tr>'+cols.map(function(c){return '<th>'+c+'</th>';}).join('')+'</tr>'; 2922 var tr=data.map(function(r,i){ 2923 return '<tr class="anim" style="--d:'+(i*65+260)+'ms">'+r.map(function(c){return '<td>'+c+'</td>';}).join('')+'</tr>'; 2924 }).join(''); 2925 return '<div class="sc-card anim" style="--d:200ms"><table class="sc-tbl"><thead>'+th+'</thead><tbody>'+tr+'</tbody></table></div>'; 2926 } 2927 var screens = [ 2928 { nav:'vis', crumb:'Front Desk <i>/</i> <b>Visitor Log</b>', render:function(){ 2929 return head('Visitor Log','Every guest in the building, across your portfolio.') 2930 + tabs([['All','312'],['On Site','48'],['Checked Out','251'],['Flagged','2',1]]) 2931 + rows(['Visitor','Site','Host','Company','Arrival','Status'],[ 2932 [who('Dana Lewis'),site('Meridian Plaza'),who('Priya Shah'),'Northwind','9:30 AM',pill('On Site')], 2933 [who('Marco Ruiz'),site('Harbor Point'),who('Liz Braden'),'Acme Co','10:05 AM',pill('On Site')], 2934 [who('Sara Kim'),site('Gateway Tower'),who('Owen Castillo'),'Vertex Inc','8:50 AM',pill('Checked Out')], 2935 [who('Tom Hale'),site('The Lattice'),who('Nadia Brooks'),'Beacon LLC','11:20 AM',pill('Expected')], 2936 [who('Erin Cole'),site('Meridian Plaza'),who('Marcus L
2936ane'),'Pixel Co','9:58 AM',pill('On Site')], 2937 [who('Raj Patel'),site('Vista West'),who('Sela Davis'),'Northwind','7:45 AM',pill('Checked Out')] 2938 ]); 2939 }}, 2940 { nav:'cal', crumb:'Front Desk <i>/</i> <b>Pre-Registrations</b>', render:function(){ 2941 return head('Pre-Registrations','Guests invited and expected across your buildings.') 2942 + tabs([['All','120'],['Today','42'],['Tomorrow','51'],['This Week','120']]) 2943 + rows(['Visitor','Site','Host','Date','Time','Status'],[ 2944 [who('Lena Park'),site('Meridian Plaza'),who('Priya Shah'),'Today','2:00 PM',pill('Approved')], 2945 [who('Cole Diaz'),site('Harbor Point'),who('Liz Braden'),'Today','3:30 PM',pill('Approved')], 2946 [who('Mia Wong'),site('Gateway Tower'),who('Owen Castillo'),'Tomorrow','9:00 AM',pill('Pending')], 2947 [who('Sam Reed'),site('The Lattice'),who('Nadia Brooks'),'Tomorrow','11:00 AM',pill('Approved')], 2948 [who('Ivy Chen'),site('Meridian Plaza'),who('Tara Quinn'),'Jun 12','10:30 AM',pill('Approved')], 2949 [who('Leo Fox'),site('Vista West'),who('Sela Davis'),'Jun 13','1:15 PM',pill('Pending')] 2950 ]); 2951 }}, 2952 { nav:'insp', crumb:'Front Desk <i>/</i> <b>Check-Ins Today</b>', render:function(){ 2953 return head('Check-Ins Today','Live arrivals at the front desk and kiosks.') 2954 + tabs([['All','287'],['Last Hour','34'],['Awaiting Host','6'],['Badges Printed','281']]) 2955 + rows(['Visitor','Site','Host','Time','Method','Status'],[ 2956 [who('Dana Lewis'),site('Meridian Plaza'),who('Priya Shah'),'9:30 AM','Kiosk',pill('On Site')], 2957 [who('Marco Ruiz'),site('Harbor Point'),who('Liz Braden'),'10:05 AM','Mobile Pass',pill('On Site')], 2958 [who('Owen Black'),site('Gateway Tower'),who('Owen Castillo'),'10:12 AM','Front Desk',pill('On Site')], 2959 [who('Erin Cole'),site('Meridian Plaza'),who('Marcus Lane'),'9:58 AM','QR Pass',pill('On Site')], 2960 [who('Nina Ortiz'),site('The Lattice'),who('Chloe Weber'),'10:20 AM','Kiosk',pill('Expected')], 2961 [who('Paul Adams'),site('Harbor Point'),who('Sela Davis'),'10:24 AM','Front Desk',pill('On Site')] 2962 ]); 2963 }}, 2964 { nav:'inc', crumb:'Front Desk <i>/</i> <b>Watchlist</b>', render:function(){ 2965 return head('Watchlist Screening','Every arrival screened against your watchlists.') 2966 + tabs([['Screened','312'],['Cleared','310'],['Flagged','2',1]]) 2967 + rows(['Visitor','Site','Host','Arrival','Result'],[ 2968 [who('Dana Lewis'),site('Meridian Plaza'),who('Priya Shah'),'9:30 AM',pill('Cleared')], 2969 [who('Marco Ruiz'),site('Harbor Point'),who('Liz Braden'),'10:05 AM',pill('Cleared')], 2970 [who('Unknown Guest'),site('Gateway Tower'),who('Front Desk'),'10:11 AM',pill('Flagged',1)], 2971 [who('Sara Kim'),site('Gateway Tower'),who('Owen Castillo'),'8:50 AM',pill('Cleared')], 2972 [who('Erin Cole'),site('Meridian Plaza'),who('Marcus Lane'),'9:58 AM',pill('Cleared')], 2973 [who('Raj Patel'),site('Vista West'),who('Sela Davis'),'7:45 AM',pill('Cleared')] 2974 ]); 2975 }}, 2976 { nav:'reports', crumb:'Reports & Analytics <i>/</i> <b>Visitor Analytics</b>', render:function(){ 2977 var ctl='<div class="ch-controls">' 2978 +'<div class="ch-ctl anim" style="--d:120ms"><span>Metric</span><b>Visitor Count</b></div>' 2979 +'<div class="ch-ctl anim" style="--d:180ms"><span>Group By</span><b>Site</b></div>' 2980 +'<div class="ch-ctl anim" style="--d:240ms"><span>Range</span><b>Today</b></div>' 2981 +'<div class="ch-ctl anim" style="--d:300ms"><span>View</span><b>Portfolio</b></div></div>'; 2982 var kpis='<div class="ch-kpis"><div class="ch-kpi anim" style="--d:200ms"><span>Total Visitors Today</span><b data-count="342">0</b></div>' 2983 +'<div class="ch-kpi anim" style="--d:280ms"><span>Avg Check-In (sec)</span><b data-count="38">0</b></div></div>'; 2984 var data=[['Meridian Plaza',128],['Gateway Tower',96],['Harbor Point',74],['800 District',58],['Vista West',41],['The Lattice',33]]; 2985 var max=128; 2986 var bars='<div class="ch-bars">'+data.map(function(d,i){ 2987 return '<div class="ch-row anim" style="--d:'+(i*45+340)+'ms"><div class="ch-name">'+d[0]+'</div><div class="ch-track"><div class="ch-fill" data-w="'+(d[1]/max*100)+'" style="transition-delay:'+(i*45+340)+'ms"><b>'+d[1]+'</b></div></div></div>'; 2988 }).join('')+'</div>'; 2989 return head('Visitor Analytics','Arrivals, wait times, and peaks across your portfolio.')+ctl+kpis+bars; 2990 }} 2991 ]; 2992 function easeOut(t){return 1-Math.pow(1-t,3);} 2993 function countUp(el){ 2994 var to=parseInt(el.dataset.count,10), dur=1100, t0=null; 2995 function step(ts){if(!t0)t0=ts;var p=Math.min((ts-t0)/dur,1);
2995el.textContent=Math.round(easeOut(p)*to).toLocaleString();if(p<1)requestAnimationFrame(step);} 2996 requestAnimationFrame(step); 2997 } 2998 function runScreen(el){ 2999 setTimeout(function(){el.querySelectorAll('[data-count]').forEach(countUp);},260); 3000 el.querySelectorAll('.stat .track i').forEach(function(i){requestAnimationFrame(function(){requestAnimationFrame(function(){i.style.width=i.dataset.w+'%';});});}); 3001 el.querySelectorAll('.ch-fill').forEach(function(f){requestAnimationFrame(function(){requestAnimationFrame(function(){f.style.width=f.dataset.w+'%';setTimeout(function(){f.classList.add('show');},f.dataset.w>14?300:600);});});}); 3002 } 3003 var screenEl=document.getElementById('osScreen'); 3004 var crumbEl=document.getElementById('osCrumb'); 3005 var dotsEl=document.getElementById('osDots'); 3006 var idx=0, raf=null, start=0, elapsed=0, paused=false, DWELL=2000; 3007 screens.forEach(function(_,i){var b=document.createElement('button');b.className='os-dot'+(i?'':' is-active');b.innerHTML='<i></i>';b.addEventListener('click',function(){goto(i);});dotsEl.appendChild(b);}); 3008 var dots=Array.prototype.slice.call(dotsEl.children); 3009 function moveInd(){ 3010 var a=navItems.filter(function(n){return n.classList.contains('active');})[0]; 3011 if(!a)return; indEl.style.height=a.offsetHeight+'px'; indEl.style.transform='translateY('+a.offsetTop+'px)'; 3012 } 3013 function render(i){ 3014 idx=(i+screens.length)%screens.length; var s=screens[idx]; 3015 crumbEl.innerHTML=s.crumb; 3016 navItems.forEach(function(n){n.classList.toggle('active',n.dataset.nav===s.nav);}); 3017 moveInd(); 3018 screenEl.classList.remove('leaving'); 3019 screenEl.innerHTML=s.render(); 3020 runScreen(screenEl); 3021 dots.forEach(function(d,k){d.classList.toggle('is-active',k===idx);d.firstElementChild.style.width='0%';}); 3022 startProgress(); 3023 } 3024 function goto(i){screenEl.classList.add('leaving');setTimeout(function(){render(i);},300);} 3025 function startProgress(){ 3026 cancelAnimationFrame(raf); start=0; elapsed=0; 3027 function tick(ts){ 3028 if(paused){start=ts-elapsed;raf=requestAnimationFrame(tick);return;} 3029 if(!start)start=ts; elapsed=ts-start; 3030 var p=Math.min(elapsed/DWELL,1); 3031 if(dots[idx])dots[idx].firstElementChild.style.width=(p*100)+'%'; 3032 if(p>=1){goto(idx+1);return;} 3033 raf=requestAnimationFrame(tick); 3034 } 3035 raf=requestAnimationFrame(tick); 3036 } 3037 document.getElementById('osNext').addEventListener('click',function(){goto(idx+1);}); 3038 document.getElementById('osPrev').addEventListener('click',function(){goto(idx-1);}); 3039 var win=document.querySelector('.os-window'); 3040 win.addEventListener('mouseenter',function(){paused=true;}); 3041 win.addEventListener('mouseleave',function(){paused=false;}); 3042 document.addEventListener('visibilitychange',function(){paused=document.hidden;}); 3043 if('IntersectionObserver' in window){new IntersectionObserver(function(e){paused=!e[0].isIntersecting;},{threshold:.15}).observe(win);} 3044 window.addEventListener('resize',moveInd); 3045 render(0); 3046})(); 3047</script>
3047</body></html>" style="position:absolute;inset:0;width:100%;height:100%;border:0;opacity:0;pointer-events:none;transition:opacity .45s ease;"></iframe> 3048 <iframe class="cove-os-frame" data-panel="3" title="CoveAI" loading="lazy" srcdoc="<!DOCTYPE html> 3049<html lang="en"> 3050<head> 3051<meta charset="UTF-8" /> 3052<meta name="viewport" content="width=device-width, initial-scale=1.0" /> 3053<title>Cove Product Tour, Self-Assembling</title> 3054<link rel="preconnect" href="https://fonts.googleapis.com" /> 3055<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> 3056<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet" /> 3057<style> 3058 html,body{margin:0; height:100%; background:transparent;} 3059 .cove-os{ 3060 --side:#0e1826; --side-2:#13233a; --navy:#16233c; --ink:#16233c; --ink-2:#3d4d68; --muted:#8494ad; 3061 --blue-600:#2F6BFF; --blue-500:#3D78FF; --blue-tx:#1D4ED8; 3062 --teal:#52c9ec; --teal-d:#1f9fc4; 3063 --amber:#E0901C; --slate:#64748B; 3064 --line:#E6EBF3; --panel:#F5F7FB; 3065 --font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; 3066 position:relative; isolation:isolate; overflow:hidden; font-family:var(--font); 3067 color:var(--ink); padding:0; height:100%; background:transparent; box-sizing:border-box; 3068 } 3069 .cove-os *,.cove-os *::before,.cove-os *::after{box-sizing:border-box;} 3070 .os-wrap{max-width:none; margin:0; height:100%;} 3071 .os-window{display:flex; height:100%; border-radius:0; overflow:hidden; 3072 background:#fff; border:0; box-shadow:none; 3073 animation:os-pop .8s cubic-bezier(.2,.9,.3,1.2) both;} 3074 @keyframes os-pop{from{opacity:0; transform:translateY(24px) scale(.97);} to{opacity:1; transform:none;}} 3075 .os-side{width:230px; flex:none; background:var(--side); color:#c2cfe4; display:flex; flex-direction:column; padding:16px 12px; overflow:hidden; animation:side-in .7s ease both .1s;} 3076 @keyframes side-in{from{transform:translateX(-30px); opacity:0;} to{transform:none; opacity:1;}} 3077 .os-brand{display:flex; align-items:center; justify-content:space-between; padding:4px 10px 16px;} 3078 .cove-logo{height:29px; width:auto; display:block;} 3079 .os-brand .cv{display:flex; align-items:center; gap:8px;} 3080 .os-brand .chev{width:16px; height:16px; color:#63799e;} 3081 .os-nav{position:relative; display:flex; flex-direction:column; gap:1px; flex:1; overflow:hidden; transition:opacity .3s;} 3082 .os-item{display:flex; align-items:center; gap:11px; padding:9px 11px; border-radius:8px; font-size:12.5px; font-weight:500; color:#9fb0c9; position:relative;} 3083 .os-item svg.i{width:15px; height:15px; flex:none; opacity:.85;} 3084 .os-item .rt{margin-left:auto; display:flex; align-items:center;} 3085 .os-chev{width:13px; height:13px; color:#5f7391;} 3086 .os-item.active{background:rgba(255,255,255,.07); color:#fff; box-shadow:inset 3px 0 0 var(--teal);} 3087 .os-sub{display:flex; align-items:center; padding:7px 11px 7px 42px; border-radius:8px; font-size:11.5px; color:#8598b4; font-weight:500;} 3088 .os-sub .rt{margin-left:auto; display:flex; align-items:center;} 3089 .os-sub.active{color:#fff; font-weight:700;} 3090 .bdg{font-size:10px; font-weight:700; background:#EF4444; color:#fff; min-width:19px; height:18px; padding:0 5px; border-radius:9px; display:grid; place-items:center;} 3091 .os-main{flex:1; background:var(--panel); min-width:0; overflow:hidden;} 3092 .os-body{height:100%; padding:24px 26px; overflow:hidden; position:relative;} 3093 .os-screen{height:100%; transition:opacity .35s ease, filter .35s ease, transform .35s ease;} 3094 .os-screen.leaving{opacity:0; filter:blur(6px); transform:scale(.985);} 3095 .sc-title{font-size:24px; font-weight:800; color:var(--ink); margin:0; letter-spacing:-.01em;} 3096 .sc-sub{font-size:12.5px; color:var(--muted); margin:4px 0 0;} 3097 .pill{display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; padding:4px 11px; border-radius:999px;} 3098 .p-blue{color:#fff; background:var(--teal-d);} .p-amber{color:#fff; background:var(--amber);} 3099 .p-slate{color:#fff; background:#93a2b8;} 3100 .btn{display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:700; border-radius:9px; padding:9px 15px; border:1px solid var(--line); background:#fff; color:var(--ink); white-space:nowrap;} 3101 .btn svg{width:15px; height:15px;} 3102 .btn.dark{background:var(--navy); color:#fff; border-color:var(--navy);} 3103 .btn.teal{background:var(--teal-d); color:#fff; border-color:var(--teal-d);} 3104 .btn.mut{color:#aab4c6;} 3105 .spark{color:var(--teal);} 3106 /* screen 1 */ 3107 .an-wrap{display:flex; gap:20px; height:100%;} 3108 .an-form{flex:1; min-width:0; overflow:hidden;} 3109 .fl{font-size:12px; font-weight:700; color:var(--ink); margin:16px 0 7px;}
3110 .sec-hd{font-size:15px; font-weight:800; color:var(--ink); margin:18px 0 4px; padding-bottom:8px; border-bottom:1px solid var(--line);} 3111 .help{font-size:11.5px; color:var(--muted); line-height:1.4; margin:8px 0 12px;} 3112 .drop{border:1px solid var(--line); border-radius:9px; padding:11px 13px; background:#fff; display:flex; align-items:center; justify-content:space-between; font-size:13px; color:var(--muted); max-width:520px;} 3113 .drop svg{width:15px; height:15px; color:var(--muted);} 3114 .radio{display:flex; gap:12px; padding:9px 0;} 3115 .rd{width:19px; height:19px; border-radius:50%; border:2px solid #c3cede; flex:none; margin-top:2px; position:relative;} 3116 .rd.on{border-color:var(--blue-600);} .rd.on::after{content:""; position:absolute; inset:3px; border-radius:50%; background:var(--blue-600);} 3117 .r-h{font-size:13.5px; font-weight:700; color:var(--ink);} 3118 .r-d{font-size:12px; color:var(--ink-2); margin-top:2px; line-height:1.4;} 3119 .r-s{font-size:11px; font-style:italic; color:var(--muted); margin-top:4px;} 3120 .inp{border:1px solid var(--line); border-radius:9px; background:#fff; padding:12px 13px; font-size:13px; color:var(--muted); max-width:640px;} 3121 .ta{border:1px solid var(--line); border-radius:9px; background:#fff; height:150px; max-width:640px; padding:12px 13px; font-size:11.5px; line-height:1.45; color:var(--ink); white-space:pre-wrap; overflow:hidden;} 3122 .an-ai{width:300px; flex:none; border:1px solid var(--line); border-radius:14px; background:#fff; padding:16px; display:flex; flex-direction:column; box-shadow:0 10px 30px -18px rgba(15,35,60,.4);} 3123 .ai-top{display:flex; align-items:center; gap:8px; font-size:15px; font-weight:800; color:var(--ink);} 3124 .ai-top svg{width:16px; height:16px;} .ai-top .x{margin-left:auto; color:var(--muted);} 3125 .ai-sub{font-size:12px; color:var(--muted); margin-top:5px;} 3126 .ai-link{font-size:12px; color:var(--blue-tx); font-weight:600; margin-top:6px; display:block;} 3127 .ai-bubble{background:var(--panel); border-radius:12px; padding:12px; margin-top:16px; font-size:11.5px; color:var(--ink-2); line-height:1.5;} 3128 .ai-bubble b{display:block; font-size:10px; color:var(--muted); font-weight:700; margin-bottom:5px;} 3129 .ai-il{font-size:12px; font-weight:700; color:var(--ink); margin:auto 0 7px;} 3130 .ai-ta{border:1px solid var(--line); border-radius:10px; padding:11px; font-size:11.5px; color:var(--ink); line-height:1.5; min-height:78px; white-space:pre-wrap; overflow:hidden;} 3131 .ai-disc{font-size:10px; color:var(--muted); margin:9px 0; line-height:1.4;} 3132 .ai-gen{background:#cbe9f4; color:#2f6f86; border-radius:10px; padding:12px; text-align:center; font-size:13px; font-weight:700; display:flex; align-items:center; justify-content:center; gap:8px;} 3133 .ai-gen svg{width:15px; height:15px;} 3134 .ai-gen.busy{opacity:.7;} 3135 .tw-cur{display:inline-block; width:0; border-right:2px solid currentColor; height:1em; vertical-align:text-bottom; margin-left:1px; animation:twblink 1s steps(1) infinite;} 3136 @keyframes twblink{50%{opacity:0;}} 3137 /* tables */ 3138 .sc-card{background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden;} 3139 table.sc-tbl{width:100%; border-collapse:collapse; font-size:12px;} 3140 .sc-tbl th{text-align:left; font-size:9.5px; letter-spacing:.05em; color:var(--muted); font-weight:700; text-transform:uppercase; padding:11px 12px; border-bottom:1px solid var(--line);} 3141 .sc-tbl td{padding:11px 12px; border-bottom:1px solid #F1F4FA; color:var(--ink-2); vertical-align:middle;} 3142 .sc-tbl tr:last-child td{border-bottom:none;} 3143 .sc-tbl .doc{color:var(--ink); font-weight:600; max-width:150px; word-break:break-word; font-size:11.5px;} 3144 .sc-tbl .ven{color:var(--ink); font-weight:600;} 3145 .trash{color:#aab4c6;} .trash svg{width:16px; height:16px;} 3146 .rev{display:inline-flex; align-items:center; gap:6px; border:1px solid var(--line); border-radius:8px; padding:7px 12px; font-size:12px; font-weight:700; color:var(--ink);} 3147 .rev svg{width:14px; height:14px; color:var(--teal);} 3148 .toolbar{display:flex; align-items:center; gap:10px; margin:14px 0 10px;} 3149 .search{flex:1; max-width:360px; border:1px solid var(--line); border-radius:9px; padding:10px 13px; font-size:12.5px; color:var(--muted); background:#fff;} 3150 .rbar{display:flex; align-items:center; justify-content:space-between; margin:0 0 12px; font-size:11.5px; color:var(--muted);} 3151 .rl{display:flex; align-items:center; gap:8px;} 3152 .mini{display:inline-flex; align-items:center; gap:4px; border:1px solid var(--line); border-radius:7px; padding:4px 8px; color:var(--ink); font-weight:600; background:#fff;} 3153 .mini svg{width:12px; height:12px;} 3154 .pg{display:inline-grid; place-items:center; width:26px; height:26px; border:1px solid var(--line); border-radius:7px; background:#fff; color:var(--muted);} 3155 .pg svg{width:13px; height:13px;} 3156 .seg{display:flex; border:1px solid var(--line); border-radius:9px; overflow:hidden; font-size:11.5px; font-weight:700;} 3157 .seg span{padding:7px 12px; color:var(--muted); display:flex; align-items:center; gap:5px;}
3158 .seg .on{background:#eef2f8; color:var(--ink);} 3159 .cnt{display:inline-flex; align-items:center; gap:9px; font-size:14px; font-weight:700; color:var(--ink); margin:14px 0 4px;} 3160 .cnt .n{width:30px; height:30px; border-radius:50%; background:var(--navy); color:#fff; display:grid; place-items:center; font-size:13px; font-weight:800;} 3161 /* WO detail */ 3162 .wo-actions{display:flex; gap:9px; flex-wrap:wrap;} 3163 .wo-head{display:flex; align-items:center; gap:12px; margin:14px 0 12px;} 3164 .wo-head h1{font-size:24px; font-weight:800; margin:0;} 3165 .wo-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; background:#eef1f6; border-radius:12px; padding:15px 18px;} 3166 .wo-grid h4{font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin:0 0 8px; font-weight:700;} 3167 .dl{display:grid; grid-template-columns:auto 1fr; gap:5px 10px; font-size:11.5px;} 3168 .dl dt{color:var(--muted); font-weight:600;} .dl dd{margin:0; color:var(--ink); font-weight:600;} 3169 .ai-sum{background:#EAF4FB; border-radius:12px; padding:13px 16px; margin-top:14px;} 3170 .ai-sum-h{display:flex; align-items:center; gap:8px; font-size:13px; font-weight:800; color:var(--ink); margin-bottom:8px;} 3171 .ai-sum-h svg{width:15px; height:15px; color:var(--teal-d);} 3172 .ai-sum-h .cl{margin-left:auto; color:var(--muted);} 3173 .ai-sum-h .gen{font-size:11px; font-weight:600; color:var(--teal-d); display:inline-flex; align-items:center; gap:2px;} 3174 .ai-sum-h .gen .dots{display:inline-flex; gap:2px; margin-left:4px;} 3175 .ai-sum-h .gen .dots i{width:3px; height:3px; border-radius:50%; background:var(--teal-d); animation:woblink 1s infinite;} 3176 .ai-sum-h .gen .dots i:nth-child(2){animation-delay:.16s;} .ai-sum-h .gen .dots i:nth-child(3){animation-delay:.32s;} 3177 @keyframes woblink{0%,60%,100%{opacity:.25; transform:translateY(0);} 30%{opacity:1; transform:translateY(-2px);}} 3178 .ai-sum ul{margin:0; padding-left:18px;} .ai-sum li{font-size:12px; color:var(--ink-2); margin:4px 0; line-height:1.4;} 3179 .wo-tabs{display:flex; gap:24px; margin:16px 0 12px; border-bottom:1px solid var(--line);} 3180 .wo-tab{font-size:13px; font-weight:700; color:var(--muted); padding-bottom:9px;} 3181 .wo-tab.on{color:var(--ink); box-shadow:inset 0 -3px 0 var(--teal);} 3182 .wo-fields{display:grid; grid-template-columns:1fr 1fr; gap:14px 20px;} 3183 .field label{font-size:10px; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); font-weight:700; display:block; margin-bottom:6px;} 3184 .fsel{border:1px solid var(--line); border-radius:9px; background:#fff; padding:10px 12px; display:flex; align-items:center; gap:9px; font-size:13px; font-weight:600; color:var(--ink);} 3185 .fsel .cd{width:12px; height:12px; border-radius:50%; flex:none;} .fsel svg{width:15px; height:15px; margin-left:auto; color:var(--muted);} 3186 .av{width:22px; height:22px; border-radius:50%; background:#c7d2e0; color:#33455f; font-size:9px; font-weight:800; display:grid; place-items:center; flex:none;} 3187 .bhelp{font-size:10px; font-style:italic; color:var(--muted); margin:-2px 0 6px;} 3188 .chips{border:1px solid var(--line); border-radius:9px; background:#fff; padding:8px 10px; display:flex; align-items:center; gap:7px; flex-wrap:wrap; min-height:40px;} 3189 .chip{display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; color:#fff; padding:4px 9px; border-radius:7px;} 3190 .chip .x{width:13px; height:13px; border-radius:50%; background:rgba(255,255,255,.35); display:grid; place-items:center; font-size:9px;} 3191 .qa{margin-top:16px;} .qa h4{font-size:15px; font-weight:800; margin:0 0 9px;} 3192 .qa-row{display:flex; gap:10px; flex-wrap:wrap;} 3193 /* insights */ 3194 .ins-scroll{height:100%; overflow-y:auto; padding-right:4px;} 3195 .ins-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:12px;} 3196 .ins-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:12px;} 3197 .icard{background:#fff; border:1px solid var(--line); border-radius:12px; padding:13px 15px;} 3198 .ich{display:flex; justify-content:space-between; align-items:flex-start; gap:8px;} 3199 .ich h4{font-size:13px; font-weight:800; color:var(--ink); margin:0;} 3200 .ict{display:flex; gap:8px;
3200 color:#c2ccda; flex:none;} .ict svg{width:13px; height:13px;} 3201 .cs{font-size:9.5px; color:var(--muted); margin:2px 0 8px;} 3202 .donut-wrap{display:flex; align-items:center; gap:10px;} 3203 .donut{position:relative; width:104px; height:104px; flex:none;} 3204 .donut .ctr{position:absolute; inset:0; display:grid; place-items:center; font-size:16px; font-weight:800; color:var(--ink);} 3205 .leg{display:flex; flex-direction:column; gap:5px;} .lgi{display:flex; align-items:center; gap:6px; font-size:10px; color:var(--ink-2); font-weight:600;} 3206 .lgi::before{content:""; width:8px; height:8px; border-radius:50%; background:var(--c);} 3207 .vbars{display:flex; align-items:flex-end; gap:12px; height:118px; padding-top:14px;} 3208 .vb{flex:1 1 0; min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%;} 3209 .vb .bar{width:70%; max-width:34px; background:var(--c,#2F6BFF); border-radius:5px 5px 0 0; height:0; transition:height .9s cubic-bezier(.22,1,.36,1);} 3210 .vb .vv{font-size:10px; font-weight:700; color:var(--ink); margin-bottom:4px;} 3211 .vb .vl{font-size:9px; color:var(--muted); margin-top:5px; text-align:center; line-height:1.15;} 3212 .hb{display:grid; grid-template-columns:78px 1fr 30px; align-items:center; gap:8px; margin-bottom:6px;} 3213 .hb .nm{font-size:10px; color:var(--ink-2); text-align:right; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;} 3214 .hb .tk{height:13px; background:#eef2f8; border-radius:4px; overflow:hidden;} 3215 .hb .fl2{height:100%; width:0; background:var(--c,#2F6BFF); border-radius:4px; transition:width .85s cubic-bezier(.22,1,.36,1);} 3216 .hb .vv{font-size:10px; font-weight:700; color:var(--ink);} 3217 .gb{display:flex; align-items:flex-end; gap:9px; height:120px; padding-top:12px;} 3218 .gcat{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%;} 3219 .gpair{display:flex; align-items:flex-end; gap:3px; height:100%; width:100%; justify-content:center;} 3220 .gpair .bar{width:12px; height:0; border-radius:3px 3px 0 0; transition:height .85s cubic-bezier(.22,1,.36,1);} 3221 .gcat .vl{font-size:9px; color:var(--muted); margin-top:5px; text-align:center; line-height:1.15;} 3222 @keyframes rise{from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:none;}} 3223 @keyframes pop{from{opacity:0; transform:scale(.92);} to{opacity:1; transform:none;}} 3224 @keyframes slideL{from{opacity:0; transform:translateX(34px);} to{opacity:1; transform:none;}} 3225 .anim{opacity:0; animation:rise .55s cubic-bezier(.22,1,.36,1) both; animation-delay:var(--d,0ms);} 3226 .anim-pop{opacity:0; animation:pop .55s cubic-bezier(.2,.9,.3,1.3) both; animation-delay:var(--d,0ms);} 3227 .anim-r{opacity:0; animation:slideL .6s cubic-bezier(.22,1,.36,1) both; animation-delay:var(--d,0ms);} 3228 .os-controls{display:flex; align-items:center; justify-content:center; gap:16px; margin-top:22px;} 3229 .os-arrow{width:40px; height:40px; border-radius:50%; border:1px solid var(--teal); background:rgba(82,201,236,.14); color:#1593b8; cursor:pointer; display:grid; place-items:center; transition:.25s; flex:none;}
3230 .os-arrow:hover{background:var(--teal); border-color:var(--teal); color:#fff; transform:translateY(-2px);} 3231 .os-arrow svg{width:17px; height:17px;} 3232 .os-dots{display:flex; gap:9px;} 3233 .os-dot{--p:0; position:relative; width:30px; height:6px; border-radius:999px; border:none; padding:0; cursor:pointer; background:rgba(82,201,236,.28); overflow:hidden; transition:width .3s;} 3234 .os-dot i{position:absolute; inset:0; width:var(--p); background:linear-gradient(90deg,var(--blue-500),var(--teal)); border-radius:999px;} 3235 .os-dot.is-active{width:44px;} 3236 @media (max-width:820px){ .an-ai{display:none;} .wo-grid,.ins-grid,.wo-fields{grid-template-columns:1fr;} } 3237 @media (prefers-reduced-motion:reduce){ 3238 .cove-os .os-window,.cove-os .os-side{animation:none;} 3239 .cove-os .anim,.cove-os .anim-pop,.cove-os .anim-r{animation-duration:.01ms !important; opacity:1;} 3240 } 3241</style> 3242</head> 3243<body style="margin:0;background:transparent;"> 3244<section class="cove-os" aria-label="Cove product tour"> 3245 <div class="os-wrap"> 3246 <div class="os-window"> 3247 <aside class="os-side"> 3248 <div class="os-brand"> 3249 <span class="cv"><img class="cove-logo" src="https://21927082.fs1.hubspotusercontent-na1.net/hubfs/21927082/Cove_Logo_White_Teal_Dot.png?width=140&name=Cove_Logo_White_Teal_Dot.png" alt="Cove" /></span> 3250 <svg class="chev"
3250 viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg> 3251 </div> 3252 <nav class="os-nav" id="osNav"></nav> 3253 </aside> 3254 <div class="os-main"><div class="os-body"><div class="os-screen" id="osScreen"></div></div></div> 3255 </div> 3256 </div> 3257</section>
3258<script> 3259(function(){ 3260 var I={ 3261 wo:'<path d="M14.7 6.3a4 4 0 0 0-5.4 5.4L3 18v3h3l6.3-6.3a4 4 0 0 0 5.4-5.4l-2.5 2.5-2-2z"/>', 3262 maint:'<rect x="3" y="4" width="18" height="16" rx="2"/><path d="M8 4v4M16 4v4M3 10h18"/>', 3263 insp:'<path d="M9 11l3 3L22 4"/><path d="M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"/>', 3264 inc:'<path d="M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"/><path d="M12 9v4M12 17h.01"/>', 3265 resv:'<rect x="3" y="4" width="18" height="17" rx="2"/><path d="M3 9h18M8 2v4M16 2v4"/>', 3266 engage:'<path d="M3 11l18-8-8 18-2-7-8-3z"/>', 3267 coi:'<path d="M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z"/><path d="M9 12l2 2 4-4"/>', 3268 vis:'<rect x="3" y="4" width="18" height="16" rx="2"/><circle cx="9" cy="10" r="2"/><path d="M5 17a4 4 0 0 1 8 0M16 9h3M16 13h3"/>', 3269 pkg:'<path d="M12 3l8 4v10l-8 4-8-4V7z"/><path d="M4 7l8 4 8-4M12 11v10"/>', 3270 log:'<path d="M3 12h4l2 6 4-14 2 8h6"/>', 3271 insights:'<path d="M9 21h6M12 3a6 6 0 0 1 4 10.5c-.6.6-1 1.3-1 2.1V17H9v-1.4c0-.8-.4-1.5-1-2.1A6 6 0 0 1 12 3z"/>', 3272 reports:'<path d="M3 3v18h18"/><path d="M7 14l3-4 3 3 4-6"/>', 3273 admin:'<circle cx="12" cy="12" r="3.2"/><path d="M12 2v3M12 19v3M2 12h3M19 12h3M4.9 4.9l2.1 2.1M17 17l2.1 2.1M19.1 4.9L17 7M7 17l-2.1 2.1"/>', 3274 po:'<rect x="5" y="3" width="14" height="18" rx="2"/><path d="M9 7h6M9 11h6M9 15h4"/>', 3275 dir:'<circle cx="9" cy="8" r="3"/><path d="M3.5 20a5.5 5.5 0 0 1 11 0"/><circle cx="17.5" cy="9" r="2.2"/><path d="M15.5 20a4.2 4.2 0 0 1 6.3-3.2"/>', 3276 forms:'<rect x="4" y="3" width="16" height="18" rx="2"/><path d="M8 9h8M8 13h8M8 17h5"/>', 3277 propset:'<path d="M3 21h18M5 21V7l7-4 7 4v14M9 21v-5h6v5"/>', 3278 support:'<circle cx="12" cy="12" r="9"/><path d="M9.5 9.2a2.5 2.5 0 0 1 4 1.4c0 1.5-2 1.9-2 3"/><path d="M12 17h.01"/>', 3279 clock:'<circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/>', 3280 inbox:'<path d="M3 12h5l2 3h4l2-3h5"/><path d="M4 12l2-7h12l2 7v7a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z"/>', 3281 contact:'<path d="M21 15a2 2 0 0 1-2 2H8l-5 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>', 3282 spark:'<path d="M12 2l1.6 4.8L18 8l-4.4 1.2L12 14l-1.6-4.8L6 8l4.4-1.2z"/><path d="M18 13l.8 2.4L21 16l-2.2.6L18 19l-.8-2.4L15 16l2.2-.6z"/>', 3283 x:'<path d="M18 6 6 18M6 6l12 12"/>', chev:'<path d="M6 9l6 6 6-6"/>', chevr:'<path d="M9 6l6 6-6 6"/>', chevu:'<path d="M18 15l-6-6-6 6"/>', 3284 trash:'<path d="M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"/>', 3285 upload:'<path d="M12 15V3M8 7l4-4 4 4M4 15v4a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-4"/>', 3286 print:'<path d="M6 9V2h12v7M6 18H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-2M6 14h12v8H6z"/>', 3287 edit:'<path d="M12 20h9"/><path d="M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z"/>', 3288 back:'<path d="M19 12H5M11 6l-6 6 6 6"/>', 3289 attach:'<rect x="3" y="4" width="18" height="14" rx="2"/><circle cx="9" cy="10" r="2"/><path d="M4 17l5-4 4 3 3-2 4 3"/>', 3290 plus:'<path d="M12 5v14M5 12h14"/>' 3291 }; 3292 function s(n,w){return '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="'+(w||2)+'" stroke-linecap="round" stroke-linejoin="round">'+(I[n]||'')+'</svg>';} 3293 function sf(n){return '<svg viewBox="0 0 24 24" fill="currentColor">'+(I[n]||'')+'</svg>';} 3294 function ci(n){return '<svg class="i"
3294 viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">'+(I[n]||'')+'</svg>';} 3295 function cv(n){return '<svg class="os-chev" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round">'+(I[n]||'')+'</svg>';} 3296 // sidebar spec helpers 3297 function grp(icon,label,o){o=o||{};return {icon:icon,label:label,active:o.active,chev:o.chev,badge:o.badge,subs:o.subs};} 3298 function sub(label,o){o=o||{};return {label:label,active:o.active,chev:o.chev,badge:o.badge};} 3299 function renderNav(spec){ 3300 var h=''; 3301 spec.forEach(function(g){ 3302 var rt=''; 3303 if(g.badge)rt='<span class="bdg">'+g.badge+'</span>'; 3304 else if(g.active&&g.subs)rt=cv('chevu'); 3305 else if(g.chev)rt=cv('chev'); 3306 h+='<div class="os-item'+(g.active?' active':'')+'">'+ci(g.icon)+'<span>'+g.label+'</span><span class="rt">'+rt+'</span></div>'; 3307 if(g.active&&g.subs){g.subs.forEach(function(sb){ 3308 var srt=sb.badge?'<span class="bdg">'+sb.badge+'</span>':(sb.chev?cv('chev'):''); 3309 h+='<div class="os-sub'+(sb.active?' active':'')+'"><span>'+sb.label+'</span><span class="rt">'+srt+'</span></div>'; 3310 });} 3311 }); 3312 return h; 3313 } 3314 // charts 3315 function donut(segs,center,suf){ 3316 var r=44,C=2*Math.PI*r,acc=0,arcs=''; 3317 segs.forEach(function(sg){var len=sg[0]*C;arcs+='<circle cx="52" cy="52" r="'+r+'" fill="none" stroke="'+sg[1]+'" stroke-width="15" stroke-dasharray="'+len+' '+(C-len)+'" stroke-dashoffset="'+(-acc)+'" transform="rotate(-90 52 52)"/>';acc+=len;}); 3318 return '<div class="donut"><svg viewBox="0 0 104 104"><circle cx="52" cy="52" r="'+r+'" fill="none" stroke="#eef2f8" stroke-width="15"/>'+arcs+'</svg><div class="ctr"><span data-count="'+center+'"'+(suf?' data-suf="'+suf+'"':'')+'>0</span></div></div>'; 3319 } 3320 function head(t){return '<div class="ich"><h4>'+t+'</h4><span class="ict">'+s('edit')+s('trash')+'</span></div>';} 3321 function donutCard(t,sub2,segs,center,suf,leg,d){ 3322 var l=leg.map(function(x){return '<span class="lgi" style="--c:'+x[1]+'">'+x[0]+'</span>';}).join(''); 3323 return '<div class="icard anim-pop" style="--d:'+d+'ms">'+head(t)+'<div class="cs">'+sub2+'</div><div class="donut-wrap">'+donut(segs,center,suf)+'<div class="leg">'+l+'</div></div></div>'; 3324 } 3325 function vbarCard(t,sub2,data,color,d){ 3326 var max=Math.max.apply(null,data.map(function(x){return x[1];})); 3327 var bars=data.map(function(x,i){return '<div class="vb"><div class="vv">'+x[1]+'</div><div class="bar" data-h="'+(x[1]/max*100)+'" style="--c:'+color+';transition-delay:'+(d+i*70)+'ms"></div><div class="vl">'+x[0]+'</div></div>';}).join(''); 3328 return '<div class="icard anim" style="--d:'+d+'ms">'+head(t)+'<div class="cs">'+sub2+'</div><div class="vbars">'+bars+'</div></div>'; 3329 } 3330 function hbarCard(t,sub2,data,color,d){ 3331 var max=Math.max.apply(null,data.map(function(x){return x[1];})); 3332 var bars=data.map(function(x,i){return '<div class="hb"><div class="nm">'+x[0]+'</div><div class="tk"><div class="fl2" data-w="'+(x[1]/max*100)+'" style="--c:'+color+';transition-delay:'+(d+i*55)+'ms"></div></div><div class="vv">'+x[1]+'</div></div>';}).join(''); 3333 return '<div class="icard anim" style="--d:'+d+'ms">'+head(t)+'<div class="cs">'+sub2+'</div><div style="margin-top:10px">'+bars+'</div></div>'; 3334 } 3335 function groupCard(t,sub2,cats,d){ 3336 var max=Math.max.apply(null,cats.map(function(x){return Math.max(x[1],x[2]);})); 3337 var g=cats.map(function(x,i){return '<div class="gcat"><div class="gpair"><div class="bar" data-h="'+(x[1]/max*100)+'" style="background:#1f2937;transition-delay:'+(d+i*60)+'ms"></div><div class="bar" data-h="'+(x[2]/max*100)+'" style="background:#EF4444;transition-delay:'+(d+i*60+40)+'ms"></div></div><div class="vl">'+x[0]+'</div></div>';}).join(''); 3338 return '<div class="icard anim" style="--d:'+d+'ms">'+head(t)+'<div class="cs">'+sub2+'</div><div class="gb">
3338'+g+'</div></div>'; 3339 } 3340 var NAV1=[ 3341 grp('engage','Engage',{active:true,subs:[sub('Announcements',{active:true}),sub('App Home Screen'),sub('Highlights'),sub('Events'),sub('Engagement Tags'),sub('Surveys'),sub('Display Management')]}), 3342 grp('po','Purchase Orders',{chev:true}),grp('coi','COI Management',{chev:true}),grp('vis','Visitors',{chev:true}), 3343 grp('pkg','Packages'),grp('log','Activity Log'),grp('insights','Insights by Cove'), 3344 grp('reports','Reports & Analytics',{chev:true}),grp('clock','Time Cards',{chev:true}) 3345 ]; 3346 var NAV2=[ 3347 grp('coi','COI Management',{active:true,subs:[sub('AI Review',{active:true,badge:'25'}),sub('Tenant COIs'),sub('Vendor COIs'),sub('COI Setup',{chev:true})]}), 3348 grp('vis','Visitors',{chev:true}),grp('pkg','Packages'),grp('log','Activity Log'),grp('insights','Insights by Cove'), 3349 grp('reports','Reports & Analytics',{chev:true}),grp('clock','Time Cards',{chev:true}), 3350 grp('forms','Waivers/Forms',{chev:true}),grp('propset','Property Setup',{chev:true}),grp('support','Support'),grp('admin','Admin',{chev:true}) 3351 ]; 3352 var NAV3=[ 3353 grp('wo','Work Orders',{active:true,subs:[sub('Tenant Updates (0)'),sub('New in My Groups (0)'),sub('Assigned to Me (2)'),sub('Open Work Orders (1127)'),sub('Upcoming Work Orders (26)'),sub('All Work Orders',{active:true}),sub('Review and Billing',{chev:true}),sub('Work Order Setup',{chev:true})]}), 3354 grp('maint','Maintenance',{chev:true}),grp('insp','Inspections',{chev:true}),grp('inc','Incidents',{chev:true}), 3355 grp('resv','Reservations',{chev:true}),grp('dir','Directories',{chev:true}),grp('engage','Engage',{chev:true}) 3356 ]; 3357 var NAV4=[ 3358 grp('inbox','Announcement Inbox'),grp('contact','Contact Hub',{chev:true}),grp('wo','Work Orders',{chev:true}), 3359 grp('maint','Maintenance',{chev:true}),grp('insp','Inspections',{chev:true}),grp('inc','Incidents',{chev:true}), 3360 grp('dir','Directories',{chev:true}),grp('engage','Engage',{chev:true}),grp('coi','COI Management',{chev:true}), 3361 grp('vis','Visitors',{chev:true}),grp('insights','Insights by Cove',{active:true}), 3362 grp('reports','Reports & Analytics',{chev:true}),grp('propset','Property Team',{chev:true}),grp('admin','Admin',{chev:true}) 3363 ]; 3364 var screens=[ 3365 { nav:NAV1, dwell:13500, render:function(){ 3366 var form='<div class="an-form">' 3367 +'<h1 class="sc-title anim">New Announcement</h1>' 3368 +'<div class="sec-hd anim" style="--d:80ms">Announcement Type</div>' 3369 +'<div class="help anim" style="--d:120ms">Announcement types help organize communications, determine the sender name recipients see, and let recipients opt in or out of each type.</div>' 3370 +'<div class="radio anim" style="--d:170ms"><span class="rd on"></span><div><div class="r-h">Property Communications</div><div class="r-s">Sent From Name: Cove Property Team ([email protected])</div></div></div>' 3371 +'<div class="radio anim" style="--d:220ms"><span class="rd"></span><div><div class="r-h">Marketing Announcements</div><div class="r-s">Sent From Name: Promotional Offer ([email protected])</div></div></div>' 3372 +'<div class="radio anim" style="--d:270ms"><span class="rd"></span><div><div class="r-h">Emergency Messages</div><div class="r-s">Sent From Name: Cove Emergency Team ([email protected])</div></div></div>' 3373 +'<div class="sec-hd anim" style="--d:340ms">Email Content</div>' 3374 +'<div class="fl anim" style="--d:380ms">Subject *</div><div class="inp anim" id="aiSubj" style="--d:410ms;color:#16233c"></div>' 3375 +'<div class="fl anim" style="--d:450ms">Message Body *</div><div class="ta anim" id="aiBody" style="--d:480ms"></div>' 3376 +'</div>'; 3377 var ai='<aside class="an-ai anim-r" style="--d:260ms">' 3378 +'<div class="ai-top"><span class="spark">'+sf('spark')+'</span>CoveAI Assistant<span class="x">'+s('x')+'</span></div>' 3379 +'<div class="ai-bubble"><b>coveAI</b>Try "Create an Announcement about planned building maintenance and building access" and include a few relevant details.</div>' 3380 +'<div class="ai-il">Type Your Instructions</div>' 3381 +'<div class="ai-ta" id="aiInput"></div>' 3382 +'<div class="ai-disc">AI-generated content may contain errors. Please review carefully before using or publishing.</div>' 3383 +'<div class="ai-gen" id="aiGen">'+sf('spark')+'Generate Announcement</div>' 3384 +'</aside>'; 3385 return '<div class="an-wrap">'+form+ai+'</div>'; 3386 }, boot:function(el,token){ 3387 var input=el.querySelector('#aiInput'), subj=el.querySelector('#aiSubj'), body=el.querySelector('#aiBody'), btn=el.querySelector('#aiGen'); 3388 var genHTML=sf('spark')+'Generate Announcement'; 3389 var prompt="Announce our Local Eats Festival, starts today at noon, with local vendors coming to the lobby."; 3390 var subject="Local Eats Festival starts today at noon in the lobby"; 3391 var bodyText="Hi everyone,\n\nOur Local Eats Festival starts today at noon in the lobby, with local vendors sharing their best bites. Come hungry and say hello.\n\nSee you downstairs,\nThe Property Team"; 3392 setTimeout(function(){ if(token!==gen)return; 3393 typeInto(input,prompt,32,token,function(){ 3394 if(btn){btn.classList.add('busy'); btn.textContent='Generating...';} 3395 setTimeout(function(){ if(token!==gen)return; 3396 if(btn){btn.classList.remove('busy'); btn.innerHTML=genHTML;} 3397 typeInto(subj,subject,26,token,function(){ 3398 typeInto(body,bodyText,16,token); 3399 }); 3400 },1000); 3401 }); 3402 },1100); 3403 }}, 3404 { nav:NAV2, render:function(){ 3405 function issue(k){return k==='i'?'<span class="pill p-amber">ISSUES FOUND</span>':'<span class="pill p-slate">NONE</span>';} 3406 var rows=[ 3407 ['Tenant_Lease_COI_Suite200.pdf','Apex Global Solutions','3','i','Oct 10, 2024','COI_1234A'], 3408 ['Vendor_Cleaning_COI_Q3.pdf','Pristine Cleaning Services','4','i','Oct 09, 2024','COI_5678B'], 3409 ['Contractor_HVAC_Maint.pdf','AirComfort Systems Inc.','4','n','Oct 08, 2024','COI_5678C'], 3410 ['Tenant_Lease_COI_Suite401.pdf','TechFlow Enterprises','3','i','Oct 08, 2024','COI_5678D'], 3411 ['Security_Service_COI.pdf','SecureGuard Services','4','i','Oct 07, 2024','COI_5678F'], 3412 ['Parking_Vendor_COI.pdf','City Park Inc.','4','i','Oct 07, 2024','COI_5678G'], 3413 ['Vendor_Landscaping_COI.pdf','GreenScape Designs','4','n','Oct 07, 2024','COI_5678H'] 3414 ]; 3415 var tr=rows.map(function(r,i){return '<tr class="anim" style="--d:'+(i*55+360)+'ms"><td><span class="trash">'+s('trash')+'</span></td>' 3416 +'<td><span class="rev">'+s('spark',0)+'Review</span></td>' 3417 +'<td class="doc">'+r[0]+'</td><td>
3417<span class="pill p-blue">READY</span></td><td class="ven">'+r[1]+'</td>' 3418 +'<td style="text-align:center;font-weight:700;color:#16233c">'+r[2]+'</td><td>'+issue(r[3])+'</td>' 3419 +'<td style="color:#8494ad">'+r[4]+'</td><td style="color:#8494ad">'+r[5]+'</td></tr>';}).join(''); 3420 return '<div style="display:flex;align-items:flex-start;justify-content:space-between;gap:12px" class="anim"><div><h1 class="sc-title">AI Review - COI Document Intake</h1><p class="sc-sub">Documents extracted with coveAI that are ready for review and intake below.</p></div><span class="btn teal">'+sf('spark')+'Upload COIs</span></div>' 3421 +'<div class="cnt anim" style="--d:120ms"><span class="n" data-count="35">0</span> Documents Needing Review</div>' 3422 +'<div class="toolbar anim" style="--d:180ms"><span class="search">Search by Object ID</span><span class="btn">Filter</span></div>' 3423 +'<div class="rbar anim" style="--d:230ms"><div class="rl">Showing 1-35 of 35 results <span class="mini">100'+s('chev')+'</span><span class="pg">'+s('chev')+'</span><span class="pg">'+s('chevr')+'</span></div><div class="seg"><span class="on">Standard</span><span>Compact</span></div></div>' 3424 +'<div class="sc-card anim" style="--d:290ms"><table class="sc-tbl"><thead><tr><th>Actions</th><th>Review</th><th>Extracted Document</th><th>Status</th><th>Tenant / Vendor</th><th>Policies Found</th><th>Potential Issues</th><th>Date Uploaded</th><th>Object ID</th></tr></thead><tbody>'+tr+'</tbody></table></div>'; 3425 }}, 3426 { nav:NAV3, dwell:9000, render:function(){ 3427 var actions='<div class="wo-actions anim"><span class="btn dark">'+s('print')+'Print Overview</span><span class="btn">'+s('edit')+'Edit Key Details</span><span class="btn mut">'+s('chev')+'Prev WO</span><span class="btn">Next WO'+s('chevr')+'</span></div>'; 3428 var grid='<div class="wo-grid anim" style="--d:160ms">' 3429 +'<div><h4>Ticket Details</h4><dl class="dl"><dt>ID:</dt><dd>#WO-1234</dd><dt>Submitted:</dt><dd>May 15, 2024 10:00 AM</dd><dt>Category:</dt><dd>Plumbing</dd><dt>Issue Type:</dt><dd>Leak</dd><dt>Escalated:</dt><dd>No</dd></dl></div>' 3430 +'<div><h4>Location</h4><dl class="dl"><dt>Suite:</dt><dd>400</dd><dt>Floor:</dt><dd>4th</dd><dt>Building:</dt><dd>Metropolis Tower</dd><dt>Lease Code:</dt><dd>B-123</dd><dt>Equipment:</dt><dd>Restroom Sink</dd></dl></div>' 3431 +'<div><h4>Tenant</h4><dl class="dl"><dt>Tenant:</dt><dd>Acme Corp.</dd><dt>Created For:</dt><dd>Jane Doe</dd><dt>Email:</dt><dd>[email protected]</dd><dt>Phone:</dt><dd>555-1212</dd></dl></div></div>'; 3432 var sum='<div class="ai-sum anim" style="--d:240ms"><div class="ai-sum-h">'+s('spark',0)+'CoveAI Summary<span class="gen" id="woGen">Generating<span class="dots"><i></i><i></i><i></i></span></span><span class="cl">'+s('chevu')+'</span></div><ul id="woSum"></ul></div>'; 3433 var tabs='<div class="wo-tabs anim" style="--d:320ms"><span class="wo-tab on">Overview</span><span class="wo-tab">Materials (0)</span><span class="wo-tab">Labor (0)</span><span class="wo-tab">Purchase Orders (0)</span><span class="wo-tab">Invoice</span></div>'; 3434 var fields='<div class="field" style="grid-column:1/-1"><label>Description</label><div style="font-size:13px;color:#3d4d68;line-height:1.5">Active water leak under the sink in the main 4th-floor restroom. Floor is wet.</div></div>' 3435 +'<div class="field"><label>Status</label><div class="fsel"><span class="cd" style="background:#E0901C"></span>
3435Open'+s('chev')+'</div></div>' 3436 +'<div class="field"><label>Assigned To</label><div class="fsel"><span class="av">MS</span>Mike Smith (Maintenance Tech)'+s('chev')+'</div></div>' 3437 +'<div class="field"><label>Groups</label><div class="chips"><span class="chip" style="background:#2f9fc4">Plumbing<span class="x">&times;</span></span></div></div>' 3438 +'<div class="field"><label>Tags</label><div class="chips"><span class="chip" style="background:#EF4444">Urgent<span class="x">&times;</span></span><span class="chip" style="background:#64748B">Water Damage<span class="x">&times;</span></span></div></div>' 3439 +'<div class="field"><label>Billing Verification</label><div class="bhelp">Must be in Closed status to verify.</div><div class="fsel"><span class="cd" style="background:#93a2b8"></span>Pending Review'+s('chev')+'</div></div>'; 3440 var qa='<div class="qa anim" style="--d:540ms"><h4>Quick Actions</h4><div class="qa-row"><span class="btn">'+s('edit')+'Add a Note</span><span class="btn">'+s('attach')+'Upload Attachment</span><span class="btn">'+s('plus')+'Add Material</span><span class="btn">'+s('wo')+'Add Labor</span></div></div>'; 3441 return '<div style="display:flex;align-items:center;justify-content:space-between;gap:12px"><span class="btn anim">'+s('back')+'Back</span>'+actions+'</div>' 3442 +'<div class="wo-head anim" style="--d:90ms"><h1>Office Services</h1><span class="pill p-amber">SUBMITTED</span></div>' 3443 +grid+sum+tabs 3444 +'<div class="wo-fields anim" style="--d:400ms">'+fields+'</div>'+qa; 3445 }, boot:function(el,token){ 3446 var ul=el.querySelector('#woSum'), gtag=el.querySelector('#woGen'); 3447 var bullets=[ 3448 "Acme Corp. submitted a request for a plumbing leak in the 4th floor restroom, suite 400.", 3449 "The work order was created and submitted by Jane Doe on May 15, 2024.", 3450 "The work order status is currently Open.", 3451 "Mike Smith was assigned to the request." 3452 ]; 3453 if(!ul)return; 3454 function typeBullets(n){ 3455 if(token!==gen)return; 3456 if(n>=bullets.length){ if(gtag)gtag.style.display='none'; return; } 3457 var li=document.createElement('li'); ul.appendChild(li); 3458 typeInto(li,bullets[n],12,token,function(){ typeBullets(n+1); }); 3459 } 3460 setTimeout(function(){ if(token!==gen)return; typeBullets(0); },1000); 3461 }}, 3462 { nav:NAV4, render:function(){ 3463 var top='<div class="ins-head anim"><h1 class="sc-title">Insights</h1><div style="display:flex;gap:9px"><span class="btn">Operations Metrics & Insights'+s('chev')+'</span><span class="btn">Edit Board</span><span class="btn">New Board</span></div></div>'; 3464 var leg=[['Open','#2F6BFF'],['In Progress','#E0901C'],['Closed','#16233c']]; 3465 var row1='<div class="ins-grid">' 3466 +donutCard('Work Orders by Status','Last 3 months - Opened At',[[.55,'#2F6BFF'],[.18,'#E0901C'],[.27,'#16233c']],2500,'',leg,120) 3467 +donutCard('PMs by Status','Last 3 months - Opened At',[[.6,'#2F6BFF'],[.15,'#E0901C'],[.25,'#16233c']],1200,'',leg,200) 3468 +donutCard('Inspections','Last 3 months - Opened At',[[.62,'#2F6BFF'],[.16,'#E0901C'],[.22,'#16233c']],450,'',leg,280) 3469 +'</div>'; 3470 var row2='<div class="ins-grid" style="margin-top:12px">' 3471 +vbarCard('Work Orders by Month','Last 3 months - Count',[['Apr',600],['May',650],['Jun',700],['Jul',550]],'#2F6BFF',360) 3472 +hbarCard('Work Order Issue Types','Last 3 months - Count',[['HVAC',300],['Plumbing',250],['Electrical',200],['Gen. Maint',150],['Cleaning',100]],'#2f9fc4',440) 3473 +groupCard('Incidents by Category','Last 3 months - Count',[['HVAC',12,8],['Plumbing',35,22],['Electrical',27,22],['Security',18,13],['Slip',7,6]],520) 3474 +'</div>'; 3475 var row3='<div class="ins-grid" style="margin-top:12px">' 3476 +hbarCard('Work Orders by Tenant','Last 3 months - Count',[['Global Corp',400],['Tech Solutions',350],['Law Firm LLP',250],['Finance Group',200],['CTC Holdings',200],['Paul Weiss',150]],'#2f9fc4',600) 3477 +vbarCard('Incidents by Building','Last 3 months - Count',[['Metropolis',50],['Park Ave',40],['Commerce',30],['1140 19th',30],['Riverside',20],['Midtown',15]],'#2f9fc4',680) 3478 +donutCard('Labor by Work Type','Last 3 months - 6,500 hrs',[[.4,'#2F6BFF'],[.28,'#EF4444'],[.2,'#8b5cf6'],[.12,'#E0901C']],6500,'',[['HVAC','#2F6BFF'],['Plumbing','#EF4444'],['Electrical','#8b5cf6'],['General','#E0901C']],760) 3479 +'</div>'; 3480 return '<div class="ins-scroll">'+top+row1+row2+row3+'</div>'; 3481 }} 3482 ]; 3483 function easeOut(t){return 1-Math.pow(1-t,3);} 3484 function countUp(el){var to=parseInt(el.dataset.count,10),suf=el.dataset.suf||'',dur=1100,t0=null;
3484function st(ts){if(!t0)t0=ts;var p=Math.min((ts-t0)/dur,1);el.textContent=Math.round(easeOut(p)*to).toLocaleString()+suf;if(p<1)requestAnimationFrame(st);}requestAnimationFrame(st);} 3485 function typeInto(el,text,speed,token,cb){ 3486 if(!el){if(cb)cb();return;} 3487 el.textContent='';var cur=document.createElement('span');cur.className='tw-cur';el.appendChild(cur);var i=0; 3488 (function tick(){ if(token!==gen)return; 3489 if(i<text.length){cur.insertAdjacentText('beforebegin',text.charAt(i));i++;setTimeout(tick,speed);} 3490 else{if(cur.parentNode)cur.parentNode.removeChild(cur); if(cb)setTimeout(function(){if(token===gen)cb();},450);} 3491 })(); 3492 } 3493 function runScreen(el){ 3494 setTimeout(function(){el.querySelectorAll('[data-count]').forEach(countUp);},300); 3495 el.querySelectorAll('[data-w]').forEach(function(f){requestAnimationFrame(function(){requestAnimationFrame(function(){f.style.width=f.dataset.w+'%';});});}); 3496 el.querySelectorAll('[data-h]').forEach(function(f){requestAnimationFrame(function(){requestAnimationFrame(function(){f.style.height=f.dataset.h+'%';});});}); 3497 } 3498 var scEl=document.getElementById('osScreen'), navEl=document.getElementById('osNav'); 3499 var idx=0, gen=0, raf=null, start=0, elapsed=0, paused=false, DWELL=6400; 3500 function render(i){ 3501 gen++; 3502 idx=(i+screens.length)%screens.length;var sc=screens[idx]; 3503 navEl.style.opacity=0; 3504 navEl.innerHTML=renderNav(sc.nav); 3505 requestAnimationFrame(function(){navEl.style.opacity=1;}); 3506 scEl.classList.remove('leaving');scEl.innerHTML=sc.render();runScreen(scEl); 3507 if(sc.boot)sc.boot(scEl,gen); 3508 startProgress(); 3509 } 3510 function goto(i){scEl.classList.add('leaving');setTimeout(function(){render(i);},300);} 3511 function startProgress(){cancelAnimationFrame(raf);start=0;elapsed=0;var dw=(screens[idx]&&screens[idx].dwell)||DWELL; 3512 function tick(ts){if(paused){start=ts-elapsed;raf=requestAnimationFrame(tick);return;}if(!start)start=ts;elapsed=ts-start;var p=Math.min(elapsed/dw,1);if(p>=1){goto(idx+1);return;}raf=requestAnimationFrame(tick);} 3513 raf=requestAnimationFrame(tick);} 3514 var win=document.querySelector('.os-window'); 3515 win.addEventListener('mouseenter',function(){paused=true;});win.addEventListener('mouseleave',function(){paused=false;}); 3516 document.addEventListener('visibilitychange',function(){paused=document.hidden;}); 3517 if('IntersectionObserver' in window){new IntersectionObserver(function(e){paused=!e[0].isIntersecting;},{threshold:.15}).observe(win);} 3518 render(0); 3519})(); 3520</script>
3520 3521</body> 3522</html> 3523" style="position:absolute;inset:0;width:100%;height:100%;border:0;opacity:0;pointer-events:none;transition:opacity .45s ease;"></iframe> 3524 </div> 3525 </div> 3526 </div> 3527 </div> 3528</section> 3529 3530 3531</div> 3532 3533<!-- ===== UNIFY & SCALE ===== --> 3534<div class="cove-home-section"> 3535<section style="padding:72px 24px 24px; font-family:'Inter',-apple-system,sans-serif; background:transparent;"> 3536 <div style="max-width:1240px; margin:0 auto;"> 3537 <div style="display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px;"> 3538 <div style="padding:32px; border-radius:20px; background:linear-gradient(180deg,#ffffff 0%,#f6fbff 100%); border:1px solid rgba(0,53,103,0.08); box-shadow:0 12px 30px -16px rgba(0,53,103,0.12);"> 3539 <div style="width:50px;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eafaff 0%,#c6ecfa 100%);color:#003567;margin-bottom:18px;"><svg width="22" height="22" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7" rx="1" /><rect x="14" y="3" width="7" height="7" rx="1" /><rect x="3" y="14" width="7" height="7" rx="1" /><rect x="14" y="14" width="7" height="7" rx="1" /></svg></div> 3540 <h3 style="font-family:'Sora',sans-serif; font-size:21px; font-weight:700; color:#003567; margin:0 0 8px;">Unified Tech Stack</h3> 3541 <p style="font-size:15px; color:#4a6580; margin:0; line-height:1.6;">Eliminate operational silos and reduce costs by managing every system through a single, connected foundation.</p> 3542 </div> 3543 <div style="padding:32px; border-radius:20px; background:linear-gradient(180deg,#ffffff 0%,#f6fbff 100%); border:1px solid rgba(0,53,103,0.08); box-shadow:0 12px 30px -16px rgba(0,53,103,0.12);"> 3544 <div style="width:50px;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eafaff 0%,#c6ecfa 100%);color:#003567;margin-bottom:18px;"><svg width="22" height="22" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2l2.4 6.6L21 11l-6.6 2.4L12 20l-2.4-6.6L3 11l6.6-2.4z" /></svg></div> 3545 <h3 style="font-family:'Sora',sans-serif; font-size:21px; font-weight:700; color:#003567; margin:0 0 8px;">Instant Intelligence</h3> 3546 <p style="font-size:15px; color:#4a6580; margin:0; line-height:1.6;">Automate everyday workflows with evolving AI built alongside leading property teams.</p> 3547 </div> 3548 <div style="padding:32px; border-radius:20px; background:linear-gradient(180deg,#ffffff 0%,#f6fbff 100%); border:1px solid rgba(0,53,103,0.08); box-shadow:0 12px 30px -16px rgba(0,53,103,0.12);"> 3549 <div style="width:50px;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eafaff 0%,#c6ecfa 100%);color:#003567;margin-bottom:18px;"><svg width="22" height="22" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="m11 17 2 2a1 1 0 1 0 3-3" /><path d="m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4" /><path d="m21 3 1 11h-2" /><path d="M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3" /><path d="M3 4h8" /></svg></div> 3550 <h3 style="font-family:'Sora',sans-serif; font-size:21px; font-weight:700; color:#003567; margin:0 0 8px;">Proven Partnership</h3> 3551 <p style="font-size:15px; color:#4a6580; margin:0; line-height:1.6;">Stay aligned with your long-term goals through high-touch engagement and real-world iteration.</p> 3552 </div> 3553 </div> 3554 </div> 3555</section> 3556</div> 3557 3558<!-- ===== TAILORED SOLUTIONS ===== --> 3559<div class="cove-home-section"> 3560<section style="position: relative; padding: 96px 24px; overflow: hidden; font-family: 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; color: #0b1f36; line-height: 1.5; -webkit-font-smoothing: antialiased; background: transparent;"> 3561<div style="max-width: 1240px; margin: 0 auto; position: relative; z-index: 1;"> 3562<div style="text-align: center; max-width: 760px; margin: 0 auto 64px;"><span class="cove-eyebrow" style="display: inline-flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #003567; padding: 8px 14px; border-radius: 999px; background: rgba(82,201,236,0.14); border: 1px solid rgba(82,201,236,0.35); margin-bottom: 24px;"> <span style="display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #52C9EC; box-shadow: 0 0 0 4px rgba(82,201,236,0.22);"></span> Built for your team </span> 3563<h2 class="cove-std-title cove-nowrap" style="font-family: 'Sora','Inter',-apple-system,sans-serif; font-weight: bold; font-size: clamp(32px,4.4vw,52px); line-height: 1.08; letter-spacing: -0.02em; color: #003567; margin: 0 0 18px; text-align: center;">Tailored Solutions for<span style="display: block; background: linear-gradient(135deg,#52C9EC 0%,#003567 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent;">Every Stakeholder</span></h2> 3564<p class="cove-std-sub" style="font-size: 17px; color: #4a6580; margin: 0 auto; max-width: 720px;">One platform, three perspectives. Cove adapts to how your team actually works, whether you're running operations, managing assets, or keeping systems online.</p> 3565</div> 3566<div style="display: grid; grid-template-columns: repeat(auto-fit,minmax(300px,1fr)); gap: 24px;"> 3567<article style="position: relative; padding: 36px; border-radius: 22px; background: linear-gradient(180deg,#ffffff 0%,#f6fbff 100%); border: 1px solid rgba(0,53,103,0.08); box-shadow: 0 12px 30px -14px rgba(0,53,103,0.14),0 2px 4px rgba(0,53,103,0.04); display: flex; flex-direction: column;"> 3568<div style="display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 28px;"> 3569<div style="width: 60px; height: 60px; border-radius: 16px; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg,#ffffff 0%,rgba(82,201,236,0.22) 100%); border: 1px solid rgba(82,201,236,0.4); box-shadow: inset 0 1px 0 rgba(255,255,255,0.8),0 6px 18px -6px rgba(82,201,236,0.5); color: #003567;"><svg width="28" height="28" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width: 28px; height: 28px; display: block;"><path d="M3 21h18"></path><path d="M6 21V5a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v16"></path><path d="M14 21V10h3a1 1 0 0 1 1 1v10"></path><path d="M9 8h2"></path><path d="M9 12h2"></path><path d="M9 16h2"></path></svg></div> 3570<span style="font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(0,53,103,0.6); padding: 6px 10px; border-radius: 999px; background: rgba(0,53,103,0.06);">01 / Operators</span></div> 3571<h3 style="font-family: 'Sora','Inter',-apple-system,sans-serif; font-weight: bold; font-size: 24px; color: #003567; margin: 0 0 10px; letter-spacing: -0.01em;">Property Managers</h3> 3572<p style="font-size: 15px; color: #4a6580; margin: 0 0 24px; line-height: 1.6;">Stop jumping between systems. Run operations, visitors, and tenant requests in one platform while AI automates the routine work.</p> 3573<ul style="list-style: none; padding: 0; margin: 0 0 28px; display: flex; flex-direction: column; gap: 10px;"> 3574<li style="list-style: none; display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 500; color: #003567;"><span style="flex-shrink: 0; width: 18px; height: 18px; border-radius: 50%; background: linear-gradient(135deg,#52C9EC 0%,#003567 100%); display: inline-flex; align-items: center; justify-content: center; color: #ffffff;"> <svg width="10" height="10" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" style="width: 10px; height: 10px; display: block;"><polyline points="20 6 9 17 4 12"></polyline></svg> </span>Tenants get answers instantly</li> 3575<li style="list-style: none; display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 500; color: #003567;"><span style="flex-shrink: 0; width: 18px; height: 18px; border-radius: 50%; background: linear-gradient(135deg,#52C9EC 0%,#003567 100%); display: inline-flex; align-items: center; justify-content: center; color: #ffffff;"> <svg width="10" height="10" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" style="width: 10px; height: 10px; display: block;"><polyline points="20 6 9 17 4 12"></polyline></svg> </span>Visitors check in without you</li> 3576<li style="list-style: none; display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 500; color: #003567;"><span style="flex-shrink: 0; width: 18px; height: 18px; border-radius: 50%; background: linear-gradient(135deg,#52C9EC 0%,#003567 100%); display: inline-flex; align-items: center; justify-content: center; color: #ffffff;"> <svg width="10" height="10" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" style="width: 10px; height: 10px; display: block;"><polyline points="20 6 9 17 4 12"></polyline></svg> </span> Less busywork, more time for what matters</li> 3577</ul> 3578<div style="margin-top: auto; padding-top: 20px; border-top: 1px dashed rgba(0,53,103,0.14); display: flex; align-items: center; justify-content: space-between; gap: 16px;"><a href="https://cove.is/solution/property-managers?hsLang=en" style="display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 14px; color: #003567; text-decoration: none; padding: 10px 0;"> Explore for managers <span style="width: 28px; height: 28px; border-radius: 50%; background: linear-gradient(135deg,#52C9EC 0%,#7ad7f0 100%); display: inline-flex; align-items: center; justify-content: center; color: #003567;"> <svg width="12" height="12" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="width: 12px; height: 12px; display: block;"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg> </span> </a></div> 3579</article> 3580<article style="position: relative; padding: 36px; border-radius: 22px; background: linear-gradient(180deg,#ffffff 0%,#f6fbff 100%); border: 1px solid rgba(0,53,103,0.08); box-shadow: 0 12px 30px -14px rgba(0,53,103,0.14),0 2px 4px rgba(0,53,103,0.04); display: flex; flex-direction: column;"> 3581<div style="display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 28px;"> 3582<div style="width: 60px; height: 60px; border-radius: 16px; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg,#ffffff 0%,rgba(82,201,236,0.22) 100%); border: 1px solid rgba(82,201,236,0.4); box-shadow: inset 0 1px 0 rgba(255,255,255,0.8),0 6px 18px -6px rgba(82,201,236,0.5); color: #003567;"><svg width="28" height="28" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width: 28px; height: 28px; display: block;"> <rect x="5" y="3" width="14" height="18" rx="1.5"></rect> <rect x="8" y="7" width="2" height="2" fill="currentColor" stroke="none"></rect> <rect x="14" y="7" width="2" height="2" fill="currentColor" stroke="none"></rect> <rect x="8" y="11" width="2" height="2" fill="currentColor" stroke="none"></rect> <rect x="14" y="11" width="2" height="2" fill="currentColor" stroke="none"></rect> <rect x="10.5" y="16" width="3" height="5" fill="currentColor" stroke="none"></rect> </svg></div> 3583<span style="font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(0,53,103,0.6); padding: 6px 10px; border-radius: 999px; background: rgba(0,53,103,0.06);">02 / Owners</span></div> 3584<h3 style="font-family: 'Sora','Inter',-apple-system,sans-serif; font-weight: bold; font-size: 24px; color: #003567; margin: 0 0 10px; letter-spacing: -0.01em;">Landlords</h3> 3585<p style="font-size: 15px; color: #4a6580; margin: 0 0 24px; line-height: 1.6;">Turn fragmented building data into portfolio intelligence that helps you protect NOI, improve performance, and grow long-term asset value.</p> 3586<ul style="list-style: none; padding: 0; margin: 0 0 28px; display: flex; flex-direction: column; gap: 10px;"> 3587<li style="list-style: none; display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 500; color: #003567;"><span style="flex-shrink: 0; width: 18px; height: 18px; border-radius: 50%; background: linear-gradient(135deg,#52C9EC 0%,#003567 100%); display: inline-flex; align-items: center; justify-content: center; color: #ffffff;"> <svg width="10" height="10" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" style="width: 10px; height: 10px; display: block;"><polyline points="20 6 9 17 4 12"></polyline></svg> </span> Portfolio-wide building visibility</li> 3588<li style="list-style: none; display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 500; color: #003567;"><span style="flex-shrink: 0; width: 18px; height: 18px; border-radius: 50%; background: linear-gradient(135deg,#52C9EC 0%,#003567 100%); display: inline-flex; align-items: center; justify-content: center; color: #ffffff;"> <svg width="10" height="10" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" style="width: 10px; height: 10px; display: block;"><polyline points="20 6 9 17 4 12"></polyline></svg> </span> Real-time asset performance</li> 3589<li style="list-style: none; display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 500; color: #003567;"><span style="flex-shrink: 0; width: 18px; height: 18px; border-radius: 50%; background: linear-gradient(135deg,#52C9EC 0%,#003567 100%); display: inline-flex; align-items: center; justify-content: center; color: #ffffff;"> <svg width="10" height="10" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" style="width: 10px; height: 10px; display: block;"><polyline points="20 6 9 17 4 12"></polyline></svg> </span> Benchmarking and forecasting</li> 3590</ul> 3591<div style="margin-top: auto; padding-top: 20px; border-top: 1px dashed rgba(0,53,103,0.14); display: flex; align-items: center; justify-content: space-between; gap: 16px;"><a href="https://cove.is/solution/landlords?hsLang=en" style="display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 14px; color: #003567; text-decoration: none; padding: 10px 0;"> Explore for landlords <span style="width: 28px; height: 28px; border-radius: 50%; background: linear-gradient(135deg,#52C9EC 0%,#7ad7f0 100%); display: inline-flex; align-items: center; justify-content: center; color: #003567;"> <svg width="12" height="12" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="width: 12px; height: 12px; display: block;"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg> </span> </a></div> 3592</article> 3593<article style="position: relative; padding: 36px; border-radius: 22px; background: linear-gradient(180deg,#ffffff 0%,#f6fbff 100%); border: 1px solid rgba(0,53,103,0.08); box-shadow: 0 12px 30px -14px rgba(0,53,103,0.14),0 2px 4px rgba(0,53,103,0.04); display: flex; flex-direction: column;"> 3594<div style="display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 28px;"> 3595<div style="width: 60px; height: 60px; border-radius: 16px; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg,#ffffff 0%,rgba(82,201,236,0.22) 100%); border: 1px solid rgba(82,201,236,0.4); box-shadow: inset 0 1px 0 rgba(255,255,255,0.8),0 6px 18px -6px rgba(82,201,236,0.5); color: #003567;"><svg width="28" height="28" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="r
3595ound" stroke-linejoin="round" style="width: 28px; height: 28px; display: block;"><path d="M14.7 6.3a4 4 0 0 0-5.4 5.4L3 18v3h3l6.3-6.3a4 4 0 0 0 5.4-5.4l-2.5 2.5-2-2z"></path></svg></div> 3596<span style="font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(0,53,103,0.6); padding: 6px 10px; border-radius: 999px; background: rgba(0,53,103,0.06);">03 / Field teams</span></div> 3597<h3 style="font-family: 'Sora','Inter',-apple-system,sans-serif; font-weight: bold; font-size: 24px; color: #003567; margin: 0 0 10px; letter-spacing: -0.01em;">Engineers</h3> 3598<p style="font-size: 15px; color: #4a6580; margin: 0 0 24px; line-height: 1.6;">Run work orders, preventive maintenance, and equipment tracking in one platform while AI helps you spot problems early and keep systems running.</p> 3599<ul style="list-style: none; padding: 0; margin: 0 0 28px; display: flex; flex-direction: column; gap: 10px;"> 3600<li style="list-style: none; display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 500; color: #003567;"><span style="flex-shrink: 0; width: 18px; height: 18px; border-radius: 50%; background: linear-gradient(135deg,#52C9EC 0%,#003567 100%); display: inline-flex; align-items: center; justify-content: center; color: #ffffff;"> <svg width="10" height="10" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" style="width: 10px; height: 10px; display: block;"><polyline points="20 6 9 17 4 12"></polyline></svg> </span> Smart work order dispatch</li> 3601<li style="list-style: none; display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 500; color: #003567;"><span style="flex-shrink: 0; width: 18px; height: 18px; border-radius: 50%; background: linear-gradient(135deg,#52C9EC 0%,#003567 100%); display: inline-flex; align-items: center; justify-content: center; color: #ffffff;"> <svg width="10" height="10" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" style="width: 10px; height: 10px; display: block;"><polyline points="20 6 9 17 4 12"></polyline></svg> </span> Preventive maintenance alerts</li> 3602<li style="list-style: none; display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 500; color: #003567;"><span style="flex-shrink: 0; width: 18px; height: 18px; border-radius: 50%; background: linear-gradient(135deg,#52C9EC 0%,#003567 100%); display: inline-flex; align-items: center; justify-content: center; color: #ffffff;"> <svg width="10" height="10" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" style="width: 10px; height: 10px; display: block;"><polyline points="20 6 9 17 4 12"></polyline></svg> </span> Full equipment history</li> 3603</ul> 3604<div style="margin-top: auto; padding-top: 20px; border-top: 1px dashed rgba(0,53,103,0.14); display: flex; align-items: center; justify-content: space-between; gap: 16px;"><a href="https://cove.is/solution/engineers?hsLang=en" style="display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 14px; color: #003567; text-decoration: none; padding: 10px 0;"> Explore for engineers <span style="width: 28px; height: 28px; border-radius: 50%; background: linear-gradient(135deg,#52C9EC 0%,#7ad7f0 100%); display: inline-flex; align-items: center; justify-content: center; color: #003567;"> <svg width="12" height="12" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="width: 12px; height: 12px; display: block;"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg> </span> </a></div> 3605</article> 3606</div> 3607</div> 3608</section> 3609</div> 3610 3611<!-- ===== AI FEATURES ===== --> 3612<div class="cove-home-section"> 3613<section class="cove-ai tone-light" style="--section-pad: 120px;"> 3614 <div class="cove-ai-container"> 3615 <!-- ---------- HEADER ---------- --> 3616 <div class="cove-section-header"> 3617 <span class="cove-eyebrow">AI Built for Property Operations</span> 3618 <h2 class="cove-section-title"> 3619 Intelligence That
3620 <span class="cove-accent">Does the Work</span> 3621 </h2> 3622 <div class="cove-section-sub"> 3623 <p>Cove's AI writes communications, vets vendor paperwork, and distills endless work order chains, so your team stays ahead, not buried.</p> 3624 </div> 3625 </div> 3626 <!-- ---------- CARD GRID ---------- --> 3627 <div class="cove-ai-grid"> 3628 <!-- CARD 1: AI Tenant Comms --> 3629 <article class="cove-ai-card"> 3630 <div class="cove-stage" aria-hidden="true"> 3631 <div class="s-announce"> 3632 <div class="a-input"> 3633 <div class="a-input-label">Your note</div> 3634 <div class="a-input-text">water off flrs 12-15 fri 9-11am<span class="a-caret"></span></div> 3635 </div> 3636 <div class="a-transform"> 3637 <svg class="a-transform-spin" width="11" height="11" viewbox="0 0 24 24" fill="currentColor"><path d="M12 2l1.7 5.3L19 9l-5.3 1.7L12 16l-1.7-5.3L5 9l5.3-1.7L12 2z" /></svg> 3638 POLISHING WITH AI 3639 </div> 3640 <div class="a-output"> 3641 <div class="a-output-title">Scheduled Water Maintenance Friday</div> 3642 <div class="a-output-body">Water service on Floors 12â15 will be temporarily unavailable Friday from 9:00â11:00 AM. Thank you for your patience.</div> 3643 <div class="a-output-foot"> 3644 <span class="send-lbl">Sending via</span> 3645 <span class="a-channel-mini ch1"> 3646 <svg width="9" height="9" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9" /></svg> 3647 Push 3648 </span> 3649 <span class="a-channel-mini ch2"> 3650 <svg width="9" height="9" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="5" width="18" height="14" rx="2" /><path d="M3 7l9 6 9-6" /></svg> 3651 Email 3652 </span> 3653 <span class="a-channel-mini ch3"> 3654 <svg width="9" height="9" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" /></svg> 3655 SMS 3656 </span> 3657 <span class="a-channel-mini ch4"> 3658 <svg width="9" height="9" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.95.36 1.89.7 2.79a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.29-1.27a2 2 0 0 1 2.11-.45c.9.34 1.84.57 2.79.7A2 2 0 0 1 22 16.92z" /></svg> 3659 Voice 3660 </span> 3661 </div> 3662 </div> 3663 </div> 3664 </div> 3665 <div class="cove-ai-body"> 3666 <span class="cove-ai-label"><span class="dot"></span>AI Tenant Comms</span> 3667 <h3>A rough note in. Polished communications out.</h3> 3668 <p>Jot a quick line. Cove rewrites it as a clear, professional announcements, event descriptions and highlights and sends it via push, email, SMS, and voice call.</p> 3669 </div> 3670 </article> 3671 <!-- CARD 2: COI Extraction --> 3672 <article class="cove-ai-card"> 3673 <div class="cove-stage" aria-hidden="true"> 3674 <div class="s-coi"> 3675 <div class="coi-doc"> 3676 <div class="coi-doc-tag">COI</div> 3677 <div class="coi-line w1"></div> 3678 <div class="coi-line w2"></div> 3679 <div class="coi-line w3"></div> 3680 <div class="coi-line w4"></div> 3681 <div class="coi-line w5"></div> 3682 <div class="coi-line w6"></div> 3683 <div class="coi-hl h1"></div> 3684 <div class="coi-hl h2"></div> 3685 <div class="coi-hl h3"></div> 3686 <div class="coi-hl h4"></div> 3687 <div class="coi-scan"></div> 3688 </div> 3689 <div class="coi-panel"> 3690 <div class="coi-row r1">
3691 <span class="k">Insured</span> 3692 <span class="v">Acme HVAC 3693 <span class="coi-check"><svg width="7" height="7" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12" /></svg></span> 3694 </span> 3695 </div> 3696 <div class="coi-row r2"> 3697 <span class="k">GL Limit</span> 3698 <span class="v">$2M 3699 <span class="coi-check"><svg width="7" height="7" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12" /></svg></span> 3700 </span> 3701 </div> 3702 <div class="coi-row r3"> 3703 <span class="k">Expires</span> 3704 <span class="v">12/31/26 3705 <span class="coi-check"><svg width="7" height="7" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12" /></svg></span> 3706 </span> 3707 </div> 3708 <div class="coi-row r4"> 3709 <span class="k">Additional</span> 3710 <span class="v">Listed 3711 <span class="coi-check"><svg width="7" height="7" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12" /></svg></span> 3712 </span> 3713 </div> 3714 <div class="coi-verdict"> 3715 <svg width="11" height="11" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12" /></svg> 3716 Compliant 3717 </div> 3718 </div> 3719 </div> 3720 </div> 3721 <div class="cove-ai-body"> 3722 <span class="cove-ai-label"><span class="dot"></span>COI Extraction</span> 3723 <h3>
3723Every vendor COI, read and checked.</h3> 3724 <p>Cove pulls limits, expirations, and named insureds from any Certificate of Insurance, and flags whether it meets your building's requirements.</p> 3725 </div> 3726 </article> 3727 <!-- CARD 3: Work Order Intelligence --> 3728 <article class="cove-ai-card"> 3729 <div class="cove-stage" aria-hidden="true"> 3730 <div class="s-wo"> 3731 <div class="wo-chain"> 3732 <div class="wo-msg m1"><span class="wo-who">Tenant</span><span class="wo-text">Ceiling leaking in 4B</span></div> 3733 <div class="wo-msg me m2"><span class="wo-who">PM</span><span class="wo-text">Sending plumber today</span></div> 3734 <div class="wo-msg m3"><span class="wo-who">Vendor</span><span class="wo-text">On the way, ETA 2pm</span></div> 3735 <div class="wo-msg me m4"><span class="wo-who">PM</span><span class="wo-text">Access via master key</span></div> 3736 <div class="wo-msg m5"><span class="wo-who">Tenant</span><span class="wo-text">Any ETA on fix?</span></div> 3737 <div class="wo-msg me m6"><span class="wo-who">PM</span><span class="wo-text">Waiting on partsâ¦</span></div> 3738 <div class="wo-msg m7"><span class="wo-who">Vendor</span><span class="wo-text">Parts arrive Thursday</span></div> 3739 <div class="wo-msg me m8"><span class="wo-who">PM</span><span class="wo-text">Scheduled Thu 2pm</span></div> 3740 </div> 3741 <div class="wo-summary"> 3742 <div class="wo-sum-head"> 3743 <span class="cove-ai-chip"> 3744 <svg width="10" height="10" viewbox="0 0 24 24" fill="currentColor"><path d="M12 2l1.7 5.3L19 9l-5.3 1.7L12 16l-1.7-5.3L5 9l5.3-1.7L12 2z" /></svg> 3745 AI Summary 3746 </span> 3747 <span class="count">47 messages</span> 3748 </div> 3749 <h4>Ceiling Leak · Unit 4B</h4> 3750 <ul> 3751 <li> 3752 <span class="bullet"><svg width="7" height="7" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12" /></svg></span> 3753 Plumber scheduled Thu 2pm 3754 </li> 3755 <li> 3756 <span class="bullet"><svg width="7" height="7" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12" /></svg></span> 3757 Access via master key confirmed 3758 </li> 3759 <li> 3760 <span class="bullet"><svg width="7" height="7" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12" /></svg></span> 3761 Parts arriving Thursday 3762 </li> 3763 </ul> 3764 <div class="wo-sum-status"> 3765 <span>Last updated 2m ago</span> 3766 <span class="status-pill"><span class="dot-s"></span>In progress</span> 3767 </div> 3768 </div> 3769 </div> 3770 </div> 3771 <div class="cove-ai-body"> 3772 <span class="cove-ai-label"><span class="dot"></span>Work Order Intelligence</span> 3773 <h3>Endless threads, one clean summary.</h3> 3774 <p>Long back-and-forth conversations collapse into a tight status update: who's doing what, what's done, and what's still open.</p> 3775 </div> 3776 </article> 3777 </div> 3778 <!-- ---------- CTA ---------- --> 3779 <div class="cove-ai-cta"> 3780 <a class="cove-ai-cta-btn" href="https://cove.is/ai-property-management-software?hsLang=en"> 3781 Learn More About CoveAI 3782 </a> 3783 </div> 3784 </div> 3785</section> 3786</div> 3787 3788<!-- ===== WILLIS TOWER ===== --> 3789<div class="cove-home-section"> 3790<section style="padding:88px 24px; font-family:'Inter',-apple-system,sans-serif; background:transparent;"> 3791 <div class="cove-split2" style="max-width:1240px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;"> 3792 <div>
3793 <span class="cove-eyebrow" style="display:inline-flex; align-items:center; gap:10px; font-size:12px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:#003567; padding:8px 14px; border-radius:999px; background:rgba(82,201,236,0.14); border:1px solid rgba(82,201,236,0.35); margin-bottom:22px;"><span style="width:6px;height:6px;border-radius:50%;background:#52C9EC;box-shadow:0 0 0 4px rgba(82,201,236,0.22);"></span> Case Study</span> 3794 <h2 class="cove-std-title" style="font-family:'Sora',sans-serif; font-weight:800; font-size:clamp(32px,4.2vw,44px); line-height:1.1; letter-spacing:-0.02em; color:#003567; margin:0 0 18px;">Powering the <span style="background:linear-gradient(135deg,#52C9EC 0%,#003567 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent;">Willis Tower</span></h2> 3795 <p style="font-size:16px; color:#4a6580; line-height:1.65; margin:0 0 16px;">Cove powers the tenant experience at Chicago's Willis Tower, the largest multi-tenant office building in the Western Hemisphere.</p> 3796 <p style="font-size:16px; color:#4a6580; line-height:1.65; margin:0 0 16px;">Through the custom white-label My Willis Tower app, thousands of tenants can reserve conference space, RSVP to events, register visitors, order food, and book fitness classes, making it easy to access and use everything the building offers.</p> 3797 <p style="font-size:16px; color:#4a6580; line-height:1.65; margin:0 0 28px;">The result is a more active, modern workplace experience that strengthens tenant satisfaction and retention while enabling the property team to deliver amenities, services, and programming at scale.</p> 3798 <a href="https://cove.is/cove-powers-the-willis-tower?hsLang=en" style="display:inline-flex; align-items:center; gap:10px; padding:14px 28px; background:#52C9EC; color:#fff; font-weight:600; font-size:15px; text-decoration:none; border-radius:999px; box-shadow:0 6px 18px rgba(82,201,236,0.35);">Read the Full Story</a> 3799 </div> 3800 <div style="position:relative;"> 3801 <div style="position:absolute; inset:6% 10%; background:radial-gradient(ellipse at center, rgba(82,201,236,0.22) 0%, transparent 65%); filter:blur(24px); z-index:0;"></div> 3802 <img src="https://cove.is/hubfs/Image_fx%20(9)%20(1)%20(1)-1.webp" alt="My Willis Tower app with Cove" loading="lazy" style="position:relative; z-index:1; width:100%; height:auto; border-radius:20px; display:block;"> 3803 </div> 3804 </div> 3805</section> 3806</div> 3807 3808<!-- ===== RXR VIDEO ===== --> 3809<div class="cove-home-section"> 3810<section style="padding:88px 24px; font-family:'Inter',-apple-system,sans-serif; background:transparent;"> 3811 <div class="cove-split2" style="max-width:1240px; margin:0 auto; display:grid; grid-template-columns:1.15fr 1fr; gap:56px; align-items:center;"> 3812 <div style="position:relative; aspect-ratio:16/9; border-radius:18px; overflow:hidden; background:#0B1F3D; box-shadow:0 24px 60px -28px rgba(0,53,103,0.4);"> 3813 <div class="hs-video-widget" data-hsv-embed-id="external-embed-1777404149692" style="width:100%;height:100%;"> 3814 <img data-hsv-id="208712576595" src="https://cove.is/hs-fs/hubfs/custom-video-thumbnails/RXR%20Case%20Study%20-%20Main-thumb-Mar-04-2026-03-31-45-4456-PM.jpeg?length=1920" alt="RXR Case Study with Cove" data-hsv-width="100%" style="width:100%;height:100%;object-fit:cover;display:block;"> 3815
3815<script data-hs-portal-id="21927082" data-hs-env="prod" data-hs-external="true" data-hs-seo="true" src="https://static.hsappstatic.net/video-embed/ex/loader.js" type="text/javascript"></script>
3815 3816 </div> 3817 </div> 3818 <div> 3819 <span class="cove-eyebrow" style="display:inline-flex; align-items:center; gap:10px; font-size:12px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:#003567; padding:8px 14px; border-radius:999px; background:rgba(82,201,236,0.14); border:1px solid rgba(82,201,236,0.35); margin-bottom:22px;"><span style="width:6px;height:6px;border-radius:50%;background:#52C9EC;box-shadow:0 0 0 4px rgba(82,201,236,0.22);"></span> Customer Story</span> 3820 <h2 class="cove-std-title" style="font-family:'Sora',sans-serif; font-weight:800; font-size:clamp(32px,4.2vw,44px); line-height:1.1; letter-spacing:-0.02em; color:#003567; margin:0 0 16px;">How RXR Unified Their Portfolio with Cove</h2> 3821 <p style="font-size:16px; color:#4a6580; line-height:1.65; margin:0 0 16px;">Hear why one of the country's leading owner-operators consolidated building operations and tenant experience onto Cove.</p> 3822 <p style="font-size:16px; color:#4a6580; line-height:1.65; margin:0 0 28px;">RXR unified its teams on a single platform, cut tool sprawl, and gained portfolio-wide visibility, saving roughly $0.05 per square foot across the portfolio.</p> 3823 </div> 3824 </div> 3825</section> 3826</div> 3827 3828<!-- ===== INTEGRATIONS ===== --> 3829<div class="cove-home-section"> 3830<!-- ============================================================ 3831 COVE INTEGRATIONS MODULE 3832 Standalone embed - paste into any page / HubSpot rich text 3833 ============================================================ --> 3834 3835<link rel="preconnect" href="https://fonts.googleapis.com"> 3836<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 3837<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&
3837family=Sora:wght@600;700&display=swap" rel="stylesheet"> 3838 3839 3840 3841<section class="cove-integrations tone-transparent"> 3842 <div class="cove-integrations__container"> 3843 3844 <header class="cove-integrations__header"> 3845 <span class="cove-eyebrow"> 3846 <span class="cove-dot"></span> 3847 Integrations & Partnerships 3848 </span> 3849 <h2 class="cove-integrations__title cove-nowrap"> 3850 Connects With What 3851 <span class="cove-accent">You Already Use</span> 3852 </h2> 3853 <p class="cove-integrations__subtitle"> 3854 Cove plugs into your existing access control, payments, occupancy, and parking systems â so your stack stays yours. 3855 </p> 3856 </header> 3857 3858 <div class="cove-integrations__stats"> 3859 <div class="cove-integrations__stat"> 3860 <div class="cove-integrations__stat-num">30+</div> 3861 <div class="cove-integrations__stat-label">Native Integrations</div> 3862 </div> 3863 <div class="cove-integrations__stat-divider" aria-hidden="true"></div> 3864 <div class="cove-integrations__stat"> 3865 <div class="cove-integrations__stat-num">9</div> 3866 <div class="cove-integrations__stat-label">Categories Covered</div> 3867 </div> 3868 <div class="cove-integrations__stat-divider" aria-hidden="true"></div> 3869 <div class="cove-integrations__stat"> 3870 <div class="cove-integrations__stat-num">Open</div> 3871 <div class="cove-integrations__stat-label">API & Webhooks</div> 3872 </div> 3873 </div> 3874 3875 <div class="cove-integrations__filters" role="tablist" aria-label="Integration categories"> 3876 <button class="cove-integrations__filter is-active" data-filter="all" role="tab" aria-selected="true">All</button> 3877 <button class="cove-integrations__filter" data-filter="access-control" role="tab">Access Control</button> 3878 <button class="cove-integrations__filter" data-filter="accounting-payments" role="tab">Accounting & Payments</button> 3879 <button class="cove-integrations__filter" data-filter="parking" role="tab">Parking</button> 3880 <button class="cove-integrations__filter" data-filter="food-ordering" role="tab">Food Ordering</button> 3881 <button class="cove-integrations__filter" data-filter="amenity-management" role="tab">Amenity Management</button> 3882 <button class="cove-integrations__filter" data-filter="resource-calendars" role="tab">Resource Calendars</button> 3883 <button class="cove-integrations__filter" data-filter="occupancy-sensing" role="tab">Occupancy Sensing</button> 3884 <button class="cove-integrations__filter" data-filter="building-analytics" role="tab">Building Analytics</button> 3885 <button class="cove-integrations__filter" data-filter="transit-data" role="tab">Transit Data</button> 3886 </div> 3887 3888 <div class="cove-integrations__grid-wrap"> 3889 <div class="cove-integrations__grid"> 3890 <div class="cove-integrations__card" data-category="access-control"><img src="https://cove.is/hubfs/Lenel.png" alt="LenelS2" loading="lazy"><span class="cove-integrations__card-cat">Access Control</span></div> 3891 <div class="cove-integrations__card" data-category="access-control"><img src="https://cove.is/hubfs/Genetec.png" alt="Genetec" loading="lazy"><span class="cove-integrations__card-cat">Access Control</span></div> 3892 <div class="cove-integrations__card" data-category="access-control"><img src="https://cove.is/hubfs/Open%20Path.png" alt="Openpath" loading="lazy"><span class="cove-integrations__card-cat">Access Control</span></div> 3893 <div class="cove-integrations__card" data-category="access-control"><img src="https://cove.is/hubfs/Datawatch.png" alt="Datawatch Systems" loading="lazy"><span class="cove-integrations__card-cat">Access Control</span></div> 3894 <div class="cove-integrations__card" data-category="access-control"><img src="https://cove.is/hubfs/Genea.png" alt="Genea" loading="lazy"><span class="cove-integrations__card-cat">Access Control</span></div> 3895 <div class="cove-integrations__card" data-category="access-control"><img src="https://cove.is/hubfs/C-Cure.png" alt="C-CURE" loading="lazy"><span class="cove-integrations__card-cat">Access Control</span></div> 3896 <div class="cove-integrations__card" data-category="access-control"><img src="https://cove.is/hubfs/Kastle.png" alt="Kastle" loading="lazy"><span class="cove-integrations__card-cat">Access Control</span></div> 3897 <div class="cove-integrations__card" data-category="access-control"><img src="https://cove.is/hubfs/S.png" alt="Access Control Partner" loading="lazy"><span class="cove-integrations__card-cat">Access Control</span></div> 3898 <div class="cove-integrations__card" data-category="access-control"><img src="https://cove.is/hubfs/AMAG.png" alt="AMAG" loading="lazy"><span class="cove-integrations__card-cat">Access Control</span></div> 3899 <div class="cove-integrations__card" data-category="access-control"><img src="https://cove.is/hubfs/Wavelynx.png" alt="Wavelynx" loading="lazy"><span class="cove-integrations__card-cat">Access Control</span></div> 3900 <div class="cove-integrations__card" data-category="access-control"><img src="https://cove.is/hubfs/DSX.png" alt="DSX" loading="lazy"><span class="cove-integrations__card-cat">Access Control</span></div> 3901 <div class="cove-integrations__card" data-category="access-control"><img src="https://cove.is/hubfs/HID-1.png" alt="HID" loading="lazy"><span class="cove-integrations__card-cat">Access Control</span></div> 3902 <div class="cove-integrations__card" data-category="access-control"><img src="https://cove.is/hubfs/Avigilonalta.png" alt="Avigilon Alta" loading="lazy"><span class="cove-integrations__card-cat">Access Control</span></div> 3903 3904 <div class="cove-integrations__card" data-category="accounting-payments"><img src="https://cove.is/hubfs/MRI.png" alt="MRI" loading="lazy"><span class="cove-integrations__card-cat">Accounting</span></div> 3905 <div class="cove-integrations__card" data-category="accounting-payments"><img src="https://cove.is/hubfs/Yardi.png" alt="Yardi" loading="lazy"><span class="cove-integrations__card-cat">Accounting</span></div> 3906 <div class="cove-integrations__card" data-category="accounting-payments"><img src="https://cove.is/hubfs/Stripe.png" alt="Stripe" loading="lazy"><span class="cove-integrations__card-cat">Payments</span></div> 3907 3908 <div class="cove-integrations__card" data-category="occupancy-sensing"><img src="https://cove.is/hubfs/Density.png" alt="Density" loading="lazy"><span class="cove-integrations__card-cat">Occupancy</span></div> 3909 3910 <div class="cove-integrations__card" data-category="parking"><img src="https://cove.is/hubfs/Skidata.png" alt="SKIDATA" loading="lazy"><span class="cove-integrations__card-cat">Parking</span></div> 3911 <div class="cove-integrations__card" data-category="parking"><img src="https://cove.is/hubfs/parkable.png" alt="Parkable" loading="lazy"><span class="cove-integrations__card-cat">Parking</span></div> 3912 <div class="cove-integrations__card" data-category="parking"><img src="https://cove.is/hubfs/Amano.png" alt="Amano" loading="lazy"><span class="cove-integrations__card-cat">Parking</span></div> 3913 <div class="cove-integrations__card" data-category="parking"><img src="https://cove.is/hubfs/Vend.png" alt="Vend" loading="lazy"><span class="cove-integrations__card-cat">Parking</span></div> 3914 <div class="cove-integrations__card" data-category="parking">
3914<img src="https://cove.is/hubfs/Flash.png" alt="Flash" loading="lazy"><span class="cove-integrations__card-cat">Parking</span></div> 3915 3916 <div class="cove-integrations__card" data-category="amenity-management"><img src="https://cove.is/hubfs/Tripleseat.png" alt="Tripleseat" loading="lazy"><span class="cove-integrations__card-cat">Amenities</span></div> 3917 <div class="cove-integrations__card" data-category="amenity-management"><img src="https://cove.is/hubfs/Mindbody.png" alt="Mindbody" loading="lazy"><span class="cove-integrations__card-cat">Amenities</span></div> 3918 3919 <div class="cove-integrations__card" data-category="food-ordering"><img src="https://cove.is/hubfs/GoTab.png" alt="GoTab" loading="lazy"><span class="cove-integrations__card-cat">Food</span></div> 3920 <div class="cove-integrations__card" data-category="food-ordering"><img src="https://cove.is/hubfs/Ritual.png" alt="Ritual" loading="lazy"><span class="cove-integrations__card-cat">Food</span></div> 3921 <div class="cove-integrations__card" data-category="food-ordering"><img src="https://cove.is/hubfs/Square.png" alt="Square" loading="lazy"><span class="cove-integrations__card-cat">Food</span></div> 3922 <div class="cove-integrations__card" data-category="food-ordering"><img src="https://cove.is/hubfs/Toast-1.png" alt="Toast" loading="lazy"><span class="cove-integrations__card-cat">Food</span></div> 3923 3924 <div class="cove-integrations__card" data-category="building-analytics"><img src="https://cove.is/hubfs/Kodelabs.png" alt="KODE Labs" loading="lazy"><span class="cove-integrations__card-cat">Analytics</span></div> 3925 3926 <div class="cove-integrations__card" data-category="resource-calendars"><img src="https://cove.is/hubfs/Google%20Calendar.png" alt="Google Calendar" loading="lazy"><span class="cove-integrations__card-cat">Calendar</span></div> 3927 <div class="cove-integrations__card" data-category="resource-calendars"><img src="https://cove.is/hubfs/Outlook.png" alt="Outlook" loading="lazy"><span class="cove-integrations__card-cat">Calendar</span></div> 3928 3929 <div class="cove-integrations__card" data-category="transit-data"><img src="https://cove.is/hubfs/Actionfigure.png" alt="Actionfigure" loading="lazy"><span class="cove-integrations__card-cat">Transit</span></div> 3930 </div> 3931 3932 <div class="cove-integrations__empty" hidden> 3933 <svg width="32" height="32" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> 3934 <circle cx="11" cy="11" r="7" /> 3935 <line x1="21" y1="21" x2="16.65" y2="16.65" /> 3936 </svg> 3937 <p>No integrations in this category yet.</p> 3938 </div> 3939 </div> 3940 3941 </div> 3942</section> 3943
3944<script> 3945(function(){ 3946 "use strict"; 3947 function init(root){ 3948 var buttons = root.querySelectorAll(".cove-integrations__filter"); 3949 var cards = root.querySelectorAll(".cove-integrations__card"); 3950 var empty = root.querySelector(".cove-integrations__empty"); 3951 3952 function applyFilter(filter){ 3953 var visible = 0; 3954 cards.forEach(function(card){ 3955 var cat = card.dataset.category; 3956 var show = filter === "all" || cat === filter; 3957 card.classList.toggle("is-hidden", !show); 3958 if (show) visible++; 3959 }); 3960 if (empty){ 3961 if (visible === 0){ 3962 empty.setAttribute("data-visible","true"); 3963 empty.removeAttribute("hidden"); 3964 } else { 3965 empty.setAttribute("data-visible","false"); 3966 empty.setAttribute("hidden",""); 3967 } 3968 } 3969 } 3970 3971 buttons.forEach(function(btn){ 3972 btn.addEventListener("click", function(){ 3973 buttons.forEach(function(b){ 3974 b.classList.remove("is-active"); 3975 b.setAttribute("aria-selected","false"); 3976 }); 3977 btn.classList.add("is-active"); 3978 btn.setAttribute("aria-selected","true");
3979 applyFilter(btn.dataset.filter); 3980 }); 3981 }); 3982 } 3983 function boot(){ 3984 document.querySelectorAll(".cove-integrations").forEach(function(root){ init(root); }); 3985 } 3986 if (document.readyState === "loading"){ 3987 document.addEventListener("DOMContentLoaded", boot); 3988 } else { 3989 boot(); 3990 } 3991})(); 3992</script>
3992 3993</div> 3994 3995<!-- ===== YARDI / TRUST ===== --> 3996<div class="cove-home-section"> 3997<section style="padding:24px 24px 72px; font-family:'Inter',-apple-system,sans-serif; background:transparent;"> 3998 <div style="max-width:1240px; margin:0 auto;"> 3999 <div style="display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px;"> 4000 <div style="padding:32px; border-radius:20px; background:#ffffff; border:1px solid rgba(0,53,103,0.08); box-shadow:0 12px 30px -16px rgba(0,53,103,0.12);"> 4001 <div style="height:40px;display:flex;align-items:center;margin-bottom:18px;"><img src="https://cove.is/hubfs/Yardi.png" alt="Yardi" style="height:30px;width:auto;display:block;" loading="lazy"></div> 4002 <h3 style="font-family:'Sora',sans-serif; font-size:20px; font-weight:700; color:#003567; margin:0 0 8px;">Always-Synced Yardi Data</h3> 4003 <p style="font-size:15px; color:#4a6580; margin:0; line-height:1.6;">Cove integrates with your existing specialized tools to eliminate operational silos and keep data moving.</p> 4004 </div> 4005 <div style="padding:32px; border-radius:20px; background:#ffffff; border:1px solid rgba(0,53,103,0.08); box-shadow:0 12px 30px -16px rgba(0,53,103,0.12);"> 4006 <div style="width:50px;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eafaff 0%,#c6ecfa 100%); color:#003567; margin-bottom:18px;"><svg width="22" height="22" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 17l6-6 4 4 7-7"></path><path d="M17 8h4v4"></path></svg></div> 4007 <h3 style="font-family:'Sora',sans-serif; font-size:20px; font-weight:700; color:#003567; margin:0 0 8px;">Built to Scale</h3> 4008 <p style="font-size:15px; color:#4a6580; margin:0; line-height:1.6;">A single, connected foundation designed to evolve alongside the industry's leading owners and operators.</p> 4009 </div> 4010 <div style="padding:32px; border-radius:20px; background:#ffffff; border:1px solid rgba(0,53,103,0.08); box-shadow:0 12px 30px -16px rgba(0,53,103,0.12);"> 4011 <div style="width:50px;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eafaff 0%,#c6ecfa 100%); color:#003567; margin-bottom:18px;"><svg width="22" height="22" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2l8 3v6c0 5-3.5 9-8 11-4.5-2-8-6-8-11V5z" /><path d="M9 12l2 2 4-4" /></svg></div> 4012 <h3 style="font-family:'Sora',sans-serif; font-size:20px; font-weight:700; color:#003567; margin:0 0 8px;">Security You Can Trust</h3> 4013 <p style="font-size:15px; color:#4a6580; margin:0; line-height:1.6;">End-to-end SOC 2 Type II protection keeps your building and tenant data fully safeguarded.</p> 4014 </div> 4015 </div> 4016 </div> 4017</section> 4018</div> 4019 4020<!-- ===== TESTIMONIALS ===== --> 4021<div class="cove-home-section"> 4022<section style="padding:88px 24px; font-family:'Inter',-apple-system,sans-serif; background:transparent;"> 4023 <div style="max-width:1240px; margin:0 auto;"> 4024 <div style="text-align:center; max-width:720px; margin:0 auto 56px;"> 4025 <span class="cove-eyebrow" style="display:inline-flex; align-items:center; gap:10px; font-size:12px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:#003567; padding:8px 14px; border-radius:999px; background:rgba(82,201,236,0.14); border:1px solid rgba(82,201,236,0.35); margin-bottom:22px;"><span style="width:6px;height:6px;border-radius:50%;background:#52C9EC;box-shadow:0 0 0 4px rgba(82,201,236,0.22);"></span> Testimonials</span> 4026 <h2 class="cove-std-title" style="font-family:'Sora',sans-serif; font-weight:800; font-size:clamp(32px,4.2vw,44px); line-height:1.1; letter-spacing:-0.02em; color:#003567; margin:0 0 14px;">What Customers Say About Cove</h2> 4027 <p class="cove-std-sub" style="font-size:17px; color:#4a6580; margin:0;">Real stories from finance, ops, and IT leaders who unified their stack with Cove.</p> 4028 </div> 4029 <div style="display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:22px;"> 4030 <div style="background:#fff; border:1px solid rgba(0,53,103,0.08); border-radius:18px; padding:28px; box-shadow:0 8px 24px -16px rgba(0,53,103,0.18); display:flex; flex-direction:column;"><div style="font-family:'Sora',sans-serif; font-size:42px; line-height:.6; color:#52C9EC; margin-bottom:14px;">â</div><p style="font-size:15.5px;
4030 color:#1a2b42; line-height:1.6; flex:1; margin:0 0 18px;">Overall, we had an outstanding experience with Cove and would highly recommend them as a trusted resource for both work order systems and apps.â</p><div style="font-weight:700; color:#003567; font-size:15px;">Ryan Hursh</div><div style="font-size:13.5px; color:#4a6580;">Asset Management, Vallarta Properties</div><img src="https://cove.is/hubfs/Vallarta%20Properties%20OR%20artisanventure.png" alt="Vallarta Properties logo" loading="lazy" style="height:26px;width:auto;max-width:140px;object-fit:contain;margin-top:16px;opacity:.85;align-self:flex-start;display:block;"></div> 4031 <div style="background:#fff; border:1px solid rgba(0,53,103,0.08); border-radius:18px; padding:28px; box-shadow:0 8px 24px -16px rgba(0,53,103,0.18); display:flex; flex-direction:column;"><div style="font-family:'Sora',sans-serif; font-size:42px; line-height:.6; color:#52C9EC; margin-bottom:14px;">â</div><p style="font-size:15.5px; color:#1a2b42; line-height:1.6; flex:1; margin:0 0 18px;">We wouldn't be here today without the support we got from the Cove team. They walked us through every step, customized the setup, and worked directly with our vendors.â</p><div style="font-weight:700; color:#003567; font-size:15px;">Tim Rivett</div><div style="font-size:13.5px; color:#4a6580;">General Manager, Samuels & Associates</div><img src="https://cove.is/hubfs/Samuels%20Associates.png" alt="Samuels & Associates logo" loading="lazy" style="height:26px;width:auto;max-width:140px;object-fit:contain;margin-top:16px;opacity:.85;align-self:flex-start;display:block;margin-left:-14px;"></div> 4032 <div style="background:#fff; border:1px solid rgba(0,53,103,0.08); border-radius:18px; padding:28px; box-shadow:0 8px 24px -16px rgba(0,53,103,0.18); display:flex; flex-direction:column;"><div style="font-family:'Sora',sans-serif; font-size:42px; line-height:.6; color:#52C9EC; margin-bottom:14px;">â</div><p style="font-size:15.5px; color:#1a2b42; line-height:1.6; flex:1; margin:0 0 18px;">In Cove, we have found a company that we believe can help landlords shape the future of work. Cove sets a new standard for technology in the built environment.â</p><div style="font-weight:700; color:#003567; font-size:15px;">John Fitzpatrick</div><div style="font-size:13.5px; color:#4a6580;">CTO of Alternate Asset Management, Blackstone</div><img src="https://cove.is/hubfs/Blackstone-PRESS-QUALITY-6312.webp" alt="Blackstone logo" loading="lazy" style="height:26px;width:auto;max-width:140px;object-fit:contain;margin-top:16px;opacity:.85;align-self:flex-start;display:block;"></div> 4033 <div style="background:#fff; border:1px solid rgba(0,53,103,0.08); border-radius:18px; padding:28px; box-shadow:0 8px 24px -16px rgba(0,53,103,0.18); display:flex; flex-direction:column;"><div style="font-family:'Sora',sans-serif; font-size:42px; line-height:.6; color:#52C9EC; margin-bottom:14px;">â</div><p style="font-size:15.5px; color:#1a2b42; line-height:1.6; flex:1; margin:0 0 18px;">The consolidation of our tech has resulted in a savings of about $0.05 per square foot. Spread that across the size of our portfolio, and I'll let you do the math.â</p><div style="font-weight:700; color:#003567; font-size:15px;">Michael Aisner</div><div style="font-size:13.5px; color:#4a6580;">SVP, Head of Property Management & ESG, RXR</div><img src="https://cove.is/hubfs/RXR.png" alt="RXR logo" loading="lazy" style="height:26px;width:auto;max-width:140px;object-fit:contain;margin-top:16px;opacity:.85;align-self:flex-start;display:block;margin-left:-22px;"></div> 4034 <div style="background:#fff; border:1px solid rgba(0,53,103,0.08); border-radius:18px; padding:28px; box-shadow:0 8px 24px -16px rgba(0,53,103,0.18); display:flex; flex-direction:column;"><div style="font-family:'Sora',sans-serif; font-size:42px; line-height:.6; color:#52C9EC; margin-bottom:14px;">â</div><p style="font-size:15.5px; color:#1a2b42; line-height:1.6; flex:1; margin:0 0 18px;">Having a dedicated person to bounce ideas off of was great. The weekly meetings are wonderful for catching up on anything that came up and working through issues in real time.â</p><div style="font-weight:700; color:#003567; font-size:15px;">
4034Melissa Huston, CPM</div><div style="font-size:13.5px; color:#4a6580;">Property Manager, The John Buck Company</div><img src="https://cove.is/hubfs/JBC.png" alt="The John Buck Company logo" loading="lazy" style="height:26px;width:auto;max-width:140px;object-fit:contain;margin-top:16px;opacity:.85;align-self:flex-start;display:block;"></div> 4035 <div style="background:#fff; border:1px solid rgba(0,53,103,0.08); border-radius:18px; padding:28px; box-shadow:0 8px 24px -16px rgba(0,53,103,0.18); display:flex; flex-direction:column;"><div style="font-family:'Sora',sans-serif; font-size:42px; line-height:.6; color:#52C9EC; margin-bottom:14px;">â</div><p style="font-size:15.5px; color:#1a2b42; line-height:1.6; flex:1; margin:0 0 18px;">Building Engines was working fine for our team, but until we implemented Cove, we didn't realize what we were missing.â</p><div style="font-weight:700; color:#003567; font-size:15px;">Jamie Adams</div><div style="font-size:13.5px; color:#4a6580;">Property Manager, Boyle Investment Company</div><img src="https://cove.is/hubfs/Boyle.png" alt="Boyle Investment Company logo" loading="lazy" style="height:26px;width:auto;max-width:140px;object-fit:contain;margin-top:16px;opacity:.85;align-self:flex-start;display:block;margin-left:-10px;"></div> 4036 </div> 4037 <div style="text-align:center; margin-top:40px;"><a href="https://cove.is/buildings-powered-by-cove?hsLang=en" style="display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:15px; color:#003567; text-decoration:none;">See More Success Stories â</a></div> 4038 </div> 4039</section> 4040</div> 4041 4042<!-- ===== RESOURCES ===== --> 4043<div class="cove-home-section"> 4044<section style="padding:24px 24px 88px; font-family:'Inter',-apple-system,sans-serif; background:transparent;"> 4045 <div style="max-width:1240px; margin:0 auto;"> 4046 <div style="text-align:center; max-width:720px; margin:0 auto 48px;"> 4047 <span class="cove-eyebrow" style="display:inline-flex; align-items:center; gap:10px; font-size:12px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:#003567; padding:8px 14px; border-radius:999px; background:rgba(82,201,236,0.14); border:1px solid rgba(82,201,236,0.35); margin-bottom:22px;"><span style="width:6px;height:6px;border-radius:50%;background:#52C9EC;box-shadow:0 0 0 4px rgba(82,201,236,0.22);"></span> Resources</span> 4048 <h2 class="cove-std-title cove-nowrap" style="font-family:'Sora',sans-serif; font-weight:800; font-size:clamp(32px,4.2vw,44px); line-height:1.1; letter-spacing:-0.02em; color:#003567; margin:0 0 14px;">Resources for Owners & Operators</h2> 4049 <p class="cove-std-sub" style="font-size:17px; color:#4a6580; margin:0 auto; max-width:620px;">Guides, reports, and insights to help you run excellent buildings.</p> 4050 </div> 4051 <div style="display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px;"> 4052 4053 <a href="https://landing.cove.is/scaling-tenant-experience-in-life-science?hsLang=en" style="text-decoration:none; background:#fff; border:1px solid rgba(0,53,103,0.08); border-radius:18px; overflow:hidden; box-shadow:0 10px 28px -18px rgba(0,53,103,0.18); display:flex; flex-direction:column;"><div style="aspect-ratio:16/9; background:url('https://cove.is/hubfs/custom_thumbnail_large.png') center/cover;"></div><div style="padding:22px;"><span style="font-size:11px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:#52C9EC;">webinar</span><h3 style="font-family:'Sora',sans-serif; font-size:18px; color:#003567; margin:8px 0 14px; line-height:1.3;">Scale tenant experience across every campus.</h3><span style="font-weight:600; font-size:14px; color:#003567;">Read more â</span></div></a> 4054 4055 <a href="https://landing.cove.is/office-report-vacancy-eases-to-18-as-quality-concentrates-demand?hsLang=en" style="text-decoration:none; background:#fff; border:1px solid rgba(0,53,103,0.08); border-radius:18px; overflow:hidden; box-shadow:0 10px 28px -18px rgba(0,53,103,0.18); display:flex; flex-direction:column;"><div style="aspect-ratio:16/9;
4055 background:url('https://cove.is/hubfs/Office%20Report%202026.png') center/cover;"></div><div style="padding:22px;"><span style="font-size:11px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:#52C9EC;">report</span><h3 style="font-family:'Sora',sans-serif; font-size:18px; color:#003567; margin:8px 0 14px; line-height:1.3;">Office Vacancy Eases to 18% as Quality Concentrates Demand</h3><span style="font-weight:600; font-size:14px; color:#003567;">Read more â</span></div></a> 4056 4057 <a href="https://landing.cove.is/the-commercial-property-manager-guide-to-the-industrys-next-era?hsLang=en" style="text-decoration:none; background:#fff; border:1px solid rgba(0,53,103,0.08); border-radius:18px; overflow:hidden; box-shadow:0 10px 28px -18px rgba(0,53,103,0.18); display:flex; flex-direction:column;"><div style="aspect-ratio:16/9; background:url('https://cove.is/hubfs/Resource%20-%20Commercial%20Property%20Manager.png') center/cover;"></div><div style="padding:22px;"><span style="font-size:11px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:#52C9EC;">guide</span><h3 style="font-family:'Sora',sans-serif; font-size:18px; color:#003567; margin:8px 0 14px; line-height:1.3;">The Commercial Property Manager Guide to the Industry's Next Era</h3><span style="font-weight:600; font-size:14px; color:#003567;">Read more â</span></div></a> 4058 4059 </div> 4060 <div style="text-align:center; margin-top:40px;"><a href="https://cove.is/building-operator-resources?hsLang=en" style="display:inline-block; padding:14px 32px; background:linear-gradient(135deg,#52C9EC 0%,#2aa8d4 100%); color:#fff; font-family:'Sora',sans-serif; font-weight:700; font-size:16px; text-decoration:none; border-radius:999px; box-shadow:0 8px 22px rgba(82,201,236,0.45);">Access More Resources</a></div> 4061 </div> 4062</section> 4063</div> 4064 4065<!-- ===== FINAL CTA ===== --> 4066<div class="cove-home-section"> 4067<section style="padding:24px 24px 96px; font-family:'Inter',-apple-system,sans-serif; background:transparent;"> 4068 <div style="max-width:1180px; margin:0 auto; position:relative; overflow:hidden; border-radius:28px; background:linear-gradient(150deg,#003567 0%,#00253f 100%); padding:70px 40px; text-align:center;"> 4069 <div style="position:absolute; right:-100px; top:-120px; width:420px; height:420px; border-radius:50%; background:radial-gradient(circle, rgba(82,201,236,.4), transparent 70%);"></div> 4070 <div style="position:absolute; left:-120px; bottom:-140px; width:380px; height:380px; border-radius:50%; background:radial-gradient(circle, rgba(82,201,236,.22), transparent 70%);"></div> 4071 <h2 style="position:relative; font-family:'Sora',sans-serif; font-weight:800; font-size:clamp(30px,3.6vw,44px); line-height:1.12; color:#fff; max-width:760px; margin:0 auto 16px;">Ready to reimagine what's possible in your building?</h2> 4072 <p style="position:relative; color:rgba(255,255,255,.82); font-size:18px; line-height:1.6; max-width:640px; margin:0 auto 30px;">Cove helps leading property teams simplify operations, reduce costs, and improve tenant satisfaction, all through one unified platform. If you're looking to create a connected, best-in-class experience across your building or portfolio, we're here to help.</p> 4073 <div style="position:relative; display:flex; gap:14px; justify-content:center; flex-wrap:wrap;"> 4074 <a href="https://landing.cove.is/book-a-demo?hsLang=en" style="display:inline-block; padding:14px 32px; border-radius:999px; background:linear-gradient(135deg,#52C9EC 0%,#2aa8d4 100%); color:#fff; font-family:'Sora',sans-serif; font-weight:700; font-size:16px; text-decoration:none; box-shadow:0 8px 22px rgba(82,201,236,0.45);">Modernize My Building</a> 4075 <a href="https://landing.cove.is/get-pricing-cove?hsLang=en" style="display:inline-block; padding:14px 32px; border-radius:999px; background:rgba(255,255,255,.12); color:#fff; border:1.5px solid rgba(255,255,255,.3); font-family:'Sora',sans-serif; font-weight:700; font-size:16px; text-decoration:none;">Get Custom Pricing</a> 4076 </div> 4077 </div> 4078</section> 4079</div> 4080 4081</main></div> 4082 4083</div><!--end widget-span --> 4084</div><!--end row--> 4085</div><!--end row-wrapper --> 4086 4087</div><!--end widget-span --> 4088</div><!--end row--> 4089</div><!--end row-wrapper --> 4090 4091</div><!--end widget-span --> 4092</div> 4093</div> 4094</div> 4095</div> 4096 4097
4098<main id="main-content" class="body-container-wrapper home_page_v1_page"> 4099 4100 <div class="container-fluid home_dnd_area_Top middle-dnd-area"> 4101<div class="row-fluid-wrapper"> 4102<div class="row-fluid"> 4103<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12"> 4104 4105</div><!--end widget-span --> 4106</div> 4107</div> 4108</div> 4109 4110 <div class="container-fluid home_dnd_area_Main main-dnd-area"> 4111<div class="row-fluid-wrapper"> 4112<div class="row-fluid"> 4113<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12"> 4114 4115</div><!--end widget-span --> 4116</div> 4117</div> 4118</div> 4119 4120 <div class="container-fluid home_dnd_area_Bottom"> 4121<div class="row-fluid-wrapper"> 4122<div class="row-fluid"> 4123<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12"> 4124 4125</div><!--end widget-span --> 4126</div> 4127</div> 4128</div> 4129</main> 4130 4131 4132 4133 4134 <div data-global-resource-path="Cove_March2025/templates/partials/footer.html"><div class="footer_partial_wrapper"> 4135 <div class="container-fluid footer_dnd_sec footer_top_sec"> 4136<div class="row-fluid-wrapper"> 4137<div class="row-fluid"> 4138<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12"> 4139 4140</div><!--end widget-span --> 4141</div> 4142</div> 4143</div> 4144 4145 <div id="hs_cos_wrapper_footer_section__2" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"> 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155<footer class="footer footer_section__2 cm-footer"> 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 <div class="footer-section footer-section-1 border_ _bg_choice sec_mob_spac "> 4168 <div class="page-center"> 4169 <div class="flex_row " style=""> 4170 4171 <div class="col-section num1 "> 4172 4173 4174 <div class="footer-row al_ al_tab_ al_mob_ row1 type_logo "> 4175 4176 4177 4178 4179 4180 4181 4182 <div class="footer-logo"> 4183 4184 4185 4186 <span id="hs_cos_wrapper_footer_section__2_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_logo" style="" data-hs-cos-general-type="widget" data-hs-cos-type="logo"><a href="//cove.is?hsLang=en" id="hs-link-footer_section__2_" style="border-width:0px;border:0px;"><img src="https://cove.is/hs-fs/hubfs/Cove_March2025/images/final+logo_all_white.png?width=96&height=39&name=final+logo_all_white.png" class="hs-image-widget " height="39" style="height: auto;width:96px;border-width:0px;border:0px;" width="96" alt="Cove" title="Cove" loading="" srcset="https://cove.is/hs-fs/hubfs/Cove_March2025/images/final+logo_all_white.png?width=48&height=20&name=final+logo_all_white.png 48w, https://cove.is/hs-fs/hubfs/Cove_March2025/images/final+logo_all_white.png?width=96&height=39&name=final+logo_all_white.png 96w, https://cove.is/hs-fs/hubfs/Cove_March2025/images/final+logo_all_white.png?width=144&height=59&name=final+logo_all_white.png 144w, https://cove.is/hs-fs/hubfs/Cove_March2025/images/final+logo_all_white.png?width=192&height=78&name=final+logo_all_white.png 192w, https://cove.is/hs-fs/hubfs/Cove_March2025/images/final+logo_all_white.png?width=240&height=98&name=final+logo_all_white.png 240w, https://cove.is/hs-fs/hubfs/Cove_March2025/images/final+logo_all_white.png?width=288&height=117&name=final+logo_all_white.png 288w" sizes="(max-width: 96px) 100vw, 96px"></a></span> 4187 </div> 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 </div> 4237 4238 <div class="footer-row al_ al_tab_ al_mob_ row2 type_social_icons "> 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 <div class="footer-social"> 4276 4277 <div class="footer-social-item tyicon"> 4278 4279 4280 <a href="https://www.linkedin.com/company/poweredbycove/" target="_blank" rel="noopener"> 4281 4282
4283 <span id="hs_cos_wrapper_footer_section__2_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_icon" style="" data-hs-cos-general-type="widget" data-hs-cos-type="icon"><svg version="1.0" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 448 512" aria-hidden="true"><g id="LinkedIn1_layer"><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z" /></g></svg></span> 4284 4285 4286 4287 4288 4289 4290 4291 </a> 4292 </div> 4293 4294 <div class="footer-social-item tyicon"> 4295 4296 4297 <a href="https://www.facebook.com/people/Cove-Software/61575749103383/#" target="_blank" rel="noopener"> 4298 4299 4300 <span id="hs_cos_wrapper_footer_section__2_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_icon" style="" data-hs-cos-general-type="widget" data-hs-cos-type="icon"><svg version="1.0" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 448 512" aria-hidden="true"><g id="Facebook Square2_layer"><path d="M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z" /></g></svg></span> 4301 4302 4303 4304 4305 4306 4307 4308 </a> 4309 </div> 4310 4311 <div class="footer-social-item tyicon"> 4312 4313 4314 <a href="https://x.com/CoveSoftwareCRE" target="_blank" rel="noopener"> 4315 4316 4317 <span id="hs_cos_wrapper_footer_section__2_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_icon" style="" data-hs-cos-general-type="widget" data-hs-cos-type="icon"><svg version="1.0" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 448 512" aria-hidden="true"><g id="Twitter Square3_layer"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z" /></g></svg></span> 4318 4319 4320 4321 4322 4323 4324 4325 </a> 4326 </div> 4327 4328 </div> 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 </div> 4349 4350 <div class="footer-row footer-newsletter-form al_left al_tab_left al_mob_left row3 type_form_box "> 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 <div class="footer-form form_add"> 4365 <span id="hs_cos_wrapper_footer_section__2_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_form" style="" data-hs-cos-general-type="widget" data-hs-cos-type="form"><h3 id="hs_cos_wrapper_footer_section__2__title" class="hs_cos_wrapper form-title" data-hs-cos-general-type="widget_field" data-hs-cos-type="text"></h3> 4366 4367<div id="hs_form_target_footer_section__2_"></div> 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377</span> 4378 </div> 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 </div> 4424 4425 </div> 4426 4427 <div class="col-section num2 "> 4428 4429 4430 <div class="footer-row al_left al_tab_left al_mob_left row1 type_advance_menu "> 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 <div class="footer-menu">
4457 <span id="hs_cos_wrapper_footer_section__2_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_menu" style="" data-hs-cos-general-type="widget" data-hs-cos-type="menu"><div id="hs_menu_wrapper_footer_section__2_" class="hs-menu-wrapper active-branch flyouts hs-menu-flow-horizontal" role="navigation" data-sitemap-name="default" data-menu-id="187431349852" aria-label="Navigation Menu"> 4458 <ul role="menu"> 4459 <li class="hs-menu-item hs-menu-depth-1 hs-item-has-children" role="none"><a href="javascript:;" aria-haspopup="true" aria-expanded="false" role="menuitem">Sectors</a> 4460 <ul role="menu" class="hs-menu-children-wrapper"> 4461 <li class="hs-menu-item hs-menu-depth-2" role="none"><a href="https://cove.is/sector/office" role="menuitem">Office</a></li> 4462 <li class="hs-menu-item hs-menu-depth-2" role="none"><a href="https://cove.is/sector/life-sciences" role="menuitem">Life Science</a></li> 4463 <li class="hs-menu-item hs-menu-depth-2" role="none"><a href="https://cove.is/sector/retail" role="menuitem">Retail</a></li> 4464 <li class="hs-menu-item hs-menu-depth-2" role="none"><a href="https://cove.is/sector/industrial" role="menuitem">Industrial</a></li> 4465 <li class="hs-menu-item hs-menu-depth-2" role="none"><a href="https://cove.is/sector/medical" role="menuitem">Medical</a></li> 4466 </ul></li> 4467 </ul> 4468</div></span> 4469 </div> 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 </div> 4503 4504 <div class="footer-row al_left al_tab_left al_mob_left row2 type_advance_menu "> 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 <div class="footer-menu"> 4531 <span id="hs_cos_wrapper_footer_section__2_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_menu" style="" data-hs-cos-general-type="widget" data-hs-cos-type="menu"><div id="hs_menu_wrapper_footer_section__2_" class="hs-menu-wrapper active-branch flyouts hs-menu-flow-horizontal" role="navigation" data-sitemap-name="default" data-menu-id="187429430311" aria-label="Navigation Menu"> 4532 <ul role="menu"> 4533 <li class="hs-menu-item hs-menu-depth-1 hs-item-has-children" role="none"><a href="javascript:;" aria-haspopup="true" aria-expanded="false" role="menuitem">Solutions</a> 4534 <ul role="menu" class="hs-menu-children-wrapper"> 4535 <li class="hs-menu-item hs-menu-depth-2" role="none"><a href="https://cove.is/solution/property-managers" role="menuitem">Property Managers</a></li> 4536 <li class="hs-menu-item hs-menu-depth-2" role="none"><a href="https://cove.is/solution/landlords" role="menuitem">Landlords</a></li> 4537 <li class="hs-menu-item hs-menu-depth-2" role="none"><a href="https://cove.is/solution/engineers" role="menuitem">Engineers</a></li> 4538 </ul></li> 4539 <li class="hs-menu-item hs-menu-depth-1 hs-item-has-children" role="none"><a href="javascript:;" aria-haspopup="true" aria-expanded="false" role="menuitem">Product</a> 4540 <ul role="menu" class="hs-menu-children-wrapper"> 4541 <li class="hs-menu-item hs-menu-depth-2" role="none"><a href="https://cove.is/product/building-operations" role="menuitem">Building Operations</a></li> 4542 <li class="hs-menu-item hs-menu-depth-2" role="none"><a href="https://cove.is/product/tenant-experience" role="menuitem">Tenant Experience</a></li> 4543 </ul></li> 4544 </ul> 4545</div></span> 4546 </div> 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 </div> 4580 4581 <div class="footer-row al_left al_tab_left al_mob_left row3 type_advance_menu "> 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 <div class="footer-menu">
4608 <span id="hs_cos_wrapper_footer_section__2_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_menu" style="" data-hs-cos-general-type="widget" data-hs-cos-type="menu"><div id="hs_menu_wrapper_footer_section__2_" class="hs-menu-wrapper active-branch flyouts hs-menu-flow-horizontal" role="navigation" data-sitemap-name="default" data-menu-id="187431889195" aria-label="Navigation Menu"> 4609 <ul role="menu"> 4610 <li class="hs-menu-item hs-menu-depth-1 hs-item-has-children" role="none"><a href="javascript:;" aria-haspopup="true" aria-expanded="false" role="menuitem">Company</a> 4611 <ul role="menu" class="hs-menu-children-wrapper"> 4612 <li class="hs-menu-item hs-menu-depth-2" role="none"><a href="https://cove.is/team" role="menuitem">Our Team</a></li> 4613 <li class="hs-menu-item hs-menu-depth-2" role="none"><a href="https://cove.is/blog-press" role="menuitem">Blog & Press</a></li> 4614 <li class="hs-menu-item hs-menu-depth-2" role="none"><a href="https://cove.is/careers" role="menuitem">Careers</a></li> 4615 <li class="hs-menu-item hs-menu-depth-2" role="none"><a href="https://cove.is/portfolio" role="menuitem">Portfolio</a></li> 4616 <li class="hs-menu-item hs-menu-depth-2" role="none"><a href="https://cove.is/contact" role="menuitem">Contact</a></li> 4617 </ul></li> 4618 </ul> 4619</div></span> 4620 </div> 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 </div> 4654 4655 </div> 4656 4657 <div class="col-section num3 "> 4658 4659 4660 </div> 4661 4662 </div> 4663 </div> 4664 </div> 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 <div class="footer-section footer-section-2 border_0 _bg_choice sec_mob_spac "> 4676 <div class="page-center"> 4677 <div class="flex_row primary_font " style=""> 4678 4679 <div class="col-section num1 "> 4680 4681 4682 <div class="footer-row al_left al_tab_left al_mob_left row1 type_richtext "> 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 <div class="footer-content"> 4732 <p>© 2026 Livelyhood, Inc. All rights reserved.</p> 4733 </div> 4734 4735 4736 4737 4738 4739 4740 4741 </div> 4742 4743 <div class="footer-row al_left al_tab_left al_mob_left row2 type_advance_menu "> 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 <div class="footer-menu"> 4770 <span id="hs_cos_wrapper_footer_section__2_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_menu" style="" data-hs-cos-general-type="widget" data-hs-cos-type="menu"><div id="hs_menu_wrapper_footer_section__2_" class="hs-menu-wrapper active-branch flyouts hs-menu-flow-horizontal" role="navigation" data-sitemap-name="default" data-menu-id="187431889444" aria-label="Navigation Menu"> 4771 <ul role="menu"> 4772 <li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://cove.is/privacy-policy" role="menuitem">Privacy Policy</a></li> 4773 </ul> 4774</div></span> 4775 </div> 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 </div> 4809 4810 </div> 4811 4812 </div> 4813 </div> 4814 </div> 4815 4816 4817 </footer> 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 </div> 4828 <div class="container-fluid footer_dnd_sec footer_bottom_sec"> 4829<div class="row-fluid-wrapper"> 4830<div class="row-fluid"> 4831<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12"> 4832 4833</div><!--end widget-span --> 4834</div> 4835</div> 4836</div> 4837 4838</div></div> 4839 4840 4841 </div> 4842 4843 4844 4845 4846 4847 4848 4849<!-- HubSpot performance collection script -->
4850<script defer src="/hs/hsstatic/content-cwv-embed/static-1.1293/embed.js"></script>
vendor: 1 bytes, line 4850
4850
4851<script src="https://cove.is/hubfs/hub_generated/template_assets/1/187406759761/1784748281197/template_child.min.js"></script>
vendor: 1 bytes, line 4851
4851
4852<script src="https://cove.is/hubfs/hub_generated/template_assets/1/187406797850/1784748280554/template_aos.min.js"></script>
vendor: 1 bytes, line 4852
4852
4853<script src="https://cove.is/hubfs/hub_generated/template_assets/1/187427570271/1784748280482/template_parallax.min.js"></script>
4853 4854 4855
4855<script> 4856 AOS.init({ 4857 once: true, 4858 duration: 500 4859 }); 4860 </script>
4860 4861
4862<script> 4863var hsVars = hsVars || {}; hsVars['language'] = 'en'; 4864</script>
4864 4865
4866<script src="/hs/hsstatic/cos-i18n/static-1.53/bundles/project.js"></script>
vendor: 1 bytes, line 4866
4866
4867<script src="https://cove.is/hubfs/hub_generated/module_assets/1/215778434909/1783691999062/module_HP_Site_Page_-_June_2026.min.js"></script>
vendor: 1 bytes, line 4867
4867
4868<script src="https://cove.is/hubfs/hub_generated/module_assets/1/187406764215/1742187094760/module_footer-section.min.js"></script>
4868 4869 4870 <!--[if lte IE 8]> 4871
4871<script charset="utf-8" src="https://js.hsforms.net/forms/v2-legacy.js"></script>
4871 4872 <![endif]--> 4873
4874<script data-hs-allowed="true" src="/_hcms/forms/v2.js"></script>
4874 4875 4876
4876<script data-hs-allowed="true"> 4877 var options = { 4878 portalId: '21927082', 4879 formId: 'dacbe2f7-2499-4901-8c51-fae357ed5f19', 4880 formInstanceId: '9673', 4881 4882 pageId: '187474757559', 4883 4884 region: 'na1', 4885 4886 4887 4888 4889 pageName: "Unified Commercial Property Management Software | Cove", 4890 4891 4892 4893 4894 4895 4896 css: '', 4897 target: '#hs_form_target_footer_section__2_', 4898 4899 4900 4901 4902 4903 4904 abTestId: 217657519964, 4905 4906 4907 contentType: "standard-page", 4908 4909 4910 4911 formsBaseUrl: '/_hcms/forms/', 4912 4913 4914 4915 formData: { 4916 cssClass: 'hs-form stacked hs-custom-form' 4917 } 4918 }; 4919 4920 options.getExtraMetaDataBeforeSubmit = function() { 4921 var metadata = {}; 4922 4923 4924 if (hbspt.targetedContentMetadata) { 4925 var count = hbspt.targetedContentMetadata.length; 4926 var targetedContentData = []; 4927 for (var i = 0; i < count; i++) { 4928 var tc = hbspt.targetedContentMetadata[i]; 4929 if ( tc.length !== 3) { 4930 continue; 4931 } 4932 targetedContentData.push({ 4933 definitionId: tc[0], 4934 criterionId: tc[1], 4935 smartTypeId: tc[2] 4936 }); 4937 } 4938 metadata["targetedContentMetadata"] = JSON.stringify(targetedContentData); 4939 } 4940 4941 return metadata; 4942 }; 4943 4944 hbspt.forms.create(options); 4945 </script>
4945 4946
4947<script src="/hs/hsstatic/keyboard-accessible-menu-flyouts/static-1.17/bundles/project.js"></script>
4947 4948 4949<!-- Start of HubSpot Analytics Code -->
4950<script type="text/javascript"> 4951var _hsq = _hsq || []; 4952_hsq.push(["setContentType", "standard-page"]); 4953_hsq.push(["setCanonicalUrl", "https:\/\/cove.is"]); 4954_hsq.push(["setPageId", "187474757559"]); 4955_hsq.push(["setContentMetadata", { 4956 "contentPageId": 187474757559, 4957 "legacyPageId": "187474757559", 4958 "contentFolderId": null, 4959 "contentGroupId": null, 4960 "abTestId": 217657519964, 4961 "languageVariantId": 187474757559, 4962 "languageCode": "en", 4963 4964 4965}]); 4966</script>
4966 4967
4968<script type="text/javascript" id="hs-script-loader" async defer src="/hs/scriptloader/21927082.js"></script>
4968 4969<!-- End of HubSpot Analytics Code --> 4970 4971
4972<script type="text/javascript"> 4973var hsVars = { 4974 render_id: "95500e39-fd57-4e45-b9ac-a35a5ba6b371", 4975 ticks: 1789752660328, 4976 page_id: 187474757559, 4977 4978 content_group_id: 0, 4979 portal_id: 21927082, 4980 app_hs_base_url: "https://app.hubspot.com", 4981 cp_hs_base_url: "https://cp.hubspot.com", 4982 language: "en", 4983 analytics_page_type: "standard-page", 4984 scp_content_type: "", 4985 4986 analytics_page_id: "187474757559", 4987 category_id: 1, 4988 folder_id: 0, 4989 is_hubspot_user: false 4990} 4991</script>
4991 4992 4993
4994<script defer src="/hs/hsstatic/HubspotToolsMenu/static-1.640/js/index.js"></script>
4994 4995
4996<script type="text/javascript"> 4997_linkedin_partner_id = "7103372"; 4998window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; 4999window._linkedin_data_partner_ids.push(_linkedin_partner_id); 5000</script>
5000<script type="text/javascript"> 5001(function(l) { 5002if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])}; 5003window.lintrk.q=[]} 5004var s = document.getElementsByTagName("script")[0]; 5005var b = document.createElement("script"); 5006b.type = "text/javascript";b.async = true; 5007b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; 5008s.parentNode.insertBefore(b, s);})(window.lintrk); 5009</script>
5009 5010<noscript> 5011<img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=7103372&fmt=gif"> 5012</noscript> 5013<style> 5014/* make the footer newsletter button smaller */ 5015.footer-newsletter-form .hs-form .actions input[type="submit"], 5016.footer-newsletter-form .hs-form .actions button { 5017 padding: 0.5rem 1rem !important; 5018 font-size: 0.875rem !important; 5019 max-width: 160px !important; 5020 display: inline-block !important; 5021} 5022</style> 5023 5024 5025 5026 5027 5028 5029 5030</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.