@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans Fallback;src:local(Arial);ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.0%;size-adjust:104.98%}.plus_jakarta_sans_d35931e2-module__rE8mpW__className{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.plus_jakarta_sans_d35931e2-module__rE8mpW__variable{--font-plusJakartaSans:"Plus Jakarta Sans", "Plus Jakarta Sans Fallback"}
:root{--space:24px;--space-sm:12px;--space-lg:48px;--maxWidth:100%;--contentInset:clamp(18px, 4vw, 64px);--borderRadius:6px;--circle:999px;--font:var(--font-plusJakartaSans), "Plus Jakarta Sans", Helvetica, Arial, sans-serif;--navy_rgb:4, 57, 123;--navy:rgba(var(--navy_rgb), 1);--light_font_muted:#001324;--blue_navy:#214d87;--blue_navy_muted:white;--logoLetterDropShadow:drop-shadow(2px 4px 8px var(--navy));--logoLetterDropShadowLight:drop-shadow(1px 2px 4px rgba(var(--navy_rgb), .5));--navy-deep:#041b44;--navy-dark:#00091b;--piratechs:#2b4261;--piratechsNeon_rgb:0, 191, 255;--piratechsTeal_rgb:19, 222, 185;--piratechsNeon:rgba(var(--piratechsNeon_rgb), 1);--piratechsTeal:rgba(var(--piratechsTeal_rgb), 1);--neon_badge_font_color:var(--blue_navy_muted);--navBar:#064486;--navBarDeep:#04397b;--white:#fff;--white-soft:#f8fafc;--white-smoke:#e2e8f0;--silver:#aab4c3;--soft_silver:#aaa;--black:#020711;--miniStat_rgb:1, 30, 66;--miniStat:rgba(var(--miniStat_rgb), 1);--blackGlass:#000000b8;--darkGlass:#00bfff1f;--panelGlass:#051531c7;--foreground:var(--white);--foregroundMuted:#fff;--background:var(--navy);--backgroundDeep:var(--navy-dark);--surface:#041b44d6;--surfaceStrong:#00091be0;--border:#00bfff38;--main:var(--piratechsNeon);--links:var(--piratechsNeon);--active_blue:#0082c6;--track:var(--main_gradient_dark_reversed);--scrollbarTrack:var(--track);--scrollbarCorner:var(--track);--scrollbarThumbColor:var(--main);--scrollbarThumb:var(--main_gradient);--circuit:#00bfff47;--circuitSoft:#13deb929;--heroCircuitTrack:var(--main);--heroCircuitStrong:var(--main);--heroCircuitPulse:var(--main);--heroCircuitPulseAlt:var(--main);--heroCircuitNode:var(--main);--heroCircuitOpacity:.4;--tech-admin:#ff3860;--tech-angular:#dd0031;--tech-api:#00bfff;--tech-auth:#13deb9;--tech-csharp:#9b4f96;--tech-css:#1572b6;--tech-data:#00bfff;--tech-design:#a855f7;--tech-firebase:#ffca28;--tech-github:#fff;--tech-html:#e34f26;--tech-javascript:#f7df1e;--tech-json:#f5de19;--tech-maps:#4285f4;--tech-motion:#ff0080;--tech-mysql:#00758f;--tech-next:#fff;--tech-php:#777bb4;--tech-pwa:#5a0fc8;--tech-python:#3776ab;--tech-react:#61dafb;--tech-sass:#c69;--tech-shopify:#95bf47;--tech-sql:#f29111;--tech-typescript:#3178c6;--tech-unity:#fff;--tech-wordpress:#21759b;--light_teal:#ccebf9;--deep_red_rgb:180, 0, 0;--deep_red:rgba(var(--deep_red_rgb), 1);--yellow_neon_rgb:255, 230, 0;--yellow_neon:rgba(var(--yellow_neon_rgb), 1);--success_dark_rgb:13, 159, 65;--success_dark:rgba(var(--success_dark_rgb), 1);--primary:var(--main);--error:var(--deep_red);--active:var(--active_blue);--warning:var(--yellow_neon);--success:var(--success_dark);--disabled:var(--soft_silver);--shadow:0 2px 16px #00091b40;--main_gradient_angle:135deg;--main_gradient_dark:linear-gradient(var(--main_gradient_angle), var(--main), var(--navy));--main_gradient:linear-gradient(var(--main_gradient_angle), var(--piratechsNeon), var(--piratechsTeal));--main_gradient_dark_reversed:linear-gradient(var(--main_gradient_angle), var(--navy), var(--navy-deep));--main_gradient_grid_4x20:// per-row sheen — light along each row top, shadow at each row base (mirrors .pageTransitionBlock::after) repeating-linear-gradient(180deg, #ffffff29 0, #fff0 12%, #041b444d 25%), // 20 vertical column seams that outline each block repeating-linear-gradient(90deg, #041b4438 0 1px, transparent 1px 5%), // 4 horizontal row seams that outline each block repeating-linear-gradient(180deg, #041b4447 0 1px, transparent 1px 25%), // alternating block fills — neon to teal and back across the 20 columns repeating-linear-gradient(90deg, var(--piratechsNeon) 0, var(--piratechsTeal) 5%, var(--piratechsNeon) 10%);--mbgrad:repeating-linear-gradient(180deg, #ffffff29 0, #fff0 12%, #041b444d 25%), repeating-linear-gradient(90deg, #041b4438 0 1px, transparent 1px 5%), repeating-linear-gradient(180deg, #041b4447 0 1px, transparent 1px 25%), repeating-linear-gradient(90deg, var(--piratechsNeon) 0, var(--piratechsTeal) 5%, var(--piratechsNeon) 10%);--alt_transition:cubic-bezier(.77, .2, .05, 1);--transition:.24s var(--alt_transition)}body[data-theme=light]{--foreground:var(--navy);--foregroundMuted:var(--navy);--background:#f8fafc;--backgroundDeep:#edf4fb;--surface:#ffffffe6;--surfaceStrong:#fffffff5;--border:#04397b29;--panelGlass:#ffffffdb;--circuit:#04397b33;--circuitSoft:#00bfff24;--heroCircuitTrack:var(--main);--heroCircuitStrong:var(--main);--heroCircuitPulse:var(--main);--heroCircuitPulseAlt:var(--main);--heroCircuitNode:var(--main);--heroCircuitOpacity:.25;--tech-github:#181717;--tech-next:#000;--tech-unity:#000;--shadow:0 2px 16px #00091b1f}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{scroll-behavior:smooth;max-width:100vw;overflow-x:hidden}html.smoothScrollEnabled,html.smoothScrollEnabled body{scroll-behavior:auto}body{min-height:100dvh;color:var(--foreground);font-family:var(--font);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;background:radial-gradient(circle at 18% 8%, #00bfff2e, transparent 28%),linear-gradient(135deg, var(--navy-dark), var(--navy) 45%, var(--navy-dark) 100%)}::-webkit-scrollbar{width:7px;height:12px}::-webkit-scrollbar-track{background:var(--scrollbarTrack)}::-webkit-scrollbar-thumb{border-radius:var(--circle);transition:var(--transition);border:3px solid var(--navy);background:var(--scrollbarThumb)}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#00d4ff,#22ffd3)}::-webkit-scrollbar-corner{background:var(--scrollbarCorner)}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}.arrow{transition:transform .18s ease-in-out}.captainsHat,.swordGraphic{transform-origin:50%;transition:transform .18s ease-in-out}.skullJawsLeft,.skullJawsRight{will-change:transform;transform-box:fill-box;transition-duration:.2s}.skullJawsLeft{transform-origin:82% 8%}.skullJawsRight{transform-origin:18% 8%}.logoFullSword .arrowRight:not(.skullJawsRight){transform:translate(2px,2px)}.logoWordLettersArrows .arrowLeftLarge{transform:translate(-15px)}.logoWordLettersArrows .arrowLeftMedium{transform:translate(-20px)}.logoWordLettersArrows .arrowLeftSmall{transform:translate(-25px)}.logoWordLettersArrows .arrowRightLarge{transform:translate(15px)}.logoWordLettersArrows .arrowRightMedium{transform:translate(20px)}.logoWordLettersArrows .arrowRightSmall{transform:translate(25px)}:is(.wordLogo:has(.logoWordLettersArrows):hover .fullSwordCaptainsHat,.wordLogo:has(.logoWordLettersArrows).logoHoverAnimation .fullSwordCaptainsHat,.heroLogoPlate:has(.logoWordLettersArrows):hover .fullSwordCaptainsHat,.heroLogoPlate:has(.logoWordLettersArrows).logoHoverAnimation .fullSwordCaptainsHat,.navLink:has(.logoWordLettersArrows):hover .fullSwordCaptainsHat,.navLink:has(.logoWordLettersArrows).logoHoverAnimation .fullSwordCaptainsHat,.footerBrand:has(.logoWordLettersArrows):hover .fullSwordCaptainsHat,.footerBrand:has(.logoWordLettersArrows).logoHoverAnimation .fullSwordCaptainsHat){transform:translateY(-5px)}:is(.wordLogo:has(.logoWordLettersArrows):hover .swordGraphic,.wordLogo:has(.logoWordLettersArrows).logoHoverAnimation .swordGraphic,.heroLogoPlate:has(.logoWordLettersArrows):hover .swordGraphic,.heroLogoPlate:has(.logoWordLettersArrows).logoHoverAnimation .swordGraphic,.navLink:has(.logoWordLettersArrows):hover .swordGraphic,.navLink:has(.logoWordLettersArrows).logoHoverAnimation .swordGraphic,.footerBrand:has(.logoWordLettersArrows):hover .swordGraphic,.footerBrand:has(.logoWordLettersArrows).logoHoverAnimation .swordGraphic){transform:translateY(5px)}:is(.wordLogo:has(.logoWordLettersArrows):hover .arrowLeftLarge,.wordLogo:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftLarge,.heroLogoPlate:has(.logoWordLettersArrows):hover .arrowLeftLarge,.heroLogoPlate:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftLarge,.navLink:has(.logoWordLettersArrows):hover .arrowLeftLarge,.navLink:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftLarge,.footerBrand:has(.logoWordLettersArrows):hover .arrowLeftLarge,.footerBrand:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftLarge){transform:translate(-30px)}:is(.wordLogo:has(.logoWordLettersArrows):hover .arrowLeftLarge.logoArrow,.wordLogo:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftLarge.logoArrow,.heroLogoPlate:has(.logoWordLettersArrows):hover .arrowLeftLarge.logoArrow,.heroLogoPlate:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftLarge.logoArrow,.navLink:has(.logoWordLettersArrows):hover .arrowLeftLarge.logoArrow,.navLink:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftLarge.logoArrow,.footerBrand:has(.logoWordLettersArrows):hover .arrowLeftLarge.logoArrow,.footerBrand:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftLarge.logoArrow){transform:translate(-15px,15px)}:is(.wordLogo:has(.logoWordLettersArrows):hover .arrowLeftLarge.skullJawsLeft,.wordLogo:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftLarge.skullJawsLeft,.heroLogoPlate:has(.logoWordLettersArrows):hover .arrowLeftLarge.skullJawsLeft,.heroLogoPlate:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftLarge.skullJawsLeft,.navLink:has(.logoWordLettersArrows):hover .arrowLeftLarge.skullJawsLeft,.navLink:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftLarge.skullJawsLeft,.footerBrand:has(.logoWordLettersArrows):hover .arrowLeftLarge.skullJawsLeft,.footerBrand:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftLarge.skullJawsLeft){transform:translate(-5px,3px)rotate(8deg)}:is(.wordLogo:has(.logoWordLettersArrows):hover .arrowLeftMedium,.wordLogo:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftMedium,.heroLogoPlate:has(.logoWordLettersArrows):hover .arrowLeftMedium,.heroLogoPlate:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftMedium,.navLink:has(.logoWordLettersArrows):hover .arrowLeftMedium,.navLink:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftMedium,.footerBrand:has(.logoWordLettersArrows):hover .arrowLeftMedium,.footerBrand:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftMedium){transform:translate(-40px)}:is(.wordLogo:has(.logoWordLettersArrows):hover .arrowLeftMedium.logoArrow,.wordLogo:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftMedium.logoArrow,.heroLogoPlate:has(.logoWordLettersArrows):hover .arrowLeftMedium.logoArrow,.heroLogoPlate:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftMedium.logoArrow,.navLink:has(.logoWordLettersArrows):hover .arrowLeftMedium.logoArrow,.navLink:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftMedium.logoArrow,.footerBrand:has(.logoWordLettersArrows):hover .arrowLeftMedium.logoArrow,.footerBrand:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftMedium.logoArrow){transform:translate(-20px,20px)}:is(.wordLogo:has(.logoWordLettersArrows):hover .arrowLeftSmall,.wordLogo:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftSmall,.heroLogoPlate:has(.logoWordLettersArrows):hover .arrowLeftSmall,.heroLogoPlate:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftSmall,.navLink:has(.logoWordLettersArrows):hover .arrowLeftSmall,.navLink:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftSmall,.footerBrand:has(.logoWordLettersArrows):hover .arrowLeftSmall,.footerBrand:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftSmall){transform:translate(-50px)}:is(.wordLogo:has(.logoWordLettersArrows):hover .arrowLeftSmall.logoArrow,.wordLogo:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftSmall.logoArrow,.heroLogoPlate:has(.logoWordLettersArrows):hover .arrowLeftSmall.logoArrow,.heroLogoPlate:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftSmall.logoArrow,.navLink:has(.logoWordLettersArrows):hover .arrowLeftSmall.logoArrow,.navLink:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftSmall.logoArrow,.footerBrand:has(.logoWordLettersArrows):hover .arrowLeftSmall.logoArrow,.footerBrand:has(.logoWordLettersArrows).logoHoverAnimation .arrowLeftSmall.logoArrow){transform:translate(-25px,25px)}:is(.wordLogo:has(.logoWordLettersArrows):hover .arrowRightLarge,.wordLogo:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightLarge,.heroLogoPlate:has(.logoWordLettersArrows):hover .arrowRightLarge,.heroLogoPlate:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightLarge,.navLink:has(.logoWordLettersArrows):hover .arrowRightLarge,.navLink:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightLarge,.footerBrand:has(.logoWordLettersArrows):hover .arrowRightLarge,.footerBrand:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightLarge){transform:translate(30px)}:is(.wordLogo:has(.logoWordLettersArrows):hover .arrowRightLarge.skullJawsRight,.wordLogo:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightLarge.skullJawsRight,.heroLogoPlate:has(.logoWordLettersArrows):hover .arrowRightLarge.skullJawsRight,.heroLogoPlate:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightLarge.skullJawsRight,.navLink:has(.logoWordLettersArrows):hover .arrowRightLarge.skullJawsRight,.navLink:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightLarge.skullJawsRight,.footerBrand:has(.logoWordLettersArrows):hover .arrowRightLarge.skullJawsRight,.footerBrand:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightLarge.skullJawsRight){transform:translate(5px,3px)rotate(-8deg)}:is(.wordLogo:has(.logoWordLettersArrows):hover .arrowRightLarge.logoArrow,.wordLogo:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightLarge.logoArrow,.heroLogoPlate:has(.logoWordLettersArrows):hover .arrowRightLarge.logoArrow,.heroLogoPlate:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightLarge.logoArrow,.navLink:has(.logoWordLettersArrows):hover .arrowRightLarge.logoArrow,.navLink:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightLarge.logoArrow,.footerBrand:has(.logoWordLettersArrows):hover .arrowRightLarge.logoArrow,.footerBrand:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightLarge.logoArrow){transform:translate(15px,15px)}:is(.wordLogo:has(.logoWordLettersArrows):hover .arrowRightMedium,.wordLogo:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightMedium,.heroLogoPlate:has(.logoWordLettersArrows):hover .arrowRightMedium,.heroLogoPlate:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightMedium,.navLink:has(.logoWordLettersArrows):hover .arrowRightMedium,.navLink:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightMedium,.footerBrand:has(.logoWordLettersArrows):hover .arrowRightMedium,.footerBrand:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightMedium){transform:translate(40px)}:is(.wordLogo:has(.logoWordLettersArrows):hover .arrowRightMedium.logoArrow,.wordLogo:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightMedium.logoArrow,.heroLogoPlate:has(.logoWordLettersArrows):hover .arrowRightMedium.logoArrow,.heroLogoPlate:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightMedium.logoArrow,.navLink:has(.logoWordLettersArrows):hover .arrowRightMedium.logoArrow,.navLink:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightMedium.logoArrow,.footerBrand:has(.logoWordLettersArrows):hover .arrowRightMedium.logoArrow,.footerBrand:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightMedium.logoArrow){transform:translate(20px,20px)}:is(.wordLogo:has(.logoWordLettersArrows):hover .arrowRightSmall,.wordLogo:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightSmall,.heroLogoPlate:has(.logoWordLettersArrows):hover .arrowRightSmall,.heroLogoPlate:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightSmall,.navLink:has(.logoWordLettersArrows):hover .arrowRightSmall,.navLink:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightSmall,.footerBrand:has(.logoWordLettersArrows):hover .arrowRightSmall,.footerBrand:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightSmall){transform:translate(50px)}:is(.wordLogo:has(.logoWordLettersArrows):hover .arrowRightSmall.logoArrow,.wordLogo:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightSmall.logoArrow,.heroLogoPlate:has(.logoWordLettersArrows):hover .arrowRightSmall.logoArrow,.heroLogoPlate:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightSmall.logoArrow,.navLink:has(.logoWordLettersArrows):hover .arrowRightSmall.logoArrow,.navLink:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightSmall.logoArrow,.footerBrand:has(.logoWordLettersArrows):hover .arrowRightSmall.logoArrow,.footerBrand:has(.logoWordLettersArrows).logoHoverAnimation .arrowRightSmall.logoArrow){transform:translate(25px,25px)}.wordLogo:has(.logoWordLettersArrows):hover .navLink:after{transform:scaleX(1)}.wordLogo:has(.logoWordLettersArrows).logoHoverAnimation .navLink:after{transform:scaleX(1)}.heroLogoPlate:has(.logoWordLettersArrows):hover .navLink:after{transform:scaleX(1)}.heroLogoPlate:has(.logoWordLettersArrows).logoHoverAnimation .navLink:after{transform:scaleX(1)}.navLink:has(.logoWordLettersArrows):hover .navLink:after{transform:scaleX(1)}.navLink:has(.logoWordLettersArrows).logoHoverAnimation .navLink:after{transform:scaleX(1)}.footerBrand:has(.logoWordLettersArrows):hover .navLink:after{transform:scaleX(1)}.footerBrand:has(.logoWordLettersArrows).logoHoverAnimation .navLink:after{transform:scaleX(1)}.gradientColor{color:var(--main_gradient)}.gradientBG,.sep{background:var(--main_gradient)}.gradientBG.bgReversed,.bgReversed.sep{background:linear-gradient(var(--main_gradient_angle), var(--piratechsTeal), var(--piratechsNeon))}.gradientBGi{background:var(--main_gradient)!important}.gradientBGi.bgReversed{background:linear-gradient(var(--main_gradient_angle), var(--piratechsTeal), var(--piratechsNeon))!important}.sep{min-width:1.2px;min-height:1.5px}@supports ((-webkit-background-clip:text) or (background-clip:text)){.gradientTextColor,.slashes,.eyebrow{color:#0000;background:var(--main_gradient);-webkit-text-fill-color:#0000;text-shadow:none!important;-webkit-background-clip:text!important;background-clip:text!important}}.eyebrow{width:fit-content;color:var(--main);letter-spacing:.08em;text-transform:uppercase;font-size:.76rem;font-weight:800;display:inline-flex}.slashes{letter-spacing:-15px;padding-right:15px;font-weight:400}.slashes:has(.textRevealWord):not(.slashesSM){padding-right:0}.slashes:has(.textRevealWord):not(.slashesSM) .textRevealWord{padding-right:15px}.slashes.slashesSM{letter-spacing:0;padding-left:3px;padding-right:2px}p .slashes{letter-spacing:-1px;padding-left:2px;padding-right:3px}p .slashes:has(.textRevealWord):not(.slashesSM) .textRevealWord{padding-right:0}.main{min-height:100dvh}.wordLogo{--w:225px;max-width:var(--w);max-height:calc(var(--w)/5.12);overflow:visible}.wordLogoHome{position:relative;top:-30px}.wordLogoNav{--w:150px}.loaderWord{--w:350px;margin:0 10px}.loaderProgress{font-size:2rem;font-style:italic;font-weight:600}.wordLogoFooter{--w:135px;position:relative;right:-10px}.dropShadow,.dark .logoLetter{filter:var(--logoLetterDropShadowLight)}.dropShadowi{filter:var(--logoLetterDropShadow)!important}footer small i{padding-right:3px}.dark .bannerText{text-shadow:0 0 2px var(--navy)}.dark .heroMiniStat{background:var(--miniStat)}.dark .serviceCard:before,.dark .statCard:before{opacity:.15}::selection{background:var(--navy-deep)}html:has(body[data-theme=light]) body{background:linear-gradient(135deg, var(--light_teal) 70%, var(--white-smoke))}:is(html:has(body[data-theme=light]) a.primary.logoLetter,html:has(body[data-theme=light]) a.primary .logoLetter,html:has(body[data-theme=light]) a.activeFilter.logoLetter,html:has(body[data-theme=light]) a.activeFilter .logoLetter,html:has(body[data-theme=light]) button.primary.logoLetter,html:has(body[data-theme=light]) button.primary .logoLetter,html:has(body[data-theme=light]) button.activeFilter.logoLetter,html:has(body[data-theme=light]) button.activeFilter .logoLetter,html:has(body[data-theme=light]) span.primary.logoLetter,html:has(body[data-theme=light]) span.primary .logoLetter,html:has(body[data-theme=light]) span.activeFilter.logoLetter,html:has(body[data-theme=light]) span.activeFilter .logoLetter){text-shadow:2px 4px 8px var(--navy)}html:has(body[data-theme=light]) .imgOverlay{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(180deg, rgba(var(--piratechsNeon_rgb), .15), rgba(var(--piratechsTeal_rgb), .15))!important}html:has(body[data-theme=light]) .projectCard{color:var(--white)!important}:is(html:has(body[data-theme=light]) .projectCard h3,html:has(body[data-theme=light]) .projectCard em,html:has(body[data-theme=light]) .projectCard p,html:has(body[data-theme=light]) .projectCard button,html:has(body[data-theme=light]) .projectCard span){color:var(--white)!important}html:has(body[data-theme=light]) .projectCard .ghost i{color:var(--white)}html:has(body[data-theme=light]) ::-webkit-scrollbar-thumb{border:3px solid var(--white-soft)}html:has(body[data-theme=light]){--main_gradient_dark_reversed:linear-gradient(var(--main_gradient_angle), var(--white-soft), #e1f4fc)}html:has(body[data-theme=light]) .authAvatarLetter{font-weight:800}html:has(body[data-theme=light]) .projectDetailSheet{background:linear-gradient(90deg, var(--light_teal), var(--white-smoke))}html:has(body[data-theme=light]) .header{background:linear-gradient(90deg,#ffffff26,#ffffff40)}:is(html:has(body[data-theme=light]) .header .topBar .topBarItem strong,html:has(body[data-theme=light]) .header .topBar .topBarItem span){color:var(--foreground)!important}html:has(body[data-theme=light]) .header .topBar.fadeSides:before{background:linear-gradient(90deg, var(--white), transparent)}html:has(body[data-theme=light]) .header .topBar.fadeSides:after{background:linear-gradient(270deg, var(--white), transparent)}:is(html:has(body[data-theme=light]) .header .brandMark,html:has(body[data-theme=light]) .header .navLink,html:has(body[data-theme=light]) .header .iconButton){color:var(--foreground)!important}html:has(body[data-theme=light]) .heroMiniStat{background:radial-gradient(var(--light_teal) 15%, white)}html:has(body[data-theme=light]) .statCard:before{opacity:.2!important}html:has(body[data-theme=light]) .serviceCard:before{opacity:.2!important}html:has(body[data-theme=light]) .galleryTile:before{opacity:.2!important}html:has(body[data-theme=light]) .skillTile:before{opacity:.2!important}html:has(body[data-theme=light]):has(.projectsPage) .pageBadge:before{opacity:.2!important}html:has(body[data-theme=light]):has(.servicesPage) .pageBadge:before{opacity:.2!important}html:has(body[data-theme=light]) .footer a i{color:var(--foreground)!important}.menuBlurBackdrop{opacity:0;z-index:69;pointer-events:none;-webkit-backdrop-filter:blur();backdrop-filter:blur();background:rgba(var(--navy_rgb), .35);border:none;margin:0;padding:0;transition:opacity .34s,-webkit-backdrop-filter .34s,backdrop-filter .34s;position:fixed;inset:0}.menuBlurBackdropOpen{opacity:1;pointer-events:auto;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}body[data-theme=light] .menuBlurBackdrop{background:#f4f9fc47}.header{z-index:70;color:#fff;width:100%;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:background var(--transition);background:linear-gradient(90deg,#04397b26,#06448640);border-bottom:1px solid #00bfff47;position:fixed;top:0}.navBar{width:100%;min-height:58px;padding:0 var(--contentInset);align-items:center;gap:11px;display:flex}.homeButton{color:#fff;border-radius:var(--circle);background:var(--main_gradient);flex:none;place-items:center;width:38px;height:38px;display:grid;box-shadow:inset 0 0 0 1px #ffffff1a}.brandMark{color:#fff;align-items:center;gap:10px;min-width:fit-content;font-weight:800;display:flex}.brandMark span{letter-spacing:0;font-size:clamp(1.18rem,2vw,1.58rem);font-weight:700;line-height:1}.brandLogo{object-fit:contain;width:38px;height:38px}.brandLogoLight,.footerLogoLight,body[data-theme=light] .brandLogoDark,body[data-theme=light] .footerLogoDark,body[data-theme=light] .heroLogoDark{display:block}body[data-theme=light] .brandLogoLight,body[data-theme=light] .footerLogoLight,body[data-theme=light] .heroLogoLight{display:none}.desktopNav{justify-content:flex-end;align-items:center;gap:8px;margin-left:auto;display:flex}.navLink{color:#ffffffd6;min-height:42px;transition:color var(--transition),transform .15s var(--alt_transition);align-items:center;gap:7px;padding:8px 7px;font-size:clamp(.9rem,1.05vw,1.05rem);font-weight:800;display:inline-flex;position:relative}.navLink:after{z-index:-1;content:"";transform-origin:0;background:var(--main_gradient);border-radius:var(--borderRadius);height:2px;transition:transform var(--transition);position:absolute;bottom:1px;left:8px;right:8px;transform:scaleX(0)}.navLink i{color:var(--main);font-size:.95rem}.mobileNavLink:after{transform-origin:100%;width:auto;height:100%;bottom:0;left:30px;right:0}.navLink:hover,.navLink.activeRoute{color:#fff}.navLink:hover:after,.navLink.activeRoute:after{transform:scaleX(1)}.navActions{align-items:center;gap:8px;display:flex}.navActionReveal{display:inline-flex}.iconButton{color:#fff;border-radius:var(--borderRadius);width:38px;height:38px;transition:transform var(--transition),border-color var(--transition),background var(--transition);background:#00bfff29;border:1px solid #00bfff42;place-items:center;display:inline-grid}.iconButton:hover{border-color:var(--main);background:#00bfff42}.mobileMenuButton{display:none}.mobileMenu{opacity:0;z-index:22;pointer-events:none;transform-origin:top;box-shadow:var(--shadow);background:var(--surfaceStrong);border-radius:var(--borderRadius);width:min(100% - 32px,300px);max-height:calc(100dvh - 126px);transition:opacity var(--transition),transform var(--transition);border:1px solid #00bfff47;gap:14px;padding:16px;display:grid;position:fixed;top:108px;right:16px;overflow:auto;transform:scaleY(0)translateY(-8px)}body.menuOpen .mobileMenu{opacity:1;pointer-events:auto;transform:scale(1)translateY(0)}body.menuOpen .mobileMenu .authPanel{pointer-events:auto}.mobileNav{gap:8px;display:grid}.mobileNav .navLink{border:1px solid var(--border);border-radius:var(--borderRadius);background:#00bfff0f;justify-content:space-between}.topBar{border-top:1px solid #00bfff2e;border-bottom:1px solid #00bfff57;width:100%;height:45px;position:relative;overflow:hidden}.topBar.fadeSides:before,.topBar.fadeSides:after{z-index:2;content:"";pointer-events:none;width:60px;height:100%;position:absolute;top:0}.topBar.fadeSides:before{background:linear-gradient(90deg,#002443,#0000);left:0}.topBar.fadeSides:after{background:linear-gradient(270deg,#002443,#0000);right:0}.topBarTrack{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:pan-y;will-change:transform;align-items:center;width:max-content;height:100%;display:flex}.topBarTrack.isDragging{cursor:grabbing}.topBarItem{letter-spacing:0;border-radius:var(--circle);color:#ffffffdb;background:#00bfff12;border:1px solid #00bfff33;align-items:center;gap:8px;min-width:max-content;margin-inline-end:10px;padding:7px 12px;font-size:.78rem;font-weight:700;line-height:1;display:inline-flex}.topBarItem i{color:var(--main);font-size:.85rem}.topBarItem strong{color:#fff;font-weight:900}.topBarItem span{color:#ffffffb8}.authWidget{position:relative}.authPanel{opacity:0;z-index:30;pointer-events:none;transform-origin:top;width:269px;transition:opacity var(--transition),transform var(--transition);position:absolute;top:calc(100% + 14px);right:0;transform:scaleY(0)translateY(8px)}.authWidget.authOpen .authPanel{opacity:1;pointer-events:auto;transform:scale(1)translateY(0)}.cta .ctaOuterRow{position:relative}.cta .ctaOuterColumn:has(.noUser){position:absolute;top:-60px;right:-50px}.cta .authPanel{top:10px}.authForm{color:var(--foreground);box-shadow:var(--shadow);border:1px solid var(--border);background:var(--surfaceStrong);border-radius:var(--borderRadius);gap:10px;padding:14px;display:grid}.authHeader{gap:2px;display:grid}.authHeader strong{font-size:.95rem}.authHeader small,.authForm span,.authStatus{color:var(--foregroundMuted);font-size:.76rem}.authAvatarToggle{color:#fff;background:#00bfff29;font-weight:900}.authAvatarLetter{color:currentColor;font-size:1rem;font-weight:600}.authForm label{gap:5px;display:grid}.authForm input{width:100%;min-height:36px;color:var(--foreground);border:1px solid var(--border);border-radius:var(--borderRadius);background:#ffffff0f;outline:none;padding:0 10px}body[data-theme=light] .authForm input{background:#fff}.authActions{grid-template-columns:1fr;gap:8px;display:grid}.authActions:has(.accessBtn){grid-template-columns:1fr 1fr}.authUserCard{align-items:center;gap:10px;display:flex}.authUserCard>span{color:#fff;border-radius:var(--borderRadius);background:#00bfff29;border:1px solid #00bfff42;place-items:center;width:38px;height:38px;font-size:1rem;font-weight:600;display:grid}.authUserCard div{gap:2px;min-width:0;display:grid}.authUserCard small{white-space:nowrap;text-overflow:ellipsis;color:var(--foregroundMuted);overflow:hidden}.mobileAuthWidget{display:grid}.mobileAuthWidget>.authToggle{display:none}.mobileAuthWidget .authPanel{opacity:1;pointer-events:none;width:100%;position:static;transform:none}.mobileAuthWidget .authForm{box-shadow:none}.projectGrid{scroll-snap-type:x proximity;grid-template-columns:repeat(auto-fit,minmax(465px,1fr));gap:18px;width:100%;padding:0;display:grid;overflow:auto hidden}.circuit,.statCard:before,.serviceCard:before,.galleryTile:before,.pageBadge:before,.contactBand:before{z-index:-1;background:url(/assets/piratechs/gifs/Circuit.gif);background-position:65% 100%!important;background-repeat:no-repeat!important;background-size:contain!important}.statCard:before,.serviceCard:before,.galleryTile:before,.pageBadge:before,.contactBand:before{content:"";position:absolute;inset:0}.pageBadge:before{opacity:1;transform:rotate(225deg)translate(40px,25px);background-position:33% 102%!important;background-size:30%!important}.contactBand:before{opacity:.15;max-width:305px;margin-left:auto;transform:rotate(180deg)translate(0);background-position:50%!important;background-size:contain!important}html:has(.projectsPage) .pageBadge:before{transform:rotate(49deg)translate(40px,25px)}html:has(.servicesPage) .pageBadge:before{transform:rotate(49deg)translate(40px,25px)}html:has(.errorPage) .pageBadge:before{transform:rotate(49deg)translate(40px,25px)}html:has(.contactPage) .pageBadge:before{transform:rotate(139deg)translate(40px,25px)}.projectCard,.statCard,.serviceCard,.galleryTile,.skillTile,.pageBadge{box-shadow:var(--shadow);background:var(--panelGlass);border:1px solid var(--border);border-radius:var(--borderRadius);position:relative;overflow:hidden}.projectCard{transition:var(--transition)!important}.projectCard:after,.statCard:after,.serviceCard:after,.galleryTile:after,.skillTile:before,.pageBadge:after{content:"";z-index:0;opacity:.36;pointer-events:none;background:linear-gradient(90deg, transparent 0 17%, var(--circuit) 17% 18%, transparent 18%),linear-gradient(90deg, transparent 0 48%, var(--circuitSoft) 48% 49%, transparent 49%),linear-gradient(0deg, transparent 0 34%, var(--circuit) 34% 35%, transparent 35%),linear-gradient(0deg, transparent 0 70%, var(--circuitSoft) 70% 71%, transparent 71%),radial-gradient(circle at 18% 35%, var(--circuit) 0 2px, transparent 3px),radial-gradient(circle at 49% 71%, var(--circuitSoft) 0 2px, transparent 3px),radial-gradient(circle at 82% 35%, var(--circuit) 0 2px, transparent 3px);clip-path:polygon(0 16%,72% 16%,72% 0,100% 0,100% 100%,20% 100%,20% 72%,0 72%);width:176px;height:118px;position:absolute;bottom:-28px;right:-24px}.projectCard{cursor:pointer;scroll-snap-align:center;min-width:260px;min-height:330px;transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition);flex-direction:column;gap:16px;padding:18px;display:flex}.projectCard .projectCardBG{z-index:1;height:calc(100% + 1px);position:absolute;inset:0}.projectCard .projectCardBG .projectCardBGWrap{height:100%;position:relative}.projectCard .projectCardBG .projectCardBGWrap .imgOverlay{z-index:1;background:linear-gradient(180deg, rgba(var(--navy_rgb), .8), #051a3b);position:absolute;inset:0}.projectCard .projectCardBG .projectCardBGWrap .projectMedia{object-fit:cover;--reveal-delay:32ms;width:100%;height:100%}.projectCard:hover,.projectCard:focus-within{border-color:var(--main)}.projectCard:before{z-index:0;content:"";opacity:.7;pointer-events:none;background:linear-gradient(135deg,#00bfff2e,#0000 38%);position:absolute;inset:0}.projectCard>.projectCardLinkOverlay{z-index:2;position:absolute;inset:0}.projectCard>*,.statCard>*,.serviceCard>*,.galleryTile>*,.skillTile>*,.pageBadge>*{z-index:1;position:relative}.projectTop{justify-content:space-between;align-items:center;gap:8px;display:flex}.typeBadge,.statusPill,.projectTopics>span,.capabilityGrid span{border-radius:var(--circle);border:1px solid var(--border);background:#00bfff14;justify-content:center;align-items:center;gap:6px;min-height:25px;padding:4px 9px;font-size:1rem;font-weight:800;display:inline-flex}.typeBadge,.projectTopics>span,.statusPill{font-size:.75rem}.statusPill{color:var(--piratechsTeal)}.projectIconCloud{pointer-events:none;gap:8px;font-size:clamp(1.18rem,1.8vw,1.58rem);line-height:1;display:flex}.projectIconCloud .techIcon{opacity:.8}.projectCard h3,.serviceCard h3{font-size:1.28rem}.projectCard p,.serviceCard p,.statCard p{color:var(--foregroundMuted);line-height:1.65}.projectTopics{flex-wrap:wrap;gap:5px;display:flex}.projectTopics em{font-style:normal;position:relative;top:-1px}.projectDescription{height:100%}.projectActions{z-index:3;flex-wrap:wrap;gap:8px;max-width:fit-content;margin-left:auto;display:flex}.projectActionReveal{display:inline-flex}.statCard{gap:8px;padding:20px;display:grid}.statCard span{color:var(--main);text-transform:uppercase;font-size:.78rem;font-weight:800}.statCard strong{font-size:clamp(2rem,5vw,3.5rem);line-height:1}.serviceCard{gap:13px;padding:22px;display:grid}.serviceCard>i,.galleryTile>i{color:var(--techColor,var(--main));font-size:2rem}.skillTile{align-content:end;gap:8px;min-height:148px;padding:18px;display:grid}.skillTile i{opacity:.82;color:var(--techColor,var(--main));font-size:2rem;position:absolute;top:16px;right:16px}.skillTile span{color:var(--main);text-transform:uppercase;font-size:.72rem;font-weight:800}.skillTile strong{font-size:1.18rem}.galleryTile{background:linear-gradient(135deg, #00bfff29, transparent),var(--panelGlass);align-content:space-between;min-height:170px;padding:20px;display:grid}.galleryTile span{color:var(--main);font-weight:900}.galleryTile strong{font-size:1.28rem}.pageBadge{aspect-ratio:1;text-align:center;clip-path:polygon(12% 0,88% 0,100% 50%,88% 100%,12% 100%,0 50%);justify-self:center;place-items:center;gap:14px;width:min(100%,260px);padding:28px;display:grid}.pageBadge i{color:var(--main);font-size:clamp(3rem,10vw,10rem)}.pageBadge span{font-size:2rem;font-weight:900}.pageSection{padding:clamp(64px,9vw,112px) var(--contentInset);position:relative}.sectionInner{z-index:1;width:100%;max-width:var(--maxWidth);margin:0;position:relative;container-type:inline-size}@container (max-width:1090px){.sectionInner .authPanel{display:none}}.sectionTitle{gap:13px;width:min(100%,860px);margin-bottom:28px;display:grid}.sectionTitle h2,.contactBand h2{font-size:clamp(2rem,5vw,4.4rem);line-height:.96}.sectionTitle p,.contactBand p{color:var(--foregroundMuted);line-height:1.75}.heroSection{border-bottom:1px solid var(--border);align-items:center;min-height:100dvh;padding-top:clamp(146px,12vw,180px);display:grid;overflow:hidden}.heroBg,.heroBg:before,.heroBg:after{pointer-events:none;position:absolute;inset:0}.heroBgClip{pointer-events:none;position:absolute;inset:0;overflow:hidden}.heroBg{z-index:0;will-change:transform,opacity;overflow:hidden;transform:translate(0,0)}.heroBg:before{z-index:0;content:"";opacity:.36;background-image:linear-gradient(#00bfff24 1px,#0000 1px),linear-gradient(90deg,#00bfff24 1px,#0000 1px);background-size:58px 58px;transform:skewY(-6deg)translateY(-8%);-webkit-mask-image:linear-gradient(90deg,#0000,#000 18% 78%,#0000);mask-image:linear-gradient(90deg,#0000,#000 18% 78%,#0000)}.gridPlane,.signalLine{z-index:3;border:1px solid var(--border);position:absolute;transform:skew(-18deg)}.gridPlaneA{background:#00bfff0a;width:42vw;height:52%;top:20%;right:-8%}.gridPlaneB{background:#13deb90d;width:38vw;height:26%;bottom:9%;left:-18%}.signalLineA,.signalLineB{background:linear-gradient(90deg, transparent, var(--piratechsNeon), var(--piratechsTeal), transparent);border:none;height:2px}.signalLineA{width:34vw;top:16%;right:8%}.signalLineA.slanted{top:35%;right:25%}.signalLineB{width:28vw;bottom:19%;left:6%}.signalLineB.slanted{bottom:25%;left:-5%}.heroGrid{grid-template-columns:minmax(0,1.12fr) minmax(280px,.7fr);align-items:center;gap:clamp(36px,6vw,82px);display:grid}.heroCopy{gap:22px;display:grid;position:relative}.heroCopy h1{letter-spacing:0;max-width:920px;font-size:clamp(2.8rem,5.5dvw,5.7rem);line-height:1.05}.heroCopy p{width:min(100%,670px);color:var(--foregroundMuted);font-size:clamp(1rem,2vw,1.18rem);line-height:1.8}.heroActions{flex-wrap:wrap;gap:12px;display:flex}.heroActionReveal{display:inline-flex}.heroBrand{justify-items:center;gap:18px;display:grid}.heroLogo{max-width:300px;max-height:360px}.heroLogoPlate{aspect-ratio:1;width:min(100%,360px);min-height:512px;box-shadow:var(--shadow);border:1px solid var(--border);clip-path:polygon(12% 0,88% 0,100% 50%,88% 100%,12% 100%,0 50%);background:radial-gradient(circle,#00bfff29,#00091b5c 56%,#00091bcc);place-items:center;display:grid;position:relative}body[data-theme=light] .heroLogoPlate{background:radial-gradient(circle,#00bfff29,#ffffff91 58%,#ffffffad)}.heroLogoPlate img{filter:drop-shadow(0 18px 28px #00000047);width:76%;height:auto}.heroLogoLight{display:none}.heroOrbit{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);border:1px solid #00bfff47;position:absolute;inset:9%}.heroMiniStats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:min(100%,460px);display:grid}.heroMiniStats .heroMiniStat{text-align:center;color:var(--foregroundMuted);border:1px solid var(--border);border-radius:var(--borderRadius);gap:2px;padding:12px;font-size:.74rem;display:grid}.heroMiniStats strong{color:var(--foreground);font-size:1rem}.projectsSection,.servicesSection,.skillsSection,.gallerySection{overflow:hidden}.projectsSection{padding-bottom:28px}.filterBar{flex-wrap:wrap;gap:9px;margin-bottom:18px;display:flex}.experienceSection{padding-top:28px;padding-bottom:28px}.experienceGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.specialtiesSection{overflow:hidden}.projectsSection:after,.specialtiesSection:before,.skillsSection:after,.gallerySection:before{z-index:0;content:"";opacity:.26;pointer-events:none;clip-path:polygon(0% 0,100% 0,82% 100%,0 100%);background:linear-gradient(115deg, transparent 0 22%, var(--circuit) 22% 23%, transparent 23% 100%),linear-gradient(145deg, transparent 0 48%, var(--circuitSoft) 48% 49%, transparent 49% 100%),linear-gradient(65deg, transparent 0 68%, var(--circuit) 68% 69%, transparent 69% 100%);width:min(480px,42vw);height:100%;position:absolute;top:0;right:-8vw}.specialtiesSection:before,.gallerySection:before{left:-10vw;right:auto;transform:scaleX(-1)}.backendGrid{grid-template-columns:minmax(0,.72fr) minmax(320px,1fr);align-items:center;gap:34px;display:grid}.capabilityGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;font-size:18px;display:grid}.capabilityGrid i{font-size:18px}.capabilityGrid span{background:var(--surface);border-radius:var(--borderRadius);gap:9px;min-height:52px}.skillsGrid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:13px;display:grid}.serviceGrid,.galleryGrid,.detailCards{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.detailGrid{gap:28px;display:grid}.contactBand{border:1px solid var(--border);border-radius:var(--borderRadius);background:linear-gradient(135deg, var(--surfaceStrong), #00bfff1a);gap:16px;padding:clamp(28px,6vw,56px);display:grid;position:relative}@keyframes downAndOut{0%{top:0;left:0}30%{top:150px;left:-150px;transform:scale(1.1)}to{top:150px;left:-500px;transform:scale(1.35)}}.heroEndWrapper{position:relative}@keyframes heroGridSlideUp{0%{clip-path:inset(100% 0 0);transform:skewY(-6deg)translateY(calc(30px - 8%))}to{clip-path:inset(0);transform:skewY(-6deg)translateY(-8%)}}@keyframes gridPlaneClipInRight{0%{clip-path:inset(0 0 0 100%);transform:skew(-18deg)translate(44px)}to{clip-path:inset(0);transform:skew(-18deg)translate(0)}}@keyframes gridPlaneClipInLeft{0%{clip-path:inset(0 100% 0 0);transform:skew(-18deg)translate(-44px)}to{clip-path:inset(0);transform:skew(-18deg)translate(0)}}@keyframes signalLineSlashInLeft{0%{opacity:0;clip-path:polygon(0 0,0 0,0 100%,0 100%);transform:skew(-28deg)translate(-64px)}18%{opacity:1}72%{clip-path:polygon(0 0,100% 0,86% 100%,0 100%)}to{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transform:skew(-18deg)translate(0)}}@keyframes signalLineSlashInLeftRotate{0%{opacity:0;clip-path:polygon(0 0,0 0,0 100%,0 100%);transform:rotate(-72deg)skew(-28deg)translate(-64px)}18%{opacity:1}72%{clip-path:polygon(0 0,100% 0,86% 100%,0 100%)}to{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transform:rotate(-72deg)skew(-18deg)translate(0)}}@keyframes signalLineSlashInRightRotate{0%{opacity:0;clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%);transform:rotate(72deg)skew(-28deg)translate(64px)}18%{opacity:1}72%{clip-path:polygon(14% 0,100% 0,100% 100%,0 100%)}to{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transform:rotate(72deg)skew(-18deg)translate(0)}}@keyframes signalLineSlashInRight{0%{opacity:0;clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%);transform:skew(-28deg)translate(64px)}18%{opacity:1}72%{clip-path:polygon(14% 0,100% 0,100% 100%,0 100%)}to{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transform:skew(-18deg)translate(0)}}body.revealReady .heroBg:before{animation:.9s cubic-bezier(.22,1,.36,1) both heroGridSlideUp}body.revealReady .gridPlaneA{animation:gridPlaneClipInRight .62s cubic-bezier(.22, 1, .36, 1) var(--gridPlaneADelay,calc(.72s + var(--gridsStagger,.58s))) both}body.revealReady .gridPlaneB{animation:gridPlaneClipInLeft .62s cubic-bezier(.22, 1, .36, 1) var(--gridPlaneBDelay,.72s) both}body.revealReady .signalLineB{animation:signalLineSlashInRight .3s cubic-bezier(.16, 1, .3, 1) var(--signalLineBDelay,1.88s) both}body.revealReady .signalLineB.slanted{animation:signalLineSlashInRightRotate .3s cubic-bezier(.16, 1, .3, 1) var(--signalLineBDelay,1.88s) both}body.revealReady .signalLineA{animation:signalLineSlashInLeft .3s cubic-bezier(.16, 1, .3, 1) var(--signalLineADelay,calc(1.88s + var(--signalLinesStagger,.22s))) both}body.revealReady .signalLineA.slanted{animation:signalLineSlashInLeftRotate .3s cubic-bezier(.16, 1, .3, 1) var(--signalLineADelay,calc(1.88s + var(--signalLinesStagger,.22s))) both}.heroBg.heroCircuitAccentsReady{--gridPlaneBDelay:0s;--gridPlaneADelay:var(--gridsStagger);--signalLineBDelay:1.16s;--signalLineADelay:calc(1.16s + var(--signalLinesStagger))}.heroBg.heroCircuitAccentsPending .gridPlaneA{clip-path:inset(0 0 0 100%);animation:none!important}.heroBg.heroCircuitAccentsPending .gridPlaneB{clip-path:inset(0 100% 0 0);animation:none!important}.heroBg.heroCircuitAccentsPending .signalLineA{opacity:0;clip-path:polygon(0 0,0 0,0 100%,0 100%);transform:skew(-28deg)translate(-64px);animation:none!important}.heroBg.heroCircuitAccentsPending .signalLineA.slanted{transform:rotate(-72deg)skew(-28deg)translate(-64px)}.heroBg.heroCircuitAccentsPending .signalLineB{opacity:0;clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%);transform:skew(-28deg)translate(64px);animation:none!important}.heroBg.heroCircuitAccentsPending .signalLineB.slanted{transform:rotate(72deg)skew(-28deg)translate(64px)}body.pageTransitionPending .heroBg:before{clip-path:inset(100% 0 0);animation:none!important}body.pageTransitionPending .gridPlaneA{clip-path:inset(0 0 0 100%);animation:none!important}body.pageTransitionPending .gridPlaneB{clip-path:inset(0 100% 0 0);animation:none!important}body.pageTransitionPending .signalLineA{opacity:0;clip-path:polygon(0 0,0 0,0 100%,0 100%);transform:skew(-28deg)translate(-64px);animation:none!important}body.pageTransitionPending .signalLineB{opacity:0;clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%);transform:skew(-28deg)translate(64px);animation:none!important}@media (prefers-reduced-motion:reduce){body.revealReady .heroBg:before,body.revealReady .gridPlaneA,body.revealReady .gridPlaneB,body.revealReady .signalLineA,body.revealReady .signalLineB,body.pageTransitionPending .heroBg:before,body.pageTransitionPending .gridPlaneA,body.pageTransitionPending .gridPlaneB,body.pageTransitionPending .signalLineA,body.pageTransitionPending .signalLineB{opacity:1!important;clip-path:none!important;animation:none!important}}@keyframes opa{0%{opacity:.25}to{opacity:.55}}.heroCircuitOverlayClip{pointer-events:none;clip-path:inset(0 100% 0 0 round 22px);position:absolute;inset:0;overflow:hidden}.heroCircuitOverlay{z-index:2;pointer-events:none;will-change:transform,opacity;width:100%;height:107%;opacity:var(--heroCircuitOpacity);position:absolute;inset:0;transform:translate(0,0)}.heroCircuitOverlay.breathing{animation:5s ease-in-out infinite alternate-reverse opa}.heroCircuitOverlay[data-blur=true]{filter:saturate(1.16)}.heroCircuitOverlay[data-blend-mode=true]{mix-blend-mode:screen}.heroCircuitEnergyLayer{z-index:2;pointer-events:none;contain:layout paint style;width:110%;height:116%;display:block;position:absolute;inset:-8% -5%;overflow:hidden}.heroCircuitEnergy{--sweepTop:34%;--sweepWidth:min(340px, 32vw);--sweepRotate:0deg;--sweepDuration:8s;--sweepDelay:0s;top:var(--sweepTop);width:var(--sweepWidth);opacity:0;background:linear-gradient(90deg, transparent, var(--heroCircuitPulse), #ffffffd1, transparent);height:2px;transform:translate3d(-34vw, 0, 0) rotate(var(--sweepRotate));transform-origin:50%;animation:heroCircuitEnergySweep var(--sweepDuration) linear infinite;animation-delay:var(--sweepDelay);will-change:transform,opacity;border-radius:999px;position:absolute;left:0}.heroCircuitEnergyA{--sweepTop:34%;--sweepRotate:4deg;--sweepDelay:-1.4s;--sweepDuration:8.4s}.heroCircuitEnergyB{--sweepTop:23%;--sweepDelay:-5.2s;--sweepRotate:-6deg;--sweepDuration:10.2s;background:linear-gradient(90deg, transparent, var(--heroCircuitPulseAlt), #ffffffb8, transparent)}.heroCircuitEnergyC{--sweepTop:78%;--sweepWidth:min(420px, 38vw);--sweepRotate:-2deg;--sweepDuration:11.6s;--sweepDelay:-8.1s}.circuitLayer{transform-origin:50%}.circuitLayerBack{opacity:.72}.circuitTrace{fill:none;opacity:.54;stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round;stroke:var(--heroCircuitTrack);vector-effect:non-scaling-stroke}.circuitTrace.tight{stroke-width:1.22px;stroke:var(--heroCircuitStrong)}.circuitTrace.strong{opacity:.9;stroke-width:1.85px;stroke:var(--heroCircuitStrong)}.circuitPulse{fill:none;opacity:.98;stroke-width:2.9px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:18 760;stroke:var(--heroCircuitPulse);vector-effect:non-scaling-stroke}.heroCircuitOverlay[data-animate-pulses=true] .circuitPulse{animation:10.8s linear infinite circuitEnergy}.pulseB{stroke:var(--heroCircuitPulseAlt)}.heroCircuitOverlay[data-animate-pulses=true] .pulseB{animation-duration:12.6s;animation-delay:-4.8s}.heroCircuitOverlay[data-animate-pulses=true] .pulseC{animation-duration:14.2s;animation-delay:-7.2s}.circuitNode{opacity:1;fill:var(--heroCircuitNode)}@keyframes circuitEnergy{0%{stroke-dashoffset:560px}to{stroke-dashoffset:-120px}}@keyframes heroCircuitEnergySweep{0%{opacity:0;transform:translate3d(-34vw, 0, 0) rotate(var(--sweepRotate))}8%{opacity:.86}44%{opacity:.86}58%{opacity:0;transform:translate3d(116vw, 0, 0) rotate(var(--sweepRotate))}to{opacity:0;transform:translate3d(116vw, 0, 0) rotate(var(--sweepRotate))}}@media (prefers-reduced-motion:reduce){.heroCircuitOverlay[data-animate-pulses=true] .circuitPulse,.heroCircuitEnergy{animation:none}}body[data-theme=light] .heroCircuitOverlay[data-blur=true]{filter:saturate(1.12)}body[data-theme=light] .heroCircuitOverlay[data-blend-mode=true]{mix-blend-mode:multiply}@keyframes strokeDance{0%{stroke:#fff;stroke-width:3px;stroke-dasharray:215}to{stroke-width:0;stroke:#fff;stroke-dasharray:0}}@keyframes fadein{0%{opacity:0}to{opacity:1}}.fadeIn{animation:1.12s ease-in-out forwards fadein}@keyframes fadeinout{0%{opacity:0}50%{opacity:1}to{opacity:0}}@keyframes loaderFadePulse{0%{opacity:.42}50%{opacity:1}to{opacity:.42}}.strokeDance{animation:1.12s ease-in-out infinite alternate-reverse forwards strokeDance}html.pageTransitionPending,body.pageTransitionPending{overscroll-behavior:none;overflow:hidden!important}body.pageTransitionPending{cursor:progress}body.pageTransitionPending .reveal,body.pageTransitionPending .reveal.isVisible,body.pageTransitionPending .heroCopy.reveal,body.pageTransitionPending .heroBrand.reveal{opacity:0;transform:translateY(20px);transition:none!important;animation:none!important}.pageTransitionShutter{z-index:9999;pointer-events:auto;background:0 0;position:fixed;inset:0;overflow:hidden}.pageTransitionShutter:after{content:"";z-index:2;pointer-events:none;background:url(/assets/piratechs/gifs/Piratech-Glitch.gif);animation:1.12s ease-in-out forwards fadeinout;position:absolute;inset:0;background-position:50%!important;background-repeat:no-repeat!important;background-size:879px!important}.pageTransitionShutter.initialLoaderActive:after{display:none}.pageTransitionShutter.pageTransitionGifReset:after{animation:none}.pageTransitionBlock{z-index:1;will-change:transform;backface-visibility:hidden;background:var(--main_gradient_dark);position:absolute;overflow:hidden;transform:scaleX(1)}.pageTransitionBlock:nth-child(2n){background:linear-gradient(var(--main_gradient_angle), var(--navy), var(--main))}.pageTransitionLoader{z-index:3;pointer-events:none;background:var(--main_gradient_dark);place-items:center;display:grid;position:absolute;inset:0}.pageTransitionLoaderInner{justify-items:center;gap:20px;width:min(879px,86vw);display:grid;transform:scale(.85)}.pageTransitionGif{filter:drop-shadow(0 0 22px #00bfff52);width:100%;max-width:879px;animation:1.12s ease-in-out infinite loaderFadePulse}.pageTransitionGifReset .pageTransitionGif{animation:none}.pageLoaderProgress{width:100%;max-width:897px;overflow:hidden;border-radius:var(--circle)!important;background:0 0!important;height:6px!important}.pageLoaderProgress .pageLoaderProgressFill{border-radius:var(--circle);background:var(--main_gradient);width:0;height:100%;transition:width .18s ease-out}.pageLoaderSpinnerWrapper{position:absolute;inset:0}.pageLoaderSpinnerWrapper .pageLoaderSpinnerContainer{text-align:center;width:100%;height:100%;position:relative;transform:scale(1.15)}.pageLoaderSpinnerWrapper .pageLoaderSpinnerContainer .pageLoaderSpinner{transform-origin:50%;justify-content:center;align-items:center;display:flex;position:fixed;top:25%;left:25%;transform:translate(-25%,-25%)}.pageLoaderProgressText{grid-gap:18px;color:var(--white);letter-spacing:.08em;text-shadow:0 0 14px #00bfff6b;align-items:center;margin-top:15px;font-size:1.5rem;font-weight:600;line-height:1;display:flex}@media (prefers-reduced-motion:reduce){body.pageTransitionPending .reveal,body.pageTransitionPending .reveal.isVisible,body.pageTransitionPending .heroCopy.reveal,body.pageTransitionPending .heroBrand.reveal{opacity:1;transform:none}.pageTransitionShutter{display:none}}.textRevealPending,.elementRevealPending{visibility:hidden}.elementReveal{will-change:transform,opacity,filter,clip-path}.elementRevealAnimating{transition:none!important}.textRevealWord,.textRevealChar{vertical-align:bottom;will-change:transform,opacity,clip-path;display:inline-block}@supports ((-webkit-background-clip:text) or (background-clip:text)){.gradientTextColor .textRevealWord,.gradientTextColor .textRevealChar,.eyebrow .textRevealWord,.eyebrow .textRevealChar,.slashes .textRevealWord,.slashes .textRevealChar{color:#0000;background:var(--main_gradient);-webkit-text-fill-color:#0000;-webkit-background-clip:text!important;background-clip:text!important}}.textRevealSlide{overflow:hidden}.textRevealSlide .textRevealWord,.textRevealSlide .textRevealChar{clip-path:inset(0)}.footer{border-top:1px solid var(--border);background:linear-gradient(45deg, var(--navy-deep), var(--scrollbarTrack))}body[data-theme=light] .footer{background:#fff}.footerInner{width:100%;padding:28px var(--contentInset);grid-template-columns:1.15fr 1fr auto;align-items:center;gap:22px;display:grid}.footerBrand{align-items:center;gap:14px;display:flex}.footerBrandReveal{min-width:0}.copyright{color:var(--foreground);align-items:center;gap:2px;display:inline-flex}.footerLogo{object-fit:contain;width:54px;min-width:54px;height:54px}.footerLogo:has(.logoFullSword){height:65px}.footerBrand span{gap:7px;display:grid}.footerBrand small{color:var(--foregroundMuted);line-height:1.45}.footerNav,.footerLinks{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.footerNavReveal,.footerIconReveal{display:inline-flex}.footerLinks{justify-content:flex-end}.footerLinks a{width:38px;height:38px;color:var(--main);background:var(--surface);border:1px solid var(--border);border-radius:var(--borderRadius);place-items:center;display:grid}.footerSocials{grid-gap:12px;align-items:center;display:flex}.footerNav a{color:var(--foregroundMuted);font-size:.86rem;font-weight:800}.footerNav a:hover,.footerLinks a:hover{color:var(--main)}.cursorPointer,.buttonHoverBorder{cursor:pointer}.flex{display:flex}.flexI{display:flex!important}.column{flex-direction:column}.alignCenter{align-items:center}.row{flex-direction:row}.alignStart{align-items:flex-start}.alignEnd{align-items:flex-end}.alignStartI{align-items:flex-start!important}.spaceBetween{justify-content:space-between!important}.justifyStart{justify-content:flex-start;justify-items:flex-start}.justifyStartI{justify-content:flex-start!important;justify-items:flex-start!important}.justifyCenter{justify-content:center;justify-items:center}.justifyEnd{justify-content:flex-end;justify-items:flex-end}.textAlignLeft{text-align:left}.textAlignCenter{text-align:center}.textAlignRight{text-align:right}.grid{display:grid}.gridRow{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}.gap0{grid-gap:0px;gap:0}.gap5{grid-gap:5px;gap:5px}.gap10{grid-gap:10px;gap:10px}.gap15{grid-gap:15px;gap:15px}.gap16{grid-gap:16px;gap:16px}.gap20{grid-gap:20px;gap:20px}.gap25{grid-gap:25px;gap:25px}.gap30{grid-gap:30px;gap:30px}.gap35{grid-gap:35px;gap:35px}.gap15I{grid-gap:15px!important;gap:15px!important}.buttonLink,.googleButton,.filterButton{color:var(--foreground);background:var(--surface);border:1px solid var(--border);border-radius:var(--borderRadius);transition:color var(--transition),background var(--transition),border-color var(--transition),transform var(--transition),box-shadow var(--transition),opacity var(--transition);justify-content:center;align-items:center;gap:8px;padding:8px 14px 9px;font-size:.86rem;font-weight:800;display:inline-flex}.buttonLink.primary,.filterButton.activeFilter{border-color:var(--main);background:var(--main_gradient);color:var(--neon_badge_font_color);box-shadow:0 12px 30px #00bfff33}.buttonLink.ghost,.googleButton,.filterButton{background:#00bfff29;-webkit-backdrop-filter:blur(15px)!important;backdrop-filter:blur(15px)!important}.buttonHoverBorder{transition:border-color var(--transition)}.buttonLink:hover,.googleButton:hover,.filterButton:hover,.buttonHoverBorder:hover{border-color:var(--main)}.disabled{opacity:.5;pointer-events:none}.fullBleed{width:100vw;margin-left:calc(50% - 50vw)}.scrollToTop{opacity:0;z-index:18;pointer-events:none;width:48px;height:48px;color:var(--foreground);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:var(--circle);border:1px solid var(--border);background:var(--main_gradient);right:max(20px,env(safe-area-inset-right));bottom:max(37px,env(safe-area-inset-bottom));transition:filter var(--transition),opacity var(--transition),transform var(--transition),border-color var(--transition),box-shadow var(--transition),background var(--transition);place-items:center;display:grid;position:fixed;transform:translateY(14px)scale(.94);box-shadow:0 18px 42px #00000047,0 0 24px #00bfff33}.scrollToTop.visible{opacity:1;pointer-events:auto;transform:translate(0,0)scale(1)}.scrollToTop:hover{filter:brightness(1.1);border-color:var(--main);box-shadow:0 20px 50px #00000052,0 0 34px #00bfff57}.scrollToTop i{color:#fff;font-size:1rem}.reveal{opacity:1;filter:blur();transform-origin:50%;transform:none}body.revealReady .reveal:not(.isVisible){--reveal-x:0;--reveal-y:22px;--reveal-blur:1.6px;opacity:0;will-change:opacity,transform,filter;transform:translate3d(var(--reveal-x), var(--reveal-y), 0)}body.revealReady .reveal.revealLeft:not(.isVisible){--reveal-x:-32px;--reveal-y:0}body.revealReady .reveal.revealRight:not(.isVisible){--reveal-x:32px;--reveal-y:0}.reveal.isVisible{opacity:1;filter:blur();transition-delay:var(--reveal-delay,0s);transition:opacity .5s,filter .46s,transform .58s cubic-bezier(.22,1,.36,1);transform:translate(0,0)}.heroCopy.reveal.isVisible,.heroBrand.reveal.isVisible{transition:opacity .3s,transform .36s cubic-bezier(.22,1,.36,1)}body.revealReady .heroCopy.reveal,body.revealReady .heroBrand.reveal{animation:.5s cubic-bezier(.22,1,.36,1) both heroRevealIn}body.revealReady .heroCopy.reveal{--hero-from-x:-14px;--hero-from-y:0}body.revealReady .heroBrand.reveal{--hero-from-x:0;--hero-from-y:16px}@keyframes heroRevealIn{0%{opacity:0;transform:translate3d(var(--hero-from-x,0), var(--hero-from-y,18px), 0)}to{opacity:1;transform:translate(0,0)}}body.revealReady .heroCopy.reveal:not(.isVisible){--reveal-x:-14px;--reveal-y:0}body.revealReady .heroBrand.reveal:not(.isVisible),body.revealReady .pageBadge.reveal:not(.isVisible){--reveal-y:16px;--reveal-blur:2px}body.revealReady .projectCard.reveal:not(.isVisible),body.revealReady .skillTile.reveal:not(.isVisible),body.revealReady .serviceCard.reveal:not(.isVisible),body.revealReady .galleryTile.reveal:not(.isVisible),body.revealReady .statCard.reveal:not(.isVisible){--reveal-y:28px}body.revealReady .sectionTitle.reveal:not(.isVisible){--reveal-x:-10px;--reveal-y:10px;--reveal-blur:1.2px}body.revealReady .capabilityGrid.reveal:not(.isVisible),body.revealReady .contactBand.reveal:not(.isVisible){--reveal-y:24px}@media (prefers-reduced-motion:reduce){.reveal,.reveal.isVisible,body.revealReady .reveal:not(.isVisible){opacity:1;filter:none;will-change:auto;transition:none;transform:none}body.revealReady .heroCopy.reveal,body.revealReady .heroBrand.reveal{animation:none}}.techIcon{color:var(--techColor,var(--main))}.techIcon-admin{--techColor:var(--tech-admin)}.techIcon-angular{--techColor:var(--tech-angular)}.techIcon-api,.techIcon-rest,.techIcon-data-ui,.techIcon-websockets{--techColor:var(--tech-api)}.techIcon-auth{--techColor:var(--tech-auth)}.techIcon-csharp{--techColor:var(--tech-csharp)}.techIcon-css{--techColor:var(--tech-css)}.techIcon-data,.techIcon-data-apps{--techColor:var(--tech-data)}.techIcon-design-studies,.techIcon-game-ui{--techColor:var(--tech-design)}.techIcon-firebase{--techColor:var(--tech-firebase)}.techIcon-github{--techColor:var(--tech-github)}.techIcon-html{--techColor:var(--tech-html)}.techIcon-javascript{--techColor:var(--tech-javascript)}.techIcon-json{--techColor:var(--tech-json)}.techIcon-maps{--techColor:var(--tech-maps)}.techIcon-motion{--techColor:var(--tech-motion)}.techIcon-mysql{--techColor:var(--tech-mysql)}.techIcon-next-js{--techColor:var(--tech-next)}.techIcon-php{--techColor:var(--tech-php)}.techIcon-pwa,.techIcon-pwa-shells{--techColor:var(--tech-pwa)}.techIcon-python{--techColor:var(--tech-python)}.techIcon-react{--techColor:var(--tech-react)}.techIcon-sass{--techColor:var(--tech-sass)}.techIcon-shopify{--techColor:var(--tech-shopify)}.techIcon-sql{--techColor:var(--tech-sql)}.techIcon-typescript{--techColor:var(--tech-typescript)}.techIcon-unity{--techColor:var(--tech-unity)}.techIcon-weather-api{--techColor:#fbbc05}.techIcon-wordpress{--techColor:var(--tech-wordpress)}.roleIconGradientWrap{align-items:center;line-height:0;display:inline-flex}.roleIconGradientDefs{width:0;height:0;position:absolute;overflow:hidden}.roleIconGradient{flex:none}body.bottomSheetOpen{overflow:hidden}.bottomSheetLayer{opacity:0;z-index:60;pointer-events:none;position:fixed;inset:0}.bottomSheetLayerOpen{opacity:1}.bottomSheetLayer:not(.bottomSheetLayerOpen) .bottomSheet,.bottomSheetLayer:not(.bottomSheetLayerOpen) .bottomSheetBackdrop{pointer-events:none}.bottomSheetBackdrop{opacity:0;z-index:0;pointer-events:auto;transform-origin:bottom;-webkit-backdrop-filter:blur()saturate();background:#030f2033;border:none;position:absolute;inset:0}body[data-theme=light] .bottomSheetBackdrop{background:#f4f9fc47}.bottomSheet{z-index:1;opacity:0;pointer-events:auto;color:var(--foreground);box-shadow:var(--shadow);background:var(--surfaceStrong);width:min(1120px,100vw - 28px);height:var(--bottom-sheet-height,65dvh);border-radius:var(--borderRadius) var(--borderRadius) 0 0;display:grid;position:absolute;bottom:0;left:50%;overflow:hidden;transform:translate(-50%)}.bottomSheetHandle{z-index:3;border-radius:var(--circle);background:#ffffff5c;width:54px;height:5px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.bottomSheetClose{z-index:4;position:absolute;top:16px;right:16px}.projectDetailSheet{background:linear-gradient(135deg, rgba(var(--navy_rgb), .96), #030f20f5)}.projectDetailSheetInner{grid-gap:0;flex-direction:column;min-height:0;display:flex;overflow:auto}.projectDetailMedia{height:100%;min-height:0;max-height:420px;margin:0;position:relative;overflow:hidden}.projectDetailMedia:after{content:"";pointer-events:none;background:linear-gradient(180deg, rgba(var(--navy_rgb), .8), transparent);position:absolute;inset:0}.projectDetailMedia img{object-fit:cover;width:100%;height:100%;display:block}.projectDetailContent{align-content:center;gap:16px;min-width:0;padding:56px clamp(22px,4vw,48px) 34px;display:grid}.projectDetailTitle{width:100%}.projectDetailMeta{z-index:4;flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:absolute;top:16px;left:16px}.projectDetailContent h2{font-size:clamp(2rem,5vw,4.5rem);line-height:1}.projectDetailSummary{color:var(--foregroundMuted);font-size:clamp(.98rem,1.4vw,1.08rem);line-height:1.7}.projectDetailActions{margin-top:4px}.projectDetailMissing{grid-template-columns:1fr}.projectCaseStudyPage{padding-top:140px}.projectCaseStudyShell{gap:18px;display:grid}.projectCaseStudyShell .projectDetailSheetInner{min-height:620px;box-shadow:var(--shadow);background:linear-gradient(135deg, rgba(var(--navy_rgb), .96), #030f20f5);border:1px solid var(--border);border-radius:var(--borderRadius);overflow:hidden}.projectCaseStudyBack{justify-self:start}@media (max-width:760px){.bottomSheet{width:100%;height:min(72dvh,720px)}.projectDetailSheetInner{grid-template-columns:1fr}.projectDetailMedia{border-right:none;border-bottom:1px solid var(--border);height:28dvh}.projectDetailMedia:after{background:linear-gradient(#0000,#030f20c2)}.projectDetailContent{align-content:start;padding:34px 18px 28px}}.sectionInner:has(.projectsSlider) ::-webkit-scrollbar{display:none!important}.sectionInner:has(.projectsSlider) ::-webkit-scrollbar-track{display:none!important}.sectionInner:has(.projectsSlider) ::-webkit-scrollbar-thumb{display:none!important}.sectionInner:has(.projectsSlider) ::-webkit-scrollbar-corner{display:none!important}.sectionInner:has(.projectsSlider) .projectGrid{grid-gap:15px;flex-direction:column;display:flex}.sectionInner:has(.projectsSlider) .projectGrid .projectsSlider .projectsSlider_Inner{grid-gap:15px;flex-direction:row;display:flex}.sectionInner:has(.projectsSlider) .projectGrid .projectsSlider .projectsSlider_Inner .projectCard{-webkit-user-select:none;user-select:none;min-width:820px}.avatarContainer{position:relative}.avatarOverlayContainer{position:absolute}.ceoHeadshotContainer{position:absolute;top:50%;left:595px;transform:translateY(-50%)}.ceoHeadshot{z-index:-3;object-fit:cover;aspect-ratio:1;object-position:center top;border-radius:100%;position:relative}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes strokeAnimation{0%{stroke-width:0}to{stroke-width:20px}}@keyframes avatarArcTextRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pictureWaves{z-index:-1;background-position:50%;background-repeat:no-repeat;background-size:55%;border-radius:100%;justify-content:center;align-items:center;display:flex;position:relative}.pictureWaves:after{content:"";background-position:50%;background-repeat:no-repeat;background-size:contain;width:100%;height:100%;animation:55s linear infinite reverse rotate;position:absolute;top:0;left:0}.blackWaves{overflow:visible}.blackWaves path{transform-origin:50%;animation:7s linear infinite reverse rotate,3s ease-in-out infinite alternate strokeAnimation}.avatarArcTextWrap{z-index:2;pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.avatarArcTextSvg{transform-origin:50%;width:100%;height:100%;animation:avatarArcTextRotate var(--avatarArcRotationSpeed,5s) linear infinite reverse;display:block;overflow:visible}.avatarArcTextSvg.clockwise{animation-direction:normal}.avatarArcText{letter-spacing:4px;fill:var(--foreground);text-transform:uppercase;font-size:21px;font-weight:600}.ceoHeadshotWrapperOverlay{z-index:-2;background:linear-gradient(var(--main_gradient_angle), rgba(var(--piratechsNeon_rgb), .45), rgba(var(--piratechsTeal_rgb), .45));border-radius:100%;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.avatarArcTextSvg{animation:none}}.notificationWidget,.notificationToggle{position:relative}.notificationBadge{background:var(--main);border-radius:var(--circle);min-width:18px;height:18px;color:var(--neon_badge_font_color);place-items:center;padding:0 5px;font-size:.66rem;font-weight:900;line-height:1;display:grid;position:absolute;top:-7px;right:-7px;box-shadow:0 8px 20px #00bfff33}.notificationPanel{opacity:0;z-index:30;pointer-events:none;transform-origin:top;color:var(--foreground);box-shadow:var(--shadow);border:1px solid var(--border);background:var(--surfaceStrong);border-radius:var(--borderRadius);width:min(340px,100vw - 32px);transition:opacity var(--transition),transform var(--transition);gap:12px;padding:14px;display:grid;position:absolute;top:calc(100% + 14px);right:0;transform:scaleY(0)translateY(8px)}.notificationOpen .notificationPanel{opacity:1;pointer-events:auto;transform:scale(1)translateY(0)}.notificationHeader{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding-bottom:10px;display:flex}.notificationHeader span,.notificationCopy{gap:3px;min-width:0;display:grid}.notificationHeader strong,.notificationCopy strong{color:var(--foreground);font-size:.9rem}.notificationHeader small,.notificationCopy small{color:var(--foregroundMuted);font-size:.76rem;line-height:1.45}.notificationHeader>i{color:var(--main)}.notificationList{gap:9px;max-height:min(420px,58vh);padding-right:2px;display:grid;overflow:auto}.notificationList.overflowingNotificationList{padding-right:10px}.notificationItem{border-radius:var(--borderRadius);background:#00bfff0f;border:1px solid #00bfff29;grid-template-columns:auto 1fr;align-items:center;gap:10px;padding:10px;display:grid}.notificationIcon{width:36px;height:36px;color:var(--main);border-radius:var(--borderRadius);background:#00bfff1a;border:1px solid #00bfff38;place-items:center;display:grid}@media (max-width:1450px){.ceoHeadshotContainer{left:500px!important}.sectionTitle h2{font-size:clamp(2rem,4.5dvw,4.4rem)}}@media (max-width:1370px){.heroGrid,.backendGrid{grid-template-columns:1fr}.heroBrand{order:-1}.projectGrid{grid-template-columns:repeat(3,minmax(260px,1fr))}}@media (max-width:1100px){.desktopNav{display:none}.mobileMenuButton{display:inline-grid}.navActions{margin-left:auto}}@media (max-width:992px){:root{--space:18px;--contentInset:18px}.pageTransitionShutter:after{background-size:700px!important}.wordLogoHomeGraphic{--w:185px}.wordLogoNav{--w:150px}.heroLogo{max-width:250px}.heroSection{min-height:auto}.heroLogoPlate{width:min(82vw,280px);min-height:405px}.experienceGrid,.detailCards,.serviceGrid,.galleryGrid,.capabilityGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){.loaderWord{--w:250px}.loaderProgress{font-size:1.33rem}.ceoHeadshotContainer{top:-5%;transform:scale(.85);left:205px!important}.pageTransitionShutter:after{background-size:500px!important}.wordLogoNav{--w:103px}.navBar{min-height:68px}.pageSection{padding:56px var(--space)}.heroSection{padding-top:142px}.heroCopy h1{font-size:clamp(2.15rem,12vw,3.6rem)}.heroActions,.projectActions{flex-direction:column;align-items:stretch}.heroActionReveal,.projectActionReveal,.buttonLink,.projectActions a{width:100%}.experienceGrid,.detailCards,.serviceGrid,.galleryGrid,.capabilityGrid{grid-template-columns:1fr}.projectGrid{display:flex}.projectCard{width:82vw}.footerInner{flex-direction:column;display:flex}.footerBrand{align-items:flex-start}.footerLinks{justify-content:flex-start}}@media (max-width:520px){.pageTransitionShutter:after{background-size:350px!important}.homeButton,.iconButton,.brandLogo{width:36px;height:36px}.navBar{gap:8px}.scrollToTop{width:42px;height:42px;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom))}}@media (max-width:375px){.footerBrand{align-items:center}.footerContent .sep,.footerContent small{display:none}}@media (max-width:340px){.footerLinks{flex-direction:column}}html:has(.mobile) .scrollToTop{right:max(20px,env(safe-area-inset-right));bottom:max(28px,env(safe-area-inset-bottom))}html:has(.mobile):has(.nonPWA){right:max(25px,env(safe-area-inset-right));bottom:max(30px,env(safe-area-inset-bottom))}html[data-perf=lite] .header,html[data-perf=lite] .scrollToTop{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}html[data-perf=lite] .pageSection:not(.heroSection){content-visibility:auto;contain-intrinsic-size:auto 520px}
