:root{--blue: #3182f6;--blue-pressed: #1b64da;--blue-weak: #e8f1fd;--bg: #f2f4f6;--surface: #ffffff;--surface-2: #f9fafb;--text: #191f28;--text-2: #4e5968;--sub: #8b95a1;--line: #e5e8eb;--line-2: #d1d6db;--key-dark: #333d4b;--coral: #ff6b6b;--t-blue: #3182f6;--t-coral: #ff6b6b;--t-mint: #15c47e;--t-violet: #8b5cf6;--t-amber: #ff9f1c;--r-sm: 12px;--r-md: 16px;--r-lg: 20px;--r-xl: 24px;--e1: 0 1px 2px rgba(0,0,0,.05), 0 1px 3px rgba(0,0,0,.04);--e2: 0 2px 8px rgba(17,24,39,.06), 0 1px 2px rgba(17,24,39,.06);--e3: 0 8px 24px rgba(17,24,39,.1), 0 2px 6px rgba(17,24,39,.06);--e-inset: inset 0 3px 8px rgba(17,24,39,.16);--spring: cubic-bezier(.34,1.56,.64,1);--ease: cubic-bezier(.4,0,.2,1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.screen{max-width:480px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;background:var(--bg)}.appbar{height:56px;display:flex;align-items:center;padding:0 20px;font-weight:700;font-size:18px;letter-spacing:-.3px}.content{flex:1;padding:4px 20px 28px}.t-display{font-size:30px;font-weight:800;letter-spacing:-.6px;line-height:1.25}.t-title{font-size:22px;font-weight:800;letter-spacing:-.4px}.t-body{font-size:15px;line-height:1.55;letter-spacing:-.2px}.t-cap{font-size:13px;letter-spacing:-.1px}.c-sub{color:var(--sub)}.c-sub2{color:var(--text-2)}.card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--e2);padding:18px}.btn{width:100%;border:0;border-radius:var(--r-md);padding:15px;font-size:16px;font-weight:700;letter-spacing:-.2px;background:var(--blue);color:#fff;cursor:pointer;transition:transform .1s var(--ease),background .1s ease,box-shadow .1s ease;touch-action:manipulation}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4}.input{width:100%;border:1.5px solid var(--line);border-radius:var(--r-sm);padding:15px;font-size:16px;background:var(--surface-2);transition:border-color .15s,background .15s}.input:focus{outline:none;border-color:var(--blue);background:#fff}.pad{position:relative;border:0;border-radius:22px;aspect-ratio:1;cursor:pointer;font-size:30px;font-weight:800;letter-spacing:-.5px;background:linear-gradient(180deg,#fff,#eef1f4);color:var(--key-dark);box-shadow:var(--e2),inset 0 1px #ffffffe6;transition:transform .12s var(--spring),box-shadow .12s var(--ease),background .12s var(--ease),color .12s;touch-action:manipulation;user-select:none;-webkit-user-select:none}.pad-sub{position:absolute;top:12px;left:0;right:0;font-size:11px;font-weight:700;color:var(--sub);letter-spacing:.3px}.pad[data-on=true]{background:linear-gradient(180deg,var(--accent, var(--blue)),var(--accent-d, var(--blue-pressed)));color:#fff;transform:scale(.95) translateY(2px);box-shadow:var(--e-inset)}.pad[data-on=true] .pad-sub{color:#ffffffd9}.segment{display:flex;gap:4px;padding:4px;background:var(--bg);border-radius:14px;box-shadow:inset 0 0 0 1px var(--line)}.seg{flex:1;border:0;border-radius:11px;padding:11px 0;font-weight:700;font-size:14.5px;letter-spacing:-.2px;background:transparent;color:var(--sub);cursor:pointer;transition:all .18s var(--ease)}.seg[data-on=true]{background:var(--surface);color:var(--text);box-shadow:var(--e1)}.chip{border:0;border-radius:999px;padding:9px 16px;font-weight:700;font-size:14px;cursor:pointer;background:var(--blue-weak);color:var(--blue);transition:transform .1s var(--ease)}.chip:active{transform:scale(.95)}.chip-ghost{background:var(--bg);color:var(--text-2)}.track-av{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:15px;flex:none;box-shadow:var(--e1)}.track-av[data-playing=true]{animation:bounce .5s var(--spring) infinite}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182766;z-index:40;animation:fade .2s ease both}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:50;max-width:480px;margin:0 auto;background:var(--surface);border-radius:24px 24px 0 0;padding:8px 20px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -8px 32px #00000029;animation:sheetUp .28s var(--spring) both}.sheet-grip{width:40px;height:4px;border-radius:2px;background:var(--line-2);margin:8px auto 14px}.sheet-row{display:flex;align-items:center;gap:14px;width:100%;border:0;background:transparent;padding:14px 6px;cursor:pointer;border-radius:12px;transition:background .12s}.sheet-row:active{background:var(--bg)}.sheet-row[data-on=true]{background:var(--blue-weak)}.fade{animation:fadeUp .22s var(--ease) both}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes bounce{0%,to{transform:translateY(0)}35%{transform:translateY(-7px)}}@keyframes beat{0%{transform:scale(1)}50%{transform:scale(1.5)}to{transform:scale(1)}}.pulse{animation:pulse 1.4s var(--ease) infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.03);opacity:.8}}.fx-pop{animation:fxPop .62s var(--ease) forwards;will-change:transform,opacity}@keyframes fxPop{0%{transform:translate(-50%,-50%) scale(.4) rotate(-12deg);opacity:0}25%{opacity:1}to{transform:translate(-50%,-90%) scale(1.7) rotate(10deg);opacity:0}}.gstring-vib{animation:gstring .11s linear infinite;will-change:transform}@keyframes gstring{0%,to{transform:translateY(0)}25%{transform:translateY(-1.6px)}75%{transform:translateY(1.6px)}}
