.tech-signal{will-change:transform, opacity;animation-timing-function:linear;animation-iteration-count:infinite;animation-play-state:running}[data-active=false] .tech-signal{opacity:0!important;animation-play-state:paused!important}.tech-signal-horizontal{background:linear-gradient(90deg,#0000 0%,#0bb0e605 8%,#0bb0e60f 25%,#0bb0e61f 48%,#0bb0e64d 70%,#0bb0e6a6 91%,#6adeff 98%,#0000 100%)}.tech-signal-horizontal:after{content:"";background:#8be6ff;border-radius:1px;width:4px;height:3px;position:absolute;top:50%;right:0;transform:translateY(-50%)}.tech-signal-horizontal[data-direction=right]{animation-name:signal-horizontal-right}.tech-signal-horizontal[data-direction=left]{background:linear-gradient(270deg,#0000 0%,#0bb0e605 8%,#0bb0e60f 25%,#0bb0e61f 48%,#0bb0e64d 70%,#0bb0e6a6 91%,#6adeff 98%,#0000 100%);animation-name:signal-horizontal-left}.tech-signal-horizontal[data-direction=left]:after{left:0;right:auto}@keyframes signal-horizontal-right{0%{opacity:0;transform:translate(-600px)}4%{opacity:0}9%{opacity:.5}86%{opacity:.5}96%{opacity:0}to{opacity:0;transform:translate(calc(100vw + 600px))}}@keyframes signal-horizontal-left{0%{opacity:0;transform:translate(calc(100vw + 600px))}4%{opacity:0}9%{opacity:.45}86%{opacity:.45}96%{opacity:0}to{opacity:0;transform:translate(-600px)}}.tech-signal-vertical{background:linear-gradient(#0000 0%,#0bb0e605 8%,#0bb0e60f 25%,#0bb0e61f 48%,#0bb0e647 70%,#0bb0e699 91%,#6adeff 98%,#0000 100%)}.tech-signal-vertical:after{content:"";background:#8be6ff;border-radius:1px;width:3px;height:4px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.tech-signal-vertical[data-direction=down]{animation-name:signal-vertical-down}.tech-signal-vertical[data-direction=up]{background:linear-gradient(#0000 0%,#6adeff 2%,#0bb0e699 9%,#0bb0e647 30%,#0bb0e61f 52%,#0bb0e60f 75%,#0bb0e605 92%,#0000 100%);animation-name:signal-vertical-up}.tech-signal-vertical[data-direction=up]:after{top:0;bottom:auto}@keyframes signal-vertical-down{0%{opacity:0;transform:translateY(-500px)}5%{opacity:0}10%{opacity:.34}86%{opacity:.34}96%{opacity:0}to{opacity:0;transform:translateY(calc(100vh + 500px))}}@keyframes signal-vertical-up{0%{opacity:0;transform:translateY(calc(100vh + 500px))}5%{opacity:0}10%{opacity:.3}86%{opacity:.3}96%{opacity:0}to{opacity:0;transform:translateY(-500px)}}@media (prefers-reduced-motion:reduce){.tech-signal{display:none}}
.portfolio-section{--portfolio-bg-opacity:.3;isolation:isolate;scroll-margin-top:6rem;position:relative;overflow:hidden}.portfolio-section .portfolio-background{z-index:0;opacity:var(--portfolio-bg-opacity);pointer-events:none;background-image:url(/portfolio.webp);background-position:50%;background-size:cover;background-attachment:fixed;position:absolute;inset:0}.portfolio-section .portfolio-background:after{content:"";background:radial-gradient(circle at 50% 38%,#0000 10%,#0000001f 58%,#0000007a 100%),linear-gradient(#02040a2e,#02040a80);position:absolute;inset:0}.portfolio-section .portfolio-content{z-index:1;position:relative}.portfolioExperience{--portfolio-accent:#0bb0e6;--portfolio-accent-soft:#73dcff;--portfolio-ink:#151518;--portfolio-space-top:clamp(18px, 2.5vh, 30px);--portfolio-space-bottom:clamp(18px, 2.5vh, 30px);--portfolio-title-gap:clamp(18px, 2.4vh, 28px);isolation:isolate;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;height:90vh;padding:var(--portfolio-space-top) 0 var(--portfolio-space-bottom);background:0 0;flex-direction:column;display:flex;position:relative;overflow:hidden}.portfolioExperience *,.portfolioExperience :before,.portfolioExperience :after{box-sizing:border-box}.portfolioExperience button{-webkit-tap-highlight-color:transparent}.portfolioExperience button:focus-visible{outline-offset:6px;outline:2px solid #d5f69c}.portfolioExperience #stage{z-index:1;touch-action:pan-y;position:absolute;inset:0}.portfolioExperience canvas{width:100%;height:100%;display:block}.portfolioExperience .portfolio-eyebrow{z-index:3;position:relative}.portfolioExperience .portfolio-title{z-index:3;width:min(90%,900px);margin:0 auto var(--portfolio-title-gap);color:#fff;letter-spacing:-.04em;text-align:center;pointer-events:none;text-shadow:0 2px 20px #000000b8,0 0 38px #5db5ff33;font-size:clamp(26px,3.5vw,52px);font-weight:500;line-height:1.1;position:relative}.portfolioExperience.webgl-ready .portfolio-title{opacity:0}.portfolioExperience .portfolio-annotations{z-index:3;pointer-events:none;position:absolute;inset:0;overflow:hidden}.portfolioExperience .portfolio-annotation{color:#fff;letter-spacing:.025em;text-transform:uppercase;filter:drop-shadow(0 5px 14px #0000008c);align-items:center;font-size:clamp(10px,.75vw,12px);font-weight:700;line-height:1.18;display:flex;position:absolute}.portfolioExperience .portfolio-annotation span{display:block}.portfolioExperience .portfolio-annotation--results{width:clamp(142px,11vw,192px);color:var(--portfolio-accent-soft);animation:5.5s ease-in-out infinite paused portfolio-marker-float;display:block;top:clamp(92px,14vh,138px);left:clamp(22px,4.2vw,80px);transform:rotate(-2deg)}.portfolio-visible .portfolio-annotation--results{animation-play-state:running}.portfolioExperience .portfolio-annotation--results span{color:#fff;letter-spacing:-.01em;text-transform:none;background:linear-gradient(135deg,#31c6effa,#0bb0e6fa);border:1px solid #73dcff80;border-radius:17px 17px 17px 6px;width:clamp(142px,11vw,192px);padding:12px 15px 13px;font-size:clamp(11px,.8vw,13px);line-height:1.16;box-shadow:0 12px 34px #00000061,0 0 26px #0bb0e633,inset 0 1px #ffffff38}@keyframes portfolio-marker-float{0%,to{translate:0}50%{translate:0 -5px}}.portfolioExperience .carousel-shell{z-index:2;flex:1;width:100%;min-height:0;margin:0 auto;position:relative;overflow:hidden}.portfolioExperience #gallery{z-index:1;pointer-events:auto;touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none;position:absolute;inset:0}.portfolioExperience #gallery.dragging{cursor:grabbing}.portfolioExperience .sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.portfolioExperience #error{z-index:10;color:#fff;background:#222;padding:30px;line-height:1.7;position:absolute;inset:35% 10%}.portfolioExperience #error[hidden]{display:none}@media (max-width:700px){.portfolioExperience{--portfolio-space-top:14px;--portfolio-space-bottom:18px;--portfolio-title-gap:10px}.portfolioExperience .portfolio-title{width:min(88%,360px);font-size:28px;line-height:1.08}.portfolioExperience.webgl-ready .portfolio-title{opacity:1}.portfolioExperience .portfolio-annotation--results{display:none}}@media (min-width:701px) and (max-width:1100px){.portfolioExperience .portfolio-annotation--results{opacity:.9;top:112px;left:20px}}@media (prefers-reduced-motion:reduce){.portfolioExperience *{scroll-behavior:auto!important}.portfolioExperience .portfolio-annotation{animation:none}}
.storytelling-bottom-grid{opacity:.82;background-image:linear-gradient(90deg,#0bb0e612 1px,#0000 1px),linear-gradient(#0bb0e612 1px,#0000 1px),linear-gradient(90deg,#0bb0e624 1px,#0000 1px),linear-gradient(#0bb0e624 1px,#0000 1px);background-size:50px 50px,50px 50px,200px 200px,200px 200px;height:52rem;-webkit-mask-image:linear-gradient(#0000 0%,#00000040 16%,#000 45% 100%);mask-image:linear-gradient(#0000 0%,#00000040 16%,#000 45% 100%)}@media (max-width:639px){.story-section-title{letter-spacing:-.045em;text-wrap:balance;width:min(100%,360px);margin-left:auto;margin-right:auto;text-align:center!important;font-size:30px!important;line-height:1.06!important}.story-section-copy{text-wrap:pretty;width:min(100%,340px);text-align:center!important;margin-left:auto!important;margin-right:auto!important;font-size:14px!important;line-height:1.7!important}}@media (min-width:768px){.storytelling-bottom-grid{height:46rem}}.story-transform-center{position:relative}.story-transform-track{background:#ffffff14;width:1px;position:absolute;top:8px;bottom:8px;left:50%;overflow:visible;transform:translate(-50%)}.story-transform-fill{transform-origin:top;background:linear-gradient(#0bb0e600,#0bb0e6,#0bb0e64d);width:100%;height:100%;animation:3.2s ease-in-out infinite storyFillMobile;position:absolute;top:0;left:0;transform:scaleY(0)}.story-transform-loader{background:#0bb0e6;border-radius:999px;width:6px;height:6px;animation:3.2s ease-in-out infinite storyLoaderMobile;position:absolute;top:0;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 10px #0bb0e6,0 0 22px #0bb0e6b3,0 0 40px #0bb0e659}.story-transform-arrow{animation:3.2s ease-in-out infinite storyArrowPulse;box-shadow:0 0 #0bb0e600}.story-transform-row:hover .story-transform-arrow{border-color:#0bb0e6cc;box-shadow:0 0 30px #0bb0e640}@keyframes storyFillMobile{0%{opacity:.2;transform:scaleY(0)}45%{opacity:1;transform:scaleY(1)}75%{opacity:1;transform:scaleY(1)}to{opacity:0;transform-origin:bottom;transform:scaleY(0)}}@keyframes storyLoaderMobile{0%{opacity:0;top:0%}10%{opacity:1}50%{opacity:1;top:50%}90%{opacity:1}to{opacity:0;top:100%}}@keyframes storyArrowPulse{0%,30%,70%,to{box-shadow:0 0 #0bb0e600}45%,55%{border-color:#0bb0e6cc;box-shadow:0 0 12px #0bb0e673,0 0 32px #0bb0e633}}@media (min-width:1024px){.story-transform-track{width:auto;height:1px;inset:50% 5px auto;transform:translateY(-50%)}.story-transform-fill{transform-origin:0;background:linear-gradient(90deg,#0bb0e600,#0bb0e6,#0bb0e64d);width:100%;height:100%;animation-name:storyFillDesktop;transform:scaleX(0)}.story-transform-loader{animation-name:storyLoaderDesktop;top:50%;left:0;transform:translate(-50%,-50%)}@keyframes storyFillDesktop{0%{opacity:.2;transform-origin:0;transform:scaleX(0)}45%{opacity:1;transform-origin:0;transform:scaleX(1)}75%{opacity:1;transform-origin:0;transform:scaleX(1)}to{opacity:0;transform-origin:100%;transform:scaleX(0)}}@keyframes storyLoaderDesktop{0%{opacity:0;left:0%}10%{opacity:1}50%{opacity:1;left:50%}90%{opacity:1}to{opacity:0;left:100%}}}@media (prefers-reduced-motion:reduce){.story-transform-fill,.story-transform-loader,.story-transform-arrow{animation:none}.story-transform-fill{transform:scaleX(1)}}
:root{--swiper-theme-color:#007aff}:host{z-index:1;margin-left:auto;margin-right:auto;display:block;position:relative}.swiper{z-index:1;margin-left:auto;margin-right:auto;padding:0;list-style:none;display:block;position:relative;overflow:hidden}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{z-index:1;width:100%;height:100%;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box;display:flex;position:relative}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translate(0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;transition-property:transform;display:block;position:relative}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{backface-visibility:hidden;transform:translateZ(0)}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{scrollbar-width:none;-ms-overflow-style:none;overflow:auto}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-slides-offset-before);scroll-margin-inline-start:var(--swiper-slides-offset-before)}.swiper-css-mode.swiper-horizontal>.swiper-wrapper>.swiper-slide:last-child{margin-inline-end:var(--swiper-slides-offset-after)}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-slides-offset-before);scroll-margin-block-start:var(--swiper-slides-offset-before)}.swiper-css-mode.swiper-vertical>.swiper-wrapper>.swiper-slide:last-child{margin-block-end:var(--swiper-slides-offset-after)}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{pointer-events:none;z-index:10;width:100%;height:100%;position:absolute;top:0;left:0}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(270deg,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(90deg,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(#0000,#00000080)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(#00000080,#0000)}.swiper-lazy-preloader{z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-top-color:#0000;border-radius:50%;width:42px;height:42px;margin-top:-21px;margin-left:-21px;position:absolute;top:50%;left:50%}:is(.swiper:not(.swiper-watch-progress),.swiper-watch-progress .swiper-slide-visible) .swiper-lazy-preloader{animation:1s linear infinite swiper-preloader-spin}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
:root{--swiper-navigation-size:44px}.swiper-button-prev,.swiper-button-next{width:var(--swiper-navigation-size);height:var(--swiper-navigation-size);z-index:10;cursor:pointer;color:var(--swiper-navigation-color,var(--swiper-theme-color));justify-content:center;align-items:center;display:flex;position:absolute}:is(.swiper-button-prev,.swiper-button-next).swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}:is(.swiper-button-prev,.swiper-button-next).swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled :is(.swiper-button-prev,.swiper-button-next){display:none!important}:is(.swiper-button-prev,.swiper-button-next) ::slotted(svg),:is(.swiper-button-prev,.swiper-button-next) svg{object-fit:contain;transform-origin:50%;fill:currentColor;pointer-events:none;width:100%;height:100%}.swiper-button-lock{display:none}.swiper-button-prev,.swiper-button-next{top:var(--swiper-navigation-top-offset,50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2))}.swiper-button-prev{left:var(--swiper-navigation-sides-offset,4px);right:auto}.swiper-button-prev ::slotted(.swiper-navigation-icon),.swiper-button-prev .swiper-navigation-icon{transform:rotate(180deg)}.swiper-button-next{right:var(--swiper-navigation-sides-offset,4px);left:auto}.swiper-horizontal .swiper-button-prev,.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal~.swiper-button-next{top:var(--swiper-navigation-top-offset,50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2));margin-left:0}.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next{left:var(--swiper-navigation-sides-offset,4px);right:auto}.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-next,.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev{right:var(--swiper-navigation-sides-offset,4px);left:auto}:is(.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next) ::slotted(.swiper-navigation-icon),:is(.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next) .swiper-navigation-icon{transform:rotate(180deg)}:is(.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev) ::slotted(.swiper-navigation-icon),:is(.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev) .swiper-navigation-icon{transform:rotate(0)}.swiper-vertical .swiper-button-prev,.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-prev,.swiper-vertical~.swiper-button-next{left:var(--swiper-navigation-top-offset,50%);margin-left:calc(0px - (var(--swiper-navigation-size) / 2));margin-top:0;right:auto}.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev{top:var(--swiper-navigation-sides-offset,4px);bottom:auto}:is(.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev) ::slotted(.swiper-navigation-icon),:is(.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev) .swiper-navigation-icon{transform:rotate(-90deg)}.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next{bottom:var(--swiper-navigation-sides-offset,4px);top:auto}:is(.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next) ::slotted(.swiper-navigation-icon),:is(.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next) .swiper-navigation-icon{transform:rotate(90deg)}
