*{box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;margin:0;padding:0;background:#f5f5f5}.app{min-height:100vh;padding:40px 20px}.header{max-width:1200px;margin:0 auto 40px;text-align:center}.header h1{font-size:32px;font-weight:700;margin:0 0 10px;color:#14140f}.header .subtitle{font-size:16px;color:#666;margin:0 0 20px}.stats{display:flex;gap:20px;justify-content:center;margin-top:20px}.stat{background:#fff;padding:12px 20px;border-radius:8px;box-shadow:0 1px 3px #0000001a}.stat-label{font-size:12px;color:#888;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:24px;font-weight:700;color:#14140f}.filters{max-width:1200px;margin:0 auto 30px;background:#fff;padding:20px;border-radius:12px;box-shadow:0 2px 8px #0000001a}.filter-group{margin-bottom:15px}.filter-group:last-child{margin-bottom:0}.filter-label{font-size:12px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.filter-options{display:flex;gap:10px;flex-wrap:wrap}.filter-btn{padding:8px 16px;border:2px solid #e0e0e0;background:#fff;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s;font-family:inherit}.filter-btn:hover{border-color:#c75d3a;color:#c75d3a}.filter-btn.active{background:#c75d3a;border-color:#c75d3a;color:#fff}.gallery{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000001a;transition:transform .2s,box-shadow .2s}.card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #00000026}.card-preview{width:100%;height:240px;overflow:hidden;background:#f9f9f9;border-bottom:1px solid #e0e0e0;position:relative;cursor:pointer}.card-preview iframe{width:640px;height:960px;border:none;transform:scale(.5);transform-origin:top left;pointer-events:none}.card-info{padding:16px}.card-title{font-size:16px;font-weight:600;margin:0 0 8px;color:#14140f}.card-badges{display:flex;gap:6px;flex-wrap:wrap}.badge{display:inline-block;padding:4px 8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-radius:4px}.badge-voice{background:#e3f2fd;color:#1976d2}.badge-palette{background:#fce4ec;color:#c2185b}.badge-rhythm{background:#f3e5f5;color:#7b1fa2}.card-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.action-btn{padding:10px;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:6px;font-family:inherit}.btn-copy{background:#c75d3a;color:#fff}.btn-copy:hover{background:#a84d2f}.btn-copy.copied{background:#4caf50}.btn-download{background:#1976d2;color:#fff}.btn-download:hover{background:#1565c0}.btn-preview{background:#7b1fa2;color:#fff;grid-column:1 / -1}.btn-preview:hover{background:#6a1b9a}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;z-index:1000;padding:20px;overflow:auto;display:flex;align-items:center;justify-content:center}.modal-content{background:#fff;border-radius:12px;max-width:800px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0000004d}.modal-header{padding:20px;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center}.modal-title{font-size:20px;font-weight:600;color:#14140f;margin:0}.modal-close{background:none;border:none;font-size:28px;cursor:pointer;color:#888;line-height:1;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-family:inherit}.modal-close:hover{color:#14140f}.modal-body{flex:1;overflow:auto;padding:20px}.modal-preview{width:100%;min-height:600px;border:1px solid #e0e0e0;border-radius:8px}.modal-footer{padding:20px;border-top:1px solid #e0e0e0;display:flex;gap:10px}.modal-footer .action-btn{flex:1}.toast{position:fixed;bottom:30px;right:30px;background:#323232;color:#fff;padding:16px 24px;border-radius:8px;box-shadow:0 4px 12px #0000004d;font-size:14px;font-weight:500;z-index:2000;opacity:0;transform:translateY(20px);transition:all .3s;pointer-events:none}.toast.show{opacity:1;transform:translateY(0)}.toast.success{background:#4caf50}.toast.error{background:#f44336}@media (max-width: 768px){.app{padding:20px 10px}.header h1{font-size:24px}.stats{flex-wrap:wrap}.gallery{grid-template-columns:1fr}.modal-content{max-width:100%}}
