@font-face{font-family:"3270 Nerd Font Mono";src:url(/fonts/3270-regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{color-scheme:dark;--bg:#000;--bg-elevated:#000;--text:#fff;--text-muted:#fff;--accent:#0f7;--accent-hover:#2f9;--border:#fff;--link:#0f7;--font-sans:"3270 Nerd Font Mono", ui-monospace, monospace;--font-mono:"3270 Nerd Font Mono", ui-monospace, monospace;--max-width:42rem;--space:1rem;--radius:0;--text-xs:.75rem;--text-base:1rem;--text-lg:1.5rem;--text-xl:2rem}*,:before,:after{box-sizing:border-box;border-radius:0}html{font-family:var(--font-sans);font-size:var(--text-base);background:var(--bg);color:var(--text);line-height:1}body{min-height:100vh;margin:0}a{color:var(--link);text-underline-offset:.15em;text-decoration-thickness:1px}a:hover{color:var(--accent-hover)}img{max-width:100%;height:auto}.site-header{background:var(--bg)}.site-header__inner{max-width:calc(var(--max-width) + 2 * var(--space));justify-content:space-between;align-items:center;gap:var(--space);flex-wrap:wrap;margin:0 auto;padding:1rem;display:flex}.site-title{min-width:calc(var(--morph-max-ch,0) * 1ch);font-family:var(--font-sans);font-size:var(--text-base);color:var(--text);white-space:nowrap;font-weight:600;text-decoration:none;display:inline-block}.site-title :where(.site-title__text,.morph-stage,.morph-char){font-family:inherit}.site-title:hover{color:var(--accent)}.site-nav{font-size:var(--text-xs);gap:1.25rem;display:flex}.site-nav a{color:var(--text-muted);text-decoration:none}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--text)}main{max-width:calc(var(--max-width) + 2 * var(--space));margin:0 auto;padding:1rem}.site-footer{max-width:calc(var(--max-width) + 2 * var(--space));font-size:var(--text-xs);color:var(--text-muted);margin:0 auto;padding:1rem}.hero h1{font-size:var(--text-xl);margin:0 0 1rem;font-weight:600}.site-title__text,.morph-stage{white-space:pre;display:inline}.morph-char{transition:opacity .2s,transform .2s;display:inline}.morph-char--space{min-width:.35em;display:inline-block}.morph-char--digit,.morph-char--merge-in{display:inline-block}.morph-char--merge-in{animation:.2s forwards morph-merge-in}.morph-char--merge-out{animation:.2s forwards morph-merge-out}@keyframes morph-merge-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes morph-merge-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.4)}}@media (prefers-reduced-motion:reduce){.morph-char--merge-in,.morph-char--merge-out{animation:none}.morph-char{transition:none}}.hero .tagline{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--accent);margin:0 0 1rem}.hero .bio{color:var(--text-muted);max-width:36rem;margin:0 0 1rem}.profile-links{font-size:var(--text-xs);flex-wrap:wrap;gap:.75rem 1.25rem;display:flex}.section-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:1rem 0;font-weight:600}.tool-grid{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}@keyframes tool-card-neon-on{0%{border-color:var(--border);background:var(--bg-elevated)}8%{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 32%, #000)}16%{border-color:var(--border);background:var(--bg-elevated)}24%{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 20%, #000)}32%{border-color:var(--border);background:#000}42%{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 26%, #000)}54%{border-color:var(--border);background:var(--bg-elevated)}to{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, #000)}}@keyframes tool-card-neon-text{0%,16%,32%,54%{opacity:1}8%,24%,42%{opacity:.15}to{opacity:1}}@keyframes tool-card-desc-neon{0%,12%,24%,40%{color:var(--text-muted)}6%,18%,32%{color:var(--accent);opacity:.25}52%{color:var(--accent);opacity:.7}to{color:var(--accent);opacity:1}}.tool-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);corner-shape:bevel;color:inherit;text-transform:uppercase;border-top-right-radius:2rem;padding:1rem;font-size:2rem;text-decoration:none;transition:border-color .15s,background .15s;display:block}.tool-grid li:hover .tool-card,.tool-card:hover{transition:none;animation:.2s step-end forwards tool-card-neon-on}.tool-grid li:hover .tool-card :where(.tool-card__title,.tool-card__desc),.tool-card:hover :where(.tool-card__title,.tool-card__desc){animation:.2s step-end forwards tool-card-neon-text}.tool-grid li:hover .tool-card .tool-card__desc,.tool-card:hover .tool-card__desc{animation:.2s step-end forwards tool-card-neon-text,.2s step-end forwards tool-card-desc-neon}.tool-card__title{text-transform:uppercase;margin:0 0 1rem;font-size:2rem;font-weight:600}.tool-card__desc{font-size:var(--text-xs);color:var(--text-muted);margin:0}.tool-card__meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);margin-top:1rem}.post-list{margin:0;padding:0;list-style:none}.post-list li{border-bottom:1px solid var(--border);padding:1rem 0}.post-list a{color:var(--text);font-weight:500;text-decoration:none}.post-list time{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.prose{max-width:36rem}.prose h1{font-size:var(--text-xl);margin-top:0}.prose :where(h2,h3){margin-top:1rem}.empty-state{color:var(--text-muted);font-size:var(--text-base)}.page-intro h1{font-size:var(--text-xl);margin:0 0 1rem;font-weight:600}.page-intro__desc{color:var(--text-muted);font-size:var(--text-xs);max-width:36rem;margin:0 0 1rem}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.card__title{margin:0 0 1rem;font-weight:600}button,input,select,textarea{font-family:inherit}.btn{border-radius:var(--radius);font-size:var(--text-base);cursor:pointer;border:none;justify-content:center;align-items:center;gap:.5rem;margin-top:1rem;margin-right:1rem;padding:1rem;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn:disabled{opacity:.38;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);color:#000;font-weight:600}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{color:var(--text);border:1px solid var(--border);background:0 0}.btn-small{font-size:var(--text-xs);padding:1rem}.hidden{display:none!important}
