.portfolio-page{--paper:#fff;--ink:#282624;--muted:#aaa49b;--line:#938e86;--header-height:108px;background:var(--paper);min-height:100vh;color:var(--ink);cursor:none;font-family:var(--font-major), monospace;font-synthesis:none;padding-bottom:42px;font-weight:400;overflow-x:clip}.portfolio-page *{box-sizing:border-box}.portfolio-page a,.portfolio-page button{cursor:none}::selection{background:var(--ink);color:var(--paper)}::selection{background:var(--ink);color:var(--paper)}html{scrollbar-width:none;scrollbar-color:#938e86 #fff}html::-webkit-scrollbar{width:0;display:none}html::-webkit-scrollbar-track{background:#fff}html::-webkit-scrollbar-thumb{background:#938e86;border:2px solid #fff;border-radius:999px}html,body{scroll-behavior:smooth}.logo-text{font-family:var(--font-manrope), system-ui, sans-serif;letter-spacing:.18em;text-indent:.18em;font-weight:600;line-height:1}.hero,.works,.site-footer{width:min(100% - 44px,1600px);margin-inline:auto}.site-header{z-index:30;background:var(--paper);justify-content:space-between;align-items:flex-start;width:min(100% - 44px,1600px);margin-inline:auto;padding-top:20px;display:flex;position:sticky;top:0}.monogram{border:2px solid var(--line);width:60px;height:64px;color:var(--ink);place-items:end center;padding-bottom:8px;text-decoration:none;display:grid}.monogram .logo-text{font-size:16px}.menu-lines{appearance:none;color:inherit;background:0 0;border:0;flex-direction:column;justify-content:center;gap:8px;width:88px;height:88px;padding:0 12px;display:flex}.menu-lines span{background:var(--line);width:100%;height:1.5px;display:block}.menu-lines span:last-child{align-self:flex-end;width:60%}.menu-lines.is-open span:first-child{transform:translateY(4.75px)rotate(45deg)}.menu-lines.is-open span:last-child{width:100%;transform:translateY(-4.75px)rotate(-45deg)}.menu-lines span{transition:transform .45s cubic-bezier(.22,1,.36,1),width .45s}.menu-overlay{z-index:35;background:var(--paper);color:var(--ink);pointer-events:none;flex-direction:column;padding:28px max(22px,50vw - 800px) 42px;transition:transform .8s cubic-bezier(.76,0,.24,1);display:flex;position:fixed;inset:0;transform:translate(100%)}.menu-overlay.is-open{pointer-events:auto;transform:translate(0)}.menu-overlay-top,.menu-overlay-bottom{font-family:var(--font-azeret), monospace;text-transform:uppercase;justify-content:space-between;align-items:center;display:flex}.menu-overlay-top{font-size:18px}.menu-overlay-top button{appearance:none;color:inherit;font:inherit;text-transform:inherit;background:0 0;border:0}.menu-overlay-body{flex:1;grid-template-columns:minmax(360px,1fr) minmax(320px,420px);align-items:center;gap:8vw;padding-block:32px;display:grid}.menu-links{grid-template-columns:repeat(2,minmax(160px,1fr));gap:16px 56px;display:grid}.menu-links a{color:var(--ink);font-family:var(--font-major), monospace;text-transform:lowercase;font-size:clamp(30px,4vw,64px);line-height:.95;text-decoration:none;transition:color .3s,transform .3s}.menu-links a:hover{color:#f0601c;transform:translate(8px)}.menu-feature{min-height:420px;color:var(--ink);clip-path:inset(0 0 0 100%);background:#938e8614;flex-direction:column;justify-content:space-between;padding:40px 36px;transition:clip-path .8s cubic-bezier(.76,0,.24,1) .2s;display:flex}.menu-overlay.is-open .menu-feature{clip-path:inset(0)}.menu-feature p{max-width:24ch;font:20px/1.25 var(--font-azeret), monospace;margin:0}.menu-feature-logo{border-color:var(--ink);width:60px;height:64px;color:var(--ink);align-self:flex-start;padding-bottom:8px}.menu-feature-logo .logo-text{font-size:16px}.menu-overlay-bottom{border-top:1px solid #28262447;gap:32px;padding-top:24px}.menu-overlay-bottom strong{font-family:var(--font-major), monospace;text-transform:lowercase;font-weight:400;line-height:.85}.menu-role-software{margin-bottom:5px;font-size:clamp(20px,2.3vw,32px);display:inline-block}.menu-role-engineer{font-size:clamp(28px,4vw,60px);display:inline-block}.menu-overlay-bottom .outline-button{border-color:var(--ink);color:var(--ink);width:300px}.menu-overlay-bottom .outline-button:hover{background:var(--ink);color:var(--paper)}.menu-overlay-actions{align-items:center;gap:28px;display:flex}.menu-overlay-links{color:var(--ink);gap:16px}.menu-overlay-links a{color:inherit}.hero{width:min(100% - 44px,1600px);min-height:calc(100vh - var(--header-height));flex-direction:column;justify-content:space-between;padding-block:32px 40px;display:flex;position:relative}.hero-copy{flex-direction:column;flex:1;justify-content:space-between;width:100%;display:flex}.eyebrow{font-family:var(--font-major), monospace;font-synthesis:none;letter-spacing:.02em;text-transform:lowercase;color:#7b756d;max-width:34ch;margin:0;font-size:20px;font-weight:400;line-height:1.35}.hero-title{margin-top:80px}.hero-title p,.hero-title h1{font-family:var(--font-major), monospace;font-synthesis:none;text-transform:lowercase;margin:0;font-weight:400}.hero-title p{letter-spacing:.02em;font-size:76px;line-height:.92}.hero-title h1{letter-spacing:.02em;font-size:172px;line-height:.92}.hero-title-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:48px;display:flex}.hero-title-row h1{flex-shrink:0}.hero-title-row .outline-button{flex-shrink:0;margin-bottom:14px}.outline-button{border:1px solid var(--line);width:284px;height:72px;color:var(--ink);text-transform:uppercase;font-family:var(--font-azeret), monospace;background:0 0;justify-content:space-between;align-items:center;gap:17px;padding:0 24px;font-size:20px;font-weight:500;transition:background-color .5s cubic-bezier(.22,1,.36,1),border-color .5s cubic-bezier(.22,1,.36,1),color .5s cubic-bezier(.22,1,.36,1),transform .5s cubic-bezier(.22,1,.36,1);display:flex}.outline-button:hover{background:var(--ink);color:var(--paper);transform:translateY(-3px)}.floating-contact{--contact-fall:1s;--contact-vibrate:.8s;z-index:28;color:var(--ink);appearance:none;justify-items:center;gap:3px;padding:4px;transition:transform .3s cubic-bezier(.22,1,.36,1);display:grid;position:fixed;bottom:20px;right:20px}.floating-contact:hover{transform:translateY(-3px)}.floating-contact:hover .floating-contact-eye{filter:drop-shadow(0 3px 5px #28262438)drop-shadow(0 12px 22px #2826242e)}.floating-contact.phase-hidden{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(14px)}.floating-contact-eye{transform-origin:50%;will-change:transform;filter:drop-shadow(0 2px 3px #2826242e)drop-shadow(0 8px 16px #28262424);width:92px;height:58px;transition:filter .3s;display:block;position:relative}.floating-eye{opacity:1;width:92px;height:58px;position:static;inset:auto;transform:none}.floating-contact.phase-falling .floating-eye{animation:contact-eye-fall var(--contact-fall) cubic-bezier(.55, .06, .68, .19) both}.floating-contact.phase-vibrating .floating-eye{animation:contact-eye-vibrate var(--contact-vibrate) linear both}.floating-contact.phase-rest .floating-eye{animation:none;transform:none}@keyframes contact-eye-fall{0%{opacity:0;transform:translateY(-150vh)scale(.5)}12%{opacity:1}86%{transform:translate(0,0)scale(1.06,.9)}93%{transform:translateY(-5px)scale(.97,1.04)}to{transform:translate(0,0)scale(1)}}@keyframes contact-eye-vibrate{0%,to{transform:translate(0,0)rotate(0)}8%{transform:translate(-2px,1px)rotate(-1.6deg)}16%{transform:translate(2px,-1px)rotate(1.6deg)}25%{transform:translate(-1.6px,1px)rotate(-1.2deg)}34%{transform:translate(1.6px,-1px)rotate(1.2deg)}44%{transform:translate(-1.1px,.6px)rotate(-.8deg)}54%{transform:translate(1.1px,-.6px)rotate(.8deg)}65%{transform:translate(-.6px,.3px)rotate(-.4deg)}76%{transform:translate(.6px,-.3px)rotate(.4deg)}88%{transform:translate(-.2px,.1px)rotate(-.15deg)}}.floating-contact-label{font-family:var(--font-azeret), monospace;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;color:var(--ink);text-shadow:0 0 3px var(--paper), 0 0 6px var(--paper), 0 0 10px #ffffffe6, 0 1px 1px #2826242e;opacity:0;font-size:10px;font-weight:500;transition:opacity .4s .1s,transform .4s cubic-bezier(.22,1,.36,1) .1s;transform:translateY(-3px)}.floating-contact.phase-rest .floating-contact-label{opacity:1;transform:translateY(0)}html[data-menu=open] .floating-contact,html[data-contact=open] .floating-contact{opacity:0;visibility:hidden;pointer-events:none}.footer-cta-eye-dock{vertical-align:middle;width:clamp(104px,11.5vw,152px);height:clamp(66px,7.2vw,96px);margin-left:16px;display:inline-block}.floating-contact.is-docked{pointer-events:none;transition:none}.floating-contact.is-docked:hover{transform:none}.floating-contact.is-docked .floating-contact-eye,.floating-contact.is-docked:hover .floating-contact-eye{filter:none;will-change:auto}.floating-contact.is-docked .floating-contact-label{opacity:0;transition:none}@media (prefers-reduced-motion:reduce){.floating-contact .floating-eye,.floating-contact.phase-falling .floating-eye,.floating-contact.phase-vibrating .floating-eye{animation:none}.floating-contact-label{transition:none}}.command-wrap{pointer-events:none;isolation:isolate;place-items:center;width:clamp(320px,46vw,760px);height:clamp(260px,39vw,620px);display:grid;position:absolute;top:32px;right:0;transform:translateY(18px)}.command-svg{object-fit:contain;width:100%;height:100%;overflow:visible}.command-wrap-inline{flex-shrink:0;width:132px;height:84px;position:relative;top:auto;right:auto}.menu-overlay-brand{align-items:center;gap:14px;min-width:0;display:flex}.ticker{color:var(--muted);background:#938e8638;border-block:1px solid #938e8638;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;display:grid;overflow:hidden}.technology-wall{width:min(100% - 44px,1600px);margin:0 auto}.technology-wall-heading{color:var(--muted);font:11px var(--font-azeret), monospace;text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:20px;padding:18px 0 12px;display:flex}.technology-wall-heading p,.technology-wall-heading span{margin:0}.technology-logo{background:var(--paper);color:#8e8a84;min-width:0;min-height:70px;font:600 13px var(--font-manrope), sans-serif;letter-spacing:-.02em;white-space:nowrap;align-items:center;gap:9px;padding:14px 22px;transition:color .25s,background-color .25s;display:flex}.technology-logo:hover{color:var(--ink);background:#f4f2ef}.technology-logo-mark{color:currentColor;min-width:24px;font:700 13px var(--font-azeret), monospace;letter-spacing:-.08em;flex:none;place-items:center;display:inline-grid}.technology-logo-mark[aria-hidden=true]{text-transform:none}.stack-tier{margin-bottom:8px}.stack-tier-title{color:var(--ink);font:11px var(--font-azeret), monospace;text-transform:uppercase;letter-spacing:.08em;margin:18px 0 8px}.stack-tier:first-of-type .stack-tier-title{margin-top:0}.works{padding-top:45px}.section-heading{top:calc(var(--header-height,72px) - 12px);z-index:30;background:var(--paper);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);grid-template-columns:1fr auto;align-items:center;margin-bottom:36px;padding-block:8px;display:grid;position:sticky}.section-heading>div{min-width:0}.section-heading>.outline-button{white-space:nowrap;flex-shrink:0}@media (max-width:1300px) and (min-width:701px){.section-heading>div{min-width:0}.section-heading>.outline-button{display:none}.project-card-link .project-caption{flex-direction:column;align-items:stretch;gap:12px}.project-card-link .tag{align-self:flex-end}}.section-heading h2,.site-footer h2{font-family:var(--font-major), monospace;font-synthesis:none;text-transform:lowercase;letter-spacing:.06em;margin:0 0 40px;font-size:clamp(28px,4.5vw,44px);font-weight:400;line-height:1.18}.section-heading nav{font:18px var(--font-azeret), monospace;text-transform:uppercase;flex-wrap:wrap;gap:24px;display:flex}.filter-nav{top:calc(var(--header-height,72px) + 40px);z-index:29;background:var(--paper);margin-top:-6px;padding:4px 0 12px;position:sticky}.section-heading nav a{color:var(--ink);text-decoration:none;position:relative}.section-heading nav button{appearance:none;color:var(--muted);font:inherit;text-transform:inherit;white-space:nowrap;background:0 0;border:0;padding:0;transition:color .2s;position:relative}.section-heading nav button:not(:last-child):before{content:"•";color:var(--line);pointer-events:none;position:absolute;top:50%;right:-16px;transform:translateY(-50%)}.section-heading nav button.filter-all:hover,.section-heading nav button.filter-all.is-active{color:var(--ink)}.section-heading nav button.filter-ai-edge-systems:hover,.section-heading nav button.filter-ai-edge-systems.is-active{color:#3159d8}.section-heading nav button.filter-distributed-infrastructure:hover,.section-heading nav button.filter-distributed-infrastructure.is-active{color:#7a42b8}.section-heading nav button.filter-fintech-core-systems:hover,.section-heading nav button.filter-fintech-core-systems.is-active{color:#d14d85}.section-heading nav button.filter-real-time-systems:hover,.section-heading nav button.filter-real-time-systems.is-active{color:#d87525}.section-heading nav button.filter-security-networking:hover,.section-heading nav button.filter-security-networking.is-active{color:#32805c}.section-heading nav button.is-active:after{content:"";background:currentColor;height:1px;position:absolute;bottom:-4px;left:0;right:0}.footer-cta{grid-template-columns:1fr auto;align-items:center;margin-bottom:100px;display:grid}.section-heading nav a:first-child:after{content:"";background:currentColor;height:1px;position:absolute;bottom:-16px;left:0;right:0}.section-heading nav a:hover{text-decoration:underline}.projects{grid-template-columns:repeat(2,1fr);gap:88px 25px;display:grid;overflow-x:clip}.works-more{justify-content:center;margin-top:64px;display:flex}.works-more .outline-button{width:280px;height:60px}.projects .project-card-link.wide{grid-column:1/-1}.projects .project-card-link.half{grid-column:span 1}.project-visual{border:1px solid var(--line);height:672px;transition:background .5s,clip-path 1s cubic-bezier(.76,0,.24,1),transform 1s cubic-bezier(.22,1,.36,1)}.project-visual.has-image{border:0}.project-visual-fallback{border:1px solid var(--line);background:radial-gradient(120% 90% at 50% 0,#2a2724 0%,#171514 45%,#0e0d0c 100%);place-items:center;display:grid;position:relative;overflow:hidden}.project-visual img{object-fit:cover;object-position:top center;width:100%;height:100%;transition:transform 1.2s cubic-bezier(.22,1,.36,1);display:block}.project-visual-fallback-grid{width:100%;height:100%;position:absolute;inset:0}.project-visual-fallback-label{z-index:1;font-family:var(--font-manrope), system-ui, sans-serif;letter-spacing:.18em;text-indent:.18em;color:#ffffff38;border:2px solid #ffffff38;padding:12px 14px 12px 16px;font-size:16px;font-weight:600;line-height:1;position:relative}.wide .project-visual{height:512px}.half .project-visual{height:480px}.project-card-link .project-visual{clip-path:inset(0 0 100%);transform:scale(1.035)translateY(24px)}.project-card-link .scroll-reveal.is-visible .project-visual{clip-path:inset(0);transform:scale(1)translateY(0)}.project-card:hover .project-visual{background:#2826240b;transform:scale(.985)}.project-caption{font-family:var(--font-azeret), monospace;text-transform:uppercase;opacity:0;justify-content:space-between;gap:12px;padding:56px 2px 0;transition:opacity .7s .18s,transform .7s cubic-bezier(.22,1,.36,1) .18s;display:flex;transform:translateY(18px)}.project-card-link .scroll-reveal.is-visible .project-caption{opacity:1;transform:translateY(0)}.project-card-link.half .project-caption,.project-card-link.wide .project-caption{flex-direction:column;align-items:stretch;gap:20px}.project-card-link.half .tag,.project-card-link.wide .tag{align-self:flex-end}.project-caption h3{font-family:var(--font-major), monospace;font-synthesis:none;text-transform:lowercase;letter-spacing:.06em;margin:0 0 8px;font-size:32px;font-weight:400}.project-caption p{color:#726c64;white-space:pre-line;margin:0;font-size:20px;line-height:1.05}.desktop-only-break{display:block}.project-description{white-space:pre-line}.project-detail-page{padding-bottom:120px}.project-detail-page>.project-visual{height:420px}.project-detail-intro{border-bottom:1px solid #938e8666;grid-template-columns:minmax(180px,.45fr) minmax(0,1fr);gap:48px;padding:72px 0 48px;display:grid}.project-detail-label{color:var(--muted);font:11px var(--font-azeret), monospace;text-transform:uppercase;margin:0 0 14px}.project-detail-intro h3,.project-detail-section h3,.project-detail-stack h3{font:400 clamp(28px, 4vw, 48px)/.95 var(--font-major), monospace;text-transform:lowercase;margin:0}.project-detail-lede{max-width:680px;font:400 clamp(20px, 2.5vw, 30px)/1.15 var(--font-azeret), monospace;margin:0}.project-detail-facts{background:#938e8666;border-bottom:1px solid #938e8666;grid-template-columns:repeat(3,1fr);gap:1px;margin:0;display:grid}.project-detail-facts>div{background:var(--paper);min-height:132px;padding:24px 20px}.project-detail-facts dt{color:var(--muted);font:11px var(--font-azeret), monospace;text-transform:uppercase;margin-bottom:18px}.project-detail-facts dd{font:16px/1.25 var(--font-azeret), monospace;margin:0}.project-detail-sections{background:#938e8666;grid-template-columns:repeat(2,1fr);gap:1px;margin-top:72px;display:grid}.project-detail-section{background:var(--paper);min-height:300px;padding:30px 24px}.project-detail-section-wide{grid-column:1/-1;min-height:220px}.project-detail-section>p:last-child{max-width:760px;font:18px/1.45 var(--font-azeret), monospace;margin:28px 0 0}.project-links-list{flex-wrap:wrap;align-content:flex-start;gap:10px;display:flex}.project-links-list a{border:1px solid var(--line);min-width:150px;color:var(--ink);font:12px var(--font-azeret), monospace;text-transform:uppercase;justify-content:space-between;align-items:center;gap:24px;padding:12px 14px;text-decoration:none;transition:background-color .25s,color .25s,transform .25s;display:flex}.project-links-list a:hover{background:var(--ink);color:var(--paper);transform:translateY(-2px)}.project-links-list a span{font-size:16px}.project-detail-list{font:15px/1.35 var(--font-azeret), monospace;gap:14px;margin:42px 0 0;padding:0;list-style:none;display:grid}.project-detail-list li{grid-template-columns:14px 1fr;gap:10px;display:grid}.project-detail-list li:before{content:"→";color:var(--muted)}.project-detail-section-plain{max-width:760px;font-family:var(--font-manrope), system-ui, sans-serif;color:var(--ink);margin:24px 0 0;font-size:16px;line-height:1.65}.project-case-study-sections{background:#938e8666;grid-template-columns:repeat(2,1fr);gap:1px;margin-top:72px;display:grid}.project-case-study-sections .project-detail-section{min-height:0}.project-case-study-sections .project-detail-section>p:not(.project-detail-label){max-width:760px;font:16px/1.5 var(--font-azeret), monospace;margin:28px 0 0}.project-detail-steps{padding-left:24px;list-style:decimal}.project-detail-steps li{padding-left:4px;display:list-item}.project-detail-steps li:before{display:none}.project-detail-benchmark{border-block:1px solid #938e8666;margin-top:72px;padding:30px 24px}.project-detail-benchmark h3{font:400 clamp(28px, 4vw, 48px)/.95 var(--font-major), monospace;text-transform:lowercase;margin:0}.project-detail-benchmark-note{color:var(--muted);font:13px/1.4 var(--font-azeret), monospace;margin:16px 0 0}.project-detail-benchmark .project-detail-label{margin-bottom:14px}.project-detail-benchmark .my-6{font-family:var(--font-azeret), monospace}.related-projects{margin-top:120px}.related-projects-heading{justify-content:space-between;align-items:end;gap:32px;margin-bottom:42px;display:flex}.related-projects-heading>p{max-width:300px;color:var(--muted);font:13px/1.4 var(--font-azeret), monospace;margin:0}.related-projects-grid{grid-template-columns:repeat(3,1fr);gap:25px;display:grid}.related-projects-grid .project-card-link{grid-column:auto}.related-projects-grid .project-visual,.related-projects-grid .wide .project-visual{height:280px}.related-projects-grid .project-caption{flex-direction:column;align-items:stretch;gap:16px;padding-top:24px}.related-projects-grid .project-caption h3{font-size:22px}.related-projects-grid .project-caption p{font-size:13px}.tag{font:16px var(--font-azeret), monospace;white-space:nowrap;flex-wrap:wrap;justify-content:flex-end;gap:2px 12px;padding-top:8px;display:flex}.tag>span{color:var(--paper);border:1px solid;background:currentColor;border-color:currentColor;border-radius:0;padding:6px 10px}.tag>span.tag-blue{background:#3159d8;border-color:#3159d8}.tag>span.tag-purple{background:#7a42b8;border-color:#7a42b8}.tag>span.tag-pink{background:#d14d85;border-color:#d14d85}.tag>span.tag-orange{background:#d87525;border-color:#d87525}.tag>span.tag-green{background:#32805c;border-color:#32805c}.back-home{appearance:none;color:var(--ink);font:14px var(--font-azeret), monospace;text-transform:uppercase;cursor:none;background:0 0;border:0;margin-bottom:32px;padding:0;text-decoration:none;display:inline-block}.back-home:hover{text-decoration:underline}.tag-blue{color:#3159d8}.tag-purple{color:#7a42b8}.tag-pink{color:#d14d85}.tag-orange{color:#d87525}.tag-green{color:#32805c}.orange{color:#f0601c}.pink{color:#ed2864}.blue{color:#079cce}.site-footer{grid-template-columns:1fr;align-items:center;min-height:330px;margin-top:100px;padding:95px 0 8px;display:grid;position:relative}.site-footer h2{font-size:clamp(39px,7vw,70px);line-height:.98}.footer-meta{justify-content:space-between;align-items:end;display:flex;position:absolute;bottom:8px;left:0;right:0}.footer-meta>div,.contact-links{font:20px var(--font-azeret), monospace;text-transform:uppercase;flex-wrap:wrap;justify-content:flex-end;gap:14px;display:flex}.contact-links a{color:inherit;text-decoration:none}.contact-links a:hover{text-decoration:underline}.appshot-slider{width:100vw;margin:20px calc(50% - 50vw) 114px;overflow:hidden}.appshot-track{gap:28px;width:max-content;animation:70s linear infinite appshot-slide;display:flex}.appshot-slide{flex:0 0 clamp(180px,18vw,300px)}.appshot-slide img{aspect-ratio:464/1024;object-fit:cover;border-radius:0;width:100%;height:auto;display:block}.contact-backdrop{--contact-paper:#fff;--contact-ink:#282624;--contact-line:#938e86;z-index:90;opacity:0;visibility:hidden;background:#282624bd;justify-content:flex-end;align-items:stretch;transition:opacity .45s,visibility 0s linear .45s;display:flex;position:fixed;inset:0}.contact-backdrop.is-open{opacity:1;visibility:visible;transition-delay:0s}.contact-dialog{background:var(--contact-paper);width:min(100%,720px);height:100%;max-height:100vh;color:var(--contact-ink);font-family:var(--font-major), monospace;scrollbar-width:thin;scrollbar-color:var(--contact-line) var(--contact-paper);padding:32px 42px 38px;transition:transform .6s cubic-bezier(.22,1,.36,1);overflow-y:auto;transform:translate(100%)}.contact-dialog::-webkit-scrollbar{width:7px}.contact-dialog::-webkit-scrollbar-track{background:var(--contact-paper)}.contact-dialog::-webkit-scrollbar-thumb{background:var(--contact-line);border:2px solid var(--contact-paper);border-radius:999px}.contact-backdrop.is-open .contact-dialog{transform:translate(0)}.contact-dialog-top{justify-content:space-between;align-items:center;margin-bottom:46px;display:flex}.contact-progress{flex:1;gap:8px;display:flex}.contact-progress span{background:var(--contact-line);flex:1;height:4px}.contact-progress span:first-child{background:var(--contact-ink)}.contact-close{color:var(--contact-ink);font:34px/1 var(--font-azeret), monospace;background:0 0;border:0;padding:0 0 0 24px}.contact-kicker,.contact-question{font:16px var(--font-azeret), monospace;text-transform:uppercase;margin:0 0 12px}.contact-dialog h2{max-width:11ch;font:400 clamp(42px, 7vw, 76px)/.88 var(--font-major), monospace;text-transform:lowercase;margin:0 0 42px}.contact-options{gap:12px;margin-bottom:28px;display:grid}.contact-options label{color:var(--contact-ink);font:18px var(--font-azeret), monospace;text-transform:uppercase;background:#938e861f;align-items:center;gap:16px;padding:20px;display:flex}.contact-options input{accent-color:var(--contact-ink)}.contact-fields{gap:12px;margin-bottom:26px;display:grid}.contact-fields input,.contact-fields textarea{border:1px solid var(--contact-line);width:100%;color:var(--contact-ink);font:16px var(--font-azeret), monospace;background:0 0;padding:15px 16px}.contact-fields input::placeholder,.contact-fields textarea::placeholder{color:var(--contact-line);opacity:1}.contact-fields textarea{resize:vertical}.contact-next{background:var(--contact-ink);min-width:180px;color:var(--contact-paper);font:16px var(--font-azeret), monospace;text-transform:uppercase;border:0;justify-content:space-between;align-items:center;margin-left:auto;padding:16px 20px;transition:background .35s,color .35s,transform .35s;display:flex}.contact-next:hover{background:#f0601c;transform:translateY(-3px)}.contact-error{font:13px/1.5 var(--font-azeret), monospace;color:#b3261e;margin:0 0 18px}.contact-error a{color:inherit}.contact-success{flex-direction:column;justify-content:center;min-height:400px;display:flex}.contact-success-logo{border-style:solid;border-width:2px;border-color:var(--contact-line);color:var(--contact-ink);margin-bottom:48px}.contact-success h2{margin-bottom:18px}.contact-success p{font:18px/1.35 var(--font-azeret), monospace;margin:0}.contact-success .contact-next{margin-top:36px}.contact-direct-label{font:13px var(--font-azeret), monospace;text-transform:uppercase;margin:0 0 10px}.contact-dialog-links{justify-content:flex-start;gap:16px;margin-bottom:26px;font-size:14px}.scroll-reveal{opacity:0;transition:opacity .55s ease var(--reveal-delay,0s), transform .55s cubic-bezier(.22, 1, .36, 1) var(--reveal-delay,0s);transform:translateY(22px)}.scroll-reveal.is-visible{opacity:1;transform:translateY(0)}.project-card-link>.scroll-reveal{height:100%}.cursor-mirror{z-index:40;pointer-events:none;background:var(--paper);mix-blend-mode:difference;will-change:transform;border-radius:50%;width:64px;height:64px;position:fixed;top:0;left:0}.cursor-mirror-mid{background:#000;border-radius:50%;width:56px;height:56px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cursor-mirror-core{background:var(--paper);border-radius:50%;width:8px;height:8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cursor-mirror-mid,.cursor-mirror-core{transition:opacity .22s}.cursor-mirror-label{text-align:center;white-space:nowrap;font-family:var(--font-azeret), monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);opacity:0;font-size:9px;font-weight:500;transition:opacity .22s;display:none}.cursor-mirror.is-action{border-radius:999px;width:auto;height:auto;padding:15px 19px}.cursor-mirror.is-action .cursor-mirror-mid,.cursor-mirror.is-action .cursor-mirror-core{opacity:0}.cursor-mirror.is-action .cursor-mirror-label{opacity:1;display:block}.loader{z-index:100;position:fixed;inset:0}.loader-curtain{will-change:transform;background:#0e0d0c;transition:transform .6s cubic-bezier(.76,0,.24,1);position:absolute;left:0;right:0}.loader-curtain-top{height:50%;top:0;transform:translateY(0)}.loader-curtain-bottom{height:50%;bottom:0;transform:translateY(0)}.loader.is-exiting .loader-curtain-top{transform:translateY(-100%)}.loader.is-exiting .loader-curtain-bottom{transform:translateY(100%)}.loader-logo-wrap{z-index:1;place-items:center;transition:opacity .4s;display:grid;position:absolute;inset:0}.loader.is-exiting .loader-logo-wrap{opacity:0}.loader-logo-box{aspect-ratio:60/64;border:2px solid #ffffffe6;justify-content:center;align-items:flex-end;width:clamp(78px,8vw,104px);height:auto;padding-bottom:2px;display:flex;position:relative;overflow:hidden}.loader-logo-fill{background:var(--paper);height:0%;animation:1.2s cubic-bezier(.65,0,.35,1) forwards liquid-fill;position:absolute;bottom:0;left:0;right:0}.loader-logo-fill:before{content:"";background:var(--paper);border-radius:43%;width:200px;height:200px;margin-left:-100px;animation:6s linear infinite liquid-wave;position:absolute;top:-70px;left:50%}.loader-logo-text{text-align:center;z-index:1;font-size:clamp(14px,1.5vw,18px);display:block;position:absolute;inset:auto 0 8px}.loader-logo-text-base{color:var(--paper)}.loader-logo-text-reveal{color:#0e0d0c;clip-path:inset(100% 0 0);animation:1.2s cubic-bezier(.65,0,.35,1) forwards text-reveal}@keyframes liquid-fill{to{height:100%}}@keyframes liquid-wave{to{transform:rotate(360deg)}}@keyframes text-reveal{to{clip-path:inset(0)}}.eyebrow,.hero-title p,.hero-title h1,.hero-title-row .outline-button,.command-wrap{opacity:0;transition:opacity .9s,transform .9s cubic-bezier(.22,1,.36,1)}.eyebrow,.hero-title p,.hero-title h1,.hero-title-row .outline-button{transform:translateY(18px)}.portfolio-page.is-ready .eyebrow{opacity:1;transition-delay:50ms;transform:translateY(0)}.portfolio-page.is-ready .hero-title p{opacity:1;transition-delay:.15s;transform:translateY(0)}.portfolio-page.is-ready .hero-title h1{opacity:1;transition-delay:.25s;transform:translateY(0)}.portfolio-page.is-ready .hero-title-row .outline-button{opacity:1;transition-delay:.35s;transform:translateY(0)}.portfolio-page.is-ready .command-wrap{opacity:1;transition-delay:.45s;transform:translateY(0)}.portfolio-page .menu-overlay .command-wrap-inline{opacity:0;transform-origin:50%;transition:opacity .35s .5s,transform .55s cubic-bezier(.34,1.56,.64,1) .5s;transform:scale(.3)}.portfolio-page .menu-overlay.is-open .command-wrap-inline{opacity:1;transform:scale(1)}html[data-menu=open] .hero .command-wrap{opacity:0;transition:opacity .3s,transform .35s cubic-bezier(.22,1,.36,1);transform:scale(.55)}@media (max-width:1300px){.hero-title p{font-size:clamp(52px,6vw,76px)}.hero-title h1{font-size:clamp(96px,13vw,172px)}.eyebrow{font-size:18px}.command-wrap{width:min(48vw,520px);height:min(42vw,440px)}}@media (max-width:1024px){.menu-overlay-body{grid-template-columns:minmax(0,1fr);align-content:center;gap:32px}.menu-feature{max-width:560px;min-height:220px}.hero-title p{font-size:52px}.hero-title h1{font-size:clamp(72px,12vw,120px)}.eyebrow{max-width:32ch;font-size:16px}.command-wrap{width:min(48vw,420px);height:min(42vw,360px)}.outline-button{width:240px;height:64px;font-size:16px}.case-study-cover-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:700px){.portfolio-page{cursor:auto}.portfolio-page a,.portfolio-page button,.back-home{cursor:pointer}.site-header,.hero,.works,.site-footer{width:calc(100% - 44px)}.hero{min-height:calc(100vh - var(--header-height));padding-block:20px 32px;overflow:hidden}.hero-copy{z-index:1;position:relative}.hero-title{margin-top:clamp(72px,18vw,120px)}.hero-title p{font-size:clamp(26px,8vw,34px)}.hero-title h1{font-size:clamp(46px,14vw,88px)}.hero-title-row{flex-direction:column;align-items:flex-start;gap:24px}.hero-title-row .outline-button{margin-bottom:0}.eyebrow{max-width:100%;font-size:14px}.outline-button{width:220px;height:56px;font-size:14px}.works-more .outline-button{width:min(100%,280px)}.monogram{width:48px;height:52px}.monogram .logo-text{font-size:13px}.menu-lines{width:56px;height:56px}.command-wrap{width:min(82vw,380px);height:min(76vw,330px);top:50%;right:-12px;transform:translateY(calc(18px - 50%))}.ticker{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.technology-wall-heading{flex-direction:column;align-items:flex-start;gap:5px}.technology-logo{min-height:58px;padding:12px 14px;font-size:11px}.section-heading{flex-direction:column;align-items:flex-start;gap:12px}.section-heading h2{margin-bottom:16px}.portfolio-page.is-ready .command-wrap{transform:translateY(-50%)}.command-wrap-inline{width:96px;height:62px;top:auto;right:auto;transform:none}.portfolio-page.is-ready .command-wrap-inline{transform:none}.portfolio-page .menu-overlay .command-wrap-inline{opacity:0;transform:scale(.3)}.portfolio-page .menu-overlay.is-open .command-wrap-inline{opacity:1;transform:scale(1)}.menu-overlay-brand{gap:12px}.section-heading nav{flex-wrap:wrap;gap:18px;max-width:100%;font-size:11px}.section-heading>.outline-button{display:none}.section-heading nav button:not(:last-child):before{right:-11px}.projects{grid-template-columns:1fr}.projects .project-card-link,.projects .project-card-link:first-child,.projects .project-card-link:nth-child(2),.projects .project-card-link:nth-child(3),.projects .project-card-link:nth-child(4),.projects .project-card-link:nth-child(5),.projects .project-card-link:nth-child(6){grid-column:1}.section-heading nav a:first-child:after,.section-heading nav button.is-active:after{bottom:-4px}.projects{gap:30px 18px}.project-visual,.wide .project-visual{height:220px}.project-detail-page{padding-bottom:72px}.project-detail-page>.project-visual{height:220px}.project-detail-intro{grid-template-columns:1fr;gap:24px;padding:42px 0 30px}.project-detail-intro h3,.project-detail-section h3,.project-detail-stack h3{font-size:30px}.project-detail-lede{font-size:17px}.project-detail-facts{grid-template-columns:1fr}.project-detail-facts>div{min-height:0;padding:18px 14px}.project-detail-facts dt{margin-bottom:8px}.project-detail-sections,.project-case-study-sections{grid-template-columns:1fr;margin-top:42px}.project-detail-benchmark{margin-top:42px;padding:24px 16px}.project-detail-benchmark h3{font-size:30px}.project-detail-section{min-height:0;padding:24px 16px 30px}.project-detail-section-wide{grid-column:auto}.project-detail-list{margin-top:28px;font-size:13px}.project-detail-section>p:last-child{margin-top:22px;font-size:14px}.case-study-cover{gap:24px;padding:42px 0 30px}.case-study-cover>h3{font-size:30px}.case-study-stats{grid-template-columns:minmax(0,1fr)}.case-study-cover-bottom{flex-direction:column;align-items:stretch;gap:24px}.project-links-list{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.project-links-list a{min-width:0;padding:11px 10px;font-size:10px}.related-projects{margin-top:72px}.related-projects-heading{margin-bottom:28px;display:block}.related-projects-heading>p{margin-top:16px}.related-projects-grid{grid-template-columns:1fr;gap:42px}.related-projects-grid .project-visual,.related-projects-grid .wide .project-visual{height:220px}.project-caption{gap:8px;padding-top:14px}.project-card-link .project-caption{flex-direction:column;align-items:stretch;gap:8px}.project-card-link .tag{align-self:flex-end}.project-caption h3{font-size:12px}.project-caption p{font-size:7px}.desktop-only-break{display:none}.tag{gap:2px 10px;font-size:8px}.site-footer{grid-template-columns:1fr;gap:0;min-height:300px;margin-top:100px;padding-top:48px;padding-bottom:42px}.footer-cta{grid-template-columns:1fr;gap:12px;margin-bottom:64px}.works-more{justify-content:flex-start;width:calc(100% - 44px);margin-inline:auto}.site-footer .outline-button{width:220px}.footer-meta{align-items:flex-end;position:static}.footer-meta>div{text-align:right;gap:10px;font-size:12px}.appshot-slider{margin-top:8px;margin-bottom:98px}.appshot-track{gap:16px}.appshot-slide{flex-basis:150px}.appshot-slider{padding-block:40px}.appshot-track-curved{--ry:22%}.menu-overlay{padding:22px 22px 42px}.menu-overlay-body{flex-direction:column;justify-content:center;align-items:stretch;gap:28px;padding-block:40px 28px;display:flex;overflow-y:auto}.menu-links{grid-template-columns:1fr;gap:12px}.menu-links a{font-size:clamp(25px,8vw,38px)}.menu-feature{min-height:190px;padding:24px}.menu-feature p{font-size:14px}.menu-feature-logo{width:48px;height:52px;padding-bottom:8px}.menu-feature-logo .logo-text{font-size:13px}.menu-overlay-bottom{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;padding-top:16px;display:grid}.menu-overlay-actions{flex-direction:column;align-items:stretch;gap:14px;width:100%}.menu-overlay-links{justify-content:flex-start;gap:9px;font-size:10px}.menu-role-software{margin-bottom:8px;font-size:18px}.menu-role-engineer{font-size:30px}.menu-overlay-bottom .outline-button{width:min(100%,220px);height:52px;font-size:12px}.contact-dialog{max-height:calc(100vh - 28px);padding:24px 22px 26px}.contact-dialog-top{margin-bottom:32px}.contact-dialog h2{margin-bottom:28px}.contact-options label{padding:15px;font-size:13px}.contact-success{min-height:300px}.contact-success-logo{width:48px;height:52px;margin-bottom:32px;padding-bottom:8px}.contact-success-logo .logo-text{font-size:13px}.cursor-mirror{display:none}.loader-logo-box{width:78px}.loader-logo-text{font-size:14px}}@keyframes appshot-slide{to{transform:translate(calc(-50% - 14px))}}@media (prefers-reduced-motion:reduce){.scroll-reveal{opacity:1;transform:none}.project-card-link .project-visual{clip-path:inset(0);transform:none}.project-caption{opacity:1;transform:none}.portfolio-page *,.portfolio-page :before,.portfolio-page :after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.project-card-link{color:inherit;text-decoration:none;display:block}.project-card-link .project-card{transition:transform .5s}.project-card-link:hover .project-card{transform:translateY(-2px)}.floating-contact .floating-contact-eye .floating-eye{opacity:1;width:92px;height:58px;transition:none;position:static;inset:auto;transform:none}@media (max-width:700px){.floating-contact .floating-contact-eye .floating-eye{width:72px;height:46px}.floating-contact{padding:3px}.floating-contact-label{letter-spacing:.08em;font-size:9px}.footer-cta-eye-dock{width:72px;height:46px;margin-left:8px}}.project-visual-full,.wide .project-visual-full,.related-projects-grid .project-visual-full,.related-projects-grid .wide .project-visual-full{height:auto}.project-visual-full img{width:100%;height:auto;display:block}.case-study-cover{border-bottom:1px solid #938e8666;gap:34px;padding:72px 0 44px;display:grid}.case-study-cover-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;display:flex}.case-study-cover-meta .project-detail-label{margin:0}.case-study-cover-domains{flex-wrap:wrap;gap:6px;display:flex}.case-study-cover-domains span{font:500 10px var(--font-azeret), monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--paper);white-space:nowrap;border:1px solid;padding:5px 9px 4px}.case-study-cover-domains span.domain-blue{background:#3159d8;border-color:#3159d8}.case-study-cover-domains span.domain-purple{background:#7a42b8;border-color:#7a42b8}.case-study-cover-domains span.domain-pink{background:#d14d85;border-color:#d14d85}.case-study-cover-domains span.domain-orange{background:#d87525;border-color:#d87525}.case-study-cover-domains span.domain-green{background:#32805c;border-color:#32805c}.case-study-cover>h3{font:400 clamp(32px, 5vw, 64px)/.95 var(--font-major), monospace;text-transform:lowercase;margin:0}.case-study-cover-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:24px 48px;display:grid}.case-study-plain{border:1px solid #938e8666;flex-direction:column;align-self:stretch;gap:14px;padding:22px;display:flex}.case-study-plain-label{font:500 10px var(--font-azeret), monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);border:1px solid var(--line);align-self:flex-start;margin:0;padding:5px 9px 4px}.case-study-plain-text{font-family:var(--font-manrope), system-ui, sans-serif;color:var(--ink);margin:0;font-size:17px;line-height:1.6}.case-study-stats{background:#938e8666;border:1px solid #938e8666;grid-template-columns:repeat(3,minmax(0,1fr));align-self:stretch;gap:1px;display:grid}.case-study-stat{background:var(--paper);flex-direction:column;gap:8px;padding:18px 16px;display:flex}.case-study-stat-label{font:500 10px var(--font-azeret), monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0}.case-study-stat-value{font:500 clamp(17px, 1.6vw, 21px)/1.2 var(--font-azeret), monospace;color:var(--ink);margin:0}.case-study-stat-detail{font:12px/1.4 var(--font-azeret), monospace;color:var(--muted);margin:0}.case-study-cover-bottom{flex-direction:column;align-items:stretch;gap:28px;display:flex}.case-study-cover-bottom-group{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:28px 48px;width:100%;display:flex}.case-study-cover-bottom .case-study-cover-bottom-group{width:100%}.project-detail-platforms{margin-top:0}.project-detail-platform-tags{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.platform-tag{font:500 10px var(--font-azeret), monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);border:1px solid var(--line);white-space:nowrap;align-items:center;gap:6px;padding:5px 9px 4px;display:inline-flex}.platform-icon-lucide{color:currentColor;justify-content:center;align-items:center;line-height:0;display:inline-flex}.platform-icon{width:10px;height:10px;display:inline-block;position:relative}.platform-icon--windows:before{content:"";clip-path:polygon(0 0,100% 0,100% 40%,60% 40%,60% 60%,100% 60%,100% 100%,0 100%,0 60%,40% 60%,40% 40%,0 40%);background:currentColor;position:absolute;inset:0}.platform-icon--linux:before{content:"";clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);background:currentColor;position:absolute;inset:0}.platform-icon--android:before{content:"";clip-path:polygon(50% 0%,85% 15%,100% 50%,85% 85%,50% 100%,15% 85%,0% 50%,15% 15%);background:currentColor;position:absolute;inset:0}.platform-icon--android:after{content:"";background:var(--paper);border-radius:50%;width:2px;height:2px;position:absolute;top:1px;right:2px}.platform-icon--web:before{content:"";clip-path:circle(50%);background:currentColor;position:absolute;inset:0}.platform-icon--web:after{content:"";border:.5px solid var(--paper);border-radius:50%;position:absolute;inset:1px}.platform-icon--cli:before{content:">";font-size:8px;line-height:1;font-family:var(--font-azeret), monospace;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.platform-icon--server:before{content:"";clip-path:polygon(0 25%,100% 25%,100% 75%,0 75%);background:currentColor;position:absolute;inset:0}.platform-icon--docker:before{content:"";clip-path:polygon(20% 0%,80% 0%,100% 30%,100% 70%,80% 100%,20% 100%,0% 70%,0% 30%);background:currentColor;position:absolute;inset:0}.platform-icon--docker:after{content:"";background:var(--paper);width:2px;height:6px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.case-study-cover-bottom .project-detail-stack{margin-top:0}.case-study-explore{justify-items:start;gap:12px;display:grid}.case-study-explore .project-detail-label{margin:0}.case-study-explore .project-links-list a{gap:14px;min-width:0;padding:10px 14px}.case-study-explore .project-links-list a[href*=github\.com]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.case-study-explore .project-links-list a[href*=github\.com]:hover{color:var(--paper);background:#171514}.project-detail-stack{margin-top:28px}.project-detail-stack-tags{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.project-detail-stack-tags span{font:500 10px var(--font-azeret), monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);border:1px solid var(--line);white-space:nowrap;padding:5px 9px 4px}
