:root{--color-secondary:#3c3c3c;--color-background:#f3f3f3;--color-text:#121214;--color-highlight:#5a51f5;--color-gold:#c9a227;--color-gold-light:#f3dd8c;--color-hairline:#12121426;--content-max-width:1200px;--text-lead:1.3rem;--text-body:1.05rem;--text-small:.9rem;--text-meta:.8rem;--leading-body:1.65;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--dur-fast:.2s;--dur-base:.4s;--dur-slow:.6s;--font-family-sans:var(--font-archivo);--font-family-mono:var(--font-fira-code)}h1,h2,h3{font-weight:700}h1,h2,h3,h4{text-wrap:balance}p{text-wrap:pretty}.edge-top{--draw:1;position:relative}.edge-top:before{--vertex:#1212148c;content:"";background:linear-gradient(var(--vertex), var(--vertex)) left center / 5px 5px no-repeat, linear-gradient(var(--vertex), var(--vertex)) right center / 5px 5px no-repeat, linear-gradient(var(--color-hairline), var(--color-hairline)) center / 100% 1px no-repeat;height:5px;clip-path:inset(0 calc((1 - var(--draw)) * 100%) 0 0);position:absolute;top:-2px;left:0;right:0}.scan-line{background:var(--color-highlight);height:2px;box-shadow:0 0 18px 2px var(--color-highlight);opacity:0;position:absolute;top:0;left:0;right:0}.link-line{--link-rest:color-mix(in srgb, currentColor 30%, transparent);background:linear-gradient(var(--color-highlight), var(--color-highlight)) right bottom / 0 1px no-repeat, linear-gradient(var(--link-rest), var(--link-rest)) left bottom / 100% 1px no-repeat;transition:background-size var(--dur-slow) var(--ease-out), color var(--dur-fast) var(--ease-out);padding-bottom:.2em;text-decoration:none}.link-line:hover,.link-line:focus-visible,a:hover>.link-line,a:focus-visible>.link-line{background-position:0 100%;background-size:100% 1px}.is-typing:after{content:"";background:var(--color-highlight);width:.08em;height:.85em;margin-left:.08em;display:inline-block}@view-transition{navigation:auto}.site-logo{view-transition-name:site-logo}.nav-toggle{view-transition-name:nav-toggle}.lang-switch{view-transition-name:lang-switch}*{box-sizing:border-box;margin:0;padding:0}::selection{color:#fff;background:var(--color-highlight)}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--color-highlight);outline-offset:3px}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;scrollbar-color:#12121459 var(--color-background);scrollbar-gutter:stable;caret-color:var(--color-highlight)}html,body{background:var(--color-background);width:100%;min-height:100%;color:var(--color-text);font-family:var(--font-family-sans), sans-serif}.section{pointer-events:auto;justify-content:center;align-items:center;width:100%;height:100vh;padding:2rem;display:flex}.section>*{width:100%;max-width:var(--content-max-width)}.section.viewport>*{max-width:none}html.nav-open,html.game-open{overflow:hidden}html.game-open .site-logo,html.game-open .nav-toggle,html.game-open .lang-switch{opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out)}.game-beam{z-index:11;background:var(--color-text);opacity:0;pointer-events:none;width:100%;height:2px;margin-top:-1px;position:fixed;top:50%;left:0;box-shadow:0 0 10px #00000040}html.cursor-visible:not(.game-open),html.cursor-visible:not(.game-open) :not(.console-window,.console-window *){cursor:none!important}.nav-overlay[data-astro-cid-spdfoeqb]{z-index:15;pointer-events:none;position:fixed;inset:0}.nav-overlay__blur[data-astro-cid-spdfoeqb]{-webkit-backdrop-filter:blur(6px)saturate(140%);opacity:0;background:#fff3;display:none;position:absolute;inset:0}.nav-overlay__tiles[data-astro-cid-spdfoeqb]{display:grid;position:absolute;inset:0}.nav-overlay__tile[data-astro-cid-spdfoeqb]{background:#fffffff0;border:1px solid #0000000a;transform:scale(0)}.nav-content[data-astro-cid-spdfoeqb]{z-index:1;opacity:0;pointer-events:none;flex-direction:column;padding:6rem 2rem 2rem;display:flex;position:absolute;inset:0}.nav-content[data-astro-cid-spdfoeqb]>[data-astro-cid-spdfoeqb]{width:100%;max-width:var(--content-max-width);margin-inline:auto}.nav-content[data-astro-cid-spdfoeqb].is-visible{pointer-events:auto}.nav-menu[data-astro-cid-spdfoeqb]{grid-template-columns:minmax(0,1fr) minmax(16rem,22rem);gap:2.5rem clamp(2rem,6vw,6rem);margin-block:auto;display:grid;position:relative}.nav-menu__list[data-astro-cid-spdfoeqb]{flex-direction:column;align-items:flex-start;list-style:none;display:flex}.nav-menu__list[data-astro-cid-spdfoeqb] li[data-astro-cid-spdfoeqb]{opacity:0}.nav-menu__list[data-astro-cid-spdfoeqb] a[data-astro-cid-spdfoeqb]{white-space:nowrap;letter-spacing:-.03em;color:var(--color-text);align-items:center;font-size:clamp(2.75rem,8vw,7rem);font-weight:700;line-height:1.15;text-decoration:none;display:flex}.nav-menu__rule[data-astro-cid-spdfoeqb]{background:var(--color-highlight);width:0;height:2px;transition:width var(--dur-slow) var(--ease-out), margin-right var(--dur-slow) var(--ease-out);margin-right:0}.nav-menu__label[data-astro-cid-spdfoeqb]{transition:color var(--dur-fast) var(--ease-out);display:inline-block}.nav-menu__list[data-astro-cid-spdfoeqb] a[data-astro-cid-spdfoeqb]:is(:hover,:focus-visible),.nav-menu__list[data-astro-cid-spdfoeqb]:not(:has(a:hover)) a[data-astro-cid-spdfoeqb].active{& .nav-menu__label{color:var(--color-highlight)}& .nav-menu__rule{width:clamp(1.5rem,4vw,3.5rem);margin-right:clamp(.75rem,1.5vw,1.25rem)}}.nav-panel[data-astro-cid-spdfoeqb]{--vertex:#1212148c;font-size:var(--text-body);color:var(--color-text);flex-direction:column;justify-content:space-between;gap:2.25rem;padding:1.25rem 0 1.25rem 3rem;display:flex;position:relative;&:before{content:"";background:linear-gradient(var(--vertex), var(--vertex)) center top / 5px 5px no-repeat, linear-gradient(var(--vertex), var(--vertex)) center bottom / 5px 5px no-repeat, linear-gradient(var(--color-hairline), var(--color-hairline)) center / 1px 100% no-repeat;width:5px;position:absolute;top:0;bottom:0;left:-2px}}.nav-panel__row[data-astro-cid-spdfoeqb]{opacity:0;flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.nav-panel__label[data-astro-cid-spdfoeqb]{font-family:var(--font-family-mono);font-size:var(--text-meta);letter-spacing:.15em;text-transform:uppercase;color:var(--color-secondary)}.nav-panel__clock[data-astro-cid-spdfoeqb]{font-variant-numeric:tabular-nums}.nav-panel[data-astro-cid-spdfoeqb] a[data-astro-cid-spdfoeqb]{color:var(--color-text);transition:color var(--dur-fast) var(--ease-out);text-decoration:none}.nav-panel[data-astro-cid-spdfoeqb] a[data-astro-cid-spdfoeqb]:hover,.nav-panel[data-astro-cid-spdfoeqb] a[data-astro-cid-spdfoeqb]:focus-visible{color:var(--color-highlight)}.nav-panel__email[data-astro-cid-spdfoeqb]{letter-spacing:-.02em;font-size:clamp(1.4rem,2.2vw,2rem);font-weight:700}.nav-panel__profile[data-astro-cid-spdfoeqb]{align-items:center;gap:.4rem;display:inline-flex;& svg{fill:none;stroke:currentColor;stroke-width:1.5px;width:10px;height:10px;transition:transform var(--dur-base) var(--ease-out)}&:hover svg[data-astro-cid-spdfoeqb]{transform:translate(2px,-2px)}}.nav-panel__now[data-astro-cid-spdfoeqb]{font-size:var(--text-small);align-items:center;gap:.6rem;display:inline-flex}.nav-panel[data-astro-cid-spdfoeqb] a[data-astro-cid-spdfoeqb].nav-panel__now{color:var(--color-secondary)}.nav-panel[data-astro-cid-spdfoeqb] a[data-astro-cid-spdfoeqb].nav-panel__now:hover{color:var(--color-highlight)}.nav-panel__pulse[data-astro-cid-spdfoeqb]{background:var(--color-highlight);flex-shrink:0;width:6px;height:6px;animation:2s ease-in-out infinite nav-pulse}@keyframes nav-pulse{50%{opacity:.2}}.nav-footer[data-astro-cid-spdfoeqb]{border-top:1px solid var(--color-hairline);justify-content:flex-end;padding-top:1.5rem;display:flex}@media (width<=860px){.nav-content[data-astro-cid-spdfoeqb]{padding-inline:2.75rem}.nav-menu[data-astro-cid-spdfoeqb]{grid-template-columns:1fr}.nav-panel[data-astro-cid-spdfoeqb]{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem 1.5rem;padding:1.5rem 0 0;display:grid;&:before{background:linear-gradient(var(--vertex), var(--vertex)) left center / 5px 5px no-repeat, linear-gradient(var(--vertex), var(--vertex)) right center / 5px 5px no-repeat, linear-gradient(var(--color-hairline), var(--color-hairline)) center / 100% 1px no-repeat;width:auto;height:5px;inset:-2px 0 auto}}.nav-panel__email[data-astro-cid-spdfoeqb]{font-size:var(--text-body)}.nav-footer[data-astro-cid-spdfoeqb]{display:none}}@media (prefers-reduced-motion:reduce){.nav-panel__pulse[data-astro-cid-spdfoeqb]{animation:none}}.nav-achievements[data-astro-cid-spdfoeqb]{font-family:inherit;font-size:var(--text-small);color:var(--color-secondary);opacity:0;cursor:pointer;transition:color var(--dur-fast) var(--ease-out);background:0 0;border:none;padding:0;& span{font-variant-numeric:tabular-nums;color:var(--color-highlight)}}.nav-achievements[data-astro-cid-spdfoeqb]:hover,.nav-achievements[data-astro-cid-spdfoeqb]:focus-visible{color:var(--color-highlight)}@media not ((hover:hover) and (pointer:fine)){.nav-achievements[data-astro-cid-spdfoeqb]{display:none}}html.achievements-complete .nav-achievements[data-astro-cid-spdfoeqb],html.achievements-complete .nav-achievements[data-astro-cid-spdfoeqb] span[data-astro-cid-spdfoeqb]{background:linear-gradient(110deg, var(--color-gold) 35%, var(--color-gold-light) 50%, var(--color-gold) 65%) 0 0 / 250% 100%;color:#0000;-webkit-background-clip:text;background-clip:text;animation:2.5s linear infinite nav-achievements-shimmer}@keyframes nav-achievements-shimmer{to{background-position:-250% 0}}@media (prefers-reduced-motion:reduce){html.achievements-complete .nav-achievements[data-astro-cid-spdfoeqb],html.achievements-complete .nav-achievements[data-astro-cid-spdfoeqb] span[data-astro-cid-spdfoeqb]{animation:none}}.nav-toggle[data-astro-cid-z7uaetnj]{z-index:20;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;place-items:center;width:28px;height:28px;padding:0;display:grid;position:fixed;top:2rem;right:2rem}@media (width<=1600px){.nav-toggle[data-astro-cid-z7uaetnj]{transition:top var(--dur-base) var(--ease-out)}html.header-compact .nav-toggle[data-astro-cid-z7uaetnj]{top:1rem}}.nav-toggle[data-astro-cid-z7uaetnj]:focus{outline:none}.nav-toggle[data-astro-cid-z7uaetnj]:focus-visible{outline:2px solid var(--color-highlight);outline-offset:4px}.nav-toggle__inner[data-astro-cid-z7uaetnj]{place-items:center;display:grid}.nav-toggle__grid[data-astro-cid-z7uaetnj]{grid-template-rows:repeat(3,6px);grid-template-columns:repeat(3,6px);gap:5px;display:grid}.nav-toggle__square[data-astro-cid-z7uaetnj]{background:var(--color-text);width:6px;height:6px}.lang-switch[data-astro-cid-y5y6nldk]{z-index:20;height:28px;font-size:var(--text-meta);align-items:center;gap:.25rem;font-weight:500;display:flex;position:fixed;top:2rem;right:calc(3.5rem + 28px)}.lang-switch[data-astro-cid-y5y6nldk] a[data-astro-cid-y5y6nldk]{--link-rest:transparent;color:var(--color-secondary);padding:.25rem .45rem;display:inline-block}.lang-switch[data-astro-cid-y5y6nldk] a[data-astro-cid-y5y6nldk]:not(.active):hover{color:var(--color-highlight)}.lang-switch[data-astro-cid-y5y6nldk] a[data-astro-cid-y5y6nldk].active{background:var(--color-highlight);color:#fff}.lang-switch__divider[data-astro-cid-y5y6nldk]{opacity:.3}@media (width<=1600px){.lang-switch[data-astro-cid-y5y6nldk]{transition:top var(--dur-base) var(--ease-out)}html.header-compact .lang-switch[data-astro-cid-y5y6nldk]{top:1rem}}.site-logo[data-astro-cid-2nxclrtw]{z-index:20;position:fixed;top:2rem;left:2rem}.site-logo[data-astro-cid-2nxclrtw] a[data-astro-cid-2nxclrtw]{display:block}@media (width<=1600px){.site-logo[data-astro-cid-2nxclrtw]{transform-origin:0 0;transition:translate var(--dur-base) var(--ease-out), scale var(--dur-base) var(--ease-out)}html.header-compact .site-logo[data-astro-cid-2nxclrtw]{translate:0 calc(2px - 1rem);scale:.75}}.header-backdrop[data-astro-cid-l5bw7sdv]{display:none}@media (width<=1600px){.header-backdrop[data-astro-cid-l5bw7sdv]{z-index:19;backdrop-filter:blur(12px);opacity:0;pointer-events:none;height:calc(2rem + 28px);transition:opacity var(--dur-base) var(--ease-out);background:#ffffff4d;display:block;position:fixed;top:0;left:0;right:0}html.header-compact .header-backdrop[data-astro-cid-l5bw7sdv]{opacity:1}html.nav-open .header-backdrop[data-astro-cid-l5bw7sdv]{opacity:0}}.console-window[data-astro-cid-tofm4prw]{z-index:14;resize:both;background:var(--color-secondary);width:530px;min-width:260px;max-width:calc(100vw - 2rem);height:300px;min-height:180px;max-height:calc(100vh - 2rem);font-family:var(--font-family-mono);font-variant-ligatures:none;flex-direction:column;font-size:.8rem;display:flex;position:fixed;overflow:hidden;box-shadow:0 12px 32px #0000004d}.console-window[data-astro-cid-tofm4prw][hidden]{display:none}.console-window[data-astro-cid-tofm4prw].is-minimized{resize:none;height:auto;min-height:0}.console-window__titlebar[data-astro-cid-tofm4prw]{color:#ffffffb3;cursor:grab;user-select:none;background:#ffffff0f;justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}.console-window__titlebar[data-astro-cid-tofm4prw]:active{cursor:grabbing}.console-window__title[data-astro-cid-tofm4prw]{letter-spacing:.02em;font-size:.75rem}.console-window__controls[data-astro-cid-tofm4prw]{gap:.5rem;display:flex}.console-window__btn[data-astro-cid-tofm4prw]{color:#ffffffb3;cursor:pointer;background:0 0;border:none;place-items:center;width:18px;height:18px;padding:0;font-size:.85rem;line-height:1;display:grid}.console-window__btn[data-astro-cid-tofm4prw]:hover{color:#fff}.console-window__body[data-astro-cid-tofm4prw]{flex-direction:column;flex:1;gap:.5rem;min-height:0;padding:.75rem;display:flex}.console-window[data-astro-cid-tofm4prw].is-minimized .console-window__body[data-astro-cid-tofm4prw]{display:none}.console-window__output[data-astro-cid-tofm4prw]{color:#ffffffd9;white-space:pre-wrap;word-break:break-word;flex:1;min-height:0;line-height:1.5;overflow-y:auto}.console-window__output-line--cmd[data-astro-cid-tofm4prw]{color:#ffffffbf}.console-window__output-line--success[data-astro-cid-tofm4prw]{color:#4ade80;background:#4ade802e}.console-window__output-line--error[data-astro-cid-tofm4prw]{color:#ff6f6f;background:#ff6f6f2e}.console-window__inputline[data-astro-cid-tofm4prw]{align-items:center;gap:.4rem;display:flex}.console-window__prompt[data-astro-cid-tofm4prw]{color:var(--color-highlight)}.console-window[data-astro-cid-tofm4prw] [data-astro-cid-tofm4prw]:focus-visible{outline-color:#fff}.console-window__input[data-astro-cid-tofm4prw]{min-width:0;font:inherit;color:#fff;caret-color:#39ff14;background:0 0;border:none;outline:none;flex:1;padding:0}.back-to-top[data-astro-cid-etkrxodp]{--lift:0px;right:2rem;bottom:calc(2rem + var(--lift));z-index:14;width:40px;height:40px;color:var(--color-text);opacity:0;pointer-events:none;cursor:pointer;transition:opacity var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), bottom var(--dur-slow) var(--ease-out);background:0 0;border:none;place-items:center;padding:0;display:grid;position:fixed}.back-to-top__arrow[data-astro-cid-etkrxodp]{fill:currentColor;width:14px;height:auto;transition:transform var(--dur-base) var(--ease-spring)}.back-to-top[data-astro-cid-etkrxodp]:hover .back-to-top__arrow[data-astro-cid-etkrxodp]{transform:translateY(-3px)}.back-to-top__progress[data-astro-cid-etkrxodp]{fill:none;stroke:currentColor;stroke-width:1px;width:100%;height:100%;position:absolute;inset:0}.back-to-top__track[data-astro-cid-etkrxodp]{opacity:.2}.back-to-top__fill[data-astro-cid-etkrxodp]{stroke-dasharray:1;stroke-dashoffset:1px}.back-to-top[data-astro-cid-etkrxodp].is-visible{opacity:.6;pointer-events:auto}.back-to-top[data-astro-cid-etkrxodp].is-visible:hover,.back-to-top[data-astro-cid-etkrxodp].is-visible:focus-visible{opacity:1;color:var(--color-highlight)}@media (width<=1600px){.back-to-top[data-astro-cid-etkrxodp]{backdrop-filter:blur(12px);background:#ffffff4d}}.loading-screen[data-astro-cid-dfbpntj4]{z-index:30;background:var(--color-background);clip-path:inset(0%);place-items:center;display:grid;position:fixed;inset:0}.loading-screen__content[data-astro-cid-dfbpntj4]{flex-direction:column;align-items:center;gap:1.5rem;display:flex}.loading-screen__logo[data-astro-cid-dfbpntj4]{visibility:hidden;width:min(280px,60vw);height:auto;& path,& rect{fill:var(--color-text);fill-opacity:0;stroke:var(--color-text);stroke-width:3px;vector-effect:non-scaling-stroke}& .loading-screen__logo-io{stroke:none;opacity:0}}.loading-screen__bar[data-astro-cid-dfbpntj4]{--progress:0;background:var(--color-hairline);width:min(280px,60vw);height:2px;position:relative;&:after{content:"";background:var(--color-text);transform:scaleX(var(--progress));transform-origin:0;position:absolute;inset:0}}.loading-screen__label[data-astro-cid-dfbpntj4]{font-family:var(--font-family-mono);letter-spacing:.2em;color:var(--color-text);font-size:.9rem}.loading-screen__percent[data-astro-cid-dfbpntj4]{font-variant-numeric:tabular-nums;min-width:4ch;display:inline-block}.loading-screen__cursor[data-astro-cid-dfbpntj4]{animation:1s step-end infinite loading-screen-blink}@keyframes loading-screen-blink{0%,49%{opacity:1}50%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.loading-screen__cursor[data-astro-cid-dfbpntj4]{animation:none}.loading-screen__bar[data-astro-cid-dfbpntj4],.loading-screen__percent[data-astro-cid-dfbpntj4]{display:none}}.cursor[data-astro-cid-uy3bcrpr]{z-index:60;pointer-events:none;opacity:0;contain:strict;position:fixed;inset:0}.cursor[data-astro-cid-uy3bcrpr].is-hidden,html.game-open .cursor[data-astro-cid-uy3bcrpr],html:not(.has-custom-cursor) .cursor[data-astro-cid-uy3bcrpr]{display:none}.cursor__reticle[data-astro-cid-uy3bcrpr],.cursor__dot[data-astro-cid-uy3bcrpr],.cursor__label[data-astro-cid-uy3bcrpr]{will-change:transform;position:absolute;top:0;left:0}.cursor__corner[data-astro-cid-uy3bcrpr]{border:0 solid var(--color-text);width:7px;height:7px;transition:border-color var(--dur-fast) var(--ease-out);position:absolute}.cursor__reticle[data-astro-cid-uy3bcrpr].is-locked .cursor__corner[data-astro-cid-uy3bcrpr]{border-color:var(--color-highlight)}.cursor__corner--tl[data-astro-cid-uy3bcrpr]{border-top-width:1.5px;border-left-width:1.5px;top:0;left:0}.cursor__corner--tr[data-astro-cid-uy3bcrpr]{border-top-width:1.5px;border-right-width:1.5px;top:0;right:0}.cursor__corner--bl[data-astro-cid-uy3bcrpr]{border-bottom-width:1.5px;border-left-width:1.5px;bottom:0;left:0}.cursor__corner--br[data-astro-cid-uy3bcrpr]{border-bottom-width:1.5px;border-right-width:1.5px;bottom:0;right:0}.cursor__dot[data-astro-cid-uy3bcrpr]{background:var(--color-highlight);width:4px;height:4px;margin:-2px 0 0 -2px}.cursor__label[data-astro-cid-uy3bcrpr]{font-family:var(--font-family-mono);letter-spacing:.15em;text-transform:uppercase;white-space:nowrap;color:var(--color-highlight);font-size:.65rem}.section-rail[data-astro-cid-ueeclpng]{display:none}@media (width>=1400px){.section-rail[data-astro-cid-ueeclpng]{z-index:14;visibility:hidden;display:block;position:fixed;top:50%;left:2rem;transform:translateY(-50%)}}ul[data-astro-cid-ueeclpng]{flex-direction:column;gap:1.1rem;list-style:none;display:flex}a[data-astro-cid-ueeclpng]{font-size:var(--text-meta);color:var(--color-text);align-items:center;gap:.6rem;font-weight:500;text-decoration:none;display:flex}.section-rail__index[data-astro-cid-ueeclpng]{opacity:.65;font-variant-numeric:tabular-nums;transition:opacity var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out)}.section-rail__tick[data-astro-cid-ueeclpng]{opacity:.35;transform-origin:0;width:10px;height:1px;transition:width var(--dur-slow) var(--ease-out), opacity var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);background:currentColor}.section-rail__label[data-astro-cid-ueeclpng]{opacity:0;clip-path:inset(0 100% 0 0);transition:clip-path var(--dur-slow) var(--ease-out), opacity var(--dur-fast) var(--ease-out)}a[data-astro-cid-ueeclpng]:hover .section-rail__index[data-astro-cid-ueeclpng],a[data-astro-cid-ueeclpng]:focus-visible .section-rail__index[data-astro-cid-ueeclpng]{opacity:1}a[data-astro-cid-ueeclpng]:hover .section-rail__label[data-astro-cid-ueeclpng],a[data-astro-cid-ueeclpng]:focus-visible .section-rail__label[data-astro-cid-ueeclpng],a[data-astro-cid-ueeclpng].active .section-rail__label[data-astro-cid-ueeclpng]{opacity:1;clip-path:inset(0)}a[data-astro-cid-ueeclpng].active .section-rail__index[data-astro-cid-ueeclpng]{opacity:1;color:var(--color-highlight)}a[data-astro-cid-ueeclpng].active .section-rail__tick[data-astro-cid-ueeclpng]{opacity:1;background:var(--color-highlight);width:28px}#hero-canvas[data-astro-cid-urqarpsp]{z-index:0;touch-action:none;outline:none;width:100%;height:100%;display:block;position:fixed;inset:0}@media (width<=860px){#hero-canvas[data-astro-cid-urqarpsp]{opacity:.75;pointer-events:none}}.asteroid3d-game[data-astro-cid-duho5axa]{z-index:10;background:var(--color-background);opacity:0;pointer-events:none;position:fixed;inset:0}#asteroid3d-canvas[data-astro-cid-duho5axa]{touch-action:none;outline:none;width:100%;height:100%;display:block}.asteroid3d-game__flash[data-astro-cid-duho5axa]{opacity:0;pointer-events:none;background:#ff3b3b;position:absolute;inset:0}.asteroid3d-game__nuke[data-astro-cid-duho5axa]{background:var(--color-highlight);opacity:0;pointer-events:none;position:absolute;inset:0}.asteroid3d-game__bullet-time[data-astro-cid-duho5axa]{backdrop-filter:saturate(.35);opacity:0;pointer-events:none;background:radial-gradient(#5a51f500 45%,#5a51f559 100%);transition:opacity .25s;position:absolute;inset:0}.asteroid3d-game__bullet-time[data-astro-cid-duho5axa].is-active{opacity:1}.asteroid3d-game__vignette[data-astro-cid-duho5axa]{opacity:0;pointer-events:none;background:radial-gradient(#ff3b3b00 55%,#ff3b3b6b 100%);position:absolute;inset:0}.asteroid3d-game__warning[data-astro-cid-duho5axa]{background:var(--color-background);opacity:0;pointer-events:none;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.asteroid3d-game__warning[data-astro-cid-duho5axa].is-visible{opacity:1;pointer-events:auto}.asteroid3d-game__warning-box[data-astro-cid-duho5axa]{text-align:center;max-width:26rem;font-family:var(--font-family-mono);padding:2rem}.asteroid3d-game__warning-title[data-astro-cid-duho5axa]{color:var(--color-highlight);letter-spacing:.1em;margin:0 0 1rem;font-weight:700}.asteroid3d-game__warning-box[data-astro-cid-duho5axa] p[data-astro-cid-duho5axa]{color:var(--color-text);font-size:.85rem;line-height:1.5}.asteroid3d-game__warning-check[data-astro-cid-duho5axa]{color:var(--color-text);cursor:pointer;justify-content:center;align-items:center;gap:.5rem;margin-top:1.25rem;font-size:.75rem;display:flex}.asteroid3d-game__warning-box[data-astro-cid-duho5axa] button[data-astro-cid-duho5axa]{background:var(--color-highlight);color:var(--color-background);font-family:var(--font-family-mono);letter-spacing:.1em;cursor:pointer;border:none;margin-top:1.5rem;padding:.6rem 1.5rem;font-size:.8rem}.asteroid3d-game__vignette[data-astro-cid-duho5axa].is-danger{animation:.7s ease-in-out infinite alternate asteroid3d-danger}.asteroid3d-game__vignette[data-astro-cid-duho5axa].is-critical{animation:.35s ease-in-out infinite alternate asteroid3d-critical}@keyframes asteroid3d-danger{0%{opacity:.35}to{opacity:1}}@keyframes asteroid3d-critical{0%{opacity:.5}to{opacity:1}}.achievements[data-astro-cid-pzchbh6x]{z-index:50;overscroll-behavior:contain;-webkit-backdrop-filter:blur(6px)saturate(140%);background:#f3f3f3bf;padding:2rem 1rem;display:grid;position:fixed;inset:0;overflow-y:auto}.achievements[data-astro-cid-pzchbh6x][hidden]{display:none}.achievements__panel[data-astro-cid-pzchbh6x]{border:1px solid var(--color-text);background:#fff;width:min(760px,100%);margin:auto;padding:2.5rem 2rem 1.5rem;position:relative}.achievements__label[data-astro-cid-pzchbh6x],.achievements__readout[data-astro-cid-pzchbh6x]{background:var(--color-text);font-family:var(--font-family-mono);color:#fff;padding:0 .75rem;font-size:.8rem;position:absolute;top:0;transform:translateY(-50%)}.achievements__label[data-astro-cid-pzchbh6x]{letter-spacing:.15em;text-transform:uppercase;left:2rem}.achievements__readout[data-astro-cid-pzchbh6x]{font-variant-numeric:tabular-nums;right:2rem}.achievements__list[data-astro-cid-pzchbh6x]{gap:1.1rem 2rem;list-style:none;display:grid}@media (width>=720px){.achievements__list[data-astro-cid-pzchbh6x]{grid-template-columns:1fr 1fr}}.achievements__item[data-astro-cid-pzchbh6x]{opacity:.4;grid-template-columns:8px 1fr;align-items:center;column-gap:1rem;display:grid}.achievements__item[data-astro-cid-pzchbh6x].is-unlocked{opacity:1}.achievements__marker[data-astro-cid-pzchbh6x]{border:1px solid var(--color-text);width:8px;height:8px;transform:rotate(45deg)}.achievements__item[data-astro-cid-pzchbh6x].is-unlocked .achievements__marker[data-astro-cid-pzchbh6x]{border-color:var(--color-highlight);background:var(--color-highlight)}.achievements__item[data-astro-cid-pzchbh6x].is-unlocked[data-achievement=superFan] .achievements__marker[data-astro-cid-pzchbh6x]{border-color:var(--color-gold);background:var(--color-gold)}.achievements__name[data-astro-cid-pzchbh6x]{font-weight:600}.achievements__description[data-astro-cid-pzchbh6x]{font-family:var(--font-family-mono);opacity:.6;grid-column:2;font-size:.75rem}.achievements__close[data-astro-cid-pzchbh6x]{font-family:var(--font-family-mono);letter-spacing:.05em;color:var(--color-text);opacity:.5;cursor:pointer;transition:opacity var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:none;margin:2rem 0 0 auto;padding:0;font-size:.75rem;display:block}.achievements__close[data-astro-cid-pzchbh6x]:hover,.achievements__close[data-astro-cid-pzchbh6x]:focus-visible{opacity:1;color:var(--color-highlight)}.achievement-toast[data-astro-cid-pzchbh6x]{z-index:55;background:var(--color-text);color:#fff;text-align:left;cursor:pointer;border:none;border-radius:28px;align-items:center;max-width:calc(100vw - 2rem);height:56px;padding:0;display:flex;position:fixed;bottom:2rem;left:50%;overflow:hidden}.achievement-toast[data-astro-cid-pzchbh6x][hidden]{display:none}.achievement-toast__icon[data-astro-cid-pzchbh6x]{background:var(--color-highlight);border-radius:50%;flex-shrink:0;place-items:center;width:56px;height:56px;display:grid;& svg{fill:none;stroke:currentColor;stroke-width:2px;width:26px;height:26px}}.achievement-toast[data-astro-cid-pzchbh6x].is-gold .achievement-toast__icon[data-astro-cid-pzchbh6x]{background:var(--color-gold)}.achievement-toast__text[data-astro-cid-pzchbh6x]{white-space:nowrap;flex-direction:column;padding:0 1.75rem 0 1rem;display:flex}.achievement-toast__label[data-astro-cid-pzchbh6x]{font-family:var(--font-family-mono);letter-spacing:.1em;text-transform:uppercase;opacity:.6;font-size:.7rem}.achievement-toast__name[data-astro-cid-pzchbh6x]{text-overflow:ellipsis;font-weight:600;overflow:hidden}#main-content[data-astro-cid-67jaftdz]{z-index:1;pointer-events:none;position:relative}.skip-link[data-astro-cid-67jaftdz]{z-index:100;background:var(--color-text);color:#fff;transition:top var(--dur-fast) var(--ease-out);padding:.6rem 1rem;font-size:.9rem;font-weight:500;text-decoration:none;position:fixed;top:-3rem;left:.5rem}.skip-link[data-astro-cid-67jaftdz]:focus{top:.5rem}.hero[data-astro-cid-jsdv5cmm]{pointer-events:none;padding:0;position:relative;overflow:hidden}.content-overlay[data-astro-cid-jsdv5cmm]{pointer-events:none;flex-direction:column;width:100%;height:100%;padding:2rem;display:flex;position:absolute}.bottom-overlay[data-astro-cid-jsdv5cmm]{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-top:auto;display:flex}.its-a-me[data-astro-cid-jsdv5cmm]{pointer-events:all;max-width:min(640px,100%);& h1{letter-spacing:-.035em;margin-bottom:1rem;font-size:clamp(2.75rem,9vw,6rem);font-weight:800;line-height:.95}& span.my-title{font-size:var(--text-lead);color:var(--color-text);text-wrap:balance;font-weight:500;display:block}& .hero-pitch{max-width:46ch;font-size:var(--text-body);line-height:var(--leading-body);color:var(--color-secondary);margin-top:.75rem}}.hero-cta[data-astro-cid-jsdv5cmm]{flex-wrap:wrap;align-items:center;gap:1rem 1.75rem;margin-top:2rem;font-size:1rem;font-weight:500;display:flex}.hero-cta__primary[data-astro-cid-jsdv5cmm]{background:var(--color-highlight);color:#fff;transition:background-color var(--dur-fast) var(--ease-out);padding:.85rem 1.4rem;text-decoration:none}.hero-cta__primary[data-astro-cid-jsdv5cmm]:hover{background:var(--color-text)}.hero-cta__secondary[data-astro-cid-jsdv5cmm]{--link-rest:currentColor;color:var(--color-text)}.hero-cta__secondary[data-astro-cid-jsdv5cmm]:hover{color:var(--color-highlight)}.hero-controls[data-astro-cid-jsdv5cmm]{pointer-events:all;flex-direction:column;align-items:flex-end;gap:.75rem;display:flex}.console-launcher[data-astro-cid-jsdv5cmm]{width:18px;height:18px;color:var(--color-text);opacity:.55;cursor:pointer;transition:opacity var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:none;place-items:center;padding:0;display:grid;& svg{fill:currentColor;width:100%;height:100%}}.console-launcher[data-astro-cid-jsdv5cmm]:hover,.console-launcher[data-astro-cid-jsdv5cmm]:focus-visible{opacity:1;color:var(--color-highlight)}.hero-reset[data-astro-cid-jsdv5cmm]{pointer-events:all;font-family:inherit;font-size:var(--text-meta);color:var(--color-text);opacity:.6;cursor:pointer;transition:opacity var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:none;padding:0;display:block}.hero-reset[data-astro-cid-jsdv5cmm]:hover,.hero-reset[data-astro-cid-jsdv5cmm]:focus-visible{opacity:1;color:var(--color-highlight)}.hero-scroll-cue[data-astro-cid-jsdv5cmm]{background:var(--color-hairline);width:1px;height:56px;position:absolute;bottom:2rem;left:50%;overflow:hidden}.hero-scroll-cue__light[data-astro-cid-jsdv5cmm]{background:var(--color-highlight);height:40%;animation:2.2s cubic-bezier(.65,0,.35,1) infinite hero-scroll-cue;display:block}@keyframes hero-scroll-cue{0%{translate:0 -100%}to{translate:0 250%}}@media (prefers-reduced-motion:reduce){.hero-scroll-cue__light[data-astro-cid-jsdv5cmm]{display:none}}@media (width>=861px) and (width<=1399px){.hero-scroll-cue[data-astro-cid-jsdv5cmm]{display:none}}@media (width<=860px){.hero-controls[data-astro-cid-jsdv5cmm]{display:none}.content-overlay[data-astro-cid-jsdv5cmm]{justify-content:center}.bottom-overlay[data-astro-cid-jsdv5cmm]{justify-content:center;margin-top:0}.its-a-me[data-astro-cid-jsdv5cmm]{text-align:center}.its-a-me[data-astro-cid-jsdv5cmm] .hero-pitch[data-astro-cid-jsdv5cmm]{text-wrap:balance}.hero-cta[data-astro-cid-jsdv5cmm]{justify-content:center}}.section-heading[data-astro-cid-crj2lcfe]{letter-spacing:-.03em;max-width:18ch;margin-bottom:clamp(2.5rem,5vw,4rem);font-size:clamp(2.25rem,5vw,3.75rem);line-height:1.05}.section[data-astro-cid-fjckbq2j].about{height:auto;min-height:100vh;padding:7rem 2rem}.about-grid[data-astro-cid-fjckbq2j]{grid-template-columns:minmax(200px,280px) 1fr;align-items:start;gap:clamp(2rem,5vw,4.5rem);display:grid}.about-portrait[data-astro-cid-fjckbq2j]{position:sticky;top:7rem}.about-portrait__frame[data-astro-cid-fjckbq2j]{position:relative;overflow:hidden}.about-portrait[data-astro-cid-fjckbq2j] img{filter:grayscale()contrast(1.05);width:100%;height:auto;display:block;transform:scale(1.12)}.about-copy__paragraph[data-astro-cid-fjckbq2j]{max-width:60ch;font-size:var(--text-body);line-height:var(--leading-body);color:var(--color-secondary);margin-bottom:1.25rem}.about-copy__paragraph[data-astro-cid-fjckbq2j]:first-child{font-size:var(--text-lead);color:var(--color-text);line-height:1.55}.about-focus[data-astro-cid-fjckbq2j]{margin-top:4rem}.about-focus__label[data-astro-cid-fjckbq2j]{font-size:var(--text-lead);letter-spacing:-.01em;margin-bottom:1.75rem}.about-focus__list[data-astro-cid-fjckbq2j]{grid-template-columns:repeat(2,1fr);gap:2rem 1.5rem;list-style:none;display:grid}.about-focus__list[data-astro-cid-fjckbq2j] li[data-astro-cid-fjckbq2j]{padding-top:1.1rem}.about-focus__list[data-astro-cid-fjckbq2j] h4[data-astro-cid-fjckbq2j]{font-size:var(--text-body);margin-bottom:.5rem;font-weight:600}.about-focus__list[data-astro-cid-fjckbq2j] p[data-astro-cid-fjckbq2j]{font-size:var(--text-small);color:var(--color-secondary);line-height:1.6}@media (width<=860px){.about-grid[data-astro-cid-fjckbq2j]{grid-template-columns:1fr}.about-portrait[data-astro-cid-fjckbq2j]{max-width:220px;position:relative;top:0}.about-focus__list[data-astro-cid-fjckbq2j]{grid-template-columns:1fr}}.section[data-astro-cid-jzdbw4lc].projects{height:auto;min-height:100vh;padding:7rem 2rem}.project-list[data-astro-cid-jzdbw4lc]{list-style:none}.project[data-astro-cid-jzdbw4lc]{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:1rem clamp(2rem,5vw,4.5rem);padding:clamp(2rem,4vw,3rem) 0;display:grid}.project__title[data-astro-cid-jzdbw4lc]{letter-spacing:-.03em;margin-bottom:.6rem;font-size:clamp(1.9rem,4vw,3rem);line-height:1.05}.project__logo[data-astro-cid-jzdbw4lc]{width:auto;height:.8em;display:block}.project__status[data-astro-cid-jzdbw4lc]{font-size:var(--text-small);color:var(--color-secondary)}.project-exploring[data-astro-cid-jzdbw4lc]{margin-top:clamp(2.5rem,5vw,4rem);& ul{list-style:none}& li{border-top:1px solid var(--color-hairline);grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:baseline;gap:.25rem clamp(2rem,5vw,4.5rem);padding:.9rem 0;display:grid}}.project-exploring__heading[data-astro-cid-jzdbw4lc]{font-size:var(--text-lead);letter-spacing:-.01em;margin-bottom:1rem}.project-exploring__title[data-astro-cid-jzdbw4lc]{font-size:var(--text-body);font-weight:600}.project-exploring__description[data-astro-cid-jzdbw4lc]{font-size:var(--text-small);color:var(--color-secondary);line-height:1.6}.project__description[data-astro-cid-jzdbw4lc]{max-width:55ch;font-size:var(--text-body);line-height:var(--leading-body);color:var(--color-text)}.project__tech[data-astro-cid-jzdbw4lc]{font-size:var(--text-small);color:var(--color-secondary);margin-top:1rem}.project__link[data-astro-cid-jzdbw4lc]{color:var(--color-highlight);align-items:center;gap:.4rem;margin-top:1.25rem;font-weight:500;text-decoration:none;display:inline-flex}.project__link--soon[data-astro-cid-jzdbw4lc]{color:color-mix(in srgb, var(--color-text) 45%, transparent)}.project__link-arrow[data-astro-cid-jzdbw4lc]{fill:none;stroke:currentColor;stroke-width:1.5px;width:10px;height:10px;transition:transform var(--dur-base) var(--ease-out)}.project__link[data-astro-cid-jzdbw4lc]:hover .project__link-arrow[data-astro-cid-jzdbw4lc]{transform:translate(2px,-2px)}@media (width<=860px){.project[data-astro-cid-jzdbw4lc],.project-exploring[data-astro-cid-jzdbw4lc] li[data-astro-cid-jzdbw4lc]{grid-template-columns:1fr}}.section[data-astro-cid-isv2gfwd].contact{flex-direction:column;height:auto;min-height:100vh;padding:7rem 2rem;position:relative;overflow:hidden}.contact-body[data-astro-cid-isv2gfwd]{max-width:55ch;font-size:var(--text-body);line-height:var(--leading-body);color:var(--color-secondary);margin-bottom:3rem}.contact-email-wrap[data-astro-cid-isv2gfwd]{flex-wrap:wrap;align-items:baseline;gap:.5rem 1.25rem;margin-bottom:3rem;display:flex}.contact-email-status[data-astro-cid-isv2gfwd]{font-size:var(--text-small);color:var(--color-secondary);opacity:0;transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-base) var(--ease-out);transform:translate(-6px)}.contact-email[data-astro-cid-isv2gfwd]:hover+.contact-email-status[data-astro-cid-isv2gfwd],.contact-email[data-astro-cid-isv2gfwd]:focus-visible+.contact-email-status[data-astro-cid-isv2gfwd],.contact-email-status[data-astro-cid-isv2gfwd].is-copied{opacity:1;transform:none}.contact-email-status[data-astro-cid-isv2gfwd].is-copied{color:var(--color-highlight)}.contact-email[data-astro-cid-isv2gfwd]{letter-spacing:-.035em;color:var(--color-text);transition:color var(--dur-fast) var(--ease-out);padding-bottom:.35rem;font-size:clamp(1.75rem,6.5vw,5rem);font-weight:700;text-decoration:none;display:inline-block;position:relative}.contact-email[data-astro-cid-isv2gfwd]:before,.contact-email[data-astro-cid-isv2gfwd]:after{content:"";background:var(--color-text);width:100%;height:1px;position:absolute;bottom:0;left:0}.contact-email[data-astro-cid-isv2gfwd]:after{background:var(--color-highlight);transform-origin:100%;height:2px;transition:transform var(--dur-slow) var(--ease-out);transform:scaleX(0)}.contact-email[data-astro-cid-isv2gfwd]:hover{color:var(--color-highlight)}.contact-email[data-astro-cid-isv2gfwd]:hover:after{transform-origin:0;transform:scaleX(1)}.contact-links[data-astro-cid-isv2gfwd]{flex-wrap:wrap;gap:2rem;display:flex}.contact-links[data-astro-cid-isv2gfwd] a[data-astro-cid-isv2gfwd]{color:var(--color-text);transition:color var(--dur-fast) var(--ease-out);align-items:center;gap:.5rem;font-size:1rem;font-weight:500;text-decoration:none;display:flex}.contact-links[data-astro-cid-isv2gfwd] a[data-astro-cid-isv2gfwd]:hover{color:var(--color-highlight)}.contact-links[data-astro-cid-isv2gfwd] img[data-astro-cid-isv2gfwd]{width:18px;height:18px}.contact-links__arrow[data-astro-cid-isv2gfwd]{fill:none;stroke:currentColor;stroke-width:1.5px;width:10px;height:10px;transition:transform var(--dur-base) var(--ease-spring)}.contact-links[data-astro-cid-isv2gfwd] a[data-astro-cid-isv2gfwd]:hover .contact-links__arrow[data-astro-cid-isv2gfwd]{transform:translate(3px,-3px)}.section[data-astro-cid-isv2gfwd].contact>.contact-footer[data-astro-cid-isv2gfwd]{border-top:1px solid var(--color-hairline);width:100%;max-width:none;font-size:var(--text-meta);flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;padding:1.25rem 2rem;display:flex;position:absolute;bottom:0;left:0}.contact-footer[data-astro-cid-isv2gfwd]>span[data-astro-cid-isv2gfwd]{color:var(--color-secondary)}.contact-footer__now[data-astro-cid-isv2gfwd]{color:var(--color-secondary);transition:color var(--dur-fast) var(--ease-out);align-items:center;gap:.5rem;text-decoration:none;display:flex}.contact-footer__now[data-astro-cid-isv2gfwd]:hover{color:var(--color-highlight)}.contact-footer__clock[data-astro-cid-isv2gfwd]{font-variant-numeric:tabular-nums}#contact-clock[data-astro-cid-isv2gfwd] .clock-slot{vertical-align:bottom;white-space:pre;display:inline-grid;overflow:hidden}#contact-clock[data-astro-cid-isv2gfwd] .clock-slot>span{grid-area:1/1}.contact-footer__pulse[data-astro-cid-isv2gfwd]{background:var(--color-highlight);width:6px;height:6px;animation:2s ease-in-out infinite contact-pulse}@keyframes contact-pulse{50%{opacity:.2}}@media (prefers-reduced-motion:reduce){.contact-footer__pulse[data-astro-cid-isv2gfwd]{animation:none}}
