.grainient-container{width:100%;height:100%;position:relative;overflow:hidden}
.specular-button{--sb-radius:18px;--sb-tint:#fff;--sb-tint-opacity:0;--sb-blur:0px;--sb-text-color:#f5f5f5;letter-spacing:.01em;color:var(--sb-text-color);background:color-mix(in srgb, var(--sb-tint) calc(var(--sb-tint-opacity) * 100%), transparent);border-radius:var(--sb-radius);-webkit-backdrop-filter:blur(var(--sb-blur));cursor:pointer;border:none;outline:none;justify-content:center;align-items:center;margin:0;font-family:inherit;font-weight:500;line-height:1;transition:transform .15s;display:inline-flex;position:relative;box-shadow:inset 0 1px #ffffff0a,0 8px 24px #00000040}.specular-button:active{transform:scale(.97)}.specular-button:focus-visible{outline:2px solid color-mix(in srgb, var(--sb-text-color) 60%, transparent);outline-offset:3px}.specular-button:disabled{opacity:.55;cursor:default}.specular-button:disabled:active{transform:none}.specular-button--sm{padding:10px 22px;font-size:.85rem}.specular-button--md{padding:14px 30px;font-size:1rem}.specular-button--lg{padding:18px 40px;font-size:1.15rem}.specular-button__fx{pointer-events:none;z-index:1;position:absolute;inset:-20px}.specular-button__fx canvas{width:100%;height:100%;display:block}.specular-button__label{z-index:2;position:relative}
.text-type{white-space:pre-wrap;display:inline-block;position:relative}.text-type__sr{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-type__char{position:relative}.text-type__char--selected{background-color:color-mix(in srgb, currentColor 25%, transparent)}.text-type__caret{width:0;display:inline-block}.text-type__cursor{white-space:pre;pointer-events:none;will-change:transform;transition:opacity .2s;position:absolute;top:0;left:0}.text-type__cursor--hidden{opacity:0}.text-type__blink{display:inline-block}.text-type__cursor--character .text-type__blink{margin-left:.25rem}.text-type__shape{background-color:currentColor;margin-left:.06em;display:inline-block}.text-type__cursor--bar .text-type__shape{vertical-align:-.2em;border-radius:1px;width:max(2px,.07em);height:1.1em}.text-type__cursor--block .text-type__shape{vertical-align:-.2em;border-radius:.06em;width:.56em;height:1.1em}.text-type__cursor--underscore .text-type__shape{vertical-align:-.12em;border-radius:1px;width:.56em;height:max(2px,.075em)}
.card-spotlight{--mouse-x:50%;--mouse-y:50%;--spotlight-color:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#1111118f;border:1px solid #22222291;border-radius:1.5rem;padding:2rem;position:relative;overflow:hidden}.card-spotlight:before{content:"";background:radial-gradient(circle at var(--mouse-x) var(--mouse-y), var(--spotlight-color), transparent 80%);opacity:0;pointer-events:none;transition:opacity .5s;position:absolute;inset:0}.card-spotlight:hover:before,.card-spotlight:focus-within:before{opacity:.6}
.scroll-reveal{margin:0}.scroll-reveal-text{margin:0;font-weight:600;line-height:1.3}.scroll-reveal-text .word{will-change:opacity, filter;display:inline-block}
.tech-frame__ring{transform-box:fill-box;transform-origin:50%;animation:60s linear infinite tech-frame-spin}@keyframes tech-frame-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.tech-frame__ring,.tech-frame__scan{animation:none}}
.glitch-img{isolation:isolate;--gi-color-a:#e41417;--gi-color-b:#00e5ff;position:absolute;inset:0;overflow:hidden}.glitch-img__stage{opacity:var(--gi-alpha,1);filter:brightness(var(--gi-flash,1));isolation:isolate;position:absolute;inset:0}.glitch-img__layer{position:absolute;inset:0}.glitch-img--tint .glitch-img__base img{filter:grayscale()contrast(1.1)brightness(.78)}.glitch-img__tint{background:var(--color-ember,#e41417);opacity:0;mix-blend-mode:color;pointer-events:none;position:absolute;inset:0}.glitch-img--tint .glitch-img__tint{opacity:.5}.glitch-img__rgb{mix-blend-mode:screen;opacity:var(--gi-split,0);pointer-events:none}.glitch-img__rgb--r{transform:translate3d(var(--gi-r-x,0px), var(--gi-r-y,0px), 0)}.glitch-img__rgb--c{transform:translate3d(var(--gi-c-x,0px), var(--gi-c-y,0px), 0)}.glitch-img__rgb--r img{filter:grayscale()contrast(1.1)brightness(.9)url(#gi-red)}.glitch-img__rgb--c img{filter:grayscale()contrast(1.1)brightness(.9)url(#gi-cyan)}.glitch-img__slice{pointer-events:none;opacity:var(--gi-on,0);position:absolute;inset:0}.glitch-img__slice--a{clip-path:inset(var(--gi-a-top,0%) 0 var(--gi-a-bottom,100%) 0)}.glitch-img__slice--b{clip-path:inset(var(--gi-b-top,0%) 0 var(--gi-b-bottom,100%) 0)}.glitch-img__slice-inner{transform-origin:0;position:absolute;inset:0}.glitch-img__slice--a .glitch-img__slice-inner{transform:translate3d(var(--gi-a-x,0px), var(--gi-a-y,0px), 0) skewX(var(--gi-skew,0deg)) scale(1.06)}.glitch-img__slice--b .glitch-img__slice-inner{transform:translate3d(var(--gi-b-x,0px), var(--gi-b-y,0px), 0) skewX(var(--gi-skew,0deg)) scale(1.06)}.glitch-img__slice--a img{filter:grayscale()contrast(1.25)brightness(1.15)}.glitch-img__slice--b img{filter:grayscale()contrast(1.2)brightness()sepia()saturate(5)hue-rotate(-50deg)}.glitch-img__edge{pointer-events:none;height:1px;opacity:var(--gi-on,0);position:absolute;left:0;right:0}.glitch-img__edge--a-top,.glitch-img__edge--a-bottom{background:var(--gi-color-a);box-shadow:0 0 8px var(--gi-color-a)}.glitch-img__edge--b-top,.glitch-img__edge--b-bottom{background:var(--gi-color-b);box-shadow:0 0 8px var(--gi-color-b)}.glitch-img__edge--a-top{top:var(--gi-a-top,0%)}.glitch-img__edge--a-bottom{bottom:var(--gi-a-bottom,100%)}.glitch-img__edge--b-top{top:var(--gi-b-top,0%)}.glitch-img__edge--b-bottom{bottom:var(--gi-b-bottom,100%)}.glitch-img__noise{pointer-events:none;opacity:var(--gi-noise,0);mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.glitch-img__stage{filter:none}}
.glitch{--glitch-mask-a:linear-gradient(#000 var(--glitch-a-top,0%), transparent var(--glitch-a-top,0%), transparent calc(100% - var(--glitch-a-bottom,100%)), #000 calc(100% - var(--glitch-a-bottom,100%)));--glitch-mask-b:linear-gradient(#000 var(--glitch-b-top,0%), transparent var(--glitch-b-top,0%), transparent calc(100% - var(--glitch-b-bottom,100%)), #000 calc(100% - var(--glitch-b-bottom,100%)));white-space:nowrap;-webkit-user-select:none;user-select:none;cursor:pointer;margin:0 auto;font-size:clamp(2rem,10vw,8rem);font-weight:900;position:relative}.glitch__text{opacity:var(--glitch-alpha,1);transform:skewX(var(--glitch-skew,0deg));transform-origin:0;-webkit-mask-image:var(--glitch-mask-a), var(--glitch-mask-b);-webkit-mask-image:var(--glitch-mask-a), var(--glitch-mask-b);mask-image:var(--glitch-mask-a), var(--glitch-mask-b);-webkit-mask-composite:source-in;display:block;-webkit-mask-composite:source-in;mask-composite:intersect}.glitch__slice{pointer-events:none;opacity:var(--glitch-alpha,1);transform-origin:0;position:absolute;top:0;left:0;overflow:hidden}.glitch__slice--a{text-shadow:var(--glitch-a-shadow,none);clip-path:inset(var(--glitch-a-top,0%) 0 var(--glitch-a-bottom,100%) 0);transform:translate3d(var(--glitch-a-x,0px), var(--glitch-a-y,0px), 0) skewX(var(--glitch-skew,0deg))}.glitch__slice--b{text-shadow:var(--glitch-b-shadow,none);clip-path:inset(var(--glitch-b-top,0%) 0 var(--glitch-b-bottom,100%) 0);transform:translate3d(var(--glitch-b-x,0px), var(--glitch-b-y,0px), 0) skewX(var(--glitch-skew,0deg));-webkit-mask-image:var(--glitch-mask-a);-webkit-mask-image:var(--glitch-mask-a);mask-image:var(--glitch-mask-a)}.glitch--rgb .glitch__text{z-index:1;position:relative;-webkit-mask-image:none;mask-image:none}.glitch--rgb .glitch__slice{clip-path:none;text-shadow:none;opacity:calc(var(--glitch-alpha,1) * var(--glitch-split,0));-webkit-mask-image:none;mask-image:none}.glitch--rgb .glitch__slice--a{color:var(--glitch-color-a,currentColor)}.glitch--rgb .glitch__slice--b{color:var(--glitch-color-b,currentColor)}.glitch--noise .glitch__slice{display:none}.glitch__char{position:relative}.glitch__char[data-glyph]{visibility:hidden}.glitch__char:after{content:attr(data-glyph);visibility:visible;text-align:center;color:var(--glitch-glyph,currentColor);position:absolute;top:0;left:0;right:0;overflow:hidden}.glitch__sr{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
.shiny-text{display:inline-block}
.logoloop{--logoloop-gap:32px;--logoloop-logoHeight:28px;--logoloop-pad:0px;padding-top:var(--logoloop-pad);padding-bottom:var(--logoloop-pad);-webkit-tap-highlight-color:transparent;color:#c4c4cc7a;position:relative;overflow:clip}.logoloop--vertical{height:100%;padding:0 var(--logoloop-pad);display:inline-block}.logoloop[data-draggable]{cursor:grab;touch-action:pan-y pinch-zoom}.logoloop--vertical[data-draggable]{touch-action:pan-x pinch-zoom}.logoloop[data-dragging],.logoloop[data-dragging] *{cursor:grabbing}.logoloop__track{z-index:0;will-change:transform;-webkit-user-select:none;user-select:none;width:max-content;display:flex;position:relative}.logoloop--vertical .logoloop__track{flex-direction:column;width:100%;height:max-content}.logoloop__list{align-items:center;margin:0;padding:0;list-style:none;display:flex}.logoloop--vertical .logoloop__list{flex-direction:column}.logoloop__item{margin-right:var(--logoloop-gap);font-size:var(--logoloop-logoHeight);flex:none;line-height:1;position:relative}.logoloop--vertical .logoloop__item{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop[data-intro] .logoloop__item{opacity:0}.logoloop__content{align-items:center;gap:calc(var(--logoloop-logoHeight) * .3);color:inherit;border-radius:4px;text-decoration:none;transition:opacity .35s,filter .35s,color .35s;display:inline-flex}.logoloop[data-labels=below] .logoloop__content{gap:calc(var(--logoloop-logoHeight) * .22);flex-direction:column}.logoloop__content:focus-visible{outline-offset:2px;outline:2px solid}.logoloop__node{align-items:center;display:inline-flex}.logoloop__item img{width:auto;height:var(--logoloop-logoHeight);object-fit:contain;image-rendering:-webkit-optimize-contrast;-webkit-user-drag:none;pointer-events:none;display:block}.logoloop__node,.logoloop__item img{transition:transform .3s cubic-bezier(.4,0,.2,1)}.logoloop--scale-hover .logoloop__item:hover img,.logoloop--scale-hover .logoloop__item:hover .logoloop__node{transform:scale(1.2)}.logoloop__label{font-size:max(12px, calc(var(--logoloop-logoHeight) * .5));letter-spacing:-.01em;white-space:nowrap;font-weight:600;line-height:1.2}.logoloop[data-labels=below] .logoloop__label{font-size:max(11px, calc(var(--logoloop-logoHeight) * .26));letter-spacing:0;opacity:.72;font-weight:500}.logoloop__tip{margin-top:calc(var(--logoloop-logoHeight) * .2);font-size:max(11px, calc(var(--logoloop-logoHeight) * .26));white-space:nowrap;opacity:0;pointer-events:none;font-weight:500;line-height:1.2;transition:opacity .25s,translate .25s;position:absolute;top:100%;left:50%;translate:-50% 4px}.logoloop--vertical .logoloop__tip{margin-top:0;margin-left:calc(var(--logoloop-logoHeight) * .25);top:50%;left:100%;translate:4px -50%}.logoloop__item:hover .logoloop__tip,.logoloop__item:focus-within .logoloop__tip,.logoloop__item[data-active] .logoloop__tip{opacity:.8;translate:-50%}.logoloop--vertical .logoloop__item:hover .logoloop__tip,.logoloop--vertical .logoloop__item:focus-within .logoloop__tip,.logoloop--vertical .logoloop__item[data-active] .logoloop__tip{translate:0 -50%}.logoloop[data-muted] .logoloop__content{filter:grayscale(var(--logoloop-gray,1));opacity:var(--logoloop-dim,.5)}.logoloop[data-muted] .logoloop__item:hover .logoloop__content,.logoloop[data-muted] .logoloop__item:focus-within .logoloop__content,.logoloop[data-muted] .logoloop__item[data-active] .logoloop__content{filter:none;opacity:1}.logoloop__item[data-color]:hover .logoloop__content,.logoloop__item[data-color]:focus-within .logoloop__content,.logoloop__item[data-color][data-active] .logoloop__content{color:var(--logoloop-item-color)}.logoloop:not([data-muted]) .logoloop__item:not([data-color]) a.logoloop__content:hover{opacity:.8}@media (prefers-reduced-motion:reduce){.logoloop__content,.logoloop__node,.logoloop__item img,.logoloop__tip{transition:none}}
.showcase-detail>*{animation:.65s cubic-bezier(.2,.8,.2,1) both showcase-in;animation-delay:calc(var(--i,0) * 70ms)}@keyframes showcase-in{0%{opacity:0;filter:blur(4px);transform:translateY(14px)}to{opacity:1;filter:none;transform:none}}@media (prefers-reduced-motion:reduce){.showcase-detail>*{animation:none}}
.contact-check__ring{stroke-dasharray:164;stroke-dashoffset:164px;animation:.8s forwards contact-draw}.contact-check__tick{stroke-dasharray:40;stroke-dashoffset:40px;animation:.5s .55s forwards contact-draw}@keyframes contact-draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.contact-check__ring,.contact-check__tick{stroke-dashoffset:0;animation:none}}
@keyframes process-ping{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(2.8)}}
