@font-face{font-family:Departure Mono;src:url(/fonts/DepartureMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--font-pixel: "Departure Mono", "JetBrains Mono", ui-monospace, monospace}:root,html[data-theme=gruvbox]{--bg: #282828;--bg-hard: #1d2021;--bg-soft: #32302f;--fg: #ebdbb2;--muted: #a89984;--faint: #665c54;--red: #fb4934;--green: #b8bb26;--yellow: #fabd2f;--blue: #83a598;--magenta: #d3869b;--cyan: #8ec07c;--orange: #fe8019}html[data-theme=nord]{--bg: #2e3440;--bg-hard: #272c36;--bg-soft: #3b4252;--fg: #d8dee9;--muted: #9fb0cb;--faint: #4c566a;--red: #bf616a;--green: #a3be8c;--yellow: #ebcb8b;--blue: #81a1c1;--magenta: #b48ead;--cyan: #88c0d0;--orange: #d08770}html[data-theme=catppuccin]{--bg: #1e1e2e;--bg-hard: #181825;--bg-soft: #313244;--fg: #cdd6f4;--muted: #a6adc8;--faint: #585b70;--red: #f38ba8;--green: #a6e3a1;--yellow: #f9e2af;--blue: #89b4fa;--magenta: #cba6f7;--cyan: #94e2d5;--orange: #fab387}html[data-theme=tokyonight]{--bg: #1a1b26;--bg-hard: #16161e;--bg-soft: #292e42;--fg: #c0caf5;--muted: #a9b1d6;--faint: #565f89;--red: #f7768e;--green: #9ece6a;--yellow: #e0af68;--blue: #7aa2f7;--magenta: #bb9af7;--cyan: #7dcfff;--orange: #ff9e64}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:JetBrains Mono,ui-monospace,monospace;font-size:14px;line-height:1.7;background:var(--bg);color:var(--fg);transition:background .25s,color .25s;-webkit-font-smoothing:antialiased}.titlebar,.ps1,.live-row,.ff pre.logo,.ff .info,.readme .title,.readme h2,.readme h3,.proj-head .name,.back,.tmux{font-family:var(--font-pixel);font-synthesis:none}a{color:inherit;text-decoration:none}button{font:inherit;border:0;background:none;color:inherit;cursor:pointer}img{display:block;max-width:100%;height:auto}::selection{background:var(--faint);color:var(--fg)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg-hard)}::-webkit-scrollbar-thumb{background:var(--faint);border:2px solid var(--bg-hard);border-radius:5px}.term{min-height:100vh;display:flex;flex-direction:column;background:var(--bg);transition:background .25s}.titlebar{display:flex;align-items:center;gap:.6rem;padding:.5rem .9rem;background:var(--bg-hard);border-bottom:1px solid var(--bg-soft);font-size:.78rem;color:var(--muted);position:sticky;top:0;z-index:10}.titlebar .dots{display:flex;gap:.4rem}.titlebar .dots span{width:11px;height:11px;border-radius:50%}.titlebar .dots span:nth-child(1){background:var(--red)}.titlebar .dots span:nth-child(2){background:var(--yellow)}.titlebar .dots span:nth-child(3){background:var(--green)}.titlebar .title{flex:1;text-align:center}.titlebar .size{color:var(--faint);font-size:.7rem}.scroll{flex:1;display:flex;flex-direction:column;padding:1.4rem clamp(.9rem,3vw,2.2rem) 2.5rem}.scroll>*{flex:none}#b-live{margin-top:auto;margin-bottom:0;padding:.8rem 0;border-top:1px dashed var(--faint);border-bottom:1px dashed var(--faint)}.block{margin-bottom:2.2rem}.ps1{white-space:nowrap;overflow-x:auto}.ps1 .u{color:var(--green);font-weight:700}.ps1 .at{color:var(--muted)}.ps1 .h{color:var(--green);font-weight:700}.ps1 .colon{color:var(--fg)}.ps1 .dir{color:var(--blue);font-weight:700}.ps1 .dollar{color:var(--fg);margin-right:.55rem}.ps1 .cmd{color:var(--fg)}.caret{display:inline-block;width:.55em;height:1.15em;background:var(--fg);vertical-align:text-bottom;margin-left:1px;animation:blink 1.05s steps(1) infinite}@keyframes blink{50%{opacity:0}}.block.done>.ps1 .caret{display:none}.out{margin-top:.5rem;opacity:0;transform:translateY(6px);transition:opacity .45s ease,transform .45s ease}.block.done>.out{opacity:1;transform:none}.ff{display:flex;gap:clamp(1.2rem,4vw,3rem);align-items:flex-start;flex-wrap:wrap}.ff pre.logo{color:var(--yellow);font-size:clamp(.55rem,1.6vw,.85rem);line-height:1.25;font-weight:700}.ff .info{font-size:.85rem;min-width:260px}.ff .info .id{color:var(--green);font-weight:700}.ff .info .sep{color:var(--faint)}.ff .info .k{color:var(--yellow);font-weight:700}.ff .info .v{color:var(--fg)}.ff .info .v a{color:var(--blue)}.ff .info .v a:hover{text-decoration:underline}.ff .info .dim{color:var(--faint)}.palette{display:flex;margin-top:.7rem}.palette span{width:1.7em;height:1.05em}.ls-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.15rem 1.5rem;font-size:.9rem}.ls-grid a{color:var(--blue);font-weight:700}.ls-grid a:after{content:"/";color:var(--fg);font-weight:400}.ls-grid a:hover{background:var(--bg-soft)}.ls-grid .file,.ls-grid a.file{color:var(--fg);font-weight:400}.ls-grid a.file:after{content:""}.proj{padding:.9rem 0;border-bottom:1px dashed var(--faint)}.proj:last-child{border-bottom:0}.proj-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem 1rem}.proj-head .idx{color:var(--faint)}.proj-head .name{color:var(--magenta);font-weight:700;font-size:1rem}a.name:hover{text-decoration:underline}.proj-head .year{color:var(--faint);font-size:.8rem}.proj-head .stack{color:var(--cyan);font-size:.8rem}.proj-desc{color:var(--muted);font-size:.85rem;max-width:62em;margin-top:.15rem}.proj-links{font-size:.8rem;margin-top:.25rem;color:var(--faint)}.proj-links a{color:var(--blue)}.proj-links a:hover{text-decoration:underline}.readme{max-width:66em;font-size:.88rem}.readme .title{color:var(--orange);font-weight:700;font-size:1.05rem;margin-bottom:.35rem}.readme .title:before{content:"# ";color:var(--faint)}.readme .meta{color:var(--faint);font-size:.8rem;margin-bottom:.9rem}.readme .meta a{color:var(--blue)}.readme .meta a:hover{text-decoration:underline}.readme h2{color:var(--yellow);font-weight:700;font-size:.95rem;margin:1.2rem 0 .3rem}.readme h2:before{content:"## ";color:var(--faint)}.readme h3{color:var(--yellow);font-weight:700;font-size:.88rem;margin:1rem 0 .25rem}.readme h3:before{content:"### ";color:var(--faint)}.readme p{color:var(--muted);margin-bottom:.7rem}.readme p strong,.readme p b{color:var(--fg);font-weight:500}.readme ul,.readme ol{list-style:none;margin-bottom:.7rem}.readme li{color:var(--muted);padding-left:1.2em;position:relative}.readme li:before{content:"*";position:absolute;left:.2em;color:var(--green)}.readme ol{counter-reset:li}.readme ol li{counter-increment:li}.readme ol li:before{content:counter(li) ".";color:var(--green)}.readme code{color:var(--cyan);background:var(--bg-soft);padding:0 .35em;border-radius:3px;font-size:.92em}.readme pre{background:var(--bg-hard);border:1px solid var(--bg-soft);padding:.8rem 1rem;overflow-x:auto;margin-bottom:.7rem;border-radius:4px}.readme pre code{background:none;padding:0}.readme a{color:var(--blue)}.readme a:hover{text-decoration:underline}.readme blockquote{border-left:2px solid var(--faint);padding-left:1rem;color:var(--faint);margin-bottom:.7rem}.back{color:var(--blue);font-size:.85rem}.back:hover{text-decoration:underline}.back:before{content:"cd ";color:var(--muted)}.contact-row{font-size:.9rem}.contact-row .proto{color:var(--faint)}.contact-row a{color:var(--blue)}.contact-row a:hover{text-decoration:underline}.contact-row .ok{color:var(--green)}.live-out{font-size:.85rem;color:var(--muted);white-space:pre-wrap;word-break:break-word}.live-out .ok{color:var(--green)}.live-out .err{color:var(--red)}.live-out .b{color:var(--blue)}.live-out .m{color:var(--magenta)}.live-out .p{color:var(--green);font-weight:700}.live-out .dim{color:var(--faint)}.live-out a.b:hover{text-decoration:underline}.live-row{display:flex;align-items:baseline}.live-input{flex:1;min-width:0;background:transparent;border:0;outline:0;font:inherit;color:var(--fg);caret-color:var(--fg)}.tmux{position:sticky;bottom:0;z-index:10;display:flex;align-items:center;background:var(--bg-hard);border-top:1px solid var(--bg-soft);font-size:.74rem;padding:.3rem .6rem;overflow-x:auto;white-space:nowrap}.tmux .sess{background:var(--green);color:var(--bg-hard);font-weight:700;padding:.05rem .55rem;margin-right:.7rem}.tmux .win{color:var(--muted);padding:.05rem .5rem}.tmux .win:hover{color:var(--fg);background:var(--bg-soft)}.tmux .win[aria-current=page]{color:var(--yellow);font-weight:700}.tmux .win .n{color:var(--faint);margin-right:.25rem}.tmux .right{margin-left:auto;display:flex;gap:1rem;color:var(--muted);padding-left:1rem}.tmux .right .host{color:var(--cyan)}.ps1 .u,.ps1 .h,.ps1 .dir,.ff pre.logo,.ff .info .id,.ff .info .k,.readme .title,.readme h2,.readme h3,.proj-head .name,.tmux .sess,.tmux .win[aria-current=page]{font-weight:400}@media(prefers-reduced-motion:reduce){.out{opacity:1;transform:none;transition:none}.caret{animation:none}}
