/* Whatzon — privacy policy page.
 *
 * Extracted from an inline <style> block in privacy.html on 2026-08-11. It lived inline
 * because the page is one self-contained file; it cannot any more, because
 * Content-Security-Policy says `style-src 'self'` with no 'unsafe-inline', and an
 * enforcing policy renders an inline block as nothing at all -- silently, with the page
 * still returning 200. An unstyled privacy policy is what an AdSense reviewer would have
 * read. See deploy/snippets/security-headers.conf.
 *
 * tests/test_inline_assets.py fails if a <style> block, a style= attribute or an inline
 * <script> reappears on ANY surface this app serves.
 */
:root{
  --page-bg:#F7F5FC; --page-fg:#241A44; --page-mut:#6B6489;
  --rule:#E2DCF2; --card:#FFFFFF; --card-rule:#EAE5F7; --apricot:#FFA24C;
  --body:system-ui,-apple-system,"Segoe UI",sans-serif;
  --display:"Avenir Next","Avenir","Futura","Trebuchet MS",sans-serif;
}
@media (prefers-color-scheme:dark){
  :root{ --page-bg:#120C28; --page-fg:#EFEAFB; --page-mut:#9A92BC;
         --rule:#2B2152; --card:#1B1338; --card-rule:#2E2458; }
}
:root[data-theme="dark"]{ --page-bg:#120C28; --page-fg:#EFEAFB; --page-mut:#9A92BC;
         --rule:#2B2152; --card:#1B1338; --card-rule:#2E2458; }
:root[data-theme="light"]{ --page-bg:#F7F5FC; --page-fg:#241A44; --page-mut:#6B6489;
         --rule:#E2DCF2; --card:#FFFFFF; --card-rule:#EAE5F7; }

*{ box-sizing:border-box; }
body{ margin:0; background:var(--page-bg); color:var(--page-fg); font-family:var(--body);
      line-height:1.65; }
main{ width:min(46rem, 100% - 2.5rem); margin:0 auto; padding:3rem 0 5rem; }
a{ color:inherit; text-underline-offset:2px; }
h1{ font-family:var(--display); font-size:clamp(1.9rem,4vw,2.6rem); line-height:1.15;
    margin:0 0 .4rem; letter-spacing:-.02em; }
h2{ font-family:var(--display); font-size:1.25rem; margin:2.6rem 0 .6rem; }
h3{ font-size:1rem; margin:1.6rem 0 .4rem; }
p, li{ color:var(--page-mut); }
strong{ color:var(--page-fg); }
.updated{ color:var(--page-mut); font-size:.9rem; margin:0 0 2rem; }
.lede{ font-size:1.05rem; }
table{ border-collapse:collapse; width:100%; margin:.8rem 0 0; font-size:.92rem; }
th, td{ text-align:left; padding:.6rem .7rem; border-bottom:1px solid var(--rule);
        vertical-align:top; color:var(--page-mut); }
th{ color:var(--page-fg); font-weight:600; white-space:nowrap; }
.scroller{ overflow-x:auto; }
.callout{ background:var(--card); border:1px solid var(--card-rule); border-left:3px solid var(--apricot);
          border-radius:.6rem; padding:1rem 1.1rem; margin:1.4rem 0; }
.callout p{ margin:0; }
footer{ margin-top:3.5rem; padding-top:1.4rem; border-top:1px solid var(--rule);
        font-size:.9rem; color:var(--page-mut); }
