body { padding: 0; margin: 0 }
#unity-container { position: absolute }
#unity-container.unity-desktop { left: 50%; top: 50%; transform: translate(-50%, -50%) }
#unity-container.unity-mobile { position: fixed; width: 100%; height: 100% }
#unity-canvas { background: #1F1F20 }
.unity-mobile #unity-canvas { width: 100%; height: 100% }
#unity-loading-bar { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: none }
#unity-logo { width: 154px; height: 130px; background: url('unity-logo-dark.png') no-repeat center }
#unity-progress-bar-empty { width: 141px; height: 18px; margin-top: 10px; margin-left: 6.5px; background: url('progress-bar-empty-dark.png') no-repeat center }
#unity-progress-bar-full { width: 0%; height: 18px; margin-top: 10px; background: url('progress-bar-full-dark.png') no-repeat center }
#unity-footer { position: relative }
.unity-mobile #unity-footer { display: none }
#unity-logo-title-footer { float:left; width: 102px; height: 38px; background: url('unity-logo-title-footer.png') no-repeat center }
#unity-build-title { float: right; margin-right: 10px; line-height: 38px; font-family: arial; font-size: 18px }
#unity-fullscreen-button { cursor:pointer; float: right; width: 38px; height: 38px; background: url('fullscreen-button.png') no-repeat center }

/* Hiding the whole footer on mobile (above) also hid the fullscreen
   button living inside it, with no other way to reach fullscreen --
   this game requires landscape to play at all, so being stuck
   windowed is a real usability problem, not cosmetic. A dedicated
   #unity-mobile-fullscreen-button (index.html) sits OUTSIDE #unity-
   footer for this reason: display:none on an ancestor hides every
   descendant no matter what position/display THAT descendant sets on
   itself -- position:fixed does not escape it, confirmed the hard way
   (the button existed, computed style looked right, but its actual
   rendered box was 0x0 while it was still a child of the hidden
   footer). This one is a sibling instead, so it's unaffected. Hidden
   by default; shown only once .unity-mobile is applied to the
   container (the rotate prompt already hides #unity-container, and
   this button with it, entirely while in portrait, so no extra guard
   needed here). Fullscreen itself can only be triggered by a genuine
   tap -- browsers block calling it automatically -- so this has to
   stay a real button, not an auto-trigger on rotation. Hidden again
   once actually in fullscreen (see the fullscreenchange listener in
   index.html) so it doesn't clutter the board once no longer needed. */
#unity-mobile-fullscreen-button { display: none }
.unity-mobile #unity-mobile-fullscreen-button {
  display: block;
  position: fixed;
  top: 10px;
  right: 10px;
  width: 40px;
  height: 40px;
  cursor: pointer;
  background-color: rgba(0, 0, 0, 0.55);
  background-image: url('fullscreen-button.png');
  background-repeat: no-repeat;
  background-position: center;
  background-size: 22px;
  border-radius: 4px;
  z-index: 20;
}
body.unity-is-fullscreen .unity-mobile #unity-mobile-fullscreen-button { display: none }
#unity-warning { position: absolute; left: 50%; top: 5%; transform: translate(-50%); background: white; padding: 10px; display: none }

/* This game's entire UI (2D/3D chess board, side panels, top bars) was
   built landscape-only, matching the original design's stated WebGL-pilot
   scope -- there's no portrait layout for any screen. Without this,
   Unity's stock mobile CSS (.unity-mobile #unity-canvas { width: 100%;
   height: 100% }, above) stretches the canvas to fill whatever shape the
   device happens to be in, including a narrow portrait phone screen --
   crushing the landscape-designed UI into a tall thin rectangle and
   pushing fixed-width panels (e.g. the 600px Guide screen side panel)
   outside the visible area entirely. This overlay blocks play and asks
   for a rotation instead of silently rendering a broken layout. */
#unity-rotate-prompt {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: #1F1F20;
  color: #F3F2F2;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  padding: 32px;
  box-sizing: border-box;
}
#unity-rotate-prompt svg {
  width: 64px;
  height: 64px;
  margin-bottom: 20px;
  animation: unity-rotate-hint 1.6s ease-in-out infinite;
}
#unity-rotate-prompt p {
  margin: 0;
  font-size: 17px;
  line-height: 1.4;
  max-width: 320px;
}
@keyframes unity-rotate-hint {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(-90deg); }
}
@media (prefers-reduced-motion: reduce) {
  #unity-rotate-prompt svg { animation: none; }
}
