:root { --font-display:"Poppins","Segoe UI",system-ui,sans-serif; --font-body:"Inter","Segoe UI",system-ui,sans-serif; --maxw:1040px; --ease:cubic-bezier(.2,.8,.2,1); }
  [data-theme="playful"]{ --bg:#fff7fb; --surface:#fff; --text:#241a2e; --muted:#6b6076; --border:#f0e2ee; --accent:#7c3aed; --brand-grad:linear-gradient(120deg,#7c3aed,#ec4899 55%,#06b6d4); --radius:20px; --shadow:0 24px 60px -20px rgba(124,58,237,.28); --shadow-sm:0 10px 30px -12px rgba(124,58,237,.2); --nav-bg:rgba(255,255,255,.72); --chip:#f6edff; }
  [data-theme="dark"]{ --bg:#0a0a12; --surface:rgba(255,255,255,.04); --text:#f2f2fb; --muted:#9a9ab5; --border:rgba(255,255,255,.08); --accent:#a855f7; --brand-grad:linear-gradient(120deg,#a855f7,#f43f9d 55%,#22d3ee); --radius:18px; --shadow:0 30px 70px -24px rgba(0,0,0,.7); --shadow-sm:0 14px 40px -18px rgba(0,0,0,.6); --nav-bg:rgba(10,10,18,.6); --chip:rgba(255,255,255,.06); }
  *{ box-sizing:border-box; margin:0; padding:0; }
  body{ font-family:var(--font-body); background:var(--bg); color:var(--text); line-height:1.7; -webkit-font-smoothing:antialiased; transition:background .5s var(--ease), color .5s var(--ease); }
  a{ color:inherit; text-decoration:none; }
  article a{ text-decoration:underline; text-underline-offset:3px; }
  .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }
  h1,h2,h3{ font-family:var(--font-display); letter-spacing:-.02em; line-height:1.15; }
  .brand-text{ background:var(--brand-grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; }
  header{ position:sticky; top:0; z-index:20; backdrop-filter:saturate(180%) blur(14px); background:var(--nav-bg); border-bottom:1px solid var(--border); }
  header nav{ display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:66px; }
  .logo{ display:flex; align-items:center; }
  .logo img{ display:block; width:auto; height:28px; }
  .logo .logo-dark{ display:none; }
  [data-theme="dark"] .logo .logo-light{ display:none; }
  [data-theme="dark"] .logo .logo-dark{ display:block; }
  .back{ flex-shrink:0; color:var(--muted); font-weight:600; font-size:.92rem; }
  .back:hover{ color:var(--text); }
  .lang-toggle{ position:fixed; z-index:30; left:20px; bottom:20px; display:flex; align-items:center; padding:10px 16px; border-radius:999px; cursor:pointer; background:var(--nav-bg); border:1px solid var(--border); box-shadow:var(--shadow-sm); backdrop-filter:blur(14px); color:var(--text); font:inherit; font-family:var(--font-display); font-weight:600; font-size:.85rem; letter-spacing:.04em; transition:transform .18s var(--ease); }
  .lang-toggle:hover{ transform:translateY(-2px); }
  .theme-toggle{ position:fixed; z-index:30; right:20px; bottom:20px; display:flex; align-items:center; gap:9px; padding:10px 16px; background:var(--nav-bg); border:1px solid var(--border); border-radius:999px; backdrop-filter:blur(14px); box-shadow:var(--shadow-sm); cursor:pointer; font:inherit; font-weight:600; font-size:.85rem; color:var(--text); transition:transform .18s var(--ease); }
  .theme-toggle:hover{ transform:translateY(-2px); }
  .theme-toggle .ic-moon, .theme-toggle .lbl-dark{ display:none; }
  [data-theme="dark"] .theme-toggle .ic-sun, [data-theme="dark"] .theme-toggle .lbl-light{ display:none; }
  [data-theme="dark"] .theme-toggle .ic-moon, [data-theme="dark"] .theme-toggle .lbl-dark{ display:inline; }
  html[data-lang="en"] [data-l="no"]{ display:none !important; }
  html[data-lang="no"] [data-l="en"]{ display:none !important; }
  .hero{ padding:64px 0 8px; }
  .hero .eyebrow{ display:inline-block; font-family:var(--font-display); font-weight:600; font-size:.76rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:14px; }
  .hero h1{ font-size:clamp(1.75rem,6vw,3.1rem); margin-bottom:12px; }
  .hero p.sub{ color:var(--muted); font-size:1.08rem; max-width:56ch; }
  article{ padding:24px 0 90px; }
  .card{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:38px; box-shadow:var(--shadow-sm); }
  article h2{ font-size:1.4rem; margin:34px 0 12px; }
  article h2:first-child{ margin-top:0; }
  article p{ color:var(--muted); margin-bottom:14px; }
  article a{ color:var(--accent); font-weight:600; }
  .hubgrid{ display:grid; gap:16px; margin:0 0 30px; }
  .appcard{ display:flex; align-items:center; gap:18px; padding:22px; border-radius:var(--radius); background:var(--surface); border:1px solid var(--border); box-shadow:var(--shadow-sm); text-decoration:none; transition:transform .2s var(--ease), box-shadow .2s var(--ease); }
  .appcard, .appcard *{ text-decoration:none; }
  .appcard:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }
  .appcard .ic{ flex:0 0 56px; height:56px; border-radius:16px; overflow:hidden; display:flex; align-items:center; justify-content:center; background:#0e1626; }
  .appcard .ic img{ width:100%; height:100%; object-fit:cover; display:block; }
  .appcard .tx{ min-width:0; }
  .appcard h3{ font-family:var(--font-display); font-size:1.15rem; margin-bottom:3px; }
  .appcard .tx p{ color:var(--muted); font-size:.92rem; margin:0; }
  .appcard .go{ margin-left:auto; color:var(--accent); font-weight:700; font-size:1.4rem; flex:0 0 auto; }
  .tag{ display:inline-block; margin-left:8px; padding:2px 9px; border-radius:999px; font-family:var(--font-display); font-size:.66rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; background:var(--chip); color:var(--accent); vertical-align:middle; }
  footer{ padding:40px 0 100px; border-top:1px solid var(--border); color:var(--muted); font-size:.88rem; text-align:center; }
  footer a{ color:inherit; font-weight:600; }
  .socials{ display:flex; flex-wrap:wrap; gap:18px; justify-content:center; align-items:center; margin-bottom:16px; }
  .socials a{ color:var(--muted); display:inline-flex; transition:color .2s, transform .18s var(--ease); }
  .socials a:hover{ color:var(--text); transform:translateY(-2px); }
  .socials svg{ width:20px; height:20px; display:block; }
  @media (max-width:520px){ .appcard .go{ display:none; } }

  /* Shared policy components. App-specific legal text stays in each HTML page. */
  h1,h2,h3,p,li{ overflow-wrap:anywhere; }
  .hero h1{ text-wrap:balance; }
  .hero .updated{ color:var(--muted); font-size:.95rem; }
  .hero > p:not(.updated){ color:var(--muted); max-width:68ch; }
  .appswitch{ display:flex; flex-wrap:wrap; align-items:center; width:fit-content; max-width:100%; gap:4px; margin-top:24px; padding:4px; border:1px solid var(--border); border-radius:24px; background:var(--surface); }
  .appswitch a{ display:block; padding:9px 14px; border-radius:999px; color:var(--muted); font-family:var(--font-display); font-size:.85rem; font-weight:600; white-space:nowrap; }
  .appswitch a:hover{ color:var(--text); background:var(--chip); }
  .appswitch a[aria-current]{ color:#fff; background:#7c3aed; }
  [data-theme="dark"] .appswitch a[aria-current]{ background:#7432bd; }
  .policy-links{ display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:16px; font-size:.88rem; }
  .policy-links a{ color:var(--muted); text-decoration:underline; text-underline-offset:4px; }
  .policy-links a:hover{ color:var(--accent); }
  article .card + .card{ margin-top:24px; }
  html[data-lang="no"] article .card[data-l="en"] + .card[data-l="no"]{ margin-top:0; }
  article ul,article ol{ padding-left:22px; margin:0 0 16px; color:var(--muted); }
  article li{ margin-bottom:8px; }
  article h2{ scroll-margin-top:90px; }
  html[data-lang="no"] article h2[data-l="en"]:first-child + h2[data-l="no"]{ margin-top:0; }
  .important,.notice{ padding:16px 18px; border-radius:14px; background:var(--chip); border:1px solid var(--border); }
  .notice{ margin-top:24px; color:var(--muted); }
  article .email{ display:inline-flex; align-items:center; gap:10px; max-width:100%; padding:12px 18px; border-radius:18px; color:#fff; background:#7c3aed; text-decoration:none; }
  article .email svg{ width:20px; height:20px; flex-shrink:0; }
  :focus-visible{ outline:3px solid var(--accent); outline-offset:4px; }
  .skip-link{ position:fixed; top:8px; left:8px; z-index:100; padding:10px 16px; background:var(--surface); color:var(--text); border:2px solid var(--accent); transform:translateY(-180%); }
  .skip-link:focus{ transform:translateY(0); }
  @media(max-width:560px){
    .hero{ padding-top:44px; }
    .card{ padding:26px 20px; }
    .logo img{ max-width:170px; height:auto; }
    .back{ font-size:.82rem; }
    .appswitch{ width:100%; border-radius:20px; }
    .appswitch a{ flex:1 0 auto; text-align:center; padding:9px 10px; }
    article h2{ font-size:1.25rem; line-height:1.3; }
    .appcard{ padding:20px 16px; gap:14px; }
    .tag{ margin:6px 0 0; display:table; }
    .theme-toggle .lbl-light,.theme-toggle .lbl-dark{ display:none!important; }
  }
  @media(max-width:360px){ .logo img{ max-width:145px; } .wrap{ padding-inline:18px; } .appswitch a{ font-size:.78rem; padding-inline:8px; } }
  @media(prefers-reduced-motion:reduce){ *,*::before,*::after{ transition:none!important; animation:none!important; scroll-behavior:auto!important; } }

/* Shared document hierarchy: app-specific detail is kept under the relevant chapter. */
article h3{font-size:1.1rem;line-height:1.4;margin:26px 0 12px;}
.policy-contents{margin:24px 0 32px;padding:16px 18px;border:1px solid var(--border);border-radius:14px;background:var(--chip);}
.policy-contents summary{cursor:pointer;font-weight:600;color:var(--text);}
.policy-contents ol{margin:14px 0 0;padding-left:22px;}
.policy-contents li{margin:6px 0;}
.policy-contents a{font-size:.94rem;}
.anchor-target{display:block;scroll-margin-top:90px;}

/* Support and terms share the Gate Rush document layout. */
.support-page article > .card{margin:0 0 22px!important;}
.support-page .hero p{color:var(--muted);font-size:1.08rem;max-width:56ch;}
.faq details{border-top:1px solid var(--border);padding:16px 0;}
.faq details:first-of-type{border-top:0;}
.faq summary{cursor:pointer;font-family:var(--font-display);font-weight:600;font-size:1.02rem;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";color:var(--accent);font-size:1.3rem;line-height:1;flex:0 0 auto;}
.faq details[open] summary::after{content:"−";}
.faq p{margin:10px 0 0;}
.support-page article .email{margin:6px 4px 6px 0;overflow-wrap:anywhere;}
.support-page .card h2{margin-top:0;}
