.header[data-v-91f107f8]{width:100%;position:-webkit-sticky;position:sticky;top:0;z-index:10;background:rgba(0,0,0,.15)}.nav-bar[data-v-91f107f8]{text-align:right;padding:20px;line-height:3em}.header-guy[data-v-91f107f8]{width:24px;height:24px;-o-object-fit:contain;object-fit:contain;vertical-align:middle;margin-right:4px;transform:translateY(-5px)}.nav-link[data-v-91f107f8],a[data-v-91f107f8]{text-transform:uppercase;margin-left:15px;margin-right:15px;padding-bottom:8px;white-space:nowrap;display:inline-block}.nav-link[data-v-91f107f8]{font-family:Russo One,Lekton,Helvetica,Arial,sans-serif;font-size:inherit;line-height:inherit;vertical-align:baseline;color:#fff;opacity:.5;background:none;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.nav-link[data-v-91f107f8]:hover{opacity:1}.nav-link--active[data-v-91f107f8],.router-link-exact-active[data-v-91f107f8]{border:0 solid #fff;border-bottom-width:2px}.nav-link--active[data-v-91f107f8]{opacity:1}@media only screen and (min-width:620px){.nav-bar[data-v-91f107f8]{max-width:1600px;margin:0 auto}}@media only screen and (max-width:620px){.nav-bar[data-v-91f107f8]{line-height:2em;font-size:.6em;padding:20px 28px 20px 12px}.nav-link[data-v-91f107f8],a[data-v-91f107f8]{margin-left:5px;margin-right:5px;padding-bottom:0}.header-guy[data-v-91f107f8]{width:20px;height:20px;margin-right:3px;transform:translateY(-4px)}}.footer[data-v-b1313b5a]{background-color:transparent;width:100%;font-size:.8em;opacity:.7;padding-bottom:30px}.left[data-v-b1313b5a],.right[data-v-b1313b5a]{padding-top:10px;text-align:center}.left[data-v-b1313b5a]{display:inline-flex;align-items:center}.left a[data-v-b1313b5a]{margin-right:4px}.footer-guy[data-v-b1313b5a]{width:20px;height:20px;-o-object-fit:contain;object-fit:contain;vertical-align:middle;margin-left:6px;transform:translateY(-3px)}@media only screen and (max-width:619px){.footer[data-v-b1313b5a]{padding-left:40px;padding-right:16px}}@media only screen and (min-width:620px){.footer[data-v-b1313b5a]{padding:0}.left[data-v-b1313b5a],.right[data-v-b1313b5a]{padding:20px}.left[data-v-b1313b5a]{float:left;display:inline-flex;align-items:center}.right[data-v-b1313b5a]{float:right}}.dialog-content .paragraph{margin:20px 0}.dialog-content .center{text-align:center}.dialog-content iframe.youtube{width:100%;min-height:300px}.dialog-content .pc-screenshot,.dialog-content .phone-screenshot{width:100%}.dialog-content .pc-video{width:100%;max-width:100%}.dialog-content .swing-space-video{width:100%;max-width:40%}.dialog-content .swing-space-shots{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.dialog-content .swing-space-shot{width:100%;max-width:40%;margin:0}.dialog-content .itch-badge{width:60%;max-width:200px;height:auto;display:inline-block}.dialog-content .notice{border:1px solid #050;background-color:#90c490;color:#016301;padding:10px}.dialog-content .tech-overview{margin:24px 0 0;border:1px solid hsla(0,0%,100%,.15);border-radius:6px;text-align:left}.dialog-content .tech-overview summary{cursor:pointer;padding:14px 18px;font-weight:700;list-style:none;text-align:center}.dialog-content .tech-overview summary::-webkit-details-marker{display:none}.dialog-content .tech-overview summary:before{content:"";display:inline-block;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:6px solid currentColor;margin-right:8px;transition:transform .15s ease}.dialog-content .tech-overview[open] summary:before{transform:rotate(90deg)}.dialog-content .tech-overview-content{padding:0 18px 18px}.dialog-content .tech-overview-heading{margin:0;padding:14px 18px;font-weight:700;font-size:1em;text-align:center}.dialog-content .tech-snippet{margin:18px 0}.dialog-content .tech-snippet pre{background:rgba(0,0,0,.5);border:1px solid hsla(0,0%,100%,.1);border-radius:4px;padding:14px;overflow-x:auto;font-size:.8em;line-height:1.4}.dialog-content .tech-snippet code{font-family:Courier New,monospace}.dialog-content .tech-bp-screenshot{display:block;width:100%;border-radius:4px;border:1px solid hsla(0,0%,100%,.1);background:rgba(0,0,0,.5);cursor:zoom-in}.dialog-content .tech-bp-screenshot--compact{width:auto;max-width:420px;margin:0 auto}.dialog-content .tech-caption{font-size:.85em;opacity:.8;font-style:italic;margin:8px 4px 0}.dialog-content a{color:#ddd;opacity:1;text-decoration:underline}.dialog-content a:hover{opacity:.6}@media only screen and (min-width:620px){.dialog-content iframe.youtube{max-width:728px;height:409px}.dialog-content .phone-screenshot{margin:15px;width:300px}.dialog-content .pc-screenshot{margin:15px;width:400px}.dialog-content .pc-video{margin:15px;width:728px;max-width:100%}.dialog-content .swing-space-video{max-width:40%}.dialog-content .swing-space-shot{max-width:34%}.dialog-content .itch-badge{width:200px;max-width:200px}}.dialog-content h2{text-align:center;font-size:1.17em;margin:1em 0}@media print{@page{margin:13mm 12mm}body,html{background:#fff!important;background-image:none!important;margin:0}#app{background:transparent!important;color:#111!important;font-size:9pt;line-height:1.24;text-align:left!important}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}.dialog,.download-button,.footer,.header,.overlay,.resume-page>h1,i.fa{display:none!important}.main{padding:0!important}.main,.resume-page{max-width:none!important;margin:0!important}.contact-row i,.entry-detail,.entry-period,.entry-role,.languages,.project-entry-link,.project-entry-summary,.resume-footer,.resume-title,.summary,a{opacity:1!important}.entry-period,.entry-role,.languages,.resume-footer,.resume-title{color:#4a4a4a!important}a{color:#111!important;text-decoration:none}.project-entry-link{color:#111!important;border-bottom:0!important;background:transparent;font-size:1em!important}.resume-name{font-size:1.3em!important}.resume-section h2{border-bottom-color:rgba(0,0,0,.25)!important;margin:0 0 4px!important;padding-bottom:2px!important;font-size:1em!important}.languages{margin-top:8px!important}.resume-footer{border-top-color:rgba(0,0,0,.25)!important}.summary{border-left-color:#555!important;font-style:italic}.tech-chip{background:rgba(0,0,0,.06)!important;border:1px solid rgba(0,0,0,.18);padding:2px 7px!important}.tech-chips{gap:4px!important}.resume-section{margin-top:8px!important}.project-entries{gap:5px!important}.entry{margin-bottom:5px!important}.resume-footer{margin-top:9px!important;padding-top:5px!important}.contact-row,.summary{margin-top:6px!important}.entry-detail,.project-entry-summary{margin-top:3px!important}.resume-columns{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.entry,.project-entry,.resume-section{page-break-inside:avoid;-moz-column-break-inside:avoid;break-inside:avoid}}@font-face{font-family:Lekton;src:url(/fonts/Lekton,Russo_One/Lekton/Lekton-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Lekton;src:url(/fonts/Lekton,Russo_One/Lekton/Lekton-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Lekton;src:url(/fonts/Lekton,Russo_One/Lekton/Lekton-Italic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Russo One;src:url(/fonts/Lekton,Russo_One/Russo_One/RussoOne-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}body,html{margin:0;min-height:100%;background:linear-gradient(to bottom left,#060608 0,#0a0a10 45%,#10131f 75%,#172140);background-attachment:fixed}#app{min-height:100vh;background:transparent;color:#fff;font-family:Lekton,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:1.1em;line-height:1.6em;text-align:justify}.footer,.header,.nav-bar a,.project-title-link,h1,h2,h3,h4,h5{font-family:Russo One,Lekton,Helvetica,Arial,sans-serif}h1,h2,h3,h4,h5{text-align:left}a{color:#fff;text-decoration:none;opacity:.5}.router-link-exact-active,a:hover{opacity:1}a:focus-visible,button:focus-visible{opacity:1;outline:2px solid #6076c6;outline-offset:3px}h1{font-size:2.5em;font-weight:100;margin-top:-10px;margin-bottom:40px;margin-left:-2px;line-height:1.1em}.main{padding:16px 20px 40px}@media only screen and (min-width:620px){#app{text-align:left;line-height:1.8em}h1{margin-top:.67em;margin-bottom:80px;line-height:.7em}.main{padding:0 48px 40px}.footer,.main{max-width:1600px;margin:0 auto}}.fade-enter-active,.fade-leave-active{transition-duration:.2s;transition-property:opacity;transition-timing-function:ease}.fade-enter,.fade-leave-active{opacity:0}