/* ============================================================================
   HOMEPAGE in the lamp look (index.html with no chart open). Loaded after
   styles.css and lamp.css, and scoped to html.lamp like lamp.css, which app.js
   removes as soon as a chart opens, so nothing here can reach an engine.
   The gallery's own rules (styles.css, LANDING / GALLERY) still lay out the
   rows, cards and pagers; this re-points their colour and type tokens at the
   lamp palette and overrides what was drawn for a dark-only page (glows,
   grain, centred header). Spec: docs/superpowers/specs/2026-10-19-one-site-look-design.md
   ============================================================================ */

/* styles.css tokens the gallery reads, in lamp terms (--ink, --accent and
   --accent-rgb keep their meaning; each card sets its own --accent*). */
.lamp #landing {
  --card-bg: var(--card);
  --card-border: var(--border);
  --hairline: var(--rule);
  --text: var(--ink);
  --text-dim: var(--muted);
  --ctrl-bg: var(--card);
  --ctrl-bg-hover: var(--soft);
  --soft-fill: var(--soft);
  --font: var(--f-ui);
  --font-display: var(--f-display);
  /* A chart type's colour, made readable on this palette: mixed toward the
     ink for text (badges, "Open →") and less so for the drawing. */
  --type-base: #1B1F2A; --type-text: 45%; --type-art: 62%;
  position: static;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  background: var(--paper);
  color: var(--ink);
}
@media (prefers-color-scheme: dark) {
  .lamp:not([data-lamp-theme="light"]) #landing { --type-base: #ECE7DC; --type-text: 42%; --type-art: 30%; }
}
.lamp[data-lamp-theme="dark"] #landing { --type-base: #ECE7DC; --type-text: 42%; --type-art: 30%; }
.lamp #landing::before { display: none; }
.lamp #landingMain { flex: 1 0 auto; }

/* ---- Title band ------------------------------------------------------- */
.lamp .home-band { background: var(--header); color: var(--header-text); }
.lamp .home-band-in { max-width: 1160px; margin: 0 auto; padding: clamp(28px, 6vw, 52px) 16px clamp(30px, 6vw, 54px); }
.lamp .home-title {
  margin: 0;
  font: 600 clamp(40px, 7vw, 66px)/1.02 var(--f-display);
  letter-spacing: -.012em;
  text-wrap: balance;
}
.lamp .home-verse { margin: 16px 0 0; max-width: 40ch; }
.lamp .home-verse p { margin: 0; font: italic 400 clamp(19px, 2.4vw, 23px)/1.42 var(--f-read); }
.lamp .home-verse cite {
  display: block; margin-top: 8px;
  font: 600 12px/1.3 var(--f-ui); font-style: normal; letter-spacing: .12em; text-transform: uppercase;
  color: var(--lamp);
}
.lamp .home-tagline { margin: 18px 0 0; max-width: 62ch; font: 400 17px/1.55 var(--f-read); opacity: .82; }

/* ---- Tiles: charts, the latest sermon, the latest study --------------- */
.lamp .home-wrap { max-width: 1160px; width: 100%; margin: 0 auto; padding: 0 16px 40px; }
.lamp .home-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 26px 0 0; }
.lamp .tile {
  display: flex; flex-direction: column; gap: 6px; min-width: 0;
  padding: 18px 20px 16px; background: var(--card); border: 1px solid var(--rule); border-radius: var(--radius);
}
.lamp .tile .eyebrow { margin: 0; }
.lamp .tile h2 { margin: 0; font: 600 21px/1.2 var(--f-display); text-wrap: balance; }
.lamp .tile h2 a { color: var(--ink); text-decoration: none; }
.lamp .tile h2 a:hover { text-decoration: underline; text-underline-offset: 3px; }
.lamp .tile p:not(.eyebrow) { margin: 0; font: 400 15px/1.45 var(--f-read); color: var(--muted); }
.lamp .tile-go { margin-top: auto; padding-top: 8px; font: 600 13.5px/1.3 var(--f-ui); text-decoration: none; }
.lamp .tile-go:hover { text-decoration: underline; }
@media (max-width: 860px) { .lamp .home-tiles { grid-template-columns: minmax(0, 1fr); } }

/* ---- The charts section ----------------------------------------------- */
.lamp .home-charts { margin: 38px 0 0; scroll-margin-top: 16px; }
.lamp .home-charts-head { margin: 0 0 16px; }
.lamp .home-charts-head .eyebrow { margin: 0 0 4px; }
.lamp .home-charts-head h2 { margin: 0; font: 600 clamp(28px, 3.6vw, 36px)/1.1 var(--f-display); }
.lamp .home-charts-head p:not(.eyebrow) { margin: 6px 0 0; font: 400 16px/1.5 var(--f-read); color: var(--muted); }
.lamp .landing-notice {
  margin: 0 0 14px; max-width: none; padding: 12px 16px;
  border-radius: 10px; background: var(--soft); border: 1px solid var(--border);
  color: var(--ink); font-size: 15px;
}

