html {
  -ms-touch-action: none;
}

body, canvas, div {
  display: block;
  outline: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);

  user-select: none;
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  -khtml-user-select: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

/* Remove spin of input type number */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    /* display: none; <- Crashes Chrome on hover */
    -webkit-appearance: none;
    margin: 0; /* <-- Apparently some margin are still there even though it's hidden */
}

body {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  margin: 0;

  cursor: default;
  color: #888;
  background-color: #333;

  text-align: center;
  font-family: Helvetica, Verdana, Arial, sans-serif;

  display: flex;
  flex-direction: column;
}

canvas {
  background-color: rgba(0, 0, 0, 0);
}

#GameDiv, #Cocos3dGameContainer, #GameCanvas {
  width: 100%;
  height: 100%;
}

:root {
  --safe-top: env(safe-area-inset-top);
  --safe-right: env(safe-area-inset-right);
  --safe-bottom: env(safe-area-inset-bottom);
  --safe-left: env(safe-area-inset-left);
}

/* Desktop Home and Game fill the host; modal pages retain their portrait frame. */
html, body { width: 100%; height: 100%; overflow: hidden; background: #faf6ed; }
body { align-items: center; justify-content: center; }
#GameDiv { flex: none; overflow: hidden; background: #fff; position: relative; }

/* Approved baking repeat and cookie border; decoration stays outside the game frame. */
:root { --game-frame-width: min(100vw, 560px); --cookie-edge-width: 18px; }
body {
  background-image: url('backgrounds/baking-repeat-v02.svg');
  background-repeat: repeat;
  background-size: 680px 680px;
}
body::before, body::after {
  content: ''; position: absolute; top: 0; bottom: 0; z-index: 2;
  width: var(--cookie-edge-width);
  background-image: url('backgrounds/cookie-edge-left-v01.svg');
  background-repeat: repeat-y; background-size: 100% 30px;
  pointer-events: none;
  filter: drop-shadow(-1px 1px 1.5px rgba(92, 60, 28, .2));
}
body::before { left: calc((100% - var(--game-frame-width)) / 2 - var(--cookie-edge-width) + 1px); }
body::after { right: calc((100% - var(--game-frame-width)) / 2 - var(--cookie-edge-width) + 1px); transform: scaleX(-1); }
body.home-wide { background-image: none; }
body.home-wide::before, body.home-wide::after { display: none; }
@media (max-width: 560px) and (orientation: portrait) {
  body { background-image: none; }
  body::before, body::after { display: none; }
}
