@import url("/style/main.css"); @font-face { font-family: "Monaspace Argon"; src: url("/font/monaspace-argon/MonaspaceArgonVarVF[wght,wdth,slnt].woff2") format("woff2-variations"); font-weight: 125 950; font-stretch: 75% 125%; font-style: oblique 0deg 20deg; } html, body { margin: 0; padding: 0; font-size: 18px; color: #fff; background-color: #111; font-family: "Monaspace Argon", monospace; } #background { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background-size: cover; background-position: center; filter: blur(25px) saturate(25%) brightness(0.5); -webkit-filter: blur(25px) saturate(25%) brightness(0.5);; animation: background-init .5s forwards,background-loop 30s ease-in-out infinite } #go-back { position: fixed; top: 4rem; left: 1rem; width: 2.5rem; height: 2.5rem; margin: 0; font-size: 1.5rem; line-height: 2.6rem; display: flex; justify-content: center; color: #fff; background-color: #111; border-radius: 4px; text-decoration: none; box-shadow: 0 0 8px #0004; z-index: 1; } main { position: absolute; top: 3rem; width: 100vw; min-height: calc(100vh - 9rem); margin: 0; display: flex; justify-content: center; align-items: center; } #music-container { width: min(960px, calc(100vw - 4rem)); height: 360px; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 4rem; font-size: 16px; animation: card-init .5s forwards; overflow-y: clip; padding: 4rem; } #art-container { display: flex; align-items: center; position: relative; width: 20rem; transition: transform .5s cubic-bezier(0,0,0,1); } #art-container:hover { transform: scale(1.05) translateY(-5px); } #art-container:hover img#artwork { box-shadow: 0 16px 18px #0003; } /* TILT CONTROLS */ #art-container > div { position: absolute; width: 33.3%; height: 33.3%; z-index: 2; /* pointer-events: none; */ } #art-container > div.tilt-topleft { top: 0; left: 0; } #art-container > div.tilt-topleft:hover ~ #artwork { transform: rotate3d(-1, 1, 0, 20deg); filter: brightness(var(--shine)); -webkit-filter: brightness(var(--shine)); } #art-container > div.tilt-top { top: 0; left: 33.3%; } #art-container > div.tilt-top:hover ~ #artwork { transform: rotate3d(-1, 0, 0, 20deg); filter: brightness(var(--shine)); -webkit-filter: brightness(var(--shine)); } #art-container > div.tilt-topright { top: 0; right: 0; } #art-container > div.tilt-topright:hover ~ #artwork { transform: rotate3d(-1, -1, 0, 20deg); filter: brightness(var(--shine)); -webkit-filter: brightness(var(--shine)); } #art-container > div.tilt-right { top: 33.3%; right: 0; } #art-container > div.tilt-right:hover ~ #artwork { transform: rotate3d(0, -1, 0, 20deg); } #art-container > div.tilt-bottomright { bottom: 0; right: 0; } #art-container > div.tilt-bottomright:hover ~ #artwork { transform: rotate3d(1, -1, 0, 20deg); filter: brightness(var(--shadow)); -webkit-filter: brightness(var(--shadow)); } #art-container > div.tilt-bottom { bottom: 0; left: 33.3%; } #art-container > div.tilt-bottom:hover ~ #artwork { transform: rotate3d(1, 0, 0, 20deg); filter: brightness(var(--shadow)); -webkit-filter: brightness(var(--shadow)); } #art-container > div.tilt-bottomleft { bottom: 0; left: 0; } #art-container > div.tilt-bottomleft:hover ~ #artwork { transform: rotate3d(1, 1, 0, 20deg); filter: brightness(var(--shadow)); -webkit-filter: brightness(var(--shadow)); } #art-container > div.tilt-left { top: 33.3%; left: 0; } #art-container > div.tilt-left:hover ~ #artwork { transform: rotate3d(0, 1, 0, 20deg); } /* TILT CONTROLS */ #artwork { --shine: 1.05; --shadow: 0.8; width: 360px; height: 360px; margin: auto; display: flex; justify-content: center; line-height: 15rem; border-radius: 4px; color: #888; background-color: #ccc; box-shadow: 0 16px 16px #0004; transition: transform 1s cubic-bezier(0,0,0,1), filter .3s linear, box-shadow .3s linear; } div#vertical-line { width: 1px; background-color: #fff4; } div#info { display: flex; flex-direction: column; transition: transform .5s ease; gap: 6rem; } #title-container { display: flex; align-items: baseline; flex-direction: row; } #title { margin: 0; line-height: 1em; font-size: 3em; } #year { margin-left: .9em; font-size: 1.2em; color: #eee8; font-weight: bold; } #artist { margin: .2em 0 1em 0; font-size: 1em; color: #eee; } #title, #artist { text-shadow: 0 .05em 2px #0004 } #type { display: inline-block; margin: 0; padding: .3em .8em; color: #fff; background-color: #111; text-transform: uppercase; border-radius: 4px; } #type.single { background-color: #3b47f4; } #type.ep { background-color: #f419bd } #type.album { background-color: #34c627 } #type.comp { background-color: #ee8d46 } #type.upcoming { background-color: #ff3e3e } #type.upcoming span { animation: bob 2s ease-in-out infinite; display: inline-block; } #links { margin: 1rem 0; display: flex; flex-direction: row; flex-wrap: wrap; gap: .5rem } #links a { padding: .5em .8em; border-radius: 4px; flex-grow: 1; font-size: 1em; color: #111; background-color: #fff; text-align: center; text-decoration: none; transition: filter .1s,-webkit-filter .1s } #links a.buy { background-color: #ff94e9 } #links a.presave { background-color: #ff94e9 } #links a.spotify { background-color: #8cff83 } #links a.applemusic { background-color: #8cd9ff } #links a.soundcloud { background-color: #fdaa6d } #links a.youtube { background-color: #ff6e6e } #links a:hover { filter: brightness(125%); -webkit-filter: brightness(125%) } #description { font-size: 1.2em; } ul#extras { list-style: none; display: flex; padding: 0; gap: .6em; } ul#extras li a { color: #888; text-decoration: none; font-style: italic; } div#info > div { max-height: 360px; min-height: 360px; overflow-y: scroll; padding: 2rem 4rem; margin: -2rem -4rem; mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 90%, transparent 100%); } a.scrollback { color: #888; font-style: italic; } #credits ul { list-style: "> "; } #credits ul li { margin-bottom: 1rem; } #lyrics p { max-width: 500px; white-space: pre-line; } #share { margin: 0; display: inline-block; text-shadow: 0 .05em 2px #0004; cursor: pointer; opacity: .5; transition: opacity .1s linear; } #share:hover { opacity: 1; } #share.active { animation: share-click .5s forwards } #share.active::after { content: "✓"; font-size: 1.5em; line-height: .75em; position: absolute; transform: translateX(.3em); animation: share-after 2s cubic-bezier(.5,0,1,.5) forwards } #tracks { flex-basis: 100%; max-height: 10rem; margin: auto 8rem; display: flex; flex-wrap: wrap; gap: 0 2rem; overflow-y: auto; scrollbar-color: #fff transparent; scrollbar-width: thin } #tracks .track-preview { width: 100%; height: 2.5rem; display: flex; flex-direction: row; border-bottom: 1px solid #fff2; border-radius: 4px; user-select: none; transition: background-color .2s,color .2s } #tracks .track-preview: last-of-type { border-bottom: none } .track-preview:hover { background-color: #0002 } .track-preview.playing { color: #111; background-color: #fff } .track-preview i { width: .7em; margin: auto .8em; pointer-events: none } .track-preview p { margin: auto 0; display: inline-block; line-height: 2em; font-size: 1em; pointer-events: none } .track-preview audio { width: 100% } footer { position: fixed; left: 0; bottom: 0; width: 100vw; height: 6rem; display: flex; flex-direction: column; justify-content: center; align-items: center; color: #eee; background-color: #0008; backdrop-filter: blur(25px) } footer p { margin: 0 } footer a { color: inherit; text-decoration: none } footer a:hover { text-decoration: underline } @media only screen and (min-width: 800px) { div#info:has(> #credits:target) { transform: translateY(calc(-360px + -6rem)); } div#info:has(> #lyrics:target) { transform: translateY(calc((-360px + -6rem) * 2)); } } @media only screen and (max-width: 800px) { main { min-height: calc(100vh - 4rem); } #music-container { width: calc(100vw - 8rem); height: fit-content; padding: 2rem 0 6rem 0; gap: 1rem; flex-direction: column; text-align: center; } #art-container { width: 100%; margin-bottom: 2rem; } #artwork { width: 50vw; height: auto; } #vertical-line { display: none; } div#info { width: 100%; gap: 2rem; } div#info > div { max-height: fit-content; min-height: fit-content; padding: 0; margin: 0; overflow-y: unset; mask-image: none; } a.scrollback { display: none; } #title-container { flex-direction: column; align-items: center; } #year { display: block; margin: 0; } #links { margin: 2rem 0; justify-content: center; } #extras { justify-content: center; } #credits ul { padding: 0; list-style: none; } #share.active: : after { transform: translate(calc(-50% - .6em),1.5em); } #tracks { margin: 0; } footer { height: 4rem; font-size: .8rem; } #pride-flag { display: none; } } @keyframes background-init { from { opacity: 0 } to { opacity: 1 } } @keyframes background-loop { from { transform: scale(1) } 50% { transform: scale(1.05) } to { transform: scale(1) } } @keyframes card-init { from { opacity: 0; transform: scale(.9) } to { opacity: 1; transform: scale(1) } } @keyframes share-click { from { color: #5dfc01 } to { color: #eee } } @keyframes share-after { from { opacity: 1 } to { opacity: 0 } } @keyframes bob { from, to { transform: translateY(-10%); } 50% { transform: translateY(10%); } }