:root{color-scheme:dark;--bg:#121413;--panel:#1a1d1b;--line:#353a36;--muted:#a5ada6;--paper:#e9ece3;--accent:#d6ee7b;--red:#fc747c;--yellow:#edcc65;--blue:#76b8ec;--green:#91cf99;--kick:#e5a16d;font-family:Inter,"Segoe UI",Arial,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--paper);font-size:16px}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{opacity:.45;cursor:wait}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button{color:var(--paper);border:1px solid var(--line);background:transparent;border-radius:5px;min-height:44px;padding:10px 16px}button:hover{background:#2a302b}button[aria-pressed=true]{background:var(--paper);color:var(--bg);border-color:var(--paper)}[hidden]{display:none!important}.masthead,main,footer{max-width:1440px;margin:auto}.masthead{height:84px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:32px;padding:0 40px;font-size:12px;letter-spacing:1.5px;font-weight:650}.wordmark{display:flex;align-items:center;gap:12px;font-size:15px;letter-spacing:2px}.mark{font-size:32px;font-weight:900;color:var(--accent);letter-spacing:-6px;margin-right:6px}.edition{color:var(--muted)}.draft{margin-left:auto;font-size:10px;letter-spacing:1.3px;border:1px solid #62694e;color:#d9e3b7;padding:6px 9px;border-radius:3px}main{display:grid;grid-template-columns:300px minmax(0,1fr);gap:64px;padding:40px}.art{position:relative;overflow:hidden;background:#252925}.art img{width:100%;height:auto;display:block;filter:contrast(1.07)}.art-label{position:absolute;bottom:13px;left:14px;font-size:8px;letter-spacing:1.4px;color:#fff;text-shadow:0 1px 4px #000}.eyebrow{font-size:11px;font-weight:650;letter-spacing:2px;color:var(--muted);margin:0 0 10px}.song-panel>.eyebrow{margin-top:28px;color:var(--accent)}h1{font-size:36px;letter-spacing:-1.5px;line-height:1.15;margin:0 0 10px;font-weight:650}.album-name{font-size:14px;color:var(--muted);line-height:1.5;margin:0}.metadata{display:flex;justify-content:space-between;padding:22px 0;border-bottom:1px solid var(--line);gap:8px;font-size:9px;letter-spacing:1px;color:var(--muted)}.metadata b{display:block;color:var(--paper);font-size:16px;font-weight:550;letter-spacing:0;margin-bottom:5px}.section-box{margin:25px 0}.section-box p{font-size:16px;margin:9px 0 16px}.section-meter{height:2px;background:var(--line)}.section-meter i{display:block;height:100%;background:var(--accent);width:0}.help{border-top:1px solid var(--line);padding-top:17px}.help summary,.settings summary{cursor:pointer;list-style:none;font-size:14px;color:var(--paper)}.help summary{display:flex;justify-content:space-between}.help summary span{color:var(--muted)}.help p,.settings p{color:var(--muted);font-size:13px;line-height:1.7}.help kbd{font-size:11px;border:1px solid #515951;border-radius:3px;padding:1px 4px;color:var(--paper)}.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:11px!important}.downloads{border-top:1px solid var(--line);margin-top:22px}.downloads a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:17px 0;border-bottom:1px solid var(--line);font-size:14px}.downloads a:hover{color:var(--accent)}.downloads span{font-size:10px;letter-spacing:1px;color:var(--muted)}.draft-note{font-size:11px;color:var(--muted);line-height:1.7;max-width:280px}.workspace-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}h2{font-size:25px;letter-spacing:-.8px;margin:0;font-weight:550}.view-tabs{display:flex;border:1px solid var(--line);padding:3px;border-radius:6px;gap:2px}.view-tabs button{font-size:12px;min-height:34px;padding:8px 12px;border:0}.transport{display:flex;align-items:center;gap:10px;padding:16px 0;border-top:1px solid var(--line)}.primary{background:var(--accent);border-color:var(--accent);color:#181d0e;min-width:112px;font-weight:650;font-size:14px}.primary:hover{background:#e2f3a5}.icon-button{font-size:22px;padding:5px 13px}.mode-switch{display:flex;margin-left:6px;gap:2px}.mode-switch button{font-size:12px;border:0;min-height:36px;padding:8px 13px}.speed-label{display:flex;align-items:center;gap:9px;margin-left:auto;color:var(--muted);font-size:12px}select{background:#222723;border:1px solid #485048;border-radius:4px;padding:8px 28px 8px 9px;color:var(--paper);min-height:37px;font-size:13px;max-width:100%}.timeline{display:flex;align-items:center;gap:12px;padding:0 0 18px;font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted)}input[type=range]{accent-color:var(--accent);cursor:pointer;height:16px;margin:0;min-width:0}.timeline input{flex:1}.stage{position:relative;border:1px solid #434b42;border-radius:8px 8px 0 0;overflow:hidden;height:440px;background:#0b100e}.scoreboard{display:flex;gap:36px;position:absolute;top:22px;left:26px;right:26px;z-index:2;pointer-events:none}.scoreboard div:first-child{margin-right:auto}.scoreboard span{display:block;font-size:9px;letter-spacing:1.7px;color:#a5b3a8;margin-bottom:6px}.scoreboard b{font-weight:500;letter-spacing:.3px;font-variant-numeric:tabular-nums;font-size:22px}.scoreboard div:first-child b{color:var(--accent)}canvas{display:block;width:100%;height:100%}.stage-message{position:absolute;top:41%;left:16px;right:16px;text-align:center;pointer-events:none;text-shadow:0 2px 12px #000;background:#0d130eed;padding:19px 12px;border-top:1px solid #354336;border-bottom:1px solid #354336}.stage-message strong{font-size:25px;font-weight:500;display:block;letter-spacing:-.7px}.stage-message .eyebrow{font-size:9px;color:var(--accent)}.stage-message p{font-size:13px;color:#b5c2b8;margin:9px 0 0}.judgment{position:absolute;top:29%;width:100%;text-align:center;pointer-events:none;font-size:17px;font-weight:650;letter-spacing:2px;color:var(--accent)}.stage-footer{position:absolute;bottom:12px;left:18px;right:18px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.5px;color:#a3b0a5;pointer-events:none}.pads{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:10px;background:#181e19;border:1px solid #434b42;border-top:0;border-radius:0 0 8px 8px;touch-action:none}.pad{--c:var(--paper);border-color:color-mix(in srgb,var(--c) 45%,#202620);background:color-mix(in srgb,var(--c) 7%,#151b16);border-top:3px solid var(--c);color:var(--c);padding:8px;min-height:56px;display:flex;align-items:center;justify-content:center;gap:12px;touch-action:none;user-select:none}.pad kbd{font:600 15px "Segoe UI",sans-serif}.pad span{font-size:8px;letter-spacing:1px}.pad.red{--c:var(--red)}.pad.yellow{--c:var(--yellow)}.pad.blue{--c:var(--blue)}.pad.green{--c:var(--green)}.pad.kick{--c:var(--kick);grid-column:1/-1;min-height:36px;border-top-width:1px}.pad.kick kbd{font-size:10px;letter-spacing:1px}.pad.active,.pad:active{background:var(--c);color:#101610}.practice{display:flex;gap:18px;align-items:end;padding:22px 0;border-bottom:1px solid var(--line)}.practice>label:first-child{flex:1;max-width:300px}.practice label{display:flex;flex-direction:column;gap:8px;font-size:11px;color:var(--muted)}.practice label.loop{flex-direction:row;align-items:center;gap:6px;padding-bottom:10px;white-space:nowrap}input[type=checkbox]{accent-color:var(--accent)}.practice .volume{margin-left:auto;max-width:110px;padding-bottom:10px}.volume input{width:100%}.settings{padding:19px 0 0}.settings summary{font-size:12px;color:var(--muted)}.settings summary::after{content:' +';color:var(--accent)}.settings[open] summary::after{content:' −'}.settings-body{padding-top:16px}.settings label{display:grid;grid-template-columns:1fr auto;gap:12px;max-width:340px;font-size:12px}.settings input{grid-column:1/-1;width:100%}.settings output{color:var(--accent)}.status{font-size:11px;color:var(--muted);line-height:1.6;min-height:18px}.status.error{color:var(--red)}footer{border-top:1px solid var(--line);padding:24px 40px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.4px;color:var(--muted)}.score-intro{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted)}.score-intro a{color:var(--accent)}.score-pages{max-height:572px;overflow:auto;background:#dedfd9;border-radius:5px;overscroll-behavior:contain}.score-pages img{display:block;width:100%;height:auto;margin-bottom:10px}.score-pages img:last-child{margin-bottom:0}
@media(min-width:1450px){main{padding-top:54px}.stage{height:500px}}
@media(max-width:1100px){main{grid-template-columns:240px minmax(0,1fr);gap:32px;padding:30px}.masthead{padding:0 30px}.pad{gap:7px}.pad span{font-size:7px}.workspace-heading{align-items:flex-start;gap:10px}.view-tabs button{padding:8px;font-size:11px}.practice{gap:12px}.practice .volume{max-width:80px}h1{font-size:31px}.scoreboard{gap:22px}}
@media(max-width:800px){.masthead{height:65px;padding:0 20px}.edition{display:none}main{display:flex;flex-direction:column;padding:22px 20px;gap:25px}.song-panel{display:grid;grid-template-columns:86px minmax(0,1fr);column-gap:18px}.art{grid-row:1/5}.art-label{display:none}.song-panel>.eyebrow{margin:2px 0 6px;font-size:10px}.song-panel h1{font-size:30px;margin-bottom:6px}.album-name{font-size:12px}.metadata{grid-column:1/-1;justify-content:flex-start;gap:28px;padding:17px 0 0;border:0}.metadata b{display:inline;margin-right:5px;font-size:12px}.metadata span{font-size:9px}.section-box,.song-panel .help{display:none}.downloads{grid-column:1/-1;display:flex;gap:24px;margin-top:15px}.downloads a{flex:1;font-size:12px;padding:12px 0}.downloads span{font-size:9px}.draft-note{grid-column:1/-1;font-size:10px;max-width:none;margin-bottom:0}.workspace-heading{margin-bottom:17px}h2{font-size:22px}.workspace-heading .eyebrow{font-size:9px}.stage{height:400px}.pad span{font-size:8px}.practice{flex-wrap:wrap}.practice>label:first-child{max-width:none}.practice .volume{max-width:90px}.stage-footer{font-size:7px}.scoreboard{gap:26px}footer{padding:20px;font-size:8px}.score-pages{max-height:650px}}
@media(max-width:430px){.draft{font-size:8px}.wordmark{font-size:12px}.transport{gap:6px}.primary{min-width:95px;padding:10px}.mode-switch{margin:0}.mode-switch button{padding:8px}.speed-label{font-size:0;gap:0}.speed-label select{font-size:12px;width:73px;padding-left:6px;padding-right:15px}.pad{flex-direction:column;gap:3px;min-height:59px}.pad.kick{flex-direction:row}.practice .volume{display:none}.view-tabs button{font-size:10px}.scoreboard{left:18px;right:18px;gap:23px}.scoreboard b{font-size:20px}footer span{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
