:root{--bg: #1a1a1a;--panel-bg: #232323;--panel-border: #2e2e2e;--text: #e5e5e5;--text-dim: #888;--accent: #5a8dee}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;-webkit-font-smoothing:antialiased}#app{display:grid;grid-template-columns:1fr 320px;width:100vw;height:100vh}#stage{position:relative;display:flex;align-items:center;justify-content:center;background:repeating-conic-gradient(#1f1f1f 0% 25%,#161616 0% 50%) 50% / 24px 24px;overflow:hidden}#canvas-wrap{position:relative;max-width:calc(100% - 48px);max-height:calc(100% - 48px);display:flex;align-items:center;justify-content:center;box-shadow:0 24px 64px #0006}#output{display:block;max-width:100%;max-height:100%;background:#000;image-rendering:pixelated}#drop-hint{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;color:var(--text-dim);background:#0e0e0e;border:2px dashed #333}#drop-hint h2{margin:0 0 8px;font-weight:500;font-size:18px;color:var(--text)}#drop-hint p{margin:0;font-size:12px}#stage.dragover #drop-hint{border-color:var(--accent);color:var(--accent)}#stage.has-media #drop-hint,#source-video{display:none}#panel{background:var(--panel-bg);border-left:1px solid var(--panel-border);overflow-y:auto;overflow-x:hidden;padding:12px}#panel .tp-dfwv{width:100%;--tp-base-background-color: transparent;--tp-container-background-color: rgba(255, 255, 255, .04);--tp-container-foreground-color: #ddd;--tp-label-foreground-color: #aaa}#panel .tp-dfwv{--in-bg: #2e2e2e;--in-bg-h: #383838;--in-bg-f: #383838;--in-bg-a: #222;--in-fg: #ffffff}#panel .tp-ckbv_i:checked+.tp-ckbv_w{background-color:var(--accent)!important}.btn-row{display:flex;gap:6px;margin-bottom:8px}.btn-row button{flex:1;padding:8px 10px;background:#333;color:var(--text);border:1px solid #444;border-radius:4px;font-size:12px;font-family:inherit;cursor:pointer;transition:background .15s}.btn-row button:hover{background:#3d3d3d}.btn-row button:active{background:#2a2a2a}.btn-row button.primary{background:var(--accent);border-color:var(--accent)}.btn-row button.primary:hover{background:#6e9bf5}.sprite-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:4px;padding:8px;background:#1a1a1a;border-radius:4px;margin-bottom:8px;min-height:44px}.sprite-thumb{position:relative;aspect-ratio:1;background:#000;border:1px solid #2a2a2a;border-radius:2px;overflow:hidden;display:flex;align-items:center;justify-content:center}.sprite-thumb img,.sprite-thumb canvas{width:100%;height:100%;display:block;image-rendering:pixelated}.sprite-thumb .b-label{position:absolute;bottom:0;right:0;background:#000000b3;color:#fff;font-size:8px;padding:1px 3px;font-family:Menlo,monospace}.sprite-delete{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000008c;color:#fff;font-size:14px;border:none;cursor:pointer;opacity:0;transition:opacity .15s;padding:0;line-height:1}.sprite-thumb:hover .sprite-delete{opacity:1}.sprite-empty{grid-column:1 / -1;text-align:center;color:var(--text-dim);font-size:11px;padding:8px}.panel-header{font-size:18px;font-weight:600;letter-spacing:-.01em;color:var(--text);line-height:1.3;padding:8px 0 16px;border-bottom:1px solid var(--panel-border);margin-bottom:14px}.panel-header span{font-size:12px;font-weight:400;color:var(--text-dim)}.panel-header a{color:inherit;text-decoration:none;border-bottom:1px dotted currentColor;transition:color .15s,border-color .15s}.panel-header a:hover{color:var(--accent);border-bottom-color:var(--accent)}.section-title{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);margin:16px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--panel-border)}.section-title:first-child{margin-top:0}.section-title--export{margin-top:32px}.gradient-preview{height:14px;border-radius:2px;margin:4px 0 8px;border:1px solid #2a2a2a}#status{position:fixed;bottom:12px;left:12px;background:#000c;border:1px solid #333;padding:6px 10px;border-radius:4px;font-size:11px;font-family:Menlo,monospace;color:var(--text-dim);pointer-events:none;opacity:0;transition:opacity .2s}#status.visible{opacity:1}
