/**
 * Chaac arcade shell — matches /play quest feel (zinc palette, spacing, type scale).
 * Load on html: <html class="chaac-arcade"> + <link href="/arcade/chaac-arcade.css" rel="stylesheet">
 */

html.chaac-arcade {
  --chaac-bg: #09090b;
  --chaac-surface: #18181b;
  --chaac-elevated: #27272a;
  --chaac-border: #3f3f46;
  --chaac-border-subtle: #27272a;
  --chaac-text: #fafafa;
  --chaac-text-muted: #a1a1aa;
  --chaac-text-subtle: #71717a;
  --chaac-danger: #f87171;
  --chaac-btn-fg: #18181b;
  --chaac-btn-bg: #fafafa;
  --chaac-btn-bg-hover: #e4e4e7;
  --chaac-radius: 1rem;
  --chaac-radius-sm: 0.75rem;
  --chaac-radius-pill: 9999px;
  --chaac-space: clamp(0.75rem, 3.5vw, 1rem);
  --chaac-space-sm: clamp(0.5rem, 2.5vw, 0.75rem);
  --chaac-space-md: clamp(0.875rem, 3vw, 1.125rem);
  --chaac-space-lg: clamp(1rem, 4vw, 1.5rem);
  --chaac-space-xl: clamp(1.25rem, 5vw, 2rem);
  --chaac-font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  --chaac-text-xs: clamp(0.6875rem, 2.2vw, 0.75rem);
  --chaac-text-sm: clamp(0.8125rem, 2.75vw, 0.9375rem);
  --chaac-text-base: clamp(0.9375rem, 3vw, 1rem);
  --chaac-text-lg: clamp(1rem, 3.25vw, 1.125rem);
  --chaac-text-xl: clamp(1.125rem, 3.5vw, 1.25rem);
  --chaac-text-2xl: clamp(1.25rem, 4vw, 1.5rem);
  --chaac-text-3xl: clamp(1.5rem, 5vw, 2rem);
  --chaac-touch: 2.75rem;
  color-scheme: dark;
}

html.chaac-arcade *,
html.chaac-arcade *::before,
html.chaac-arcade *::after {
  box-sizing: border-box;
}

html.chaac-arcade body {
  margin: 0;
  min-height: 100dvh;
  min-height: 100vh;
  font-family: var(--chaac-font);
  font-size: var(--chaac-text-base);
  line-height: 1.5;
  color: var(--chaac-text);
  background: var(--chaac-bg);
  background-image: radial-gradient(ellipse 100% 70% at 50% -15%, rgba(39, 39, 42, 0.65), transparent 50%);
  -webkit-font-smoothing: antialiased;
  padding: var(--chaac-space);
  padding-top: max(var(--chaac-space), env(safe-area-inset-top, 0px));
  padding-bottom: max(var(--chaac-space), env(safe-area-inset-bottom, 0px));
  padding-left: max(var(--chaac-space), env(safe-area-inset-left, 0px));
  padding-right: max(var(--chaac-space), env(safe-area-inset-right, 0px));
}

/* --- Panels & overlays (quest card language) --- */

.chaac-arcade-overlay {
  position: fixed;
  inset: 0;
  z-index: 40;
  display: grid;
  place-items: center;
  padding: var(--chaac-space-lg);
  background: rgba(9, 9, 11, 0.88);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  opacity: 1;
  transition: opacity 0.18s ease;
  pointer-events: auto;
}

.chaac-arcade-overlay.hidden {
  opacity: 0;
  pointer-events: none;
}

.chaac-arcade-panel {
  width: min(100%, 22.5rem);
  padding: var(--chaac-space-xl);
  border-radius: var(--chaac-radius);
  background: var(--chaac-surface);
  border: 1px solid var(--chaac-border-subtle);
  box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.04);
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: var(--chaac-space-md);
  align-items: stretch;
}

.chaac-arcade-panel--tight {
  padding: var(--chaac-space-lg);
}

