@font-face{font-family:Arrullo Pro;src:url('/fonts/aeonik-pro-medium.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Arrullo Pro;src:url('/fonts/aeonik-pro-bold.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:Arrullo Fono;src:url('/fonts/aeonik-fono-medium.ttf') format('truetype');font-weight:500;font-display:swap}
:root{color-scheme:dark;--bg:#182030;--panel:#131b28;--line:#72796f;--text:#e4dbad;--muted:#b9b79f;--accent:#e4dbad;--mono:'Arrullo Fono',Arial,sans-serif;--sans:'Arrullo Pro',Arial,sans-serif;font-family:var(--sans);font-weight:500;background:var(--bg);color:var(--text)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 20% 20%,#1f283880,transparent 65%),var(--bg)}body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:10;opacity:.13;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.87' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.72' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
main{max-width:500px;min-height:100dvh;margin:auto;padding:22px 24px max(24px,env(safe-area-inset-bottom))}button,input,textarea{font:inherit}button,a,label,input,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;min-height:44px;border:0;color:inherit;background:none}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--text);outline-offset:4px}button:hover{filter:brightness(1.12)}button:disabled{opacity:.5;cursor:wait}[hidden]{display:none!important}
header{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);min-height:60px;margin:0 0 34px}.brand{font-size:25px;letter-spacing:0;font-weight:700}.brand .dot{margin-left:3px}.moon{display:none}.eyebrow{font-family:var(--sans);font-size:10px;letter-spacing:0;font-weight:500;color:var(--muted)}header .eyebrow{border:1px solid var(--line);border-radius:24px;padding:7px 10px;color:var(--text)}
h1{font-size:clamp(45px,13vw,62px);line-height:1.01;letter-spacing:0;font-weight:700;margin:24px 0 20px}p{color:var(--muted);font-size:14px;line-height:1.6}.intro{position:relative;margin-bottom:28px}.intro p{margin:0;font-family:var(--sans);font-size:11px;line-height:1.7;max-width:235px}.intro::after{content:'↘';position:absolute;right:0;bottom:-1px;font-family:var(--sans);font-weight:500;font-size:53px;line-height:1}
label{display:block;font-family:var(--sans);font-size:10px;text-transform:uppercase;letter-spacing:0;margin-bottom:10px;color:var(--muted)}.searchbox{display:flex;border:1px solid var(--line);border-radius:0;overflow:hidden;background:#10182866}.searchbox input{border:0;background:none;min-width:0;width:100%;padding:18px 13px;font-size:16px;margin:0;letter-spacing:0}.searchbox input::placeholder{font-size:12px;letter-spacing:0}.searchbox button{background:var(--text);color:var(--bg);width:57px;flex-shrink:0;font-size:33px;border-left:1px solid var(--line);font-weight:500}
.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:26px 0 0;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}h2{font-family:var(--sans);font-size:11px;text-transform:uppercase;font-weight:500;letter-spacing:0;margin:0}.badge{font-size:11px;font-family:var(--sans);white-space:nowrap}.collection .sectionhead{padding:15px 0}.collection .badge{font-family:var(--sans);font-size:47px;line-height:1;letter-spacing:0}.collection h2{max-width:160px;line-height:1.6}
#empty{text-align:left;padding:27px 0 18px;position:relative;border-bottom:1px solid var(--line)}.empty-note{position:absolute;right:0;top:24px;font-size:25px;width:43px;height:43px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%}h3{font-size:20px;letter-spacing:0;font-weight:500;margin:0 50px 12px 0}#empty p{font-family:var(--sans);font-size:11px;line-height:1.75;margin:0 32px 0 0}.secondary{background:var(--text);color:var(--bg);padding:10px 14px;border-radius:3px;font-family:var(--sans);font-size:11px}.textbutton{font-family:var(--sans);text-transform:uppercase;color:var(--muted);font-size:10px;padding:10px 0;text-align:left;line-height:1.5}.textbutton:hover{color:var(--text)}#manual{width:100%;padding:15px 0;border-bottom:1px solid var(--line)}footer{font-family:var(--sans);color:var(--muted);font-size:10px;line-height:1.8;margin-top:27px}footer small{font-size:9px}.backup{display:flex;gap:22px;align-items:center;margin-top:8px}.backup label{cursor:pointer;margin:0;min-height:44px;display:flex;align-items:center}
.song{display:flex;align-items:center;text-align:left;width:100%;border-bottom:1px solid var(--line);gap:13px;padding:17px 0}.song-icon{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-family:var(--sans);font-size:11px;flex-shrink:0}.song strong{display:block;font-size:18px;font-weight:500;letter-spacing:0;overflow-wrap:anywhere}.song small{display:block;font-family:var(--sans);font-size:10px;color:var(--muted);margin-top:6px;line-height:1.5}.song .arrow{margin-left:auto;font-size:27px}.song>span:nth-child(2){min-width:0}#status:empty,#reader-status:empty{display:none}#status,#reader-status{font-family:var(--sans);font-size:11px;line-height:1.7}
#reader h1{font-size:42px;line-height:1.05;letter-spacing:0;overflow-wrap:anywhere;margin-top:19px}#reader>.sectionhead{margin-top:-35px;margin-bottom:25px;border-top:0;min-height:67px}#artist{font-family:var(--sans);font-size:12px;margin-top:-5px}details{background:var(--panel);border:1px solid var(--line);border-radius:0;margin:25px 0 16px;overflow:hidden}summary{cursor:pointer;padding:17px 13px;font-family:var(--sans);font-size:11px;text-transform:uppercase;list-style:none;min-height:50px}summary::-webkit-details-marker{display:none}summary span{float:right}#player{padding:0 12px 14px}iframe{border:0;border-radius:3px;width:100%;height:152px}iframe.youtube{height:210px}audio{width:100%}#player a{display:block;margin-top:12px;font-family:var(--sans);font-size:11px;text-decoration:underline;text-underline-offset:4px}#player p{font-size:12px}.reader-tools{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;background:var(--bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line);z-index:2}.reader-tools button{border:1px solid var(--line);border-radius:24px;padding:8px 13px;font-family:var(--sans);font-size:11px;white-space:nowrap}.reader-tools div{display:flex;gap:6px}.reader-tools button.active{background:var(--text);color:var(--bg)}#awake{width:44px;height:44px;padding:0;font-size:22px;flex-shrink:0}
#lyrics{font-size:28px;font-weight:500;line-height:1.65;letter-spacing:0;white-space:pre-wrap;overflow-wrap:anywhere;margin:30px 0 45px}#lyrics.f24{font-size:24px}#lyrics.f28{font-size:28px}#lyrics.f32{font-size:32px}#lyrics.f36{font-size:36px}#lyrics.f40{font-size:40px}#lyrics.f44{font-size:44px}#lyrics.f48{font-size:48px}#credit{font-family:var(--sans);font-size:10px;border-top:1px solid var(--line);padding-top:17px}#remove{display:block}.danger{color:#d2a48f}.reader-end{text-align:center;font-size:26px;margin:35px 0}.reader-end::before,.reader-end::after{content:'—';padding:0 22px;color:var(--line)}#speed-row{align-items:center;gap:20px;padding:14px 0}#speed-row:not([hidden]){display:flex}#speed-row label{margin:0}input[type=range]{accent-color:var(--text)}
dialog{background:var(--bg);border:1px solid var(--line);border-radius:3px;width:calc(100% - 24px);max-width:460px;color:var(--text);max-height:90dvh;padding:22px}dialog::backdrop{background:#0c1420cf}dialog .sectionhead{margin-top:0;margin-bottom:20px;border-top:0}input,textarea{display:block;width:100%;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:0;padding:13px;margin-top:8px;font-family:var(--sans);font-size:16px;font-weight:500}input::placeholder,textarea::placeholder{color:var(--muted)}textarea{resize:vertical;line-height:1.6}.primary{background:var(--text);color:var(--bg);width:100%;border-radius:3px;padding:13px;font-weight:700}#edit-error{color:#dfb09b}
@media(max-width:370px){main{padding:19px 18px}.eyebrow{font-size:9px}h1{font-size:46px}.reader-tools{gap:5px}.reader-tools button{padding:8px 10px;font-size:10px}.reader-tools div{gap:4px}#reader h1{font-size:36px}}

/* Mono is reserved for small interactive labels only. */
.textbutton,.secondary,.reader-tools button,summary{font-family:var(--mono)}
header{border:0;margin:0 0 24px;min-height:48px;justify-content:flex-start}.moon-home{display:grid;place-items:center;width:48px;height:48px}.moon-home span{display:block;width:30px;height:30px;border-radius:50%;background:var(--text);box-shadow:inset -3px -2px 6px #b5ad8430}.moon-home:focus-visible{border-radius:50%}
#collections{margin-bottom:28px}#collections>.sectionhead{margin-top:0;padding:0 0 9px;border-top:0}h2{font-size:15px;text-transform:none;letter-spacing:0;font-weight:500}#collection-list{display:flex;flex-wrap:wrap;gap:8px;padding-top:14px}.collection-tab{display:flex;align-items:center;gap:16px;padding:12px 14px;border:1px solid var(--line);border-radius:3px;font-size:16px;font-family:var(--sans);max-width:100%;text-align:left}.collection-tab span{overflow-wrap:anywhere}.collection-tab small{font-family:var(--sans);font-size:12px;opacity:.8}.collection-tab[aria-pressed=true]{background:var(--text);color:var(--bg)}#list-title{max-width:calc(100% - 65px);overflow-wrap:anywhere;font-size:19px;line-height:1.25}.eyebrow,label{font-family:var(--sans);font-size:12px}#empty p,footer,#status,#reader-status,#credit,#artist,.song small{font-family:var(--sans);font-size:13px}footer small{font-size:11px}.song-icon{font-family:var(--sans);font-size:13px}#reader>.sectionhead{margin-top:0}#reader h1{margin-top:24px}#song-collections{font-family:var(--sans);font-size:13px;color:var(--muted);margin:10px 0}#song-collections:empty{display:none}#collection-actions{border-bottom:1px solid var(--line)}.collection-choice{display:flex;align-items:center;gap:12px;font-family:var(--sans);font-size:17px;text-transform:none;min-height:48px;margin:0;border-bottom:1px solid var(--line);padding:10px 0}.collection-choice input{width:20px;height:20px;margin:0;accent-color:var(--text);flex-shrink:0}.collection-choice span{overflow-wrap:anywhere;min-width:0}#save-choices{margin:18px 0 25px}.quick-create{display:flex;align-items:stretch;gap:8px;margin-bottom:14px}.quick-create input{margin:0;min-width:0}.quick-create .secondary{flex-shrink:0}.save-hint,#collection-delete-note{font-size:12px}#collection-error,#save-error{color:#dfb09b;font-size:13px}#collection-error:empty,#save-error:empty{display:none}#collection-name{margin-bottom:20px}#delete-collection{margin-top:12px}#edit-form label{margin-bottom:16px}.backup label{font-family:var(--mono);font-size:10px}

/* Collection sleeves: compact type and flat, coloured disc symbols. */
#collection-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 12px;padding-top:16px}
.collection-tab{--sleeve:#d0d0c5;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px;min-width:0;width:100%;padding:0 0 8px;border:0;border-bottom:2px solid transparent;border-radius:0;background:none;color:var(--text);text-align:left}
.collection-tab[data-color="1"]{--sleeve:#ff8200}.collection-tab[data-color="2"]{--sleeve:#c5a5ae}.collection-tab[data-color="3"]{--sleeve:#008987}.collection-tab[data-color="4"]{--sleeve:#ff4c09}.collection-tab[data-color="5"]{--sleeve:#075171}
.collection-cover{position:relative;display:block;width:100%;aspect-ratio:1;background:#080b10;border:2px solid var(--sleeve);overflow:hidden}
.collection-cover::before{content:'';position:absolute;width:80%;height:80%;left:10%;top:10%;border-radius:50%;background:var(--sleeve)}
.collection-cover::after{content:'';position:absolute;right:0;top:47.5%;height:5%;width:15%;background:var(--sleeve)}
.collection-caption{display:flex;align-items:baseline;justify-content:space-between;gap:6px;min-width:0;font-family:var(--sans);line-height:1.05}
.collection-caption .collection-name{min-width:0;font-size:13px;font-weight:700;letter-spacing:0;overflow-wrap:anywhere}
.collection-caption small{flex-shrink:0;font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:0;line-height:1;opacity:1;color:var(--muted)}
.collection-tab[aria-pressed=true]{background:none;color:var(--text);border-bottom-color:var(--sleeve)}
.collection-tab[aria-pressed=true] .collection-name,.collection-tab[aria-pressed=true] small{color:var(--sleeve)}
.collection-tab:focus-visible{outline:2px solid var(--text);outline-offset:5px}.collection-tab:hover{filter:brightness(1.06)}
h2{font-weight:700;letter-spacing:0;font-size:18px}#list-title{font-size:23px;font-weight:700;letter-spacing:0;line-height:1.05}.collection .badge{font-weight:700;letter-spacing:0}.song strong{font-weight:700;letter-spacing:0}.song small{line-height:1.2}#reader h1{letter-spacing:0;line-height:1.02}
@media(max-width:350px){#collection-list{gap:15px 9px}.collection-caption{gap:4px}.collection-caption .collection-name{font-size:12px;letter-spacing:0}.collection-caption small{font-size:11px}}

/* Quiet controls and inline form validation. */
#collections>.sectionhead{justify-content:flex-end;border:0;padding:0;margin-top:-68px;margin-bottom:14px;min-height:44px}
.icon-button{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:0;padding:0;font-family:var(--sans);font-weight:500;font-size:25px;line-height:1}
.searchbox button{display:grid;place-items:center}.searchbox svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
#manual{width:auto;min-height:44px;margin-top:16px;padding:10px 15px;border:1px solid var(--line);border-radius:2px}
.field-error{display:block;margin-top:9px;padding:10px 12px;border-left:2px solid #d5a181;background:#d5a1810d;color:#dfb69b;font-family:var(--sans);font-size:13px;line-height:1.4;letter-spacing:0;text-transform:none;font-weight:500}
input[aria-invalid=true]{border-color:#d5a181}.searchbox:has(input[aria-invalid=true]){border-color:#d5a181}input[aria-invalid=true]:focus-visible{outline-color:#d5a181}

*,*::before,*::after{letter-spacing:0}
.collection-heading{display:flex;align-items:center;gap:5px;min-width:0}.collection-heading #list-title{max-width:none}.collection .badge{font-size:23px;line-height:1.05}.collection-caption small{font-size:13px}.pencil-button{flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;padding:10px}.pencil-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linejoin:round;stroke-linecap:round}.sort-row{display:flex;justify-content:flex-end;padding:10px 0;border-bottom:1px solid var(--line)}select{font-family:var(--mono);font-size:11px;font-weight:500;background:var(--bg);color:var(--text);border:1px solid var(--line);padding:10px;min-height:44px;max-width:100%}select:focus-visible{outline:2px solid var(--text);outline-offset:3px}@media(max-width:350px){.collection-caption small{font-size:12px}}
