@font-face{font-family:berkeley mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/BerkeleyMono-Regular.woff2)format("woff2")}@font-face{font-family:berkeley mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/BerkeleyMono-Bold.woff2)format("woff2")}@font-face{font-family:berkeley mono;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/BerkeleyMono-Oblique.woff2)format("woff2")}@font-face{font-family:berkeley mono;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/BerkeleyMono-Bold-Oblique.woff2)format("woff2")}@font-face{font-family:inter;font-style:normal;font-display:swap;src:url(/fonts/Inter.var.woff2)format("woff2")}@font-face{font-family:inter;font-style:italic;font-display:swap;src:url(/fonts/Inter-italic.var.woff2)format("woff2")}@font-face{font-family:expletus sans;font-style:normal;font-display:swap;src:url(/fonts/ExpletusSans-VariableFont_wght.ttf)format("truetype")}@font-face{font-family:expletus sans;font-style:italic;font-display:swap;src:url(/fonts/ExpletusSans-Italic-VariableFont_wght.ttf)format("truetype")}body{font-family:inter,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,sans-serif;line-height:1.7;font-size:17px;font-weight:400;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1{font-family:berkeley mono,monospace;font-size:48px;font-style:normal;font-weight:400;line-height:1.2;letter-spacing:-.02em;margin-bottom:24px}h2{font-family:berkeley mono,monospace;font-size:40px;font-style:normal;font-weight:400;line-height:1.25;letter-spacing:-.02em;margin-bottom:20px}h3{font-family:berkeley mono,monospace;font-size:28px;font-style:normal;font-weight:400;line-height:1.3;letter-spacing:-.01em;margin-bottom:16px}h4{font-family:berkeley mono,monospace;font-size:22px;font-style:normal;font-weight:400;line-height:1.4;margin-bottom:12px}code{font-family:berkeley mono,monospace;font-size:.88em;background-color:var(--colorBgAlt);padding:2px 7px;border-radius:4px;border:1px solid var(--colorGranite)}html.dark code{background-color:var(--colorBgAlt)}.highlight code,.chroma code{background-color:transparent;padding:0;border-radius:0;border:none}html{--colorBg:#F7F2EA;--colorText:#111111;--colorGreen:#B7E3A5;--colorLinks:#3B632B;--colorYellow:#EFE384;--colorLavender:#E4C0F7;--colorBlue:#B8E3FA;--colorGranite:#D6D1BF;--colorOrange:#EFCBA4;--borderRadius:12px;--colorTextMuted:#555555;--colorBgAlt:#EDE8E0;--colorBgCode:#1a1a1a;--colorTextCode:#f0f0f0;--shadow:0 4px 20px rgba(0, 0, 0, 0.08);--shadowHover:0 8px 30px rgba(0, 0, 0, 0.12);--transition:0.3s cubic-bezier(0.4, 0, 0.2, 1);--colorFooterText:#AAAAAA}html.dark{--colorBg:#1a1a1a;--colorText:#f0f0f0;--colorGreen:#4a7a3a;--colorLinks:#8fc67a;--colorYellow:#9a8a3a;--colorLavender:#7a5a8a;--colorBlue:#4a7a9a;--colorGranite:#4a483a;--colorOrange:#8a6a4a;--colorTextMuted:#aaaaaa;--colorBgAlt:#252525;--colorBgCode:#0d0d0d;--colorTextCode:#e0e0e0;--shadow:0 4px 20px rgba(0, 0, 0, 0.3);--shadowHover:0 8px 30px rgba(0, 0, 0, 0.4);--colorFooterText:#AAAAAA}body,#header,footer,.sectionBig,.sectionTestimonials,.sectionProject,.sectionLeftImg,.sectionBreak{transition:background-color .3s ease,color .3s ease}body{margin:0 auto;padding:0;background-color:var(--colorBg);color:var(--colorText);max-width:100%;width:1200px}img{user-select:none}a{color:var(--colorLinks);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:var(--transition)}a:hover{text-decoration-thickness:2px}a img{border:none !important}blockquote{font-style:italic;padding:4px 24px;border-left:3px solid var(--colorLinks);border-radius:0;margin:28px 0;color:var(--colorTextMuted)}#header{width:100%;margin:0 auto;height:100px;display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:0 4%;background-color:var(--colorBg);transition:var(--transition);transition-property:top,box-shadow,background-color;box-sizing:border-box}body.scrolledDown{padding-top:100px}body.scrolledDown #header{position:fixed;top:-100px;left:50%;transform:translateX(-50%);width:1200px;max-width:100%;padding:0 4%;box-shadow:var(--shadow);z-index:100;border-radius:var(--borderRadius);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background-color:rgba(247,242,234,.95)}html.dark body.scrolledDown #header{background-color:rgba(26,26,26,.95)}body.scrolledDown #header.showHeader{top:10px}#header[data-page=security]{background-color:var(--colorGreen)}#header[data-page=software]{background-color:var(--colorYellow)}#header[data-page=games]{background-color:var(--colorLavender)}#header[data-page=about]{background-color:var(--colorGranite)}#header .headerLogo{min-width:160px}#header .headerLogo img{max-width:160px;height:auto;position:relative;top:5px}#header .headerLogo .logo-dark{display:none}html.dark #header .headerLogo .logo-light{display:none}html.dark #header .headerLogo .logo-dark{display:block}#header #navButton{display:none}#header nav ul.menu{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;list-style-type:none;padding:0}#header nav ul.menu li{font-size:20px;font-style:normal;font-weight:400;line-height:normal;letter-spacing:.2px;margin:0 0 0 32px}#header nav ul.menu li a{color:var(--colorText);text-decoration:none}#header nav ul.menu li a:hover,#header nav ul.menu li a.active{text-decoration:underline}#letsChatButton{display:inline-flex;padding:10px 20px;justify-content:center;align-items:center;border-radius:50px;background-color:var(--colorText);text-decoration:none;color:var(--colorBg);font-size:14px;font-weight:500;letter-spacing:.3px;transition:var(--transition);border:2px solid var(--colorText);white-space:nowrap;flex-shrink:0;box-shadow:var(--shadow)}#letsChatButton:hover{background-color:var(--colorBg);color:var(--colorText);transform:translateY(-2px);box-shadow:var(--shadowHover)}.sectionBig{margin:0 auto 50px;border-radius:0 0 var(--borderRadius)var(--borderRadius);background-color:var(--colorBg);padding:4%}.sectionBig[data-color=green]{background-color:var(--colorGreen)}.sectionBig[data-color=yellow]{background-color:var(--colorYellow)}.sectionBig[data-color=lavender]{background-color:var(--colorLavender)}.sectionBig[data-color=granite]{background-color:var(--colorGranite)}.sectionBig[data-color=blue]{background-color:var(--colorBlue)}.sectionBig[data-color=orange]{background-color:var(--colorOrange)}.sectionList{list-style-type:none;padding:0}.sectionList li{position:relative}.sectionList li::before{content:'\2192';font-size:30px;padding-inline:.4ch;font-family:berkeley mono;padding-right:10px;margin-left:-15px;margin-top:-2px;position:absolute;left:-20px}.sectionBig .sectionFlex{display:flex;justify-content:center;align-items:center;gap:0 50px}.sectionPreheader{font-variant:small-caps;font-style:normal;font-weight:400}.sectionBig .sectionHeader{margin-top:0;margin-bottom:20px;overflow-wrap:break-word;hyphens:auto}.sectionBig .sectionLeft{flex-shrink:10}.sectionParagraph{font-style:normal;font-weight:400}.sectionBig .sectionList{margin:20px 0}.sectionBig .sectionList li{margin:40px 0 40px 30px}a.sectionButton{display:inline-flex;padding:14px 32px;justify-content:center;align-items:center;border-radius:50px;text-decoration:none;font-size:16px;font-weight:500;letter-spacing:.3px;margin-top:24px;transition:var(--transition);border:2px solid var(--colorText);background-color:var(--colorBg);color:var(--colorText);box-shadow:var(--shadow)}a.sectionButton:hover{background-color:var(--colorText);color:var(--colorBg);transform:translateY(-2px);box-shadow:var(--shadowHover)}[data-color=transparent] a.sectionButton{background-color:var(--colorText) !important;color:var(--colorBg) !important}[data-color=transparent] a.sectionButton:hover{background-color:var(--colorBg) !important;color:var(--colorText) !important}.sectionBig .sectionRight{flex-shrink:1;max-width:544px}.sectionBig .sectionRight .sectionImage{width:100%;height:auto;margin:0}.sectionBig[data-kind=section] .sectionFlex{align-items:flex-start}.sectionBig[data-kind=subsection]{border-radius:var(--borderRadius)}.sectionBig[data-kind=subsection] .sectionRight .sectionImage{width:500px;height:auto}.clientsList{width:100%;overflow:hidden;margin:100px auto 50px;-webkit-mask-image:linear-gradient(to right,transparent,black 20%,black 80%,transparent);mask-image:linear-gradient(to right,transparent,black 20%,black 80%,transparent)}.clientsTrack{display:flex;align-items:center;gap:50px;width:max-content;animation:scroll 40s linear infinite}@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 25px))}}.clientsTrack img{height:50px;flex-shrink:0;filter:grayscale(.9);transition:filter .3s ease}.clientsTrack img:hover{filter:grayscale(0)}.sectionBreak{margin:100px auto;text-align:center;max-width:600px;padding:0 4%}.sectionBreak h2{margin-top:0;margin-bottom:15px}.sectionBreak p{max-width:600px;margin:0 auto 30px;font-weight:400;line-height:32px}.sectionLeftImg{width:90%;margin:0 auto 50px;border-radius:var(--borderRadius);background-color:var(--colorBg);padding:4%}.sectionLeftImg .sectionTop{align-self:flex-start}.sectionLeftImg .sectionHeader{margin-top:0}.sectionLeftImg .sectionFlex{display:flex;justify-content:space-between;align-items:flex-start;gap:0 50px}.sectionLeftImg .sectionLeft{flex-shrink:0}.sectionLeftImg .sectionLeft .sectionImage{width:544px;height:auto}.sectionLeftImg .sectionList{margin:20px 0}.sectionLeftImg .sectionList li{margin:40px 0 40px 30px}.sectionLeftImg .sectionList li::before{margin-top:-10px}.sectionTestimonials{margin:50px auto;border-radius:var(--borderRadius);background-color:var(--colorBlue);padding:80px 60px 60px;position:relative;overflow:hidden}.sectionTestimonials div.sectionTop{align-self:flex-start;margin-bottom:50px}.sectionTestimonials div.sectionTop span.sectionPreheader{font-variant:small-caps;font-style:normal;font-weight:400}.sectionTestimonials div.sectionTop .sectionHeader{margin-top:0}.sectionTestimonials .testimonialCarousel{position:relative;min-height:280px}.sectionTestimonials .testimonialSlide{position:absolute;top:0;left:0;width:100%;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .5s ease,transform .5s ease}.sectionTestimonials .testimonialSlide.active{opacity:1;transform:translateY(0);pointer-events:auto;position:relative}.sectionTestimonials .testimonialSlide.exiting{opacity:0;transform:translateY(-12px);position:absolute}.sectionTestimonials .testimonialQuoteMark{font-size:96px;line-height:.6;font-weight:700;opacity:.15;margin-bottom:20px;user-select:none}.sectionTestimonials p.testimonialText{font-size:1.25em;font-weight:500;line-height:1.7;margin:0 0 40px;max-width:800px}.sectionTestimonials .testimonialAttribution{display:flex;align-items:center;gap:20px}.sectionTestimonials img.testimonialLogo{width:48px;height:48px;object-fit:contain;flex-shrink:0;opacity:.7}.sectionTestimonials p.testimonialAuthor{font-style:italic;font-weight:400;margin:0;opacity:.8;font-size:.95em}.sectionTestimonials .testimonialNav{display:flex;justify-content:space-between;align-items:center;margin-top:50px}.sectionTestimonials .testimonialDots{display:flex;gap:10px;align-items:center}.sectionTestimonials .testimonialDot{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--colorText);background:0 0;padding:0;cursor:pointer;opacity:.4;transition:opacity .3s ease,background-color .3s ease,transform .3s ease}.sectionTestimonials .testimonialDot:hover{opacity:.7}.sectionTestimonials .testimonialDot.active{background-color:var(--colorText);opacity:1;transform:scale(1.2)}.sectionTestimonials .testimonialButtons{display:flex;align-items:center;gap:10px}.sectionTestimonials .testimonialButtonLeft,.sectionTestimonials .testimonialButtonRight{display:inline-flex;width:44px;height:44px;justify-content:center;align-items:center;border-radius:50%;background-color:transparent;text-decoration:none;color:var(--colorText);font-family:berkeley mono;font-size:28px;line-height:1;transition:.3s;transition-property:background-color,color;border:1.5px solid var(--colorText);cursor:pointer;padding:0}.sectionTestimonials .testimonialButtonLeft:hover,.sectionTestimonials .testimonialButtonRight:hover{background-color:var(--colorText);color:var(--colorBg)}.sectionProject{width:92%;margin:25px auto;border-radius:var(--borderRadius);background-color:var(--colorBg);padding:4%}.sectionProject[data-color=green]{background-color:var(--colorGreen)}.sectionProject[data-color=yellow]{background-color:var(--colorYellow)}.sectionProject[data-color=lavender]{background-color:var(--colorLavender)}.sectionProject[data-color=granite]{background-color:var(--colorGranite)}.sectionProject[data-color=blue]{background-color:var(--colorBlue)}.sectionProject[data-color=orange]{background-color:var(--colorOrange)}.sectionProject .sectionTop{display:flex;justify-content:space-between;align-items:flex-start;gap:0 50px}.projectLogo{max-height:50px;max-width:200px}.sectionProject .sectionHeader{margin-top:0}.sectionProject .sectionTopRight .sectionImage{width:300px;height:auto;margin-top:20px}body[data-page=games] .sectionProject .sectionTopRight .sectionImage{width:200px;height:200px;max-width:200px;max-height:200px;object-fit:contain}.sectionProject .sectionList{margin:0 0 50px;display:flex;flex-wrap:wrap;gap:0 10px;justify-content:space-around;align-items:flex-start}.sectionProject .sectionList li{margin:10px 20px;width:42%}.sectionBigBites{list-style-type:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 10px;justify-content:space-between;align-items:flex-start}.sectionBigBites li::before{content:'\2924';font-size:30px;padding-inline:.4ch;font-family:berkeley mono;padding-right:10px;position:absolute;right:-10px;top:20px}.sectionBigBites li{position:relative;margin:0;width:42%;min-height:200px;border-top:1px solid var(--colorText);padding:0 1%;transition:.4s;transition-property:background-color,color;line-height:22px;font-size:16px}.sectionBigBites li:hover{background-color:var(--colorBgAlt)}.sectionBigBites a{text-decoration:none;color:var(--colorText)}.sectionBigBiteDate{font-variant:small-caps;text-transform:uppercase;font-style:normal;font-weight:400;margin:10px 0 0;display:block}.sectionBigBites h4{margin:0;line-height:32px}.sectionBigBites p{margin-top:10px}.sectionCustomHTML{width:92%;margin:0 auto;border-radius:var(--borderRadius);background-color:var(--colorBg);padding:4%}.postMeta{display:flex;justify-content:space-between;align-content:space-between;width:85%;margin:0 auto}.postMeta .metaLeft{flex-grow:1;flex-shrink:1;width:50%}.postMeta .metaLeft img{margin-top:10%;max-width:80%;max-height:400px;width:auto;height:auto;border-radius:var(--borderRadius)}html:not(.dark) .postMeta .metaLeft img{mix-blend-mode:multiply}.postMeta .metaRight{flex-grow:2;flex-shrink:1;width:45%}.postCategory,.postTag{border-radius:var(--borderRadius);padding:10px;text-decoration:none;color:var(--colorText);display:inline-block;transition:var(--transition)}.postCategory{background-color:var(--colorGreen)}.postTag{background-color:var(--colorGranite)}.postCategory:hover,.postTag:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.postContent{width:85%;margin:50px auto 0}.postContent h2{font-size:28px;line-height:1.3;margin-top:56px;margin-bottom:16px;padding-top:8px}.postContent h3{font-size:22px;line-height:1.35;margin-top:40px;margin-bottom:12px}.postContent h4{font-size:18px;line-height:1.4;margin-top:32px;margin-bottom:10px}.postContent p{margin-bottom:1.25em}.postContent ul,.postContent ol{margin:16px 0 24px;padding-left:1.5em}.postContent ul li,.postContent ol li{margin-bottom:.5em}.seriesNav{border:1px solid var(--colorGranite);border-radius:8px;padding:.8em 1em;margin:1.5em 0;font-size:.93em;line-height:1.8}.seriesNav strong:first-child{font-size:.95em;letter-spacing:.01em}.seriesNav a{text-decoration-thickness:1px}.postContent img{max-width:90%;height:auto;display:block;margin:24px auto;border-radius:var(--borderRadius)}html:not(.dark) .postContent img{mix-blend-mode:multiply}.postContent hr{border:none;border-top:1px solid var(--colorGranite);margin:48px 0}.postContent .table-wrapper{overflow-x:auto;margin:24px 0;-webkit-overflow-scrolling:touch}.postContent table{width:100%;border-collapse:collapse;font-family:berkeley mono,monospace;font-size:14px;line-height:1.5}.postContent table th,.postContent table td{padding:10px 16px;text-align:left;border-bottom:1px solid var(--colorGranite)}.postContent table th{font-family:inter,sans-serif;font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--colorTextMuted);border-bottom:2px solid var(--colorGranite)}.postContent table tr:last-child td{border-bottom:none}footer{background-color:var(--colorText);color:var(--colorFooterText);width:92%;padding:80px 3% 30px;text-align:center;margin:120px auto 0;border-radius:var(--borderRadius)var(--borderRadius)0 0}html.dark footer{background-color:#0d0d0d}footer .footerLogo{margin:0 auto;width:220px;display:block}footer nav{max-width:600px;margin:50px auto 0}footer nav ul.menu{list-style-type:none;padding:0;display:flex;flex-wrap:wrap;justify-content:space-between;align-content:space-between;gap:30px 0}footer nav ul.menu li{font-size:20px;font-style:normal;font-weight:400;line-height:normal;letter-spacing:.2px;flex-grow:1;width:200px}footer nav ul.menu li a{color:var(--colorFooterText);text-decoration:none}footer nav ul.menu li a:hover,footer nav ul.menu li a.active{text-decoration:underline}footer div#socials{margin-top:60px;display:flex;justify-content:center;gap:30px;align-items:center}footer div#socials a img{width:25px;height:auto;filter:brightness(0)invert(1)}footer p#copyright{margin:100px auto 0;font-size:12px;line-height:18px}.page404{text-align:center;padding:120px 4% 80px}.page404 h1{font-size:96px;margin-bottom:16px}.page404 p{font-size:18px;color:var(--colorTextMuted);margin-bottom:32px}.blogHero{margin:0 auto;padding:80px 8% 60px}.blogHero h1{margin:0 0 12px;font-size:48px;line-height:1.2}.blogHero p{margin:0;max-width:540px;font-size:18px;line-height:1.6;color:var(--colorTextMuted)}nav.pagination{display:flex;justify-content:center;align-items:center;gap:24px;margin-top:40px;padding-top:24px;border-top:1px solid var(--colorText);font-family:berkeley mono,monospace;font-size:15px}nav.pagination a{color:var(--colorText);text-decoration:none;padding:8px 16px;border-radius:var(--borderRadius);transition:var(--transition)}nav.pagination a:hover{background-color:var(--colorBgAlt)}nav.pagination .pagination-info{color:var(--colorTextMuted)}nav.pagination .pagination-disabled{color:var(--colorTextMuted);opacity:.4;padding:8px 16px}.sectionBig[data-animation]{position:relative;overflow:hidden}canvas.sectionAnimation{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,black 100%);mask-image:linear-gradient(to bottom,transparent 0%,black 100%)}.sectionBig[data-animation] .sectionTop,.sectionBig[data-animation] .sectionFlex{position:relative;z-index:1}.sectionAnimationShapes{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,black 100%);mask-image:linear-gradient(to bottom,transparent 0%,black 100%)}.sectionAnimationShapes .shape{position:absolute;opacity:.45}html.dark .sectionAnimationShapes .shape{opacity:.3}.sectionAnimationShapes .shape1{width:160px;height:160px;background:rgba(160,100,200,.6);border-radius:50%;top:8%;left:6%;animation:shapeFloat1 22s ease-in-out infinite}html.dark .sectionAnimationShapes .shape1{background:rgba(180,130,230,.5)}.sectionAnimationShapes .shape2{width:120px;height:120px;background:rgba(130,80,190,.55);clip-path:polygon(50% 0%,100% 100%,0% 100%);top:50%;left:72%;animation:shapeFloat2 28s ease-in-out infinite}html.dark .sectionAnimationShapes .shape2{background:rgba(150,100,210,.45)}.sectionAnimationShapes .shape3{width:180px;height:180px;background:rgba(180,130,230,.5);clip-path:polygon(50% 0%,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);top:15%;right:10%;animation:shapeFloat3 18s ease-in-out infinite}html.dark .sectionAnimationShapes .shape3{background:rgba(190,150,240,.4)}.sectionAnimationShapes .shape4{width:100px;height:100px;background:rgba(200,150,250,.55);border-radius:50%;bottom:12%;left:18%;animation:shapeFloat4 32s ease-in-out infinite}html.dark .sectionAnimationShapes .shape4{background:rgba(200,160,240,.4)}.sectionAnimationShapes .shape5{width:130px;height:130px;background:rgba(140,90,200,.5);clip-path:polygon(50% 0%,100% 100%,0% 100%);top:60%;left:42%;animation:shapeFloat5 25s ease-in-out infinite}html.dark .sectionAnimationShapes .shape5{background:rgba(160,110,220,.4)}.sectionAnimationShapes .shape6{width:90px;height:90px;background:rgba(170,120,220,.6);clip-path:polygon(50% 0%,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);top:38%;left:3%;animation:shapeFloat6 35s ease-in-out infinite}html.dark .sectionAnimationShapes .shape6{background:rgba(180,140,230,.45)}.sectionAnimationShapes .shape7{width:140px;height:140px;background:rgba(150,100,200,.45);border-radius:50%;top:3%;right:32%;animation:shapeFloat7 20s ease-in-out infinite}html.dark .sectionAnimationShapes .shape7{background:rgba(170,130,220,.35)}@keyframes shapeFloat1{0%,100%{transform:translate(0,0)rotate(0)scale(1)}33%{transform:translate(30px,20px)rotate(120deg)scale(1.15)}66%{transform:translate(-20px,40px)rotate(240deg)scale(.9)}}@keyframes shapeFloat2{0%,100%{transform:translate(0,0)rotate(0)scale(1)}25%{transform:translate(-40px,-20px)rotate(90deg)scale(1.1)}50%{transform:translate(20px,-40px)rotate(180deg)scale(.85)}75%{transform:translate(-10px,20px)rotate(270deg)scale(1.05)}}@keyframes shapeFloat3{0%,100%{transform:translate(0,0)rotate(0)scale(1)}50%{transform:translate(-30px,30px)rotate(180deg)scale(1.1)}}@keyframes shapeFloat4{0%,100%{transform:translate(0,0)scale(1)}33%{transform:translate(40px,-30px)scale(1.2)}66%{transform:translate(-20px,-10px)scale(.8)}}@keyframes shapeFloat5{0%,100%{transform:translate(0,0)rotate(0)}25%{transform:translate(20px,-30px)rotate(90deg)}50%{transform:translate(-30px,-60px)rotate(180deg)}75%{transform:translate(10px,-20px)rotate(270deg)}}@keyframes shapeFloat6{0%,100%{transform:translate(0,0)rotate(0)scale(1)}50%{transform:translate(50px,-40px)rotate(180deg)scale(1.15)}}@keyframes shapeFloat7{0%,100%{transform:translate(0,0)scale(1)}33%{transform:translate(-20px,30px)scale(1.1)}66%{transform:translate(30px,-20px)scale(.9)}}@media(prefers-reduced-motion:reduce){canvas.sectionAnimation,.sectionAnimationShapes{display:none !important}}.sectionBigBiteReadTime{display:block;font-size:13px;color:var(--colorTextMuted);margin-top:8px;font-style:italic}.page404Nav{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:60px}.page404NavSecondary{background-color:transparent !important;color:var(--colorText) !important}.page404Links{max-width:400px;margin:0 auto}.page404Links h3{font-size:20px;margin-bottom:16px}.page404Links ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.page404Links ul li a{color:var(--colorText);font-size:16px;padding:8px 16px;border-radius:var(--borderRadius);background-color:var(--colorBgAlt);text-decoration:none;transition:var(--transition)}.page404Links ul li a:hover{background-color:var(--colorGranite)}@media all and (max-width:900px){html{overflow-x:hidden}html.noScroll{overflow-y:hidden}body{width:100%;overflow-x:hidden}h1{font-size:32px;line-height:1.3;word-break:break-word}h2{font-size:28px;line-height:1.3}h3{font-size:22px;line-height:1.4}h4{font-size:18px;line-height:1.4}#header{width:100%;max-width:100%;height:70px;display:block;padding:0 4%;left:0;transform:none;position:relative}body.scrolledDown{padding-top:70px}body.scrolledDown #header{position:fixed;top:-80px;left:0;transform:none;width:100%;max-width:100%;box-shadow:var(--shadow);z-index:100;border-radius:0}body.scrolledDown #header.showHeader{top:0}#header .headerLogo img{max-width:130px;position:absolute;top:15px;left:4%}#header #navButton{width:50px;height:50px;font-size:28px;display:flex;justify-content:center;align-items:center;font-family:inter;color:var(--colorText);position:absolute;top:10px;right:10px;cursor:pointer;user-select:none;background:0 0;border:none;padding:0;z-index:100}#header nav ul.menu{flex-direction:column;justify-content:center;width:100vw;height:100vh;background-color:var(--colorBg);position:fixed;left:0;top:-100vh;transition:top .4s cubic-bezier(.4,0,.2,1);z-index:99;padding:0 0 120px;margin:0;box-sizing:border-box}#header[data-page=security] nav ul.menu{background-color:var(--colorGreen)}#header[data-page=software] nav ul.menu{background-color:var(--colorYellow)}#header[data-page=games] nav ul.menu{background-color:var(--colorLavender)}#header[data-page=about] nav ul.menu{background-color:var(--colorGranite)}#header nav ul.menu.active{top:0}#header nav ul.menu li{font-family:berkeley mono;font-weight:400;font-size:28px;margin:20px 0;text-align:center}#header nav ul.menu li a{padding:12px 24px;display:block}#letsChatButton{display:none;margin:0 auto;position:fixed;bottom:40px;width:80%;max-width:300px;left:50%;transform:translateX(-50%);opacity:0;transition:opacity .3s ease;z-index:100}#letsChatButton.active{opacity:1}.sectionBig,.sectionBig[data-kind=subsection]{border-radius:0;padding:8% 4%}.sectionBig .sectionFlex{flex-wrap:wrap}.sectionHeader{max-width:95%}.sectionBig .sectionRight .sectionImage,.sectionLeftImg .sectionLeft .sectionImage{max-width:100%;margin:80px auto;display:block}.sectionBig[data-kind=subsection] .sectionRight .sectionImage{max-width:100%;width:100%}a.sectionButton{width:92%;padding:12px 3%;gap:0;margin:0 auto}.clientsList{margin:0 auto 80px}.clientsTrack{animation:scroll 20s linear infinite}.sectionBreak{max-width:300px}.sectionLeftImg .sectionFlex{display:block}.sectionTestimonials{border-radius:0;padding:60px 24px 40px}.sectionTestimonials .sectionTop{margin-bottom:30px}.sectionTestimonials .testimonialCarousel{min-height:340px}.sectionTestimonials .testimonialQuoteMark{font-size:64px;margin-bottom:12px}.sectionTestimonials p.testimonialText{font-size:1.05em;line-height:1.65}.sectionTestimonials .testimonialNav{margin-top:30px}.sectionProject{border-radius:0;padding:10% 4%}.sectionProject .sectionTop{flex-wrap:wrap;justify-content:center}.sectionProject .sectionTopRight .sectionImage{width:90%}.sectionProject .sectionList{display:block}.sectionProject .sectionList li{width:95%}.sectionBigBites{display:block}.sectionBigBites li{margin:20px auto;width:100%;padding:0}.sectionBigBites p{font-size:16px}.postMeta{flex-direction:column;width:92%;padding:0 4%}.postMeta .metaLeft{display:none}.postMeta .metaRight{width:100%}.postCategory,.postTag{display:inline-block;margin:4px 4px 4px 0;font-size:14px;padding:8px 12px}.postContent{width:92%;max-width:100%;padding:0 4%;margin:30px auto 0}.postContent h2{font-size:24px;margin-top:40px}.postContent h3{font-size:20px;margin-top:32px}.postContent h4{font-size:17px;margin-top:24px}.postContent p,.postContent ul li,.postContent ol li{font-size:16px;line-height:1.7}.postContent img{max-width:100%;margin:20px 0}blockquote{margin:16px 0;padding:4px 16px;font-size:15px}.seriesNav{font-size:.88em;padding:.6em .8em}footer{width:100%;border-radius:0;padding:60px 4% 30px;box-sizing:border-box;margin-top:80px}footer .footerLogo{width:160px}footer nav{max-width:100%;padding:0 20px}footer nav ul.menu{flex-direction:column;gap:16px 0}footer nav ul.menu li{width:100%;font-size:18px}footer div#socials{margin-top:40px;gap:24px}footer p#copyright{margin:60px auto 0;font-size:11px;line-height:1.6;padding:0 20px}.page404{padding:80px 4% 60px}.page404 h1{font-size:64px}.blogHero{padding:50px 6% 40px;border-radius:0}.blogHero h1{font-size:32px}.blogHero p{font-size:16px}nav.pagination{gap:16px;font-size:14px}nav.pagination a,nav.pagination .pagination-disabled{padding:8px 12px}canvas.sectionAnimation{display:none}.sectionAnimationShapes .shape{opacity:.1}.sectionAnimationShapes .shape5,.sectionAnimationShapes .shape6,.sectionAnimationShapes .shape7{display:none}}.highlight{color:var(--colorTextCode);background-color:var(--colorBgCode);font-family:berkeley mono,monospace;font-size:14px;line-height:1.65;border-radius:var(--borderRadius);overflow-x:auto;margin:28px 0;box-shadow:var(--shadow);-webkit-text-size-adjust:100%;text-size-adjust:100%;position:relative}.highlight[data-lang]::before{content:attr(data-lang);position:absolute;top:0;right:0;padding:4px 12px;font-family:inter,sans-serif;font-size:11px;font-weight:500;letter-spacing:.03em;text-transform:uppercase;color:var(--colorGranite);border-radius:0 var(--borderRadius)0 6px;pointer-events:none;user-select:none}.chroma{padding:20px 24px;font-weight:400;margin:0;overflow-x:auto;-webkit-overflow-scrolling:touch}.chroma code{font-family:berkeley mono,monospace;font-size:inherit;line-height:inherit;white-space:pre;display:block;background:0 0;padding:0;border-radius:0}.chroma .line{display:flex}.chroma .err{color:inherit}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:rgba(255,255,255,6%)}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.8em;padding:0;color:var(--colorGranite)}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.8em;padding:0;color:var(--colorGranite)}.chroma .k{color:var(--colorBlue)}.chroma .kc{color:var(--colorBlue)}.chroma .kd{color:var(--colorBlue)}.chroma .kn{color:var(--colorLavender)}.chroma .kp{color:var(--colorBlue)}.chroma .kr{color:var(--colorBlue)}.chroma .kt{color:var(--colorBlue)}.chroma .na{color:var(--colorGreen)}.chroma .nc{color:var(--colorGreen)}.chroma .no{color:var(--colorBlue)}.chroma .nd{color:var(--colorGreen)}.chroma .ne{color:var(--colorGreen)}.chroma .nf{color:var(--colorGreen)}.chroma .nx{color:var(--colorGreen)}.chroma .nt{color:var(--colorLavender)}.chroma .nb{color:var(--colorBlue)}.chroma .bp{color:var(--colorBlue);font-style:italic}.chroma .fm{color:var(--colorGreen)}.chroma .ni{color:var(--colorLavender)}.chroma .nl{color:var(--colorYellow)}.chroma .nn{color:var(--colorLavender)}.chroma .py{color:var(--colorGreen)}.chroma .nv{color:var(--colorTextCode)}.chroma .vc{color:var(--colorBlue)}.chroma .vg{color:var(--colorLavender)}.chroma .vi{color:var(--colorLavender)}.chroma .vm{color:var(--colorLavender);font-style:italic}.chroma .l{color:var(--colorLavender)}.chroma .ld{color:var(--colorYellow)}.chroma .s{color:var(--colorYellow)}.chroma .sa{color:var(--colorYellow)}.chroma .sb{color:var(--colorYellow)}.chroma .sc{color:var(--colorYellow)}.chroma .dl{color:var(--colorYellow)}.chroma .sd{color:var(--colorYellow)}.chroma .s2{color:var(--colorYellow)}.chroma .se{color:var(--colorLavender)}.chroma .sh{color:var(--colorYellow)}.chroma .si{color:var(--colorYellow)}.chroma .sx{color:var(--colorYellow)}.chroma .sr{color:var(--colorYellow)}.chroma .s1{color:var(--colorYellow)}.chroma .ss{color:var(--colorYellow)}.chroma .m{color:var(--colorLavender)}.chroma .mb{color:var(--colorLavender)}.chroma .mf{color:var(--colorLavender)}.chroma .mh{color:var(--colorLavender)}.chroma .mi{color:var(--colorLavender)}.chroma .il{color:var(--colorLavender)}.chroma .mo{color:var(--colorLavender)}.chroma .o{color:var(--colorLavender)}.chroma .ow{color:var(--colorLavender)}.chroma .c{color:var(--colorGranite)}.chroma .ch{color:var(--colorGranite)}.chroma .cm{color:var(--colorGranite)}.chroma .c1{color:var(--colorGranite)}.chroma .cs{color:var(--colorGranite)}.chroma .cp{color:var(--colorGranite)}.chroma .cpf{color:var(--colorGranite)}.chroma .gd{color:#f0a0a0;background-color:rgba(248,81,73,.12)}.chroma .ge{font-style:italic}.chroma .gr{color:#f0a0a0}.chroma .gh{color:var(--colorBlue);font-weight:700}.chroma .gi{color:#a0d8a0;background-color:rgba(63,185,80,.12)}.chroma .go{color:var(--colorGranite)}.chroma .gp{color:var(--colorGranite);font-weight:700;user-select:none}.chroma .gs{font-weight:700}.chroma .gu{color:var(--colorGranite)}.chroma .gt{color:#f0a0a0}.chroma .gl{text-decoration:underline}@media all and (max-width:900px){.highlight{margin:16px -4%;border-radius:0;font-size:12px;line-height:1.5;box-shadow:none}.chroma{padding:12px 16px}}