:root { /* --iiv: #000; --iv: #444; --v: #0bb; --iv: #aaa; --iiv: #fff; --a: #f33; */ --iiv: #ddd; --iv: #aaa; --v: #375; --vi: #555; --vii: #222; --a: #f40; --chevron-right: url("data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v2h2V5H8zm4 4V7h-2v2h2zm2 2V9h-2v2h2zm0 2h2v-2h-2v2zm-2 2v-2h2v2h-2zm0 0h-2v2h2v-2zm-4 4v-2h2v2H8z' fill='currentColor'/%3E%3C/svg%3E") } body:not(.player) .player { display: none; } body:not(.browser) .browser { display: none; } body:not(.queue) .queue { display: none; } body:not(.playing) .playing { display: none; } body:not(.paused) .paused { display: none; } button, a { all: unset; padding: 0; border: 0; } button:hover, a:hover, .focus { color: var(--a) } button:active, a:active { color: var(--v) } body { margin: 0; background: var(--iiv); color: var(--vii); font-family: sans-serif; font-size: 16px; display: flex; flex-direction: column; height: 100vh; max-height: 100vh; box-sizing: border-box; } main { flex-grow: 1; overflow: hidden; } main > * { height: 100%; } menu li:first-child { margin-top: 0; } menu { overflow-y: scroll; overflow-x: hidden; margin: 0; padding: 0 5px; line-height: 1.4; } menu li { list-style-type: none; height: 28px; margin: 8px 0; text-wrap: nowrap; } menu a::after { content: " "; width: 24px; height: 24px; background: currentColor; mask: var(--chevron-right); mask-mode: alpha; margin-left: auto; position: sticky; right: 0; } menu header { font-weight: bold; } menu a, menu li { width: 100%; display: flex; flex-direction: row; } menu code { width: 16px; margin-right: 5px; color: var(--v) } menu section { display: flex; flex-direction: column; } menu b, menu code { font-size: 14px; line-height: 16px; } menu b { margin-bottom: 2px; } menu cite { font-size: 12px; line-height: 12px; } menu section, menu b, menu cite { min-width: 0; text-overflow: ellipsis; overflow: hidden; } menu code { margin-right: 5px; color: var(--v) } menu:empty::after { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); content: "\2014 Empty \2014"; } menu:empty::after, #loading { color: var(--vi); font-style: italic; text-align: center; } #loading { display: flex; flex-direction: column; justify-content: center; align-items: center; } nav { height: 30px; width: 100%; flex-shrink: 0; background: var(--iiv); color: var(--vii); display: flex; padding: 0 5px; white-space: nowrap; font-weight: 700; box-sizing: border-box; line-height: 26px; margin-top: auto; } .left, .right { font-weight: 600; font-size: 14px; overflow: hidden; width: 100%; letter-spacing: -0.5px; box-sizing: border-box; text-overflow: ellipsis; } .left { text-align: left; padding-right: 5px; } .center { text-transform: uppercase; font-size: 18px; text-align: center; max-width: 120px; overflow: hidden; text-overflow: ellipsis; width: 100%; } .right { text-align: right; padding-left: 5px; } .content { flex-grow: 1; overflow-y: auto; } .controls { position: relative; } .controls header, .controls nav { margin: 10px 0; } .controls header { text-align: center; } .controls header h3, .controls header p { margin-block: 0; line-height: 1.3; } /* nav button { width: 30px; height: 30px; } nav, nav button { display: flex; justify-content: center; align-items: center; } nav svg { stroke-width: 0; stroke-linecap: square; stroke-linejoin: square; stroke: currentcolor; fill: currentcolor; width: 22px; height: 22px; } */ section.player { position: relative; height: 100%; display: flex; flex-direction: column; padding: 0 5px; text-align: center; } section.player img { margin-top: 5px; width: 230px; height: 230px; } section.player header { font-size: 20px; margin-top: 2px; } section.player cite { font-size: 14px; margin: 0 50px 5px 50px; } section.player cite, section.player header { text-wrap: nowrap; } .marquee { overflow: hidden; text-overflow: clip; } .marquee span { display: inline-block; animation: marquee 60s linear infinite; padding-right: 4ch; } @keyframes marquee { 0% { transform: translate(0, 0) } 25% { transform: translate(-100%, 0) } 100% { transform: translate(-100%, 0) } } #playpause { border-radius: 50%; border: 2px solid currentcolor; } #timestamp, #track-length { position: absolute; padding: 5px; font-size: 13px; bottom: 0; } #timestamp { color: var(--a); left: 0; } #track-length { color: var(--vi); right: 0; } .progress { width: 100%; height: 3px; color: var(--vii) } .progress path { stroke-width: 2px; stroke-dasharray: 100; stroke-dashoffset: 50; } progress { width: 100%; block-size: 3px; appearance: none; } progress::-webkit-progress-bar { background-color: var(--iv); } progress::-webkit-progress-value { background-color: var(--vii); } ::-webkit-scrollbar { background: none; width: 5px; } ::-webkit-scrollbar-thumb { background-color: var(--vi); } body > svg { flex-shrink: 0; } #tab-indicator { display: block; width: 100%; padding: 0 5px; box-sizing: border-box; } #tab-indicator line { stroke: var(--v); transition: stroke-dasharray 0.1s ease-in; } main header { text-align: center; } /* body > header { height: 24px; flex-shrink: 0; } #tabs { margin: 0 5px; scrollbar-width: none; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 25px; overflow-x: scroll; color: var(--vi); text-align: center; } #tabs .selected { color: var(--vii); min-width: 60%; } */ .top { position: sticky; top: 0; z-index: 2; }