@font-face{font-family:Vulf Sans;src:url(/fonts/Vulf_Sans-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Vulf Sans;src:url(/fonts/Vulf_Sans-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Vulf Sans;src:url(/fonts/Vulf_Sans-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--bg: #0a0a0a;--fg: #ededed;--muted: #666;--accent: hsla(358, 82%, 71%, 1);--error: #ff6b6b;--surface-1: rgba(255, 255, 255, .03);--surface-2: rgba(255, 255, 255, .05);--surface-3: rgba(255, 255, 255, .08);--surface-4: rgba(255, 255, 255, .1);--border: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .15);--gradient: linear-gradient( 135deg, hsla(55, 61%, 85%, 1) 0%, hsla(196, 79%, 79%, 1) 50%, hsla(358, 82%, 71%, 1) 100% );--font-heading: "Vulf Sans", ui-sans-serif, system-ui, sans-serif;--font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 2rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--radius-sm: 2px;--radius: 4px;--radius-lg: 6px}*,*:before,*:after{box-sizing:border-box}html{font-family:var(--font-body)}body{margin:0;background:var(--bg);color:var(--fg);min-height:100vh}#app{display:flex;flex-direction:column;min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700}a{color:var(--accent);text-decoration:none}a:hover{color:transparent;background:var(--gradient);background-clip:text;-webkit-background-clip:text}::selection{background:var(--accent);color:#000}code,pre,kbd,samp{font-family:var(--font-mono)}.card{padding:var(--space-4);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius)}.card--interactive{cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.card--interactive:hover{background:var(--surface-3);border-color:var(--accent);transform:translateY(-1px)}.card--interactive:active{transform:translateY(0)}.accent-border{border-left:3px solid var(--accent);border-radius:0 0 var(--radius-lg) 0}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius);font-family:var(--font-heading);font-weight:500;font-size:var(--text-sm);cursor:pointer;transition:opacity .15s,transform .1s}.btn:disabled{cursor:not-allowed;opacity:.5}.btn--primary{background:var(--accent);color:var(--bg)}.btn--primary:not(:disabled):hover{transform:translateY(-1px)}.btn--primary:not(:disabled):active{transform:translateY(0)}.btn--ghost{background:transparent;border:1px solid var(--border-strong);color:var(--muted)}.btn--ghost:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.input{padding:var(--space-2) var(--space-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--fg);font-family:inherit;font-size:var(--text-sm);transition:border-color .2s,box-shadow .2s}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #f2787c26}.text-muted{color:var(--muted)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.page{padding:var(--space-4);max-width:700px;margin:0 auto}.page--fullheight{display:flex;flex-direction:column;height:100vh}.ascii-banner{font-family:var(--font-mono);font-size:clamp(.35rem,1.2vw,.6rem);line-height:1.1;color:var(--accent);margin:0 0 var(--space-6) 0;overflow:hidden}.welcome-box{margin-bottom:var(--space-6);padding:var(--space-4);background:var(--surface-1);border-left:3px solid var(--accent);border-radius:0 0 var(--radius-lg) 0}.welcome-box h3{margin:0;color:var(--accent)}.welcome-box p{margin:var(--space-2) 0 0;color:var(--muted);font-size:var(--text-sm)}.section{margin-bottom:var(--space-8)}.section-heading{color:var(--muted);margin:0 0 var(--space-2) 0}.section-subtext{color:var(--muted);font-size:var(--text-sm);margin:0 0 var(--space-4) 0}.about h2{margin:0 0 var(--space-3) 0;font-size:var(--text-xl);color:var(--fg)}.about p{margin:var(--space-2) 0;color:var(--muted);line-height:1.6}.intro-text{color:var(--muted);line-height:1.6}.docs-grid{display:flex;gap:var(--space-4);flex-wrap:wrap}.projects-grid{display:grid;gap:var(--space-4)}.project-card{padding:var(--space-4);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;display:block;transition:background .15s,border-color .15s,transform .1s}.project-card:hover{background:var(--surface-3);border-color:var(--accent);transform:translateY(-1px);color:inherit}.project-card h5{margin:0 0 var(--space-2) 0;color:var(--fg);font-size:var(--text-base)}.project-card p{margin:0 0 var(--space-3) 0;color:var(--muted);font-size:var(--text-sm)}.tags{display:flex;gap:var(--space-3);flex-wrap:wrap}.tag{font-size:var(--text-xs);padding:var(--space-1) var(--space-2);background:var(--surface-4);border-radius:var(--radius-sm);color:var(--muted)}.actions{margin-top:var(--space-8);display:flex;flex-direction:column;gap:var(--space-4)}.actions h4{color:var(--muted);margin:0 0 var(--space-2) 0}.chat-link{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--accent);text-decoration:none;font-size:var(--text-sm)}.ssh-command{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius)}.ssh-command code{display:flex;align-items:center;gap:var(--space-2)}.ssh-command .prompt{color:var(--muted)}.ssh-command button{background:transparent;border:none;cursor:pointer;padding:var(--space-1);font-size:var(--text-base);line-height:1;color:var(--muted);transition:color .2s}.ssh-command button.copied{color:var(--accent)}.ssh-note{color:var(--muted);font-size:var(--text-xs);margin:0}.chat-header{margin-bottom:var(--space-6);display:flex;justify-content:space-between;align-items:flex-start}.chat-header h1{font-size:var(--text-lg);margin:0}.chat-messages{flex:1;overflow-y:auto;padding-right:var(--space-2)}.chat-empty{margin-top:var(--space-8)}.chat-empty h1{font-size:var(--text-lg);margin:0 0 var(--space-1) 0;color:var(--fg)}.chat-empty .subtitle{font-size:var(--text-xs);color:var(--muted);margin:0 0 var(--space-4) 0}.chat-empty p{color:var(--muted);line-height:1.6;font-size:var(--text-sm);margin:var(--space-2) 0}.chat-empty ul{color:var(--muted);padding-left:1.25rem;line-height:1.6;font-size:var(--text-sm);margin:var(--space-2) 0}@keyframes message-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-message{animation:message-in .25s ease-out;margin-bottom:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:0 0 var(--radius-lg) 0}.chat-message--user{background:var(--surface-2)}.chat-message--assistant{border-left:3px solid var(--accent)}.chat-message .role{font-size:.65rem;color:var(--muted);margin-bottom:var(--space-1);text-transform:uppercase;letter-spacing:.05em;font-family:var(--font-heading);font-weight:500}.chat-message .content{line-height:1.6;font-size:var(--text-sm);color:var(--muted)}.chat-message .content.user-text{white-space:pre-wrap;color:var(--fg)}@keyframes typing-pulse{0%,to{opacity:.4}50%{opacity:1}}.typing-indicator{color:var(--muted);animation:typing-pulse 1.2s ease-in-out infinite}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.chat-suggestions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.prompt-card{padding:var(--space-2) var(--space-3);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);color:var(--fg);font-size:var(--text-xs);cursor:pointer;text-align:left;font-family:inherit;animation:fade-in .3s ease-out;transition:background .15s,border-color .15s,transform .1s}.prompt-card:hover{background:var(--surface-3);border-color:var(--accent);transform:translateY(-1px)}.prompt-card:active{transform:translateY(0)}.prompt-card:disabled{cursor:not-allowed}.chat-form{display:flex;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--border)}.chat-input{flex:1}.chat-footer{margin-top:var(--space-4);text-align:center}.chat-footer a{font-size:var(--text-sm)}.schedule-form{padding:var(--space-3);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius)}.schedule-form--interactive{display:flex;flex-direction:column;gap:var(--space-3)}.schedule-form--inline{margin-top:var(--space-3)}.schedule-form .confirmation-title{margin:0;color:var(--accent);font-size:var(--text-sm);font-weight:500}.schedule-form .confirmation-detail{margin:var(--space-2) 0 0;font-size:var(--text-xs)}.schedule-form .confirmation-detail.fg{color:var(--fg)}.schedule-form .status{margin:0;font-size:var(--text-sm)}.schedule-form .status.error{color:var(--accent)}.schedule-form .fallback{margin:var(--space-2) 0 0;font-size:var(--text-xs);color:var(--muted)}.schedule-form label{font-size:var(--text-xs);color:var(--muted);display:block;margin-bottom:var(--space-2)}.schedule-form label .tz{opacity:.7}.schedule-form .options{display:flex;gap:var(--space-2);flex-wrap:wrap}.schedule-form .option{padding:var(--space-2);background:var(--surface-2);color:var(--fg);border:1px solid var(--border-strong);border-radius:var(--radius);font-size:var(--text-xs);cursor:pointer;font-family:inherit}.schedule-form .option.selected{background:var(--accent);color:var(--bg);border-color:var(--accent)}.schedule-form .no-slots{margin:0;font-size:var(--text-xs);color:var(--muted)}.schedule-form .contact{display:flex;gap:var(--space-2)}.schedule-form .contact input{flex:1}.schedule-form .input-error{margin:0;color:var(--error);font-size:var(--text-xs)}.project-page{padding:var(--space-6);max-width:720px;margin:0 auto}.project-page .back{display:inline-block;color:var(--muted);text-decoration:none;font-size:var(--text-sm);padding:var(--space-2) 0;margin-bottom:var(--space-4);transition:color .15s}.project-page .back:hover{color:var(--accent);background:none}.prose{line-height:1.6}.prose p{margin:0 0 .75em}.prose p:last-child{margin-bottom:0}.prose ul,.prose ol{margin:.5em 0;padding-left:1.25em}.prose li{margin:.25em 0}.prose code{background:var(--surface-4);padding:.15em .35em;border-radius:3px;font-size:.9em}.prose pre{background:var(--surface-2);padding:.75em 1em;border-radius:var(--radius);overflow-x:auto;margin:.75em 0}.prose pre code{background:none;padding:0}.prose strong{font-weight:600}.prose a{color:var(--accent)}.prose blockquote{border-left:3px solid var(--accent);margin:.75em 0;padding-left:1em;color:var(--muted)}.project-page .prose{line-height:1.7;color:var(--muted)}.project-page .prose h1{font-size:var(--text-2xl);color:var(--fg);margin:0 0 var(--space-6) 0;line-height:1.2}.project-page .prose h2{font-size:1.4rem;font-weight:600;color:var(--fg);margin:2.5rem 0 1rem;padding-top:1rem;border-top:1px solid var(--border)}.project-page .prose h3{font-size:1.15rem;font-weight:600;color:var(--fg);margin:1.75rem 0 .75rem}.project-page .prose h4{font-size:var(--text-base);font-weight:600;color:var(--fg);margin:var(--space-6) 0 var(--space-2) 0}.project-page .prose p{margin:var(--space-4) 0}.project-page .prose a{text-decoration:underline;text-underline-offset:2px}.project-page .prose a:hover{text-decoration:none;background:none;color:var(--accent)}.project-page .prose strong{color:var(--fg)}.project-page .prose ul,.project-page .prose ol{margin:var(--space-4) 0;padding-left:var(--space-6)}.project-page .prose li{margin:.4rem 0}.project-page .prose li>ul,.project-page .prose li>ol{margin:var(--space-1) 0}.project-page .prose blockquote{margin:var(--space-6) 0;padding:var(--space-3) var(--space-4);background:var(--surface-1);font-style:italic}.project-page .prose blockquote p{margin:var(--space-2) 0}.project-page .prose code{background:var(--surface-3);color:var(--fg)}.project-page .prose figure[data-rehype-pretty-code-figure]{margin:1.25rem 0}.project-page .prose pre{margin:0;padding:var(--space-4);background:#22272e;border:1px solid var(--border);border-radius:var(--radius-lg);font-size:.85rem;line-height:1.6}.project-page .prose pre code{background:none;color:inherit;font-size:inherit}.project-page .prose pre code span{font-family:var(--font-mono)}.project-page .prose figcaption[data-rehype-pretty-code-title]{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted);background:var(--surface-2);padding:var(--space-2) var(--space-4);border:1px solid var(--border);border-bottom:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.project-page .prose figcaption[data-rehype-pretty-code-title]+pre{border-top-left-radius:0;border-top-right-radius:0}.project-page .prose pre [data-highlighted-line]{background:var(--surface-3);margin:0 calc(-1 * var(--space-4));padding:0 var(--space-4);display:inline-block;width:calc(100% + var(--space-8))}.project-page .prose pre [data-highlighted-chars]{background:#ffc80033;padding:.15rem .25rem;border-radius:3px}.project-page .prose table{width:100%;margin:var(--space-6) 0;border-collapse:collapse;font-size:var(--text-sm)}.project-page .prose th,.project-page .prose td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.project-page .prose th{color:var(--fg);font-weight:600;background:var(--surface-1)}.project-page .prose tr:hover td{background:var(--surface-1)}.project-page .prose hr{margin:var(--space-8) 0;border:none;border-top:1px solid var(--border)}.project-page .prose img{max-width:100%;border-radius:var(--radius-lg);margin:var(--space-4) 0}.project-page .prose>h1:first-child,.project-page .prose>h2:first-child{border-top:none;padding-top:0;margin-top:0}
