:root{--bg:#000;--fg:#9cc0ff;--dim:#6e8cc4;--faint:#42587f;--acc:#4c7bff;--line:rgba(156,192,255,0.14);--line2:rgba(76,123,255,0.34);--font:"JetBrains Mono",ui-monospace,monospace;--track:0.01em}*{box-sizing:border-box}body,html{height:100%}.theme-switching *,.theme-switching :after,.theme-switching :before{transition:none!important}body{margin:0;background-color:var(--bg);color:var(--fg);font-family:var(--font);letter-spacing:var(--track);-webkit-font-smoothing:antialiased}body.is-deck{overflow:hidden}a{color:inherit;text-decoration:none}a:hover{color:var(--acc)}::selection{background-color:var(--acc);color:var(--bg)}button,input,textarea{font:inherit;letter-spacing:inherit;color:inherit}input::placeholder,textarea::placeholder{color:var(--faint)}input:focus,textarea:focus{outline:none;border-color:var(--acc)}:focus-visible{outline:1px solid var(--acc);outline-offset:2px}@keyframes blink{0%,55%{opacity:1}56%,to{opacity:0}}.deck{position:fixed;inset:0;background-color:var(--bg);overflow:hidden}.deck__pattern{position:absolute;inset:0;pointer-events:none;transition:opacity .45s ease}.bar{position:absolute;top:0;left:0;right:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 30px;border-bottom:1px solid var(--line);background-color:var(--bg)}.bar__prompt{font-size:12.5px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar__prompt b{color:var(--fg);font-weight:inherit}.bar__right{display:flex;align-items:center;gap:16px}.lighttoggle{display:inline-flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);padding:6px 12px;border:1px solid var(--line2);background:transparent;cursor:pointer;transition:border-color .25s,color .25s;white-space:nowrap}.lighttoggle:hover{border-color:var(--acc);color:var(--acc)}.lighttoggle__dot{width:9px;height:9px;border:1px solid;border-radius:50%;flex:none}.lighttoggle__dot.is-on{background:currentColor}.bar__clock{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.index{position:absolute;z-index:30;right:30px;top:50%;transform:translateY(-50%);flex-direction:column;align-items:flex-end}.index,.index__item{display:flex;gap:12px}.index__item{align-items:center;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);background:transparent;border:0;padding:0;cursor:pointer;transition:color .3s}.index__item:hover{color:var(--acc)}.index__label{opacity:.001;transition:opacity .3s;white-space:nowrap}.index__item.is-active .index__label,.index__item:hover .index__label{opacity:1}.index__mark{width:20px;height:1px;background-color:var(--faint);transition:width .3s;flex:none}.index__item.is-active .index__mark{background-color:var(--acc);width:36px}.pager{position:absolute;z-index:30;left:30px;bottom:24px;gap:14px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}.pager,.pager__btn{display:flex;align-items:center}.pager__btn{width:32px;height:32px;justify-content:center;border:1px solid var(--line2);background:transparent;cursor:pointer;transition:border-color .25s,color .25s}.pager__btn:hover:not(:disabled){border-color:var(--acc);color:var(--acc)}.pager__btn:disabled{opacity:.35;cursor:default}.screen{position:absolute;top:60px;left:0;right:0;bottom:64px;padding:clamp(14px,3vh,34px) 132px clamp(14px,3vh,34px) 30px;display:flex;flex-direction:column;justify-content:safe center;overflow-y:auto;overflow-x:hidden;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(3vh);transition:opacity .5s ease,transform .6s cubic-bezier(.2,.7,.3,1)}.screen.is-above{transform:translateY(-3vh)}.screen.is-active{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.is-still .screen{transition:none}.cmdline{font-size:12.5px;color:var(--dim);padding-bottom:16px;border-bottom:1px solid var(--line)}.cmdline b{color:var(--fg);font-weight:inherit}.kicker{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--acc);margin-bottom:clamp(10px,2.6vh,30px)}.headline{margin:0;max-width:22ch;font-size:clamp(21px,min(4.2vw,5.8vh),48px);line-height:1.34;font-weight:300;letter-spacing:-.01em;text-wrap:pretty}.headline .accent{color:var(--acc);font-style:normal}.caret{display:inline-block;width:.55em;height:.9em;background-color:var(--acc);transform:translateY(.13em);margin-left:.3em;animation:blink 1.1s steps(1) infinite}.is-still .caret{animation:none}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(16px,3.4vh,44px)}.btn{font-size:13px;padding:14px 24px;border:1px solid var(--line2);background:transparent;color:var(--dim);cursor:pointer;transition:background-color .25s,color .25s,border-color .25s}.btn:hover{border-color:var(--fg);color:var(--fg)}.btn--acc{border-color:var(--acc);color:var(--acc)}.btn--acc:hover{background-color:var(--acc);color:var(--bg)}.stats{display:flex;flex-wrap:wrap;gap:1px;margin-top:clamp(18px,4.4vh,68px);background-color:var(--line);border:1px solid var(--line)}.stats__cell{flex:1 1 150px;background-color:var(--bg);padding:clamp(11px,2.2vh,20px) 22px}.stats__k{font-size:11px;letter-spacing:.16em;color:var(--faint)}.stats__v{font-size:17px;font-weight:500;margin-top:8px;letter-spacing:-.02em;white-space:nowrap}.about{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);grid-gap:clamp(28px,4vw,72px);gap:clamp(28px,4vw,72px);margin-top:clamp(16px,3vh,38px);width:100%}.about__prose{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:clamp(18px,2.4vw,40px);gap:clamp(18px,2.4vw,40px);align-content:start}.about__prose p{margin:0;font-size:17px;line-height:1.7;color:var(--dim);text-wrap:pretty}.about__skills{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:clamp(16px,2vw,32px);gap:clamp(16px,2vw,32px);align-content:start;padding-left:clamp(20px,3vw,56px);border-left:1px solid var(--line)}@media (max-width:900px){.about{grid-template-columns:1fr}.about__skills{padding-left:0;padding-top:clamp(14px,2.6vh,24px);border-left:0;border-top:1px solid var(--line)}}.grouplabel{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);margin-bottom:12px}.bullets{display:flex;flex-direction:column;gap:6px}.bullets span{font-size:14px;color:var(--dim)}.builds{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));grid-gap:14px;gap:14px;margin-top:18px}.build{display:flex;flex-direction:column;gap:8px;text-align:left;background:transparent;border:1px solid var(--line);padding:clamp(11px,2.1vh,20px) 20px;cursor:pointer;transition:background-color .3s,border-color .3s}.build:hover{background-color:var(--line);border-color:var(--acc);color:inherit}.build__top{display:flex;align-items:center;justify-content:space-between;gap:12px}.build__n{font-size:11px;letter-spacing:.16em;color:var(--faint)}.build__status{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc);border:1px solid var(--line2);padding:3px 8px;white-space:nowrap}.build__title{font-size:19px;letter-spacing:-.01em}.build__blurb{font-size:13.5px;line-height:1.6;color:var(--dim)}.build__stack{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-top:auto}.note{font-size:12px;color:var(--faint);margin-top:14px}.piece{display:grid;grid-template-columns:52px minmax(0,1fr) 120px 90px 66px;grid-gap:18px;gap:18px;align-items:center;text-align:left;width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);padding:clamp(10px,2.1vh,20px) 6px;cursor:pointer;transition:padding-left .35s,border-color .35s}.piece:hover{padding-left:16px;border-color:var(--acc);color:inherit}.piece__n{font-size:12px;color:var(--faint);letter-spacing:.12em}.piece__title{font-size:clamp(16px,2vw,21px);letter-spacing:-.01em}.piece__platform{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc)}.piece__reach{font-size:13px;color:var(--dim);text-align:right}.piece__date{font-size:12px;color:var(--faint);text-align:right}.work__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:clamp(18px,3.2vh,44px);gap:clamp(18px,3.2vh,44px);margin-top:clamp(12px,2.6vh,26px)}.work__head{font-size:11px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:8px}.work__head--current{color:var(--acc)}.work__head--previous{color:var(--faint)}.role{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr) 108px;grid-gap:12px;gap:12px;align-items:baseline;padding:clamp(7px,1.5vh,13px) 4px;border-bottom:1px solid var(--line);transition:padding-left .3s}.role:hover{padding-left:12px}.role__company{font-size:15px}.role__role{font-size:13px;color:var(--dim)}.role__years{font-size:11.5px;color:var(--faint);text-align:right}.role--previous .role__company{color:var(--dim)}.role--previous .role__role{color:var(--faint)}.work__foot{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:clamp(12px,2.6vh,26px)}.btn--cv{font-size:12px;letter-spacing:.16em;text-transform:uppercase;padding:13px 22px}.work__note{font-size:12px;color:var(--faint)}.contact__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:clamp(20px,4vw,72px);gap:clamp(20px,4vw,72px);margin-top:clamp(16px,3.2vh,36px)}.contact__title{margin:0;font-size:clamp(24px,min(4.4vw,6.4vh),52px);font-weight:300;line-height:1.2;letter-spacing:-.03em}.contact__title span{color:var(--acc)}.socials{display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(18px,3.4vh,34px)}.socials a{font-size:12px;letter-spacing:.12em;text-transform:uppercase;padding:11px 18px;border:1px solid var(--line);color:var(--dim);transition:border-color .25s,color .25s}.socials a:hover{border-color:var(--acc);color:var(--acc)}.contact__extra{font-size:12.5px;color:var(--faint);margin-top:16px}.form{display:flex;flex-direction:column;gap:10px}.form input,.form textarea{padding:13px 14px;background:transparent;border:1px solid var(--line);font-size:14px}.form textarea{resize:vertical}.form__row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.form__note{font-size:11.5px;color:var(--faint)}.form__trap{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}.fallback{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:40px clamp(20px,6vw,90px);max-width:780px}.fallback__cmd{font-size:12.5px;color:var(--dim);padding-bottom:16px;border-bottom:1px solid var(--line)}.fallback__cmd b{color:var(--fg);font-weight:inherit}.fallback__title{margin:clamp(20px,4vh,40px) 0 0;font-size:clamp(28px,5vw,52px);font-weight:300;letter-spacing:-.03em;line-height:1.2}.fallback__title span{color:var(--acc)}.fallback__body{margin:18px 0 0;font-size:16px;line-height:1.7;color:var(--dim);text-wrap:pretty}.fallback__body code{font-family:var(--font);font-size:13px;color:var(--faint)}.fallback__row{display:flex;flex-wrap:wrap;gap:10px}.fallback__link,.fallback__row{margin-top:clamp(22px,4vh,36px)}.fallback__link{display:inline-block;font-size:12px;letter-spacing:.16em;text-transform:uppercase;padding:13px 22px;border:1px solid var(--acc);background:transparent;color:var(--acc);cursor:pointer;transition:background-color .25s,color .25s}.fallback__row .fallback__link{margin-top:0}.fallback__link:hover{background-color:var(--acc);color:var(--bg)}.overlay{position:absolute;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:30px;background-color:var(--bg);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease}.overlay.is-open{opacity:1;visibility:visible;pointer-events:auto}.overlay__box{width:100%;max-width:780px;max-height:100%;overflow-y:auto;border:1px solid var(--line2);padding:clamp(22px,4vh,40px)}.overlay__top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}.overlay__kicker{letter-spacing:.18em;color:var(--acc)}.overlay__close,.overlay__kicker{font-size:11.5px;text-transform:uppercase}.overlay__close{letter-spacing:.16em;color:var(--dim);background:transparent;border:0;cursor:pointer;transition:color .25s}.overlay__close:hover{color:var(--acc)}.overlay__box h3{margin:24px 0 0;font-size:clamp(24px,3.4vw,38px);font-weight:400;letter-spacing:-.02em}.overlay__body{margin:16px 0 0;font-size:16px;line-height:1.7;color:var(--dim);text-wrap:pretty}.overlay__points{display:flex;flex-direction:column;gap:8px;margin-top:24px}.overlay__points span{font-size:14px;color:var(--dim)}.overlay__meta{display:flex;flex-wrap:wrap;gap:22px;margin-top:28px;padding-top:18px;border-top:1px solid var(--line);font-size:11.5px;color:var(--faint)}.overlay__link,.overlay__meta{letter-spacing:.14em;text-transform:uppercase}.overlay__link{margin-top:22px;display:inline-block;font-size:12px;color:var(--acc);border-bottom:1px solid var(--line2);padding-bottom:4px}@media (max-width:819px){.index{display:none}.screen{padding-left:22px;padding-right:22px}}@media (max-width:559px){.bar__clock{display:none}.bar{padding:14px 18px}.pager{left:18px}.piece{grid-template-columns:40px minmax(0,1fr) 66px;row-gap:6px}.piece__platform{grid-column:2}.piece__reach{grid-column:2;text-align:left}.role{grid-template-columns:minmax(0,1fr) 96px;row-gap:2px}.role__role{grid-column:1}}@media (prefers-reduced-motion:reduce){.screen{transition:none}.caret{animation:none}}