@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0a0a0f;--surface: rgba(255, 255, 255, .04);--surface-hover: rgba(255, 255, 255, .08);--border: rgba(255, 255, 255, .08);--text: #e8e8ed;--text-muted: #6b6b80;--accent: #6366f1;--accent-light: #818cf8;--attack: #3b82f6;--defense: #ef4444;--ball: #fbbf24;--error: #ef4444;--success: #22c55e;font-family:Inter,-apple-system,system-ui,sans-serif;color:var(--text);background:var(--bg)}html,body,#root{height:100%;overflow:hidden;touch-action:manipulation}.app{display:flex;flex-direction:column;height:100%;height:100dvh;background:var(--bg)}.toolbar{display:flex;align-items:center;justify-content:space-between;padding:.4rem .75rem;background:var(--surface);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);gap:.5rem;min-height:44px}.toolbar-left{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.toolbar-right{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.toolbar-btn{background:var(--surface);border:1px solid var(--border);color:var(--text);font-family:inherit;font-size:.75rem;font-weight:600;padding:.35rem .6rem;border-radius:.4rem;cursor:pointer;transition:all .15s;white-space:nowrap}.toolbar-btn:hover{background:var(--surface-hover)}.icon-btn{font-size:1.1rem;padding:.25rem .4rem}.save-btn.unsaved{border-color:var(--accent);color:var(--accent-light);animation:pulse-border 2s infinite}@keyframes pulse-border{0%,to{box-shadow:0 0 #6366f14d}50%{box-shadow:0 0 0 3px #6366f11a}}.play-btn{font-size:1rem}.mode-btn{background:var(--accent);border-color:var(--accent);color:#fff}.mode-btn:hover{background:#5558e6}.mode-btn.play{background:var(--success);border-color:var(--success)}.mode-btn.play:hover{background:#16a34a}.play-name-input{background:#ffffff0d;border:1px solid var(--border);border-radius:.4rem;padding:.3rem .5rem;color:var(--text);font-family:inherit;font-size:.85rem;font-weight:600;outline:none;min-width:0;flex:1;max-width:180px}.play-name-input:focus{border-color:#6366f180}.play-name-display{font-size:.85rem;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-container{flex:1;display:flex;align-items:center;justify-content:center;padding:.25rem;min-height:0;overflow:hidden}.field-svg{width:100%;height:100%;border-radius:.5rem;filter:drop-shadow(0 4px 20px rgba(0,0,0,.4));touch-action:none}.edit-actions{display:flex;align-items:center;gap:.4rem;padding:.3rem .75rem;background:#6366f10f;border-bottom:1px solid var(--border);overflow-x:auto}.action-btn{background:var(--surface);border:1px solid var(--border);color:var(--text);font-family:inherit;font-size:.7rem;font-weight:600;padding:.3rem .55rem;border-radius:.35rem;cursor:pointer;transition:all .15s;white-space:nowrap}.action-btn:hover{background:var(--surface-hover)}.action-btn.active{background:#f59e0b26;border-color:#f59e0b;color:#fbbf24}.selection-count{font-size:.7rem;color:var(--accent-light);font-weight:600;padding:0 .3rem}.action-hint{font-size:.65rem;color:#fbbf24;font-style:italic;opacity:.8;padding:0 .3rem}.timeline{background:var(--surface);border-top:1px solid var(--border);padding:.5rem .75rem;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.timeline-frames{display:flex;align-items:center;gap:.35rem;overflow-x:auto;padding-bottom:.25rem}.frame-slot{display:flex;flex-direction:column;align-items:center;gap:.15rem;position:relative}.frame-btn{width:32px;height:32px;border-radius:50%;border:2px solid var(--border);background:transparent;color:var(--text-muted);font-family:inherit;font-size:.75rem;font-weight:700;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.frame-btn:hover{border-color:var(--accent-light);color:var(--text)}.frame-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;transform:scale(1.1)}.add-frame{border-style:dashed;font-size:1rem;opacity:.5}.add-frame:hover{opacity:1}.frame-actions{display:flex;gap:.15rem}.frame-action{background:none;border:none;color:var(--text-muted);font-size:.6rem;cursor:pointer;padding:0 .15rem;transition:color .15s}.frame-action:hover{color:var(--text)}.frame-action.delete:hover{color:var(--error)}.scrub-track{height:6px;background:var(--surface-hover);border-radius:3px;margin-top:.5rem;position:relative;cursor:pointer;touch-action:none}.scrub-fill{position:absolute;left:0;top:0;height:100%;background:var(--accent);border-radius:3px;transition:width 16ms linear}.scrub-thumb{position:absolute;top:50%;width:14px;height:14px;background:#fff;border:2px solid var(--accent);border-radius:50%;transform:translate(-50%,-50%);cursor:grab;transition:left 16ms linear}.scrub-thumb:active{cursor:grabbing;transform:translate(-50%,-50%) scale(1.2)}.scrub-tick{position:absolute;top:-1px;width:2px;height:8px;background:#ffffff59;transform:translate(-50%);border-radius:1px;pointer-events:none}.drawer-backdrop{position:fixed;inset:0;background:#0009;z-index:90;animation:fadeIn .2s ease}.play-drawer{position:fixed;left:0;top:0;bottom:0;width:280px;max-width:80vw;background:#111118;border-right:1px solid var(--border);z-index:100;transform:translate(-100%);transition:transform .25s ease;display:flex;flex-direction:column}.play-drawer.open{transform:translate(0)}.drawer-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.drawer-header h2{font-size:1.1rem;font-weight:700}.drawer-close{background:none;border:none;color:var(--text-muted);font-size:1.2rem;cursor:pointer}.drawer-list{flex:1;overflow-y:auto;padding:.5rem}.drawer-empty{text-align:center;color:var(--text-muted);font-size:.85rem;padding:2rem 1rem}.play-item{display:flex;align-items:center;border:1px solid transparent;border-radius:.75rem;transition:all .15s;margin-bottom:.25rem}.play-item:hover{background:var(--surface)}.play-item.active{background:var(--surface);border-color:var(--accent)}.play-item-main{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.65rem .75rem;background:none;border:none;color:var(--text);font-family:inherit;cursor:pointer;text-align:left}.play-item .play-name{font-size:.9rem;font-weight:700}.play-item .play-meta{font-size:.65rem;color:var(--text-muted)}.play-delete-btn{background:none;border:none;cursor:pointer;font-size:.8rem;padding:.5rem;opacity:.3;transition:opacity .15s}.play-delete-btn:hover{opacity:1}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--text-muted)}.empty-icon{font-size:3rem}.empty-state p{font-size:1rem}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh}.login-card{width:100%;max-width:340px;padding:2rem 1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:1.25rem;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);animation:slideUp .4s ease}.logo{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1.75rem}.logo-icon{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--accent),#8b5cf6);display:flex;align-items:center;justify-content:center;font-size:1.4rem;box-shadow:0 0 24px #6366f14d}.logo-text{font-size:2rem;font-weight:800;letter-spacing:.1em;background:linear-gradient(135deg,#a5b4fc,#c4b5fd);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.login-card form{display:flex;flex-direction:column;gap:.75rem}.login-card input[type=password]{width:100%;padding:.8rem 1rem;background:#ffffff0d;border:1px solid var(--border);border-radius:.6rem;color:var(--text);font-family:inherit;font-size:.9rem;outline:none;transition:border-color .2s,box-shadow .2s}.login-card input:focus{border-color:#6366f180;box-shadow:0 0 0 3px #6366f126}.login-card button[type=submit]{padding:.8rem;background:var(--accent);border:none;border-radius:.6rem;color:#fff;font-family:inherit;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.login-card button[type=submit]:hover{background:#5558e6;transform:translateY(-1px)}.error{text-align:center;color:var(--error);font-size:.8rem;font-weight:500;padding:.4rem;background:#ef444414;border-radius:.4rem;animation:shake .4s ease}.loading{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--text-muted);font-size:.9rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.modal-backdrop{position:fixed;inset:0;background:#0009;z-index:1000}.delete-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem;z-index:1001;min-width:280px;max-width:90vw}.delete-modal h3{margin:0 0 .75rem;color:#ef4444;font-size:1.1rem}.delete-modal p{margin:.4rem 0;font-size:.85rem;color:var(--text-muted)}.delete-hint{font-size:.75rem!important;margin-top:.75rem!important}.delete-input{width:100%;padding:.5rem;border:1px solid var(--border);border-radius:.35rem;background:var(--bg);color:var(--text);font-family:inherit;font-size:.85rem;margin-top:.35rem;box-sizing:border-box}.delete-input.error{border-color:#ef4444;animation:shake .3s}.delete-error{color:#ef4444!important;font-size:.75rem!important;margin-top:.25rem!important}.delete-actions{display:flex;gap:.5rem;margin-top:1rem;justify-content:flex-end}.delete-confirm{background:#ef444426!important;border-color:#ef4444!important;color:#f87171!important}.delete-play-btn{color:#f87171!important;border-color:#ef44444d!important}.delete-play-btn:hover{background:#ef444426!important}.delete-frame-btn{color:#f87171!important;border-color:#ef44444d!important}.role-btn{border-width:2px!important}@media(max-width:768px){.timeline{padding:.6rem .5rem}.frame-btn{width:40px;height:40px;font-size:.85rem}.frame-action{font-size:.7rem;padding:.15rem .3rem}.scrub-track{height:10px;margin-top:.5rem}.scrub-thumb{width:18px;height:18px}.edit-actions{padding:.5rem;gap:.35rem;flex-wrap:wrap}.action-btn{font-size:.8rem;padding:.45rem .65rem;min-height:40px}.toolbar{padding:.4rem .5rem}.toolbar-btn{font-size:.8rem;padding:.4rem .6rem;min-height:38px}}
