/* desktop */ .viz-desktop.viz-wrap { position: relative; margin: 1rem 0 4rem; width: 100vw; left: 50%; transform: translateX(-50%); line-height: 0; } .viz-desktop .viz-canvas-wrap { position: relative; line-height: 0; min-width: 0; box-shadow: 0 1.5rem 3rem rgba(0, 0, 0, 0.25); } .viz-desktop .viz-canvas-wrap canvas { display: block; width: 100%; aspect-ratio: 16 / 9; } .viz-desktop .viz-tracks { position: absolute; top: 0.6rem; left: 0.6rem; bottom: 3.5rem; width: 13rem; display: flex; flex-direction: column; overflow-y: auto; padding-right: 0.4rem; z-index: 2; } .viz-desktop .viz-tracks::-webkit-scrollbar { width: 4px; } .viz-desktop .viz-tracks::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.15); border-radius: 2px; } .viz-desktop .viz-track { font: inherit; font-size: 0.8rem; line-height: 1.45; text-align: left; padding: 0.1rem 0.5rem; border: none; background: transparent; color: rgba(200, 200, 200, 0.4); cursor: pointer; transition: color 120ms ease; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); } .viz-desktop .viz-track:hover { color: rgba(235, 235, 235, 0.85); } .viz-desktop .viz-track.active { color: #fff; } .viz-desktop .viz-vol { position: absolute; top: 0.75rem; right: 0.75rem; z-index: 3; } .viz-desktop .viz-vol .viz-prompt { display: none; } .viz-desktop .viz-vol.initial { top: 50%; left: 50%; right: auto; transform: translate(-50%, -50%); width: auto; height: auto; padding: 1.1rem 1.6rem; border-radius: 999px; background: rgba(0, 0, 0, 0.6); gap: 1rem; } .viz-desktop .viz-vol.initial img { width: 3rem; height: 3rem; } .viz-desktop .viz-vol.initial .viz-prompt { display: inline-block; font: inherit; font-size: 1.15rem; color: #fff; white-space: nowrap; text-shadow: 0 1px 4px rgba(0, 0, 0, 0.7); pointer-events: none; } .viz-desktop .viz-transport { position: absolute; bottom: 0.75rem; left: 50%; transform: translateX(-50%); display: flex; gap: 0.5rem; z-index: 2; opacity: 1; transition: opacity 400ms ease; } .viz-desktop .viz-transport.fade { opacity: 0; } .viz-desktop .viz-ctrl { width: 2.4rem; height: 2.4rem; border-radius: 50%; border: none; background: rgba(0, 0, 0, 0.35); color: rgba(220, 220, 220, 0.85); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; padding: 0; transition: background 120ms ease, opacity 400ms ease; opacity: 1; } .viz-desktop .viz-ctrl.fade { opacity: 0; } .viz-desktop .viz-ctrl:hover { background: rgba(0, 0, 0, 0.55); } .viz-desktop .viz-ctrl img { width: 58%; height: 58%; display: block; pointer-events: none; user-select: none; } .viz-desktop .viz-ctrl-play img { width: 50%; height: 50%; } /* mobile */ .viz-mobile.viz-wrap { position: relative; margin: 1rem 0 2rem; width: 100vw; left: 50%; transform: translateX(-50%); line-height: 0; } .viz-mobile .viz-canvas-wrap { position: relative; line-height: 0; min-width: 0; box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.25); } .viz-mobile .viz-canvas-wrap canvas { display: block; width: 100%; aspect-ratio: 16 / 9; } .viz-mobile .viz-vol { position: absolute; top: 0.6rem; right: 0.6rem; z-index: 3; } .viz-mobile .viz-vol .viz-prompt { display: none; } .viz-mobile .viz-vol.initial { top: 50%; left: 50%; right: auto; transform: translate(-50%, -50%); width: auto; height: auto; padding: 0.85rem 1.2rem; border-radius: 999px; background: rgba(0, 0, 0, 0.65); gap: 0.75rem; } .viz-mobile .viz-vol.initial img { width: 2.2rem; height: 2.2rem; } .viz-mobile .viz-vol.initial .viz-prompt { display: inline-block; font: inherit; font-size: 0.95rem; color: #fff; text-shadow: 0 1px 4px rgba(0, 0, 0, 0.7); pointer-events: none; white-space: normal; max-width: 60vw; } .viz-mobile .viz-transport { position: absolute; bottom: 0.6rem; left: 50%; transform: translateX(-50%); display: flex; gap: 0.5rem; z-index: 2; opacity: 1; transition: opacity 400ms ease; } .viz-mobile .viz-transport.fade { opacity: 0; } .viz-mobile .viz-ctrl { width: 2.1rem; height: 2.1rem; border-radius: 50%; border: none; background: rgba(0, 0, 0, 0.4); color: rgba(230, 230, 230, 0.9); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; padding: 0; transition: background 120ms ease, opacity 400ms ease; opacity: 1; } .viz-mobile .viz-ctrl.fade { opacity: 0; } .viz-mobile .viz-ctrl:active { background: rgba(0, 0, 0, 0.6); } .viz-mobile .viz-ctrl img { width: 58%; height: 58%; display: block; pointer-events: none; user-select: none; } .viz-mobile .viz-ctrl-play img { width: 50%; height: 50%; } yrxtals-tracks { display: block; max-width: 92vw; margin: 1rem auto 3rem; padding: 0 0.5rem; } yrxtals-tracks .viz-track { display: block; width: 100%; text-align: left; font: inherit; font-size: 1rem; line-height: 1.6; padding: 0.4rem 0.75rem; border: none; background: transparent; color: rgba(220, 220, 220, 0.7); cursor: pointer; transition: color 120ms ease; } yrxtals-tracks .viz-track:hover { color: rgba(245, 245, 245, 0.95); } yrxtals-tracks .viz-track.active { color: #fff; }