@media (prefers-reduced-motion: no-preference) and
       (min-height: 650px) and (min-width: 650px) {

/* BACKGROUND STUFF */

html {
  --bg-60309: url(../media/bg/60309.png);
  --bg-kesi: url(../media/bg/kesi.png);
  --bg-korai: url(../media/bg/korai.png);
  --bg-mirai: url(../media/bg/mirai.png);
  --bg-niss: url(../media/bg/niss.png);
  --bg-niss2: url(../media/bg/niss2.png);
  --bg-nisse: url(../media/bg/nisse.png);
  --bg-prickly: url(../media/bg/prickly.png);
  --bg-qt: url(../media/bg/qt.png);
  --bg-qt2: url(../media/bg/qt2.png);
}

@media (prefers-color-scheme: dark) {
  html {
    --bg-60309: url(../media/bg/60309_neon.png);
    --bg-kesi: url(../media/bg/kesi_neon.png);
    --bg-korai: url(../media/bg/korai_neon.png);
    --bg-mirai: url(../media/bg/mirai_neon.png);
    --bg-niss: url(../media/bg/niss_neon.png);
    --bg-niss2: url(../media/bg/niss2_neon.png);
    --bg-nisse: url(../media/bg/nisse_neon.png);
    --bg-prickly: url(../media/bg/prickly_neon.png);
    --bg-qt: url(../media/bg/qt_neon.png);
    --bg-qt2: url(../media/bg/qt2_neon.png);
  }
}

html {
  background:
  /*
    url(../media/bg/kesi_sprite_front.png) top 100px right no-repeat,
    url(../media/bg/kesi_sprite_mid.png) top 150px center repeat-x,
    url(../media/bg/kesi_sprite_back.png) top 200px left no-repeat,
  */
    var(--bg-60309) bottom 29% right calc(44% - var(--half))
      / auto 17% no-repeat,
    var(--bg-kesi) bottom 23% left calc(44% - var(--half))
      / auto 20% no-repeat,
    var(--bg-korai) bottom left 7% / auto 19% no-repeat,
    var(--bg-mirai) top calc(5em + 3%) right 6% / 20% auto no-repeat,
    var(--bg-niss) top 30% left calc(31% - var(--half))
      / auto 20% no-repeat,
    var(--bg-niss2) top 51% right calc(33% - var(--half))
      / auto 20% no-repeat,
    var(--bg-nisse) top 29% right calc(36% - var(--half))
      / auto 15% no-repeat,
    var(--bg-qt) bottom 41% left calc(24% - var(--half))
      / auto 18% no-repeat,
    var(--bg-qt2) top 10% left calc(46% - var(--half))
      / auto 16% no-repeat,
    var(--bg-prickly) bottom 9% right calc(28% - var(--half))
      / auto 15% no-repeat,
    var(--base-background);
  background-blend-mode: overlay;
}

@media (prefers-color-scheme: dark) {
  html {
    background-blend-mode: soft-light;
  }
}

@media (prefers-reduced-data: reduce) {
  html {
    background: var(--base-background);
    background-blend-mode: unset;
  }
}


/* LAYOUT BASICS */

body {
  display: grid;
  grid-template-rows: 5em 1fr;

  perspective: 440vw;
  perspective-origin: 50% 120%;
}

/* 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;
}


/* 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);
}

#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); }
  }
}

@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; }
}

}