@font-face{font-display:swap;font-family:Urbanist;font-style:normal;font-weight:100;src:url(../fonts/urbanist-latin-100-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:normal;font-weight:400;src:url(../fonts/urbanist-latin-400-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:normal;font-weight:600;src:url(../fonts/urbanist-latin-600-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:normal;font-weight:900;src:url(../fonts/urbanist-latin-900-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:italic;font-weight:100;src:url(../fonts/urbanist-latin-100-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:italic;font-weight:400;src:url(../fonts/urbanist-latin-400-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:italic;font-weight:600;src:url(../fonts/urbanist-latin-600-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:italic;font-weight:900;src:url(../fonts/urbanist-latin-900-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Atkinson Hyperlegible;font-style:normal;font-weight:400;src:url(../fonts/atkinson-hyperlegible-latin-400-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Atkinson Hyperlegible;font-style:normal;font-weight:700;src:url(../fonts/atkinson-hyperlegible-latin-700-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Atkinson Hyperlegible;font-style:italic;font-weight:400;src:url(../fonts/atkinson-hyperlegible-latin-400-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Atkinson Hyperlegible;font-style:italic;font-weight:700;src:url(../fonts/atkinson-hyperlegible-latin-700-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Press Start\ 2P;font-style:normal;font-weight:400;src:url(../fonts/press-start-2p-latin-400-normal.woff2) format("woff2")}:root{scroll-behavior:smooth;scrollbar-gutter:stable;scrollbar-width:thin}:root.contrast-mode p{font-family:Atkinson Hyperlegible,sans-serif;letter-spacing:.05ch}:focus-visible{box-shadow:0 0 0 2px light-dark(var(--highlight-color),var(--border-color));outline-color:light-dark(#000,#fff);outline-offset:2px;outline-style:solid;outline-width:1px}body{font-family:Urbanist,Helvetica,Arial,-apple-system,BlinkMacSystemFont,sans-serif;margin:0;padding:0;transition:background-color .2s ease,color .2s ease}@media(prefers-reduced-motion:reduce){:not(.hero-section):after,:not(.hero-section):before,:not(.hero-section):not(.hero-section *){animation-duration:.1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.1ms!important}}.strike-through{text-decoration:line-through}.screen-reader-only{height:0;overflow:hidden;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:0}:root{transition:color-scheme .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease}main{height:100%;overflow-x:clip;padding-top:70px;position:relative;scroll-behavior:smooth;width:100%;z-index:1}.skip-to-content{background:none;border:none;height:0;left:0;overflow:hidden;padding:0;position:absolute;top:0;width:0;z-index:99999}.skip-to-content:focus-within{height:auto;overflow:visible;padding:.5rem 1rem;width:auto}:root.light-mode{background-color:#f2f2f2;color:#0d0d0d;color-scheme:light;--bg-color:oklch(96% 0 0deg);--sub-bg-color:oklch(80% 0 0deg);--border-color:oklch(55.81% .2248 294.45deg);--text-color:oklch(16% 0 0deg);--highlight-color:oklch(40.81% .2248 294.45deg)}:root.dark-mode{background-color:#181818;color:#f2f2f2;color-scheme:dark;--bg-color:oklch(20.8% 0 0deg);--sub-bg-color:oklch(23.97% .0526 304.97deg);--border-color:oklch(45.81% .2248 294.45deg);--text-color:oklch(96% 0 0deg);--highlight-color:oklch(73.59% .0994 207.86deg)}:root.sepia-mode{background-color:#fed8b1;color:#6f4e37;color-scheme:light;--bg-color:oklch(90.48% .0664 67.56deg);--sub-bg-color:oklch(80.23% .1023 65.49deg);--border-color:oklch(73.71% .0974 56.7deg);--text-color:oklch(45.39% .0568 55.64deg);--highlight-color:oklch(53.39% .0568 55.64deg)}:root.contrast-mode{background-color:#000;color:#fff;color-scheme:dark;--bg-color:oklch(0% 0 0deg);--sub-bg-color:oklch(15% 0 0deg);--border-color:oklch(100% 0 0deg);--text-color:oklch(100% 0 0deg);--highlight-color:oklch(91.27% .1901 100.64deg)}:root.retro-mode{background-color:#05050d;color:#79ec80;color-scheme:dark;--bg-color:oklch(12% .02 280deg);--sub-bg-color:oklch(18% .03 280deg);--border-color:oklch(65% .2 195deg);--text-color:oklch(85% .18 145deg);--highlight-color:oklch(70% .25 330deg)}:root.retro-mode .btn,:root.retro-mode .build-button,:root.retro-mode .card-badge,:root.retro-mode .card-tag,:root.retro-mode .card-title,:root.retro-mode .contact-label,:root.retro-mode .section-title:not(.hero-section *),:root.retro-mode .showcase-label,:root.retro-mode .theme-selector,:root.retro-mode h1:not(.hero-section *),:root.retro-mode h2:not(.hero-section *),:root.retro-mode h3:not(.hero-section *),:root.retro-mode h4,:root.retro-mode h5,:root.retro-mode h6{font-family:Press Start\ 2P,monospace;letter-spacing:-.5px}:root.retro-mode h1:not(.hero-section *){font-size:clamp(1rem,3vw,1.75rem)}:root.retro-mode h2:not(.hero-section *){font-size:clamp(.85rem,2.5vw,1.4rem)}:root.retro-mode h3:not(.hero-section *){font-size:clamp(.75rem,2vw,1.1rem)}:root.retro-mode .card-title{font-size:clamp(.7rem,2vw,.9rem)}:root.retro-mode .card-badge,:root.retro-mode .card-tag{font-size:.55rem}:root.retro-mode .card-image,:root.retro-mode img,:root.retro-mode picture{image-rendering:pixelated}:root.retro-mode *,:root.retro-mode :after,:root.retro-mode :before{border-radius:0!important}:root.retro-mode .contact-card,:root.retro-mode .faq-item,:root.retro-mode .portfolio-card{box-shadow:4px 4px 0 var(--border-color)}:root.retro-mode .contact-card:hover,:root.retro-mode .faq-item:hover,:root.retro-mode .portfolio-card:hover{box-shadow:6px 6px 0 var(--highlight-color)}:root.retro-mode .contact-card,:root.retro-mode .portfolio-card{border-style:dashed;border-width:3px}:root.retro-mode main:after{background:repeating-linear-gradient(180deg,transparent,transparent 2px,rgba(0,0,0,.15) 0,rgba(0,0,0,.15) 4px);content:"";inset:0;mix-blend-mode:multiply;pointer-events:none;position:fixed;z-index:9998}:root.retro-mode .section-title{text-shadow:0 0 8px var(--highlight-color)}.page-enter-active,.page-leave-active{transition:opacity .2s ease}.page-enter-from,.page-leave-to{opacity:0}@keyframes scroll-reveal{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes scroll-reveal-scale{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@font-face{font-display:swap;font-family:Urbanist;font-style:normal;font-weight:100;src:url(../fonts/urbanist-latin-100-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:normal;font-weight:400;src:url(../fonts/urbanist-latin-400-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:normal;font-weight:600;src:url(../fonts/urbanist-latin-600-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:normal;font-weight:900;src:url(../fonts/urbanist-latin-900-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:italic;font-weight:100;src:url(../fonts/urbanist-latin-100-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:italic;font-weight:400;src:url(../fonts/urbanist-latin-400-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:italic;font-weight:600;src:url(../fonts/urbanist-latin-600-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:italic;font-weight:900;src:url(../fonts/urbanist-latin-900-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Atkinson Hyperlegible;font-style:normal;font-weight:400;src:url(../fonts/atkinson-hyperlegible-latin-400-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Atkinson Hyperlegible;font-style:normal;font-weight:700;src:url(../fonts/atkinson-hyperlegible-latin-700-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Atkinson Hyperlegible;font-style:italic;font-weight:400;src:url(../fonts/atkinson-hyperlegible-latin-400-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Atkinson Hyperlegible;font-style:italic;font-weight:700;src:url(../fonts/atkinson-hyperlegible-latin-700-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Press Start\ 2P;font-style:normal;font-weight:400;src:url(../fonts/press-start-2p-latin-400-normal.woff2) format("woff2")}.konami-toast[data-v-8ea2f42c]{align-items:center;background:var(--highlight-color);border:2px dashed var(--border-color);bottom:2rem;box-shadow:4px 4px 0 var(--border-color);color:var(--bg-color);display:flex;font-family:Press Start\ 2P,monospace;font-size:.8rem;gap:.5rem;left:50%;padding:.75rem 1.5rem;position:fixed;transform:translate(-50%);z-index:99999}.toast-enter-active[data-v-8ea2f42c]{animation:toast-in-8ea2f42c .4s ease-out}.toast-leave-active[data-v-8ea2f42c]{animation:toast-in-8ea2f42c .3s ease-in reverse}@keyframes toast-in-8ea2f42c{0%{opacity:0;transform:translate(-50%) translateY(20px) scale(.9)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.nes-controller[data-v-8ea2f42c]{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#161616eb;border:2px solid oklch(50% 0 0deg/.4);border-radius:1rem;bottom:1.5rem;box-shadow:0 8px 32px #00000080;gap:2.5rem;left:50%;padding:1.25rem 1.75rem;position:fixed;touch-action:manipulation;transform:translate(-50%);-moz-user-select:none;user-select:none;-webkit-user-select:none;z-index:99998}.nes-close[data-v-8ea2f42c],.nes-controller[data-v-8ea2f42c]{align-items:center;display:flex}.nes-close[data-v-8ea2f42c]{background:#0b0b0b;border:2px solid oklch(50% 0 0deg/.5);border-radius:50%;color:#bebebe;cursor:pointer;font-size:1.1rem;height:28px;justify-content:center;line-height:1;padding:0;position:absolute;right:-10px;top:-10px;width:28px}.nes-close[data-v-8ea2f42c]:hover{background:#222}.nes-dpad[data-v-8ea2f42c]{display:grid;gap:0;grid-template-columns:44px 44px 44px;grid-template-rows:44px 44px 44px}.dpad-center[data-v-8ea2f42c]{background:#222;border-radius:2px;grid-column:2;grid-row:2}.dpad-btn[data-v-8ea2f42c]{align-items:center;background:#2e2e2e;border:1px solid oklch(40% 0 0deg/.5);color:#aeaeae;cursor:pointer;display:flex;font-size:1rem;justify-content:center;padding:0;transition:background .1s;-webkit-tap-highlight-color:transparent}.dpad-btn[data-v-8ea2f42c]:active{background:#4845a5;color:#fff}.dpad-btn.up[data-v-8ea2f42c]{border-radius:6px 6px 0 0;grid-column:2;grid-row:1}.dpad-btn.down[data-v-8ea2f42c]{border-radius:0 0 6px 6px;grid-column:2;grid-row:3}.dpad-btn.left[data-v-8ea2f42c]{border-radius:6px 0 0 6px;grid-column:1;grid-row:2}.dpad-btn.right[data-v-8ea2f42c]{border-radius:0 6px 6px 0;grid-column:3;grid-row:2}.nes-ab[data-v-8ea2f42c]{align-items:center;display:flex;gap:.75rem}.ab-btn[data-v-8ea2f42c]{background:#2e2e2e;border:2px solid oklch(40% 0 0deg/.6);border-radius:50%;color:#aeaeae;cursor:pointer;font-family:Press Start\ 2P,monospace;font-size:.7rem;font-weight:700;height:52px;transition:background .1s;width:52px;-webkit-tap-highlight-color:transparent}.ab-btn[data-v-8ea2f42c]:active{background:#ae1173;color:#fff}.controller-enter-active[data-v-8ea2f42c]{animation:controller-in-8ea2f42c .3s ease-out}.controller-leave-active[data-v-8ea2f42c]{animation:controller-in-8ea2f42c .2s ease-in reverse}@keyframes controller-in-8ea2f42c{0%{opacity:0;transform:translate(-50%) translateY(40px) scale(.85)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@font-face{font-display:swap;font-family:Urbanist;font-style:normal;font-weight:100;src:url(../fonts/urbanist-latin-100-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:normal;font-weight:400;src:url(../fonts/urbanist-latin-400-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:normal;font-weight:600;src:url(../fonts/urbanist-latin-600-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:normal;font-weight:900;src:url(../fonts/urbanist-latin-900-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:italic;font-weight:100;src:url(../fonts/urbanist-latin-100-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:italic;font-weight:400;src:url(../fonts/urbanist-latin-400-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:italic;font-weight:600;src:url(../fonts/urbanist-latin-600-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:italic;font-weight:900;src:url(../fonts/urbanist-latin-900-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Atkinson Hyperlegible;font-style:normal;font-weight:400;src:url(../fonts/atkinson-hyperlegible-latin-400-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Atkinson Hyperlegible;font-style:normal;font-weight:700;src:url(../fonts/atkinson-hyperlegible-latin-700-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Atkinson Hyperlegible;font-style:italic;font-weight:400;src:url(../fonts/atkinson-hyperlegible-latin-400-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Atkinson Hyperlegible;font-style:italic;font-weight:700;src:url(../fonts/atkinson-hyperlegible-latin-700-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Press Start\ 2P;font-style:normal;font-weight:400;src:url(../fonts/press-start-2p-latin-400-normal.woff2) format("woff2")}.breakout-wrap[data-v-fd4df808]{margin:0 auto;max-width:550px;width:100%}.breakout-canvas[data-v-fd4df808]{aspect-ratio:4/3;background:transparent;border:2px solid var(--border-color);border-radius:.75rem;cursor:none;display:block;touch-action:none;width:100%}@font-face{font-display:swap;font-family:Urbanist;font-style:normal;font-weight:100;src:url(../fonts/urbanist-latin-100-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:normal;font-weight:400;src:url(../fonts/urbanist-latin-400-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:normal;font-weight:600;src:url(../fonts/urbanist-latin-600-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:normal;font-weight:900;src:url(../fonts/urbanist-latin-900-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:italic;font-weight:100;src:url(../fonts/urbanist-latin-100-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:italic;font-weight:400;src:url(../fonts/urbanist-latin-400-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:italic;font-weight:600;src:url(../fonts/urbanist-latin-600-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Urbanist;font-style:italic;font-weight:900;src:url(../fonts/urbanist-latin-900-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Atkinson Hyperlegible;font-style:normal;font-weight:400;src:url(../fonts/atkinson-hyperlegible-latin-400-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Atkinson Hyperlegible;font-style:normal;font-weight:700;src:url(../fonts/atkinson-hyperlegible-latin-700-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Atkinson Hyperlegible;font-style:italic;font-weight:400;src:url(../fonts/atkinson-hyperlegible-latin-400-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Atkinson Hyperlegible;font-style:italic;font-weight:700;src:url(../fonts/atkinson-hyperlegible-latin-700-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Press Start\ 2P;font-style:normal;font-weight:400;src:url(../fonts/press-start-2p-latin-400-normal.woff2) format("woff2")}.error-page[data-v-72c02dcd]{justify-content:center;min-height:100dvh;padding:2rem 1rem 0;text-align:center}.error-page[data-v-72c02dcd],.not-found[data-v-72c02dcd]{align-items:center;display:flex;flex-direction:column}.not-found[data-v-72c02dcd]{gap:1rem;max-width:550px;width:100%}.lost-label[data-v-72c02dcd]{font-size:clamp(.875rem,1.5vw,1rem);font-weight:600;letter-spacing:.1em;opacity:.5;text-transform:uppercase}.game-hint[data-v-72c02dcd],.lost-label[data-v-72c02dcd]{color:var(--text-color);margin:0}.game-hint[data-v-72c02dcd]{font-size:.875rem;font-style:italic;opacity:.4}.home-link[data-v-72c02dcd]{align-items:center;border:2px solid var(--border-color);border-radius:.75rem;color:var(--text-color);display:inline-flex;font-size:clamp(.875rem,1.5vw,1rem);font-weight:700;gap:.5rem;padding:.5rem 1.5rem;text-decoration:none;transition:all .3s ease}.home-link .iconify[data-v-72c02dcd]{font-size:1.1rem}.home-link[data-v-72c02dcd]:hover{background:var(--sub-bg-color);border-color:var(--highlight-color)}.home-link[data-v-72c02dcd]:focus-visible{outline:3px solid var(--highlight-color);outline-offset:2px}.other-error[data-v-72c02dcd]{align-items:center;display:flex;flex-direction:column;gap:.5rem}.other-error h1[data-v-72c02dcd],.other-error p[data-v-72c02dcd]{color:var(--text-color);margin:0}.other-error p[data-v-72c02dcd]{opacity:.7}.error-details[data-v-72c02dcd]{background:var(--sub-bg-color);border:1px solid var(--border-color);border-radius:.5rem;margin-top:2rem;max-height:300px;max-width:700px;overflow-x:auto;overflow-y:auto;padding:1rem;text-align:left;white-space:pre-wrap;width:100%;word-break:break-word}.error-details[data-v-72c02dcd],.error-details summary[data-v-72c02dcd]{color:var(--text-color);font-size:.875rem}.error-details summary[data-v-72c02dcd]{cursor:pointer;font-weight:600;opacity:.5;padding:.5rem 0}
