/* Fixed 1920×1080 canvas + scale-to-fit (see VIEWPORT-PLAN.md) */

html.viewport-fixed,
html.viewport-fixed body {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

html.viewport-fixed .viewport-shell {
  position: fixed;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: var(--bg, #f4f0e6);
}

html.viewport-fixed .viewport-canvas {
  position: relative;
  flex-shrink: 0;
  transform-origin: center center;
  overflow: hidden;
  background: var(--bg, #f4f0e6);
}

html.viewport-fixed .stage {
  width: 1920px !important;
  height: 1080px !important;
}

html.viewport-blocked .viewport-shell {
  visibility: hidden;
  pointer-events: none;
}

.viewport-too-small {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  background: rgba(21, 18, 15, 0.92);
  color: #fbf7ef;
  font-family: Inter, system-ui, sans-serif;
}

.viewport-too-small[hidden] {
  display: none !important;
}

.viewport-too-small__panel {
  max-width: 34rem;
  padding: 2rem 2.2rem;
  border: 1px solid rgba(251, 247, 239, 0.2);
  border-radius: 12px;
  background: #15120f;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.45);
}

.viewport-too-small__kicker {
  margin-bottom: 0.75rem;
  color: #e8d6ae;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.viewport-too-small h2 {
  margin-bottom: 1rem;
  font-size: 1.65rem;
  font-weight: 800;
  line-height: 1.2;
}

.viewport-too-small p {
  margin-bottom: 0.85rem;
  font-size: 1rem;
  line-height: 1.55;
  color: rgba(251, 247, 239, 0.88);
}

.viewport-too-small__hint {
  margin-bottom: 0 !important;
  font-size: 0.88rem !important;
  color: rgba(251, 247, 239, 0.55) !important;
}

.viewport-too-small strong {
  color: #fff;
  font-weight: 700;
}
