.lyric-sheet{flex-direction:column;align-items:center;min-height:100%;padding:clamp(1.5rem,4vw,3rem) clamp(1rem,5vw,3.5rem) clamp(5rem,12vw,7rem);scroll-margin-top:1.5rem;animation:.42s cubic-bezier(.22,1,.36,1) sheet-in;display:flex}.songbook--scroll .lyric-sheet{min-height:auto;padding-bottom:clamp(2.5rem,8vw,4rem);scroll-margin-top:3.25rem;animation:none}.songbook--scroll .lyric-sheet+.lyric-sheet{border-top:1px solid var(--mist)}.lyric-sheet__header{text-align:center;width:min(42rem,100%);margin-bottom:clamp(1.5rem,4vw,2.5rem)}.lyric-sheet__book{font-family:var(--font-display);letter-spacing:-.03em;color:var(--pine-deep);justify-content:center;align-items:center;gap:.55rem;margin:0 0 .85rem;font-size:clamp(1.65rem,5.5vw,2.75rem);font-weight:700;line-height:1.05;animation:.56s cubic-bezier(.22,1,.36,1) brand-rise;display:inline-flex}.lyric-sheet__book-icon{object-fit:contain;flex-shrink:0;width:auto;height:.9em}.lyric-sheet__title{font-family:var(--font-lyrics);margin:0;font-size:clamp(1.35rem,3.2vw,1.85rem);font-weight:700;line-height:1.25}.lyric-sheet__melody{color:var(--ink-soft);margin:.55rem 0 0;font-size:.95rem;font-style:italic}.lyric-sheet__lyrics{white-space:pre-wrap;text-align:center;width:min(40rem,100%);font-size:clamp(1.05rem,2.4vw,1.28rem);line-height:1.55;font-family:var(--font-lyrics);color:var(--ink);margin:0}@keyframes sheet-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes brand-rise{0%{opacity:0;letter-spacing:.04em;transform:translateY(8px)}to{opacity:1;letter-spacing:-.03em;transform:translateY(0)}}@media (width<=640px){.lyric-sheet__lyrics{text-align:left}}.song-picker__backdrop{z-index:20;opacity:0;pointer-events:none;background:#10161347;transition:opacity .22s;position:fixed;inset:0}.song-picker__backdrop.is-open{opacity:1;pointer-events:auto}.song-picker{z-index:25;border:1px solid var(--mist);border-radius:var(--radius);background:var(--panel);opacity:0;pointer-events:none;flex-direction:column;width:min(22rem,100vw - 1.5rem);max-height:min(70vh,34rem);margin:0 0 4.25rem .75rem;transition:opacity .22s,transform .26s cubic-bezier(.22,1,.36,1);display:flex;position:fixed;bottom:0;left:0;transform:translateY(12px);box-shadow:0 18px 40px #1016132e}.song-picker.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}.song-picker__top{border-bottom:1px solid var(--mist);padding:1rem 1rem .75rem}.song-picker__top h2{font-family:var(--font-display);margin:0;font-size:1.15rem;font-weight:700}.song-picker__top p{color:var(--ink-soft);margin:.2rem 0 0;font-size:.85rem}.song-picker__list{flex:1;padding:.4rem;overflow:auto}.song-picker__item{border-radius:var(--radius);width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:2.2rem 1fr;gap:.55rem;padding:.55rem .65rem;display:grid}.song-picker__item:hover,.song-picker__item.is-active{background:color-mix(in srgb, var(--pine) 12%, transparent)}.song-picker__num{font-family:var(--font-display);color:var(--pine);opacity:.75;font-size:.78rem;font-weight:700}.song-picker__name{font-size:.98rem;line-height:1.3}.song-picker__footer{border-top:1px solid var(--mist);flex-direction:column;gap:.75rem;padding:.75rem 1rem 1rem;font-size:.9rem;display:flex}.song-picker__mode{cursor:pointer;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.song-picker__mode-label{color:var(--ink-soft);font-size:.9rem;font-weight:600}.song-picker__switch{flex-shrink:0;width:2.5rem;height:1.4rem;position:relative}.song-picker__switch input{z-index:1;opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.song-picker__switch-track{border:1px solid color-mix(in srgb, var(--pine) 35%, transparent);background:color-mix(in srgb, var(--mist) 80%, white);border-radius:999px;width:100%;height:100%;transition:background .16s,border-color .16s;display:block}.song-picker__switch-track:after{content:"";background:var(--ink-soft);border-radius:50%;width:1rem;height:1rem;transition:transform .16s,background .16s;position:absolute;top:.15rem;left:.15rem}.song-picker__switch input:checked+.song-picker__switch-track{background:var(--pine);border-color:var(--pine)}.song-picker__switch input:checked+.song-picker__switch-track:after{background:#f3f7f5;transform:translate(1.1rem)}.song-picker__switch input:focus-visible+.song-picker__switch-track{outline:2px solid var(--ink);outline-offset:2px}.songbook{height:100%;min-height:100%;position:relative}.songbook--scroll{scroll-behavior:smooth;overflow-y:auto}.songbook__scroll-feed{padding-bottom:1rem}.songbook__scroll-book{z-index:5;text-align:center;font-family:var(--font-display);letter-spacing:-.03em;color:var(--pine-deep);background:color-mix(in srgb, var(--paper) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--mist);margin:0;padding:.85rem 1rem;font-size:clamp(1.15rem,3.5vw,1.45rem);font-weight:700;position:sticky;top:0}.songbook--loading,.songbook--empty{text-align:center;place-content:center;gap:.75rem;padding:2rem;display:grid}.songbook__brand{font-family:var(--font-display);letter-spacing:-.03em;color:var(--pine-deep);margin:0;font-size:clamp(2.4rem,8vw,4rem);font-weight:700}.songbook__status{color:var(--ink-soft);margin:0;font-style:italic;animation:1.4s ease-in-out infinite pulse}.songbook__browse{z-index:30;border:1px solid color-mix(in srgb, var(--pine) 35%, transparent);border-radius:var(--radius);background:var(--pine);color:#f3f7f5;cursor:pointer;place-items:center;width:2.75rem;height:2.75rem;padding:0;transition:transform .16s,background .16s;display:grid;position:fixed;bottom:1rem;left:1rem;box-shadow:0 10px 28px #141a172e}.songbook__browse:hover{background:var(--pine-deep);transform:translateY(-1px)}.songbook__browse:focus-visible{outline:2px solid var(--ink);outline-offset:3px}@keyframes pulse{0%,to{opacity:.55}50%{opacity:1}}@media (width<=640px){.songbook__browse{bottom:.75rem;left:.75rem}}.admin{place-items:start center;min-height:100%;padding:clamp(1.25rem,4vw,3rem);display:grid}.admin--wide{place-items:start stretch}.admin__panel{border:1px solid var(--mist);background:color-mix(in srgb, white 55%, var(--paper));width:min(28rem,100%);padding:1.75rem 1.5rem}.admin__eyebrow{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--pine);margin:0 0 .35rem;font-size:.8rem;font-weight:700}.admin h1{font-family:var(--font-display);letter-spacing:-.03em;color:var(--pine-deep);margin:0;font-size:clamp(2rem,5vw,2.6rem)}.admin__lead{color:var(--ink-soft);margin:.65rem 0 1.25rem;line-height:1.45}.admin__lead code{background:var(--mist);padding:.05em .3em;font-size:.92em}.admin__tabs{grid-template-columns:1fr 1fr;gap:.35rem;margin-bottom:1rem;display:grid}.admin__tabs button{border:1px solid var(--mist);cursor:pointer;font-family:var(--font-display);background:0 0;padding:.55rem .75rem;font-size:.85rem;font-weight:700}.admin__tabs button.is-active{background:var(--pine);border-color:var(--pine);color:#f4f7f5}.admin__form{gap:.85rem;display:grid}.admin__form label{gap:.35rem;font-size:.92rem;font-weight:600;display:grid}.admin__form input,.admin__form textarea{border:1px solid color-mix(in srgb, var(--ink) 18%, transparent);border-radius:var(--radius);width:100%;color:var(--ink);background:#ffffffa6;padding:.65rem .75rem}.admin__form textarea{resize:vertical;line-height:1.45;font-family:var(--font-lyrics)}.admin__form button[type=submit],.admin__row>button[type=submit]{border-radius:var(--radius);background:var(--pine);color:#f4f7f5;font-family:var(--font-display);cursor:pointer;border:0;padding:.7rem 1rem;font-weight:700}.admin__form button[type=submit]:disabled{opacity:.65;cursor:wait}.admin__error{color:var(--danger);margin:0;font-size:.92rem}.admin__footer{margin:1.25rem 0 0;font-size:.95rem}.admin__footer a,.admin__lead a,.admin a{color:var(--pine-deep);font-weight:600;text-decoration:none}.admin a:hover{text-decoration:underline}.admin__header{flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;display:flex}.admin__header-actions{flex-wrap:wrap;align-items:start;gap:.5rem;display:flex}.admin__ghost,.admin__danger{border:1px solid color-mix(in srgb, var(--ink) 18%, transparent);border-radius:var(--radius);color:inherit;font-family:var(--font-display);cursor:pointer;background:0 0;padding:.55rem .8rem;font-size:.85rem;font-weight:700;text-decoration:none}.admin__danger{border-color:color-mix(in srgb, var(--danger) 35%, transparent);color:var(--danger)}.admin__grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:start;gap:1rem;display:grid}.admin__card{border:1px solid var(--mist);background:color-mix(in srgb, white 55%, var(--paper));padding:1.25rem}.admin__card h2{font-family:var(--font-display);margin:0 0 1rem;font-size:1.15rem}.admin__row{flex-wrap:wrap;gap:.5rem;display:flex}.admin__songs{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.admin__songs li{border-bottom:1px solid var(--mist);justify-content:space-between;gap:.75rem;padding-bottom:.75rem;display:flex}.admin__songs li:last-child{border-bottom:0;padding-bottom:0}.admin__songs strong{font-size:.98rem;display:block}.admin__melody{color:var(--ink-soft);margin-top:.2rem;font-size:.85rem;font-style:italic;display:block}.admin__status{color:var(--ink-soft);font-style:italic}@media (width<=860px){.admin__grid{grid-template-columns:1fr}.admin__songs li{flex-direction:column}}:root{--paper:#e8ece9;--paper-deep:#d8e0db;--ink:#141a17;--ink-soft:#3a4740;--pine:#1f4d3a;--pine-deep:#163528;--mist:#141a1714;--panel:#e8ece9f5;--danger:#8b2e2e;--radius:2px;--font-display:"Syne", sans-serif;--font-lyrics:"Literata", "Georgia", serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;min-height:100%}body{color:var(--ink);font-family:var(--font-lyrics);background:radial-gradient(ellipse 120% 80% at 10% -10%, #f4f7f5 0%, transparent 55%), radial-gradient(ellipse 90% 70% at 100% 100%, #cfd9d2 0%, transparent 50%), linear-gradient(165deg, var(--paper) 0%, var(--paper-deep) 100%);-webkit-font-smoothing:antialiased;background-attachment:fixed;margin:0}button,input,textarea{font:inherit}a{color:var(--pine)}::selection{background:color-mix(in srgb, var(--pine) 28%, white)}
