:root{--paper:#f8f7f4;--ink:#151515;--muted:#66645f;--red:#db3c32;--line:#d9d7d1;--green:#c5e86d}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Archivo",Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.site-header{height:82px;padding:0 5.2vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(248,247,244,.94);backdrop-filter:blur(12px);z-index:10}.wordmark{display:flex;align-items:center;gap:6px;font-family:Syne,sans-serif;font-weight:800;letter-spacing:-.07em;font-size:25px}.wordmark small{font:700 9px "Archivo",sans-serif;letter-spacing:.2em;margin-top:6px}.mark-dot{font-size:11px;color:var(--red);vertical-align:top;margin-left:2px}.main-nav{display:flex;gap:38px;align-items:center;font-size:12px;font-weight:600}.main-nav a{transition:color .2s}.main-nav a:hover,.footer-links a:hover{color:var(--red)}.nav-contact{border:1px solid var(--ink);padding:12px 17px}.nav-contact span{margin-left:12px}.menu-toggle{display:none}.section-wrap{width:min(1200px,89.6%);margin:0 auto}.hero{min-height:690px;position:relative;display:grid;grid-template-columns:1fr .92fr;align-items:center;padding-top:44px;padding-bottom:92px}.eyebrow{font-size:11px;letter-spacing:.17em;font-weight:700;margin:0 0 34px;display:flex;align-items:center;gap:11px}.eyebrow i{display:block;background:var(--red);width:9px;height:9px}.hero h1,.section-heading h2,.connect-copy h2,.about h2,.contact h2{font:600 clamp(56px,7.1vw,100px)/.96 Syne,sans-serif;letter-spacing:-.075em;margin:0}.hero h1 em,.contact h2 em{font-style:normal;color:var(--red)}.hero-lede{font-size:17px;line-height:1.6;max-width:490px;margin:24px 0 28px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;padding:17px 20px;font-size:13px;font-weight:700;min-width:218px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px)}.button-red{background:var(--red);color:#fff}.button-red:hover{background:#bd2d27}.button span{font-size:18px}.hero-art{height:560px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-art:before{content:"";width:350px;height:350px;position:absolute;top:100px;left:50%;transform:translateX(-50%);border-radius:50%;background:#eceae4}.art-orbit{position:absolute;border:1px solid #d3d0c9;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-52%)}.orbit-one{width:510px;height:510px}.orbit-two{width:430px;height:430px}.phone-shadow{position:absolute;width:215px;height:360px;top:139px;left:calc(50% - 100px);transform:rotate(8deg);border-radius:37px;background:#ccc8bf;filter:blur(20px);opacity:.45}.phone{position:relative;width:225px;height:405px;border:7px solid #171717;border-radius:37px;background:#f4f3ef;box-shadow:8px 17px 25px #0002;transform:rotate(7deg);padding:16px 12px;z-index:1}.phone:after{content:"";position:absolute;inset:4px;border:1px solid #aaa;border-radius:30px;pointer-events:none}.phone-notch{position:absolute;width:85px;height:17px;top:3px;left:50%;transform:translateX(-50%);background:#171717;border-radius:0 0 12px 12px}.phone-status{display:flex;justify-content:space-between;font-size:8px;font-weight:bold;padding:0 4px;margin:4px 0 23px}.phone-heading{display:flex;justify-content:space-between;font-size:11px}.phone-date{text-align:center;color:#92918b;font-size:7px;letter-spacing:.08em;margin:30px 0 12px}.bubble{font-size:9px;line-height:1.5;border-radius:12px;padding:10px;max-width:165px;margin:8px 0}.bubble-in{background:#e4e3df}.bubble-out{margin-left:auto;background:#a7ce62}.bubble-short{max-width:135px}.phone-compose{position:absolute;bottom:20px;left:15px;right:15px;border-top:1px solid #ddd;padding-top:10px;color:#9a9891;font-size:8px}.phone-compose span{font-size:14px;margin-right:8px}.phone-compose b{float:right;color:white;background:#8cbf48;border-radius:50%;width:18px;height:18px;text-align:center;padding-top:2px}.art-note{position:absolute;right:0;top:135px;background:var(--paper);padding:14px 17px;display:flex;gap:11px;align-items:center;box-shadow:0 5px 30px #0000000c;z-index:2}.art-note b,.art-note small{display:block;font-size:11px}.art-note small{color:var(--muted);margin-top:4px}.note-star{font-size:23px;color:var(--red)}.art-caption{position:absolute;bottom:64px;left:5%;font-size:10px;font-weight:700;letter-spacing:.2em}.scroll-cue{position:absolute;bottom:21px;left:0;display:flex;gap:17px;align-items:center;font-size:9px;letter-spacing:.15em;font-weight:700}.scroll-cue i{font-size:17px;font-style:normal}.section-pad{padding-top:120px;padding-bottom:130px}.solutions{border-top:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:60px}.red-label{color:var(--red);margin-bottom:27px}.section-heading h2,.connect-copy h2,.about h2{font-size:clamp(42px,5.2vw,70px)}.section-heading h2 span,.connect-copy h2 span,.about h2 span{color:#aaa9a4}.section-intro{font-size:15px;line-height:1.5;margin:0 0 8px 20px}.solution-row{border-top:1px solid var(--line);padding:31px 0;display:grid;grid-template-columns:100px 1fr 56px;gap:25px;align-items:start}.solution-row:last-child{border-bottom:1px solid var(--line)}.solution-num{font:700 30px Syne,sans-serif;letter-spacing:-.08em;color:#c9c7c1}.solution-main h3{font:600 clamp(25px,3vw,38px)/1.1 Syne,sans-serif;letter-spacing:-.06em;margin:0 0 13px}.solution-main p{font-size:15px;line-height:1.65;color:var(--muted);max-width:580px;margin:0 0 15px}.tags{font-size:9px;font-weight:700;letter-spacing:.14em}.tags b{color:var(--red);padding:0 5px}.arrow-link{width:52px;height:52px;border:1px solid #aaa79f;display:grid;place-items:center;font-size:23px;transition:background .2s,color .2s,border .2s}.arrow-link:hover{background:var(--red);color:white;border-color:var(--red)}.connectivity{background:#eeede8}.connectivity-grid{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:4vw}.connect-copy .red-label{margin-bottom:28px}.connect-copy h2{font-size:clamp(42px,4.7vw,64px)}.connect-lede{font-size:15px;line-height:1.8;color:var(--muted);max-width:500px;margin:24px 0}.benefits{list-style:none;padding:0;margin:30px 0}.benefits li{font-size:13px;padding:13px 0;border-bottom:1px solid #d4d2cb;display:flex;gap:14px}.benefits li:first-child{border-top:1px solid #d4d2cb}.benefits span{color:var(--red)}.text-link{display:inline-flex;gap:28px;border-bottom:1px solid var(--ink);padding:0 0 9px;font-weight:700;font-size:12px}.text-link span{font-size:16px}.network-art{height:500px;position:relative;overflow:hidden;background:#e6e4dd}.network-glow{position:absolute;width:300px;height:300px;border-radius:50%;background:#d7e6b6;filter:blur(55px);left:29%;top:20%;opacity:.6}.network-lines{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#a9a79f;stroke-width:1.2}.network-lines .line-accent{stroke:var(--red);stroke-width:2;stroke-dasharray:6 8}.node{position:absolute;width:100px;height:100px;border:1px solid #aaa89f;border-radius:50%;background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px}.node span{font:600 24px Syne}.node small{font-size:7px;font-weight:700;letter-spacing:.12em}.node-business{top:10%;left:10%}.node-world{top:17%;right:8%}.node-customer{bottom:8%;right:8%}.node-api{bottom:9%;left:8%}.node-business span{color:var(--red)}.node-world span{color:#72a52c}.network-center{position:absolute;top:39%;left:39%;width:120px;height:120px;border-radius:50%;background:var(--ink);color:white;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;text-align:center;box-shadow:0 0 0 12px #e6e4dd,0 0 0 13px #bcbab1}.network-center i{width:5px;height:5px;border-radius:50%;background:var(--green);position:absolute;top:14px;left:50%}.network-center i:nth-child(2){left:60%;top:20px}.network-center i:nth-child(3){left:40%;top:20px}.network-center b{font-size:10px;letter-spacing:.1em;line-height:1.5}.network-label{position:absolute;bottom:17px;left:50%;transform:translateX(-50%);font-size:8px;font-weight:700;letter-spacing:.16em;white-space:nowrap}.about{display:grid;grid-template-columns:.85fr 1.15fr;gap:6vw;align-items:start}.about-index{display:flex;justify-content:space-between;align-items:flex-start}.about-stamp{display:block;border:1px solid #d6d3cb;width:82px;height:82px;border-radius:50%;text-align:center;padding-top:13px;font:800 17px Syne;line-height:.9;color:var(--red);transform:rotate(-12deg)}.about-stamp i{font-size:12px;font-style:normal;color:var(--ink)}.about h2{margin:0 0 35px}.about h3{font:600 25px/1.55 Syne,sans-serif;letter-spacing:-.04em;margin:0 0 17px}.about-copy>p{max-width:620px;font-size:16px;line-height:1.8;color:var(--muted);margin:0 0 16px}.about-copy .about-signoff{font-size:15px;color:var(--ink);font-weight:600;margin-top:27px}.contact{background:var(--red);color:white}.contact .eyebrow{color:#fff;margin-bottom:48px}.contact .eyebrow i{background:white}.contact-content{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.contact h2{font-size:clamp(52px,7vw,94px)}.contact-side{padding-bottom:9px}.contact-side p{font-size:15px;line-height:1.7;margin:0 0 22px}.button-light{background:var(--paper);color:var(--ink)}.contact-email{display:inline-flex;justify-content:space-between;align-items:center;width:100%;border-top:1px solid #ffffff77;padding-top:20px;margin-top:75px;font-size:14px}.contact-email span{font-size:19px}.site-footer{padding:40px 5.2vw 30px;display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:20px;align-items:end}.footer-mark{align-self:start}.site-footer>p{font-size:12px;line-height:1.6;color:var(--muted);margin:0}.footer-links{display:flex;gap:22px;font-size:11px;font-weight:600}.copyright{font-size:10px;color:var(--muted)}
@media(max-width:760px){.site-header{height:76px;padding:0 20px}.wordmark{font-size:24px}.menu-toggle{display:flex;border:0;background:transparent;width:35px;height:35px;flex-direction:column;justify-content:center;gap:6px;padding:4px;z-index:2}.menu-toggle span{height:2px;width:22px;background:var(--ink);transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.main-nav{display:none;position:absolute;top:75px;left:0;right:0;background:var(--paper);padding:24px 22px 30px;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:23px}.main-nav.open{display:flex}.main-nav a{font-size:14px}.nav-contact{margin-top:3px}.section-wrap{width:calc(100% - 40px)}.hero{display:flex;flex-direction:column;align-items:stretch;padding-top:48px;padding-bottom:81px;min-height:0}.eyebrow{font-size:10px;margin-bottom:25px}.hero h1{font-size:clamp(52px,14.5vw,76px);line-height:.94}.hero-lede{font-size:15px;line-height:1.55;margin:20px 0 25px}.button{min-width:0;padding:16px 18px}.hero-art{height:410px;margin-top:25px}.hero-art:before{width:280px;height:280px;top:50px}.orbit-one{width:370px;height:370px}.orbit-two{width:300px;height:300px}.phone{transform:rotate(7deg) scale(.88);transform-origin:center}.phone-shadow{top:90px;left:calc(50% - 83px)}.art-note{right:-3px;top:75px;padding:11px 12px}.art-note b,.art-note small{font-size:9px}.note-star{font-size:19px}.art-caption{bottom:27px;left:2%;font-size:8px}.scroll-cue{bottom:19px}.section-pad{padding-top:78px;padding-bottom:82px}.section-heading{display:block;margin-bottom:35px}.section-heading h2,.connect-copy h2,.about h2{font-size:clamp(38px,10vw,55px)}.section-intro{margin:22px 0 0;font-size:14px}.solution-row{grid-template-columns:48px 1fr 42px;gap:10px;padding:27px 0}.solution-num{font-size:24px}.solution-main h3{font-size:27px;line-height:1.04;margin-bottom:12px}.solution-main p{font-size:14px;line-height:1.6}.tags{font-size:8px;letter-spacing:.08em;line-height:1.8}.tags b{padding:0 2px}.arrow-link{width:41px;height:41px;font-size:20px}.connectivity-grid{display:block}.connect-copy h2{font-size:clamp(38px,9vw,54px)}.connect-lede{font-size:14px;line-height:1.75}.benefits li{font-size:12px}.network-art{height:380px;margin-top:56px;margin-left:-4px;margin-right:-4px}.node{width:75px;height:75px}.node span{font-size:20px}.node small{font-size:6px}.network-center{width:100px;height:100px;top:39%;left:39%}.network-center b{font-size:8px}.about{display:block}.about-index{margin-bottom:40px}.about-stamp{margin-right:6px}.about h2{margin-bottom:28px}.about h3{font-size:20px;line-height:1.45}.about-copy>p{font-size:14px;line-height:1.75}.contact .eyebrow{margin-bottom:35px}.contact-content{display:block}.contact h2{font-size:clamp(46px,12vw,68px)}.contact-side{margin-top:28px}.contact-side p{font-size:14px}.contact-email{margin-top:48px;font-size:13px}.site-footer{padding:32px 20px 24px;grid-template-columns:1fr 1fr;gap:25px 12px;align-items:start}.site-footer>p{font-size:11px}.footer-links{grid-column:1/-1;gap:19px;flex-wrap:wrap}.copyright{grid-column:1/-1}.footer-mark{font-size:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
/* HAPS messaging advisor */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.assistant-launcher{position:fixed;right:25px;bottom:24px;z-index:30;display:flex;align-items:center;gap:10px;border:0;background:var(--ink);color:#fff;padding:12px 18px 12px 12px;border-radius:999px;box-shadow:0 8px 28px #0003;font:600 14px Archivo,sans-serif;cursor:pointer;transition:transform .2s,background .2s}
.assistant-launcher:hover{background:var(--red);transform:translateY(-2px)}
.assistant-launcher-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--red);font-size:18px;color:white}
.assistant-panel{position:fixed;right:25px;bottom:88px;z-index:31;width:min(390px,calc(100vw - 32px));height:min(570px,calc(100dvh - 120px));background:var(--paper);border:1px solid #d9d7d1;box-shadow:0 18px 70px #1113;display:flex;flex-direction:column}
.assistant-panel[hidden]{display:none}
.assistant-header{height:70px;flex:none;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 18px}
.assistant-brand{display:flex;align-items:center;gap:11px}.assistant-brand-icon{width:36px;height:36px;display:grid;place-items:center;background:var(--ink);color:white;font:800 17px Syne,sans-serif}.assistant-brand-icon span{font:700 7px Archivo,sans-serif;color:var(--red);margin-left:-7px;margin-top:-12px}
.assistant-brand strong,.assistant-brand small{display:block}.assistant-brand strong{font:700 14px Syne,sans-serif}.assistant-brand small{font:500 11px Archivo,sans-serif;color:var(--muted);margin-top:4px}.assistant-brand small i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#6aab45;margin-right:5px}
.assistant-close{border:0;background:transparent;font-size:27px;color:var(--muted);cursor:pointer;width:34px;height:34px}
.assistant-messages{flex:1;overflow:auto;padding:19px 15px;display:flex;flex-direction:column;gap:15px;scroll-behavior:smooth}
.assistant-message{display:flex;align-items:flex-start;gap:8px;max-width:100%}.assistant-message-user{justify-content:flex-end}.assistant-avatar{display:grid;place-items:center;flex:none;width:25px;height:25px;background:var(--ink);color:white;font:700 11px Syne,sans-serif}.assistant-bubble{max-width:calc(100% - 35px);background:#eeede8;padding:12px 13px;font-size:13px;line-height:1.55}.assistant-message-user .assistant-bubble{background:var(--ink);color:white;max-width:84%}.assistant-bubble p{margin:0 0 9px}.assistant-bubble p:last-child{margin-bottom:0}.assistant-suggestions{display:flex;flex-direction:column;align-items:flex-start;gap:7px;margin-top:12px}.assistant-suggestions button{border:1px solid #c8c5bc;background:#fff;color:var(--ink);padding:8px 10px;font:500 11px Archivo,sans-serif;text-align:left;cursor:pointer;transition:border .15s,color .15s}.assistant-suggestions button:hover{border-color:var(--red);color:var(--red)}
.assistant-form{margin:0 14px;border:1px solid #d3d0c8;background:white;display:flex;align-items:flex-end;padding:6px;gap:6px}.assistant-form:focus-within{border-color:var(--ink)}.assistant-form textarea{resize:none;max-height:90px;flex:1;border:0;outline:0;padding:8px 7px;background:transparent;color:var(--ink);font:14px/1.4 Archivo,sans-serif}.assistant-form button{height:36px;width:36px;border:0;background:var(--red);color:white;font-size:20px;cursor:pointer}.assistant-form button:disabled{opacity:.55;cursor:wait}.assistant-privacy{margin:8px 15px 12px;text-align:center;color:#77746d;font:10px/1.4 Archivo,sans-serif}.assistant-typing{color:var(--muted);font-size:12px;font-style:italic}
@media(max-width:760px){.assistant-launcher{right:15px;bottom:15px}.assistant-panel{right:8px;bottom:74px;width:calc(100vw - 16px);height:min(610px,calc(100dvh - 95px))}}

/* Reference typography: Archivo for copy and Syne for display type. */
body{font-size:16px}
h1,h2,h3{font-weight:700}
.main-nav{font-size:14px}
.button{font-size:14px}
.eyebrow{font-size:12px}
.footer-links{font-size:12px}
.site-footer>p{font-size:13px}
.hero h1{font-size:clamp(64px,10.5vw,138px);line-height:.88;letter-spacing:-.065em}
.section-heading h2,.connect-copy h2,.about h2{font-size:clamp(46px,5.7vw,76px);line-height:.94}
.contact h2{font-size:clamp(56px,7.5vw,102px);line-height:.92}
.hero-lede,.solution-main p,.connect-lede,.about-copy>p,.contact-side p{font-size:16px}
.solution-main h3{font-size:clamp(28px,3.2vw,42px)}
.section-intro,.benefits li{font-size:15px}
.tags{font-size:10px}
@media(max-width:760px){
 .main-nav a{font-size:15px}
 .hero h1{font-size:clamp(58px,15.7vw,76px);line-height:.9}
 .section-heading h2,.connect-copy h2,.about h2{font-size:clamp(42px,10.8vw,58px)}
 .contact h2{font-size:clamp(50px,13vw,72px)}
 .hero-lede,.solution-main p,.connect-lede,.about-copy>p,.contact-side p{font-size:15px}
 .section-intro,.benefits li{font-size:14px}
 .solution-main h3{font-size:28px}
 .tags{font-size:9px}
}
/* Give the HAPS wordmark more presence in the header and footer. */
.site-header .wordmark{font-size:32px}
.site-header .wordmark small{font-size:10px}
.site-header .wordmark .mark-dot{font-size:14px}
.site-footer .footer-mark{font-size:30px}
.site-footer .footer-mark small{font-size:10px}
.site-footer .footer-mark .mark-dot{font-size:14px}
@media(max-width:760px){.site-header .wordmark{font-size:29px}.site-footer .footer-mark{font-size:27px}}
