.spotify-corner[data-astro-cid-fmbr5nvf]{z-index:1000;width:400px;max-width:calc(100vw - 2rem);box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border:none;transition:width .25s,opacity .25s;position:fixed;bottom:1.25rem;right:1.25rem;overflow:hidden}.spotify-bar[data-astro-cid-fmbr5nvf]{font-family:var(--font-mono);user-select:none;background:0 0;justify-content:space-between;align-items:center;padding:.25rem .5rem;font-size:.72rem;display:flex}.spotify-tag[data-astro-cid-fmbr5nvf]{color:var(--green);font-weight:500}.spotify-toggle-btn[data-astro-cid-fmbr5nvf]{color:var(--subtext0);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:.1rem .3rem;font-size:.7rem;transition:color .15s}.spotify-toggle-btn[data-astro-cid-fmbr5nvf]:hover{color:var(--peach)}.spotify-iframe-wrap[data-astro-cid-fmbr5nvf]{background:0 0;height:352px;transition:height .25s}.spotify-corner[data-astro-cid-fmbr5nvf].minimized{background:#181825d9;border:1px solid #694;border-radius:20px;width:auto}.spotify-corner[data-astro-cid-fmbr5nvf].minimized .spotify-iframe-wrap[data-astro-cid-fmbr5nvf]{opacity:0;height:0;overflow:hidden}.spotify-corner[data-astro-cid-fmbr5nvf].minimized .spotify-bar[data-astro-cid-fmbr5nvf]{padding:.4rem .85rem}@media (width<=600px){.spotify-corner[data-astro-cid-fmbr5nvf]{width:calc(100vw - 1.5rem);bottom:.75rem;right:.75rem}}:root{--base:#1e1e2e;--mantle:#181825;--surface0:#313244;--surface1:#45475a;--text:#cdd6f4;--subtext0:#a6adc8;--subtext1:#bac2de;--green:#a6e3a1;--teal:#78c9b9;--lavender:#cba6f7;--blue:#89b4fa;--pink:#f5c2e7;--peach:#fab387;--red:#f38ba8;--border-color:#78c9b9;--content-width:700px;--font-mono:"JetBrains Mono", "Fira Code", "SF Mono", "Cascadia Code", "Consolas", "Liberation Mono", "Courier New", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-mono);color:var(--text);background-color:var(--base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;justify-content:center;align-items:flex-start;min-height:100vh;padding:1.5rem 1rem;font-size:.925rem;line-height:1.7;display:flex}.skip-to-content{background:var(--surface0);color:var(--green);z-index:9999;border:1px solid #694;border-radius:4px;padding:.5rem 1rem;font-size:.82rem;text-decoration:none;position:absolute;top:-9999px;left:1rem}.skip-to-content:focus{top:1rem}.site-frame{width:100%;max-width:var(--content-width);background-color:#0000;border:none;flex-direction:column;min-height:100vh;padding:1rem 0;display:flex}.content{flex:1;padding:1rem 0}h1,h2,h3,h4{color:var(--text);letter-spacing:.02em;font-weight:500}h1{margin-bottom:1rem;font-size:1.3rem}h2{color:var(--green);margin-top:2rem;margin-bottom:.75rem;font-size:1.1rem}h3{color:var(--subtext1);margin-top:1.5rem;margin-bottom:.5rem;font-size:.95rem}p{color:var(--subtext0);margin-bottom:1rem}a{color:var(--blue);text-underline-offset:3px;text-decoration:none;transition:color .15s,text-decoration-color .15s}a:hover{color:var(--lavender);text-decoration:underline;text-decoration-color:var(--lavender)}a:focus-visible{outline:2px solid var(--teal);outline-offset:2px;border-radius:2px}ul,ol{color:var(--subtext0);margin-bottom:1rem;padding-left:1.25rem}li{margin-bottom:.35rem}li::marker{color:var(--surface1)}hr{border:none;margin:1.5rem 0}code{font-family:var(--font-mono);background:var(--mantle);color:var(--peach);border-radius:3px;padding:.15em .4em;font-size:.85em}pre{font-family:var(--font-mono);border:1px solid #694;margin:0;padding:8px 12px;overflow-x:auto}.nav{flex-wrap:wrap;gap:.15rem;margin-bottom:1.5rem;padding-bottom:.5rem;font-size:.8rem;font-style:italic;display:flex}.nav a{color:var(--subtext0);border-radius:2px;padding:.15rem .3rem;text-decoration:none;transition:color .2s,background-color .2s}.nav a:hover{color:var(--pink);text-decoration:none}.nav a.active{color:var(--green);text-shadow:0 0 10px #a6e3a166}.nav a:focus-visible{outline:2px solid var(--teal);outline-offset:1px}.nav-sep{color:var(--surface1);user-select:none}.footer{color:var(--surface1);text-align:center;margin-top:2rem;padding-top:1rem;font-size:.75rem}.ascii-logo-container{text-align:center;border:1px solid #694;margin:0 0 1.5rem;padding:1rem 1.25rem;animation:.8s ease-out fadeIn;overflow-x:auto}.ascii-logo{font-family:var(--font-mono);color:var(--text);white-space:pre;user-select:none;border:none;margin:0;padding:0;font-size:.65rem;line-height:1.1;display:inline-block}.terminal-prompt{color:var(--green);margin:1.5rem 0 .5rem;font-size:.85rem}.cursor{background-color:var(--green);vertical-align:text-bottom;width:.55em;height:1.1em;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}.project-list{padding-left:0;list-style:none}.project-list li{flex-wrap:wrap;align-items:baseline;gap:.5rem;padding:.35rem 0;display:flex}.project-name{color:var(--blue);font-weight:500;text-decoration:none;transition:color .15s}.project-name:hover{color:var(--lavender);text-decoration:underline}.project-desc{color:var(--subtext0);font-size:.82rem}.project-status{color:var(--subtext1);background:var(--surface0);white-space:nowrap;border-radius:2px;padding:.1rem .45rem;font-size:.72rem}.project-status.active{color:var(--green);background:#a6e3a126}.project-status.in-progress{color:var(--peach);background:#fab38726}.project-status.completed{color:var(--blue);background:#89b4fa26}.project-status.experimental{color:var(--lavender);background:#cba6f726}.category-header{color:var(--teal);letter-spacing:.04em;margin-top:1.5rem;margin-bottom:.5rem;font-size:.82rem;font-weight:500}.category-header:first-of-type{margin-top:.5rem}.tech-tags{flex-wrap:wrap;gap:.35rem;margin:.5rem 0 1rem;padding:0;list-style:none;display:flex}.tech-tag{color:var(--subtext0);background:var(--surface0);border-radius:2px;padding:.15rem .5rem;font-size:.7rem}.social-list{padding:0;list-style:none}.social-list li{align-items:baseline;gap:1rem;padding:.4rem 0;display:flex}.social-label{color:var(--subtext0);min-width:5.5rem;font-size:.82rem}.intro-text{color:var(--subtext0);line-height:1.8}.back-link{color:var(--subtext0);margin-top:2rem;font-size:.82rem;display:inline-block}.back-link:hover{color:var(--blue)}.error-code{color:var(--surface1);margin-bottom:.5rem;font-size:2.5rem;font-weight:700}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{50%{opacity:0}}.animate-in{animation:.4s ease-out slideUp}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=768px){body{background-color:var(--base);padding:0}.site-frame{border:none;min-height:100vh;padding:1.5rem 1.25rem}.ascii-logo-container{padding:1rem .75rem}.ascii-logo{font-size:.5rem}}@media (width<=480px){body{font-size:.875rem}.site-frame{padding:1rem}h1{font-size:1.15rem}h2{font-size:1rem}.nav{font-size:.75rem}.ascii-logo-container{padding:.75rem .5rem}.ascii-logo{font-size:.38rem}.project-list li{flex-direction:column;gap:.2rem}}.cli-box{background:var(--mantle);font-family:var(--font-mono);border:1px solid #694;border-radius:4px;margin:1.5rem 0 .5rem;padding:.75rem 1rem;font-size:.8rem}.cli-title-bar{color:var(--surface1);user-select:none;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding-bottom:.35rem;font-size:.72rem;display:flex}.cli-title{color:var(--teal)}.cli-hint{color:var(--surface1);font-style:italic}.cli-history{flex-direction:column;gap:.4rem;margin-bottom:.25rem;display:flex}.cli-line-cmd{color:var(--teal)}.cli-line-out{color:var(--subtext0);white-space:pre-wrap;padding-left:.5rem;line-height:1.6}.cli-line-out a{color:var(--blue)}.cli-form{align-items:center;gap:.4rem;margin-top:.35rem;display:flex}.cli-prompt-label{color:var(--green);user-select:none;white-space:nowrap}.cli-input{color:var(--text);font-family:var(--font-mono);background:0 0;border:none;outline:none;flex:1;padding:0;font-size:.8rem}.cli-input::placeholder{color:var(--surface1);font-style:italic}.cli-input:focus-visible{outline:none}
