/* playbeehive.app/play — the stage around the game: honey glow, portrait frame on wide screens. */
:root { --honey: #f7b51c; --honey-deep: #e08a00; --cocoa: #4a2a10; --cream: #fff6dc; --sky: #bfe6ff; }
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; overflow: hidden; background: #2b1606; color: var(--cream);
  font-family: "Nunito", system-ui, sans-serif; -webkit-tap-highlight-color: transparent; overscroll-behavior: none; }
body { background: radial-gradient(120% 80% at 50% 110%, #f7b51c55 0%, transparent 60%), url("meadow.webp") center / cover no-repeat, #2b1606; }
body::before { content: ""; position: fixed; inset: 0; background: linear-gradient(180deg, #2b160699 0%, #2b1606cc 100%); }
#stage { position: fixed; inset: 0; display: grid; place-items: center; }
#unity-canvas { width: 100vw; height: 100vh; height: 100dvh; display: block; background: #fbe3a0; outline: none; touch-action: none; }
@media (min-aspect-ratio: 3/4) {
  #unity-canvas { height: 100dvh; width: calc(100dvh * 9 / 16); max-width: 100vw; border-radius: 22px;
    box-shadow: 0 0 0 3px #ffd36b, 0 0 0 9px #4a2a10, 0 30px 80px #000a, 0 0 120px #f7b51c55; }
}
@media (min-aspect-ratio: 3/4) and (min-height: 760px) { #unity-canvas { height: calc(100dvh - 48px); width: calc((100dvh - 48px) * 9 / 16); } }
#loader { position: fixed; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px;
  padding: 24px 16px; text-align: center; transition: opacity .6s ease;
  background: radial-gradient(80% 60% at 50% 40%, #ffd76a 0%, #f7b51c 45%, #c46e00 100%); }
#loader.is-done { opacity: 0; pointer-events: none; }
.loader__logo { width: min(320px, 72vw); height: auto; filter: drop-shadow(0 10px 24px #6b380066); animation: bob 2.4s ease-in-out infinite; }
.loader__bar { width: min(360px, 80vw); height: 22px; border-radius: 99px; background: #6b3a0a; padding: 4px;
  box-shadow: inset 0 3px 6px #0006, 0 2px 0 #ffe7a3; }
.loader__fill { position: relative; height: 100%; width: 4%; border-radius: 99px; transition: width .25s ease;
  background: linear-gradient(180deg, #ffe58a 0%, #ffc21f 55%, #e89200 100%); box-shadow: inset 0 -2px 0 #c06d00; }
.loader__bee { position: absolute; right: -18px; top: 50%; width: 38px; height: auto; transform: translateY(-58%); animation: buzz .35s ease-in-out infinite alternate; }
.loader__label { margin: 0; font-family: "Coiny", "Nunito", sans-serif; font-size: 20px; color: #4a2a10; text-shadow: 0 1px 0 #ffe9a8; }
.loader__tip { margin: 0; max-width: 340px; font-weight: 800; font-size: 15px; color: #5a3410; opacity: .85; }
#error { position: fixed; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
  padding: 24px 16px; text-align: center; background: #2b1606f0; }
#error[hidden], #loader[hidden] { display: none; }
#error h1 { margin: 0; font-family: "Coiny", sans-serif; font-weight: 400; color: var(--honey); font-size: 28px; }
#error p { margin: 0; max-width: 420px; }
#error button { margin-top: 8px; font: 800 18px "Nunito", sans-serif; color: var(--cocoa); background: var(--honey); border: 0;
  border-radius: 99px; padding: 12px 28px; box-shadow: 0 4px 0 var(--honey-deep); cursor: pointer; }
@keyframes bob { 50% { transform: translateY(-8px); } }
@keyframes buzz { to { transform: translateY(-48%) rotate(6deg); } }
@media (prefers-reduced-motion: reduce) { .loader__logo, .loader__bee { animation: none; } }
