:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--main-bg: #0c1117;--primary-accent: #00c0ff;--primary-text: #f4f7fb;--panel-bg: rgba(255, 255, 255, .04);--panel-border: rgba(255, 255, 255, .1);--muted-text: rgba(244, 247, 251, .65);--beat-accent: #00ffe0;--beat-normal: rgba(255, 255, 255, .2);--beat-silent: rgba(255, 255, 255, .1);--precount-accent: #ff4d6d;--beat-pill-size: 48px;--beat-grid-gap: 12px;--play-button-size: 140px;--tap-button-size: calc(var(--play-button-size) * .66);--step-button-size: calc(var(--play-button-size) / 3 * .8)}body.theme-nord{--main-bg: #2e3440;--primary-accent: #b48ead;--primary-text: #e5e9f0;--panel-bg: rgba(52, 61, 75, .85);--panel-border: rgba(255, 255, 255, .12);--beat-accent: #f6d6ff;--beat-normal: rgba(229, 233, 240, .25);--beat-silent: rgba(229, 233, 240, .1);--precount-accent: #ff8ba0}body.theme-dva{--main-bg: #26172c;--primary-accent: #ff46c1;--primary-text: #f7f2ff;--panel-bg: rgba(255, 255, 255, .05);--panel-border: rgba(255, 255, 255, .08);--beat-accent: #ffabf0;--beat-normal: rgba(247, 242, 255, .25);--beat-silent: rgba(247, 242, 255, .12);--precount-accent: #ff7ac2}body.theme-mono{--main-bg: #111317;--primary-accent: #9bf6ff;--primary-text: #f5f5f5;--panel-bg: rgba(255, 255, 255, .05);--panel-border: rgba(255, 255, 255, .2);--beat-accent: #f1f1f1;--beat-normal: rgba(255, 255, 255, .35);--beat-silent: rgba(255, 255, 255, .15);--precount-accent: #ff6b6b}body.theme-neon{--main-bg: radial-gradient(circle at 20% 20%, #171717, #05050a 65%);--primary-accent: #00f6ff;--primary-text: #e7faff;--panel-bg: rgba(0, 255, 247, .06);--panel-border: rgba(0, 255, 247, .35);--beat-accent: #ff5ce3;--beat-normal: rgba(255, 255, 255, .35);--beat-silent: rgba(255, 255, 255, .16);--precount-accent: #ff315e}body.theme-paper{--main-bg: #f6f1e7;--primary-accent: #e07a5f;--primary-text: #2a1f16;--panel-bg: rgba(255, 255, 255, .85);--panel-border: rgba(42, 31, 22, .12);--beat-accent: #f2cc8f;--beat-normal: rgba(42, 31, 22, .25);--beat-silent: rgba(42, 31, 22, .12);--precount-accent: #c44536}body.theme-retro{--main-bg: #2c2a1d;--primary-accent: #ffb703;--primary-text: #fef9e7;--panel-bg: rgba(20, 19, 12, .8);--panel-border: rgba(255, 183, 3, .35);--beat-accent: #fb8500;--beat-normal: rgba(254, 249, 231, .35);--beat-silent: rgba(254, 249, 231, .12);--precount-accent: #ff4d00}body.theme-desert{--main-bg: linear-gradient(180deg, #ffcdb2 0%, #ffb4a2 45%, #c28f70 100%);--primary-accent: #6d6875;--primary-text: #2a0900;--panel-bg: rgba(255, 255, 255, .6);--panel-border: rgba(106, 61, 39, .25);--beat-accent: #b56576;--beat-normal: rgba(42, 9, 0, .35);--beat-silent: rgba(42, 9, 0, .15);--precount-accent: #ff595e}body.theme-pene{--main-bg: #d8bfc0;--primary-accent: #c489af;--primary-text: #000000;--panel-bg: #d8bfc0;--panel-border: #848482;--beat-accent: #5c656a;--beat-normal: #4f4f4f;--beat-silent: #a79d9f;--precount-accent: #c7e9af}body.theme-moln{--main-bg: #2b6472;--primary-accent: #59c4db;--primary-text: #ffffff;--panel-bg: #4a7b88;--panel-border: #235663;--beat-accent: #347886;--beat-normal: #74909a;--beat-silent: #1e4a55;--precount-accent: #b56576}body.theme-infig{--main-bg: #597699;--primary-accent: #599995;--primary-text: #ffffff;--panel-bg: #202020;--panel-border: #202020;--beat-accent: #3e5b69;--beat-normal: #8794a6;--beat-silent: #696374;--precount-accent: #f45d61}body.theme-memo{--main-bg: #dacdc5;--primary-accent: #b4330a;--primary-text: #424242;--panel-bg: #c6bab4;--panel-border: #c7bdb9;--beat-accent: #883019;--beat-normal: #beb7b5;--beat-silent: #7b7674;--precount-accent: #1e191c}body.theme-ipls{--main-bg: #15150d;--primary-accent: #e7f637;--primary-text: #eef0ec;--panel-bg: #383838;--panel-border: #5b6067;--beat-accent: #7d8726;--beat-normal: #515252;--beat-silent: #2c2d2b;--precount-accent: #75508f}*{box-sizing:border-box}button,input,textarea,select{font-family:inherit}body{margin:0;min-height:100vh;font-family:SF Pro Display,SF Pro Text,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:radial-gradient(circle at top left,rgba(255,255,255,.08),transparent 50%),radial-gradient(circle at bottom right,rgba(0,192,255,.2),transparent 50%),var(--main-bg);color:var(--primary-text);display:flex;justify-content:center;padding:2rem}.app-container{width:min(960px,100%);display:flex;flex-direction:column;gap:1.75rem}.app-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem}.app-header-right{display:inline-flex;align-items:flex-start;gap:1rem;flex-wrap:wrap;justify-content:flex-end}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;color:var(--primary-text);margin:0 0 .25rem;display:flex;align-items:center;gap:.35rem}.brand-mark{font-style:italic;text-transform:none;letter-spacing:.05em;font-weight:600;display:inline-flex;align-items:center;color:var(--primary-text)}.brand-logo{height:1rem;width:auto;display:inline-block;object-fit:contain}.brand-mark-text{display:inline-flex;align-items:center}.app-header h1{font-size:clamp(2.75rem,6vw,4rem);margin:0;letter-spacing:-1px}.tempo-hero-display,.tempo-hero-input{font-size:clamp(2.75rem,6vw,4rem);font-weight:600;letter-spacing:-1px;color:var(--primary-text);font-family:inherit}.tempo-hero-display{background:none;border:none;padding:0;margin:0;color:inherit;cursor:text}.tempo-hero-input{width:min(220px,100%);background:transparent;border:none;border-bottom:2px solid var(--primary-accent);padding:.1rem 0;outline:none;text-align:left}.theme-picker{position:relative;display:inline-flex;align-items:center}.pill-btn--trigger{min-width:120px;justify-content:center}.theme-picker-panel{position:absolute;top:calc(100% + .5rem);right:0;padding:.75rem;border-radius:20px;background:#818181;border:1px solid var(--panel-border);box-shadow:0 20px 45px #0006;z-index:5;min-width:280px}.theme-picker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.theme-option-btn{width:100%;text-align:center;white-space:nowrap}.theme-picker-divider{width:100%;height:1px;background:var(--panel-border);margin:.85rem 0}.save-settings-row{display:flex;flex-direction:column;gap:.45rem}.save-settings-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--primary-text)}.save-settings-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.save-settings-btn{width:100%;justify-content:center}.pill-btn{border:1px solid var(--panel-border);background:transparent;color:var(--primary-text);border-radius:999px;padding:.5rem 1rem;font-size:.9rem;letter-spacing:.03em;transition:background .15s ease,border-color .15s ease}.pill-btn--active{background:var(--primary-accent);border-color:transparent;color:#050608}.beat-control-panel{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:2rem}.beat-grid-wrapper{flex:0 0 auto;display:flex;justify-content:center;width:100%}.beat-grid{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--beat-grid-gap)}.beat-row{display:flex;justify-content:center;gap:var(--beat-grid-gap);width:100%}.tempo-panel{gap:1.5rem}.tempo-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"slider slider" "beats precount" "note tap" "volume tap";gap:1.25rem}.tempo-slider-row{display:flex;align-items:center;justify-content:center;gap:1.25rem;grid-area:slider}.tempo-slider{flex:1;max-width:520px;accent-color:var(--primary-accent)}.volume-slider{width:100%;max-width:none}.tempo-area{display:flex;flex-direction:column;gap:.75rem;padding:0;border:none;background:transparent;align-items:flex-start}.tempo-area--left{text-align:left}.tempo-area--right{align-items:flex-end;text-align:right}.tempo-area--beats{grid-area:beats}.tempo-area--precount{grid-area:precount}.tempo-area--note{grid-area:note}.tempo-area--volume{grid-area:volume;width:100%}.tempo-area--tap{grid-area:tap;justify-content:center;gap:1rem}.tempo-area-title{margin:0;font-size:.85rem;color:var(--primary-text);text-transform:uppercase;letter-spacing:.08em;width:100%}@media(max-width:720px){body{display:block;padding:1rem}.app-container{width:100%;padding:0}.app-header{flex-direction:column;align-items:flex-start;gap:.75rem}.app-header-right{width:100%;justify-content:space-between}.tempo-layout{grid-template-columns:1fr;grid-template-areas:"slider" "beats" "precount" "note" "tap" "volume"}.tempo-area--tap{align-items:center;text-align:center}}.tempo-step-btn{width:var(--step-button-size);height:var(--step-button-size);aspect-ratio:1 / 1;flex:0 0 var(--step-button-size);padding:0;border-radius:50%;border:2px solid rgba(255,255,255,.45);background:transparent;color:var(--primary-text);font-size:1.35rem;font-weight:700;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease,color .12s ease;display:inline-flex;align-items:center;justify-content:center;line-height:1;box-shadow:none}.tempo-step-btn:hover{transform:translateY(-2px);border-color:var(--primary-accent);color:var(--primary-accent)}.tempo-step-btn--small{width:var(--step-button-size);height:var(--step-button-size)}.tempo-value-row{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%}.tempo-value{font-size:1.5rem;font-weight:600}.note-value-group{display:inline-flex;border:1px solid var(--panel-border);border-radius:999px;overflow:hidden;background:#00000040;max-width:260px;width:100%}.note-value-btn{flex:1;border:none;background:transparent;color:var(--primary-text);padding:.45rem .75rem;font-weight:600;letter-spacing:.03em;cursor:pointer;transition:background .12s ease,color .12s ease}.note-value-btn+.note-value-btn{border-left:1px solid var(--panel-border)}.note-value-btn--active{background:var(--primary-accent);color:#050608}.tempo-area--left .tempo-value-row{justify-content:flex-start}.tempo-area--right .tempo-value-row{justify-content:flex-end}.tempo-area--volume .volume-slider{width:100%;max-width:280px}input[type=range]{accent-color:var(--primary-accent)}.tap-btn{width:var(--tap-button-size);height:var(--tap-button-size);border-radius:50%;border:none;font-weight:600;letter-spacing:.05em;background:var(--primary-accent);color:#050608;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;box-shadow:0 10px 20px #00000040;display:inline-flex;align-items:center;justify-content:center}.tap-btn:hover{transform:translateY(-2px)}.panel input[type=number]{width:100%;padding:.65rem .75rem;border-radius:12px;border:1px solid var(--panel-border);background:#00000026;color:var(--primary-text);font-size:1rem}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.accent-panel{align-items:center}.beat-grid{width:min(520px,100%);aspect-ratio:1 / 1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.85rem;margin:0 auto;padding:1rem}.beat-row{display:flex;justify-content:center;gap:.65rem;width:100%}.beat-pill{position:relative;width:var(--beat-pill-size);aspect-ratio:1 / 1;border-radius:50%;border:1px solid var(--panel-border);background:#00000059;display:inline-flex;align-items:center;justify-content:center;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}.beat-pill:after{content:"";position:absolute;inset:0;border-radius:50%;background:transparent;opacity:0;pointer-events:none}.beat-pill-core{width:calc(var(--beat-pill-size) / 2);aspect-ratio:1 / 1;border-radius:50%;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform .14s ease,box-shadow .14s ease,background .14s ease,opacity .14s ease}.beat-pill-core:focus-visible{outline:none;box-shadow:0 0 0 2px #05060859,0 0 0 4px #ffffff59}.beat-pill-core--accent{background:var(--primary-accent)}.beat-pill-core--normal{background:var(--beat-accent)}.beat-pill-core--silent{background:var(--beat-normal);opacity:.65}.beat-pill--active{transform:translateY(-4px);box-shadow:0 12px 28px #00000059}.beat-pill--active:after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--primary-accent);animation:beat-blink .45s ease-out}.beat-pill--precount:before{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--precount-accent);animation:pre-count-ring .45s ease-out;pointer-events:none}@keyframes beat-blink{0%{transform:scale(.85);opacity:.45}to{transform:scale(1.15);opacity:0}}@keyframes pre-count-ring{0%{transform:scale(.9);opacity:.9}to{transform:scale(1.2);opacity:0}}.play-area{margin-top:auto;padding-top:1rem;display:flex;justify-content:center;align-items:center;gap:1.5rem;position:sticky;bottom:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.15));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.sound-bank{display:flex;flex-direction:column;gap:.75rem;margin-right:.5rem;min-width:220px}.sound-bank-row{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:.5rem;font-size:.85rem;color:var(--primary-text)}.sound-bank-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--primary-text)}.sound-select{width:100%;border-radius:999px;border:1px solid var(--panel-border);background:#00000059;color:var(--primary-text);padding:.35rem .75rem;font-size:.85rem}.sound-select:focus-visible{outline:2px solid var(--primary-accent);outline-offset:2px}.sound-chip{width:14px;height:14px;border-radius:50%;display:inline-block}.sound-chip--accent{background:var(--primary-accent)}.sound-chip--normal{background:var(--beat-accent)}.sound-chip--silent{background:var(--beat-normal)}.sound-bank-hint{margin:0;font-size:.75rem;color:var(--muted-text)}.play-btn{width:var(--play-button-size);height:var(--play-button-size);border-radius:50%;border:none;background:var(--primary-accent);color:#050608;font-size:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;box-shadow:0 20px 40px #00000059;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;display:flex;align-items:center;justify-content:center;text-align:center}.play-btn:hover{transform:translateY(-3px);box-shadow:0 24px 50px #0006}.play-btn:active{transform:translateY(-1px)}@media(max-width:600px){body{padding:1.25rem}:root{--beat-pill-size: 36px;--beat-grid-gap: 8px;--play-button-size: 110px;--tap-button-size: calc(var(--play-button-size) * .66)}.tempo-slider-row{flex-direction:column;gap:.75rem}.tempo-slider{max-width:none;width:100%}.tempo-grid{grid-template-columns:1fr}.beat-control-panel{flex-direction:column;align-items:center}.beat-grid-wrapper{width:100%;justify-content:center}.beat-grid{padding:.5rem;gap:var(--beat-grid-gap)}.play-area{flex-direction:column;position:static;width:100%;padding-top:1.5rem;gap:1rem;-webkit-backdrop-filter:none;backdrop-filter:none;background:#00000040}.sound-bank{width:100%;margin-right:0}.sound-bank-row{grid-template-columns:auto 1fr;grid-template-rows:auto}.sound-bank-label{font-size:.72rem}.sound-select{grid-column:1 / -1}}
