:root{--bg:#04070b;--bg-panel:#070d14;--bg-raise:#0b151e;--line:#12303f;--line-strong:#1d5266;--fg:#c5dde6;--fg-dim:#7393a1;--fg-faint:#3d5866;--cyan:#3fe0ff;--violet:#cba6f7;--green:#7ef0a8;--amber:#ffc66d;--red:#ff6b7a;--accent:var(--cyan);--font:"JetBrains Mono", ui-monospace, "Cascadia Code", Consolas, "Liberation Mono", Menlo, monospace;--bar-h:2.25rem;--col:62rem}*,:before,:after{box-sizing:border-box}html{color-scheme:dark;scroll-behavior:smooth;scroll-padding-top:calc(var(--bar-h) + 1rem);-webkit-text-size-adjust:100%}body{min-height:100vh;padding:var(--bar-h) 0;background-color:var(--bg);color:var(--fg);font-family:var(--font);font-variant-ligatures:none;background-image:radial-gradient(80% 50% at 50% -10%,#3fe0ff17,#0000 70%),radial-gradient(#3fe0ff0e 1px,#0000 1px);background-size:100% 100%,22px 22px;background-attachment:fixed;margin:0;font-size:.9375rem;line-height:1.65;overflow-x:hidden}body:before,body:after{content:"";pointer-events:none;position:fixed;inset:0}body:before{z-index:90;background:repeating-linear-gradient(#00000029 0 1px,#0000 1px 3px)}body:after{z-index:89;background:radial-gradient(#0000 55%,#00000080 100%)}.waves{z-index:-1;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}::selection{background:var(--cyan);color:var(--bg)}a{color:var(--accent);text-decoration:none}a:hover{text-underline-offset:.2em;text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}img{max-width:100%}p{margin:0 0 1em}h1,h2,h3,h4{color:var(--accent);margin:0;font-size:1rem;font-weight:700;line-height:1.4}strong{color:#eaf8fc;font-weight:700}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}[data-es],[data-en]{transition:opacity .2s}.titlebar,.tmux{z-index:80;height:var(--bar-h);white-space:nowrap;align-items:center;gap:1ch;padding:0 1rem;font-size:.8125rem;display:flex;position:fixed;left:0;right:0}.titlebar{border-bottom:1px solid var(--line);backdrop-filter:blur(6px);background:#04070beb;top:0}.tb-mark{color:var(--cyan)}.tb-title{text-overflow:ellipsis;min-width:0;color:var(--fg-dim);flex:1;overflow:hidden}.tb-title b{color:var(--fg);font-weight:500}.lang-btn{font:inherit;color:var(--fg-dim);border:1px solid var(--line-strong);cursor:pointer;background:0 0;padding:.1rem .6rem}.lang-btn:hover{border-color:var(--accent)}.lang-btn [data-lang].on{color:var(--bg);background:var(--accent);padding:0 .4ch}.tmux{color:#9fd3e2;border-top:1px solid var(--line-strong);scrollbar-width:none;background:#0a2733;gap:0;padding:0;bottom:0;overflow-x:auto}.tmux::-webkit-scrollbar{display:none}.tmux-session{background:var(--cyan);color:var(--bg);align-self:stretch;align-items:center;padding:0 1.25ch;font-weight:700;display:flex}.tmux a{color:inherit;align-self:stretch;align-items:center;padding:0 1.25ch;display:flex}.tmux a:hover{background:#3fe0ff24;text-decoration:none}.tmux a[aria-current=page]{background:var(--bg);color:var(--cyan);font-weight:700}.tmux a[aria-current=page]:after{content:"*"}.tmux-right{color:var(--fg-dim);margin-left:auto;padding:0 1.25ch}.screen{max-width:var(--col);margin:0 auto;padding:2rem 1.25rem 3rem;position:relative}.block{margin-bottom:3rem}.prompt{overflow-wrap:anywhere;margin:0 0 1rem;font-size:.9375rem}.ps-user{color:var(--green)}.ps-path{color:var(--violet)}.ps-sign{color:var(--fg-dim);margin-right:1ch}.cmd{color:#eaf8fc}.caret{vertical-align:text-bottom;background:var(--cyan);width:1ch;height:1.15em;margin-left:1px;animation:1s step-end infinite blink;display:inline-block}.prompt .caret{display:none}.block.typing .prompt .caret{display:inline-block}.out{transition:opacity .35s,transform .35s}.block.pending .out{opacity:0;transform:translateY(6px)}@keyframes blink{50%{opacity:0}}.dim{color:var(--fg-dim)}.out>h2{margin-bottom:.5rem}.panel{border:1px solid var(--line-strong);background:#070d14e0;padding:1.4rem 1.25rem 1.2rem;position:relative}.panel[data-title]:before{content:"┤ " attr(data-title) " ├";z-index:1;background:var(--bg);color:var(--accent);padding:0 .25ch;font-size:.8125rem;line-height:1.6;position:absolute;top:-.8em;left:1rem}.panel>:last-child{margin-bottom:0}.btn-term{font:inherit;color:var(--accent);border:1px solid var(--accent);cursor:pointer;background:0 0;padding:.3rem .9rem;font-size:.875rem;transition:background .15s,color .15s;display:inline-block}.btn-term:hover,.btn-term.active{background:var(--accent);color:var(--bg);text-decoration:none}.ascii{font-family:var(--font);white-space:pre;user-select:none;margin:0;line-height:1.2}@font-face{font-family:A11 Box;src:url(/fonts/a11-box.woff2)format("woff2");font-display:block}.banner{font-family:"A11 Box", var(--font);color:#0000;background:linear-gradient(180deg, #d9f9ff 0%, var(--cyan) 45%, #1687a3 100%);filter:drop-shadow(0 0 10px #3fe0ff59);-webkit-background-clip:text;background-clip:text;font-size:clamp(5.5px,2.05vw,15px);animation:7s linear infinite flicker}@keyframes flicker{0%,91%,94%,to{opacity:1}92%{opacity:.72}93%{opacity:.95}}.tagline{color:var(--fg-dim);margin:.75rem 0 0}.tagline:before{content:"// ";color:var(--fg-faint)}.fetch{grid-template-columns:auto 1fr;align-items:center;gap:1.5rem 3ch;display:grid}.fetch-art{font-family:"Noto Sans Symbols 2", var(--font);letter-spacing:-.16em;color:#0000;background:linear-gradient(160deg, var(--cyan), var(--violet));-webkit-background-clip:text;background-clip:text;font-size:.75rem;line-height:1.18}.fetch-info{min-width:0}.fetch-info dl{margin:0}.fetch-head{color:var(--cyan);font-weight:700}.fetch-head span{color:var(--fg)}.fetch-rule{color:var(--fg-faint);white-space:nowrap;overflow:hidden}.fetch-row{gap:1ch;display:flex}.fetch-row dt{color:var(--cyan);flex-shrink:0;font-weight:700}.fetch-row dt:after{content:":";color:var(--fg-dim)}.fetch-row dd{min-width:0;margin:0}.swatches{margin-top:.9rem;display:flex}.swatches i{width:3ch;height:1.3em}.prose{max-width:78ch}.ls{margin:0;padding:0;list-style:none}.ls a{color:var(--fg);grid-template-columns:11ch 9ch 3ch 1fr;gap:0 1ch;padding:.2rem .5ch;display:grid}.ls a:hover{background:var(--bg-raise);text-decoration:none}.ls .perm{color:var(--fg-faint)}.ls .name{color:var(--cyan);font-weight:700}.ls .arrow{color:var(--fg-faint)}.ls .target{color:var(--fg-dim);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ls a:hover .target{color:var(--fg)}.commit{border-left:1px solid var(--line-strong);margin-left:.5ch;padding-left:2ch;position:relative}.commit:before{content:"*";color:var(--amber);background:var(--bg);line-height:1.65;position:absolute;top:-.1em;left:-.55ch}.commit-hash{color:var(--amber)}.commit-ref{color:var(--green)}.commit-meta{color:var(--fg-dim);margin:0}.commit h3{color:#eaf8fc;margin:1rem 0 .5rem;font-size:1.0625rem}.tree{margin:1.25rem 0 0;padding:0;list-style:none}.tree li{grid-template-columns:4ch 1fr;margin-bottom:.75rem;display:grid}.tree li:before{content:"├──";color:var(--fg-faint)}.tree li:last-child:before{content:"└──"}.tree h4{color:var(--cyan)}.tree p{color:var(--fg-dim);margin:0}.projects{grid-template-columns:repeat(auto-fit,minmax(16.5rem,1fr));gap:2rem 1.25rem;display:grid}.project{flex-direction:column;padding:0;transition:border-color .2s,box-shadow .2s;display:flex}.project:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 28px -8px var(--accent)}.project.is-violet{--accent:var(--violet)}.project-shot{aspect-ratio:4/3;border-bottom:1px solid var(--line-strong);background:#000;position:relative;overflow:hidden}.project-shot img{object-fit:cover;filter:saturate(.55)contrast(1.05)brightness(.85);width:100%;height:100%;transition:filter .3s;display:block}.project:hover .project-shot img{filter:none}.project-shot:after{content:"";pointer-events:none;background:repeating-linear-gradient(#04070b59 0 1px,#0000 1px 3px);position:absolute;inset:0}.project-body{flex-direction:column;flex:1;padding:1rem 1.1rem 1.1rem;display:flex}.project-body h3{font-size:1.0625rem}.project-body h3:before{content:"./";color:var(--fg-faint)}.project-body p{color:var(--fg);margin:.5rem 0 .9rem}.tags{color:var(--fg-dim);flex-wrap:wrap;gap:.25rem 1ch;margin:0 0 1.1rem;padding:0;font-size:.8125rem;list-style:none;display:flex}.tags li:before{content:"[";color:var(--fg-faint)}.tags li:after{content:"]";color:var(--fg-faint)}.project-body .btn-term{text-align:center;margin-top:auto}.units{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:.15rem 2ch;margin:0;padding:0;list-style:none;display:grid}.units li:before{content:"[  OK  ] ";color:var(--green);white-space:pre}.units li{color:var(--fg-dim)}.units b{color:var(--fg);font-weight:500}.media{gap:2rem;display:grid}.media .panel{padding:.6rem}.media .panel[data-title]{padding-top:1rem}.ratio{aspect-ratio:16/9;position:relative}.ratio>iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.media iframe{border:0;width:100%;display:block}.shell{cursor:text;min-height:9rem}.shell-log{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.shell-log .echo{color:#eaf8fc}.shell-log .err{color:var(--red)}.shell-line{align-items:baseline;margin:0;display:flex}.shell-line .ps1{flex-shrink:0}.shell-input{min-width:0;font:inherit;color:#eaf8fc;caret-color:var(--cyan);background:0 0;border:0;flex:1;padding:0}.shell-input:focus{outline:none}.shell:focus-within{border-color:var(--cyan)}.footer{color:var(--fg-faint);margin-top:4rem;font-size:.8125rem}.banner-sm{font-size:clamp(5.5px,2.4vw,13px)}.posts{grid-template-columns:minmax(0,1fr);gap:2.5rem;display:grid}.blog-post{--accent:var(--cyan)}.blog-post[data-color=info]{--accent:var(--green)}.blog-post[data-color=danger]{--accent:var(--red)}.blog-post[data-color=warning]{--accent:var(--amber)}.blog-post[data-color=success]{--accent:var(--green)}.post-title{font-size:1.25rem;line-height:1.35}.post-title:before{content:"# ";color:var(--fg-faint)}.post-date{color:var(--fg-dim);margin:.35rem 0 1.25rem;font-size:.8125rem}.post-date:before{content:"-rw-r--r--  angelus11  ";color:var(--fg-faint);white-space:pre}.post-body{overflow-wrap:break-word}.post-body>p,.post-body .collapse>p{max-width:82ch}.post-body a:not(.toggle-btn){color:var(--accent);text-underline-offset:.2em;text-decoration:underline}.toggle-btn{border:1px solid var(--accent);color:var(--accent);cursor:pointer;user-select:none;margin-bottom:1rem;padding:.3rem .9rem;font-size:.875rem;display:inline-block}.toggle-btn:hover{background:var(--accent);color:var(--bg);text-decoration:none}.toggle-btn:before{content:"[+] "}.toggle-btn[aria-expanded=true]:before{content:"[-] "}.toggle-btn i,.collapse:not(.show){display:none}.collapse.show{animation:.3s reveal}@keyframes reveal{0%{opacity:0;transform:translateY(-4px)}}.post-body figure{text-align:center;margin:1.5rem 0}.post-body img{border:1px solid var(--line-strong);height:auto;margin:.5rem 0 1rem}.video-frame{border:1px solid var(--line-strong);margin:1.5rem 0}.post-body pre,.post-body pre[class*=language-]{border:1px solid var(--line);border-left:2px solid var(--accent);white-space:pre-wrap;word-break:break-word;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;background:#020509;border-radius:0;max-height:70vh;margin:1.25rem 0;padding:1.1rem 1.25rem;overflow:auto}.post-body code,.post-body code[class*=language-]{font-family:var(--font);white-space:inherit;text-shadow:none;font-size:.8125rem;line-height:1.6}.advad-head{flex-wrap:wrap;align-items:center;gap:1rem 2rem;margin-bottom:1.5rem;display:flex}.game-logo{filter:drop-shadow(0 0 10px #3fe0ff80);width:min(18rem,60%);height:auto}.advad-links{flex-wrap:wrap;gap:.75rem;display:flex}.crt{border:1px solid var(--line-strong);box-shadow:0 0 40px -12px var(--cyan);background:#000;padding:.5rem}.source-switch{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.log-warn{border-left:2px solid var(--amber);color:var(--fg-dim);margin:1.25rem 0 0;padding-left:2ch;font-size:.875rem}.log-warn:before{content:"warn: ";color:var(--amber);font-weight:700}@media (width<=640px){body{font-size:.875rem}.screen{padding:1.5rem 1rem 2.5rem}.ps-host{display:none}.fetch{grid-template-columns:1fr}.fetch-art{justify-self:start;font-size:.6875rem}.ls a{grid-template-columns:9ch 3ch 1fr}.ls .perm{display:none}.post-date:before{content:""}.tmux-right{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
