/* GuessRank redesign: reading and system pages (about, privacy policy, terms, updates, rate limits, 404). Builds on v2.css. */

/* ---------- Reading column ---------- */
/* .v2-narrow is 720 wide including its gutters; reading pages get a 720px text measure plus the 32px gutters. */
.v2-narrow.v2-read { max-width: 784px; }
.v2-read { padding-top: 64px; }

.v2-read__head { margin-bottom: 40px; }
.v2-read__head--tight { margin-bottom: 32px; }
.v2 .v2-read__title { font-size: 48px; line-height: 1.1; letter-spacing: -0.02em; }
.v2 .v2-read__meta { margin: 16px 0 0; font-size: 14px; line-height: 1.5; color: var(--v2-faint); }
.v2 .v2-read__lead { margin: 16px 0 0; font-size: 18px; line-height: 1.6; color: var(--v2-muted); }

/* ---------- Prose ---------- */
.v2-prose { overflow-wrap: break-word; }
.v2-prose p { margin: 0 0 24px; font-size: 18px; line-height: 1.6; color: var(--v2-nav); }
.v2-prose > p:last-child, .v2-prose > ul:last-child { margin-bottom: 0; }
.v2 .v2-prose h2 { margin: 56px 0 16px; font-size: 24px; line-height: 1.3; scroll-margin-top: calc(var(--v2-header-h) + 24px); }
.v2-prose ul { margin: 0 0 24px; padding-left: 24px; font-size: 18px; line-height: 1.6; color: var(--v2-nav); }
.v2-prose li { margin: 0 0 8px; padding-left: 4px; }
.v2-prose li:last-child { margin-bottom: 0; }
.v2-prose li::marker { color: var(--v2-faint); }
.v2-prose strong, .v2-prose b { font-weight: 600; color: var(--v2-text); }

.v2 .v2-prose a, .v2 .v2-release a {
  color: var(--v2-lavender);
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: rgba(169, 159, 240, .45);
  transition: text-decoration-color 150ms var(--v2-ease);
}
.v2 .v2-prose a:hover, .v2 .v2-release a:hover { color: var(--v2-lavender); text-decoration-color: var(--v2-lavender); }

/* ---------- Updates ---------- */
.v2-releases { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--v2-line); }
.v2-release { display: flex; flex-wrap: wrap; gap: 8px 32px; padding: 24px 0; border-top: 1px solid var(--v2-line); overflow-wrap: break-word; }
.v2 .v2-release__version {
  flex: 0 0 152px; display: flex; flex-direction: column; gap: 4px;
  font-size: 16px; line-height: 1.5; font-variant-numeric: tabular-nums;
}
.v2-release__label { font-size: 14px; font-weight: 400; line-height: 1.4; color: var(--v2-faint); }
.v2-release__notes { flex: 1 1 360px; min-width: 0; margin: 0; padding-left: 20px; font-size: 16px; line-height: 1.6; color: var(--v2-nav); }
.v2-release__notes li { margin: 0 0 4px; padding-left: 4px; }
.v2-release__notes li:last-child { margin-bottom: 0; }
.v2-release__notes li::marker { color: var(--v2-faint); }
.v2-release__notes b { font-weight: 600; color: var(--v2-text); }
.v2-release__notes i { font-size: 14px; font-style: normal; color: var(--v2-muted); }

/* ---------- Rate limits ---------- */
.v2-limits { display: flex; flex-direction: column; gap: 16px; }
.v2-limit { padding: 24px; border-radius: 16px; background: var(--v2-card); }
.v2-limit__top, .v2-limit__bottom { display: flex; align-items: baseline; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; }
.v2 .v2-limit__name { font-size: 18px; line-height: 1.4; }
.v2-limit__window { font-size: 14px; color: var(--v2-muted); }
.v2-limit__meter { display: flex; align-items: center; gap: 12px; margin: 16px 0 12px; }
.v2-limit__bar { flex: 1 1 auto; height: 8px; border-radius: 999px; background: var(--v2-line); overflow: hidden; }
.v2-limit__fill {
  height: 100%; border-radius: 999px; background: var(--v2-accent);
  transform-origin: left center; animation: v2-text-grow 360ms var(--v2-ease) both;
}
.v2-limit__pct { flex: 0 0 48px; text-align: right; font-size: 14px; font-weight: 500; color: var(--v2-nav); font-variant-numeric: tabular-nums; }
.v2-limit__bottom { font-size: 14px; font-variant-numeric: tabular-nums; }
.v2-limit__remaining { color: var(--v2-muted); }
.v2-limit__remaining b { font-weight: 600; color: var(--v2-text); }
.v2-limit.is-empty .v2-limit__remaining b { color: var(--v2-red); }
.v2-limit__reset { color: var(--v2-faint); }

/* ---------- 404 ---------- */
.v2-nf__hero { text-align: center; }
.v2-nf__code {
  margin: 0 0 16px; font-size: 60px; font-weight: 600; line-height: 1; letter-spacing: -0.03em;
  color: var(--v2-faint); font-variant-numeric: tabular-nums;
}
.v2 .v2-nf__title { margin: 0 0 16px; font-size: 36px; line-height: 1.2; }
.v2-nf__text { margin: 0 auto 32px; max-width: 520px; font-size: 18px; line-height: 1.6; color: var(--v2-muted); }
.v2-nf__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.v2-nf__btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 48px; padding: 0 24px; border-radius: 999px;
  background: var(--v2-raised); color: var(--v2-text) !important; font-size: 16px; font-weight: 500;
  transition: background-color 150ms var(--v2-ease), transform 150ms var(--v2-ease);
}
.v2-nf__btn:hover { background: var(--v2-fill); }
.v2-nf__btn:active { transform: scale(.97); }

.v2-nf__games { margin-top: 64px; }
.v2 .v2-nf__games-title { margin: 0 0 24px; font-size: 18px; line-height: 1.4; }
.v2-nf__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 24px 16px; }
.v2-nf__grid .v2-cover-link { line-height: 1.4; }
.v2-nf__grid .v2-cover { border-radius: 16px; background: var(--v2-card); }
.v2-nf__grid .v2-cover img { object-position: center 30%; }
.v2-nf__contact { margin: 32px 0 0; text-align: center; }

/* ---------- Phones ---------- */
@media (max-width: 640px) {
  .v2-read { padding-top: 40px; }
  .v2 .v2-read__title { font-size: 36px; letter-spacing: 0; }
}

@keyframes v2-text-grow { from { transform: scaleX(0); } to { transform: none; } }

@media (prefers-reduced-motion: reduce) {
  .v2-limit__fill { animation: none; }
  .v2 .v2-prose a, .v2 .v2-release a, .v2-nf__btn { transition: none; }
  .v2-nf__btn:active { transform: none; }
}
