:root{--bg: #05070a;--window: #0d1117;--panel: #161b22;--border: #21262d;--border-bright: #30363d;--fg: #c9d1d9;--muted: #8b949e;--dim: #6e7681;--green: #3fb950;--green-bright: #7ee787;--cyan: #56d4dd;--blue: #58a6ff;--yellow: #d29922;--purple: #bc8cff;--red: #ff7b72;--orange: #ffa657;--tl-red: #ff5f56;--tl-yellow: #ffbd2e;--tl-green: #27c93f;--prompt: var(--green-bright);--accent: var(--green);--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", "Cascadia Code", Menlo, Monaco, Consolas, "Liberation Mono", monospace;--radius: 10px;--maxw: 820px}*{box-sizing:border-box}html{color-scheme:dark;scrollbar-color:var(--border-bright) transparent}body{margin:0;min-height:100vh;background-color:var(--bg);background-image:radial-gradient(120% 120% at 50% 0%,rgba(63,185,80,.06),transparent 60%),repeating-linear-gradient(to bottom,rgba(255,255,255,.012) 0px,rgba(255,255,255,.012) 1px,transparent 1px,transparent 3px);color:var(--fg);font-family:var(--font-mono);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;padding:clamp(.75rem,3vw,2.5rem);display:flex;justify-content:center}::selection{background:#7ee78740;color:#fff}a{color:var(--blue);text-decoration:none;border-bottom:1px dotted transparent;transition:color .12s ease,border-color .12s ease}a:hover{color:var(--green-bright);border-bottom-color:currentColor}.window{width:100%;max-width:var(--maxw);background:var(--window);border:1px solid var(--border-bright);border-radius:var(--radius);box-shadow:0 0 0 1px #0006,0 24px 60px -20px #000c,0 0 80px -40px #3fb95040;overflow:hidden;display:flex;flex-direction:column}.titlebar{display:flex;align-items:center;gap:.6rem;padding:.6rem .85rem;background:linear-gradient(180deg,#1b222b,#131922);border-bottom:1px solid var(--border);user-select:none}.lights{display:flex;gap:.5rem}.light{width:12px;height:12px;border-radius:50%;box-shadow:inset 0 0 0 .5px #0000004d}.light.red{background:var(--tl-red)}.light.yellow{background:var(--tl-yellow)}.light.green{background:var(--tl-green)}.titlebar .title{flex:1;text-align:center;color:var(--muted);font-size:.8rem;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav{padding:.75rem 1.1rem;border-bottom:1px solid var(--border);background:#0003;display:flex;flex-wrap:wrap;gap:.35rem 1.25rem;align-items:baseline}.nav a{color:var(--muted);border-bottom:none;white-space:nowrap}.nav a .tick{color:var(--dim)}.nav a .cmd{color:var(--muted)}.nav a:hover .cmd,.nav a:hover .tick{color:var(--green-bright)}.nav a[aria-current=page] .cmd{color:var(--green-bright);text-shadow:0 0 8px rgba(126,231,135,.5)}.nav a[aria-current=page] .tick{color:var(--green)}.screen{padding:clamp(1.1rem,3.5vw,2rem);min-height:40vh}.prompt{display:block;margin:1.6rem 0 .4rem;word-break:break-word}.prompt:first-child{margin-top:0}.prompt .user{color:var(--green-bright)}.prompt .at{color:var(--dim)}.prompt .host{color:var(--cyan)}.prompt .colon{color:var(--dim)}.prompt .path{color:var(--blue)}.prompt .sign{color:var(--dim);margin-right:.5ch}.prompt .command{color:var(--fg)}.comment{color:var(--dim)}.comment:before{content:"# "}.output{margin:.25rem 0 .5rem;color:var(--fg)}.output p{margin:.5rem 0}h1,h2,h3{font-weight:700;line-height:1.3;margin:0}h1{font-size:1.5rem;color:var(--fg)}h2{font-size:1.15rem;color:var(--green-bright)}h3{font-size:1rem;color:var(--fg)}.muted{color:var(--muted)}.dim{color:var(--dim)}.green{color:var(--green-bright)}.cyan{color:var(--cyan)}.yellow{color:var(--yellow)}.purple{color:var(--purple)}.cursor{display:inline-block;width:.6ch;height:1.05em;background:var(--green-bright);vertical-align:text-bottom;margin-left:.15ch;animation:blink 1.1s steps(1) infinite;box-shadow:0 0 8px #7ee78799}@keyframes blink{50%{opacity:0}}@media(prefers-reduced-motion:reduce){.cursor{animation:none}}.banner{color:var(--green);font-size:clamp(.42rem,2.1vw,.8rem);line-height:1.15;margin:0 0 .5rem;white-space:pre;overflow-x:auto;text-shadow:0 0 14px rgba(63,185,80,.35)}ul.term{list-style:none;padding:0;margin:.5rem 0}ul.term>li{position:relative;padding-left:1.5ch;margin:.3rem 0}ul.term>li:before{content:"›";position:absolute;left:0;color:var(--green)}.kv{display:grid;grid-template-columns:minmax(6rem,max-content) 1fr;gap:.15rem 1.25rem;margin:.5rem 0}.kv dt{color:var(--purple)}.kv dd{margin:0;color:var(--fg)}.projects{display:grid;gap:1rem;margin:.75rem 0}.card{border:1px solid var(--border-bright);border-radius:8px;padding:1rem 1.1rem;background:#ffffff04;transition:border-color .15s ease,transform .15s ease}.card:hover{border-color:var(--green);transform:translateY(-2px)}.card .card-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.card .card-head h3{margin:0}.card .blurb{color:var(--muted);margin:.5rem 0 .7rem}.badge{font-size:.72rem;padding:.05rem .5rem;border-radius:999px;border:1px solid currentColor;white-space:nowrap}.badge.building{color:var(--yellow)}.badge.shipped{color:var(--green-bright)}.badge.exploring{color:var(--purple)}.stack{display:flex;flex-wrap:wrap;gap:.4rem}.stack .chip{font-size:.72rem;color:var(--dim);border:1px solid var(--border-bright);border-radius:4px;padding:.05rem .45rem}.subscribe{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0}.subscribe input[type=email]{flex:1;min-width:14rem;background:var(--bg);border:1px solid var(--border-bright);border-radius:6px;color:var(--fg);font-family:inherit;font-size:.95rem;padding:.55rem .75rem}.subscribe input[type=email]:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 2px #3fb95033}.subscribe button{background:var(--green);color:#06210c;font-family:inherit;font-weight:700;font-size:.95rem;border:none;border-radius:6px;padding:.55rem 1.1rem;cursor:pointer;transition:background .12s ease,transform .12s ease}.subscribe button:hover{background:var(--green-bright);transform:translateY(-1px)}.foot{border-top:1px solid var(--border);padding:.7rem 1.1rem;color:var(--dim);font-size:.78rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.foot a{color:var(--muted);border-bottom:none}.foot a:hover{color:var(--green-bright)}hr.sep{border:none;border-top:1px dashed var(--border-bright);margin:1.5rem 0}@media(max-width:520px){body{font-size:14px}.kv{grid-template-columns:1fr;gap:.1rem}.kv dt{margin-top:.4rem}}
