@font-face{font-family:Syncopate;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7c16d6599b41d1c7-s.0g-q227gu2h-o.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Syncopate;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2fcf4aae42c01d8d-s.p.0kj432opsqcp6.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:Syncopate;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b7f640e88244dd61-s.17b3fheucd-bi.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Syncopate;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b418bc6fd8930c58-s.p.1h2ytxfdjw-xl.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:Syncopate Fallback;src:local(Arial);ascent-override:46.21%;descent-override:12.65%;line-gap-override:4.46%;size-adjust:164.4%}.jazDJa_className{font-family:Syncopate,Syncopate Fallback;font-style:normal}.jazDJa_variable{--font-display:"Syncopate", "Syncopate Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/258bd0ab5fdd762a-s.3bz3aq452sydg.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/99a2019bdfa8519b-s.2sb9jzhmrh7ny.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/44e0cb21b0d052b7-s.343obqi851wr5.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/f9cd5a77d065db98-s.40kcwrf1wub16.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/954d21e04331b2ae-s.200l3jur7oygh.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/53897e768d329f66-s.p.269kn9uafm0ti.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:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.CxiPNW_className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.CxiPNW_variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
@font-face{font-family:Silkscreen;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5fbd9980918344f2-s.1ezp49bmel24y.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Silkscreen;font-style:normal;font-weight:400;font-display:swap;src:url(../media/cc68f550ae21708a-s.p.2-db4p8p3l7-q.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:Silkscreen Fallback;src:local(Arial);ascent-override:68.84%;descent-override:16.71%;line-gap-override:0.0%;size-adjust:149.62%}.nl6HVG_className{font-family:Silkscreen,Silkscreen Fallback;font-style:normal;font-weight:400}.nl6HVG_variable{--font-pixel:"Silkscreen", "Silkscreen Fallback"}
:root{--h:218;--s:34%;--l:56%;--bg:hsl(var(--h) var(--s) var(--l));--bg-deep:hsl(var(--h) var(--s) calc(var(--l) - 14%));--panel:hsl(var(--h) var(--s) calc(var(--l) - 9%));--accent:hsl(calc(var(--h) + 180) 85% 66%);--ink:#fff;--ink-dim:#ffffffc7;--line:#fff9;--grid:#ffffff24;--gutter:clamp(16px, 3.4vw, 48px);--cell:88px;--notch:20px;--cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='26' height='26'><path d='M3 2l17 9.5-7.2 1.7-3.6 6.6z' fill='white' stroke='%23202436' stroke-width='1.6' stroke-linejoin='round'/></svg>") 3 2, auto;--cursor-link:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='26' height='26'><path d='M3 2l17 9.5-7.2 1.7-3.6 6.6z' fill='%23202436' stroke='white' stroke-width='1.6' stroke-linejoin='round'/><circle cx='19' cy='19' r='3' fill='white' stroke='%23202436' stroke-width='1.2'/></svg>") 3 2, pointer}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background-color:var(--bg);color:var(--ink);font-family:var(--font-mono), ui-monospace, monospace;cursor:var(--cursor);-webkit-font-smoothing:antialiased;background-image:linear-gradient(#0000 40%,#0000001f);background-attachment:fixed;font-size:14px;line-height:1.6;overflow-x:hidden}body:after{content:"";z-index:70;pointer-events:none;opacity:.16;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1.4 -0.35'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:.5s step-end infinite grain;position:fixed;inset:-50%}@keyframes grain{0%{transform:translate(0)}33%{transform:translate(-2%,1.5%)}66%{transform:translate(1.5%,-2%)}}a,button{color:inherit;cursor:var(--cursor-link)}a{text-decoration:none}::selection{background:var(--accent);color:var(--bg-deep)}:focus-visible{outline:2px dashed var(--accent);outline-offset:3px}.dim{color:var(--ink-dim)}.backdrop{z-index:0;pointer-events:none;color:#ffffff1f;position:fixed;inset:0;overflow:hidden}.grid{inset:calc(var(--cell) * -1) 0 0 calc(var(--cell) * -1);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 88 88'><path d='M37 44h14M44 37v14' stroke='white' stroke-opacity='0.55' stroke-width='1.4'/></svg>"), linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:var(--cell) var(--cell);background-position:calc(var(--cell) / -2 + .5px) calc(var(--cell) / -2 + .5px), 0 0, 0 0;will-change:transform;animation:7s linear infinite grid-drift;position:absolute}@keyframes grid-drift{to{transform:translate(var(--cell), var(--cell))}}.dial{width:130vmin;height:130vmin;margin-top:-65vmin;animation:140s linear infinite spin;position:absolute;top:50%;left:-42vmin}.scene{z-index:2;pointer-events:none;position:fixed;inset:0}@keyframes spin{to{transform:rotate(360deg)}}.shell{min-height:100dvh;padding:calc(var(--gutter) * .75) var(--gutter);flex-direction:column;gap:28px;display:flex;position:relative}.topbar,.bottombar{z-index:3;justify-content:space-between;gap:24px;display:flex;position:relative}.topbar{align-items:flex-start}.topbar-right{align-items:flex-start;gap:10px;display:flex}.bottombar{align-items:flex-end}.main{flex-direction:column;flex:1;justify-content:flex-end;display:flex}.greeting{font-family:var(--font-pixel);align-items:center;gap:12px;font-size:11px;line-height:1.5;display:flex}.avatar{border:1.5px solid var(--ink);width:46px;height:46px;font-family:var(--font-display);clip-path:polygon(0 0,100% 0,100% 72%,72% 100%,0 100%);background:repeating-linear-gradient(-45deg, #ffffff40 0 1px, transparent 1px 5px), var(--panel);place-items:center;font-size:13px;font-weight:700;transition:background .2s;display:grid}.greeting:hover .avatar{background:var(--accent);color:var(--bg-deep)}.greeting-text{flex-direction:column;display:flex}.status{align-items:center;gap:7px;display:flex}.status-dot{background:var(--accent);width:7px;height:7px;animation:1.2s step-end infinite blink;box-shadow:0 0 0 2px #00000026}.updates{background:var(--line);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);flex-direction:column;gap:1px;width:min(340px,100%);padding:1px;display:flex}.updates-tab{background:repeating-linear-gradient(-45deg, #ffffff2e 0 1px, transparent 1px 5px), var(--panel);font-family:var(--font-pixel);justify-content:space-between;gap:12px;padding:3px 22px 3px 10px;font-size:10px;display:flex}.updates-list{background:var(--panel);scrollbar-width:thin;scrollbar-color:var(--ink) transparent;max-height:140px;margin:0;padding:4px 6px;list-style:none;overflow-y:auto}.updates-list>li>*{border-bottom:1px dashed #ffffff4d;flex-direction:column;padding:6px 8px;transition:background .15s;display:flex}.updates-list>li:last-child>*{border-bottom:0}.updates-list a:hover{background:#ffffff29}.updates-list strong{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;font-size:12px}.updates-list span{color:var(--ink-dim);font-size:11px}.audio{flex:none;position:relative}.now-playing{border:1px solid var(--line);background:var(--panel);font-family:var(--font-pixel);white-space:nowrap;align-items:center;gap:8px;padding:3px 8px;font-size:10px;transition:background .15s,color .15s;display:flex;position:absolute;top:calc(100% + 8px);right:0}.now-playing:hover{background:var(--accent);color:var(--bg-deep)}.eq{align-items:flex-end;gap:2px;height:9px;display:flex}.eq span{transform-origin:bottom;background:currentColor;width:2px;height:100%;animation:.6s steps(3,end) infinite eq}.eq span:nth-child(2){animation-delay:-.2s}.eq span:nth-child(3){animation-delay:-.4s}@keyframes eq{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}.icon-button{border:1.5px solid var(--ink);background:var(--panel);border-radius:50%;flex:none;place-items:center;width:36px;height:36px;transition:background .15s,color .15s;display:grid}.icon-button:hover,.icon-button[aria-pressed=true]{background:var(--accent);color:var(--bg-deep)}.hero{z-index:1;padding-bottom:4px;position:relative}.logo{font-family:var(--font-display);letter-spacing:.02em;text-transform:uppercase;flex-direction:column;margin:0;font-size:clamp(28px,4.2vw,68px);font-weight:400;line-height:1.05;display:flex}.tagline{letter-spacing:.02em;margin:16px 0 0;font-size:14px}.caret{vertical-align:-.2em;background:var(--accent);width:.6em;height:1.1em;margin-left:4px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.nav-block{flex-direction:column;gap:16px;display:flex}.nav{flex-wrap:wrap;gap:6px 14px;display:flex}.nav-item{border-left:2px solid var(--ink);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;clip-path:polygon(0 0,100% 0,100% 70%,calc(100% - 10px) 100%,0 100%);padding:4px 18px 2px 16px;font-size:clamp(18px,2.1vw,30px);transition:background .15s,color .15s,padding .15s;position:relative}.nav-item:hover{background:repeating-linear-gradient(-45deg,#ffffff47 0 1.5px,#0000 1.5px 5px);padding-left:22px}.nav-item[aria-current=page]{background:var(--ink);color:var(--bg-deep);border-left:6px solid var(--accent)}.socials{flex-wrap:wrap;gap:4px 18px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.socials a{color:var(--ink-dim);transition:color .15s}.socials a:hover{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px}.tag{font-family:var(--font-pixel);flex:none;align-items:center;gap:10px;font-size:10px;display:flex}.barcode{color:var(--ink);display:block}.panel{z-index:3;background:var(--line);width:min(100%,760px);clip-path:polygon(0 0, calc(100% - var(--notch)) 0, 100% var(--notch), 100% 100%, var(--notch) 100%, 0 calc(100% - var(--notch)));padding:1px;animation:.4s steps(6,end) panel-in;position:relative}.panel-inner{background:var(--panel);clip-path:polygon(0 0, calc(100% - var(--notch) + .4px) 0, 100% calc(var(--notch) - .4px), 100% 100%, calc(var(--notch) - .4px) 100%, 0 calc(100% - var(--notch) + .4px))}@keyframes panel-in{0%{clip-path:polygon(0 0,0 0,0 0,0 100%,0 100%,0 100%)}}.panel-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px 14px;padding:16px 30px 12px 22px;display:flex}.panel-head:after{content:"";background:repeating-linear-gradient(-45deg, var(--accent) 0 2px, transparent 2px 6px);flex:1;min-width:40px;height:14px}.panel-head h1{font-family:var(--font-display);text-transform:uppercase;margin:0;font-size:clamp(24px,3.2vw,40px);font-weight:700;line-height:1}.panel-meta{font-family:var(--font-pixel);color:var(--ink-dim);font-size:11px}.panel-body{scrollbar-width:thin;scrollbar-color:var(--ink) transparent;max-height:52dvh;padding:16px 22px 26px;overflow-y:auto}.panel-body>p{max-width:62ch;margin:0 0 12px}.empty{border:1px dashed var(--line);padding:18px}.button{border:1.5px solid var(--ink);font-family:var(--font-display);text-transform:uppercase;margin-top:6px;padding:8px 16px;font-size:13px;transition:background .15s,color .15s;display:inline-block}.button:hover{background:var(--accent);border-color:var(--accent);color:var(--bg-deep)}.facts{border-top:1px dashed var(--line);gap:6px;margin:18px 0 0;padding-top:14px;display:grid}.facts div{grid-template-columns:90px 1fr;display:grid}.facts dt{color:var(--ink-dim)}.facts dd{margin:0}.contact-list{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.contact-list li{grid-template-columns:90px 1fr;display:grid}.contact-list a{overflow-wrap:anywhere}.contact-list a:hover{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px}.project-list{gap:14px;margin:0;padding:0;list-style:none;display:grid}.project{border:1px solid var(--line);padding:14px 16px}.project h2{font-family:var(--font-display);text-transform:uppercase;margin:0 0 4px;font-size:16px}.project p{margin:0 0 10px}.chips{flex-wrap:wrap;gap:6px;margin:0 0 10px;padding:0;list-style:none;display:flex}.chips li{border:1px solid var(--line);padding:0 8px;font-size:11px}.project-links{gap:16px;font-size:12px;display:flex}.project-links a:hover{text-decoration:underline}.reticle{z-index:40;pointer-events:none;opacity:0;transition:opacity .2s;position:fixed;inset:0}.reticle[data-active=true]{opacity:1}.reticle-h,.reticle-v{position:absolute;top:0;left:0}.reticle-h{height:1px;transform:translateY(var(--y,-10px));background:repeating-linear-gradient(90deg,#ffffff73 0 5px,#0000 5px 10px);right:0}.reticle-v{width:1px;transform:translateX(var(--x,-10px));background:repeating-linear-gradient(#ffffff73 0 5px,#0000 5px 10px);bottom:0}.reticle-readout{transform:translate(calc(var(--x,0px) + 16px), calc(var(--y,0px) + 18px));background:var(--accent);color:var(--bg-deep);font-family:var(--font-pixel);white-space:nowrap;padding:1px 6px;font-size:10px;position:absolute;top:0;left:0}.wipe{z-index:60;pointer-events:none;flex-direction:column;display:flex;position:fixed;inset:0}.wipe span{background:repeating-linear-gradient(-45deg, var(--bg-deep) 0 2px, transparent 2px 7px), var(--accent);flex:1;animation:.56s steps(10,end) forwards wipe;transform:translate(-101%)}@keyframes wipe{0%{transform:translate(-101%)}45%,55%{transform:translate(0)}to{transform:translate(101%)}}@media (pointer:coarse){.reticle{display:none}}@media (max-width:760px){:root{--cell:56px;--notch:14px}.topbar{flex-direction:column}.topbar-right{width:100%}.updates{flex:1;width:auto}.main{justify-content:flex-start;padding-top:26dvh}.bottombar{flex-direction:column;align-items:flex-start}.dial{left:-70vmin}.panel-body{max-height:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.wipe{display:none}}
