*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;background:oklch(.18 .012 290);font-family:Hanken Grotesk,-apple-system,BlinkMacSystemFont,sans-serif}a{color:inherit;text-decoration:none}@-webkit-keyframes wobble{0%,to{-webkit-transform:rotate(-2.5deg);transform:rotate(-2.5deg)}50%{-webkit-transform:rotate(2.5deg);transform:rotate(2.5deg)}}@keyframes wobble{0%,to{-webkit-transform:rotate(-2.5deg);transform:rotate(-2.5deg)}50%{-webkit-transform:rotate(2.5deg);transform:rotate(2.5deg)}}@-webkit-keyframes dotpulse{0%,to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:.6;-webkit-transform:scale(1.45);transform:scale(1.45)}}@keyframes dotpulse{0%,to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:.6;-webkit-transform:scale(1.45);transform:scale(1.45)}}@-webkit-keyframes marquee{0%{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(-50%);transform:translateX(-50%)}}@keyframes marquee{0%{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(-50%);transform:translateX(-50%)}}.navlink{transition:color .15s}.navlink:hover{color:oklch(.96 .015 95)}.get-in-touch{transition:-webkit-transform .15s;transition:transform .15s;transition:transform .15s,-webkit-transform .15s}.get-in-touch:hover{-webkit-transform:translateY(-1px);transform:translateY(-1px)}.cta{transition:-webkit-transform .15s;transition:transform .15s;transition:transform .15s,-webkit-transform .15s}.cta-primary:hover{-webkit-transform:translateY(-3px) rotate(-1deg);transform:translateY(-3px) rotate(-1deg)}.cta-secondary:hover{-webkit-transform:translateY(-3px) rotate(1deg);transform:translateY(-3px) rotate(1deg)}.proj-card{transition:border-color .18s,-webkit-transform .18s;transition:transform .18s,border-color .18s;transition:transform .18s,border-color .18s,-webkit-transform .18s}.proj-card:hover{border-color:#fff;border-color:var(--card-hover,#fff);-webkit-transform:translateY(-5px);transform:translateY(-5px)}.contact-btn{transition:border-color .15s,-webkit-transform .15s;transition:transform .15s,border-color .15s;transition:transform .15s,border-color .15s,-webkit-transform .15s}.contact-btn:hover{-webkit-transform:translateY(-3px);transform:translateY(-3px)}.contact-btn-outline:hover{border-color:#fff}.social-link{transition:color .15s}.social-link:hover{color:#fff}.lift{transition:-webkit-transform .15s;transition:transform .15s;transition:transform .15s,-webkit-transform .15s}.lift:hover{-webkit-transform:translateY(-3px);transform:translateY(-3px)}@-webkit-keyframes breathe{0%,to{border-color:#ffffff1f;box-shadow:0 24px 60px -28px rgba(0,0,0,.7),0 0 0 0 transparent}50%{border-color:color-mix(in oklch,var(--accent) 55%,transparent);box-shadow:0 24px 60px -28px rgba(0,0,0,.7),0 0 34px -6px color-mix(in oklch,var(--accent) 45%,transparent)}}@keyframes breathe{0%,to{border-color:#ffffff1f;box-shadow:0 24px 60px -28px rgba(0,0,0,.7),0 0 0 0 transparent}50%{border-color:color-mix(in oklch,var(--accent) 55%,transparent);box-shadow:0 24px 60px -28px rgba(0,0,0,.7),0 0 34px -6px color-mix(in oklch,var(--accent) 45%,transparent)}}@-webkit-keyframes onlinepulse{0%,to{box-shadow:0 0 0 0 var(--accent);-webkit-transform:scale(1);transform:scale(1)}50%{box-shadow:0 0 0 5px transparent;-webkit-transform:scale(1.3);transform:scale(1.3)}}@keyframes onlinepulse{0%,to{box-shadow:0 0 0 0 var(--accent);-webkit-transform:scale(1);transform:scale(1)}50%{box-shadow:0 0 0 5px transparent;-webkit-transform:scale(1.3);transform:scale(1.3)}}@-webkit-keyframes tdot{0%,60%,to{opacity:.4;-webkit-transform:translateY(0);transform:translateY(0)}30%{opacity:1;-webkit-transform:translateY(-5px);transform:translateY(-5px)}}@keyframes tdot{0%,60%,to{opacity:.4;-webkit-transform:translateY(0);transform:translateY(0)}30%{opacity:1;-webkit-transform:translateY(-5px);transform:translateY(-5px)}}@-webkit-keyframes arrowbob{0%,to{-webkit-transform:translateY(0);transform:translateY(0)}50%{-webkit-transform:translateY(-5px);transform:translateY(-5px)}}@keyframes arrowbob{0%,to{-webkit-transform:translateY(0);transform:translateY(0)}50%{-webkit-transform:translateY(-5px);transform:translateY(-5px)}}@-webkit-keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.chat-term{-webkit-animation:breathe 3.6s ease-in-out infinite;animation:breathe 3.6s ease-in-out infinite;background:oklch(.155 .012 290);border:1px solid #ffffff1f;border-radius:14px;display:flex;flex-direction:column;height:600px;max-height:74vh;overflow:hidden}.chat-term__bar{align-items:center;background:oklch(.19 .012 290);border-bottom:1px solid #ffffff14;color:#9a988f;display:flex;font-family:JetBrains Mono,monospace;font-size:13px;justify-content:space-between;padding:13px 16px}.chat-term__bar-left{align-items:center;display:flex;gap:9px}.chat-term__dot{border-radius:50%;height:11px;width:11px}.chat-term__title{margin-left:8px}.chat-term__live{align-items:center;color:var(--accent);display:inline-flex;font-size:12px;gap:8px}.chat-term__live i{-webkit-animation:onlinepulse 1.8s ease-in-out infinite;animation:onlinepulse 1.8s ease-in-out infinite;background:var(--accent);border-radius:50%;height:8px;width:8px}.chat-term__body{display:flex;flex:1 1;flex-direction:column;gap:16px;min-height:0;overflow-y:auto;padding:22px;scrollbar-color:#ffffff22 transparent;scrollbar-width:thin}.chat-term__body::-webkit-scrollbar{width:7px}.chat-term__body::-webkit-scrollbar-thumb{background:#ffffff22;border-radius:99px}.chat-term__msg{font-size:14.5px;line-height:1.55;max-width:88%}.chat-term__msg--bot{align-self:flex-start;border-left:2px solid var(--accent);color:#d7d5d0;padding-left:14px}.chat-term__msg--bot b{color:#fff;font-weight:600}.chat-term__who{color:var(--accent);display:block;font-family:JetBrains Mono,monospace;font-size:13px;margin-bottom:7px}.chat-term__msg--user{align-self:flex-end;background:oklch(.52 .2 300/.22);border:1px solid oklch(.62 .18 300/.5);border-radius:11px 11px 3px 11px;color:#efeef0;padding:9px 13px}.chat-term__chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:4px}.chat-chip{background:#ffffff08;border:1px solid #ffffff1f;border-radius:999px;color:#cfcdc9;cursor:pointer;font-family:JetBrains Mono,monospace;font-size:12px;padding:8px 12px;transition:border-color .15s,color .15s,-webkit-transform .15s;transition:border-color .15s,color .15s,transform .15s;transition:border-color .15s,color .15s,transform .15s,-webkit-transform .15s}.chat-chip:hover{border-color:var(--accent);color:#fff;-webkit-transform:translateY(-2px);transform:translateY(-2px)}.chat-term__typing{align-self:flex-start;border-left:2px solid var(--accent);padding-left:14px}.chat-term__typing .chat-term__who{margin-bottom:8px}.chat-term__typing-dots{align-items:center;display:flex;gap:5px;height:14px}.chat-term__typing-dots span{-webkit-animation:tdot 1s ease-in-out infinite;animation:tdot 1s ease-in-out infinite;background:#cfcdc9;border-radius:50%;height:7px;width:7px}.chat-term__typing-dots span:nth-child(2){-webkit-animation-delay:.15s;animation-delay:.15s}.chat-term__typing-dots span:nth-child(3){-webkit-animation-delay:.3s;animation-delay:.3s}.chat-term__hint{align-items:center;color:var(--accent);display:flex;font-family:JetBrains Mono,monospace;font-size:12px;gap:8px;padding:0 20px 10px}.chat-term__hint-arrow{-webkit-animation:arrowbob 1.4s ease-in-out infinite;animation:arrowbob 1.4s ease-in-out infinite;display:inline-block}.chat-term__form{align-items:center;background:oklch(.17 .012 290);border-top:1px solid #ffffff14;display:flex;gap:12px;padding:15px 18px}.chat-term__prompt{color:var(--accent);font-family:JetBrains Mono,monospace;font-size:16px}.chat-term__field{align-items:center;cursor:text;display:flex;flex:1 1;font-family:JetBrains Mono,monospace;font-size:15px;min-width:0;overflow:hidden;position:relative}.chat-term__input{background:transparent;border:none;caret-color:transparent;color:oklch(.96 .015 95);flex:1 1;font:inherit;min-width:0;padding:0;width:100%}.chat-term__input:focus,.chat-term__input:focus-visible{outline:none}.chat-term__caret{-webkit-animation:blink 1.1s step-end infinite;animation:blink 1.1s step-end infinite;background:var(--accent);display:inline-block;flex:none;height:17px;margin-left:2px;width:8px}.chat-term__ph{align-items:center;color:#7e7c77;display:flex;font-size:15px;inset:0;overflow:hidden;pointer-events:none;position:absolute}.chat-term__meta,.chat-term__ph{font-family:JetBrains Mono,monospace;white-space:nowrap}.chat-term__meta{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:#6f6d68;flex:none;font-size:12px;font-variant-numeric:tabular-nums}.chat-term__meta.is-warn{color:var(--accent)}.chat-term__send{align-items:center;background:var(--accent);border:none;border-radius:7px;color:var(--accent-ink);cursor:pointer;display:inline-flex;font-size:16px;height:34px;justify-content:center;transition:opacity .15s,-webkit-transform .12s;transition:transform .12s,opacity .15s;transition:transform .12s,opacity .15s,-webkit-transform .12s;width:38px}.chat-term__send:hover:not(:disabled){-webkit-transform:translateY(-2px);transform:translateY(-2px)}.chat-term__send:disabled{cursor:default;opacity:.4}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width:880px){.nav{padding:13px 20px!important}.navlinks{gap:14px!important}.navlinks-extra{display:none!important}.hero{min-height:0!important;padding:56px 22px 60px!important}.hero-inner{gap:32px!important;grid-template-columns:1fr!important}.chat-term{height:460px!important;max-height:70vh!important}.about-grid{gap:40px!important;grid-template-columns:1fr!important;padding:64px 22px!important}.section-pad{padding-left:22px!important;padding-right:22px!important}.grid2,.grid3,.job-row,.stack-grid{grid-template-columns:1fr!important}.job-row{gap:10px!important;padding:26px 0!important}.site-footer{padding:22px!important}}@media (max-width:600px){.hero-badges{display:none!important}.hero-h1{font-size:15vw!important}.hero-lead{font-size:18px!important}.hero-cta a{justify-content:center!important;width:100%!important}.section-pad{padding-bottom:64px!important;padding-top:64px!important}}@media (prefers-reduced-motion:reduce){*,:after,:before{-webkit-animation:none!important;animation:none!important}}
/*# sourceMappingURL=main.bb8a5ba6.css.map*/