.os-window.halfday-window{width:min(960px,calc(100vw - 42px));height:min(710px,calc(100dvh - 140px));max-height:calc(100dvh - 140px);display:flex;flex-direction:column}
.halfday-window .os-window-body{padding:0;overflow:hidden;flex:1;min-height:0;max-height:none}
.halfday-app{position:relative;height:100%;min-height:0;background:#858989;color:#f5f4ee;font-family:inherit}
.halfday-stage{position:absolute;inset:0;min-height:220px;overflow:hidden;background:#858989}
.halfday-canvas{display:block;width:100%;height:100%;touch-action:none;outline-offset:-4px}
.halfday-canvas:focus-visible{outline:2px solid #a9c2ce}
.halfday-scene-error{position:absolute;inset:25% 10% auto;margin:0;padding:14px;background:#eaf0f3;color:#30291f;text-align:center;line-height:1.6}
.halfday-controls{position:absolute;left:0;right:0;bottom:0;padding:12px 18px 14px;pointer-events:none;color:#f6f4ed;text-shadow:0 1px 3px #151a1bd9;font-size:12px;line-height:1.5}
.halfday-controls :is(button,a,[data-edit],.halfday-current,time){pointer-events:auto}
.halfday-caption{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 9px;margin-bottom:8px}
.halfday-caption strong{font-size:10px;font-weight:500;color:#e3e6e1}
.halfday-current{font-size:12px;line-height:1.5;margin:0;max-width:42ch;overflow-wrap:anywhere;white-space:pre-wrap}
.halfday-updated,.halfday-freshness{font-size:10px;color:#e3e6e1;margin:0}
.halfday-actions{position:relative;display:inline-flex;align-items:center;gap:7px;max-width:100%;border:1px solid #e7e9e93d;border-radius:7px;background:#252b2cea;box-shadow:0 3px 12px #11151630;padding:3px 7px 3px 3px;text-shadow:none;pointer-events:auto}
.halfday-window .halfday-app button{margin:0;text-decoration:none;font:inherit;color:inherit;box-sizing:border-box;border:0;cursor:pointer;display:inline-flex;align-items:center;background:transparent}
.halfday-app button:focus-visible{outline:2px solid #b4d2e2;outline-offset:2px}
.halfday-transport{display:flex;align-items:center;gap:1px}
.halfday-app .halfday-icon-button{position:relative;width:30px;height:32px;justify-content:center;padding:5px;border-radius:4px}
.halfday-play{width:34px}
.halfday-app .halfday-icon-button:hover,.halfday-track-chooser:hover{background:#ffffff15}
.halfday-app .halfday-icon-button:active{background:#ffffff29}
.halfday-icon-button svg{display:block;width:18px;height:18px;fill:currentColor}
.halfday-icon-button [data-edit],.halfday-private{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
.halfday-app .halfday-track-chooser{gap:8px;min-width:0;max-width:min(280px,50vw);padding:5px 3px 5px 9px;border-left:1px solid #e7e9e929!important;border-radius:0 4px 4px 0}
.halfday-track{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.halfday-track-chooser svg{width:13px;height:13px;flex:none;fill:currentColor;color:#d2dad8}
.halfday-stage>.halfday-curtain{position:absolute;right:12px;top:12px;background:#252b2cce;border:1px solid #e7e9e93d;color:#f5f4ee}
.halfday-music-menu{position:absolute;left:0;bottom:calc(100% + 9px);width:min(330px,calc(100vw - 64px));max-height:min(330px,55vh);overflow:auto;overscroll-behavior:contain;border:1px solid #747c7b;border-radius:6px;background:#e7e9e6;color:#26322f;box-shadow:0 6px 22px #111b1b45;text-shadow:none;pointer-events:auto}
.halfday-library-heading{position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;gap:15px;padding:11px 13px 9px;background:#e7e9e6;border-bottom:1px solid #c5ceca;font-size:12px;font-weight:600}
.halfday-library-count{font-size:10px;font-weight:400;color:#4c5d56}
.halfday-music-menu ol{list-style:none;padding:5px;margin:0}
.halfday-music-menu li{padding:0;margin:0}
.halfday-music-menu li button{display:flex;gap:11px;width:100%;padding:8px;border-radius:3px;text-align:left;color:#26322f}
.halfday-music-menu li button:hover{background:#d4dcd7}
.halfday-music-menu li button[aria-current=true]{background:#c8d4ce}
.halfday-track-number{padding-top:1px;color:#566860;font-size:10px;font-variant-numeric:tabular-nums}
.halfday-song-info{display:flex;flex-direction:column;gap:2px;font-size:12px;min-width:0}
.halfday-song-info>span{overflow-wrap:anywhere}
.halfday-song-info small{font-size:10px;color:#4c5d56}
.halfday-list-state{padding:8px 13px;font-size:11px}
.halfday-message{margin:5px 0 0;color:#ffe0af;font-size:11px}
.halfday-message:empty{display:none}
.halfday-app [hidden]{display:none!important}
.halfday-controls>[data-halfday=retry]{margin-top:6px;padding:4px 8px;background:#252b2cea;border-radius:3px}
@media(max-width:600px){.os-window.halfday-window{width:calc(100vw - 20px);height:calc(100dvh - 140px);max-height:calc(100dvh - 140px)}.halfday-stage{min-height:180px}.halfday-controls{padding:10px 12px}.halfday-icon-button{width:34px;height:36px}.halfday-track-chooser{max-width:calc(100vw - 170px)}.halfday-music-menu{max-height:45vh}.halfday-caption{gap:3px 7px}.halfday-updated{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.halfday-app *{scroll-behavior:auto!important}}

.halfday-opening{position:absolute;inset:0;z-index:1;display:grid;place-items:center;background:#dedede;color:#202627}
.halfday-opening img{display:block;width:min(284px,62%);height:auto}
.halfday-opening>span{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
