/* Spek Apps — shared styles
   Direction C ("Warm"): cream ground, ink text, terracotta accent,
   Bricolage Grotesque display + system body.
   Contrast tuned for readability (all text >= WCAG AA, most ~6:1+). */

:root {
  --bg:        #f7f2ea;  /* warm cream ground */
  --ink:       #211d17;  /* near-black, ~15:1 */
  --ink-soft:  #33302a;  /* body text, ~11:1 */
  --muted:     #4a4236;  /* secondary text / nav, ~8.5:1 */
  --faint:     #5c5346;  /* labels, footer, datelines, ~6.5:1 */
  --accent:    #7c3419;  /* links / CTA, ~9:1 on cream */
  --accent-ink:#4f2010;  /* link hover */
  --card:      #fdfbf7;  /* raised card */
  --line:      #ece3d4;  /* hairline rules */
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.display { font-family: "Bricolage Grotesque", system-ui, sans-serif; }

a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--accent-ink); }

img { max-width: 100%; }

/* ---- layout ---- */
.wrap { max-width: 640px; margin: 0 auto; padding: 40px 44px 80px; }
main { display: block; }

/* ---- top nav ---- */
.nav {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 64px;
}
.brand {
  font-family: "Bricolage Grotesque", system-ui, sans-serif;
  font-size: 17px; font-weight: 600; letter-spacing: -0.01em;
  color: var(--ink); text-decoration: none;
}
.nav-links { display: flex; gap: 28px; font-size: 16px; }
.nav-links a { color: var(--muted); text-decoration: none; }
.nav-links a:hover { color: var(--ink); }
.nav-links a[aria-current="page"] { color: var(--ink); }

/* ---- avatar ---- */
.avatar {
  display: block; width: 104px; height: 104px; border-radius: 50%;
  margin: 0 auto 20px; object-fit: cover;
}
.avatar.sm { width: 96px; height: 96px; margin-bottom: 24px; }

/* ---- headings ---- */
.title {
  font-family: "Bricolage Grotesque", system-ui, sans-serif;
  margin: 0 0 12px; font-weight: 600; font-size: 34px; line-height: 1.18;
  letter-spacing: -0.01em; text-wrap: pretty;
}
.dateline { margin: 0; font-size: 14px; letter-spacing: 0.02em; color: var(--faint); }

/* ---- home essay ---- */
.lede { text-align: center; margin-bottom: 44px; }
.essay { font-size: 18px; line-height: 1.75; color: var(--ink-soft); }
.essay p { margin: 0 0 22px; }
.essay p:last-child { margin-bottom: 0; }

.more {
  margin: 40px 0 0; padding-top: 28px; border-top: 1px solid var(--line);
}
.more a {
  font-family: "Bricolage Grotesque", system-ui, sans-serif;
  font-size: 17px; font-weight: 500;
}

/* ---- apps page ---- */
.page-head { margin-bottom: 36px; }
.page-head .title { font-size: 32px; margin-bottom: 14px; }
.page-head .intro { margin: 0; font-size: 18px; line-height: 1.7; color: var(--muted); max-width: 32em; }

.apps { display: flex; flex-direction: column; gap: 16px; }
.app {
  background: var(--card); border: 1px solid var(--line); border-radius: 14px;
  padding: 24px 26px;
  display: flex; align-items: baseline; justify-content: space-between; gap: 24px;
}
.app-name {
  font-family: "Bricolage Grotesque", system-ui, sans-serif;
  font-size: 21px; font-weight: 500; margin-bottom: 6px;
}
.app-desc { font-size: 16px; line-height: 1.6; color: var(--muted); max-width: 30em; }
.app-open { font-size: 16px; white-space: nowrap; }

/* ---- contact ---- */
.contact { text-align: center; padding: 8px 0; }
.contact .welcome { margin: 0 auto 8px; max-width: 30em; font-size: 19px; line-height: 1.6; color: var(--muted); }
.contact .note { margin: 24px auto 36px; max-width: 32em; font-size: 17px; line-height: 1.75; color: var(--ink-soft); }
.contact .fallback { margin: 24px auto 0; font-size: 15px; color: var(--faint); }

.btn {
  display: inline-block; background: var(--accent); color: var(--card);
  text-decoration: none; padding: 15px 32px; border-radius: 12px;
  font-family: "Bricolage Grotesque", system-ui, sans-serif;
  font-weight: 500; font-size: 17px;
}
.btn:hover { background: var(--accent-ink); color: var(--card); }

/* ---- privacy / document sections ---- */
.sections { display: flex; flex-direction: column; gap: 32px; }
.sections h2 {
  font-family: "Bricolage Grotesque", system-ui, sans-serif;
  font-weight: 500; font-size: 19px; margin: 0 0 8px; letter-spacing: -0.005em;
}
.sections p { margin: 0; font-size: 17px; line-height: 1.7; color: var(--ink-soft); max-width: 34em; }

/* ---- footer ---- */
.foot {
  margin-top: 64px; padding-top: 28px; border-top: 1px solid var(--line);
  font-size: 14px; color: var(--faint);
}
.foot.center { text-align: center; }
.foot a { color: var(--faint); text-decoration: underline; text-underline-offset: 2px; }
.foot a:hover { color: var(--accent); }

/* ---- small screens ---- */
@media (max-width: 560px) {
  .wrap { padding: 28px 22px 56px; }
  .nav { margin-bottom: 44px; }
  .title { font-size: 28px; }
  .page-head .title { font-size: 26px; }
  .app { flex-direction: column; align-items: flex-start; gap: 10px; }
}

/* Policy pages (privacy, terms): several paragraphs and bullet lists inside one section. */
.sections p + p, .sections ul + p, .sections p + ul { margin-top: 14px; }
.sections ul { margin: 0; padding-left: 1.25em; font-size: 17px; line-height: 1.7; color: var(--ink-soft); max-width: 34em; }
.sections li + li { margin-top: 8px; }
