@font-face{font-family:Special Elite;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/special-elite-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Special Elite;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/special-elite-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-mono-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-mono-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-mono-600-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-mono-600-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#15171b;--card:#1b1e24;--grid:#22262e;--ink:#8fb3ea;--ink-soft:#6d84ad;--text:#e6e3da;--muted:#9b988f;--rule:#333945;--shadow:0 1px 0 #8fb3ea14, 0 8px 20px -10px #000000b3;--display:"Special Elite", "Courier New", Courier, monospace;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--col-bg:#171a20;--hunt:#ff7a4d;--cell:24px;--col:12.5rem;--measure:62ch;--gutter:clamp(1rem, 4vw, 2.5rem)}*{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background-color:var(--paper);color:var(--text);font-family:var(--mono);-webkit-text-size-adjust:100%;font-size:16px;line-height:1.6}body{padding:0 var(--gutter);flex-direction:column;min-height:100vh;margin:0;display:flex}body:before{content:"";z-index:-1;background-image:linear-gradient(to right, var(--grid) 1px, transparent 1px), linear-gradient(to bottom, var(--grid) 1px, transparent 1px);background-size:var(--cell) var(--cell);pointer-events:none;position:fixed;inset:0}a{color:var(--ink);text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:1px}a:hover{background:var(--ink);color:var(--paper);text-decoration:none}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.skip{position:absolute;left:-999px}.skip:focus{left:var(--gutter);background:var(--card);z-index:1;padding:.5rem;top:.5rem}.wrap{z-index:1;flex-direction:column;flex:1;width:100%;max-width:68rem;margin:0 auto;display:flex;position:relative}main{flex:1}@media (prefers-reduced-motion:no-preference){html.intro body:before{animation:1.1s cubic-bezier(.2,.7,.2,1) both grid-in}html.intro .site-header{border-bottom-color:#0000;animation:10ms linear .9s both rule-color}html.intro .site-header:after{content:"";left:var(--pad-x);right:var(--pad-x);background:var(--ink);transform-origin:0;height:2px;animation:.7s cubic-bezier(.2,.7,.2,1) .25s both rule-in;position:absolute;bottom:-2px}html.intro .site-header .brand,html.intro .site-header nav,html.intro .hero h1,html.intro .hero .role,html.intro .hero .note{animation:.6s cubic-bezier(.2,.7,.2,1) backwards land}html.intro .site-header .brand{animation-delay:.3s}html.intro .site-header nav{animation-delay:.4s}html.intro .hero h1{animation-delay:.45s}html.intro .hero .role{animation-delay:.6s}html.intro .hero .note{animation-delay:.7s}html.intro .hero .stamp{animation:.45s cubic-bezier(.2,1.4,.4,1) 1s backwards stamp-down}}@keyframes grid-in{0%{clip-path:circle(0 at 0 0)}to{clip-path:circle(160% at 0 0)}}@keyframes rule-in{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes rule-color{to{border-bottom-color:var(--ink)}}@keyframes land{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes stamp-down{0%{opacity:0;transform:rotate(-3deg)scale(1.8)}to{opacity:.85;transform:rotate(-3deg)scale(1)}}.trail{z-index:0;pointer-events:none;position:fixed;inset:0}html.hunting,html.hunting *{-webkit-user-select:none;user-select:none;cursor:url(/cursor.svg) 14 14,crosshair}html.won body:before{animation:1.2s ease-out pulse}@keyframes pulse{0%{filter:brightness()}15%{filter:brightness(2.2)}to{filter:brightness()}}:root[data-theme=grid]{--paper:#05080c;--card:#0a1118;--grid:#0f2630;--ink:#5fe3ff;--ink-soft:#3e9cb3;--text:#d9f3fa;--muted:#7fa3ad;--rule:#163844;--col-bg:#0d161e;--hunt:#ff8a3d;--shadow:0 0 0 1px #5fe3ff14, 0 8px 24px -10px #5fe3ff40;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.sentinel{height:1px}.site-header{--pad-x:1.25rem;z-index:5;padding:1.2rem var(--pad-x) .8rem;border-bottom:2px solid var(--ink);background:var(--paper);font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.5rem;transition:padding .22s,box-shadow .22s;display:flex;position:sticky;top:0}.site-header.stuck{padding-top:.7rem;padding-bottom:.55rem;box-shadow:0 10px 24px -14px #1c1b1873}.site-header .brand{font-size:1.15rem;text-decoration:none}.brand-short{display:none}@media (width<=480px){.brand-full{display:none}.brand-short{display:inline}}.site-header nav{font-family:var(--mono);letter-spacing:.12em;flex-wrap:wrap;gap:.25rem 1.75rem;margin-left:auto;font-size:.78rem;font-weight:600;display:flex}.site-header nav a{white-space:nowrap;border-bottom:2px solid #0000;padding:.5rem 0;text-decoration:none}.site-header nav a:hover{color:var(--ink);border-bottom-color:var(--ink);background:0 0}.hero{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:2.5rem 4rem;padding:clamp(3rem,10vh,6rem) 0 4rem;display:grid}h1{font-family:var(--display);color:var(--ink);margin:0 0 1rem;font-size:clamp(2.4rem,7vw,4.6rem);font-weight:400;line-height:1.02}.hero .role{color:var(--muted);margin:0 0 1.75rem;font-size:.95rem}.stamp{font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;color:var(--ink);border:2px solid var(--ink);opacity:.85;border-radius:3px;padding:.35rem .7rem;font-size:.8rem;display:inline-block;transform:rotate(-3deg)}.note{background:var(--card);border:1px solid var(--rule);box-shadow:var(--shadow);padding:1.6rem 1.75rem;transform:rotate(.6deg)}.note p{margin:0 0 1.4rem;font-size:1.02rem}.actions{font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;flex-wrap:wrap;gap:.75rem 1.5rem;font-size:.95rem;display:flex}.actions a{padding:.4rem 0}section{padding:3.5rem 0 1rem}h2{font-family:var(--display);color:var(--ink);border-bottom:2px solid var(--ink);margin:0 0 1.75rem;padding-bottom:.5rem;font-size:clamp(1.5rem,3vw,2rem);font-weight:400;line-height:1.1}h3{font-family:var(--display);margin:0;font-size:1.35rem;font-weight:400;line-height:1.2}.card{grid-template-columns:var(--col) 1fr;background:var(--card);border:1px solid var(--rule);box-shadow:var(--shadow);margin-bottom:1.25rem;display:grid}.card .label{font-family:var(--display);color:var(--ink);background:var(--col-bg);border-right:1px solid var(--rule);padding:1.4rem 1.25rem;font-size:1rem;line-height:1.4}.dates{white-space:nowrap;position:relative}.card.current{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink), var(--shadow)}.card.current .label{background:var(--ink);color:var(--paper)}.skills-grid{columns:3 19rem;column-gap:1.25rem}.skill-card{break-inside:avoid;background:var(--card);border:1px solid var(--rule);border-top:3px solid var(--ink);width:100%;box-shadow:var(--shadow);margin-bottom:1.1rem;padding:1.25rem 1.4rem 1.4rem;transition:transform .18s,box-shadow .18s;display:inline-block}.skill-card:hover{transform:translateY(-3px);box-shadow:0 2px #1f4a9a1f,0 14px 28px -12px #1c1b184d}.skill-card h3{color:var(--ink);margin:0 0 .9rem;font-size:1rem}.tags{flex-wrap:wrap;gap:.5rem;display:flex}.tag{font-family:var(--mono);color:var(--text);background:var(--col-bg);border:1px solid var(--rule);border-radius:999px;padding:.25rem .7rem;font-size:.78rem;transition:background .15s,color .15s,border-color .15s}.skill-card:hover .tag{border-color:var(--ink-soft)}.tag:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}.now{text-transform:uppercase;letter-spacing:.08em;border:1.5px solid var(--ink);vertical-align:.1em;border-radius:2px;margin-left:.2rem;padding:.05rem .4rem;font-size:.72rem;display:inline-block;transform:rotate(-3deg)}.muted{color:var(--muted)}.postcard{background:var(--card);border:1px solid var(--rule);box-shadow:var(--shadow);grid-template-columns:1.1fr 1fr;display:grid;position:relative;transform:rotate(-.4deg)}.postcard .message{border-right:2px dashed var(--rule);padding:2rem 2rem 2.2rem}.postcard .message .to{font-family:var(--display);color:var(--ink);margin:0 0 1rem;font-size:1.25rem}.postcard .message p{max-width:40ch;margin:0 0 1rem}.postcard .message .sign{font-family:var(--display);color:var(--ink);margin:1.5rem 0 0}.postcard .address{padding:5.5rem 2rem 2.2rem}.postcard .address ul{margin:0;padding:0;list-style:none}.postcard .address li{border-bottom:1px solid var(--rule);grid-template-columns:5.5rem 1fr;align-items:baseline;gap:1rem;padding:.55rem 0;font-size:.95rem;display:grid}.postcard .address li span{font-family:var(--display);color:var(--ink)}.postcard .address a{overflow-wrap:anywhere}.postcard .stamp-box{border:2px solid var(--ink);outline:2px dashed var(--ink);outline-offset:3px;text-align:center;width:4.5rem;height:5.25rem;font-family:var(--display);color:var(--ink);place-items:center;font-size:.7rem;line-height:1.2;display:grid;position:absolute;top:1.25rem;right:1.25rem;transform:rotate(2.5deg)}.postcard .stamp-box strong{font-size:1.4rem;font-weight:400;display:block}.card .body{padding:1.4rem 1.6rem 1.5rem}.card .meta{color:var(--muted);margin:.3rem 0 .9rem;font-size:.92rem}.card ul{margin:0;padding:0;font-size:.95rem;line-height:1.6;list-style:none}.card li{padding-left:1.4rem;position:relative}.card li:before{content:"—";color:var(--ink-soft);position:absolute;left:0}.card li+li{margin-top:.75rem}.card p{margin:0}.status{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink);border:1px solid var(--ink);border-radius:2px;padding:.1rem .4rem;font-size:.72rem}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1.25rem;display:grid}.project-card{background:var(--card);border:1px solid var(--rule);box-shadow:var(--shadow);transition:transform .18s,box-shadow .18s;display:block;overflow:hidden}.project-thumb-link{display:block}.project-thumb{aspect-ratio:16/9;object-fit:cover;border-bottom:1px solid var(--rule);width:100%;height:auto;display:block}.project-body{padding:1.5rem 1.6rem 1.7rem}.project-card:hover{transform:translateY(-3px);box-shadow:0 2px #1f4a9a1f,0 14px 28px -12px #1c1b184d}.project-top{border-bottom:1px dashed var(--rule);justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.9rem;padding-bottom:.8rem;display:flex}.project-top h3{margin:0}.project-card .tags{margin-top:1.1rem}footer{padding:4rem 0 2rem;overflow:hidden}.sketch{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;-webkit-user-select:none;user-select:none;text-align:center;margin:0 0 1.5rem;font-size:clamp(4rem,17vw,13rem);line-height:.9}.sketch .l{--glow:0;--tube:#4a505c;color:#0000;-webkit-text-stroke:2px color-mix(in srgb, var(--hunt) calc(var(--glow) * 100%), var(--tube));text-shadow:0 0 1px color-mix(in srgb, var(--tube) 60%, transparent), 0 0 calc(var(--glow) * 18px) color-mix(in srgb, var(--hunt) calc(var(--glow) * 70%), transparent);opacity:.6;transition:opacity .3s,color .3s,text-shadow .3s;display:inline-block}html.goal .sketch .l:not(.lit){animation:7s step-end infinite tube-flicker;animation-delay:calc(var(--i) * -1.7s)}@keyframes tube-flicker{0%,to{opacity:.6}3%{opacity:.9}4%{opacity:.5}6%{opacity:.85}8%{opacity:.6}52%{opacity:.6}53%{opacity:.95}54%{opacity:.6}}.sketch .l.lit{color:var(--hunt);-webkit-text-stroke:2px color-mix(in srgb, white 35%, var(--hunt));opacity:1;text-shadow:0 0 6px var(--hunt), 0 0 18px var(--hunt), 0 0 48px color-mix(in srgb, var(--hunt) 70%, transparent), 0 0 90px color-mix(in srgb, var(--hunt) 40%, transparent);animation:.9s step-end both tube-on}@keyframes tube-on{0%{opacity:.6}10%{opacity:1}20%{opacity:.5}30%{opacity:1}45%{opacity:.7}55%,to{opacity:1}}.hint{color:var(--muted);text-align:center;margin:0;font-size:.85rem}.hint[hidden]{display:none}.game-status{flex-direction:column;gap:.75rem}.progress{font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;color:var(--hunt);border:2px solid var(--hunt);border-radius:3px;padding:.3rem .6rem;font-size:.85rem;display:inline-block;transform:rotate(-2deg)}.game-status{justify-content:center;align-items:center;min-height:3.4rem;margin:0 0 2rem;display:flex}.tips{z-index:6;transition:top .22s;position:fixed;top:.75rem;right:1.25rem}html:has(.site-header.stuck) .tips{top:.35rem}.tips[hidden]{display:none}.play{z-index:6;border:2px solid var(--ink);background:var(--card);width:3rem;height:3rem;color:var(--ink);box-shadow:var(--shadow);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:fixed;bottom:1.25rem;right:1.25rem}.play[hidden]{display:none}.play[aria-pressed=true]{background:var(--hunt);border-color:var(--hunt);color:var(--paper)}html.game,html.game body{touch-action:none;overscroll-behavior:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.tips-bulb{border:2px solid var(--hunt);background:var(--card);width:2.25rem;height:2.25rem;color:var(--hunt);cursor:pointer;box-shadow:var(--shadow);border-radius:50%;place-items:center;display:grid}.tips-bulb:hover{background:var(--hunt);color:var(--paper)}.tips-tag{white-space:nowrap;font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--paper);background:var(--hunt);opacity:0;pointer-events:none;border-radius:2px;padding:.35rem .7rem;font-size:.85rem;position:absolute;top:calc(100% + .6rem);right:0}.tips-tag:after{content:"";border:6px solid #0000;border-bottom-color:var(--hunt);position:absolute;bottom:100%;right:.8rem}.tips.pulse .tips-bulb{animation:.6s cubic-bezier(.2,1.6,.4,1) both pop,3s ease-out both lit-bulb}.tips.pulse:before,.tips.pulse:after{content:"";border:2px solid var(--hunt);pointer-events:none;border-radius:50%;animation:1.6s ease-out 3 ring;position:absolute;inset:0}.tips.pulse:after{animation-delay:.5s}.tips.pulse .tips-tag{animation:5s ease-out .4s both tag}@keyframes pop{0%{transform:scale(0)rotate(-30deg)}to{transform:scale(1)rotate(0)}}@keyframes lit-bulb{0%,70%{background:var(--hunt);color:var(--paper);box-shadow:0 0 24px var(--hunt), 0 0 60px #d9532b80}to{background:var(--card);color:var(--hunt);box-shadow:var(--shadow)}}@keyframes ring{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(3.2)}}@keyframes tag{0%{opacity:0;transform:translateY(-.5rem)}12%,80%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(0)}}.tips-card{width:min(20rem,100vw - 2.5rem);font-family:var(--mono);text-transform:none;letter-spacing:0;background:var(--card);border:1px solid var(--rule);box-shadow:var(--shadow);padding:1rem 1.1rem 1.1rem;position:absolute;top:calc(100% + .75rem);right:0;transform:rotate(-.6deg)}.tips-card[hidden]{display:none}.tips-text{margin:0 0 .9rem;font-size:.92rem}.tips-actions{gap:.5rem;display:grid}.tips-actions button{font:inherit;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:2px solid var(--ink);width:100%;padding:.55rem .7rem;font-size:.78rem;font-weight:600}.tips-close{background:var(--ink);color:var(--paper)}.tips-next{color:var(--ink);background:0 0}.tips-actions button:hover{background:var(--hunt);border-color:var(--hunt);color:var(--paper)}.win[hidden],.reset[hidden]{display:none}.progress[hidden]{visibility:hidden}.copy{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.5rem 2rem;display:flex}.reset{font:inherit;color:var(--muted);text-underline-offset:.2em;cursor:pointer;background:0 0;border:0;padding:.3rem 0;font-size:.8rem;text-decoration:underline}.reset:hover{color:var(--ink)}.win{flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;display:flex}.win-stamp{font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;color:var(--hunt);border:2px solid var(--hunt);border-radius:3px;padding:.35rem .7rem;font-size:.85rem;display:inline-block;transform:rotate(-2deg)}.theme-toggle,.replay{font:inherit;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);border:0;border-bottom:2px solid var(--ink);cursor:pointer;background:0 0;padding:.4rem 0;font-size:.78rem;font-weight:600}.theme-toggle:hover,.replay:hover{background:var(--ink);color:var(--paper)}.copy{color:var(--muted);font-size:.8rem}@media (width<=760px){.site-header{--pad-x:.5rem;flex-wrap:nowrap;align-items:center;gap:.75rem;padding-top:.9rem;padding-bottom:.7rem}.site-header .brand{white-space:nowrap;font-size:1rem}.site-header nav{letter-spacing:.06em;flex-wrap:nowrap;gap:.85rem;font-size:.68rem}.tips{top:auto;bottom:5rem}html:has(.site-header.stuck) .tips{top:auto}.tips-card{top:auto;bottom:calc(100% + .75rem)}.hero{grid-template-columns:1fr;gap:2rem}.card{grid-template-columns:1fr}.card .label{border-right:0;border-bottom:1px solid var(--rule);padding:.7rem 1.25rem}.skills-grid{columns:1}.projects-grid,.postcard{grid-template-columns:1fr}.postcard .message{border-right:0;border-bottom:2px dashed var(--rule);padding-right:6rem}.postcard .address{padding-top:1.5rem}}
