@property --ng-beam-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.ng-plate-drift{animation:22s ease-in-out infinite alternate ng-plate-drift;animation-delay:calc(var(--ng-i,0) * -3.7s)}@keyframes ng-plate-drift{0%{transform:scale(1.02)translate(-.8%,.4%)}to{transform:scale(1.08)translate(.8%,-.6%)}}.ng-plate-sheen{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.ng-plate-sheen:before{content:"";width:35%;animation:9s cubic-bezier(.45,0,.25,1) infinite ng-plate-sheen;animation-delay:calc(var(--ng-i,0) * .9s);background:linear-gradient(100deg,#fff0 0%,#ffffff12 45%,#ffffff24 50%,#ffffff12 55%,#fff0 100%);position:absolute;top:-20%;bottom:-20%;left:0;transform:translate(-120%)skew(-12deg)}@keyframes ng-plate-sheen{0%,62%{transform:translate(-120%)skew(-12deg)}to{transform:translate(400%)skew(-12deg)}}.ng-card-spot{z-index:2;pointer-events:none;opacity:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), color-mix(in srgb, var(--card-accent) 22%, transparent), transparent 60%);mix-blend-mode:screen;transition:opacity .4s;position:absolute;inset:0}.group:hover>.ng-card-spot,.group:focus-visible>.ng-card-spot{opacity:1}.ng-card-beam{z-index:20;pointer-events:none;border-radius:inherit;opacity:0;background:conic-gradient(from var(--ng-beam-angle), transparent 0deg, transparent 250deg, color-mix(in srgb, var(--card-accent) 40%, transparent) 300deg, var(--card-accent) 345deg, #fff 356deg, transparent 360deg);-webkit-mask-composite:xor;padding:1px;transition:opacity .5s;animation:3.2s linear infinite paused ng-card-beam;position:absolute;inset:0;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}.group:hover>.ng-card-beam,.group:focus-visible>.ng-card-beam{opacity:1;animation-play-state:running}@keyframes ng-card-beam{to{--ng-beam-angle:360deg}}.ng-live-dot{position:relative}.ng-live-dot:after{content:"";background:inherit;border-radius:9999px;animation:2.4s ease-out infinite ng-live-dot;position:absolute;inset:0}@keyframes ng-live-dot{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(3.2)}}@media (prefers-reduced-motion:reduce){.ng-plate-drift,.ng-plate-sheen:before,.ng-card-beam,.ng-live-dot:after{animation:none!important}.ng-plate-sheen,.ng-card-beam{display:none}}
.ng-hero{z-index:10;flex-direction:column;justify-content:center;width:100%;min-height:max(640px,min(100svh,1040px));display:flex;position:relative;overflow:hidden}.ng-hero:after{content:"";left:var(--ng-gutter);right:var(--ng-gutter);background:linear-gradient(90deg,#0000,#ffffff1f 20% 80%,#0000);height:1px;position:absolute;bottom:0}.ng-hero .ng-hero-void{z-index:1;pointer-events:none;position:absolute;inset:0}.ng-hero .ng-hero-infall{position:absolute;inset:0}.ng-hero .ng-hero-core{--ng-hole-r:calc(max(640px, min(100svh, 1040px)) * .123);font-size:clamp(14px, calc(var(--ng-hole-r) * .43), 60px);--ng-infall-pulse:0;place-items:center;display:grid;position:absolute;transform:translate(-50%,-50%)}.ng-hero .ng-hero-core:before{content:"";width:5.6em;height:5.6em;filter:brightness(calc(1 + .9 * var(--ng-infall-pulse)));opacity:0;will-change:transform, filter;background:radial-gradient(closest-side,#eaf4ff47,#4d9ee829 42%,#4d9ee800 100%);border-radius:50%;position:absolute}.ng-hero .ng-hero-core:after{content:"";opacity:0;border:1px solid #eaf4ffbf;border-radius:50%;width:3.9em;height:3.9em;position:absolute;box-shadow:0 0 .25em #4d9ee899,inset 0 0 .25em #4d9ee873}.ng-hero .ng-hero-ai{z-index:1;letter-spacing:.03em;color:#0000;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 .04em #a0cdff8c) drop-shadow(0 0 .15em #4d9ee88c) brightness(calc(1.08 + .4 * var(--ng-infall-pulse)));opacity:0;will-change:transform, filter;-webkit-user-select:none;user-select:none;background-image:linear-gradient(105deg,#0000 38%,#fffffff2 50%,#0000 62%),linear-gradient(#fff 6%,#cfe8ff 40%,#4f9fe9 100%);background-position:130% 0,0 0;background-repeat:no-repeat;background-size:260% 100%,100% 100%;-webkit-background-clip:text;background-clip:text;padding-right:.1em;font-size:2.5em;font-style:italic;font-weight:700;line-height:1;display:block;position:relative}.ng-hero.is-live .ng-hero-ai{opacity:1;animation:1.7s cubic-bezier(.16,1,.3,1) 1s backwards ngHeroCollapse,7s ease-in-out 3.2s infinite ngHeroSheen}@keyframes ngHeroSheen{0%,55%{background-position:130% 0,0 0}to{background-position:-30% 0,0 0}}@keyframes ngHeroCollapse{0%{opacity:0;filter:blur(16px)brightness(1.8);transform:scale(3)rotate(-24deg)}45%{opacity:1}to{opacity:1;filter:drop-shadow(0 0 .04em #a0cdff8c)drop-shadow(0 0 .15em #4d9ee88c)brightness(1.08);transform:scale(1)rotate(0)}}.ng-hero.is-live .ng-hero-core:after{animation:1.2s cubic-bezier(.7,0,.2,1) 1.6s backwards ngHeroGather}@keyframes ngHeroGather{0%{opacity:0;transform:scale(3.4)}25%{opacity:.9}to{opacity:0;transform:scale(.5)}}.ng-hero.is-live .ng-hero-core:before{animation:1.4s 2.3s forwards ngHeroFade,6.4s ease-in-out 2.3s infinite ngHeroBreathe}@keyframes ngHeroBreathe{0%,to{transform:scale(.88)}50%{transform:scale(1.1)}}@keyframes ngHeroFade{to{opacity:1}}.ng-hero .ng-hero-plate{mix-blend-mode:screen;-webkit-mask-image:radial-gradient(58% 76% at 70%,#000 30%,#00000073 66%,#0000 100%);mask-image:radial-gradient(58% 76% at 70%,#000 30%,#00000073 66%,#0000 100%)}.ng-hero .ng-hero-shell{z-index:3;padding-top:clamp(112px,15vh,150px);padding-bottom:clamp(88px,12vh,128px);position:relative}.ng-hero .ng-hero-inner{max-width:820px}.ng-hero .ng-hero-brand{flex-wrap:wrap;align-items:center;gap:14px 22px;display:flex}.ng-hero .ng-hero-lockup{align-items:center;gap:14px;display:inline-flex}.ng-hero .ng-hero-brand-mark{filter:drop-shadow(0 0 14px #4d9ee873);flex:none;width:clamp(34px,3vw,46px);height:auto}.ng-hero .ng-hero-brand-name{letter-spacing:-.01em;white-space:nowrap;color:#fff;text-shadow:0 2px 26px #040810e6;font-size:clamp(1.3rem,1.8vw,1.7rem);font-weight:600;line-height:1.1}.ng-hero .ng-hero-kicker{-webkit-backdrop-filter:blur(8px);font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:#bfdbfecc;white-space:nowrap;background:#0a162873;border:1px solid #93c5fd2e;border-radius:999px;align-items:center;gap:10px;padding:7px 14px 7px 12px;font-size:11px;display:inline-flex}.ng-hero .ng-hero-pulse{background:#38bdf8;border-radius:50%;flex:none;width:6px;height:6px;position:relative;box-shadow:0 0 10px #38bdf8}.ng-hero .ng-hero-pulse:after{content:"";border:1px solid #38bdf899;border-radius:50%;animation:2.4s cubic-bezier(0,0,.2,1) infinite ngHeroPing;position:absolute;inset:-4px}@keyframes ngHeroPing{0%{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(1.9)}}.ng-hero .ng-hero-title{letter-spacing:-.025em;color:#fff;text-shadow:0 2px 30px #040810e6;margin-top:clamp(24px,3.4vh,36px);font-size:clamp(2.3rem,3.7vw,4.1rem);font-weight:700;line-height:1.04}.ng-hero .ng-hero-accent{font-style:italic;font-weight:600;display:block}.ng-hero .ng-hero-accent .ng-word{background:linear-gradient(#e0f2fe 10%,#7dd3fc 95%);color:#0000;text-shadow:none;-webkit-background-clip:text;background-clip:text;padding-right:.06em}.ng-hero .ng-hero-lede{color:#cbe1fac7;text-shadow:0 2px 24px #040810d9;max-width:44ch;margin-top:clamp(20px,2.6vh,28px);font-size:clamp(1.02rem,1.3vw,1.2rem);font-weight:300;line-height:1.6}.ng-hero .ng-word{opacity:0;display:inline-block;transform:translateY(14px)}.ng-hero.is-live .ng-word{animation:.8s cubic-bezier(.2,.7,.2,1) forwards ngHeroWord;animation-delay:calc(.1s + var(--i,0) * 32ms)}@keyframes ngHeroWord{to{opacity:1;transform:translateY(0)}}.ng-hero .ng-hero-actions{opacity:0;flex-wrap:wrap;gap:12px;margin-top:clamp(30px,4vh,40px);display:flex;transform:translateY(12px)}.ng-hero.is-live .ng-hero-actions{animation:.9s cubic-bezier(.2,.7,.2,1) .85s forwards ngHeroWord}.ng-btn{letter-spacing:.005em;white-space:nowrap;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:10px;height:50px;font-size:14.5px;font-weight:600;text-decoration:none;transition:background-color .3s,border-color .3s,box-shadow .3s,transform .3s,color .3s;display:inline-flex}.ng-root .ng-btn{padding:0 26px}.ng-btn svg{transition:transform .3s}.ng-btn:hover svg{transform:translate(3px)}.ng-btn:focus-visible{outline-offset:3px;outline:2px solid #7dd3fc}.ng-btn-primary{color:#06101d;background:#fff;border:1px solid #fff;box-shadow:0 10px 40px -12px #7dd3fc8c}.ng-btn-primary:hover{background:#e0f2fe;transform:translateY(-1px);box-shadow:0 14px 50px -10px #7dd3fcbf}.ng-btn-ghost{color:#fff;-webkit-backdrop-filter:blur(8px);background:#ffffff0a;border:1px solid #ffffff2e}.ng-btn-ghost:hover{background:#7dd3fc14;border-color:#7dd3fc8c}.ng-hero .ng-hero-stats{opacity:0;grid-template-columns:repeat(4,auto);justify-content:start;margin-top:clamp(40px,6vh,64px);display:grid}.ng-hero.is-live .ng-hero-stats{animation:1s 1.05s forwards ngHeroFade}.ng-hero .ng-hero-stat{flex-direction:column-reverse;gap:6px;padding:2px 28px 2px 0;display:flex}.ng-hero .ng-hero-stat+.ng-hero-stat{border-left:1px solid #ffffff1a;padding-left:28px}.ng-hero .ng-hero-stat dd{color:#fff;font-size:clamp(1.7rem,2.3vw,2.25rem);font-weight:700;line-height:1}.ng-hero .ng-hero-stat dt{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;color:#bfdbfe80;font-size:10px}.ng-hero .ng-hero-stage{z-index:3;top:0;bottom:0;left:calc((100% - var(--ng-stage)) / 2);width:var(--ng-stage);pointer-events:none;position:absolute}.ng-hero .ng-hero-tagline{pointer-events:auto;text-align:center;letter-spacing:-.01em;color:#ffffffeb;text-shadow:0 2px 26px #040810f2;opacity:0;width:max-content;font-size:clamp(1.25rem,1.75vw,1.85rem);font-weight:600;line-height:1.22;position:absolute;top:79%;left:71%;transform:translate(-50%)}.ng-hero .ng-hero-tagline:before{content:"";background:linear-gradient(90deg,#0000,#7dd3fccc,#0000);width:56px;height:1px;margin:0 auto 16px;display:block}.ng-hero .ng-hero-tagline em{background:linear-gradient(#e0f2fe 10%,#7dd3fc 95%);color:#0000;text-shadow:none;-webkit-background-clip:text;background-clip:text;padding-right:.06em;font-style:italic}.ng-hero.is-live .ng-hero-tagline{animation:1.2s cubic-bezier(.2,.7,.2,1) 2.1s forwards ngHeroRise}@keyframes ngHeroRise{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.ng-hero .ng-hero-scroll{z-index:4;font-family:var(--font-mono);letter-spacing:.3em;text-transform:uppercase;color:#bfdbfe73;opacity:0;flex-direction:column;align-items:center;gap:4px;font-size:9.5px;text-decoration:none;transition:color .3s;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.ng-hero .ng-hero-scroll:hover{color:#fff}.ng-hero.is-live .ng-hero-scroll{animation:1s 2s forwards ngHeroFade}.ng-hero .ng-hero-scroll svg{animation:2.2s ease-in-out infinite ngHeroNudge}@keyframes ngHeroNudge{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}@media (max-width:1023px){.ng-hero{justify-content:flex-start;min-height:0}.ng-hero .ng-hero-void{height:clamp(300px,78vw,500px);top:56px;bottom:auto}.ng-hero .ng-hero-plate{-webkit-mask-image:radial-gradient(72% 60% at 50% 46%,#000 34%,#00000073 68%,#0000 100%);mask-image:radial-gradient(72% 60% at 50% 46%,#000 34%,#00000073 68%,#0000 100%)}.ng-hero .ng-hero-core{--ng-hole-r:calc(clamp(300px, 78vw, 500px) * .09);font-size:clamp(18px, calc(var(--ng-hole-r) * .5), 40px)}.ng-hero .ng-hero-tagline{font-size:clamp(1.1rem,4.6vw,1.6rem);top:calc(56px + clamp(300px,78vw,500px)/1.28205);left:50%}.ng-hero .ng-hero-shell{padding-top:calc(56px + clamp(300px,78vw,500px)/1.28205 + clamp(96px,22vw,124px));padding-bottom:88px}.ng-hero .ng-hero-inner{max-width:680px}}@media (max-width:640px){.ng-hero .ng-hero-kicker{letter-spacing:.14em;font-size:10px}.ng-hero .ng-hero-actions .ng-btn{flex:100%}.ng-hero .ng-hero-stats{grid-template-columns:repeat(2,1fr);row-gap:24px}.ng-hero .ng-hero-stat:nth-child(3){border-left:0;padding-left:0}.ng-hero .ng-hero-scroll{display:none}}@media (max-width:400px){.ng-hero .ng-hero-title{font-size:2rem}.ng-hero .ng-hero-kicker{letter-spacing:.08em;font-size:9.5px}}@media (max-width:359px){.ng-hero .ng-hero-kicker{white-space:normal;border-radius:14px}}.ng-home-section{z-index:10;width:100%;scroll-margin-top:96px;position:relative}.ng-home-eyebrow{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:#7dd3fccc;align-items:center;gap:12px;font-size:11px;display:inline-flex}.ng-home-eyebrow:before{content:"";background:linear-gradient(90deg,#7dd3fccc,#0000);width:28px;height:1px}.ng-home-heading{letter-spacing:-.02em;color:#fff;font-size:clamp(1.9rem,3.2vw,3rem);font-weight:700;line-height:1.1}.ng-root .ng-home-heading{margin-top:18px}.ng-home-heading em{color:#bae6fd;font-weight:600}.ng-home-blurb{color:#ffffff8c;max-width:52ch;font-size:15.5px;font-weight:300;line-height:1.7}.ng-clients .ng-clients-head{align-items:center;gap:20px;display:flex}.ng-clients .ng-clients-head p{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:#ffffff73;flex:none;font-size:10.5px}.ng-clients .ng-clients-head span{background:linear-gradient(90deg,#ffffff1f,#0000);flex:1;height:1px}.ng-clients .ng-clients-marquee{margin-top:26px;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.ng-clients-track{will-change:transform;width:max-content;animation:52s linear infinite ngClientsScroll;display:flex}.ng-clients-marquee:hover .ng-clients-track,.ng-clients-marquee:focus-within .ng-clients-track{animation-play-state:paused}@keyframes ngClientsScroll{to{transform:translate(-50%)}}.ng-clients .ng-client{background:#ffffff06;border:1px solid #ffffff12;border-radius:16px;align-items:center;gap:14px;margin-right:14px;padding:12px 22px 12px 12px;text-decoration:none;transition:border-color .3s,background-color .3s,transform .3s;display:flex}.ng-clients .ng-client:hover,.ng-clients .ng-client:focus-visible{background:#7dd3fc0f;border-color:#7dd3fc59;outline:none;transform:translateY(-2px)}.ng-client-logo{background:#fff;border-radius:10px;flex:none;width:44px;height:44px;overflow:hidden;box-shadow:0 0 0 1px #ffffff14}.ng-client-logo img{object-fit:cover;filter:grayscale(.35)saturate(.85);width:100%;height:100%;transition:filter .35s}.ng-client:hover .ng-client-logo img,.ng-client:focus-visible .ng-client-logo img{filter:none}.ng-client-name{color:#ffffffe0;white-space:nowrap;font-size:14px;display:block}.ng-client-sector{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:#fff6;white-space:nowrap;font-size:9.5px;display:block}.ng-clients .ng-client-sector{margin-top:4px}.ng-process{grid-template-columns:repeat(4,1fr);gap:28px;display:grid;position:relative}.ng-home-section .ng-process{margin-top:60px}.ng-process-rail{transform-origin:0;background:linear-gradient(90deg,#7dd3fcb3,#7dd3fc40 70%,#0000);height:1px;position:absolute;top:22px;left:22px;right:0}.ng-process-step{position:relative}.ng-process-node{width:44px;height:44px;font-family:var(--font-mono);color:#bae6fd;background:#07111e;border:1px solid #7dd3fc66;border-radius:50%;place-items:center;font-size:12px;display:grid;position:relative;box-shadow:0 0 0 6px #07111ee6,0 0 24px #4d9ee859}.ng-process-step h3{color:#fff;font-size:20px;font-weight:600}.ng-home-section .ng-process-step h3{margin-top:26px}.ng-process-step p{color:#ffffff8c;font-size:14px;font-weight:300;line-height:1.7}.ng-home-section .ng-process-step p{margin-top:10px}.ng-process-deliverable{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:#bfdbfeb3;background:#ffffff08;border:1px solid #ffffff14;border-radius:999px;align-items:center;gap:8px;font-size:10px;display:inline-flex}.ng-home-section .ng-process-deliverable{margin-top:18px;padding:6px 12px}.ng-process-deliverable:before{content:"";background:#38bdf8;border-radius:50%;width:5px;height:5px}@media (max-width:1023px){.ng-process{grid-template-columns:repeat(2,1fr);row-gap:44px}.ng-process-rail{display:none}}@media (max-width:640px){.ng-process{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.ng-hero .ng-word,.ng-hero .ng-hero-actions,.ng-hero .ng-hero-stats,.ng-hero .ng-hero-scroll,.ng-hero .ng-hero-ai,.ng-hero .ng-hero-core:before{opacity:1;transform:none;animation:none!important}.ng-hero .ng-hero-tagline{opacity:1;animation:none!important}.ng-hero .ng-hero-core:after,.ng-hero .ng-hero-pulse:after,.ng-hero .ng-hero-scroll svg{animation:none!important}.ng-clients .ng-clients-marquee{-webkit-mask-image:none;mask-image:none}.ng-clients-track{flex-wrap:wrap;row-gap:14px;width:auto;animation:none}.ng-clients-track>[data-clone]{display:none}}
