:root{--bg: #faf9f6;--surface: #ffffff;--text: #211d18;--muted: #756e64;--border: #e7e2d9;--accent: #e8830c;--accent-ink: #a35a00;--accent-soft: #fdf1e0;--live-ink: #176e3c;--live-bg: #e3f4e8;--live-border: #bfe5cc;--built-ink: #1d5fbf;--built-bg: #e6effc;--built-border: #c3d9f5;--wip-ink: #9a6700;--wip-bg: #fdf3d7;--wip-border: #f0dfa8;--idle-ink: #6b6560;--idle-bg: #f0eee9;--idle-border: #ddd8cf;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Code", Consolas, "SF Mono", monospace}*{box-sizing:border-box}html{color-scheme:light}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased}.container{max-width:960px;margin:0 auto;padding:0 1.25rem}a{color:var(--accent-ink);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{line-height:1.2;letter-spacing:-.01em}h1{font-size:2.4rem;margin:0 0 .5rem}h2{font-size:1.35rem;margin:2.5rem 0 1rem}h3{font-size:1.1rem;margin:0}code{font-family:var(--font-mono);font-size:.9em;background:var(--idle-bg);padding:.1em .35em;border-radius:4px}.site-header{border-bottom:1px solid var(--border);background:var(--bg)}.header-inner{display:flex;align-items:center;justify-content:space-between;padding-top:.9rem;padding-bottom:.9rem}.wordmark{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.15rem;color:var(--text)}.wordmark:hover{text-decoration:none;color:var(--accent-ink)}.sun-dot{width:.7em;height:.7em;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.site-nav{display:flex;gap:1.4rem}.site-nav a{color:var(--muted);font-size:.95rem}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--accent-ink);text-decoration:none}main.container{padding-top:2.5rem;padding-bottom:4rem;min-height:60vh}.site-footer{border-top:1px solid var(--border);padding:1.5rem 0 2rem;color:var(--muted);font-size:.9rem}.hero{padding:2.5rem 0 2.75rem;background-image:radial-gradient(var(--border) 1px,transparent 1px);background-size:22px 22px;border-radius:12px;text-align:left}.hero .tagline{font-family:var(--font-mono);color:var(--accent-ink);font-size:.95rem;margin:0 0 1.25rem}.hero .intro{max-width:62ch;font-size:1.15rem;margin:0}.badge{font-family:var(--font-mono);font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:.2em .65em;border-radius:999px;border:1px solid var(--idle-border);background:var(--idle-bg);color:var(--idle-ink);white-space:nowrap;align-self:center}.badge-live{color:var(--live-ink);background:var(--live-bg);border-color:var(--live-border)}.badge-built{color:var(--built-ink);background:var(--built-bg);border-color:var(--built-border)}.badge-building,.badge-prototype{color:var(--wip-ink);background:var(--wip-bg);border-color:var(--wip-border)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.1rem;margin-top:1.25rem}.project-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.project-card:hover{transform:translateY(-2px);border-color:#d8cfc0;box-shadow:0 6px 18px #211d1812}.card-image{display:block;border-bottom:1px solid var(--border);background:var(--idle-bg)}.card-image img{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;object-position:top}.card-body{display:flex;flex-direction:column;gap:.35rem;padding:1.1rem 1.2rem 1.15rem;flex:1}.card-top{display:flex;justify-content:space-between;gap:.75rem}.card-top h3 a{color:var(--text)}.card-top h3 a:hover{color:var(--accent-ink);text-decoration:none}.card-category{font-family:var(--font-mono);font-size:.75rem;color:var(--muted);margin:0}.card-pitch{margin:.25rem 0 0;color:var(--text);font-size:.97rem;flex:1}.card-links{display:flex;gap:1rem;margin-top:.9rem;font-size:.9rem}.project-title-row{display:flex;align-items:baseline;gap:.9rem;flex-wrap:wrap}.project-category{font-family:var(--font-mono);font-size:.85rem;color:var(--muted);margin:.25rem 0 0}.project-pitch{font-size:1.2rem;max-width:62ch;margin:.75rem 0 0}.project-actions{display:flex;align-items:center;gap:.75rem;margin-top:1.4rem;flex-wrap:wrap}.btn{display:inline-block;padding:.45em 1.1em;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:.95rem;font-weight:600}.btn:hover{text-decoration:none;border-color:var(--accent);color:var(--accent-ink)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-ink);border-color:var(--accent-ink);color:#fff}.demo-soon{font-family:var(--font-mono);font-size:.8rem;color:var(--muted)}.project-hero{display:block;width:100%;border:1px solid var(--border);border-radius:10px;margin-top:2rem}.project-page section p,.project-page section li{max-width:68ch}.project-page ul{padding-left:1.2rem}.project-page li{margin-bottom:.4rem}.chips{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.chips li{font-family:var(--font-mono);font-size:.8rem;border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:.25em .7em;margin:0}.log-list{display:flex;flex-direction:column;margin-top:1rem}.log-item{padding:1.1rem 0;border-bottom:1px solid var(--border)}.log-item:last-child{border-bottom:none}.log-meta{display:flex;gap:.9rem;align-items:baseline;font-family:var(--font-mono);font-size:.78rem;color:var(--muted);margin-bottom:.25rem}.log-tag{border:1px solid var(--border);border-radius:999px;padding:.05em .7em;background:var(--surface)}.log-item h3 a{color:var(--text)}.log-item h3 a:hover{color:var(--accent-ink)}.log-item p{margin:.3rem 0 0;color:var(--muted);font-size:.95rem}.browse-all{margin-top:1.5rem;font-weight:600}.post-header h1{font-size:1.9rem}.prose{max-width:68ch}.prose p{margin:1.1em 0}.prose img{max-width:100%;border-radius:8px;border:1px solid var(--border)}@media(max-width:640px){h1{font-size:1.9rem}.header-inner{flex-direction:column;gap:.5rem;align-items:flex-start}.card-grid{grid-template-columns:1fr}}
