:root{--bg:#0b0d11;--surface:#12151c;--surface-2:#181c25;--border:#232936;--text:#e8ebf1;--text-dim:#9aa3b2;--text-faint:#6b7383;--accent:#7dd3a0;--accent-dim:#2a4736;--danger:#f28b82;--info:#8ab4f8;--radius:12px}*{box-sizing:border-box;margin:0;padding:0}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}input,textarea{font:inherit}.container{max-width:1100px;margin:0 auto;padding:0 1.5rem}.site-header{border-bottom:1px solid var(--border);padding:1.25rem 0}.site-header .container{justify-content:space-between;align-items:center;display:flex}.wordmark{letter-spacing:.02em;font-size:1.05rem;font-weight:700}.wordmark span{color:var(--accent)}.header-link{color:var(--text-faint);font-size:.85rem}.header-link:hover{color:var(--text-dim)}.hero{text-align:center;padding:3.5rem 0 2rem}.hero h1{margin-bottom:.5rem;font-size:2.2rem;font-weight:700}.hero p{color:var(--text-dim)}.search-wrap{max-width:30rem;margin:2rem auto 0}.search-input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:999px;outline:none;padding:.8rem 1.1rem;transition:border-color .15s}.search-input:focus{border-color:var(--accent-dim)}.search-input::placeholder{color:var(--text-faint)}.grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;padding:2.5rem 0 4rem;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;transition:transform .15s,border-color .15s;display:flex;overflow:hidden}.card:hover{border-color:#35405a;transform:translateY(-3px)}.card-thumb{aspect-ratio:16/9;background:var(--surface-2);place-items:center;display:grid;overflow:hidden}.card-thumb img{object-fit:cover;width:100%;height:100%}.card-thumb .placeholder{color:#ffffffd9;place-items:center;width:100%;height:100%;font-size:2rem;font-weight:700;display:grid}.card-body{padding:1rem 1.1rem 1.2rem}.card-client{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:.3rem;font-size:.72rem}.card-title{margin-bottom:.35rem;font-size:1.05rem;font-weight:600}.card-desc{color:var(--text-dim);font-size:.85rem;line-height:1.5}.empty-state{text-align:center;color:var(--text-faint);padding:3rem 0 5rem}.unlock-wrap{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.unlock-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;width:100%;max-width:24rem;padding:2rem}.unlock-card .lock-icon{margin-bottom:.75rem;font-size:1.6rem}.unlock-card h1{margin-bottom:.25rem;font-size:1.3rem}.unlock-card .client{color:var(--text-dim);margin-bottom:1.5rem;font-size:.9rem}.unlock-card form{flex-direction:column;gap:.75rem;display:flex}.field{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);border-radius:8px;outline:none;padding:.75rem 1rem}.field:focus{border-color:var(--accent-dim)}.btn{background:var(--accent);color:#0b0d11;border:none;border-radius:8px;padding:.75rem 1.25rem;font-weight:600;transition:opacity .15s}.btn:hover{opacity:.9}.btn:disabled{opacity:.5;cursor:default}.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn-sm{border-radius:6px;padding:.4rem .8rem;font-size:.82rem}.error-text{color:var(--danger);font-size:.85rem}.muted{color:var(--text-faint);font-size:.82rem}.admin-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:1.5rem 0;display:flex}.admin-header h1{font-size:1.4rem}.admin-actions{align-items:center;gap:.5rem;display:flex}.admin-list{flex-direction:column;gap:1rem;padding-bottom:4rem;display:flex}.proto-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.proto-summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:.85rem;padding:1rem 1.25rem;display:flex}.proto-summary .name{font-weight:600}.proto-summary .slug{color:var(--text-faint);font-family:ui-monospace,monospace;font-size:.82rem}.proto-summary .spacer{flex:1}.badge{letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--border);color:var(--text-dim);border-radius:999px;padding:.2rem .6rem;font-size:.7rem}.badge.ok{color:var(--accent);border-color:var(--accent-dim)}.badge.warn{color:#f2c94c;border-color:#4a3f1d}.badge.err{color:var(--danger);border-color:#55302d}.badge.info{color:var(--info);border-color:#2b3a55}.proto-detail{border-top:1px solid var(--border);gap:1.5rem;padding:1.25rem;display:grid}@media (width>=800px){.proto-detail{grid-template-columns:1fr 1fr}}.detail-section h3{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-bottom:.75rem;font-size:.78rem}.detail-section{min-width:0}.form-grid{flex-direction:column;gap:.6rem;display:flex}.form-row{align-items:center;gap:.6rem;display:flex}.form-row .field{flex:1}label.check{color:var(--text-dim);align-items:center;gap:.5rem;font-size:.9rem;display:flex}.code-display{background:var(--bg);border:1px solid var(--border);word-break:break-all;border-radius:8px;align-items:center;gap:.6rem;margin-bottom:.6rem;padding:.6rem .9rem;font-family:ui-monospace,monospace;display:flex}.code-display .code{flex:1}.thumb-preview{border:1px solid var(--border);border-radius:8px;max-width:240px;margin-bottom:.6rem;display:block}.invite-history{flex-direction:column;gap:.3rem;margin-top:.75rem;list-style:none;display:flex}.invite-history li{color:var(--text-dim);font-size:.83rem}.invite-history .when{color:var(--text-faint)}.logs{background:var(--bg);border:1px solid var(--border);white-space:pre-wrap;word-break:break-all;max-height:300px;color:var(--text-dim);border-radius:8px;padding:.75rem 1rem;font-family:ui-monospace,monospace;font-size:.78rem;line-height:1.6;overflow:auto}.logs .stderr{color:var(--danger)}.logs .system{color:var(--info)}.login-wrap{place-items:center;min-height:80vh;padding:1.5rem;display:grid}.notice{border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.88rem}.notice.err{color:var(--danger);background:#2a1a19;border:1px solid #55302d}.notice.ok{color:var(--accent);border:1px solid var(--accent-dim);background:#16241c}
