/* Layout: one full-bleed painted 3D scene; text sits in chalk-edged cards on top. Single dark look on purpose: it's space. */
:root {
  --space: #2B363D;
  --space-blue: #24466B;
  --chalk: #F7F5EF;
  --chalk-dim: #A3ADB5;
  --starlight: #F3D27A;
  --card: rgba(33, 47, 59, 0.82);
  --font-story: "Gaegu", "Comic Sans MS", "Chalkboard SE", cursive;
  --font-label: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  color-scheme: dark;
}
html, body { height: 100%; margin: 0; }
body { background: var(--space); color: var(--chalk); overflow: hidden; font-family: var(--font-story); }
canvas#scene { position: fixed; inset: 0; width: 100%; height: 100%; display: block; }

.masthead {
  position: fixed; top: 0; left: 0;
  padding-top: calc(env(safe-area-inset-top, 0px) + 18px);
  padding-left: max(16px, env(safe-area-inset-left, 0px));
  max-width: min(66vw, 560px);
  display: grid; gap: 6px; pointer-events: none;
}
.masthead h1 { margin: 0; font-size: clamp(1.9rem, 4.4vw, 3rem); font-weight: 700; line-height: 0.95; text-wrap: balance; }
.eyebrow, .label { font-family: var(--font-label); font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--chalk-dim); }
.chips { pointer-events: auto; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.chips:empty { display: none; }
.chips button, .chips a {
  font: 500 0.68rem/1 var(--font-label); letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none;
  color: var(--chalk); background: rgba(33,47,59,.55); border: 1.5px solid var(--chalk-dim); border-radius: 999px;
  padding: 6px 10px; cursor: pointer;
}
.chips [aria-pressed="true"], .chips [aria-current="page"] { border-color: var(--chalk); background: var(--chalk); color: var(--space); }
button:focus-visible, a:focus-visible { outline: 3px solid var(--starlight); outline-offset: 2px; }

.original {
  position: fixed; top: 0; right: 0;
  margin: calc(env(safe-area-inset-top, 0px) + 18px) max(16px, env(safe-area-inset-right, 0px)) 0 0;
  width: clamp(84px, 14vw, 168px);
  display: grid; gap: 6px; text-align: right;
}
.original img { width: 100%; display: block; border: 2px solid var(--chalk); border-radius: 2px; transform: rotate(1.5deg); box-shadow: 0 8px 24px rgba(0,0,0,.45); }
.original span { font-family: var(--font-label); font-size: 0.62rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--chalk-dim); }

.story {
  position: fixed; left: 0; right: 0; bottom: 0;
  padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 16px);
  padding-left: max(16px, env(safe-area-inset-left, 0px));
  padding-right: max(16px, env(safe-area-inset-right, 0px));
  display: flex; justify-content: center; pointer-events: none;
}
.page {
  pointer-events: auto;
  width: 100%; max-width: 640px;
  background: var(--card);
  border: 2px solid var(--chalk);
  border-radius: 14px 10px 16px 9px;
  padding: 14px 18px 12px;
  display: grid; gap: 8px;
  backdrop-filter: blur(4px);
}
.page p { margin: 0; font-size: clamp(1.3rem, 3.4vw, 1.7rem); line-height: 1.2; min-height: 2.4em; text-wrap: balance; }
.controls { display: flex; align-items: center; gap: 10px; }
.controls .count { font-family: var(--font-label); font-size: 0.75rem; color: var(--chalk-dim); font-variant-numeric: tabular-nums; margin-right: auto; }
.controls button {
  font: 700 1.1rem/1 var(--font-story); color: var(--chalk);
  background: transparent; border: 2px solid var(--chalk); border-radius: 10px 8px 11px 7px;
  padding: 7px 14px; cursor: pointer;
}
.controls button:hover:not(:disabled) { background: rgba(247,245,239,.12); }
.controls button:disabled { opacity: .35; cursor: default; }
.controls button[aria-pressed="true"] { background: var(--chalk); color: var(--space); }

/* render mode: a clean frame for video capture */
body.render .masthead, body.render .original, body.render .controls, body.render .page .label { display: none; }
body.render.nocaption .story { display: none; }

@media (max-width: 560px) { .original span, .chips .hint { display: none; } }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto; } }
