.page-module___8aEwW__home{background:var(--paper,#f1f4f5)}.page-module___8aEwW__hero{border-bottom:1px solid var(--rule,#d3dadd)}.page-module___8aEwW__heroGrid{grid-template-columns:1.15fr .85fr;align-items:stretch;gap:0;display:grid}.page-module___8aEwW__heroLeft{padding:96px 64px 96px 0}.page-module___8aEwW__heroImages{border-left:1px solid var(--rule,#d3dadd);flex-direction:column;display:flex}.page-module___8aEwW__heroImageSlot{flex:1;min-height:480px;position:relative;overflow:hidden}.page-module___8aEwW__heroImagePlaceholder{background:repeating-linear-gradient(135deg,var(--stripe-a,#e0e5e8)0 8px,var(--panel,#e8ecee)8px 16px);text-align:center;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.page-module___8aEwW__heroImagePlaceholder span{font-family:var(--font-mono,monospace);letter-spacing:.1em;text-transform:uppercase;color:var(--label-grey,#5f6e75);font-size:11px}.page-module___8aEwW__heroKicker{font-family:var(--font-mono,monospace);letter-spacing:.14em;text-transform:uppercase;color:var(--label-grey,#5f6e75);margin-bottom:36px;font-size:12px}.page-module___8aEwW__heroTitle{letter-spacing:-.035em;max-width:18ch;margin:0 0 32px;font-size:76px;font-weight:600;line-height:.98}.page-module___8aEwW__heroTitle em{color:var(--accent,#1b8cbe);font-style:italic;font-weight:400}.page-module___8aEwW__heroLead{color:var(--body-muted,#556166);max-width:52ch;margin:0 0 44px;font-size:20px;line-height:1.55}.page-module___8aEwW__heroBtns{flex-wrap:wrap;gap:12px;display:flex}.page-module___8aEwW__section{border-bottom:1px solid var(--rule,#d3dadd)}.page-module___8aEwW__sectionHeader{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:32px;padding:72px 0 40px;display:flex}.page-module___8aEwW__kicker{font-size:15px;font-family:var(--font-mono,monospace);letter-spacing:.14em;text-transform:uppercase;color:var(--label-grey,#5f6e75);margin:0;font-weight:500}.page-module___8aEwW__sectionSubtitle{color:var(--body-muted,#556166);margin:0;font-size:15px}.page-module___8aEwW__sectionLink{border-bottom:1px solid var(--accent,#1b8cbe);padding-bottom:2px;font-size:14px;font-weight:600}.page-module___8aEwW__serviceGrid{background:var(--rule,#d3dadd);border-top:1px solid var(--rule,#d3dadd);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.page-module___8aEwW__serviceCard{background:var(--paper,#f1f4f5);flex-direction:column;min-height:400px;padding:40px 36px 44px;display:flex}.page-module___8aEwW__serviceCard:hover{background:var(--panel,#e8ecee)}.page-module___8aEwW__serviceCardTop{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.page-module___8aEwW__serviceIndex{font-family:var(--font-mono,monospace);color:var(--label-grey,#5f6e75);letter-spacing:.1em;font-size:12px}.page-module___8aEwW__accentDash{background:var(--accent-bright,#2fa3d4);width:24px;height:2px}.page-module___8aEwW__serviceTitle{letter-spacing:-.03em;margin:0 0 18px;font-size:32px;font-weight:600;line-height:1.1}.page-module___8aEwW__serviceBlurb{color:var(--body-muted,#556166)!important;margin:0 0 28px!important;font-size:16px!important;line-height:1.6!important}.page-module___8aEwW__serviceBlurb p{margin:0!important}.page-module___8aEwW__serviceBullets{flex-direction:column;gap:9px;margin:0 0 32px;padding:0;list-style:none;display:flex}.page-module___8aEwW__serviceBullets li{color:var(--body-muted,#556166);align-items:baseline;gap:10px;font-size:14px;display:flex}.page-module___8aEwW__serviceBullets li span{color:var(--accent,#1b8cbe);font-family:var(--font-mono,monospace)}.page-module___8aEwW__serviceCta{font-family:var(--font-mono,monospace);letter-spacing:.1em;text-transform:uppercase;color:var(--ink,#22292d);margin-top:auto;font-size:12px;font-weight:600}.page-module___8aEwW__featuredGrid{background:var(--rule,#d3dadd);border-top:1px solid var(--rule,#d3dadd);grid-template-columns:1fr 1fr;gap:1px;display:grid}.page-module___8aEwW__customerGrid{background:var(--rule,#d3dadd);border:1px solid var(--rule,#d3dadd);grid-template-columns:repeat(5,1fr);gap:1px;margin-top:48px;margin-bottom:80px;display:grid}.page-module___8aEwW__customerCard{background:var(--paper,#f1f4f5);justify-content:center;align-items:center;height:120px;padding:24px;display:flex}.page-module___8aEwW__customerCard:hover{background:var(--panel,#e8ecee)}.page-module___8aEwW__customerLogo{object-fit:contain;filter:grayscale();opacity:.55;max-width:100%;transition:filter .2s,opacity .2s}.page-module___8aEwW__customerCard:hover .page-module___8aEwW__customerLogo{filter:none;opacity:1}.page-module___8aEwW__customerName{color:var(--body-muted,#556166);font-weight:600}.page-module___8aEwW__blogGrid{background:var(--rule,#d3dadd);border:1px solid var(--rule,#d3dadd);grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:80px;display:grid}.page-module___8aEwW__blogCard{background:var(--paper,#f1f4f5);box-sizing:border-box;flex-direction:column;height:100%;padding:28px 24px 32px;text-decoration:none;transition:background .2s;display:flex}.page-module___8aEwW__blogCard:hover{background:var(--panel,#e8ecee)}.page-module___8aEwW__blogThumbWrap{aspect-ratio:16/10;background:var(--stripe-a,#e0e5e8);width:100%;margin-bottom:20px;position:relative;overflow:hidden}.page-module___8aEwW__blogPlaceholder{background:repeating-linear-gradient(135deg,var(--stripe-a,#e0e5e8)0 8px,var(--panel,#e8ecee)8px 16px);text-align:center;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.page-module___8aEwW__blogPlaceholder span{font-family:var(--font-mono,monospace);letter-spacing:.1em;text-transform:uppercase;color:var(--label-grey,#5f6e75);font-size:10px}.page-module___8aEwW__blogCardContent{flex-direction:column;flex-grow:1;display:flex}.page-module___8aEwW__blogDate{font-family:var(--font-mono,monospace);letter-spacing:.1em;text-transform:uppercase;color:var(--label-grey,#5f6e75);margin-bottom:10px;font-size:11px}.page-module___8aEwW__blogTitle{letter-spacing:-.02em;color:var(--ink,#22292d);word-break:break-word;margin:0 0 10px;font-size:20px;font-weight:600;line-height:1.25}.page-module___8aEwW__blogExcerpt{color:var(--body-muted,#556166);word-break:break-word;-webkit-line-clamp:3;-webkit-box-orient:vertical;flex-grow:1;margin:0 0 20px;font-size:14px;line-height:1.6;display:-webkit-box;overflow:hidden}.page-module___8aEwW__blogReadMore{font-family:var(--font-mono,monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--ink,#22292d);margin-top:auto;font-size:12px;font-weight:600}.page-module___8aEwW__faqLayout{grid-template-columns:340px 1fr;gap:80px;padding:80px 0 96px;display:grid}.page-module___8aEwW__faqIntro p{color:var(--body-muted,#556166);margin:20px 0 24px;font-size:16px;line-height:1.6}.page-module___8aEwW__faqItem{border-top:1px solid var(--rule,#d3dadd);grid-template-columns:40px 1fr;gap:24px;padding:28px 0;display:grid}.page-module___8aEwW__faqIndex{font-family:var(--font-mono,monospace);color:var(--label-grey,#5f6e75);padding-top:5px;font-size:12px}.page-module___8aEwW__faqItem h3{letter-spacing:-.02em;margin:0 0 10px;font-size:21px;font-weight:600;line-height:1.3}.page-module___8aEwW__faqItem p{color:var(--body-muted,#556166);max-width:62ch;margin:0;font-size:16px;line-height:1.65}.page-module___8aEwW__closingCta{text-align:center;padding:112px 0}.page-module___8aEwW__closingCta h2{letter-spacing:-.035em;max-width:20ch;margin:0 auto 24px;font-size:60px;font-weight:600;line-height:1.03}.page-module___8aEwW__closingCta p{color:var(--body-muted,#556166);max-width:46ch;margin:0 auto 44px;font-size:19px}.page-module___8aEwW__closingCta .btn-primary{background:var(--accent,#1b8cbe)}.page-module___8aEwW__closingCta .btn-primary:hover{background:var(--ink,#22292d)}@media (max-width:1100px){.page-module___8aEwW__heroGrid{grid-template-columns:1fr}.page-module___8aEwW__heroLeft{padding:56px 0 40px}.page-module___8aEwW__heroImages{border-left:none;border-top:1px solid var(--rule,#d3dadd)}.page-module___8aEwW__heroImageSlot{min-height:420px}.page-module___8aEwW__heroTitle{font-size:56px}.page-module___8aEwW__serviceGrid,.page-module___8aEwW__featuredGrid{grid-template-columns:1fr}.page-module___8aEwW__customerGrid{grid-template-columns:repeat(3,1fr)}.page-module___8aEwW__blogGrid{grid-template-columns:repeat(2,1fr)}.page-module___8aEwW__faqLayout{grid-template-columns:1fr;gap:32px}}@media (max-width:760px){.page-module___8aEwW__hero{padding:56px 0}.page-module___8aEwW__heroImages{display:none}.page-module___8aEwW__heroTitle{font-size:40px}.page-module___8aEwW__heroLead{font-size:17px}.page-module___8aEwW__sectionHeader{padding:48px 0 28px}.page-module___8aEwW__customerGrid{grid-template-columns:repeat(2,1fr)}.page-module___8aEwW__featuredGrid{grid-template-columns:1fr}.page-module___8aEwW__featuredGrid>div:nth-child(n+4){display:none}.page-module___8aEwW__blogGrid{grid-template-columns:1fr;margin-bottom:56px}.page-module___8aEwW__closingCta{padding:64px 0}.page-module___8aEwW__closingCta h2{font-size:32px}}
.ProjectCard-module__uQSOIq__card{background:var(--paper,#f1f4f5);box-sizing:border-box;overflow-wrap:break-word;word-break:break-word;height:100%;display:block}.ProjectCard-module__uQSOIq__card:hover{background:var(--panel,#e8ecee)}.ProjectCard-module__uQSOIq__featured{padding:28px 28px 32px}.ProjectCard-module__uQSOIq__grid{padding:24px 24px 28px}.ProjectCard-module__uQSOIq__imageWrap{background:var(--stripe-a,#e0e5e8);position:relative;overflow:hidden}.ProjectCard-module__uQSOIq__featured .ProjectCard-module__uQSOIq__imageWrap{aspect-ratio:16/10;margin-bottom:24px}.ProjectCard-module__uQSOIq__grid .ProjectCard-module__uQSOIq__imageWrap{aspect-ratio:4/3;margin-bottom:20px}.ProjectCard-module__uQSOIq__image{object-fit:cover}.ProjectCard-module__uQSOIq__tag3d{z-index:5;background:var(--ink,#22292d);color:var(--paper,#f1f4f5);font-family:var(--font-mono,monospace);letter-spacing:.12em;text-transform:uppercase;padding:6px 10px;font-size:10px;position:absolute;top:14px;left:14px}.ProjectCard-module__uQSOIq__grid .ProjectCard-module__uQSOIq__tag3d{padding:5px 9px;top:12px;left:12px}.ProjectCard-module__uQSOIq__meta{align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.ProjectCard-module__uQSOIq__metaCategory{font-family:var(--font-mono,monospace);letter-spacing:.1em;text-transform:uppercase;color:var(--label-grey,#5f6e75);font-size:11px}.ProjectCard-module__uQSOIq__metaRule{background:var(--rule,#d3dadd);flex:1;height:1px}.ProjectCard-module__uQSOIq__metaYear{font-family:var(--font-mono,monospace);color:var(--label-grey,#5f6e75);font-size:11px}.ProjectCard-module__uQSOIq__gridCategory{font-family:var(--font-mono,monospace);letter-spacing:.1em;text-transform:uppercase;color:var(--label-grey,#5f6e75);margin-bottom:10px;font-size:11px}.ProjectCard-module__uQSOIq__featuredTitle{letter-spacing:-.025em;margin:0 0 10px;font-size:24px;font-weight:600;line-height:1.15}.ProjectCard-module__uQSOIq__gridTitle{letter-spacing:-.02em;margin:0 0 8px;font-size:20px;font-weight:600;line-height:1.2}.ProjectCard-module__uQSOIq__featuredDesc{color:var(--body-muted,#556166);margin:0;font-size:15px;line-height:1.6}.ProjectCard-module__uQSOIq__gridDesc{color:var(--body-muted,#556166);margin:0;font-size:14px;line-height:1.6}@media (max-width:760px){.ProjectCard-module__uQSOIq__featured,.ProjectCard-module__uQSOIq__grid{padding:20px 16px 24px}.ProjectCard-module__uQSOIq__featuredTitle{font-size:20px}.ProjectCard-module__uQSOIq__gridTitle{font-size:18px}.ProjectCard-module__uQSOIq__featuredDesc,.ProjectCard-module__uQSOIq__gridDesc{display:none}}
.AppShowcase-module__bKrQ4a__appShowcase{background:var(--ink,#22292d);color:var(--paper,#f1f4f5);padding:96px 0}.AppShowcase-module__bKrQ4a__grid{grid-template-columns:1fr 400px;grid-template-areas:"heading image""desc image""features image""cta image";align-items:center;gap:80px;display:grid}.AppShowcase-module__bKrQ4a__headingBlock{grid-area:heading}.AppShowcase-module__bKrQ4a__description{grid-area:desc}.AppShowcase-module__bKrQ4a__featuresList{grid-area:features}.AppShowcase-module__bKrQ4a__ctaArea{grid-area:cta}.AppShowcase-module__bKrQ4a__frameWrap{grid-area:image}.AppShowcase-module__bKrQ4a__kicker{font-family:var(--font-mono,monospace);letter-spacing:.14em;text-transform:uppercase;color:var(--accent,#1b8cbe);margin-bottom:28px;font-size:12px}.AppShowcase-module__bKrQ4a__title{letter-spacing:-.035em;color:var(--paper,#f1f4f5);margin:0 0 24px;font-size:56px;font-weight:600;line-height:1.02}.AppShowcase-module__bKrQ4a__description{color:var(--dark-muted,#a6b4ba);max-width:54ch;margin:0 0 40px;font-size:19px;line-height:1.6}.AppShowcase-module__bKrQ4a__featuresList{background:var(--dark-rule,#38434a);border-top:1px solid var(--dark-rule,#38434a);border-bottom:1px solid var(--dark-rule,#38434a);gap:1px;margin-bottom:40px;display:grid}.AppShowcase-module__bKrQ4a__featureRow{background:var(--ink,#22292d);grid-template-columns:180px 1fr;align-items:baseline;gap:32px;padding:22px 0;display:grid}.AppShowcase-module__bKrQ4a__featureTitle{color:var(--paper,#f1f4f5);font-size:15px;font-weight:600}.AppShowcase-module__bKrQ4a__featureDesc{color:var(--dark-muted,#a6b4ba);font-size:15px;line-height:1.6}.AppShowcase-module__bKrQ4a__ctaArea{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.AppShowcase-module__bKrQ4a__playStoreBtn{background:var(--paper,#f1f4f5);color:var(--ink,#22292d);border-radius:2px;padding:15px 26px;font-size:15px;font-weight:600;transition:background-color .2s,color .2s}.AppShowcase-module__bKrQ4a__playStoreBtn:hover{background:var(--accent,#1b8cbe);color:var(--paper,#f1f4f5)}.AppShowcase-module__bKrQ4a__priceBadge{font-family:var(--font-mono,monospace);color:var(--dark-muted,#a6b4ba);font-size:13px}.AppShowcase-module__bKrQ4a__frameWrap{justify-content:center;display:flex}.AppShowcase-module__bKrQ4a__frame{border:1px solid var(--dark-rule,#38434a);background:var(--phone-well,#171d21);width:300px;padding:10px}@media (max-width:1100px){.AppShowcase-module__bKrQ4a__grid{display:block}.AppShowcase-module__bKrQ4a__frameWrap{margin:8px 0 40px}}@media (max-width:760px){.AppShowcase-module__bKrQ4a__appShowcase{padding:56px 0}.AppShowcase-module__bKrQ4a__title{font-size:36px}.AppShowcase-module__bKrQ4a__featureRow{grid-template-columns:1fr;gap:6px}}
.PortfolioFilter-module__LfNnjq__filterBar{border-bottom:1px solid var(--rule,#d3dadd);background:var(--paper,#f1f4f5);z-index:20;position:sticky;top:74px}.PortfolioFilter-module__LfNnjq__filterRow{flex-wrap:wrap;align-items:center;gap:10px;padding:18px 32px;display:flex}.PortfolioFilter-module__LfNnjq__chip{font-family:var(--font-mono,monospace);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:1px solid var(--rule,#d3dadd);color:var(--body-muted,#556166);background:0 0;min-height:44px;padding:9px 16px 11px;font-size:12px;position:relative}.PortfolioFilter-module__LfNnjq__chip:hover{border-color:var(--ink,#22292d);color:var(--ink,#22292d)}.PortfolioFilter-module__LfNnjq__chip.PortfolioFilter-module__LfNnjq__active{color:var(--ink,#22292d)}.PortfolioFilter-module__LfNnjq__chip.PortfolioFilter-module__LfNnjq__active:after{content:"";background:var(--ink,#22292d);height:3px;position:absolute;bottom:0;left:0;right:0}.PortfolioFilter-module__LfNnjq__searchInput{font-family:var(--font-body,inherit);border:1px solid var(--rule,#d3dadd);color:var(--ink,#22292d);background:0 0;min-width:160px;min-height:44px;padding:9px 14px;font-size:14px}.PortfolioFilter-module__LfNnjq__searchInput:focus{border-color:var(--accent,#1b8cbe);outline:none}.PortfolioFilter-module__LfNnjq__resultCount{font-family:var(--font-mono,monospace);color:var(--label-grey,#5f6e75);white-space:nowrap;margin-left:auto;font-size:12px}@media (max-width:760px){.PortfolioFilter-module__LfNnjq__filterRow{padding:14px 20px}.PortfolioFilter-module__LfNnjq__resultCount{order:10;width:100%;margin-left:0}}
.GithubSection-module__n7VhFG__githubSection{border-bottom:1px solid var(--rule,#d3dadd);padding-bottom:80px}.GithubSection-module__n7VhFG__sectionHeader{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:32px;padding:72px 0 40px;display:flex}.GithubSection-module__n7VhFG__kicker{font-size:15px;font-family:var(--font-mono,monospace);letter-spacing:.14em;text-transform:uppercase;color:var(--label-grey,#5f6e75);margin:0;font-weight:500}.GithubSection-module__n7VhFG__sectionLink{border-bottom:1px solid var(--accent,#1b8cbe);color:var(--ink,#22292d);padding-bottom:2px;font-size:14px;font-weight:600;text-decoration:none;transition:opacity .2s}.GithubSection-module__n7VhFG__sectionLink:hover{opacity:.8}.GithubSection-module__n7VhFG__grid{background:var(--rule,#d3dadd);border:1px solid var(--rule,#d3dadd);grid-template-columns:320px 1fr;gap:1px;display:grid}.GithubSection-module__n7VhFG__profileCard{background:var(--paper,#f1f4f5);box-sizing:border-box;flex-direction:column;height:100%;padding:32px 28px;display:flex}.GithubSection-module__n7VhFG__profileHeader{align-items:center;gap:16px;margin-bottom:20px;display:flex}.GithubSection-module__n7VhFG__avatar{border:1px solid var(--rule,#d3dadd);object-fit:cover;border-radius:50%}.GithubSection-module__n7VhFG__profileName{color:var(--ink,#22292d);letter-spacing:-.02em;margin:0 0 4px;font-size:18px;font-weight:600}.GithubSection-module__n7VhFG__profileUsername{font-family:var(--font-mono,monospace);color:var(--label-grey,#5f6e75);margin:0;font-size:12px}.GithubSection-module__n7VhFG__bio{color:var(--body-muted,#556166);margin:0 0 24px;font-size:14px;line-height:1.55}.GithubSection-module__n7VhFG__stats{border-top:1px solid var(--rule,#d3dadd);flex-direction:column;gap:12px;margin-bottom:28px;padding-top:20px;display:flex}.GithubSection-module__n7VhFG__statItem{color:var(--body-muted,#556166);align-items:center;gap:10px;font-size:13px;display:flex}.GithubSection-module__n7VhFG__statItem svg{color:var(--accent,#1b8cbe)}.GithubSection-module__n7VhFG__statItem strong{color:var(--ink,#22292d);font-weight:600}.GithubSection-module__n7VhFG__followAction{margin-top:auto}.GithubSection-module__n7VhFG__followBtn{font-family:var(--font-mono,monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--ink,#22292d);border:1px solid var(--rule,#d3dadd);background:0 0;border-radius:4px;align-items:center;gap:8px;padding:10px 16px;font-size:12px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.GithubSection-module__n7VhFG__followBtn:hover{background:var(--panel,#e8ecee);border-color:var(--ink,#22292d)}.GithubSection-module__n7VhFG__reposGrid{background:var(--rule,#d3dadd);grid-template-columns:repeat(2,1fr);gap:1px;display:grid}.GithubSection-module__n7VhFG__repoCard{background:var(--paper,#f1f4f5);box-sizing:border-box;flex-direction:column;height:100%;padding:28px 24px;text-decoration:none;transition:background .2s;display:flex}.GithubSection-module__n7VhFG__repoCard:hover{background:var(--panel,#e8ecee)}.GithubSection-module__n7VhFG__repoTitle{letter-spacing:-.02em;color:var(--ink,#22292d);word-break:break-word;margin:0 0 10px;font-size:17px;font-weight:600}.GithubSection-module__n7VhFG__repoDesc{color:var(--body-muted,#556166);word-break:break-word;flex-grow:1;margin:0 0 20px;font-size:14px;line-height:1.55}.GithubSection-module__n7VhFG__repoStats{flex-wrap:wrap;align-items:center;gap:14px;margin-top:auto;display:flex}.GithubSection-module__n7VhFG__language{font-family:var(--font-mono,monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--accent,#1b8cbe);background:#1b8cbe14;border-radius:3px;padding:4px 8px;font-size:11px;font-weight:600}.GithubSection-module__n7VhFG__stat{color:var(--label-grey,#5f6e75);font-family:var(--font-mono,monospace);align-items:center;gap:5px;font-size:12px;display:flex}.GithubSection-module__n7VhFG__loading{text-align:center;font-family:var(--font-mono,monospace);color:var(--label-grey,#5f6e75);padding:4rem;font-size:13px}@media (max-width:1100px){.GithubSection-module__n7VhFG__grid{grid-template-columns:1fr}}@media (max-width:760px){.GithubSection-module__n7VhFG__githubSection{padding-bottom:56px}.GithubSection-module__n7VhFG__sectionHeader{padding:48px 0 28px}.GithubSection-module__n7VhFG__reposGrid{grid-template-columns:1fr}.GithubSection-module__n7VhFG__repoCard{padding:20px 18px}}
