/* =========================================================
   YAKISOBA — PIXEL PAGE TRANSITION
   Page-to-page only. WebGL project zoom is intentionally separate.
========================================================= */

:root {
  --pixel-transition-bg: #f7f5ef;
}

html.pixel-transition-pending body > *:not(.pixel-transition-layer) {
  visibility: hidden !important;
}

.pixel-transition-layer {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  grid-template-columns: repeat(var(--pixel-cols, 16), 1fr);
  grid-template-rows: repeat(var(--pixel-rows, 10), 1fr);
  width: 100vw;
  height: 100dvh;
  pointer-events: none;
  overflow: hidden;
  background: transparent;
}

.pixel-transition-cell {
  width: 100%;
  height: 100%;
  background: var(--pixel-transition-bg);
  transform: scale(0.02);
  opacity: 0;
  will-change: transform, opacity;
}

.pixel-transition-layer.is-covered .pixel-transition-cell {
  transform: scale(1.02);
  opacity: 1;
}

@media (max-width: 700px) {
  .pixel-transition-layer {
    grid-template-columns: repeat(var(--pixel-cols-mobile, 10), 1fr);
    grid-template-rows: repeat(var(--pixel-rows-mobile, 16), 1fr);
  }
}

@media (prefers-reduced-motion: reduce) {
  .pixel-transition-layer { display: none !important; }
  html.pixel-transition-pending body > * { visibility: visible !important; }
}
