.hx-site{--hx-bg:#0d1117;--hx-card:#131922;--hx-card-2:#171e28;--hx-line:rgba(230,232,235,.1);--hx-text:#eef0f3;--hx-dim:#a3afbb;--hx-grad:linear-gradient(90deg,#a9c2d9 0%,#7fa3c4 45%,#4a6b8a 100%);--hx-acc:#7fa3c4;--hx-acc-2:#a9c2d9;--hx-acc-rgb:127,163,196;--violet:var(--hx-acc);--rose:var(--hx-acc-2);--amber:var(--hx-acc);--hx-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath d='M0 3 1.6 0 8 4.6v2.8L1.6 12 0 9l4.2-3z'/%3E%3C/svg%3E");--hx-chevron-acc:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath fill='%237fa3c4' d='M0 3 1.6 0 8 4.6v2.8L1.6 12 0 9l4.2-3z'/%3E%3C/svg%3E");background:var(--hx-bg)}
.hx-site main{background:var(--hx-bg);color:var(--hx-text);color-scheme:dark}
.hx-site main :focus-visible{outline-color:var(--tint)}
.hx-defs{position:absolute;width:0;height:0;overflow:hidden}
.hx-grad{background:var(--hx-grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.hx-nowrap{white-space:nowrap}
.hx-title{font-size:clamp(46px,7.2vw,104px);font-weight:700;line-height:.96;letter-spacing:-.02em;text-transform:uppercase;color:var(--hx-text);text-wrap:balance}
.hx-ridges{position:absolute;pointer-events:none;--ridge-bg:#0d1117}
.hx-ridges canvas{position:absolute;inset:0;display:block;width:100%;height:100%}
.hx-ridges.is-float{inset:-24px 0;z-index:-2}
.hx-ridges.is-float canvas{will-change:transform;animation:hx-float 18s ease-in-out infinite}
@keyframes hx-float{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(0,-16px,0) scale(1.03)}}

.hx-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 30px;border:0;border-radius:100px;background:#e6e8eb;color:var(--hx-bg);font-size:15px;font-weight:700;letter-spacing:.02em;line-height:1.2;text-transform:uppercase;transition:box-shadow .3s;white-space:nowrap}
.hx-btn:hover{box-shadow:5px 5px 0 var(--hx-acc)}
.hx-btn-sm{min-height:50px;padding:0 24px}
.hx-btn-dot{flex-shrink:0;width:10px;height:15px;background:var(--hx-acc);-webkit-mask:var(--hx-chevron) center/contain no-repeat;mask:var(--hx-chevron) center/contain no-repeat}
.hx-btn>.hx-btn-dot{width:8px;height:12px;background:#4a6b8a;transition:transform .3s}
.hx-btn:hover>.hx-btn-dot{transform:translateX(.25em)}
.hx-site .eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:0;padding:8px 16px;border:1px solid transparent;border-radius:100px;background:linear-gradient(var(--hx-bg),var(--hx-bg)) padding-box,var(--hx-grad) border-box;color:var(--hx-text);font-size:12px;font-weight:600;line-height:1.5;letter-spacing:.16em;text-transform:uppercase}
.hx-site .eyebrow:before{content:"";flex-shrink:0;width:7px;height:11px;border-radius:0;background:var(--hx-acc);opacity:1;transform:none;-webkit-mask:var(--hx-chevron) center/contain no-repeat;mask:var(--hx-chevron) center/contain no-repeat}
.hx-tags{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none}
.hx-tags li{padding:6px 13px;border:1px solid var(--hx-line);border-radius:100px;font-size:13px;font-weight:500;line-height:1.4;color:#c8d0d9}

.hx-band{position:relative;overflow:hidden;padding-block:28px;background:var(--hx-bg);border-block:1px solid var(--hx-line)}
.hx-band:before,.hx-band:after{content:"";position:absolute;top:0;bottom:0;z-index:1;width:min(160px,12vw);pointer-events:none}
.hx-band:before{left:0;background:linear-gradient(90deg,var(--hx-bg),transparent)}
.hx-band:after{right:0;background:linear-gradient(270deg,var(--hx-bg),transparent)}
.hx-band-track{display:flex;width:max-content;will-change:transform;animation:hx-band 40s linear infinite}
.hx-band-group{display:flex;flex-shrink:0;align-items:center;gap:48px;padding-right:48px}
.hx-band-item{display:flex;align-items:center;gap:16px}
.hx-band-item b{font-size:44px;font-weight:700;line-height:1;letter-spacing:-.03em;white-space:nowrap}
.hx-band-item span{max-width:160px;font-size:14px;font-weight:500;line-height:1.35;letter-spacing:.1em;text-transform:uppercase;color:var(--hx-dim)}
@keyframes hx-band{to{transform:translateX(-50%)}}

.hx-contact{position:relative;overflow:hidden;isolation:isolate;padding-block:150px 140px}
.hx-contact .hx-ridges.is-float canvas{animation-duration:22s;animation-delay:-7s}
.hx-contact:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 55% 40% at 50% 30%,rgba(13,17,23,.75),transparent 80%)}
.hx-contact-inner{display:flex;flex-direction:column;align-items:center;text-align:center}
.hx-contact h2{max-width:1080px;margin:0 auto;font-size:clamp(34px,4.6vw,66px);line-height:1}
.hx-contact .blink-cursor{color:var(--hx-acc)}
.hx-contact-copy p{max-width:560px;margin:26px auto 0;font-size:17px;line-height:1.8;color:var(--hx-dim)}
.hx-contact .contact-form{width:min(840px,100%);margin-top:56px;padding:40px;text-align:left;background:rgba(19,25,34,.96);border:1px solid var(--hx-line);border-radius:10px}
.hx-contact .form-grid{gap:20px;margin-top:0}
.hx-contact .field label{font-size:14px;color:#c8d0d9}
.hx-contact .field input,.hx-contact .field select,.hx-contact .field textarea{background:var(--hx-bg);border:1px solid rgba(230,232,235,.14);border-radius:6px;color:var(--hx-text)}
.hx-contact .field input::placeholder,.hx-contact .field textarea::placeholder{color:#7a8796;opacity:1}
.hx-contact .field input:focus,.hx-contact .field select:focus,.hx-contact .field textarea:focus{border-color:var(--hx-acc);outline:1px solid var(--hx-acc);box-shadow:0 0 0 4px rgba(var(--hx-acc-rgb),.16)}
.hx-contact .field select option{background:var(--hx-bg);color:var(--hx-text)}
.hx-contact .form-notice{margin-top:20px;font-size:13px;color:var(--hx-dim)}
.hx-contact .form-submit{min-height:58px;margin-top:16px;border:0;border-radius:6px;background:var(--hx-grad);color:var(--hx-bg);font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.hx-contact .form-submit:hover{background:var(--hx-grad);color:var(--hx-bg);box-shadow:0 14px 40px -14px rgba(var(--hx-acc-rgb),.65)}
.hx-contact .form-feedback{background:rgba(230,232,235,.06);border-left-color:var(--hx-acc);color:#c8d0d9}

.cat-art{position:absolute;inset:0;width:100%;height:100%}
.cat-art *{transform-box:fill-box;transform-origin:center}
.a-panel{fill:rgba(230,232,235,.035);stroke:rgba(230,232,235,.18);stroke-width:1.2}
.a-line{stroke:rgba(230,232,235,.16);stroke-width:1.2}
.a-dash{stroke-dasharray:4 5}
.a-dot{fill:rgba(230,232,235,.24)}
.a-stroke{stroke:url(#art-g);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.a-thick{stroke-width:7}
.a-node{fill:var(--hx-acc-2)}
.a-bar{fill:url(#art-soft);stroke:url(#art-g);stroke-width:1.2}
.a-bar.is-alert{fill:rgba(233,135,135,.45);stroke:#e98787;animation:a-pulse 2.4s ease-in-out infinite}
.a-scan{animation:a-scan 4.2s ease-in-out infinite alternate}
.a-beam-glow{fill:url(#art-beam)}
.a-beam{stroke:var(--hx-acc);stroke-width:1.6}
.a-lens{animation:a-float 5s ease-in-out infinite}
.a-lens-fill{fill:rgba(var(--hx-acc-rgb),.1)}
.a-layer{fill:url(#art-soft);stroke:url(#art-g);stroke-width:1.4;animation:a-layer 3.6s ease-in-out infinite}
.a-layer.l2{animation-delay:.6s}
.a-layer.l3{animation-delay:1.2s}
.a-drop{fill:var(--hx-acc-2);opacity:0;animation:a-drop 3.6s cubic-bezier(.45,0,.55,1) infinite}
.a-drop:nth-of-type(2){animation-delay:.7s}
.a-drop:nth-of-type(3){animation-delay:1.4s}
.a-drop:nth-of-type(4){animation-delay:2.1s}
.a-drop:nth-of-type(5){animation-delay:2.8s}
.a-chip{fill:var(--hx-acc)}
.a-avatar{fill:url(#art-soft);stroke:url(#art-g);stroke-width:1.2}
.a-bubble{fill:rgba(230,232,235,.08);stroke:rgba(230,232,235,.18);stroke-width:1}
.a-bubble.is-out{fill:url(#art-soft);stroke:url(#art-g)}
.a-text{stroke:rgba(230,232,235,.34);stroke-width:4;stroke-linecap:round}
.a-text.is-dark{stroke:rgba(238,240,243,.55)}
.a-text.is-light{stroke:rgba(238,240,243,.7)}
.a-msg{opacity:0;animation:a-msg 7s ease-in-out infinite}
.a-msg:nth-of-type(2){animation-delay:.9s}
.a-msg:nth-of-type(3){animation-delay:1.8s}
.a-msg:nth-of-type(4){animation-delay:2.7s}
.a-typing circle{fill:rgba(230,232,235,.6);animation:a-typing 1s ease-in-out infinite}
.a-typing circle:nth-of-type(2){animation-delay:.15s}
.a-typing circle:nth-of-type(3){animation-delay:.3s}
.a-orb{fill:rgba(19,25,34,.9);stroke:rgba(230,232,235,.18);stroke-width:1}
.a-float{animation:a-float 4.6s ease-in-out infinite}
.a-float:nth-of-type(6){animation-delay:-1.6s}
.a-float:nth-of-type(7){animation-delay:-3.1s}
.a-url{fill:rgba(230,232,235,.07)}
.a-hero-blk{fill:url(#art-soft);stroke:url(#art-g);stroke-width:1.2}
.a-card{fill:rgba(230,232,235,.05);stroke:rgba(230,232,235,.16);stroke-width:1}
.a-img{fill:rgba(var(--hx-acc-rgb),.16)}
.a-cta{fill:var(--hx-acc-2);animation:a-click 6s ease-in-out infinite}
.a-blk{opacity:0;animation:a-blk 6s ease-out infinite}
.a-blk:nth-of-type(2){animation-delay:.35s}
.a-blk:nth-of-type(3){animation-delay:.6s}
.a-blk:nth-of-type(4){animation-delay:.85s}
.a-cursor{fill:#eef0f3;stroke:#0d1117;stroke-width:1.2;transform-box:view-box;transform-origin:0 0;animation:a-cursor 6s ease-in-out infinite}
@keyframes a-pulse{0%,100%{opacity:1}50%{opacity:.45}}
@keyframes a-scan{from{transform:translateY(0)}to{transform:translateY(100px)}}
@keyframes a-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes a-layer{0%,100%{opacity:.55}30%{opacity:1}}
@keyframes a-drop{0%{opacity:0;transform:translate(0,0) scale(1)}12%{opacity:1}78%{opacity:1;transform:translate(var(--dx),178px) scale(.7)}100%{opacity:0;transform:translate(var(--dx),206px) scale(.4)}}
@keyframes a-msg{0%{opacity:0;transform:translateY(8px)}7%,82%{opacity:1;transform:translateY(0)}92%,100%{opacity:0;transform:translateY(0)}}
@keyframes a-typing{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes a-blk{0%{opacity:0;transform:translateY(8px)}10%,84%{opacity:1;transform:translateY(0)}94%,100%{opacity:0;transform:translateY(0)}}
@keyframes a-cursor{0%,12%{transform:translate(320px,210px)}38%{transform:translate(110px,118px)}44%{transform:translate(110px,118px) scale(.82)}50%{transform:translate(110px,118px) scale(1)}72%,100%{transform:translate(300px,200px)}}
@keyframes a-click{0%,42%{opacity:1}45%{opacity:.5}50%,100%{opacity:1}}
.cat-art.is-paused,.cat-art.is-paused *{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.a-msg,.a-blk{opacity:1}.a-cursor,.a-drop{display:none}}

@media(max-width:600px){.hx-band{padding-block:20px}.hx-band-item b{font-size:34px}.hx-band-item span{font-size:13px}.hx-btn{width:100%;white-space:normal;display:block;padding:18.5px 20px;font-size:14px;line-height:17px;text-align:center;text-wrap:balance}.hx-btn>.hx-btn-dot{display:inline-block;margin-right:10px;vertical-align:-1px}.hx-title{font-size:clamp(40px,12vw,58px)}.hx-contact{padding-block:100px 90px}.hx-contact h2{font-size:clamp(30px,8.8vw,40px)}.hx-contact-copy p{font-size:16px}.hx-contact .contact-form{width:calc(100% + 16px);margin-top:40px;padding:24px 16px}.hx-contact .form-grid{grid-template-columns:1fr;gap:16px}.hx-contact .field input,.hx-contact .field select,.hx-contact .field textarea{font-size:16px}}
@media(prefers-reduced-motion:reduce){.hx-btn,.hx-btn>.hx-btn-dot{transition:none}}
