:root{--ink:#191b35;--blue:#3128c9;--orange:#ff7759;--lime:#d9ff5c;--paper:#eff0f8;--white:#fffefa;--muted:#50536d;--font-display:"Bricolage Grotesque",Arial,sans-serif;--font-body:Manrope,Arial,sans-serif}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{margin:0;min-height:100vh;color:var(--ink);background:var(--paper);font-family:var(--font-body);-webkit-font-smoothing:antialiased}::selection{background:var(--lime);color:var(--ink)}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-thumb{background:#c4c6dc;border:3px solid var(--paper);border-radius:100px}::-webkit-scrollbar-thumb:hover{background:var(--blue)}a{color:inherit;text-decoration:none}a:hover{text-decoration:none}:focus-visible{outline:3px solid var(--orange);outline-offset:5px}img,svg{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--font-display);text-wrap:balance}button,input,textarea{font:inherit}.shell{width:min(100%,1512px);margin-inline:auto;padding-inline:30px}.skip-link{position:absolute;z-index:999;left:20px;top:-80px;background:var(--lime);padding:12px 18px;border-radius:12px;font-weight:800}.skip-link:focus{top:15px}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:55px;padding:0 25px;border-radius:100px;font-size:13px;font-weight:800;transition:transform .35s cubic-bezier(.16,1,.3,1),background .2s ease}.button:hover{transform:translateY(-4px)}.button-blue{background:var(--blue);color:#fff}.button-blue:hover{background:var(--ink)}.button-lime{background:var(--lime);color:var(--ink)}.button-lime:hover{background:#fff}.button-dark{background:var(--ink);color:#fff}.button-dark:hover{background:var(--blue)}.section-intro{display:flex;align-items:end;justify-content:space-between;gap:50px;margin-bottom:33px}.section-intro h2{font-size:clamp(51px,5.1vw,76px);font-weight:800;letter-spacing:-.04em;line-height:1;margin:0}.section-intro p{font-size:15px;line-height:1.65;font-weight:600;max-width:340px;margin:0 5px 5px;color:var(--muted)}.ticker{overflow:hidden;white-space:nowrap;border-bottom:1px solid #d7d9e8;padding:18px 0 17px;margin-bottom:94px;color:var(--ink);font-family:var(--font-display);font-weight:800;font-size:17px;letter-spacing:-.02em}.ticker span{padding:0 29px}.ticker b{color:var(--orange);font-weight:800}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bob{to{transform:rotate(7deg) translateY(-10px)}}@media(max-width:800px){.shell{padding-inline:16px}.section-intro{display:block}.section-intro h2{font-size:56px;margin-bottom:15px}.section-intro p{max-width:500px}.ticker{margin-bottom:65px}}@media(max-width:520px){.section-intro h2{font-size:47px}.section-intro p{font-size:13px}.ticker{font-size:14px;margin-bottom:54px}.button{min-height:52px;font-size:12px;padding-inline:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}html[data-theme] body{transition:background-color .38s ease,color .38s ease}html.theme-changing body{transition:none}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:0}::view-transition-new(root){z-index:1}html[data-theme=dark]{--ink: #f5f3ff;--blue: #b2aaff;--orange: #ff896e;--lime: #dcff6d;--paper: #101222;--white: #1e223b;--muted: #b9bfd5;--dark-line: #3c415e;--dark-royal: #392ec2;color-scheme:dark;background:var(--paper)}html[data-theme=dark] body{background:var(--paper);color:var(--ink)}html[data-theme=dark] ::selection{background:var(--lime);color:#171a2e}html[data-theme=dark] ::-webkit-scrollbar-thumb{background:#505675;border-color:var(--paper)}html[data-theme=dark] .skip-link{color:#171a2e}html[data-theme=dark] .topbar .nav-cta{background:var(--lime);color:#171a2e}html[data-theme=dark] .topbar .nav-cta:hover{background:#fffefa}html[data-theme=dark] .theme-toggle{background:var(--lime);border-color:var(--lime);color:#171a2e}html[data-theme=dark] .theme-toggle:hover{background:#f0ffb0;border-color:#f0ffb0}html[data-theme=dark] .theme-moon{opacity:0;transform:rotate(-75deg) scale(.55)}html[data-theme=dark] .theme-sun{opacity:1;transform:rotate(0) scale(1)}html[data-theme=dark] .mobile-menu nav{box-shadow:0 18px 40px #05061075}html[data-theme=dark] .footer{color:#b9bfd5}html[data-theme=dark] .ticker{border-color:var(--dark-line)}html[data-theme=dark] .button-blue{background:#5748cd;color:#fff}html[data-theme=dark] .button-blue:hover{background:#7163ed}html[data-theme=dark] .button-lime{color:#171a2e}html[data-theme=dark] .button-dark{background:#efedff;color:#171a2e}html[data-theme=dark] .button-dark:hover{background:var(--lime)}html[data-theme=dark] .section-intro p{color:var(--muted)}html[data-theme=dark] body[data-page=home] .hero{background:var(--dark-royal)}html[data-theme=dark] body[data-page=home] .hero-intro{color:#e4e2ff}html[data-theme=dark] body[data-page=home] .hero-note{color:#d5d1ff}html[data-theme=dark] body[data-page=home] .orbit-label{color:#171a2e}html[data-theme=dark] body[data-page=home] .between p{color:var(--muted)}html[data-theme=dark] body[data-page=home] .contact{color:#171a2e}html[data-theme=dark] body[data-page=home] .contact .button-dark{background:#171a2e;color:#fff}html[data-theme=dark] body[data-page=home] .contact .button-dark:hover{background:#3026a8}html[data-theme=dark] .project.nokslock{background:#293c67;color:#f5f7ff}html[data-theme=dark] .project.nokslock:before{background:#415a91}html[data-theme=dark] .project.flamingo{background:#172519}html[data-theme=dark] .project.admin{background:#badb73;color:#172314}html[data-theme=dark] .project.rosie{background:#4c2c40;color:#fff0f4}html[data-theme=dark] .project.rosie:before{background:#70445d}html[data-theme=dark] .project.caxten{background:#2b3857}html[data-theme=dark] .project.qstc{background:#874630;color:#fff2e9}html[data-theme=dark] .project:hover{box-shadow:0 24px 36px #0506106b}html[data-theme=dark] body[data-page=software] .intro-art{background:#293258}html[data-theme=dark] body[data-page=software] .intro-art:before{border-color:#55649e;box-shadow:0 0 0 90px #313d6b,0 0 0 180px #29345e}html[data-theme=dark] body[data-page=software] .intro p{color:var(--muted)}html[data-theme=dark] body[data-page=software] .orbit{color:#171a2e}html[data-theme=dark] body[data-page=software] .stack-section{background:#242942;color:#f5f3ff}html[data-theme=dark] body[data-page=software] .stack-intro p{color:#c8cbe0}html[data-theme=dark] body[data-page=software] .stack-group{border-color:var(--dark-line)}html[data-theme=dark] body[data-page=software] .close{color:#171a2e}html[data-theme=dark] body[data-page=software] .close .button-dark{background:#171a2e;color:#fff}html[data-theme=dark] body[data-page=about] .hero-lede,html[data-theme=dark] body[data-page=about] .section-heading p,html[data-theme=dark] body[data-page=about] .role p{color:var(--muted)}html[data-theme=dark] body[data-page=about] .hero-copy:after{color:#343b64}html[data-theme=dark] body[data-page=about] .body-shape{background:#3b2fbc}html[data-theme=dark] body[data-page=about] .portrait-open{background:#1b1c35;color:var(--lime)}html[data-theme=dark] body[data-page=about] .portrait-sticker{color:#171a2e}html[data-theme=dark] body[data-page=about] .tile.mobile{background:#2a3d66;color:#f3f5ff}html[data-theme=dark] body[data-page=about] .tile.mobile:after{color:#4b629a}html[data-theme=dark] body[data-page=about] .tile.frontend{background:#40582c;color:#f4ffe6}html[data-theme=dark] body[data-page=about] .tile.frontend:after{color:#5b793f}html[data-theme=dark] body[data-page=about] .tile.detail{background:#372ab0}html[data-theme=dark] body[data-page=about] .tile.background{background:#4e2e43;color:#fff0f5}html[data-theme=dark] body[data-page=about] .tile.background:after{color:#72475e}html[data-theme=dark] body[data-page=about] .experience-intro{background:#282c48;color:#f5f3ff}html[data-theme=dark] body[data-page=about] .experience-intro p{color:#c8cbe0}html[data-theme=dark] body[data-page=about] .role{border-color:var(--dark-line)}html[data-theme=dark] body[data-page=about] .contact{color:#171a2e}html[data-theme=dark] body[data-page=about] .contact .button{background:#171a2e;color:#fff}html[data-theme=dark] body[data-page=project] .hero.nokslock{background:#293c67;color:#f5f7ff}html[data-theme=dark] body[data-page=project] .hero.flamingo{background:#172519}html[data-theme=dark] body[data-page=project] .hero.admin{background:#badb73;color:#172314}html[data-theme=dark] body[data-page=project] .hero.rosie{background:#4c2c40;color:#fff0f4}html[data-theme=dark] body[data-page=project] .hero.caxten{background:#2b3857}html[data-theme=dark] body[data-page=project] .hero.qstc{background:#874630;color:#fff2e9}html[data-theme=dark] body[data-page=project] .hero.nokslock .lede,html[data-theme=dark] body[data-page=project] .hero.rosie .lede,html[data-theme=dark] body[data-page=project] .hero.qstc .lede{color:inherit}html[data-theme=dark] body[data-page=project] .hero .button-dark{background:#f5f3ff;color:#171a2e}html[data-theme=dark] body[data-page=project] .facts,html[data-theme=dark] body[data-page=project] .story li{border-color:var(--dark-line)}html[data-theme=dark] body[data-page=project] .story p,html[data-theme=dark] body[data-page=project] .gallery figcaption{color:var(--muted)}html[data-theme=dark] body[data-page=project] .next,html[data-theme=dark] body[data-page=contact] .intro,html[data-theme=dark] body[data-page=sent] .sent{background:var(--dark-royal)}html[data-theme=dark] body[data-page=contact] .intro p,html[data-theme=dark] body[data-page=sent] .sent p{color:#e4e2ff}html[data-theme=dark] body[data-page=contact] .field input,html[data-theme=dark] body[data-page=contact] .field textarea{background:#121629;color:#f5f3ff;border-color:#4e5575}html[data-theme=dark] body[data-page=contact] .field input::placeholder,html[data-theme=dark] body[data-page=contact] .field textarea::placeholder{color:#b0b7cd}html[data-theme=dark] body[data-page=contact] .field input:focus-visible,html[data-theme=dark] body[data-page=contact] .field textarea:focus-visible{border-color:var(--lime);box-shadow:0 0 0 3px #6d8140}html[data-theme=dark] body[data-page=contact] .form-error{color:#ffa4af}html[data-theme=dark] body[data-page=contact] .channel-list a{border-color:var(--dark-line)}html[data-theme=dark] body[data-page=engineering] .list article{border-color:var(--dark-line)}.topbar[data-astro-cid-3ef6ksr2]{height:86px;display:flex;align-items:center;justify-content:space-between;gap:32px;position:relative;z-index:20}.brand[data-astro-cid-3ef6ksr2]{flex:none;white-space:nowrap;font-family:var(--font-display);font-weight:800;letter-spacing:-.04em;font-size:29px;line-height:1}.brand[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2]{color:var(--orange)}.nav[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:28px;font-size:13px;font-weight:800}.nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:not(.nav-cta){transition:color .2s}.nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:not(.nav-cta):hover,.nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2].active{color:var(--blue)}.theme-toggle[data-astro-cid-3ef6ksr2]{position:relative;display:grid;place-items:center;flex:none;width:43px;height:43px;padding:0;border:1px solid #c5c7da;border-radius:50%;background:var(--white);color:var(--ink);cursor:pointer;transition:background-color .25s,border-color .25s,transform .35s cubic-bezier(.16,1,.3,1)}.theme-toggle[data-astro-cid-3ef6ksr2]:hover{transform:rotate(-12deg);border-color:var(--blue)}.theme-toggle[data-astro-cid-3ef6ksr2]:active{transform:scale(.93)}.theme-icon[data-astro-cid-3ef6ksr2]{position:absolute;width:20px;height:20px;transition:transform .55s cubic-bezier(.16,1,.3,1),opacity .3s ease}.theme-moon[data-astro-cid-3ef6ksr2]{opacity:1;transform:rotate(0) scale(1)}.theme-sun[data-astro-cid-3ef6ksr2]{opacity:0;transform:rotate(75deg) scale(.55)}.nav-cta[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;white-space:nowrap;background:var(--ink);color:#fff;padding:14px 21px;border-radius:100px;transition:background .25s,transform .35s cubic-bezier(.16,1,.3,1)}.nav-cta[data-astro-cid-3ef6ksr2]:hover{background:var(--blue);transform:translateY(-3px)}.mobile-menu[data-astro-cid-3ef6ksr2]{display:none;flex:none}.mobile-menu[data-astro-cid-3ef6ksr2] summary[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;list-style:none;cursor:pointer;font-size:13px;font-weight:800;background:var(--white);border-radius:100px;padding:11px 16px}.mobile-menu[data-astro-cid-3ef6ksr2] summary[data-astro-cid-3ef6ksr2]::-webkit-details-marker{display:none}.mobile-menu[data-astro-cid-3ef6ksr2] summary[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2]{font-size:17px}.mobile-menu[data-astro-cid-3ef6ksr2][open] summary[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2]{transform:rotate(45deg)}.mobile-menu[data-astro-cid-3ef6ksr2] nav[data-astro-cid-3ef6ksr2]{position:absolute;top:66px;right:16px;min-width:185px;display:grid;gap:0;padding:8px;background:var(--white);border-radius:16px;box-shadow:0 16px 32px #191b3524}.mobile-menu[data-astro-cid-3ef6ksr2] nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{padding:12px 14px;border-radius:10px;font-size:14px;font-weight:800}.mobile-menu[data-astro-cid-3ef6ksr2] nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover{background:var(--paper);color:var(--blue)}@media(max-width:800px){.topbar[data-astro-cid-3ef6ksr2]{height:70px}.brand[data-astro-cid-3ef6ksr2]{font-size:25px}.nav[data-astro-cid-3ef6ksr2]{margin-left:auto;gap:12px}.nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:not(.nav-cta){display:none}.mobile-menu[data-astro-cid-3ef6ksr2]{display:block}.nav-cta[data-astro-cid-3ef6ksr2]{padding:12px 17px}}@media(max-width:520px){.topbar[data-astro-cid-3ef6ksr2]{gap:8px}.brand[data-astro-cid-3ef6ksr2]{font-size:24px}.nav[data-astro-cid-3ef6ksr2]{gap:8px}.theme-toggle[data-astro-cid-3ef6ksr2]{width:38px;height:38px}.nav-cta[data-astro-cid-3ef6ksr2]{font-size:11px;padding:11px 12px}.mobile-menu[data-astro-cid-3ef6ksr2] summary[data-astro-cid-3ef6ksr2]{font-size:11px;padding:10px 11px}.mobile-menu[data-astro-cid-3ef6ksr2] summary[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2]{font-size:16px}}@media(max-width:360px){.nav-cta[data-astro-cid-3ef6ksr2]{display:none}}.footer[data-astro-cid-sz7xmlte]{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-top:18px;padding-bottom:32px;font-size:12px;font-weight:700;color:#5a5d75}.footer[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--ink);border-bottom:1px solid var(--orange)}@media(max-width:800px){.footer[data-astro-cid-sz7xmlte]{flex-wrap:wrap}}@media(max-width:520px){.footer[data-astro-cid-sz7xmlte]{font-size:11px;gap:12px}}