/* Search and chips: left-aligned, like the Sermons library. */
.lamp .search-wrap { max-width: 640px; margin: 0 0 12px; }
.lamp .search-icon { left: 14px; width: 18px; height: 18px; opacity: 1; color: var(--muted); display: flex; }
.lamp .search-icon svg { width: 18px; height: 18px; }
.lamp .search-input {
  padding: 12px 14px 12px 42px; font: 16px/1.3 var(--f-ui);
  background: var(--card); color: var(--ink); border: 1px solid var(--border); border-radius: 10px;
}
.lamp .search-input::placeholder { color: var(--muted); }
.lamp .search-input:focus { outline: 3px solid var(--accent-bright); outline-offset: 1px; border-color: var(--border); box-shadow: none; }
.lamp .chart-chips { justify-content: flex-start; max-width: none; margin: 0 0 34px; }
.lamp #landing .chip {
  min-height: 36px; padding: 0 13px; gap: 6px;
  font: 500 13.5px/1 var(--f-ui); color: var(--ink);
  background: var(--card); border: 1px solid var(--border);
}
.lamp #landing .chip:hover { border-color: var(--ink); }
.lamp #landing .chip.on { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
.lamp #landing .chip-count { font-size: 12px; opacity: .7; }
.lamp .shelf-back { display: inline-block; margin: 0 0 12px; font: 500 14px var(--f-ui); color: var(--accent); }
.lamp .shelf-back:hover { color: var(--ink); }

/* A ?shelf= page starts at its shelf. */
.lamp body.shelf-page .home-band,
.lamp body.shelf-page .home-tiles { display: none; }
.lamp body.shelf-page .home-charts { margin-top: 26px; }

/* ---- Shelves ---------------------------------------------------------- */
.lamp .chart-sections { gap: 40px; }
.lamp .chart-section-head { margin: 0 0 12px; padding-bottom: 10px; border-bottom-color: var(--rule); }
.lamp .chart-section-title { font: 600 clamp(21px, 2.4vw, 25px)/1.2 var(--f-display); letter-spacing: 0; color: var(--ink); }
.lamp .chart-section-link, .lamp a.chart-card { color: var(--ink); }   /* lamp.css colours every link */
.lamp .chart-section-cue { color: var(--muted); }
.lamp .chart-section-link:hover .chart-section-cue { color: var(--accent); }
.lamp .chart-section-count { font: 600 12px/1.4 var(--f-ui); color: var(--muted); background: var(--soft); border-color: var(--rule); }
.lamp .chart-section-note { color: var(--muted); font-size: 14px; }
.lamp .chart-section--lead { padding: 4px 18px 8px; border-radius: var(--radius); background: var(--soft); border: 1px solid var(--rule); }
.lamp .chart-row-btn { font: 600 21px/1 var(--f-ui); color: var(--ink); background: var(--card); border-color: var(--border); }
.lamp .chart-row-btn:hover:not(:disabled) { border-color: var(--ink); }
.lamp .chart-row-btn:focus-visible, .lamp .chart-section-link:focus-visible { outline: 3px solid var(--accent-bright); }

/* ---- Cards ------------------------------------------------------------ */
.lamp .chart-card {
  border-radius: var(--radius); background: var(--card); border: 1px solid var(--rule);
  box-shadow: 0 1px 2px rgba(27, 31, 42, .06);
}
.lamp .chart-card:hover, .lamp .chart-card:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(var(--accent-rgb), .6);
  box-shadow: 0 10px 24px rgba(27, 31, 42, .12);
}
.lamp .chart-card:focus-visible { outline: 3px solid var(--accent-bright); outline-offset: 2px; }
.lamp .chart-card-art {
  height: 92px;
  color: color-mix(in srgb, rgb(var(--accent-rgb)) var(--type-art), var(--type-base));
  background: rgba(var(--accent-rgb), .10);
  border-bottom: 1px solid var(--rule);
}
.lamp .chart-card-title { font: 600 18px/1.25 var(--f-display); color: var(--ink); }
.lamp #landing .chart-type-badge {
  color: color-mix(in srgb, rgb(var(--accent-rgb)) var(--type-text), var(--type-base));
  background: transparent;
  border-color: rgba(var(--accent-rgb), .5);
}
.lamp .chart-card-blurb { font: 400 14.5px/1.5 var(--f-read); color: var(--muted); }
.lamp .chart-tag { color: var(--muted); background: var(--paper); border-color: var(--rule); }
.lamp .chart-card-cue { color: color-mix(in srgb, rgb(var(--accent-rgb)) var(--type-text), var(--type-base)); }
.lamp .chart-empty { text-align: left; color: var(--muted); font: 400 16px/1.5 var(--f-read); }
.lamp .chart-empty a { color: var(--accent); }

/* ---- Footer: the shared one (lamp.css), plus the Lite-mode button ------- */
.lamp #landing .lf { margin-top: 0; }
.lamp .lite-toggle {
  min-height: 36px; padding: 0 13px; font: 500 13px/1 var(--f-ui); letter-spacing: 0;
  color: var(--muted); background: var(--card); border: 1px solid var(--border); border-radius: 999px;
}
.lamp .lite-toggle:hover { color: var(--ink); border-color: var(--ink); }
.lamp .lite-toggle.on { color: var(--accent); border-color: var(--accent); }
