/* play.blockops.site: the game page. Same palette as blockops.site and the game UI. */
:root {
  --bg: #11161e; --panel: #1f2835; --raised: #283344; --line: #354257;
  --text: #e4e9f0; --muted: #8d9aae; --amber: #f2b33d; --amber-dark: #b47a1d; --amber-ink: #241a05; --red: #e5533d;
  --display: "Russo One", "Arial Black", system-ui, sans-serif;
  --pixel: "Silkscreen", ui-monospace, monospace;
  --body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color-scheme: dark;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { margin: 0; height: 100%; background: #000; color: var(--text); font: 15px/1.5 var(--body); overflow: hidden; }

#bar { height: 44px; display: flex; align-items: center; gap: 14px; padding: 0 14px; background: var(--bg); border-bottom: 1px solid var(--line); }
.brand { display: flex; align-items: center; gap: 8px; color: var(--text); text-decoration: none; font: 17px var(--display); letter-spacing: .02em; }
.brand span { color: var(--amber); }
.ver { font: 11px var(--pixel); color: var(--muted); text-transform: uppercase; }
#fullscreen { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; font: 13px var(--display); text-transform: uppercase; letter-spacing: .03em; color: var(--amber-ink); background: var(--amber); border: 0; padding: 6px 12px; cursor: pointer; box-shadow: 0 3px 0 var(--amber-dark); }
#fullscreen:active { transform: translateY(2px); box-shadow: 0 1px 0 var(--amber-dark); }
#fullscreen svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.6; }
:focus-visible { outline: 2px solid var(--amber); outline-offset: 2px; }

#stage { position: relative; height: calc(100% - 44px); }
#unity-canvas { display: block; width: 100%; height: 100%; background: #0b0e13; outline: none; }

/* loading screen */
#loading { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 24px 16px; text-align: center; transition: opacity .4s;
  background:
    linear-gradient(rgb(255 255 255 / .03) 1px, transparent 1px) 0 0 / 32px 32px,
    linear-gradient(90deg, rgb(255 255 255 / .03) 1px, transparent 1px) 0 0 / 32px 32px,
    radial-gradient(70% 70% at 50% 45%, #1d2736 0%, var(--bg) 75%); }
#loading.done { opacity: 0; pointer-events: none; }
#loading .logo { width: 96px; height: 96px; margin-bottom: 8px; }
#loading h1 { font: clamp(36px, 7vw, 56px)/1 var(--display); margin: 0 0 22px; letter-spacing: .02em; }
#loading h1 span { color: var(--amber); }
.meter { width: min(420px, 100%); height: 18px; padding: 3px; border: 2px solid var(--line); background: #0b0e13; }
#fill { height: 100%; width: 0; transition: width .2s; background: repeating-linear-gradient(-45deg, var(--amber) 0 10px, #d99a24 10px 20px); }
#status { font: 13px var(--pixel); text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: 10px 0 0; }
#status b { color: var(--amber); font-weight: normal; }
.tip { color: var(--muted); max-width: 44ch; margin: 18px 0 0; font-size: 15px; }
.tip::before { content: "TIP  "; font: 12px var(--pixel); color: var(--amber); }

/* notices (unsupported browser, phone, errors) */
#notice { position: absolute; inset: 0; display: grid; place-items: center; padding: 16px; background: rgb(11 14 19 / .86); }
#notice .box { width: min(440px, 100%); background: var(--panel); border: 1px solid var(--line); border-top: 4px solid var(--amber); padding: 24px; }
#notice h2 { font: 22px var(--display); margin: 0 0 8px; text-transform: uppercase; }
#notice p { color: var(--muted); margin: 0 0 20px; }
#notice .row { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
#notice .primary { font: 15px var(--display); text-transform: uppercase; color: var(--amber-ink); background: var(--amber); border: 0; padding: 10px 18px; cursor: pointer; box-shadow: 0 4px 0 var(--amber-dark); }
#notice .ghost { color: var(--muted); }

#warnings { position: absolute; top: 10px; left: 50%; transform: translateX(-50%); display: grid; gap: 6px; width: min(560px, calc(100% - 32px)); pointer-events: none; }
#warnings .msg { padding: 8px 12px; background: var(--panel); border-left: 4px solid var(--amber); font-size: 14px; }
#warnings .msg.error { border-left-color: var(--red); }

/* fullscreen and phones: give the game every pixel */
body.mobile #bar { height: 36px; }
body.mobile #stage { height: calc(100% - 36px); }
@media (max-height: 500px) { #bar, body.mobile #bar { display: none; } #stage, body.mobile #stage { height: 100%; } }
