:root{--slider-thumb-size: 16px}html,body{margin:0;padding:0;overflow:hidden;background:#000;height:100%;width:100%;-webkit-tap-highlight-color:transparent}#visualizer-canvas{position:fixed;top:0;right:0;bottom:0;left:0;display:block}#visualizer-canvas{will-change:transform;transform-origin:50% 50%;transition:opacity .4s linear}#app-menu{position:fixed;top:12px;left:12px;z-index:10;box-sizing:border-box;width:min(360px,calc(100vw - 24px));max-height:min(70vh,calc(100vh - 120px));max-height:min(70dvh,calc(100dvh - 120px));overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding:.75rem .9rem 1rem;background:#000000b8;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.08);border-radius:14px;color:#eee;font:12px system-ui,sans-serif;color-scheme:dark;opacity:0;visibility:hidden;transform:translateY(-6px) scale(.98);transition:opacity .22s ease,visibility .22s,transform .22s ease;scrollbar-width:thin;scrollbar-color:rgba(111,227,208,.45) rgba(255,255,255,.05)}#app-menu::-webkit-scrollbar{width:6px}#app-menu::-webkit-scrollbar-track{background:#ffffff0a}#app-menu::-webkit-scrollbar-thumb{background:#6fe3d066;border-radius:3px}#app-menu.menu-scrollable{mask-image:linear-gradient(to bottom,black calc(100% - 28px),transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black calc(100% - 28px),transparent 100%)}#app-menu.visible{opacity:1;visibility:visible;transform:none}#menu-header{display:flex;align-items:center;gap:.5rem;padding-bottom:.55rem;border-bottom:1px solid rgba(255,255,255,.1)}.wordmark{font-weight:600;letter-spacing:.22em;text-transform:lowercase;color:#ffffff8c;font-size:11px;margin-right:.15rem}#fullscreen-btn,#wake-lock-label,#install-btn{font:inherit;font-size:11.5px;color:inherit;background:#ffffff14;border:1px solid rgba(255,255,255,.16);border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;height:36px;flex:none;white-space:nowrap}#fullscreen-btn,#wake-lock-label{padding:0 .65rem}#install-btn{width:36px;padding:0}#install-btn[hidden]{display:none}#fullscreen-btn:hover,#wake-lock-label:hover,#install-btn:hover{background:#ffffff24}#wake-lock-label{position:relative;opacity:.6}#wake-lock-label input[type=checkbox]{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;opacity:0;cursor:pointer}#wake-lock-label:has(input:checked){opacity:1;color:#6fe3d0;background:#6fe3d024;border-color:#6fe3d066}#fullscreen-btn.active{color:#6fe3d0;background:#6fe3d024;border-color:#6fe3d066}.menu-block{border-top:1px solid rgba(255,255,255,.1);padding-top:.6rem}.block-title{margin:0 0 .4rem;font-size:12.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;opacity:.9}.source-row{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem}#menu-source select{font:inherit;color:inherit;background:#ffffff14;border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:.45rem .6rem;cursor:pointer;width:auto;flex:1 1 auto;min-width:0}#menu-source select:hover{background:#ffffff24}#menu-source input[type=file]{font:inherit;color:inherit;max-width:180px}#file-player{height:28px;max-width:220px;margin-top:.4rem}#tempo-readout{margin-right:auto;padding:.4rem .55rem;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#ffffff80;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11.5px}#tempo-readout.locked{color:#6fe3d0;border-color:#6fe3d04d}#source-status{display:flex;align-items:center;gap:.5rem;flex-basis:100%;margin:0;font-size:.82rem;line-height:1.35;color:#ffffffa8}#source-status.status-error{color:#ffb4a8}#source-status[hidden]{display:none}.menu-collapse{align-self:flex-start;margin-bottom:.4rem;padding:.3rem .6rem;font:inherit;color:inherit;background:#ffffff14;border:1px solid rgba(255,255,255,.16);border-radius:8px;cursor:pointer}.menu-collapse:hover{background:#ffffff24}.menu-category{border-top:1px solid rgba(255,255,255,.08);padding:.25rem 0 .25rem .85rem}.menu-category>summary{cursor:pointer;list-style:none;padding:.35rem 0;font-size:12px;font-weight:600;letter-spacing:.02em;opacity:.8}.menu-category>summary:before{content:"▸ ";opacity:.5}.menu-category[open]>summary:before{content:"▾ "}.settings-group{border-top:1px solid rgba(255,255,255,.07);padding:.3rem 0 .3rem .85rem}.settings-group>summary{cursor:pointer;padding:.3rem 0;font-size:11.5px;font-weight:500;letter-spacing:.01em;opacity:.7;list-style:none}.settings-group>summary:before{content:"▸ ";opacity:.4}.settings-group[open]>summary:before{content:"▾ "}.settings-group .settings-row{margin-left:.85rem}.settings-row{padding:.3rem 0 .45rem}.settings-label{display:flex;justify-content:space-between;gap:.5rem;padding-bottom:.15rem}.settings-value{opacity:.65;font-variant-numeric:tabular-nums}.settings-slider-wrap{position:relative}.settings-row input[type=range]{width:100%;height:22px;accent-color:#6fe3d0;touch-action:pan-y}.settings-row input[type=range]::-webkit-slider-thumb{width:var(--slider-thumb-size);height:var(--slider-thumb-size)}.settings-row input[type=range]::-moz-range-thumb{width:var(--slider-thumb-size);height:var(--slider-thumb-size)}.settings-default-marker{position:absolute;top:50%;width:2px;height:8px;background:#ffffff8c;transform:translate(-50%,-50%);pointer-events:none}.settings-row-toggle .settings-label{align-items:center;cursor:pointer;font-weight:600}.settings-row-toggle input[type=checkbox]{width:20px;height:20px;accent-color:#6fe3d0;cursor:pointer}.settings-hint{margin:.15rem 0 0;font-size:11px;line-height:1.35;opacity:.5}.settings-reset{margin-top:.9rem;width:100%;padding:.5rem;font:inherit;color:inherit;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer}.settings-reset:hover{background:#ffffff29}.scene-hero{display:flex;align-items:center;gap:.6rem;padding:.5rem 0 .65rem}.scene-hero-swatch{width:34px;height:34px;border-radius:9px;flex:none;border:1px solid rgba(255,255,255,.12)}.scene-hero-name{font-size:14.5px;font-weight:600;letter-spacing:-.005em}.scene-hero-meta{font-size:11px;color:#ffffff8c;margin-top:.1rem}.chip-row{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:.35rem;margin-bottom:.5rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}.chip-row::-webkit-scrollbar{display:none}.chip-row:last-child{margin-bottom:0}.chip{flex:none;font:inherit;font-size:11.5px;color:#ffffffbf;background:#ffffff0f;border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:.4rem .7rem;min-height:34px;cursor:pointer;white-space:nowrap}.chip:hover{background:#ffffff1c}.chip.active{color:#6fe3d0;background:#6fe3d024;border-color:#6fe3d073;font-weight:600}.pack-chip{position:relative;font-weight:700;font-size:10px;letter-spacing:.05em;text-transform:uppercase;min-height:38px;padding:.4rem .8rem .4rem 1.5rem;background:#ffffff1a;border-width:1.5px;border-radius:10px}.pack-chip:before{content:"";position:absolute;left:.65rem;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:#6fe3d0}.pack-chip.active{background:#6fe3d02e}.pack-chip.active:before{box-shadow:0 0 6px #6fe3d0cc}.pack-chip.off{opacity:.55}.pack-chip.off:before{background:#ffffff40}.pack-chip.off.active{opacity:.9}@keyframes chip-refuse{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.pack-chip.refused{animation:chip-refuse .18s ease-in-out}@media(prefers-reduced-motion:reduce){.pack-chip.refused{animation:none;outline:1px solid rgba(255,255,255,.5)}}.palette-row{gap:.5rem}.palette-swatch{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(255,255,255,.14);background:none;border-radius:9px;overflow:hidden;cursor:pointer;padding:0;flex:none;width:70px}.palette-swatch-bar{display:block;height:24px}.palette-swatch-label{display:block;font-size:10.5px;color:#fff9;padding:.25rem .35rem;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-swatch.active{border-color:#6fe3d0}.palette-swatch.active .palette-swatch-label{color:#6fe3d0}.facet-pill-row{display:flex;flex-wrap:wrap;gap:.4rem}.facet-pill{position:relative;display:inline-flex;align-items:center;gap:.4rem;font-size:12px;color:#ffffffa6;background:#ffffff0f;border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:.4rem .75rem .4rem .6rem;min-height:34px;cursor:pointer}.facet-pill:hover{background:#ffffff1a}.facet-pill-dot{width:7px;height:7px;border-radius:50%;background:#ffffff40;flex:none}.facet-pill:has(input:checked){color:#6fe3d0;background:#6fe3d024;border-color:#6fe3d073}.facet-pill:has(input:checked) .facet-pill-dot{background:#6fe3d0;box-shadow:0 0 6px #6fe3d0b3}.facet-pill input[type=checkbox]{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;opacity:0;cursor:pointer}.tuning-search-wrap{position:relative;margin-bottom:.5rem}.tuning-search{width:100%;height:38px;font:inherit;font-size:12.5px;color:inherit;background:#ffffff0f;border:1px solid rgba(255,255,255,.16);border-radius:9px;padding:0 2.2rem 0 .7rem}.tuning-search:focus{outline:none;border-color:#6fe3d080}.tuning-search-clear{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);width:28px;height:28px;font-size:16px;line-height:1;color:#fff9;background:#ffffff14;border:1px solid rgba(255,255,255,.14);border-radius:50%;cursor:pointer}.tuning-search-clear:hover{background:#ffffff29}.tuning-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;margin-bottom:.35rem}.tuning-tab{font:inherit;font-size:12px;font-weight:600;color:#fff9;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:.45rem .4rem;cursor:pointer}.tuning-tab[aria-selected=true]{color:#6fe3d0;background:#6fe3d024;border-color:#6fe3d066}.tuning-count{margin:0 0 .4rem;font-size:10.5px;color:#fff6}.tuning-empty{margin:.5rem 0;font-size:12px;color:#ffffff80}.tuning-search-pointer{display:block;width:100%;text-align:left;font:inherit;font-size:12px;color:#6fe3d0;background:#6fe3d01a;border:1px solid rgba(111,227,208,.3);border-radius:8px;padding:.5rem .65rem;margin-bottom:.5rem;cursor:pointer}.settings-crumb{display:none;font-size:10px;font-weight:400;color:#fff6;margin-top:.1rem}.tuning-search-results .settings-crumb{display:block}.scene-badge{font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6fe3d0;border:1px solid rgba(111,227,208,.35);background:#6fe3d01a;border-radius:999px;padding:.1rem .4rem;margin-left:.5rem}.tuning-scene-list .scene-badge{display:none}.tuning-everything{padding-top:.1rem}
