/* Legal document styling. Framework-free; mirrors the SPA's visual language. */
@font-face { font-family:'Instrument Serif'; font-style:normal; font-weight:400;
  font-display:swap; src:url('font3.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,
  U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'JetBrains Mono'; font-style:normal; font-weight:400;
  font-display:swap; src:url('font10.woff2') format('woff2'); }

:root { --bg:#090607; --ink:#EFE7E8; --ink2:#A69B9D; --ink3:#6E6467;
        --accent:#B41F35; --rule:rgba(240,232,233,.12); }
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:var(--bg); color:var(--ink2);
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:15px; line-height:1.75; -webkit-font-smoothing:antialiased; }

.legal-nav { position:sticky; top:0; z-index:10; background:rgba(9,6,7,.92);
  backdrop-filter:blur(16px); border-bottom:1px solid var(--rule); }
.legal-nav>div { max-width:1100px; margin:0 auto; padding:0 24px; height:68px;
  display:flex; align-items:center; gap:13px; }
.legal-nav img { width:28px; height:28px; object-fit:contain; mix-blend-mode:screen; }
/* Literal fallback before every var() colour that sits on a LITERAL dark
   background. If custom properties are unsupported the var() declaration is
   dropped entirely, and .legal-nav's literal near-black bar would still paint
   — leaving default-black text on it, i.e. unreadable rather than merely
   unstyled. These pages are linked from inside shipped games and must survive
   old console and in-app WebViews, so readability cannot depend on var().
   Elsewhere foreground and background both use var() and fail together to
   readable black-on-white, so no fallback is needed there. */
.legal-nav>div>.legal-back { display:inline-flex; align-items:center;
  justify-content:center; width:32px; height:32px; margin-left:-8px;
  flex:0 0 auto; border:1px solid rgba(240,232,233,.14); color:#A69B9D;
  color:var(--ink2); text-decoration:none; }
.legal-nav>div>.legal-back:hover { color:#EFE7E8; color:var(--ink);
  border-color:rgba(240,232,233,.34); }
.legal-nav a { color:#EFE7E8; color:var(--ink); text-decoration:none; font-size:13px;
  letter-spacing:.17em; display:flex; align-items:center; gap:13px; }

main.legal { max-width:820px; margin:0 auto; padding:72px 24px 96px; }
.legal h1 { font-family:'Instrument Serif',Georgia,serif; font-weight:400;
  font-size:clamp(34px,6vw,58px); line-height:1.08; color:var(--ink);
  letter-spacing:-.01em; margin-bottom:18px; }
.legal-meta { font-size:12px; letter-spacing:.11em; color:var(--ink3);
  text-transform:uppercase; margin-bottom:36px; }
.legal-banner { border:1px solid var(--accent); border-left-width:3px;
  background:rgba(180,31,53,.08); padding:16px 20px; margin-bottom:44px;
  font-size:13.5px; color:var(--ink2); }
.legal-banner strong { color:var(--ink); }

.legal-toc { border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);
  padding:22px 0; margin-bottom:52px; }
.legal-toc div { font-size:11px; letter-spacing:.14em; color:var(--ink3);
  text-transform:uppercase; margin-bottom:12px; }
.legal-toc ol { list-style:none; counter-reset:toc;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:4px 28px; }
.legal-toc li { counter-increment:toc; font-size:13.5px; }
.legal-toc li::before { content:counter(toc) ". "; color:var(--ink3); }
.legal-toc a { color:var(--ink2); text-decoration:none; }
.legal-toc a:hover { color:var(--ink); }

.legal section { margin-bottom:46px; scroll-margin-top:88px; }
.legal h2 { font-family:'Instrument Serif',Georgia,serif; font-weight:400;
  font-size:26px; line-height:1.2; color:var(--ink); margin-bottom:14px; }
.legal h3 { font-size:13px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink); margin:26px 0 10px; }
.legal p { margin-bottom:15px; }
.legal ul, .legal ol { margin:0 0 15px 22px; }
.legal li { margin-bottom:8px; }
.legal a { color:var(--ink); text-decoration:underline;
  text-decoration-color:var(--accent); text-underline-offset:3px; }
.legal strong { color:var(--ink); font-weight:400; }

.legal-table { width:100%; border-collapse:collapse; margin:0 0 18px;
  font-size:13.5px; display:block; overflow-x:auto; }
.legal-table th, .legal-table td { border:1px solid var(--rule);
  padding:10px 13px; text-align:left; vertical-align:top; }
.legal-table th { color:var(--ink); font-weight:400; font-size:11px;
  letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; }

.legal-footer { border-top:1px solid var(--rule); margin-top:72px; }
.legal-footer>div { max-width:820px; margin:0 auto; padding:32px 24px 56px;
  display:flex; flex-wrap:wrap; gap:14px 26px; justify-content:space-between;
  font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; }
.legal-footer a { color:var(--ink2); text-decoration:none; margin-right:20px; }
.legal-footer a:hover { color:var(--ink); }
.legal-footer span { color:var(--ink3); }

@media (max-width:640px) {
  main.legal { padding:48px 20px 72px; }
  .legal-nav>div { height:60px; padding:0 20px; }
}
