@import"https://fonts.googleapis.com/icon?family=Material+Icons";:root{--color-brand: #5d1f19;--color-accent: #a5761f;--color-ground: #fbf7f0;--color-ink: #241c19;--color-sage: #43664a;--color-danger: #b00020;--color-on-brand: #fbf7f0;--color-on-accent: #241c19;--font-display: "Fraunces", Georgia, serif;--font-body: "Source Sans 3", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono: "IBM Plex Mono", "Courier New", monospace;--text-xs: .8rem;--text-sm: .9rem;--text-base: 1rem;--text-lg: 1.25rem;--text-xl: 1.75rem;--text-2xl: 2.5rem;--text-3xl: 3.5rem;--space-1: 4px;--space-2: 8px;--space-3: 16px;--space-4: 24px;--space-5: 32px;--space-6: 48px;--space-7: 64px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-brand: #41120f;--color-accent: #d9ac54;--color-ground: #171210;--color-ink: #f4ece5;--color-sage: #8fb593;--color-danger: #e5484d}}:root[data-theme=dark]{--color-brand: #41120f;--color-accent: #d9ac54;--color-ground: #171210;--color-ink: #f4ece5;--color-sage: #8fb593;--color-danger: #e5484d}body{border:0;margin:0 auto;font-size:16px;line-height:1.7;font-family:var(--font-body);color:var(--color-ink);background-color:var(--color-ground)}h1,h2,h3{font-family:var(--font-display);color:var(--color-ink)}button{margin-left:5px;margin-right:5px;display:inline-block;padding:var(--space-2) var(--space-4);border-width:0;border-radius:4px;background-color:var(--color-accent);background-image:none;color:var(--color-on-accent);font-family:var(--font-body);font-size:var(--text-lg);font-weight:700;text-shadow:none;line-height:1.6;cursor:pointer}button:hover{filter:brightness(.92)}button:focus-visible{outline:2px solid var(--color-ink);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}.row{margin:0 auto 15px;padding:0 25px;max-width:1200px}a:link{color:var(--color-ink);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--color-ink) 45%,transparent)}a:hover{text-decoration-color:var(--color-ink)}.hidden{display:none}.form-input-label{font-weight:700;text-align:right;margin-right:20px}.center-page{margin-left:auto;margin-right:auto;display:block;width:fit-content}.vertical-space-20{margin-top:20px}.indent{margin-left:100px}.expand-left{display:grid;grid-template-columns:auto 100px}.left{margin-left:0;margin-right:auto;width:fit-content}.right{margin-left:auto;margin-right:0;width:fit-content}.right-align-items{display:block;text-align:right}.error{color:var(--color-danger);font-weight:700}.half-page{height:400px}.menubar{top:0;z-index:1;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;width:100%;background-color:var(--color-brand);color:var(--color-on-brand);display:flex;flex-wrap:wrap;min-height:20px;position:sticky}.logo-link{position:relative;display:flex;margin-left:20px;margin-top:5px;z-index:2}.logo{height:80px;width:auto}.menu-buttons-container{margin-top:10px;margin-right:50px;margin-left:auto;display:flex;flex-wrap:wrap;height:fit-content}a.menu-button,button.menu-button{display:flex;margin:0;border-bottom:2px none transparent;border-radius:0;background-color:transparent;color:var(--color-on-brand);text-transform:none;letter-spacing:0;font-family:var(--font-body);font-weight:400;font-size:1em;width:auto;display:inline-block;text-align:center;text-decoration:none;border-width:0;line-height:1.7;vertical-align:baseline;padding:10px 15px}a.menu-button:hover,button.menu-button:hover{border-bottom-width:2px;border-bottom-color:var(--color-accent);background-color:color-mix(in srgb,var(--color-brand) 80%,black);color:var(--color-on-brand)}.dropdown{position:relative;display:inline-block}.dropdown-toggle{cursor:pointer}.dropdown-menu{position:absolute;top:100%;right:0;display:flex;flex-direction:column;min-width:200px;background-color:var(--color-brand);border:1px solid var(--color-on-brand);z-index:3}.dropdown-menu .menu-button{width:100%;text-align:left}.dropdown-menu .dropdown-menu{position:static;border:none;padding-left:15px;background-color:color-mix(in srgb,var(--color-brand) 80%,black)}.menu-button:focus-visible{outline:2px solid var(--color-on-brand);outline-offset:-2px}div.donate-button{line-height:1.7;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;vertical-align:baseline;margin-top:10px}footer{display:flex;padding:0 20px;margin:0;max-width:none;background-color:var(--color-brand);color:var(--color-on-brand);font-size:16px;font-family:var(--font-body);line-height:1.7;flex-wrap:wrap}h4.footer-heading{margin-bottom:0;padding-right:0;padding-bottom:5px;width:100%;color:var(--color-on-brand);text-align:left;font-size:24px;font-family:var(--font-display);font-weight:700}.footer-column{width:25%;min-width:200px;flex-wrap:wrap}footer a:link,footer a:visited{color:var(--color-on-brand);text-decoration-color:color-mix(in srgb,var(--color-on-brand) 45%,transparent)}footer a:hover{text-decoration-color:var(--color-on-brand)}.footer-rule{margin:0;padding:0 5px;width:100%}.footer-rule hr{margin:0;border:0;border-top:1px solid color-mix(in srgb,var(--color-on-brand) 35%,transparent);width:100%}a.social-image{margin-right:4%;min-width:0;max-width:50px;background-color:color-mix(in srgb,var(--color-on-brand) 25%,transparent);border-radius:3px;display:inline-block}.social-image img{margin:0 auto;display:block;max-width:100%}.concert-list{display:block}.concert{display:flex;margin:25px auto;width:fit-content;align-items:center;justify-content:center}.concert-brief{display:block;width:fit-content;font-weight:700;font-size:larger;font-family:Trebuchet MS,Lucida Sans Unicode,Lucida Grande,Lucida Sans,Arial,sans-serif;margin:0 auto}.concert-buttons{display:block;width:fit-content;margin:0 auto}button,a{cursor:pointer}.banner-container{position:relative;margin-top:0;background-repeat:no-repeat;background-position:left middle}.banner-text-overlay{margin-top:0;margin-right:50px;margin-left:auto;max-width:800px;padding:var(--space-3);background-color:color-mix(in srgb,var(--color-brand) 90%,transparent)}h1{font-size:30px;font-family:var(--font-display);font-weight:700}h1.banner-title{margin-bottom:var(--space-3);width:auto;color:var(--color-on-brand);line-height:1}.banner-subtitle{color:var(--color-on-brand);font-size:var(--text-lg);line-height:1.3;font-family:var(--font-body)}.concert-name{font-family:var(--font-display);color:var(--color-ink);margin:0 auto var(--space-2)}.concert-detail-name{font-family:var(--font-display);color:var(--color-ink);margin-top:var(--space-6)}.concert-detail-date{font-family:var(--font-mono);color:var(--color-ink)}.ticket-purchase{display:flex;flex-direction:column;align-items:center}.ticket-container{border-bottom:2px solid lightgray}.ticket-name{font-weight:700;font-size:larger}.discount-label{font-weight:700;font-style:italic;font-size:smaller}.field-layout{display:flex;flex-wrap:nowrap;align-items:right;justify-content:right}.warning{color:var(--color-danger)}.form-input-label{white-space:nowrap}.original-price{display:inline;text-decoration:line-through;color:var(--color-danger);margin-right:4px}.discounted-price{display:inline;font-weight:700;color:var(--color-sage)}.price{display:inline;font-weight:700}.inline{display:inline}label.money{width:50px;text-align:right}.sponsors-container{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.sponsorship-information{display:block;margin:auto;width:fit-content;max-width:80%}h2{color:var(--color-ink);font-family:var(--font-display)}.section-title{color:var(--color-ink);font-family:var(--font-display);text-align:center;margin-top:var(--space-6)}.section-description{font-style:italic;font-weight:700;margin:auto;width:fit-content;max-width:85%}.sponsor{height:150px;width:250px;margin:25px;overflow:hidden}.sponsor img{width:100%;height:100%;object-fit:contain}.audition-instrument-section-title{font-weight:700;padding-left:50px}.audition-instrument-section{display:flex;flex-wrap:wrap;padding-left:50px}.audition-instrument{margin:10px 50px}.part{margin:10px;white-space:nowrap}.category{font-style:italic;font-size:larger;border:1px solid lightgray;box-shadow:3px 3px #d3d3d3;text-align:center}.container{display:flex;flex-wrap:wrap;align-items:center;justify-content:center}.part-group{flex:1;width:fit-content;margin-left:25px;margin-right:25px}.part-category{font-weight:700;font-size:larger}.piece-name{text-align:center;width:100%}.part-group-container{display:flex;flex-wrap:wrap;width:fit-content;margin-right:auto;margin-left:auto}.concert-title{text-align:center;width:100%}.sponsor-logo{width:150px}.sponsor-container{display:grid;width:fit-content;grid-template-columns:auto auto auto}.sponsor-cell{vertical-align:bottom;align-self:center;margin:0 25px}@media all and (min-width:800px){.sponsor-logo{width:300px}}.sponsor-form{width:fit-content;margin-left:auto;margin-right:auto}.placeholder-container{display:flex;margin:0;height:800px;justify-content:space-around;align-items:center}.placeholder{font-style:italic;font-size:large;width:auto;margin:auto}.concert-logo{width:300px}.concert-container{display:grid;width:fit-content;grid-template-columns:auto auto auto}.concert-cell{vertical-align:bottom;align-self:center;margin:0 25px}@media all and (min-width:800px){.concert-logo{width:600px}}.concert-assets-editor{display:flex;flex-direction:column;gap:8px;margin:10px 0}.concert-assets-editor-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.concert-assets-editor-label{min-width:220px}.concert-assets-missing{color:var(--color-danger)}.concert-assets-locked-message{font-style:italic}.concert-form{width:fit-content;margin-left:auto;margin-right:auto}.concert-form-asset-row{display:flex;align-items:center;gap:8px;margin:6px 0}.promo-code-container{display:grid;width:fit-content;grid-template-columns:auto auto}.promo-code-cell{vertical-align:bottom;align-self:center;margin:0 25px}.promo-code-form{width:fit-content;margin-left:auto;margin-right:auto}.board-member-photo{width:150px;margin-left:10px;margin-right:10px}.board-details{display:flex;flex-flow:column;min-width:200px}.board-member-container{width:fit-content;margin-top:50px;display:flex;flex-flow:row;flex-wrap:wrap}.board-member-cell{align-self:flex-start;margin:0 25px}.board-member-buttons{display:flex;justify-content:center;align-items:center}@media all and (min-width:800px){.board-member-photo{width:300px;margin-left:20px;margin-right:20px}.board-member-container{flex-wrap:nowrap}}.board-member-form{width:fit-content;margin-left:auto;margin-right:auto}.musician-photo{width:150px;margin-left:10px;margin-right:10px}.musician-details{display:flex;flex-flow:column;min-width:200px}.musician-container{width:fit-content;display:flex;flex-flow:row;flex-wrap:wrap}.musician-cell{margin:0 25px;display:flex;flex-wrap:nowrap;align-items:center;justify-content:center}.musician-buttons{margin-left:15px}@media all and (min-width:800px){.musician-photo{width:300px;margin-left:20px;margin-right:20px}.musician-container{flex-wrap:nowrap}}.musician-form{width:fit-content;margin-left:auto;margin-right:auto}.musician-list{display:flex;flex-wrap:wrap;flex-direction:row;width:100%}.instrument-group{display:flex;width:fit-content;flex-direction:column;margin:50px}.instrument-group-header{margin:0;padding:0}.piece-card{--card-bg: var(--color-ground);--card-border: color-mix(in srgb, var(--color-ink) 12%, transparent);--text-primary: var(--color-ink);--text-secondary: color-mix(in srgb, var(--color-ink) 60%, transparent);--accent: var(--color-accent);--accent-soft: color-mix(in srgb, var(--color-accent) 12%, var(--color-ground));--warning: color-mix(in srgb, var(--color-accent) 70%, black);--warning-bg: color-mix(in srgb, var(--color-accent) 12%, var(--color-ground));position:relative;overflow:hidden;color:var(--text-primary);background:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;box-shadow:0 1px 2px #0000000a,0 4px 12px #0000000a;transition:box-shadow .16s ease,border-color .16s ease}.piece-card:hover{border-color:color-mix(in srgb,var(--color-ink) 20%,transparent);box-shadow:0 2px 4px #0000000d,0 10px 24px #00000014}.piece-card__accent{position:absolute;inset:0 auto 0 0;width:5px;background:var(--accent)}.piece-card__content{padding:24px 24px 20px 28px}.piece-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.piece-card__composer{margin-bottom:5px;color:var(--text-secondary);font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.piece-card__title{margin:0;font-family:var(--font-display);font-size:1.4rem;font-weight:500;line-height:1.2}.piece-card__icon{display:grid;flex:0 0 42px;width:42px;height:42px;place-items:center;color:var(--accent);font-size:1.35rem;background:var(--accent-soft);border-radius:10px}.piece-card__unlink{position:absolute;top:12px;right:12px;width:18px;height:18px;padding:6px;cursor:pointer;opacity:0;border-radius:8px;transition:opacity .16s ease}.piece-card:hover .piece-card__unlink,.piece-card__unlink:focus{opacity:.6}.piece-card__unlink:hover{opacity:1;background:var(--warning-bg)}.piece-card__play-time{display:flex;align-items:center;gap:7px;margin-top:14px;color:var(--text-secondary);font-size:.875rem}.piece-card__play-time-icon{color:var(--accent)}.piece-card__footer{display:flex;align-items:center;gap:12px;margin-top:10px;padding-top:15px;border-top:1px solid color-mix(in srgb,var(--color-ink) 10%,transparent);color:var(--text-secondary);font-size:.875rem}.piece-card__parts{display:flex;align-items:center;gap:7px;font-weight:600}.piece-card__parts-trigger{padding:2px 6px 2px 2px;color:var(--text-secondary);font:inherit;background:none;border:none;border-radius:6px;cursor:pointer}.piece-card__parts-trigger:hover:not(:disabled),.piece-card__parts-trigger:focus:not(:disabled){color:var(--accent);background:var(--accent-soft)}.piece-card__parts-trigger:disabled{cursor:default}.piece-card__parts-icon{color:var(--accent)}.piece-card__parts-popover{position:fixed;z-index:100;min-width:220px;max-width:320px;max-height:320px;overflow-y:auto;padding:12px 14px;color:var(--color-ink);background:var(--color-ground);border:1px solid color-mix(in srgb,var(--color-ink) 15%,transparent);border-radius:10px;box-shadow:0 8px 24px #0000001f}.piece-card__parts-popover-title{margin-bottom:8px;color:color-mix(in srgb,var(--color-ink) 55%,transparent);font-size:.78rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.piece-card__parts-popover-list{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}.piece-card__parts-popover-list a,.piece-card__parts-popover-list span{display:block;padding:4px 6px;border-radius:6px}.piece-card__parts-popover-list a{color:var(--color-ink);text-decoration:underline}.piece-card__parts-popover-list a:hover,.piece-card__parts-popover-list a:focus{background:var(--accent-soft);text-decoration:underline}.piece-card__status{padding:4px 9px;border-radius:999px;font-size:.72rem;font-weight:700}.piece-card__status--warning{color:var(--warning);background:var(--warning-bg)}.piece-picker-tile{display:flex;align-items:center;justify-content:center;min-height:160px;color:color-mix(in srgb,var(--color-accent) 70%,black);font-weight:600;background:color-mix(in srgb,var(--color-accent) 12%,var(--color-ground));border:2px dashed color-mix(in srgb,var(--color-accent) 40%,var(--color-ground));border-radius:14px;cursor:pointer;transition:background .16s ease,border-color .16s ease}.piece-picker-tile:hover{background:color-mix(in srgb,var(--color-accent) 20%,var(--color-ground));border-color:var(--color-accent)}.piece-picker--open{padding:20px;background:var(--color-ground);border:1px solid color-mix(in srgb,var(--color-ink) 12%,transparent);border-radius:14px}@media(min-width:660px){.piece-picker--open{grid-column:span 2}}.piece-picker--open input{width:100%;box-sizing:border-box}.piece-picker-results{list-style:none;padding:0;max-height:240px;overflow-y:auto}.piece-picker-results li{border-bottom:1px solid color-mix(in srgb,var(--color-ink) 10%,transparent)}.piece-picker-result{display:block;width:100%;padding:.5rem .25rem;color:var(--color-ink);font:inherit;text-align:left;background:none;border:none;cursor:pointer}.piece-picker-result:hover,.piece-picker-result:focus{background:color-mix(in srgb,var(--color-accent) 12%,var(--color-ground))}.concert-title{text-align:center;font-size:18pt;font-weight:700}.concert-total-play-time{margin-bottom:1rem;text-align:center;color:#6b7280;font-size:.9rem}.piece-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;max-width:1200px;margin:0 auto 1.5rem;padding:0 25px;box-sizing:border-box}.parts-editor-row{display:flex;align-items:center;gap:6px}.parts-editor-row img{cursor:pointer;width:14px;height:14px}.parts-editor-add-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;width:fit-content;margin:10px auto}.music-library-header{position:relative;display:flex;align-items:center;justify-content:center}.music-library-add-button{position:absolute;top:50%;right:1.5rem;transform:translateY(-50%)}.music-library-layout{display:flex;align-items:flex-start;gap:2rem;padding:0 1.5rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000080;z-index:1000}.modal-dialog{background:var(--color-ground);border-radius:8px;padding:1.5rem;min-width:320px;max-width:90vw;max-height:90vh;overflow-y:auto;box-shadow:0 8px 24px #0003}.modal-dialog h2{margin-top:0}.music-library-nav{width:max-content;min-width:240px;flex:0 0 auto;padding:0 1rem 1.5rem 0;border-right:1px solid color-mix(in srgb,var(--color-ink) 12%,transparent);position:sticky;top:75px;height:calc(100vh - 75px - 1.5rem);display:flex;flex-direction:column;overflow:hidden}.music-library-detail{flex:1;min-width:0;padding:0 1.5rem 1.5rem}.music-library-empty-detail{color:color-mix(in srgb,var(--color-ink) 55%,transparent);font-style:italic;padding:2rem 0;text-align:center}.music-library-toolbar{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;flex:0 0 auto}.music-library-toolbar input,.music-library-toolbar select{width:100%;box-sizing:border-box}.music-library-tree{flex:1 1 auto;min-height:0;overflow-y:auto}.composer-group{margin-bottom:.75rem}.composer-group-header{font-weight:700;padding:.35rem .25rem;color:var(--color-ink);white-space:nowrap}.piece-tree-row{padding:.4rem .5rem .4rem 1rem;cursor:pointer;border-radius:4px}.piece-tree-row:hover{background:color-mix(in srgb,var(--color-accent) 8%,var(--color-ground))}.piece-tree-row.selected{background:color-mix(in srgb,var(--color-accent) 15%,var(--color-ground))}.piece-tree-title{font-size:.95em;white-space:nowrap}.piece-tree-duration{color:color-mix(in srgb,var(--color-ink) 55%,transparent);font-size:.9em;white-space:nowrap}.piece-tree-tags{color:color-mix(in srgb,var(--color-ink) 55%,transparent);font-size:.8em;font-style:italic;white-space:nowrap}.missing-score-flag{color:var(--color-danger);font-size:.85em;margin-left:.35em}.duplicate-warning{border:1px solid color-mix(in srgb,var(--color-ink) 20%,transparent);padding:.75rem;margin-bottom:1rem}.piece-tags{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin:.5rem 0}.tag-chip{background:color-mix(in srgb,var(--color-ink) 10%,var(--color-ground));border-radius:12px;padding:.15rem .6rem;display:inline-flex;align-items:center;gap:.35rem}.tag-chip img{cursor:pointer;width:12px}.piece-history{margin-top:1rem}.piece-history-header{font-weight:700}.piece-detail{display:flex;flex-direction:column;align-items:center;text-align:center}.piece-header{display:flex;flex-direction:column;align-items:center;gap:.35rem;margin-bottom:.75rem}.piece-header .piece-composer{font-size:1.1em;color:color-mix(in srgb,var(--color-ink) 65%,transparent)}.piece-header .piece-title{font-size:1.4em;font-weight:700}.piece-header-meta{display:flex;align-items:center;gap:.75rem}.piece-header .piece-play-time,.piece-header .piece-owned-by{color:color-mix(in srgb,var(--color-ink) 55%,transparent)}.piece-header img{cursor:pointer;width:18px;height:18px}.part-group-container{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:1rem}.part-group{width:fit-content}.part-category{font-style:italic;font-weight:700;font-size:larger;border:1px solid color-mix(in srgb,var(--color-ink) 25%,transparent);box-shadow:3px 3px color-mix(in srgb,var(--color-ink) 15%,transparent);text-align:center;padding:.15rem .75rem}.login-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:flex-start;justify-content:center;z-index:1000}.login-form{max-width:420px;width:90%;margin-top:80px;padding:24px;border-radius:8px;background-color:var(--color-ground)}.error-boundary-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:30px;box-sizing:border-box;background:var(--color-ground)}.error-boundary-card{max-width:680px;width:100%;text-align:center;background-color:var(--color-ground);border:1px solid color-mix(in srgb,var(--color-ink) 15%,transparent);border-radius:10px;padding:35px 30px;box-shadow:0 10px 24px #11263f14}.error-boundary-title{margin-top:0;margin-bottom:10px;color:var(--color-ink);font-family:var(--font-display)}.error-boundary-text{margin-top:0;margin-bottom:12px}.error-boundary-detail{color:var(--color-danger);margin-top:0;margin-bottom:20px;word-break:break-word}
