2024-09-22 15:32:01 -04:00
|
|
|
@media (prefers-reduced-motion: no-preference) and
|
|
|
|
(min-height: 650px) and (min-width: 650px) {
|
|
|
|
|
|
|
|
/* LAYOUT BASICS */
|
|
|
|
|
2024-09-04 09:31:06 -04:00
|
|
|
body {
|
|
|
|
display: grid;
|
2024-09-22 15:32:01 -04:00
|
|
|
grid-template-rows: 5em 1fr;
|
2024-09-04 09:31:06 -04:00
|
|
|
|
|
|
|
perspective: 440vw;
|
|
|
|
perspective-origin: 50% 120%;
|
|
|
|
}
|
|
|
|
|
2024-09-22 15:32:01 -04:00
|
|
|
/* MENU ANIMATION */
|
|
|
|
|
|
|
|
.menu label { position: relative; }
|
|
|
|
.menu label::after {
|
|
|
|
content: ' ';
|
|
|
|
z-index: -1;
|
|
|
|
position: absolute;
|
|
|
|
inset: 0 0 100% 0;
|
|
|
|
background: hsl(var(--menu-bg-hsl));
|
|
|
|
transition: inset .15s linear;
|
|
|
|
}
|
|
|
|
.menu :checked + label::after {
|
|
|
|
bottom: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2024-09-04 09:31:06 -04:00
|
|
|
/* CUBE ASSEMBLY */
|
|
|
|
/* the rest is in cube.ts */
|
|
|
|
|
|
|
|
html {
|
|
|
|
--side: min(65vh, 70vw);
|
|
|
|
--half: calc(var(--side) * .5);
|
|
|
|
--nhalf: calc(0em - var(--half));
|
|
|
|
--breathe: calc(var(--side) * .1);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* cube shadow */
|
|
|
|
html {
|
|
|
|
background:
|
2024-09-22 15:32:01 -04:00
|
|
|
radial-gradient(circle, hsl(var(--shadow-hsl) / 70%), transparent 58%),
|
2024-09-04 09:31:06 -04:00
|
|
|
var(--gradient);
|
|
|
|
background-blend-mode: multiply;
|
|
|
|
}
|
|
|
|
|
|
|
|
#outer {
|
|
|
|
--transform-origin: 50% 50% calc(var(--nhalf) - min(6vh, 6vw));
|
|
|
|
}
|
|
|
|
|
|
|
|
#outer, #cube {
|
|
|
|
transform-style: preserve-3d;
|
|
|
|
transform-origin: var(--transform-origin);
|
|
|
|
width: calc(var(--side) + 10vw);
|
|
|
|
height: calc(var(--side) + 10vh);
|
|
|
|
margin: auto;
|
|
|
|
}
|
|
|
|
|
|
|
|
#cube {
|
|
|
|
position: relative;
|
|
|
|
}
|
|
|
|
|
|
|
|
#cube > section {
|
|
|
|
position: absolute;
|
|
|
|
inset: 5vh 5vw;
|
|
|
|
overflow: auto;
|
|
|
|
transform-origin: var(--transform-origin);
|
|
|
|
transform: var(--base-transform);
|
|
|
|
overscroll-behavior: contain;
|
|
|
|
}
|
|
|
|
|
|
|
|
@supports (scrollbar-color: pink orange) { /* safari detector */
|
|
|
|
#cube:not([data-moving]) > section {
|
|
|
|
animation: breathe 9s infinite ease-in-out;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes breathe {
|
|
|
|
35% { transform: translateZ(var(--breathe)) var(--base-transform); }
|
|
|
|
}
|
2024-09-22 15:32:01 -04:00
|
|
|
|
|
|
|
@media (prefers-reduced-motion: no-preference) {
|
|
|
|
.zoom * { transition: all 0.25s ease-in; }
|
|
|
|
.zoom > :hover {
|
|
|
|
scale: 110%;
|
|
|
|
filter: drop-shadow(4px 4px 5px rgb(0 0 0 / 60%));
|
|
|
|
}
|
|
|
|
.zoom > :hover:nth-child(5n) { rotate: 4deg; }
|
|
|
|
.zoom > :hover:nth-child(5n+1) { rotate: -2deg; }
|
|
|
|
.zoom > :hover:nth-child(5n+2) { rotate: 1deg; }
|
|
|
|
.zoom > :hover:nth-child(5n+3) { rotate: -3deg; }
|
|
|
|
.zoom > :hover:nth-child(10n+4) { rotate: 4deg; }
|
|
|
|
.zoom > :hover:nth-child(10n+9) { rotate: -1deg; }
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|