/* Edge-docked player; the document reserves the dock's measured size. */
body[data-music-ready=true]{--music-space-bottom:84px;--music-space-top:0px;--music-space-left:0px;--music-space-right:0px;padding:var(--music-space-top) var(--music-space-right) var(--music-space-bottom) var(--music-space-left)}
html:has(body[data-music-ready=true]){scroll-padding-top:calc(var(--music-top-offset,0px) + 16px);scroll-padding-bottom:100px}
body[data-music-dock=top] .tabs{top:var(--music-space-top)}
body[data-music-dock=top] .character-preview-wrap,body[data-music-dock=top] .studio-live{top:calc(var(--music-space-top) + 86px)}
.party-music{--music-bg:#201a29;--music-ink:#f4e8d7;--music-muted:#c6b6c9;--music-line:#c7a37d55;--music-accent:#f1cc8f;--music-heading:'DM Serif Display',serif;position:fixed;z-index:35;inset:auto 0 0;width:100%;color:var(--music-ink);background:var(--music-bg);border:1px solid var(--music-line);border-radius:0;box-shadow:0 -4px 24px #0004;font:13px Inter,sans-serif;isolation:isolate;box-sizing:border-box}
.party-music *{box-sizing:border-box}.party-music [hidden]{display:none!important}
.party-music[data-theme=bard]{--music-bg:linear-gradient(115deg,#28291f,#302216);--music-accent:#e2cf8b;--music-heading:'DM Serif Display',serif}
.party-music[data-theme=portal]{--music-bg:radial-gradient(ellipse at left,#2d3950,#191d35);--music-accent:#a9e6ed;--music-line:#8ddce155;--music-heading:'Space Grotesk',sans-serif}
.party-music[data-theme=pixel]{--music-bg:repeating-linear-gradient(0deg,#152137 0 3px,#17243b 3px 6px);--music-accent:#b9c3ff;--music-heading:'Press Start 2P',monospace}
.party-music[data-theme=memories]{--music-bg:linear-gradient(110deg,#35273e,#1f263b);--music-accent:#e5bfcf;--music-heading:'DM Serif Display',serif}
.party-music[data-theme=tavern]{--music-bg:repeating-linear-gradient(90deg,#2f201a 0 110px,#38251c 110px 113px);--music-accent:#ecc38a;--music-heading:Cinzel,serif}
.party-music[data-theme=finale]{--music-bg:linear-gradient(110deg,#32202e,#171d2c);--music-accent:#f1abb3;--music-line:#d5849355;--music-heading:Cinzel,serif}
.music-main{display:flex;align-items:center;gap:16px;padding:10px max(18px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));min-height:80px;max-width:1400px;margin:auto}
.party-music button{font:inherit;color:var(--music-ink);background:transparent;border:1px solid transparent;border-radius:8px;min-height:40px;cursor:pointer;padding:8px;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.party-music button:hover{background:#ffffff0b}.party-music button:focus-visible,.party-music input:focus-visible,.party-music select:focus-visible{outline:2px solid var(--music-accent);outline-offset:2px}
.party-music svg{width:20px;height:20px;flex:none}.music-now{min-width:0;flex:1 1 240px}
.music-now strong{font:17px/1.4 var(--music-heading);color:var(--music-ink);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.music-now>small{font:9px/1.5 Inter,sans-serif;letter-spacing:1px;text-transform:uppercase;color:var(--music-accent);display:block;margin-bottom:2px;overflow-wrap:anywhere}
.music-now>span{display:block;color:var(--music-muted);font-size:10px;margin-top:3px;overflow-wrap:anywhere}
.party-music[data-theme=pixel] .music-now strong{font-size:10px;line-height:1.7}
.music-transport{display:flex;align-items:center;gap:4px;flex:none}.party-music .music-play{color:#1c1926;background:var(--music-accent);border-radius:50%;width:42px;height:42px}
.music-progress{display:flex;flex-direction:column;gap:4px;flex:0 1 180px;min-width:80px}.music-progress span{font-size:10px;color:var(--music-muted);text-align:center;font-variant-numeric:tabular-nums}
.party-music input[type=range]{accent-color:var(--music-accent);width:100%;height:18px;margin:0;padding:0;min-height:0;border:0;background:transparent}
.music-list-toggle span{font-size:11px}
.music-panel{position:absolute;bottom:calc(100% + 8px);right:12px;width:min(680px,calc(100vw - 24px));padding:22px 24px 16px;border:1px solid var(--music-line);border-radius:14px;max-height:min(75dvh,680px);overflow-y:auto;overscroll-behavior:contain;background:var(--music-bg);box-shadow:0 12px 40px #0006}
.music-panel>header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;height:auto;padding:0;border:0;min-width:0}.music-panel>header>div{min-width:0}
.music-panel header p{font:9px Inter,sans-serif;color:var(--music-accent);letter-spacing:2px;margin:0 0 8px}.music-panel h2{font:24px/1.3 var(--music-heading);color:var(--music-ink);margin:0;overflow-wrap:anywhere}.party-music[data-theme=pixel] .music-panel h2{font-size:15px}
.music-panel .music-note{font-size:11px;line-height:1.6;color:var(--music-muted);margin:12px 0 15px}
.music-track-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.music-track-list li{min-width:0}.music-track-list button{display:grid;grid-template-columns:24px minmax(0,1fr) 36px;text-align:left;gap:10px;width:100%;padding:12px;border:1px solid var(--music-line);background:#ffffff03}
.music-track-list button[aria-current=true]{background:#ffffff0c;border-color:var(--music-accent)}.music-track-list strong{font-size:12px;font-weight:500;line-height:1.4;display:block;overflow-wrap:anywhere}.music-track-list small{font-size:10px;color:var(--music-muted);display:block;margin-top:4px}.music-track-number{font-size:10px;color:var(--music-accent)}.music-track-list time{font-size:10px;color:var(--music-muted);text-align:right}
.music-settings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:center;border-top:1px solid var(--music-line);margin-top:18px;padding-top:16px}
.music-settings label{display:block;font-size:11px;color:var(--music-muted);min-width:0}.music-settings select{background:#171820;color:var(--music-ink);border:1px solid var(--music-line);padding:8px;border-radius:7px;width:100%;margin-top:6px;font:11px Inter,sans-serif;min-height:38px}.music-settings input[type=range]{display:block;margin-top:12px}
.music-settings .music-repeat{display:flex;align-items:center;gap:7px;line-height:1.5}.music-repeat input{accent-color:var(--music-accent);flex:none}.music-settings>button{font-size:11px}
.music-drawer-progress{display:grid;grid-template-columns:auto minmax(60px,1fr) auto;gap:12px;align-items:center;padding-top:18px;font-size:10px;color:var(--music-muted)}.music-drawer-progress label{margin:0;font-size:10px}.music-drawer-progress span{font-variant-numeric:tabular-nums}
.party-music .music-reopen{display:none}.party-music[data-enabled=false] .music-main,.party-music[data-enabled=false] .music-panel{display:none}.party-music[data-enabled=false] .music-reopen{display:flex;padding:8px 16px;font-size:12px;margin:auto;min-height:44px}
.party-music[data-dock=top]{inset:0 0 auto;box-shadow:0 4px 24px #0004}.party-music[data-dock=top] .music-main{padding-top:max(10px,env(safe-area-inset-top));padding-bottom:10px}.party-music[data-dock=top] .music-panel{bottom:auto;top:calc(100% + 8px)}
.party-music:is([data-dock=left],[data-dock=right]){width:96px;inset:0 auto 0 0;box-shadow:4px 0 24px #0003}
.party-music[data-dock=right]{inset:0 0 0 auto;box-shadow:-4px 0 24px #0003}
.party-music:is([data-dock=left],[data-dock=right]) .music-main{flex-direction:column;gap:16px;padding:18px 8px;height:100dvh;overflow-y:auto;justify-content:center}
.party-music:is([data-dock=left],[data-dock=right]) .music-now{flex:none;width:100%;text-align:center}
.party-music:is([data-dock=left],[data-dock=right]) .music-now strong{font:11px/1.5 Inter,sans-serif;white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.party-music:is([data-dock=left],[data-dock=right]) .music-now>small,.party-music:is([data-dock=left],[data-dock=right]) .music-progress{display:none}
.party-music:is([data-dock=left],[data-dock=right]) .music-transport{flex-direction:column;gap:6px}
.party-music:is([data-dock=left],[data-dock=right]) .music-list-toggle{flex-direction:column}
.party-music:is([data-dock=left],[data-dock=right]) .music-panel{width:min(640px,calc(100vw - 116px));max-height:calc(100dvh - 24px);bottom:12px;right:auto;left:calc(100% + 8px)}
.party-music[data-dock=right] .music-panel{left:auto;right:calc(100% + 8px)}
.party-music:is([data-dock=left],[data-dock=right])[data-enabled=false]{width:48px}
.party-music:is([data-dock=left],[data-dock=right]) .music-reopen{font-size:0;padding:12px 8px;min-width:44px}
.music-sprite{display:grid;place-items:center;flex:0 0 50px;width:50px;height:58px;pointer-events:none;background:radial-gradient(ellipse,var(--music-line),transparent 70%)}
.party-music .music-sprite svg{width:48px;height:58px;image-rendering:pixelated;overflow:visible}
.sprite-body{animation:music-sprite-bob 1s steps(2,end) infinite;transform-origin:center;animation-play-state:paused}.sprite-hand{animation:music-sprite-wave .8s steps(2,end) infinite;transform-origin:14px 19px;animation-play-state:paused}.sprite-scarf{animation:music-sprite-sway 1.2s steps(2,end) infinite;transform-origin:16px 14px;animation-play-state:paused}.sprite-spark{animation:music-sprite-glow 1.4s steps(2,end) infinite;animation-play-state:paused}
.party-music[data-playing=true][data-motion=true] :is(.sprite-body,.sprite-hand,.sprite-scarf,.sprite-spark){animation-play-state:running}
@keyframes music-sprite-bob{50%{transform:translateY(-2px)}}@keyframes music-sprite-wave{50%{transform:rotate(-8deg)}}@keyframes music-sprite-sway{50%{transform:skewX(8deg)}}@keyframes music-sprite-glow{50%{opacity:.25}}
body[data-layout=simple] .music-progress,body[data-layout=simple] .music-now>small{display:none}body[data-layout=simple] .music-main{min-height:70px}body[data-layout=simple] .music-now strong{font-size:15px}body[data-layout=simple] .party-music[data-theme=pixel] .music-now strong{font-size:10px}
.party-music .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:760px){.music-main{display:grid;grid-template-columns:40px minmax(0,1fr) auto auto;gap:6px 10px;padding:8px 12px max(8px,env(safe-area-inset-bottom))}.music-sprite{grid-row:1 / 3;width:38px;height:48px}.party-music .music-sprite svg{width:38px;height:48px}.music-now{grid-column:2 / -1;grid-row:1}.music-now>small,.music-progress{display:none}.music-now strong{font-size:14px;line-height:1.6}.music-transport{grid-column:2;grid-row:2;gap:4px}#music-mute{grid-column:3;grid-row:2}.music-list-toggle{grid-column:4;grid-row:2}.music-list-toggle span{display:none}.music-transport button{width:36px;padding:6px}.party-music .music-play{width:38px;height:38px}.music-panel{padding:18px 14px 12px;max-height:calc(100dvh - 118px)}.music-track-list{grid-template-columns:1fr}.music-settings{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.music-panel h2{font-size:20px}.music-drawer-progress{grid-template-columns:1fr auto}.music-drawer-progress label{grid-column:1 / -1}.site-header{flex-wrap:wrap}.music-sprite{flex-basis:38px}}
@media(prefers-reduced-motion:reduce){.party-music :is(.sprite-body,.sprite-hand,.sprite-scarf,.sprite-spark){animation:none!important}}

body[data-music-ready=true] #toast{bottom:calc(var(--music-space-bottom) + 18px);left:calc(50% + (var(--music-space-left) - var(--music-space-right))/2);max-width:calc(100vw - var(--music-space-left) - var(--music-space-right) - 32px);z-index:60}
