@import"https://fonts.googleapis.com/css?family=Montserrat:300,400,700";input::placeholder,textarea::placeholder{opacity:.8!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}body{opacity:0;animation:fadeIn 2s ease-in-out forwards;margin:0;padding:0;font-size:16px}.logo{width:8rem;height:8rem;fill:var(--mui-palette-secondary-dark);flex:2;transform:scale(1);animation:pulse 2s infinite}.login-form{flex:1;flex-direction:column;display:flex;align-items:center;justify-content:center;gap:1rem}.bang .throbbing{animation:pulse 2s infinite}.MuiButton-contained:active,.MuiButton-outlined:active,.MuiButton-text:active{transform:scale(.85);animation:1s ease-in-out tense,.5s linear 1s 8 quiver,1s linear 5s supertense,.25s linear 6s 12 superquiver,.1s linear 9s infinite megaquiver}.MuiButton-contained.clicked,.MuiButton-outlined.clicked,.MuiButton-text.clicked{animation:1.5s ease-out climax}.MuiButtonBase-root{background-color:"#8B0000";color:"#fff";border-radius:"50% 40% 60% 50% / 40% 50% 50% 60%";padding:"1rem 2rem";border:"none";box-shadow:"inset 0 0 10px rgba(139,0,0,0.7), 0 0 15px rgba(139,0,0,0.5)";transition:"all 0.3s ease"}@keyframes pulse{0%{transform:scale(.9);fill:var(--mui-palette-primary-main)}30%{transform:scale(1);fill:var(--mui-palette-primary-dark)}to{transform:scale(.9);fill:var(--mui-palette-primary-main)}}@keyframes tense{0%{transform:scale(1);fill:var(--mui-palette-primary-dark)}to{transform:scale(.85);fill:var(--mui-palette-primary-main)}}@keyframes supertense{0%{transform:scale(.85)}10%{transform:scale(.845) translate(-3px)}30%{transform:scale(.835) translate(3px)}50%{transform:scale(.825) translate(-3px)}70%{transform:scale(.815) translate(3px)}90%{transform:scale(.805) translate(-3px)}to{transform:scale(.8)}}@keyframes quiver{25%{transform:scale(.85) translate(-4px) skew(5deg)}75%{transform:scale(.85) translate(4px) skew(-5deg)}}@keyframes superquiver{0%{transform:scale(.8)}25%{transform:scale(.8) translate(-3px) skew(8deg)}75%{transform:scale(.8) translate(3px) skew(-8deg)}to{transform:scale(.8)}}@keyframes megaquiver{0%{transform:scale(.8)}25%{transform:scale(.8) translate(-3px,2px) skew(10deg)}75%{transform:scale(.8) translate(3px,-2px) skew(-10deg)}to{transform:scale(.8)}}@keyframes climax{0%{transform:scale(1)}5%{transform:scale(1.05,1.2)}10%{transform:scale(1.1,1.3)}50%{transform:scale(1.1,1.35)}60%{transform:scale(1.1,1.3) translate(-3px) skew(10deg)}65%{transform:scale(1.1,1.3) translate(-3px) skew(10deg)}70%{transform:scale(1.1,1.25) translate(4px) skew(-12deg)}75%{transform:scale(1.1,1.25) translate(-4px) skew(14deg)}80%{transform:scaleY(1.1)}}.Button{background:none;padding:0;margin:50px auto;border:none;display:block;backface-visibility:hidden;width:300px;height:80px;position:relative;color:#98a5a6;font-size:18px;transition:transform .3s,color .3s;cursor:pointer}.Button:hover,.Button:focus{color:#bec3c7;transform:scale(1.05)}.Button:hover .Button-line,.Button:focus .Button-line{animation-play-state:paused}.Button-svg{display:block;width:100%;height:100%}@keyframes outer-dashoffset{0%{stroke-dashoffset:0;stroke-dasharray:336.05px 336.05px}50%{stroke-dasharray:224.0333333333px 448.0666666667px}to{stroke-dashoffset:672.1px;stroke-dasharray:336.05px 336.05px}}.Button-line--outer{stroke-dasharray:336.05px 336.05px;stroke-dashoffset:0;animation:outer-dashoffset infinite linear 6s}@keyframes inner-dashoffset{0%{stroke-dashoffset:0;stroke-dasharray:336.05px 336.05px}50%{stroke-dasharray:224.0333333333px 448.0666666667px}to{stroke-dashoffset:-672.1px;stroke-dasharray:336.05px 336.05px}}.Button-line--inner{stroke-dashoffset:0;stroke-dasharray:336.05px 336.05px;animation:inner-dashoffset infinite 5s}.Button-content{width:100%;height:100;display:flex;align-items:center;justify-content:center;line-height:1}@media (max-width: 400px){:root .MuiBottomNavigationAction-root{padding:0 6px;min-width:64px}:root .MuiBottomNavigationAction-root .MuiSvgIcon-root{width:.9em;height:.9em}:root .MuiBottomNavigationAction-root .MuiBottomNavigationAction-label{font-size:.65rem;font-weight:700}}:root{--bg: #0b0f17;--panel: #121a2a;--text: #e6eefc;--muted: #9bb0d3;--accent: #7aa2ff;--good: #3ddc97;--warn: #ffcc66;--bad: #ff6b6b}*{box-sizing:border-box}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;background:radial-gradient(1200px 600px at 20% 0%,#182345 0%,var(--bg) 55%) fixed;color:var(--text)}.wrap{margin:24px auto;padding:0 16px 48px}header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}h1{font-size:20px;margin:0 0 6px;letter-spacing:.2px}.sub{color:var(--muted);font-size:13px;line-height:1.4}.row{display:grid;grid-template-columns:1.5fr .5fr;gap:16px}@media (max-width: 900px){.row{grid-template-columns:1fr}}.card{background:linear-gradient(180deg,#ffffff0a,#ffffff05);border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:16px;box-shadow:0 10px 30px #00000059}.card h2{margin:0 0 10px;font-size:14px;letter-spacing:.2px;color:#cfe0ff}.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center}button,input[type=file]::file-selector-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:var(--text);border-radius:12px;padding:10px 12px;font-size:13px;cursor:pointer;transition:transform .05s ease,background .15s ease,border-color .15s ease}button:hover,input[type=file]::file-selector-button:hover{background:#ffffff1a;border-color:#7aa2ff66}button:active{transform:translateY(1px)}button.primary{background:#7aa2ff2e;border-color:#7aa2ff80}button.primary:hover{background:#7aa2ff42}.slider{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}input[type=range]{width:160px}.status{margin-top:10px;font-size:12px;color:var(--muted);display:flex;gap:12px;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:#0000002e}.dot{width:8px;height:8px;border-radius:50%;background:var(--warn)}.dot.good{background:var(--good)}.dot.bad{background:var(--bad)}.keyboard{display:grid;gap:10px;margin-top:14px}.kb-row{display:grid;gap:4px}.key{-webkit-user-select:none;user-select:none;padding:14px 0;background:linear-gradient(180deg,#ffffff0f,#ffffff08);position:relative;overflow:hidden;min-height:86px;display:flex;flex-direction:column;align-items:center;justify-content:space-between}.key .k{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;font-weight:800;font-size:20px;background:#0000002e;border:1px solid rgba(255,255,255,.08);color:#d6e4ff;margin-bottom:4px}.key .label{font-size:12px;color:#cfdcff;white-space:nowrap;overflow:hidden;max-width:100%}.key .hint{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.key.assigned .k{border-color:#3ddc9780}.key.recording,.key.playing{border-color:#7aa2ffcc;box-shadow:0 0 0 3px #7aa2ff26}.key.playing:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(420px 140px at 50% 10%,rgba(122,162,255,.22),transparent 60%);pointer-events:none}.help{display:grid;gap:10px;color:var(--muted);font-size:13px;line-height:1.45}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px;padding:2px 6px;border-radius:8px;background:#0003;border:1px solid rgba(255,255,255,.08);color:#d8e6ff}.mapping{margin-top:10px;display:grid;gap:10px}.mapRow{display:grid;grid-template-columns:62px 1fr 110px;gap:10px;align-items:center;padding:10px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:#00000024}.mapRow .keycap{display:inline-flex;align-items:center;justify-content:center;height:34px;border-radius:12px;font-weight:900;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#d6e4ff}.mapRow .file{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#cfe0ff;font-size:12px}.mapRow .btns{display:flex;gap:8px;justify-content:flex-end}.tiny{padding:8px 10px;border-radius:10px;font-size:12px}.danger{border-color:#ff6b6b73}.danger:hover{border-color:#ff6b6bb3;background:#ff6b6b1f}.footer{margin-top:14px;color:#9bb0d3e6;font-size:12px}
