:root { --portal-bg: rgba(4, 7, 15, .9); --portal-line: rgba(255,255,255,.2); --portal-text: #f7f6ff; --portal-accent: #35e2ff; }

.game-portal-utility {
  position: fixed;
  z-index: 120;
  top: max(10px, env(safe-area-inset-top));
  left: max(10px, env(safe-area-inset-left));
  right: max(10px, env(safe-area-inset-right));
  min-height: 44px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  pointer-events: none;
}
.game-portal-utility > * { pointer-events: auto; }
.game-portal-back,
.game-portal-actions button {
  min-height: 42px;
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--portal-line);
  border-radius: 8px;
  background: var(--portal-bg);
  color: var(--portal-text);
  padding: 0 12px;
  font: 800 12px/1 system-ui, sans-serif;
  text-decoration: none;
}
.game-portal-title { min-width: 0; padding: 4px 10px; color: var(--portal-text); text-shadow: 0 2px 12px #000; }
.game-portal-title span { display: block; overflow: hidden; color: var(--portal-accent); font: 800 10px/1.2 system-ui, sans-serif; letter-spacing: .09em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.game-portal-title strong { display: block; overflow: hidden; font: 800 14px/1.3 system-ui, sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.game-portal-actions { display: flex; gap: 6px; }
.game-portal-settings { position: absolute; top: calc(100% + 8px); right: 0; display: grid; gap: 10px; min-width: 190px; padding: 14px; border: 1px solid var(--portal-line); border-radius: 8px; background: var(--portal-bg); color: var(--portal-text); box-shadow: 0 18px 50px rgba(0,0,0,.4); font: 700 13px/1.35 system-ui, sans-serif; }
.game-portal-settings[hidden],
.game-portal-orientation[hidden] { display: none !important; }
.game-portal-settings label { display: flex; gap: 9px; align-items: center; }
.game-portal-settings input { inline-size: 18px; block-size: 18px; accent-color: var(--portal-accent); }
.game-portal-orientation { position: fixed; z-index: 130; left: 50%; bottom: max(18px, env(safe-area-inset-bottom)); width: min(320px, calc(100% - 32px)); transform: translateX(-50%); display: grid; gap: 8px; padding: 16px; border: 1px solid var(--portal-line); border-radius: 8px; background: rgba(3,6,14,.94); color: var(--portal-text); box-shadow: 0 22px 70px rgba(0,0,0,.5); font: 700 13px/1.35 system-ui, sans-serif; }
.game-portal-orientation strong { color: var(--portal-accent); font-size: 15px; }
.game-portal-orientation button { min-height: 42px; border: 0; border-radius: 8px; background: var(--portal-accent); color: #061017; font: 850 13px/1 system-ui, sans-serif; }
body[data-reduced-effects="true"] *, body[data-reduced-effects="true"] *::before, body[data-reduced-effects="true"] *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .001ms !important; }
body[data-fullscreen-unavailable="true"] .game-portal-actions::after { content: "Ecrã completo indisponível"; position: absolute; right: 0; top: calc(100% + 8px); border: 1px solid var(--portal-line); border-radius: 8px; background: var(--portal-bg); color: var(--portal-text); padding: 9px; font: 700 11px/1 system-ui, sans-serif; white-space: nowrap; }
.cabecudo-worlds { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 24px; max-width: 720px; }
.cabecudo-worlds a { min-height: 66px; display: flex; align-items: center; gap: 10px; border: 1px solid rgba(255,255,255,.17); border-radius: 8px; padding: 10px; background: rgba(8, 10, 19, .48); color: var(--portal-text); text-decoration: none; transition: transform .16s ease, border-color .16s ease, background .16s ease; }
.cabecudo-worlds a:hover, .cabecudo-worlds a[aria-pressed="true"] { border-color: var(--portal-accent); background: rgba(53,226,255,.1); transform: translateY(-2px); }
.cabecudo-worlds strong { color: var(--portal-accent); font: 900 18px/1 system-ui, sans-serif; }
.cabecudo-worlds span { font: 800 13px/1.18 system-ui, sans-serif; }
.cabecudo-worlds small { color: rgba(247,246,255,.65); font-size: 10px; letter-spacing: .04em; text-transform: uppercase; }
@media (max-width: 520px) { .game-portal-title strong { font-size: 12px; } .game-portal-actions button { padding: 0 9px; font-size: 11px; } .game-portal-back { padding: 0 10px; } }
@media (max-width: 620px) { .cabecudo-worlds { grid-template-columns: 1fr; max-width: none; } .cabecudo-worlds a { min-height: 54px; } }
