/* FamilyDash public site.
   The palette is the app's own "moon garden" theme, so the page and the product
   read as one thing and the screenshots sit on the page without a frame — their
   dark edges are the same dark as the page. */

:root {
  --deep:   #06120F;  /* the ground */
  --mid:    #0C1F1A;  /* recessed */
  --raised: #1E3A34;  /* edges and rules */
  --ink:    #F2F5EC;  /* text */
  --sage:   #9BB8A8;  /* quiet text */
  --gold:   #F5D76E;  /* the one accent */

  --measure: 36rem;   /* ~62 characters of Karla */
  --wide:    62rem;   /* the screenshots, which break out of the column */
  --list:    46rem;   /* the panel list, which breaks out a little */
  --gutter:  1.5rem;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--deep);
  color: var(--ink);
  font-family: Karla, ui-sans-serif, system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.65;
}

/* A single faint wash from the top, like the moon in the screenshots lighting
   the page it sits on. A fixed layer rather than background-attachment, which
   seams on long pages and is expensive to scroll on phones. */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(120% 60% at 50% -10%, #12332A 0%, transparent 62%);
}

main { max-width: var(--measure); margin: 0 auto; padding: 0 var(--gutter); }

/* Widen past the reading column while staying centred on the page. */
.bleed {
  width: min(var(--bleed-w), 100vw - var(--gutter) * 2);
  margin-inline: calc(50% - min(var(--bleed-w) / 2, 50vw - var(--gutter)));
}

/* --- type ---------------------------------------------------------------- */

h1, h2 {
  font-family: 'Gilda Display', Georgia, 'Times New Roman', serif;
  font-weight: 400;
  letter-spacing: 0.01em;
}

/* h2 wraps on its own; h1 carries a deliberate break, so balancing it fights
   the line I actually want. */
h2 { text-wrap: balance; }

h1 {
  font-size: clamp(2.35rem, 5.6vw, 4.4rem);
  line-height: 1.08;
  margin: 0 0 1.25rem;
}

h2 {
  font-size: clamp(1.75rem, 3.2vw, 2.35rem);
  line-height: 1.2;
  margin: 0 0 0.9rem;
}

p { margin: 0 0 1.15rem; max-width: var(--measure); }

a { color: var(--gold); text-underline-offset: 0.2em; text-decoration-thickness: 1px; }
a:hover { color: var(--ink); }

b { font-weight: 700; }

/* --- hero ---------------------------------------------------------------- */

.hero { padding: clamp(4rem, 12vh, 8rem) 0 0; text-align: center; }
.hero h1 { --bleed-w: 52rem; }

.lede {
  max-width: 32rem;
  margin: 0 auto clamp(3rem, 7vh, 4.5rem);
  font-size: 1.2rem;
  color: var(--sage);
}

/* --- screenshots --------------------------------------------------------- */

.shot { --bleed-w: var(--wide); margin: clamp(3.5rem, 9vh, 6rem) 0; }

.shot img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
  /* No border and no drop shadow. The screenshot's own ground is this page's
     ground, so it melts in; the glow below is what separates it, the way the
     tablet lights the wall it hangs on. */
  box-shadow: 0 0 90px -20px rgba(245, 215, 110, 0.22),
              0 0 160px -40px rgba(155, 184, 168, 0.18);
}

.shot figcaption {
  max-width: var(--measure);
  margin: 1.1rem 0 0;
  color: var(--sage);
  font-size: 0.95rem;
  font-style: italic;
}

.shot--hero { margin-top: 0; margin-bottom: clamp(4rem, 11vh, 7rem); }

/* --- sections ------------------------------------------------------------ */

section { margin: clamp(3.5rem, 9vh, 6rem) 0; }

/* --- the list of panels -------------------------------------------------- */

.things {
  --bleed-w: var(--list);
  list-style: none;
  margin: 1.75rem 0;
  padding: 0;
  columns: 2;
  column-gap: 2.5rem;
}

.things li {
  break-inside: avoid;
  padding: 0.7rem 0;
  border-top: 1px solid var(--raised);
  color: var(--sage);
  font-size: 0.97rem;
  line-height: 1.5;
}

.things b {
  display: block;
  color: var(--ink);
  font-weight: 500;
  font-size: 1.02rem;
}

/* --- what Google data is used for ---------------------------------------- */

.scopes { margin: 1.75rem 0; max-width: var(--measure); }

.scopes dt {
  font-family: 'Gilda Display', Georgia, serif;
  font-size: 1.22rem;
  color: var(--gold);
  padding-top: 1.1rem;
  border-top: 1px solid var(--raised);
}

.scopes dd { margin: 0.4rem 0 1.6rem; color: var(--sage); }

.note { font-size: 0.93rem; color: var(--sage); }

/* --- footer -------------------------------------------------------------- */

footer {
  max-width: var(--wide);
  margin: clamp(4rem, 10vh, 7rem) auto 0;
  padding: 2rem var(--gutter) 3.5rem;
  border-top: 1px solid var(--raised);
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
  align-items: baseline;
  justify-content: space-between;
}

.wordmark {
  margin: 0;
  font-family: 'Gilda Display', Georgia, serif;
  font-size: 1.3rem;
  color: var(--ink);
}

footer nav { display: flex; flex-wrap: wrap; gap: 1.5rem; font-size: 0.95rem; }

/* --- long-form pages (privacy, terms) ------------------------------------ */

.doc { padding-top: clamp(3rem, 9vh, 5rem); }
.doc h1 { font-size: clamp(2rem, 4.5vw, 2.9rem); text-align: left; }
.doc h2 { font-size: 1.45rem; margin-top: 2.5rem; }
.doc .updated { color: var(--sage); font-size: 0.93rem; margin-bottom: 2.5rem; }
.doc ul { color: var(--sage); padding-left: 1.1rem; max-width: var(--measure); }
.doc li { margin-bottom: 0.6rem; }
.doc .back { display: inline-block; margin-top: 3rem; font-size: 0.95rem; }

/* --- quality floor ------------------------------------------------------- */

:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
  border-radius: 2px;
}

@media (max-width: 46rem) {
  .things { columns: 1; }
}

@media (max-width: 34rem) {
  body { font-size: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* The page is dark by design — it is a picture of a screen in a dark kitchen.
   Honour a light preference only for the reading pages, where it matters most. */
@media print {
  body { background: #fff; color: #000; }
  .shot { break-inside: avoid; }
}
