/* Read mode uses Reelo's Onest, ivory and discs with open text columns.
   Taste dials: variance 4, motion 2, density 4. A static backdrop aids reading. */
.legal-page {
  --page-top: 20px;
  --page-bottom: 28px;
  --page-side: 48px;
  display: block;
  min-height: 100svh;
}
.legal-page .ambient-glow { opacity: .45; }
.legal-page .ambient-glow::before,
.legal-page .ambient-glow::after { animation: none; will-change: auto; }
.legal-page .site-header,
.legal-page main,
.legal-page footer { width: 100%; max-width: 1080px; margin-inline: auto; }
.legal-page main { display: block; padding: 0; text-align: left; }
.legal-document { width: 100%; }
.legal-hero { padding: 48px 0 56px; text-align: center; }
.legal-hero .mark { --disc: 56px; margin: 0 auto 24px; }
.legal-hero .disc { animation: none; }
.legal-document h1 {
  margin: 0;
  font-size: 3.5rem;
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -.035em;
}
.legal-document .legal-lead {
  max-width: 700px;
  margin: 24px auto 0;
  color: #d8dae0;
  font-size: 1.0625rem;
  line-height: 1.7;
}
.legal-document .updated {
  margin: 18px 0 0;
  color: var(--muted);
  font-size: .8125rem;
  line-height: 1.6;
}
.legal-layout {
  display: grid;
  grid-template-columns: 236px minmax(0, 1fr);
  gap: 72px;
  padding-top: 36px;
  border-top: 1px solid #2b2d33;
}
.legal-nav { position: sticky; top: 32px; align-self: start; }
.legal-nav-title { margin: 0 0 16px; color: #f4f4f2; font-size: .875rem; font-weight: 600; }
.legal-nav ul { list-style: none; margin: 0; padding: 0; }
.legal-nav a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 12px;
  margin-left: -12px;
  border-radius: 9px;
  color: var(--muted);
  font-size: .875rem;
  line-height: 1.5;
  transition: color .18s ease-out, background-color .18s ease-out;
}
.legal-nav a:hover { background: #1d1f24; color: #f4f4f2; text-decoration: none; }
.legal-nav a:active { background: #33363e; }
.legal-page:has(#usage:target) .legal-nav a[href="#usage"],
.legal-page:has(#data:target) .legal-nav a[href="#data"],
.legal-page:has(#privacy:target) .legal-nav a[href="#privacy"],
.legal-page:has(#services:target) .legal-nav a[href="#services"],
.legal-page:has(#copyright:target) .legal-nav a[href="#copyright"],
.legal-page:has(#availability:target) .legal-nav a[href="#availability"] { color: #f4f4f2; background: #1d1f24; }
.legal-sections { min-width: 0; }
.legal-document section { padding: 36px 0; border-top: 1px solid #2b2d33; scroll-margin-top: 32px; }
.legal-document section:first-child { padding-top: 0; border-top: 0; }
.legal-document h2 {
  margin: 0 0 18px;
  color: #f4f4f2;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -.025em;
  overflow-wrap: anywhere;
}
.legal-sections p { margin: 0 0 16px; color: #b9bdc7; font-size: 1rem; line-height: 1.8; }
.legal-sections p:last-child { margin-bottom: 0; }
.legal-sections a { color: #f4f4f2; text-decoration: underline; text-decoration-color: #777b86; }
.legal-sections a:hover { text-decoration-color: #f4f4f2; }
.legal-document section:focus-visible { outline: 2px solid var(--focus); outline-offset: 10px; border-radius: 4px; }
.legal-document .attribution { margin-top: 20px; color: var(--muted); font-size: .875rem; line-height: 1.65; }
.legal-page footer { margin-top: 24px; padding-top: 20px; border-top: 1px solid #2b2d33; }
.legal-page footer a { flex-shrink: 0; }
.skip-link { position: fixed; top: 12px; left: 24px; z-index: 2; padding: 14px 18px; border-radius: 9px; background: #f4f4f2; color: #090a0c; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
@media (max-width: 960px) {
  .legal-page { --page-side: 32px; }
  .legal-layout { grid-template-columns: 212px minmax(0, 1fr); gap: 36px; }
  .legal-document h1 { font-size: 3rem; }
}
@media (max-width: 760px) {
  .legal-page { --page-top: 12px; --page-side: 22px; --page-bottom: 24px; }
  .legal-hero { padding: 36px 0 32px; text-align: left; }
  .legal-hero .mark { --disc: 44px; margin: 0 0 24px; }
  .legal-document h1 { font-size: clamp(1.5rem, 6.9vw, 2.5rem); line-height: 1.15; letter-spacing: -.03em; }
  .legal-document .legal-lead { margin: 20px 0 0; font-size: 1rem; line-height: 1.7; }
  .legal-document .updated { margin-top: 16px; font-size: .75rem; }
  .legal-layout { display: block; padding-top: 24px; }
  .legal-nav { position: static; padding-bottom: 24px; }
  .legal-nav-title { margin-bottom: 10px; }
  .legal-nav ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
  .legal-nav a { margin-left: -8px; padding: 10px 8px; font-size: .8125rem; overflow-wrap: anywhere; }
  .legal-document section,
  .legal-document section:first-child { padding: 28px 0; border-top: 1px solid #2b2d33; scroll-margin-top: 24px; }
  .legal-document h2 { font-size: 1.375rem; margin-bottom: 14px; }
  .legal-sections p { line-height: 1.75; }
  .legal-page footer { align-items: flex-start; gap: 12px; text-align: left; margin-top: 0; }
}
@media (max-width: 360px) {
  .legal-page { --page-side: 18px; }
  .legal-nav ul { grid-template-columns: 1fr; }
}
@media print {
  .legal-page { padding: 0; background: white; color: black; }
  .legal-page .ambient-glow, .legal-page .site-header, .legal-hero .mark,
  .legal-nav, .skip-link, .legal-page footer { display: none; }
  .legal-hero { padding-top: 0; text-align: left; }
  .legal-document h1 { font-size: 28pt; }
  .legal-layout { display: block; }
  .legal-document h2 { break-after: avoid; }
  .legal-document p, .legal-document a, .legal-document h1,
  .legal-document h2 { color: black; }
}
