:root{--crust:#11111b;--mantle:#181825;--base:#1e1e2e;--surface0:#313244;--surface1:#45475a;--surface2:#585b70;--overlay0:#6c7086;--overlay1:#7f849c;--text:#cdd6f4;--subtext:#a6adc8;--green:#a6e3a1;--teal:#94e2d5;--sky:#89dceb;--sapphire:#74c7ec;--blue:#89b4fa;--lavender:#b4befe;--mauve:#cba6f7;--pink:#f5c2e7;--peach:#fab387;--yellow:#f9e2af;--red:#f38ba8;--mono:ui-monospace, 'Cascadia Code', 'JetBrains Mono', 'Source Code Pro',
          Menlo, Consolas, 'DejaVu Sans Mono', monospace;--measure:74ch}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;background:var(--crust);color:var(--text);font-family:var(--mono);-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{min-height:100vh;line-height:1.65;padding:1.5rem;display:flex;justify-content:center}.scanlines{position:fixed;inset:0;z-index:9999;pointer-events:none;background:repeating-linear-gradient( to bottom,transparent 0,transparent 3px,rgba(0,0,0,6%) 3px,rgba(0,0,0,6%) 4px)}#bg-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:0;display:block;pointer-events:none;will-change:transform;transform:translateZ(0)}#loader{display:none}html.booting #loader{display:flex;position:fixed;inset:0;z-index:9998;align-items:center;justify-content:center;padding:1.5rem;background:rgba(17,17,27,.94);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}#loader.fade-out{opacity:0;transition:opacity .48s ease}#loader-inner{width:min(680px,100%);font-size:.82rem;line-height:1.5;color:var(--subtext)}#loader-logo{color:var(--mauve);font-size:clamp(.5rem,2.2vw,.82rem);line-height:1.15;white-space:pre;overflow-x:auto;margin-bottom:.6rem}#loader-tagline{color:var(--overlay1);margin-bottom:1rem}#loader-lines{color:var(--green);white-space:pre-wrap;word-break:break-word;min-height:11em;margin-bottom:.6rem}#loader-progress{color:var(--sapphire)}#loader-bar{color:var(--mauve)}#loader-pct{color:var(--text)}#loader-done{color:var(--green);margin-top:.9rem;opacity:0}#loader-done.show{opacity:1}@media(prefers-reduced-motion:reduce){html.booting #loader{display:none}}.terminal-window{position:relative;z-index:1;width:min(1200px,100%);margin:0 auto;display:flex;flex-direction:column;min-height:calc(100vh - 3rem);min-height:calc(100dvh - 3rem);background:rgba(30,30,46,.88);border:1px solid var(--surface1);border-radius:10px;box-shadow:0 0 0 1px var(--surface0),0 12px 48px rgba(0,0,0,.55);overflow:hidden;animation:rainbow-border 16s linear infinite}@media(prefers-reduced-motion:reduce){.terminal-window{animation:none}}@keyframes rainbow-border{0%{border-color:var(--sapphire)}17%{border-color:var(--mauve)}33%{border-color:var(--pink)}50%{border-color:var(--peach)}67%{border-color:var(--yellow)}83%{border-color:var(--green)}100%{border-color:var(--sapphire)}}.terminal-titlebar{background:var(--mantle);padding:.7rem 1rem;display:flex;align-items:center;gap:.7rem;border-bottom:1px solid var(--surface0);user-select:none}.terminal-dots{display:flex;gap:6px}.dot{width:12px;height:12px;border-radius:50%}.dot-red{background:var(--red)}.dot-yellow{background:var(--yellow)}.dot-green{background:var(--green)}.terminal-title{flex:1;text-align:center;font-size:.82rem;color:var(--overlay1)}.prompt-nav{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;padding:.8rem 1.4rem;font-size:.85rem;border-bottom:1px dashed var(--surface0);background:rgba(17,17,27,.4)}.prompt-user{color:var(--green)}.prompt-at{color:var(--overlay0)}.prompt-host{color:var(--teal)}.prompt-sep{color:var(--overlay0)}.prompt-dir{color:var(--blue)}.prompt-arrow{color:var(--mauve)}.prompt-cmd{color:var(--text)}.prompt-nav a{color:var(--sapphire);text-decoration:none}.prompt-nav a:hover{color:var(--text);text-decoration:underline}.prompt-nav .spacer{flex:1}.terminal-body{flex:1 0 auto;padding:1.6rem 1.6rem 2rem;display:flex;flex-direction:column;gap:1.6rem}a{color:var(--sapphire);text-decoration:none}a:hover{color:var(--blue);text-decoration:underline}::selection{background:var(--mauve);color:var(--crust)}.prompt-line{font-size:.9rem;color:var(--subtext)}.prompt-line .prompt-arrow{color:var(--mauve)}.prompt-line .prompt-cmd{color:var(--text)}.output-block{white-space:pre-wrap;font-size:.88rem;line-height:1.6}ul.posts{list-style:none;display:flex;flex-direction:column;gap:.55rem}.post-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:.1rem .8rem;padding:.3rem 0;border-bottom:1px solid rgba(69,71,90,.35)}.post-item time{color:var(--overlay0);font-size:.82rem;font-variant-numeric:tabular-nums;min-width:6em}.post-item>a{color:var(--text);font-size:.98rem}.post-item>a:hover{color:var(--sapphire)}.post-tags{display:inline-flex;flex-wrap:wrap;gap:.35rem}.tag-chip{font-size:.74rem;color:var(--chip,var(--mauve));border:1px solid var(--surface1);border-radius:4px;padding:.05em .5em;background:rgba(203,166,247,6%)}.tag-chip:hover{border-color:var(--chip,var(--mauve));color:var(--text);text-decoration:none}.tag-cloud{display:flex;flex-wrap:wrap;gap:.5rem}.tag-cloud .tag-chip{border-color:var(--chip,var(--surface1));background:0 0}.tag-cloud .tag-chip:hover{background:rgba(255,255,255,4%)}.tag-count{color:var(--overlay0)}.post{max-width:none}.post-cover{margin:0 0 1.6rem}.post-cover img{display:block;width:100%;max-width:100%;max-height:22rem;object-fit:cover;border-radius:10px;border:1px solid var(--surface0)}.post-cover figcaption{margin-top:.5rem;color:var(--overlay0);font-size:.82rem;text-align:center}.post-header{margin-bottom:1.4rem}.post-title{color:var(--mauve);font-size:1.6rem;line-height:1.25}.post-meta{color:var(--overlay0);font-size:.82rem;margin-top:.5rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.post-meta time{font-variant-numeric:tabular-nums}.post-content{color:var(--text)}.post-content>*+*{margin-top:1.05rem}.post-content h2{color:var(--sapphire);font-size:1.3rem;margin-top:2rem;padding-bottom:.25rem;border-bottom:1px solid var(--surface0)}.post-content h3{color:var(--teal);font-size:1.12rem;margin-top:1.6rem}.post-content h4{color:var(--green);font-size:1rem;margin-top:1.4rem}.post-content h2::before{content:"## ";color:var(--overlay0)}.post-content h3::before{content:"### ";color:var(--overlay0)}.post-content p,.post-content li{line-height:1.75;text-align:justify;-webkit-hyphens:auto;hyphens:auto}.post-content strong{color:var(--peach)}.post-content em{color:var(--yellow);font-style:italic}.post-content ul,.post-content ol{padding-left:1.5rem}.post-content li+li{margin-top:.3rem}.post-content li::marker{color:var(--mauve)}.post-content blockquote{border-left:3px solid var(--mauve);padding:.3rem 0 .3rem 1rem;color:var(--subtext);background:rgba(203,166,247,5%)}.post-content a{color:var(--sapphire);text-decoration:underline;text-decoration-color:var(--surface2);text-underline-offset:3px}.post-content a:hover{text-decoration-color:var(--sapphire)}.post-content code{font-family:var(--mono);font-size:.88em;background:var(--mantle);color:var(--peach);padding:.1em .4em;border-radius:4px;border:1px solid var(--surface0)}.post-content pre{background:var(--crust)!important;border:1px solid var(--surface0);border-radius:8px;padding:1rem 1.1rem;overflow-x:auto;font-size:.85rem;line-height:1.55}.post-content pre code{background:0 0;border:0;padding:0;color:inherit;font-size:1em}.post-content img{max-width:min(100%,46rem);height:auto;border-radius:8px;border:1px solid var(--surface0)}.post-content figure{margin:1.6rem 0;text-align:center}.post-content figure img{margin-inline:auto}.post-content figure figcaption{margin-top:.55rem;color:var(--overlay0);font-size:.82rem;font-style:italic}.post-content figure figcaption p{margin:0;text-align:center;hyphens:none}.post-content hr{border:0;border-top:1px dashed var(--surface1)}.post-content table{width:100%;border-collapse:collapse;font-size:.88rem;display:block;overflow-x:auto}.post-content th,.post-content td{border:1px solid var(--surface0);padding:.4rem .6rem;text-align:left}.post-content th{background:var(--mantle);color:var(--sapphire)}.post-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:2.2rem;padding-top:1rem;border-top:1px solid var(--surface0);font-size:.85rem}.home-content{color:var(--subtext);max-width:var(--measure)}.home-content>*+*{margin-top:.8rem}.home-content h1,.home-content h2{color:var(--text)}.home-content code{background:var(--mantle);color:var(--peach);padding:.1em .4em;border-radius:4px}section>.prompt-line{margin-bottom:.7rem}.fastfetch{display:flex;flex-wrap:wrap;align-items:flex-start;gap:1rem 2rem;font-size:.82rem;line-height:1.5;margin:.4rem 0 1.6rem}.ff-id{flex:none}.fastfetch .ff-fox,.fastfetch .ff-logo{white-space:pre;margin:0;overflow:visible;background:0 0!important;border:0;padding:0}.fastfetch .ff-fox{color:var(--peach);font-size:.72rem;line-height:1.05}.fastfetch .ff-logo{color:var(--mauve);font-size:.82rem;line-height:1.15;margin-top:.55rem}.ff-title{margin-top:.55rem;letter-spacing:.02em}.ff-user{color:var(--green)}.ff-at{color:var(--overlay0)}.ff-host{color:var(--teal)}.ff-rule{color:var(--overlay0);margin-top:.1rem}.ff-boxes{display:flex;flex-direction:column;gap:.7rem;min-width:0;flex:1 1 20rem}.ff-box{border:1px solid var(--surface1);border-radius:8px;padding:.3rem .9rem .55rem;margin:0}.ff-box legend{padding:0 .45rem;margin-left:.2rem;color:var(--mauve);font-size:.78rem}.ff-row{display:flex;gap:.8rem}.ff-row+.ff-row{margin-top:.04rem}.ff-key{color:var(--sapphire);min-width:5em;flex:none}.ff-val{color:var(--subtext);min-width:0}.ff-val a{color:var(--sapphire);text-decoration:underline;text-decoration-color:var(--surface2);text-underline-offset:2px}.ff-val a:hover{text-decoration-color:var(--sapphire)}.ff-palette{display:flex;margin-top:.1rem}.ff-palette span{width:1.05rem;height:1.05rem;display:block}.ff-palette span:first-child{border-radius:3px 0 0 3px}.ff-palette span:last-child{border-radius:0 3px 3px 0}.terminal-footer{border-top:1px solid var(--surface0);padding:1rem 1.6rem 1.4rem;font-size:.8rem;color:var(--overlay0);background:rgba(17,17,27,.4)}.footer-meta{margin-top:.5rem}.footer-meta a{color:var(--sapphire)}.footer-meta .heart{color:var(--red)}.cursor{display:inline-block;width:.55em;height:1.05em;background:var(--text);vertical-align:text-bottom;animation:blink 1.1s step-end infinite}@keyframes blink{50%{opacity:0}}@media(max-width:540px){html{font-size:15px}body{padding:.5rem}.terminal-window{min-height:calc(100dvh - 1rem)}.terminal-body{padding:1.1rem}.post-item time{min-width:auto;width:100%}}