@font-face{font-family:Red Hat Display;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/red-hat-display-latin-600-normal.BbN_fQ7Z.woff2)format("woff2"),url(/_astro/red-hat-display-latin-600-normal.B3rzeGOx.woff)format("woff")}@font-face{font-family:Red Hat Display;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/red-hat-display-latin-700-normal.DUeyuPwR.woff2)format("woff2"),url(/_astro/red-hat-display-latin-700-normal.pELEKMor.woff)format("woff")}@font-face{font-family:Red Hat Text;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/red-hat-text-latin-400-normal.CU14VBGs.woff2)format("woff2"),url(/_astro/red-hat-text-latin-400-normal.B-8bUVwG.woff)format("woff")}@font-face{font-family:Red Hat Text;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/red-hat-text-latin-500-normal.c4wcFpAd.woff2)format("woff2"),url(/_astro/red-hat-text-latin-500-normal.BVSYZAnq.woff)format("woff")}:root{--bg:#1a1423;--brick:#2b2038;--text:#f4ead5;--muted:#b8a9c9;--accent:#ff9f43;--teal:#4fd1c5;--panel:#f4ead5;--ink:#1a1423;--link-on-panel:#9a4307;--teal-on-panel:#0e6e66;--muted-on-panel:#5a4a6b;--edge:#0d0912;--edge-hi:#4a3a5e;--px-brick-hi:#35294a;--px-hair:#0c0910;--px-hair-hi:#3b3150;--px-skin:#d9a066;--px-skin-shade:#b27b4c;--px-glass:#0a070e;--px-goatee:#e6dac0;--px-shirt:#2f4a82;--px-shirt-dark:#213863;--px-pants:#4a3f66;--px-wood:#9a6338;--px-wood-dark:#5e3a24;--px-metal:#8c8fa8;--px-metal-dark:#4b4a63;--px-led-red:#ff5e5b;--px-tool:#c8472e;--px-gold:#f2c14e;--px-couch:#8a4a7a;--px-couch-dark:#5e3054;--px-frame:#3e2f55;--px-sky:#241a3a;--px-sky-mid:#3d2b63;--px-sky-low:#7a456e;--px-city:#120d1c;--px-mail:#2f7f86;--fg:var(--text);--fg-muted:var(--muted);--lnk:var(--accent);--tile:var(--bg);--focus:var(--teal);--display:"Red Hat Display", system-ui, sans-serif;--sans:"Red Hat Text", system-ui, sans-serif;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--bg)}body{background:var(--bg);color:var(--text);font:400 1.0625rem/1.65 var(--sans);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100vh;margin:0;display:flex}::selection{background:var(--accent);color:var(--ink)}h1,h2,h3,.kicker,.btn,dt,.tile,.skip{font-family:var(--display)}h1,h2,h3{margin:0;font-weight:700;line-height:1.15}h1{font-size:clamp(2rem,7vw,2.75rem)}h2{font-size:1.75rem}h3{font-size:1.1rem;font-weight:600}p{margin:0 0 1rem}a{color:var(--lnk);text-underline-offset:3px}a:hover{text-decoration-thickness:2px}canvas{image-rendering:pixelated;image-rendering:crisp-edges}img{max-width:100%;height:auto}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}h2[tabindex="-1"]:focus{outline:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{z-index:100;background:var(--accent);color:var(--ink);font:700 1rem var(--display);padding:.6rem 1rem;text-decoration:none;position:absolute;top:-4rem;left:1rem}.skip:focus{top:1rem}main{flex:1;width:100%;max-width:48rem;margin:0 auto;padding:1.5rem 1rem 2rem}.px-panel{background:var(--brick);color:var(--fg);box-shadow:0 -4px 0 0 var(--edge), 0 4px 0 0 var(--edge), -4px 0 0 0 var(--edge), 4px 0 0 0 var(--edge), inset 0 4px 0 0 var(--edge-hi), inset 0 -4px 0 0 #0000004d;margin:4px;position:relative}.btn{background:var(--accent);min-width:44px;min-height:44px;color:var(--ink);cursor:pointer;box-shadow:0 -4px 0 0 var(--edge), 0 4px 0 0 var(--edge), -4px 0 0 0 var(--edge), 4px 0 0 0 var(--edge), inset 0 4px 0 0 #ffffff59, inset 0 -4px 0 0 #00000040;border:0;justify-content:center;align-items:center;gap:.6rem;margin:4px;padding:.5rem 1rem;font-size:1.05rem;font-weight:600;line-height:1.1;text-decoration:none;display:inline-flex}.btn:hover{background:#ffb263;text-decoration:none}.btn:active{transform:translateY(2px)}.btn-small{min-height:44px;padding:.4rem .8rem;font-size:.95rem}#stations{flex-wrap:wrap;gap:.25rem;margin:0 0 1.5rem;display:flex}.station{text-align:center;flex-direction:column;flex:8rem;padding:.6rem .5rem;font-size:.95rem}.station .icon{flex:none;width:24px;height:24px}#hud{flex-wrap:wrap;justify-content:flex-end;margin:0 0 .75rem;display:flex}#help,#sound,#touchpad,#stage-wrap,#tutorial[hidden]{display:none}#tutorial{padding:1.25rem}#tutorial h2{margin-bottom:.75rem}#panel .close{z-index:2;margin:.5rem 0 .5rem auto;display:flex;position:sticky;top:.5rem}#panel .close .lbl,#panel:not([open]){display:none}#sections{flex-direction:column;gap:1.75rem;display:flex}.sec{padding:1.5rem 1.25rem 1.25rem;scroll-margin-top:1rem}.kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);margin:0 0 .25rem;font-size:.9rem}.sec h2{margin-bottom:1rem}.lede{font-size:1.15rem}.muted,.meta{color:var(--fg-muted)}.meta{font-size:.95rem;font-weight:400}.meta.code{margin-left:.6rem}.card{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.portrait{background:var(--bg);width:96px;height:96px;box-shadow:0 -4px 0 0 var(--edge), 0 4px 0 0 var(--edge), -4px 0 0 0 var(--edge), 4px 0 0 0 var(--edge);object-fit:cover;flex:none;margin:4px}.role{font:600 1.15rem/1.3 var(--display);color:var(--fg-muted);margin:.25rem 0 0}.stats{flex-wrap:wrap;gap:.75rem;margin:0 0 1.25rem;padding:0;list-style:none;display:flex}.tile{background:var(--tile);box-shadow:0 -4px 0 0 var(--edge), 0 4px 0 0 var(--edge), -4px 0 0 0 var(--edge), 4px 0 0 0 var(--edge);flex-direction:column;flex:6rem;margin:4px;padding:.6rem .8rem;display:flex}.tile strong{font-size:1.35rem;line-height:1.2}.tile span{color:var(--fg-muted);font-size:.9rem}.links{flex-wrap:wrap;gap:.25rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.job+.job{margin-top:1.75rem}.job .row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem 1rem;margin-bottom:.5rem;display:flex}.job ul{margin:0;padding-left:1.25rem}.job li{margin-bottom:.5rem}.job li::marker{color:var(--fg-muted)}.certs{margin:0 0 1rem;padding:0;list-style:none}.certs li{border-bottom:2px dotted var(--fg-muted);justify-content:space-between;align-items:baseline;gap:1rem;padding:.5rem 0;display:flex}.certs li:last-child{border-bottom:0}.skills{grid-template-columns:max-content 1fr;gap:.6rem 1.5rem;margin:0;display:grid}.skills dt{color:var(--fg-muted);font-weight:600}.skills dd{margin:0}.site-footer{color:var(--muted);justify-content:center;gap:.5rem;padding:1.5rem 1rem 2rem;font-size:.95rem;display:flex}.lost{margin-top:4rem;padding:2rem 1.25rem}.lost h1{margin-bottom:1rem}#panel{--fg:var(--ink);--fg-muted:var(--muted-on-panel);--lnk:var(--link-on-panel);--tile:#e6d9bd;--focus:var(--teal-on-panel);background:var(--panel);width:min(46rem,100vw - 2.5rem);max-height:min(86dvh,52rem);color:var(--ink);box-shadow:0 -4px 0 0 var(--edge), 0 4px 0 0 var(--edge), -4px 0 0 0 var(--edge), 4px 0 0 0 var(--edge), inset 0 4px 0 0 #fff8e6, inset 0 -4px 0 0 #cdbd9b;border:0;margin:auto;padding:1rem 1.25rem 1.5rem;position:fixed;inset:0;overflow:auto}#panel::backdrop{background:#1a1423d1}#panel .sec{box-shadow:none;color:var(--ink);background:0 0;margin:0;padding:.5rem 0 0}#panel .tile{box-shadow:0 -4px 0 0 var(--ink), 0 4px 0 0 var(--ink), -4px 0 0 0 var(--ink), 4px 0 0 0 var(--ink)}#panel .portrait{background:var(--tile);box-shadow:0 -4px 0 0 var(--ink), 0 4px 0 0 var(--ink), -4px 0 0 0 var(--ink), 4px 0 0 0 var(--ink)}#panel .btn{box-shadow:0 -4px 0 0 var(--ink), 0 4px 0 0 var(--ink), -4px 0 0 0 var(--ink), 4px 0 0 0 var(--ink), inset 0 4px 0 0 #ffffff59, inset 0 -4px 0 0 #00000040}html.game body{height:100dvh;min-height:0;overflow:hidden}html.game main{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr;max-width:none;min-height:0;padding:0;display:grid}html.game .site-footer,html.game #sections{display:none}html.game #stage-wrap{background:var(--px-city);grid-area:1/1;place-items:center;min-height:0;display:grid;overflow:hidden}html.game #stations{background:var(--bg);flex-wrap:nowrap;grid-area:2/1;justify-content:center;margin:0;padding:.5rem .75rem .75rem}html.game .station{flex:0 11rem}html.game #hud{z-index:5;grid-area:1/1;place-self:start end;margin:.25rem}html.game #help,html.game #sound{display:inline-flex}#sound{width:44px;padding:0}#sound svg{fill:currentColor;shape-rendering:crispedges;flex:none;width:24px;height:24px}#sound[aria-pressed=false] .snd-on,#sound[aria-pressed=true] .snd-off{display:none}html.game #tutorial{z-index:20;background:var(--panel);width:min(22rem,100vw - 1.5rem);color:var(--ink);--fg:var(--ink);--focus:var(--teal-on-panel);box-shadow:0 -4px 0 0 var(--edge), 0 4px 0 0 var(--edge), -4px 0 0 0 var(--edge), 4px 0 0 0 var(--edge), inset 0 4px 0 0 #fff8e6, inset 0 -4px 0 0 #cdbd9b;grid-area:1/1;place-self:start;margin:.75rem;padding:1rem}html.game #tutorial h2{margin-bottom:.5rem;font-size:1.25rem}html.game #tutorial p{margin-bottom:.75rem;font-size:.95rem}html.game #tutorial .btn{box-shadow:0 -4px 0 0 var(--ink), 0 4px 0 0 var(--ink), -4px 0 0 0 var(--ink), 4px 0 0 0 var(--ink), inset 0 4px 0 0 #ffffff59, inset 0 -4px 0 0 #00000040}#quest{display:none}.nowrap{white-space:nowrap}html.game #quest:not([hidden]){z-index:10;max-width:calc(100vw - 7rem);color:var(--text);box-shadow:0 -4px 0 0 var(--edge), 0 4px 0 0 var(--edge), -4px 0 0 0 var(--edge), 4px 0 0 0 var(--edge);background:#1a1423e0;grid-area:1/1;place-self:start;margin:.75rem;font-size:.95rem;display:block}html.tutorial-open #quest{display:none!important}#quest-toggle{width:100%;min-height:44px;color:var(--text);font:700 1rem var(--display);cursor:pointer;background:0 0;border:0;align-items:center;gap:.5rem;padding:.25rem .75rem;display:flex}#quest-count{color:var(--accent)}.q-complete{display:none}#quest.complete .q-complete{color:var(--teal);display:inline}#quest.complete .q-title{display:none}#quest.complete .q-complete:before{content:"✓"}#quest.complete #quest-count{display:none}#quest-list{margin:0;padding:0 .75rem .6rem;list-style:none}#quest-list[hidden]{display:none}#quest-list li{align-items:center;gap:.5rem;padding:.15rem 0;display:flex}.q-box{background:var(--bg);width:14px;height:14px;box-shadow:0 -2px 0 0 var(--muted), 0 2px 0 0 var(--muted), -2px 0 0 0 var(--muted), 2px 0 0 0 var(--muted);flex:none;margin:2px}#quest-list li.done{color:var(--muted);text-decoration:line-through}#quest-list li.done .q-box{background:var(--teal);box-shadow:0 -2px 0 0 var(--teal), 0 2px 0 0 var(--teal), -2px 0 0 0 var(--teal), 2px 0 0 0 var(--teal)}.btn-alt{background:#e6d9bd}.btn-alt:hover{background:#f1e6cc}#quest-done[open]{z-index:30;text-align:center;background:var(--panel);width:min(26rem,100vw - 2rem);max-height:calc(100dvh - 1rem);color:var(--ink);--fg:var(--ink);--focus:var(--teal-on-panel);box-shadow:0 -4px 0 0 var(--edge), 0 4px 0 0 var(--edge), -4px 0 0 0 var(--edge), 4px 0 0 0 var(--edge), inset 0 4px 0 0 #fff8e6, inset 0 -4px 0 0 #cdbd9b;border:0;margin:auto;padding:1.25rem;display:block;inset:0;overflow:auto}#quest-done::backdrop{background:#0a07108c}#quest-done h2{margin-bottom:.5rem}#quest-done h2:focus{outline:none}.cv-check:empty{display:none}.cv-check{flex-basis:100%;justify-content:center;max-width:100%;margin-top:.5rem;display:flex;overflow:hidden}.cv-error,.cv-status{text-align:center;flex-basis:100%;margin:.5rem 0 0;font-size:.95rem}.cv-status:empty{display:none}.cv-error a{text-decoration:underline}.q-actions{flex-wrap:wrap;justify-content:center;gap:.25rem;display:flex}#quest-done .btn{box-shadow:0 -4px 0 0 var(--ink), 0 4px 0 0 var(--ink), -4px 0 0 0 var(--ink), 4px 0 0 0 var(--ink), inset 0 4px 0 0 #ffffff59, inset 0 -4px 0 0 #00000040}.confetti{pointer-events:none;background:var(--accent);width:8px;height:8px;box-shadow:-120px 20px 0 var(--teal), -80px 0 0 var(--px-tool), -40px 30px 0 var(--px-gold), 40px 10px 0 var(--teal), 80px 28px 0 var(--accent), 120px 4px 0 var(--px-tool), 150px 24px 0 var(--px-gold), -150px 8px 0 var(--accent);animation:1.6s steps(8,end) 3 forwards confetti-fall;position:absolute;top:0;left:50%}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-20px)}to{opacity:0;transform:translateY(240px)}}@media (width<=640px){html.game #quest:not([hidden]){margin:.5rem}#quest-done[open]{width:calc(100vw - 1rem);margin:auto auto .5rem}html.game #quest:not([hidden]){max-width:calc(100% - 16rem)}html.game #quest-toggle{padding-inline:.5rem}html.game #quest:not([hidden]):has(#quest-list:not([hidden])){max-width:calc(100% - 1rem);margin-top:4rem}html.game #quest-list{padding-inline:.5rem}}@media (width<=640px),(pointer:coarse){html.game main{grid-template-rows:minmax(0,1fr) auto auto}html.game #stations{grid-row:2}html.game #touchpad{padding:.5rem .75rem max(.5rem, env(safe-area-inset-bottom));background:var(--bg);grid-area:3/1;grid-template-columns:1fr 1.4fr 1fr;gap:.5rem;display:grid}#touchpad button{background:var(--accent);min-height:56px;color:var(--ink);font:700 1.25rem var(--display);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;box-shadow:0 -4px 0 0 var(--edge), 0 4px 0 0 var(--edge), -4px 0 0 0 var(--edge), 4px 0 0 0 var(--edge), inset 0 4px 0 0 #ffffff59, inset 0 -4px 0 0 #00000040;border:0;margin:4px}#touchpad button:active{transform:translateY(2px)}#panel{--pad-w:100vw;--open-w:calc((var(--pad-w) - 2.5rem) * 1.4 / 3.4 - 8px)}dialog#panel{padding:0;overflow:hidden}dialog#panel .sec{inset:env(safe-area-inset-top,0px) 0 var(--scroll-bottom,calc(max(.5rem, env(safe-area-inset-bottom)) + 64px)) 0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:1rem 1rem 1.5rem;position:absolute;overflow-y:auto}#panel .close{left:var(--close-x,calc(50% - var(--open-w) / 2));top:var(--close-y,auto);bottom:max(.5rem, env(safe-area-inset-bottom));z-index:3;width:var(--close-w,var(--open-w));height:var(--close-h,56px);min-height:56px;font:700 1.25rem var(--display);justify-content:center;align-items:center;margin:0;position:fixed}#panel .close .x{display:none}#panel .close .lbl{display:inline}}@media (width<=640px){main{padding:1rem 1rem 1.5rem}h2{font-size:1.5rem}.job .row{flex-direction:column;gap:.1rem}.skills{grid-template-columns:1fr;gap:.1rem}.skills dd{margin-bottom:.6rem}.card{flex-direction:column;align-items:flex-start}#panel{width:100%;max-width:none;height:100dvh;max-height:none;box-shadow:none;padding:0 1rem 1.5rem;inset:0}html.game main{grid-template-rows:minmax(220px,1fr) auto auto}html.game #stage-wrap{grid-row:1;place-items:end center}html.game #stations{grid-row:2;grid-template-columns:repeat(3,1fr);align-content:start;gap:.35rem;padding-bottom:.75rem;display:grid}html.game #tutorial{justify-self:center;width:calc(100vw - 1rem);margin:.5rem;padding:.75rem}html.game #tutorial h2{font-size:1.1rem}html.game #tutorial p{margin-bottom:.5rem;font-size:1rem}html.game .station{flex:none;gap:.3rem;min-width:0;min-height:72px;padding:.4rem .25rem;font-size:.9rem}html.game .station .icon{width:20px;height:20px}}@media (height<=480px) and (orientation:landscape){html.game main{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) minmax(15rem,36%)}html.game #stage-wrap{grid-area:1/1/3;place-items:end center}html.game #tutorial{grid-area:1/1;justify-self:start;width:min(22rem,60vw)}html.game #stations{grid-area:1/2;grid-template-columns:repeat(2,1fr);align-content:start;gap:.25rem;padding:.5rem;display:grid;overflow-y:auto}html.game #touchpad{grid-area:2/2}#panel{--pad-w:max(15rem, 36vw)}html.game #hud{grid-area:1/1}html.game #quest:not([hidden]):has(#quest-list:not([hidden])){margin-top:4rem}#panel{width:100%;max-width:none;height:100dvh;max-height:none;box-shadow:none;padding:0 1rem 1rem;inset:0}html.game .station{flex:none;min-width:0;padding:.35rem .25rem;font-size:.85rem}html.game .station .icon{width:20px;height:20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.btn:active{transform:none}html.game #touchpad,.confetti{display:none}}.lost .hero{image-rendering:pixelated;margin:0 0 1rem;display:block}
