:root{color-scheme:dark;--lime:#b6ff35;--pink:#ff5896;--gold:#f6c64a;--game-height:100dvh;font-family:Arial,Helvetica,sans-serif;background:#0b0714;color:#edf5e7}
*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit;cursor:pointer;border:1px solid #4a3c5a;background:#1a1424;border-radius:10px}
button:focus-visible,a:focus-visible{outline:3px solid #fff;outline-offset:3px}button:disabled{opacity:.55;cursor:wait}[hidden]{display:none!important}
#cabinet{height:var(--game-height);max-width:1100px;margin:auto;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);background:radial-gradient(ellipse at 50% 30%,#2a1638,#0b0714 70%)}
header{height:52px;display:flex;align-items:center;gap:9px;padding:5px 14px;flex-shrink:0;border-bottom:1px solid #2e2440}
header a{font-size:25px;padding:8px;text-decoration:none;color:#d9cbe8}.brand{font-size:11px;letter-spacing:2px;color:var(--pink);font-weight:900;flex:1}
.brand small{display:block;color:#e8e2ee;letter-spacing:.7px;font-size:10px;margin-top:4px}header button{height:37px;min-width:42px;font-size:10px;font-weight:800}#menu{font-size:19px}
.scoreboard{display:flex;justify-content:space-around;text-align:center;padding:7px 10px 3px;flex-shrink:0}
.scoreboard>div{min-width:84px}.scoreboard small{display:block;color:#b0a3bd;font-size:9px;letter-spacing:1.7px}.scoreboard strong{font-size:23px;line-height:1.3;font-variant-numeric:tabular-nums}
#score{color:var(--gold)}#combo{color:#fff}#mult{color:#b0a3bd}#mult[data-level="2"]{color:var(--lime)}#mult[data-level="3"]{color:var(--pink)}#mult[data-level="4"]{color:var(--gold);text-shadow:0 0 12px #f6c64a99}

#playfield{position:relative;flex:1;min-height:0;isolation:isolate;overflow:hidden}canvas{display:block;width:100%;height:100%}
#touchfield{position:absolute;inset:0;touch-action:none;z-index:1}
#songbar{position:absolute;z-index:2;left:12px;right:12px;top:8px;display:flex;gap:8px;align-items:baseline;font-size:11px;font-weight:900;letter-spacing:1px;color:#f3e9ff;text-shadow:0 1px 4px #000;pointer-events:none}
#songbar #songBpm{color:var(--lime);font-size:10px}#songbar i{flex:1;height:4px;align-self:center;border-radius:2px;background:#ffffff22;overflow:hidden}#songbar b{display:block;height:100%;background:linear-gradient(90deg,var(--lime),var(--pink));transform-origin:left;transform:scaleX(0)}
#countdown{position:absolute;z-index:2;inset:0;display:grid;place-items:center;font-size:96px;font-weight:900;color:#fff3c4;text-shadow:0 4px 18px #000,0 0 30px #ff5896aa;pointer-events:none}#countdown:empty{display:none}
#judgebox{position:absolute;z-index:2;left:0;right:0;top:30%;text-align:center;pointer-events:none}
#judge{display:block;font-size:30px;font-weight:900;letter-spacing:2px;text-shadow:0 2px 8px #000}#judge[data-j="1"]{color:#fff3a0}#judge[data-j="2"]{color:var(--lime)}#judge[data-j="3"]{color:#9ad0ff}#judge[data-j="4"]{color:#ff5577}
#judge.pop{animation:pop .22s ease-out}@keyframes pop{from{transform:scale(1.35)}to{transform:scale(1)}}
#comboText{display:block;margin-top:2px;font-size:14px;font-weight:900;color:#f3e9ff;letter-spacing:1.5px;text-shadow:0 2px 6px #000}
#notice{position:absolute;z-index:2;left:6%;right:6%;top:18%;text-align:center;font-size:20px;font-weight:900;color:#fff3c4;text-shadow:0 2px 8px #000,0 0 18px #ff589688;pointer-events:none;transition:opacity .16s}#notice:empty{opacity:0}
#patternCue{position:absolute;z-index:2;top:82px;left:50%;transform:translateX(-50%);max-width:calc(100% - 20px);padding:5px 9px;border:1px solid #f7edb677;border-radius:20px;background:#100a20df;color:#fff5b6;font-size:10px;font-weight:900;text-align:center;pointer-events:none;white-space:nowrap}#patternCue:empty{display:none}.lane.holding{outline:3px solid #fff6c8;outline-offset:-6px}.play-patterns{font-size:12px;line-height:1.5;color:#f4e4aa}
#controls{flex-shrink:0;display:grid;gap:4px;padding:8px 10px 4px}
#lanes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.lane{height:74px;border-radius:16px;border:0;font-weight:900;font-size:13px;color:#140a18;touch-action:none;user-select:none;-webkit-user-select:none;transition:transform .05s}
.lane b{opacity:.55;font-size:12px}
.lane:nth-child(1){background:var(--lime);box-shadow:0 5px 0 #5f8a14,0 0 18px #b6ff3544}.lane:nth-child(2){background:var(--pink);box-shadow:0 5px 0 #a3275a,0 0 18px #ff589644}.lane:nth-child(3){background:var(--gold);box-shadow:0 5px 0 #a87a14,0 0 18px #f6c64a44}
.lane:active,.lane.hit{transform:translateY(4px);filter:brightness(1.25)}.lane:active{box-shadow:0 1px 0 #0006}
.lane.hit{animation:lanehit .14s}@keyframes lanehit{from{filter:brightness(1.6)}to{filter:brightness(1)}}
#hint{margin:6px 0 0;font-size:11px;line-height:1.35;color:#b8adc6;text-align:center}
#legend{display:none;gap:7px;font-size:12px;color:#d6cce2}#legend b{display:flex;align-items:center;gap:9px;font-weight:700}#legend em{margin-left:auto;font-style:normal;color:var(--gold);font-weight:900}#legend p{margin:4px 0 0;font-size:11px;color:#a296b0;line-height:1.4}
#legend i{width:14px;height:14px;border-radius:50%}#legend i.p{background:#fff3a0}#legend i.g{background:var(--lime)}#legend i.o{background:#9ad0ff}
footer{text-align:center;color:#9286a0;font-size:8px;letter-spacing:.8px;padding:4px 4px calc(6px + env(safe-area-inset-bottom));flex-shrink:0}
.overlay{position:fixed;inset:0;z-index:20;height:var(--game-height);background:#07050cea;backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;padding:max(14px,env(safe-area-inset-top)) 14px max(14px,env(safe-area-inset-bottom));overflow:auto}
.overlay article{max-width:460px;max-height:100%;width:100%;overflow:auto;padding:24px;background:linear-gradient(140deg,#2a1838,#0e0c18);border:1px solid #5a466e;border-radius:22px;box-shadow:0 24px 90px #0009}
.eyebrow{display:block;color:var(--lime);font-size:10px;letter-spacing:1.8px;font-weight:900}h1{font-size:43px;letter-spacing:-1.5px;line-height:1;margin:14px 0 10px}h1 em{color:var(--pink);font-style:normal}
h2{font-size:28px;margin:12px 0}.lead{font-size:20px;line-height:1.25;margin:0 0 16px;color:#ddd2e8}
.lesson{display:grid;gap:5px;font-size:13px}.lesson b{color:#efe3fa;margin-top:8px}.lesson span{color:#b9adc6;line-height:1.4}.sub{font-size:11px;color:#a497b2;line-height:1.5}p{font-size:14px;line-height:1.5}
.primary,.secondary{width:100%;display:block;padding:14px 12px;text-align:center;border-radius:10px;margin-top:12px;font-size:12px;letter-spacing:.7px;font-weight:900;text-decoration:none}
.primary{background:var(--pink);color:#1a0610;border:0}.secondary{color:#e3d9ee;background:#2a2036;border:1px solid #5a466e}
.grade{float:right;margin:-6px 0 0 12px;font-size:72px;line-height:1;font-weight:900;color:#b0a3bd}.grade[data-grade="S"]{color:var(--gold);text-shadow:0 0 20px #f6c64a88}.grade[data-grade="A"]{color:var(--lime)}.grade[data-grade="B"]{color:var(--pink)}
.finalscore{display:block;clear:both;font-size:46px;color:var(--gold);font-variant-numeric:tabular-nums}
.counts{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0 2px;text-align:center}.counts span{background:#1a1424;border:1px solid #3a2e4a;border-radius:10px;padding:6px 2px;font-size:9px;letter-spacing:1px;color:#b0a3bd}.counts b{display:block;font-size:20px;color:#fff;letter-spacing:0}
.ap-cost{margin:14px 0}.overlay .ap-cost strong{font-size:11px}.overlay .ap-cost span{font-size:10px}.overlay .ap-receipt{margin:16px 0}.overlay .ap-receipt dl{gap:7px}.overlay .ap-receipt dt{font-size:9px}
/* Landscape: the lane buttons and the scoring legend sit beside the stage so the paths keep their height. */
@media (min-aspect-ratio:1.25){
 #cabinet{display:grid;grid-template-columns:1fr minmax(240px,320px);grid-template-rows:auto auto 1fr auto;column-gap:10px}
 header,.scoreboard,footer{grid-column:1/3}#playfield{grid-column:1;grid-row:3}
 #controls{grid-column:2;grid-row:3;grid-template-columns:1fr;align-content:center;padding:8px 14px 14px 0;gap:12px}#legend{display:grid}
 .lane{height:96px}
}
@media (max-height:430px) and (min-aspect-ratio:1.25){header{height:42px}.scoreboard{padding:2px 10px 0}.scoreboard strong{font-size:18px}footer{display:none}#hint{display:none}#legend{display:none}.lane{height:min(150px,calc(var(--game-height) - 150px))}#controls{align-content:end}}
@media (max-width:380px){.scoreboard strong{font-size:20px}#hint{font-size:10px}.lane{height:66px}}
/* Song list and music credits. */
#songlist{display:grid;gap:9px;margin:6px 0 4px}
.song{display:grid;gap:3px;text-align:left;padding:12px 14px;border-radius:14px;background:linear-gradient(120deg,#2a1838,#171222);border:1px solid #5a466e}
.song .d{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:7px}
.diff{display:grid;gap:1px;padding:8px 4px;border-radius:10px;border:0;font-weight:900;color:#140a18;text-align:center}
.diff b{font-size:12px;letter-spacing:1px}.diff small{font-size:9px;font-weight:800;opacity:.75}
.diff-easy{background:var(--lime)}.diff-normal{background:var(--gold)}.diff-hard{background:var(--pink)}
.diff:hover,.diff:focus-visible{filter:brightness(1.15)}
.lane small{display:block;font-size:9px;letter-spacing:1.2px;opacity:.65;margin-top:3px}
.song .t{font-size:17px;font-weight:900;color:#fff}.song .a{font-size:12px;font-weight:800;color:var(--pink)}.song .m{font-size:11px;color:var(--lime);font-weight:800;letter-spacing:.5px}.song .c{font-size:11px;color:#a497b2;line-height:1.35}
#songbar{flex-wrap:wrap;row-gap:2px}#songbar small{flex-basis:100%;font-size:10px;font-weight:700;letter-spacing:.5px;color:#d9cbe8}
.credits{margin:6px 0 0}
/* Grade tickets on the result screen come from the shared ArcadePlay.printTickets (arcade-play.css). */
@media (prefers-reduced-motion:reduce){#judge.pop{animation:none}}
/* Phones: the keyboard part of the hint is for keyboards only. */
@media (hover:none) and (pointer:coarse){#hint .keys{display:none}}
/* Sound blocked by the browser: a clear tap target over the stage. */
#soundFix{position:absolute;z-index:3;left:50%;top:30%;transform:translateX(-50%);max-width:88%;padding:12px 16px;border-radius:12px;border:2px solid var(--gold);background:#1a0f24ee;color:#fff3c4;font-weight:900;font-size:12px;letter-spacing:.6px;box-shadow:0 6px 24px #000a}
/* Song list close, song loading, audio offset and the tap test. */
#songs article{position:relative}.close{position:absolute;top:10px;right:10px;width:40px;height:40px;border-radius:50%;border:1px solid #5a466e;background:#2a2036;color:#e3d9ee;font-size:16px;font-weight:900}
.loadbar{display:block;height:8px;margin:10px 0 4px;border-radius:4px;background:#2a2036;overflow:hidden}.loadbar b{display:block;height:100%;background:var(--lime);transform-origin:left;transform:scaleX(0);transition:transform .15s}
.timing{margin:14px 0 4px;padding:12px;border-radius:12px;background:#1a1424;border:1px solid #3a2e4a;display:grid;gap:8px}
.timing .tl b{display:block;font-size:13px;color:#efe3fa}.timing .tl small{display:block;font-size:11px;color:#a497b2;line-height:1.35;margin-top:2px}
.stepper{display:grid;grid-template-columns:48px 1fr 48px;gap:8px;align-items:center}.stepper button{height:44px;border-radius:10px;border:1px solid #5a466e;background:#2a2036;color:#fff;font-size:22px;font-weight:900}
.stepper output{text-align:center;font-size:18px;font-weight:900;color:var(--gold);font-variant-numeric:tabular-nums}.timing .secondary{margin-top:0}
#calibPad{display:block;width:100%;height:120px;margin:10px 0;border-radius:18px;border:0;background:var(--pink);color:#1a0610;font-size:22px;font-weight:900;letter-spacing:2px;touch-action:none;user-select:none;-webkit-user-select:none}
#calibPad.hit{animation:lanehit .14s}

/* The record shop: artwork leads the browse; the active stage keeps its space. */
:root{--library-bg:#100c18;--library-surface:#1a1424;--library-line:#392e48;--library-muted:#b5a9c2;--library-heading:Impact,'Arial Narrow',Arial,sans-serif}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#songs.library-overlay{padding:0;background:#09060ff5;align-items:stretch;backdrop-filter:blur(12px)}
#songs .library-sheet{position:relative;max-width:1080px;height:100%;max-height:none;padding:0 28px 24px;border:0;border-radius:0;background:radial-gradient(ellipse at 100% 0,#251832 0,transparent 55%),var(--library-bg);box-shadow:none;overscroll-behavior:contain;scroll-padding-top:76px}
.library-top{position:sticky;top:0;z-index:4;display:flex;align-items:center;gap:12px;min-height:68px;padding-top:env(safe-area-inset-top);background:#100c18f5;border-bottom:1px solid var(--library-line)}
.library-top>a{display:grid;place-items:center;width:40px;height:44px;text-decoration:none;font-size:25px;color:#fff}
.library-brand{flex:1;font-family:var(--library-heading);font-size:30px;letter-spacing:-.5px;color:var(--lime);white-space:nowrap}.library-brand em{font-style:normal;color:var(--lime)}
.library-top>button{font-size:10px;font-weight:900;min-height:44px;padding:0 10px}.library-top .close{position:static;flex-shrink:0;border-radius:10px;width:40px;font-size:16px}
#libraryHeading{font-family:var(--library-heading);font-weight:400;text-transform:uppercase;font-size:clamp(33px,5.5vw,55px);letter-spacing:.2px;line-height:1.05;margin:24px 0 8px;outline:0}
.library-summary{font-size:12px;color:var(--library-muted);margin:0 0 17px}
.library-tabs{display:flex;border-bottom:1px solid var(--library-line);margin-bottom:16px}
.library-tabs button{flex:1;min-height:48px;padding:8px;border:0;border-radius:0;background:none;color:var(--library-muted);font-family:var(--library-heading);font-size:19px;letter-spacing:1px;border-bottom:3px solid transparent}
.library-tabs button[aria-pressed=true]{color:var(--lime);border-bottom-color:var(--lime)}
.search-label{display:block}.search-label input{width:100%;height:48px;border-radius:10px;border:1px solid #4b3b5e;background:#17111f;color:#fff;padding:0 15px;font:inherit;font-size:15px;outline-offset:3px}.search-label input::placeholder{color:#b5a9c2}
input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #fff;outline-offset:3px}
.library-filters{margin:6px 0 0}.library-filters>summary{font-size:12px;color:#d0c5dd;cursor:pointer;padding:12px 0;min-height:44px}
.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:4px 0 16px}.filter-grid label{font-size:11px;color:var(--library-muted)}.filter-grid select{display:block;width:100%;margin-top:6px;min-height:44px;background:#20182b;color:#fff;border:1px solid #4a3b5c;border-radius:8px;padding:8px;font:inherit;font-size:13px}
.library-status{font-size:12px;color:var(--gold);line-height:1.45;margin:0 0 12px}.library-status:empty{display:none}
.section-title{font-family:var(--library-heading);font-size:26px;font-weight:400;text-transform:uppercase;letter-spacing:.7px;margin:12px 0}
#songs .release-card{min-width:0;max-width:none;max-height:none;width:auto;margin:0;padding:0;background:none;border:0;border-radius:0;box-shadow:none;overflow:visible}.cover{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;background:#07050c;border-radius:10px}
.sleeve-button{display:block;overflow:hidden;width:100%;padding:0;border:1px solid var(--library-line);border-radius:10px;background:#09070d;transition:border-color .15s,transform .15s}.sleeve-button:hover{border-color:var(--lime);transform:translateY(-2px)}
.release-copy h3{font-size:19px;line-height:1.15;margin:11px 0 4px}.artist-link{background:none;border:0;border-radius:2px;color:#d0c5dd;text-align:left;padding:5px 0;min-height:34px;font-size:14px;line-height:1.3}.artist-link:hover{text-decoration:underline;color:var(--lime)}
.release-count{font-size:12px;color:var(--library-muted);margin:3px 0 12px}
.browse-release{width:100%;min-height:44px;font-family:var(--library-heading);letter-spacing:.8px;font-size:16px;border-color:#63506f;background:#241a2e;padding:10px 12px}
#songs .featured-release{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:24px;padding:12px;border:1px solid var(--library-line);border-radius:12px;background:#181120;margin-bottom:22px}
.featured-release .release-copy h3{font-family:var(--library-heading);font-weight:400;font-size:clamp(28px,4vw,43px);margin-top:0}.featured-release .browse-release{background:var(--lime);color:#101406;border:0;margin-top:12px}.featured-release .artist-link{font-size:17px}
.release-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 18px;margin:16px 0 24px}
.library-back{background:none;border:0;padding:12px 0;min-height:44px;color:var(--lime);font-size:11px;font-weight:900}
#songs:not([data-view=browse]) #libraryHeading,#songs:not([data-view=browse]) .library-summary,#songs:not([data-view=browse]) .library-tabs,#songs:not([data-view=browse]) .search-label,#songs:not([data-view=browse]) .library-filters{display:none}
.release-header{display:grid;grid-template-columns:minmax(160px,280px) 1fr;gap:24px;align-items:center;margin:18px 0 20px}.release-heading{font-family:var(--library-heading);font-size:clamp(29px,4vw,43px);font-weight:400;line-height:1.1;margin:0 0 8px;outline:0}.release-header p{font-size:13px;color:var(--library-muted);line-height:1.5}.art-caption{display:block;font-size:10px;color:var(--library-muted);line-height:1.5}
.track-count{font-size:12px;color:var(--library-muted)}.track-list{display:grid;gap:8px}.track-row{display:flex;align-items:center;gap:8px;min-width:0;padding:6px 9px 6px 2px;border:1px solid var(--library-line);border-radius:10px;background:#17111e}.track-row.selected{border-color:var(--lime);box-shadow:inset 3px 0 var(--lime)}
.track-select{flex:1;min-width:0;border:0;background:none;display:flex;align-items:center;gap:12px;padding:6px;text-align:left;min-height:58px}.track-number{font-size:11px;color:var(--library-muted);min-width:19px;text-align:center;font-variant-numeric:tabular-nums}.track-cover{width:44px;height:44px;object-fit:contain;background:#07050c;border-radius:5px;flex-shrink:0}.track-copy{display:grid;gap:5px;min-width:0;flex:1}.track-copy strong{font-size:14px;overflow-wrap:anywhere;line-height:1.25}.track-copy small{font-size:10px;color:var(--library-muted);line-height:1.3}.duration{font-size:12px;color:#d0c5dd;font-variant-numeric:tabular-nums;white-space:nowrap}.preview-button{flex-shrink:0;width:44px;height:44px;border-radius:50%;border:1px solid #776985;background:none;font-size:16px;color:#fff}.preview-button[aria-pressed=true]{color:#0b0714;background:var(--lime);border-color:var(--lime)}.preview-button:disabled{opacity:.3;cursor:default}
.track-detail{margin:20px 0 24px;background:#1b1424;border:1px solid #514061;border-radius:12px;padding:20px;scroll-margin:12px}.detail-heading{display:flex;align-items:center;gap:13px}.detail-heading>div{min-width:0}.detail-cover{width:62px;height:62px;object-fit:contain;border-radius:6px;flex-shrink:0;background:#09060d}.detail-heading h2{font-family:var(--library-heading);font-size:27px;line-height:1.1;font-weight:400;margin:0}.detail-heading p{font-size:12px;color:var(--library-muted);margin:7px 0 0}.track-credit{font-size:12px;color:var(--pink);margin:13px 0}
.difficulty-chooser{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:16px 0 12px}.difficulty-choice{min-height:118px;display:grid;align-content:center;gap:10px;padding:12px 5px;border:1px solid #574365;border-radius:10px;background:#140f1c;color:#fff}.difficulty-choice b{font-family:var(--library-heading);font-size:19px;letter-spacing:.6px;text-transform:uppercase}.difficulty-choice strong{font-size:21px;font-weight:500}.difficulty-choice small{font-size:10px;color:#b5a9c2}.difficulty-choice.diff-easy b{color:var(--lime)}.difficulty-choice.diff-normal b{color:var(--gold)}.difficulty-choice.diff-hard b{color:var(--pink)}.difficulty-choice[aria-pressed=true]{border:2px solid var(--pink);background:#321528;box-shadow:0 0 0 1px #ff589622}
.estimate-note{font-size:11px;color:var(--library-muted);line-height:1.5}.personal-best{font-size:12px;line-height:1.5;color:var(--gold)}.library-play{background:var(--pink);font-family:var(--library-heading);font-size:22px;min-height:54px;letter-spacing:1px}.library-play:disabled{cursor:default;background:#33263f;color:#c0b4ca}.listen-note{font-size:12px;color:#c5b8d2;line-height:1.5}.share-challenge{min-height:44px;width:100%;margin:8px 0 0;border:0;background:none;color:#c7b9d4;font-size:11px;letter-spacing:.5px}
.audio-setup{margin:24px 0 10px;border:1px solid var(--library-line);border-radius:10px;background:#18121f}.audio-setup>summary{padding:14px;font-size:14px;font-weight:800;cursor:pointer;min-height:56px}.audio-setup>summary span{display:block;margin:6px 0 0 18px;font-size:11px;font-weight:400;color:var(--library-muted)}.audio-setup .timing{margin:0 12px 12px}
.library-footer{display:flex;gap:10px;justify-content:space-between;margin-top:18px}.library-footer button{padding:12px 16px;min-height:44px;background:none;border-color:var(--library-line);font-size:11px;font-weight:800}
.preview-player{position:sticky;bottom:8px;z-index:5;display:flex;align-items:center;gap:12px;padding:12px 14px;background:#20172df5;border:1px solid var(--lime);border-radius:12px;box-shadow:0 6px 28px #000a;margin-top:12px}.preview-player>span{display:grid;gap:6px;min-width:0;flex:1}.preview-player small{font-size:9px;color:var(--lime);letter-spacing:1px}.preview-player strong{font-size:12px;line-height:1.3}.preview-player button{min-height:44px;padding:8px 12px;font-size:11px;font-weight:900}
.artist-card{display:flex;align-items:center;width:100%;gap:17px;padding:14px;border:1px solid var(--library-line);background:#1b1324;margin:12px 0;text-align:left}.artist-cover{width:80px;height:80px;object-fit:contain;border-radius:50%;background:#09060f}.artist-card>span:first-of-type{flex:1;display:grid;gap:8px}.artist-card strong{font-family:var(--library-heading);font-weight:400;font-size:28px}.artist-card small{font-size:12px;color:var(--library-muted)}.artist-heading h2{font-family:var(--library-heading);font-size:42px;font-weight:400;margin:22px 0 12px;outline:0}.artist-heading>p{max-width:660px;color:var(--library-muted);font-size:14px}.empty-library{padding:32px 12px;text-align:center;color:var(--library-muted)}.challenge-link{width:100%;background:#21182c;color:#fff;border:1px solid var(--lime);padding:12px;margin:12px 0}
#songbar{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:2px 8px;align-items:center;letter-spacing:.2px;padding:6px;background:#0b0714a6;border-radius:8px}#songCover{grid-row:1/4;width:36px;height:36px;object-fit:contain;background:#07050c;border-radius:4px}#songTitle{grid-column:2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#songbar #songBpm{grid-column:3;grid-row:1;font-size:9px}#songbar i{grid-column:3;grid-row:2;min-width:54px}#songbar #songArtist{grid-column:2;grid-row:2;font-size:9px}#songbar #songAlbum{grid-column:2/4;grid-row:3;font-size:9px;color:#b5a9c2;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#songbar #stageName{grid-column:2/4;grid-row:4;font-size:9px;color:#d7c3ee}
.result-release{display:flex;align-items:center;gap:12px;margin:15px 0}.result-release img{width:60px;height:60px;border-radius:7px;object-fit:contain;flex-shrink:0;background:#09060e}.result-release>div{min-width:0}.result-release p{font-size:12px;margin:4px 0;line-height:1.5}.result-release #resultCredit{color:var(--pink)}
@media(min-width:900px){#songs .featured-release{grid-template-columns:260px 1fr}.featured-release .release-copy{padding:0 28px}.featured-release .browse-release{max-width:280px}#songs .library-sheet{padding-left:48px;padding-right:48px}.track-detail{max-width:680px;margin-left:auto;margin-right:auto}}
@media(max-width:600px){#songs .library-sheet{padding:0 16px calc(20px + env(safe-area-inset-bottom))}.library-top{gap:7px;min-height:62px}.library-brand{font-size:27px}.library-top>button{font-size:9px;padding:0 8px}.library-top>a{width:28px}.library-top .close{width:36px}#libraryHeading{font-size:36px;margin-top:20px}.featured-release{gap:14px;padding:9px}.featured-release .release-copy h3{font-size:29px}.featured-release .artist-link{font-size:14px}.release-count{font-size:11px}.featured-release .browse-release{font-size:13px;padding:8px 5px;margin-top:3px}.release-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}.release-copy h3{font-size:16px}.browse-release{font-size:13px}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.release-header{grid-template-columns:minmax(110px,42%) 1fr;gap:14px;margin:10px 0 18px}.release-heading{font-size:29px}.release-header p{font-size:11px}.art-caption{font-size:9px}.track-select{gap:7px}.track-number{min-width:16px;font-size:10px}.track-cover{width:34px;height:34px}.track-copy strong{font-size:13px}.track-copy small{font-size:9px}.duration{font-size:10px}.track-row{gap:4px;padding-right:7px}.track-detail{padding:15px}.difficulty-chooser{gap:7px}.difficulty-choice b{font-size:17px}.difficulty-choice strong{font-size:19px}.artist-card{gap:12px}.artist-card strong{font-size:27px}}
@media(max-height:500px) and (min-aspect-ratio:1.25){.library-top{position:static;min-height:52px}.release-header{grid-template-columns:140px 1fr}.featured-release{grid-template-columns:170px 1fr}#songbar #songAlbum{display:none}#songCover{grid-row:1/3}}
@media(prefers-reduced-motion:reduce){.sleeve-button{transition:none}.sleeve-button:hover{transform:none}}
@media(max-height:500px) and (min-aspect-ratio:1.25){#libraryHeading{font-size:28px;margin:12px 0 4px}.library-summary{margin-bottom:5px;font-size:11px}.library-tabs{margin-bottom:8px}.library-tabs button{min-height:38px;font-size:16px;padding:4px}.search-label input{height:40px}.library-filters>summary{min-height:32px;padding:8px 0}.section-title{font-size:20px;margin:7px 0}#songs .featured-release{grid-template-columns:150px 1fr;gap:18px;padding:9px;margin-bottom:14px}.featured-release .release-copy h3{font-size:30px}.featured-release .browse-release{max-width:260px}.library-top{min-height:48px}}
