*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}:root{--red:#E8130A;--red-text:#FF5C54;--red-dark:#C8100A;--red2:#FF3B30;--brass:#A8863B;--brass-text:#D4B86E;--ok:#2FA36B;--paper:#0E1116;--card:#161C25;--card2:#1D2430;--ink:#0E1116;--ink2:#161C25;--band:linear-gradient(135deg,#1A212C,#0E1116);--alt-text:rgba(255,255,255,.92);--mut:rgba(255,255,255,.60);--line:rgba(255,255,255,.12);--linew:rgba(255,255,255,.12);--radius:14px;--bg:var(--paper);--muted:var(--mut);--border:var(--line);--panel:var(--card);--panel2:var(--card2);--white:#fff;--card-glow:0 0 0 1px rgba(255,255,255,.06)}.header-title{font-size:11px;font-weight:600;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;margin-top:4px}.wrap{width:100%;max-width:560px;display:flex;flex-direction:column;gap:16px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:20px}.panel-title{font-size:10px;font-weight:600;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;margin-bottom:14px}.bpm-display{text-align:center;padding:20px 0 10px}.bpm-number{font-size:96px;font-weight:800;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums;transition:color .1s}.bpm-number.flash{color:var(--red-text)}.bpm-label{font-size:12px;font-weight:600;letter-spacing:.18em;color:var(--muted);text-transform:uppercase;margin-top:4px}.tempo-name{font-size:13px;font-weight:700;color:var(--red-text);letter-spacing:.08em;text-transform:uppercase;margin-top:8px;min-height:20px}input[type=range]{width:100%;accent-color:var(--red);height:6px;cursor:pointer}.bpm-btns{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:12px}.bpm-btn{padding:10px 18px;border-radius:10px;border:1px solid var(--border);background:var(--panel2);color:var(--white);font-family:'Inter Tight',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:all .15s}.bpm-btn:hover{border-color:var(--red)}.pendulum-wrap{height:80px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.pendulum-track{width:100%;height:4px;background:var(--card2);border-radius:2px;position:relative}.pendulum-ball{width:24px;height:24px;border-radius:50%;background:var(--red);position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 16px rgba(232,19,10,.5)}.beat-dots{display:flex;justify-content:center;gap:10px;margin-bottom:8px}.beat-dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--border);background:transparent;transition:all .08s}.beat-dot.active{background:var(--red);border-color:var(--red);box-shadow:0 0 10px rgba(232,19,10,.5)}.beat-dot.accent{border-color:#ff6600}.beat-dot.active.accent{background:#ff6600;border-color:#ff6600}.play-btn{width:72px;height:72px;border-radius:50%;background:var(--red);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .18s;box-shadow:0 0 24px rgba(232,19,10,.3)}.play-btn:hover{background:var(--red-dark)}.play-btn svg{width:28px;height:28px;fill:var(--white)}.controls-row{display:flex;justify-content:center;align-items:center;gap:16px}.tap-btn{padding:14px 24px;border-radius:12px;border:1px solid var(--border);background:var(--panel2);color:var(--white);font-family:'Inter Tight',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:all .15s;letter-spacing:.06em;text-transform:uppercase}.tap-btn:hover{border-color:var(--red)}.sel-grid{display:flex;gap:6px;flex-wrap:wrap}.sel-btn{padding:8px 14px;border-radius:9px;border:1px solid var(--border);background:var(--panel2);color:var(--muted);font-family:'Inter Tight',system-ui,-apple-system,sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.sel-btn:hover{border-color:var(--line);color:var(--white)}.sel-btn.active{border-color:var(--red);background:rgba(232,19,10,.1);color:var(--red-text)}.accent-beats{display:flex;gap:6px;flex-wrap:wrap}.accent-beat{width:38px;height:38px;border-radius:8px;border:1px solid var(--border);background:var(--panel2);cursor:pointer;font-family:'Inter Tight',system-ui,-apple-system,sans-serif;font-size:11px;font-weight:700;color:var(--muted);transition:all .15s;display:flex;align-items:center;justify-content:center}.accent-beat.accent{background:rgba(255,102,0,.15);border-color:#ff6600;color:#ff6600}.swing-row{display:flex;align-items:center;gap:10px}.swing-label{font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;min-width:50px}.swing-val{font-size:13px;font-weight:700;color:var(--white);min-width:35px;text-align:right}.trainer-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.trainer-input{background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:8px 12px;color:var(--white);font-family:'Inter Tight',system-ui,-apple-system,sans-serif;font-size:13px;width:70px;outline:none;text-align:center}.trainer-input:focus{border-color:var(--red)}.trainer-btn{padding:9px 16px;border-radius:9px;border:1px solid var(--border);background:var(--panel2);color:var(--white);font-family:'Inter Tight',system-ui,-apple-system,sans-serif;font-size:12px;font-weight:700;cursor:pointer;transition:all .15s}.trainer-btn:hover{border-color:var(--red)}.trainer-btn.active{border-color:var(--red);background:rgba(232,19,10,.1);color:var(--red-text)}.trainer-info{font-size:11px;color:var(--muted);margin-top:6px}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.cursor,.cursor-ring{display:none!important}}@media (hover:none),(pointer:coarse){*{cursor:auto!important}.cursor,.cursor-ring{display:none!important}}.rec-seo a{color:#ff5c54;text-decoration:none}.rec-seo a:hover{text-decoration:underline}.rec-seo ul a{display:inline-block;background:var(--card2);border:1px solid #2a2a2a;color:var(--alt-text);padding:7px 13px;border-radius:20px;font-size:13px;font-weight:600}.rec-seo ul a:hover{background:#E8130A;color:#fff;border-color:#E8130A;text-decoration:none}