.musical-star { display: block; width: 1em; height: 1em; flex: none; }
.small-star .musical-star { margin-inline: auto; }
.award-symbol { flex: none; }
body.legal-modal-open { position: fixed; left: 0; right: 0; overflow: hidden; }
.legal-overlay { box-sizing: border-box; position: fixed; inset: 0; width: min(880px, calc(100% - 40px)); max-width: none; max-height: calc(100svh - 40px); max-height: calc(100dvh - 40px); padding: 0; margin: auto; border: 1px solid rgba(255,255,255,.5); border-radius: 8px; background: #f6f2ea; color: #222d33; box-shadow: 0 24px 100px rgba(8,17,15,.25); overflow: hidden; }
.legal-overlay[open] { display: flex; flex-direction: column; }
.legal-overlay::backdrop { background: rgba(9,20,16,.58); backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px); }
.legal-overlay-header { display: flex; align-items: center; justify-content: space-between; flex: none; gap: 20px; padding: 20px 30px; border-bottom: 1px solid #d7d1c7; background: #f1f3ef; color: #171b19; }
.legal-overlay-close { display: inline-flex; align-items: center; justify-content: center; flex: none; gap: 10px; min-height: 44px; padding: 8px 10px; background: none; border: 0; border-radius: 3px; color: #253c30; font: 500 12px/1.3 "DM Sans",Arial,sans-serif; cursor: pointer; }
.legal-overlay-close svg { width: 20px; height: 20px; }
.legal-overlay-close:hover { background: rgba(46,67,51,.07); }
.legal-overlay-close:focus-visible, .legal-overlay-content a:focus-visible { outline: 2px solid #742c3c; outline-offset: 3px; }
.legal-overlay-content { min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 0 34px; }
.legal-overlay-content .legal-main { box-sizing: border-box; width: 100%; max-width: none; margin: 0; padding: 34px 0 42px; font: 400 16px/1.75 "DM Sans",Arial,sans-serif; }
.legal-overlay-content .legal-main h1 { font-size: clamp(35px, 5vw, 54px); margin-bottom: 22px; }
.legal-overlay-content .legal-main h1:focus { outline: none; }
.legal-overlay-content .legal-main h2 { font-size: 27px; line-height: 1.3; }
.legal-overlay-content .legal-main address { margin-bottom: 20px; }
.legal-overlay-loading { margin: 30px 0; font-size: 15px; }
.score-viewer-toolbar { display: flex; justify-content: flex-end; margin: 0 0 16px; }
.score-viewer-zoom { min-height: 44px; padding: 10px 18px; border: 1px solid #bcc4b9; border-radius: 3px; background: #eff1e9; color: #253c30; font: 500 13px/1.4 "DM Sans",Arial,sans-serif; cursor: pointer; }
.score-viewer-zoom:hover { background: #e1e7dc; }
.score-viewer-zoom:focus-visible, .score-viewer-canvas:focus-visible { outline: 2px solid #742c3c; outline-offset: 3px; }
.score-viewer-canvas { overflow: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; background: #e9e0ce; }
.score-viewer-canvas img { display: block; width: 100%; max-width: 1045px; height: auto; margin-inline: auto; }
.score-viewer-canvas.is-zoomed { max-height: 55svh; }
.score-viewer-canvas.is-zoomed img { width: 1045px; min-width: 1045px; max-width: none; }
.score-viewer-credit { margin-top: 18px !important; font-size: 12px; }
@media (max-width: 520px) {
  .legal-overlay { width: calc(100% - 16px); max-height: calc(100svh - 16px); max-height: calc(100dvh - 16px); border-radius: 5px; }
  .legal-overlay-header { gap: 8px; padding: 14px; }
  .legal-overlay-close { width: 40px; padding: 8px; }
  .legal-overlay-close span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .legal-overlay-content { padding-inline: 22px; }
  .legal-overlay-content .legal-main { font-size: 15px; padding-top: 26px; }
  .legal-overlay-content .legal-main h1 { font-size: 38px; overflow-wrap: anywhere; }
}
