:root{--bg: #0f1117;--surface: #191c26;--surface-2: #222634;--border: #2f3446;--text: #e7e9f0;--muted: #9aa0b4;--accent: #7c6cff;--accent-text: #fff;--danger: #e5484d;--ok: #3dd68c;--radius: 10px;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}.app-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);background:var(--surface)}.app-header .brand{font-weight:700;letter-spacing:.02em;text-decoration:none;color:var(--text)}main{max-width:720px;margin:0 auto;padding:28px 20px 80px}h1{font-size:1.5rem;margin:0 0 4px}h2{font-size:1.1rem;margin:28px 0 12px}.muted{color:var(--muted)}.error{color:var(--danger)}.ok{color:var(--ok)}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:.85rem;color:var(--muted)}input,textarea,select{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:9px 11px;font:inherit;width:100%}input:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}button,.button{background:var(--accent);color:var(--accent-text);border:0;border-radius:8px;padding:9px 16px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block}button:disabled{opacity:.5;cursor:default}button.secondary,.button.secondary{background:transparent;color:var(--text);border:1px solid var(--border)}button.danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}.picker{border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin:0}.picker legend{padding:0 6px;color:var(--muted);font-size:.85rem}.picker-grid{display:flex;gap:10px;flex-wrap:wrap}.scenery-row{margin-bottom:12px}.scenery-row-label{font-size:.8rem;color:var(--muted);display:block;margin-bottom:6px}.swatch{display:flex;flex-direction:column;gap:2px;border:1px solid var(--border);border-radius:8px;padding:10px 12px;cursor:pointer;min-width:120px}.swatch.is-selected{border-color:var(--accent);background:var(--surface-2)}.swatch input{position:absolute;opacity:0;width:0;height:0}.swatch-title{font-weight:600;font-size:.9rem}.swatch-sub{color:var(--muted);font-size:.8rem}.swatch-chip{width:100%;height:22px;border-radius:4px;border:2px solid}.photo-preview{display:flex;align-items:center;gap:14px}.photo-preview img{border-radius:8px;object-fit:cover}.game-frame{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:#000;min-height:320px}.steps{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.step-pill{font-size:.8rem;padding:4px 10px;border-radius:999px;border:1px solid var(--border);color:var(--muted)}.step-pill.is-active{border-color:var(--accent);color:var(--text)}.step-pill.is-done{color:var(--ok);border-color:var(--ok)}.game-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.game-list li{display:flex;align-items:center;justify-content:space-between;gap:12px}.badge{font-size:.75rem;padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--muted);text-transform:capitalize}.badge.published{color:var(--ok);border-color:var(--ok)}.badge.failed{color:var(--danger);border-color:var(--danger)}.share{display:flex;flex-direction:column;gap:10px}.share-url{font-family:ui-monospace,monospace;font-size:.85rem}.spinner{width:22px;height:22px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.centered{min-height:60vh;display:grid;place-items:center;text-align:center}