.chaac-arcade-panel--inset {
  margin: 0;
  padding: var(--chaac-space-md);
  background: var(--chaac-elevated);
  border: 1px solid var(--chaac-border-subtle);
  border-radius: var(--chaac-radius-sm);
  display: flex;
  flex-direction: column;
  gap: var(--chaac-space-sm);
  align-items: center;
}

.chaac-arcade-score-big {
  margin: 0;
  font-size: var(--chaac-text-3xl);
  font-weight: 700;
  line-height: 1.1;
  color: var(--chaac-text);
}

.chaac-arcade-title--brand {
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: var(--chaac-text-2xl);
}

.chaac-arcade-title {
  margin: 0;
  font-size: var(--chaac-text-3xl);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.2;
  color: var(--chaac-text);
}

.chaac-arcade-title--sm {
  font-size: var(--chaac-text-2xl);
}

.chaac-arcade-subtitle {
  margin: 0;
  font-size: var(--chaac-text-sm);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--chaac-text-subtle);
}

.chaac-arcade-body,
.chaac-arcade-muted {
  margin: 0;
  font-size: var(--chaac-text-sm);
  line-height: 1.6;
  color: var(--chaac-text-muted);
  max-width: 26rem;
  margin-left: auto;
  margin-right: auto;
}

.chaac-arcade-muted:last-child {
  margin-bottom: 0;
}

.chaac-arcade-hint {
  margin: 0;
  font-size: var(--chaac-text-xs);
  line-height: 1.5;
  color: var(--chaac-text-subtle);
}

.chaac-arcade-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: var(--chaac-touch);
  margin: 0;
  padding: 0 var(--chaac-space-lg);
  border: none;
  border-radius: var(--chaac-radius-sm);
  background: var(--chaac-btn-bg);
  color: var(--chaac-btn-fg);
  font-family: inherit;
  font-size: var(--chaac-text-sm);
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.15s ease;
}

.chaac-arcade-btn:hover {
  background: var(--chaac-btn-bg-hover);
}

.chaac-arcade-btn:active {
  transform: scale(0.98);
}

.chaac-arcade-btn--ghost {
  background: transparent;
  color: var(--chaac-text);
  border: 1px solid var(--chaac-border);
}

.chaac-arcade-btn--ghost:hover {
  background: var(--chaac-elevated);
}

.chaac-arcade-btn--danger {
  background: var(--chaac-elevated);
  color: var(--chaac-text);
  border: 1px solid var(--chaac-border);
}

.chaac-arcade-btn--danger:hover {
  background: #3f3f46;
}

.chaac-arcade-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.5rem 0.75rem;
  border-radius: var(--chaac-radius-pill);
  background: var(--chaac-elevated);
  border: 1px solid var(--chaac-border);
  font-size: var(--chaac-text-sm);
  font-weight: 600;
  color: var(--chaac-text);
}

.chaac-arcade-screen {
  width: min(100%, 32rem);
  max-width: 100%;
  margin: 0 auto;
  padding: var(--chaac-space-lg);
  border-radius: var(--chaac-radius);
  background: var(--chaac-surface);
  border: 1px solid var(--chaac-border-subtle);
  box-shadow: 0 24px 48px -12px rgba(0, 0, 0, 0.45);
  display: flex;
  flex-direction: column;
  gap: var(--chaac-space-md);
}

.chaac-arcade-hero {
  padding: var(--chaac-space-lg);
  margin: 0;
  border-radius: var(--chaac-radius-sm);
  border: 1px dashed var(--chaac-border);
  background: var(--chaac-elevated);
}

.chaac-arcade-stat {
  font-size: var(--chaac-text-sm);
  font-weight: 600;
  color: var(--chaac-danger);
}

@media (prefers-reduced-motion: reduce) {
  html.chaac-arcade .chaac-arcade-overlay {
    transition: none;
  }
  html.chaac-arcade .chaac-arcade-btn {
    transition: none;
  }
}

html.chaac-arcade .hidden {
  display: none !important;
}
