/* ============================================================
   Subpage shell — the shared chrome for every standalone page
   that is NOT relaunch.html (tickets board, imprint, privacy).

   Speaks relaunch.html's design language: same
   tokens, same sidebar skeleton, same light/dark behaviour. A
   subpage links this file and adds only its own content styles.

   Theme: [data-theme="dark"] on <html>, set pre-paint from the
   'bc-theme' localStorage key — identical mechanics to the main
   page, so the choice roundtrips between them.
   ============================================================ */

:root{
  /* Neutral paper surfaces */
  --paper-0:#FFFFFF; --paper-1:#F5F7FA; --paper-2:#EBEEF3; --paper-3:#DCE2EA;
  /* Neutral ink */
  --ink-0:#0D0F12; --ink-1:#2B3138; --ink-2:#5A626C; --ink-3:#8A939E; --ink-4:#C2C9D2;
  /* Brand blue */
  --blue-0:#1656E0; --blue-1:#4C8BFF; --blue-2:#D4E4FF;
  --line:rgba(13,15,18,.12); --line-soft:rgba(13,15,18,.07);
  --shadow-1:0 1px 2px rgba(13,15,18,.06), 0 8px 24px rgba(13,15,18,.07);
  --shadow-2:0 2px 6px rgba(13,15,18,.08), 0 24px 60px rgba(13,15,18,.12);
  --sidebar-w:264px; --slide-gap:12px; --radius:18px; --radius-sm:12px; --pill:9999px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
[data-theme="dark"]{
  color-scheme:dark;
  --paper-0:#0D0F12; --paper-1:#13161B; --paper-2:#1A1E24; --paper-3:#232830;
  --ink-0:#F0F2F5; --ink-1:#CDD3DB; --ink-2:#98A0AB; --ink-3:#6A737E; --ink-4:#3E454E;
  --blue-0:#4C8BFF; --blue-1:#7BA8FF; --blue-2:#14273F;
  --line:rgba(240,244,250,.12); --line-soft:rgba(240,244,250,.07);
  --shadow-1:0 1px 2px rgba(0,0,0,.35), 0 8px 24px rgba(0,0,0,.30);
  --shadow-2:0 2px 6px rgba(0,0,0,.40), 0 24px 60px rgba(0,0,0,.50);
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:'Inter',system-ui,sans-serif;
  background:var(--paper-1);
  color:var(--ink-1);
  -webkit-font-smoothing:antialiased;
  display:flex;
  overflow:hidden;
}
a{color:inherit;text-decoration:none}
h1,h2,h3{color:var(--ink-0);line-height:1.15;font-weight:600;letter-spacing:-.01em}
.serif{font-family:'Instrument Serif',serif;font-weight:400;letter-spacing:0}

/* Warm paper grain + sun wash — same atmosphere as the main page */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;
  background:radial-gradient(120% 90% at 78% -10%, rgba(255,238,205,.55), transparent 55%),
             radial-gradient(90% 70% at 10% 110%, rgba(191,224,239,.28), transparent 55%);
  mix-blend-mode:multiply;opacity:.7;
}
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
[data-theme="dark"] body::before{
  background:radial-gradient(120% 90% at 78% -10%, rgba(120,90,50,.45), transparent 55%),
             radial-gradient(90% 70% at 10% 110%, rgba(40,70,90,.40), transparent 55%);
  mix-blend-mode:screen;opacity:.55;
}
[data-theme="dark"] body::after{opacity:.05}

/* The sidebar, its navigation, the footer controls and the theme switch are
   the SHARED shell — markup from partials/shell-*.html, behaviour in
   js/shell.js, styling in css/shell.css. Nothing about them belongs here; a
   copy is exactly what this file used to be and what went wrong. */

/* ===== MAIN ===== */
.main{flex:1;min-width:0;height:100vh;position:relative;z-index:2;display:flex}

/* ===== LEGAL PAGES (imprint / privacy) — one readable column ===== */
.legal-scroll{flex:1;min-width:0;overflow-y:auto;scrollbar-width:thin}
.legal-doc{
  max-width:70ch;margin:0 auto;
  padding:clamp(40px,6vh,80px) clamp(24px,4vw,48px) 96px;
}
.legal-eyebrow{
  font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-bottom:14px;
}
.legal-doc h1{font-family:'Instrument Serif',serif;font-weight:400;letter-spacing:0;font-size:clamp(2rem,4vw,3rem);margin-bottom:10px}
.legal-updated{font-size:12px;color:var(--ink-3);margin-bottom:40px}
.legal-doc h2{
  font-size:1.05rem;margin:38px 0 12px;padding-top:18px;
  border-top:1px solid var(--line-soft);
}
.legal-doc h2:first-of-type{border-top:0;padding-top:0}
.legal-doc h3{font-size:.94rem;margin:22px 0 8px;color:var(--ink-1)}
.legal-doc p{font-size:.94rem;line-height:1.7;color:var(--ink-1);margin-bottom:12px}
.legal-doc a{color:var(--blue-0);text-decoration:underline;text-underline-offset:2px}
.legal-doc ul{margin:0 0 12px 18px}
.legal-doc li{font-size:.94rem;line-height:1.7;color:var(--ink-1);margin-bottom:6px}
/* The consent-withdrawal handle sits inside the privacy text, so it reads as
   one of the document's own links rather than as chrome borrowed from the
   consent bar (where .consent-reopen is a muted footer control). */
.legal-doc .consent-reopen{
  color:var(--blue-0);font-size:.94rem;
  text-decoration:underline;text-underline-offset:2px;
}
.legal-doc .consent-reopen:hover{color:var(--blue-1)}

/* Register data — label/value pairs, mono values so they read as record data */
.legal-facts{
  display:grid;grid-template-columns:minmax(9rem,auto) 1fr;gap:8px 22px;
  background:var(--paper-0);border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:20px 22px;margin-bottom:14px;
}
.legal-facts dt{font-size:.8rem;color:var(--ink-3);letter-spacing:.02em}
.legal-facts dd{font-size:.9rem;color:var(--ink-0);line-height:1.55}
@media(max-width:560px){
  .legal-facts{grid-template-columns:1fr;gap:2px 0}
  .legal-facts dd{margin-bottom:10px}
}

/* ===== Mobile ===== */
@media(max-width:820px){
  /* Clear the fixed menu button (shell.css) — it overlaps the first line otherwise */
  .legal-doc{padding-top:76px}
}
