*{box-sizing:border-box;margin:0;padding:0}button{border:none;background:none;cursor:pointer;font-family:inherit}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.gen-pulse{animation:pulse 1.5s infinite}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:#0f1117}.main{display:flex;flex:1;overflow:hidden}.left-panel{width:380px;min-width:380px;background:#1a1d2e;border-right:1px solid #2a2d3e;overflow-y:auto;display:flex;flex-direction:column}.section{border-bottom:1px solid #2a2d3e}.section-title{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;font-size:11px;font-weight:700;letter-spacing:1.5px;color:#8892a4;cursor:pointer;width:100%}.section-title:hover{color:#fff}.section-body{padding:0 16px 14px}.lbl{display:block;font-size:12px;color:#8892a4;font-weight:700;margin-bottom:6px;letter-spacing:.5px}.lbl-sm{font-size:11px;min-width:50px;color:#8892a4;font-weight:700}.inp{width:100%;background:#0d1117;border:1px solid #2a2d3e;color:#fff;padding:10px 14px;border-radius:8px;font-size:13px;outline:none;transition:border .15s}.inp:focus{border-color:#00c896}.ta{resize:vertical;font-family:inherit;line-height:1.5}.chips{display:flex;gap:4px;flex-wrap:wrap}.chip{padding:6px 14px;background:#2a2d3e;color:#8892a4;border-radius:8px;font-size:12px;border:1px solid transparent;transition:all .12s;cursor:pointer}.chip:hover{background:#3a3d4e;color:#fff}.chip.on{background:#2563eb;color:#fff;border-color:#2563eb}.row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.slider-row{margin-bottom:8px}.slider-row input[type=range]{width:100%;accent-color:#00C896;margin-top:2px}.icon-row{display:flex;gap:4px;margin-bottom:10px;margin-top:8px}.icon-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#2a2d3e;border:1px solid #3a3d4e;border-radius:8px;font-size:16px;color:#8892a4;transition:all .12s;cursor:pointer}.icon-btn:hover{background:#3a3d4e;color:#fff}.color-row{display:flex;gap:6px;align-items:center}.dot{width:26px;height:26px;border-radius:50%;border:2px solid transparent;transition:all .12s;cursor:pointer}.dot:hover{transform:scale(1.15)}.dot.on{border-color:#fff;box-shadow:0 0 0 2px #00c89666}.color-pick{width:26px;height:26px;border:none;padding:0;border-radius:50%;overflow:hidden;cursor:pointer}.slide-tabs{display:flex;gap:4px;flex-wrap:wrap}.stab{width:44px;height:36px;background:#2a2d3e;border:1px solid transparent;border-radius:8px;font-size:14px;font-weight:700;color:#8892a4;transition:all .12s;cursor:pointer}.stab:hover{background:#3a3d4e;color:#fff}.stab.on{background:#00c896;color:#fff;border-color:#00c896}.layout-grid{display:flex;gap:4px;flex-wrap:wrap}.lay-btn{padding:6px 12px;background:#2a2d3e;border:1px solid transparent;border-radius:8px;font-size:11px;color:#8892a4;transition:all .12s;cursor:pointer}.lay-btn:hover{background:#3a3d4e;color:#fff}.lay-btn.on{background:#2563eb;color:#fff;border-color:#2563eb}.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:10px}.cat-btn{padding:8px 4px;background:#2a2d3e;border:1px solid transparent;border-radius:8px;font-size:12px;color:#8892a4;text-align:center;transition:all .12s;cursor:pointer}.cat-btn:hover{background:#3a3d4e;color:#fff}.cat-btn.on{background:#00c896;color:#fff;border-color:#00c896}.cat-icon{display:block;font-size:18px;margin-bottom:2px}.src-tabs{display:flex;gap:4px;margin-bottom:10px}.src-tab{flex:1;padding:8px;background:#2a2d3e;border:1px solid transparent;border-radius:8px;font-size:13px;font-weight:700;color:#8892a4;transition:all .12s;cursor:pointer}.src-tab:hover{background:#3a3d4e;color:#fff}.src-tab.on{background:#00c896;color:#fff;border-color:#00c896}.cam-panel{background:#0d1117;border:1px solid #2a2d3e;border-radius:12px;padding:12px;margin-bottom:10px}.cam-row{margin-bottom:6px}.cam-chips{display:flex;gap:3px}.cchip{flex:1;padding:5px;background:#2a2d3e;border:1px solid transparent;border-radius:6px;font-size:10px;color:#8892a4;text-align:center;transition:all .12s;cursor:pointer}.cchip:hover{background:#3a3d4e;color:#fff}.cchip.on{background:#00c896;color:#fff;border-color:#00c896}.advanced{margin-bottom:8px}.advanced summary{font-size:12px;color:#8892a4;cursor:pointer;padding:4px 0}.advanced summary:hover{color:#fff}.drop-zone{border:2px dashed #2a2d3e;border-radius:12px;padding:36px;text-align:center;cursor:pointer;transition:all .15s}.drop-zone:hover{border-color:#00c896;background:#00c8960d}.drop-zone span{color:#8892a4;font-size:13px}.right-panel{flex:1;display:flex;flex-direction:column;align-items:center;padding:24px;overflow-y:auto;background:#0f1117}.preview-label{font-size:12px;color:#8892a4;letter-spacing:1px;margin-bottom:16px;font-weight:700}.canvas-wrap{background:#1a1d2e;border-radius:12px;overflow:hidden;box-shadow:0 8px 32px #0006;margin-bottom:20px}.canvas-wrap canvas{display:block}.nav-row{display:flex;align-items:center;gap:12px;margin-bottom:16px}.nav-btn{padding:8px 22px;background:#2a2d3e;border:1px solid #3a3d4e;color:#fff;border-radius:8px;font-size:13px;transition:all .12s;cursor:pointer}.nav-btn:hover{background:#3a3d4e}.nav-btn:disabled{opacity:.2;cursor:not-allowed}.nav-dots{display:flex;gap:6px}.nav-dot{width:10px;height:10px;border-radius:50%;background:#2a2d3e;transition:all .15s;cursor:pointer}.nav-dot.on{background:#00c896}.dl-row{display:flex;gap:10px}.btn-dl{padding:10px 22px;background:#2a2d3e;border:1px solid #3a3d4e;color:#fff;border-radius:8px;font-size:13px;transition:all .12s;cursor:pointer}.btn-dl:hover{background:#3a3d4e}.btn-dl.accent{background:#00c896;color:#fff;border-color:#00c896}.btn-dl.accent:hover{background:#0a9f7a}@media (max-width: 800px){.main{flex-direction:column}.left-panel{width:100%;min-width:0;max-height:50vh}.right-panel{padding:16px}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{color-scheme:dark}body{font-family:Noto Sans KR,-apple-system,sans-serif;background:#0f1117;color:#d4d4d8;min-height:100vh}#root{max-width:none;margin:0;padding:0;text-align:left}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea{font-family:inherit}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:#0f1117}::-webkit-scrollbar-thumb{background:#333;border-radius:3px}
