/* TRSB — Base: reset, variables, typography, utilities
   Shared by index.html and all legal pages */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --ink:    #0D1A2B;
  --ink2:   #1E3348;
  --ink3:   #3B5166;
  --mid:    #6B85A0;
  --pale:   #F0F4F9;
  --pale2:  #F8FAFC;
  --white:  #FFFFFF;
  --accent: #0057FF;
  --acl:    #3380FF;
  --acpale: #EBF2FF;
  --green:  #00875A;
  --greenpale: #E3F5EE;
  --border: #D6E2EF;
  --bord2:  #E8EFF7;
  --gold:   #C08020;
  --serif:  'DM Serif Display', Georgia, serif;
  --sans:   'DM Sans', sans-serif;
  --mono:   'JetBrains Mono', monospace;
}
html { scroll-behavior: smooth; }
body { font-family: var(--sans); font-size: 16px; line-height: 1.7; color: var(--ink); background: var(--white); overflow-x: hidden; }
h1,h2,h3 { font-family: var(--serif); line-height: 1.15; color: var(--ink); }
h1 { font-size: clamp(2.4rem, 5vw, 4rem); }
h2 { font-size: clamp(1.7rem, 3.5vw, 2.6rem); }
h3 { font-size: 1.2rem; font-family: var(--sans); font-weight: 600; }
h4 { font-family: var(--mono); font-size: 0.62rem; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); }
p  { color: var(--ink3); font-size: 0.95rem; line-height: 1.85; }
a  { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
strong { color: var(--ink); font-weight: 600; }
blockquote { font-family: var(--serif); font-size: 1.15rem; font-style: italic; color: var(--ink2); border-left: 3px solid var(--accent); padding: 6px 0 6px 24px; margin: 28px 0; line-height: 1.7; }
.container { max-width: 1120px; margin: 0 auto; padding: 0 48px; }
section { padding: 80px 0; }
.label { display: block; font-family: var(--mono); font-size: 0.6rem; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--accent); margin-bottom: 12px; }
.rule  { width: 32px; height: 2px; background: var(--accent); margin: 16px 0 28px; border-radius: 2px; }
.rule-c { margin-left: auto; margin-right: auto; }
hr.hrule { border: none; border-top: 1px solid var(--bord2); margin: 28px 0; }

/* ===== FADE ===== */
.fade { opacity: 0; transform: translateY(14px); transition: opacity 0.45s ease, transform 0.45s ease; }
.fade.in { opacity: 1; transform: none; }
.fade.d1 { transition-delay: 0.08s; }
.fade.d2 { transition-delay: 0.16s; }
/* Ensure content is visible if JS is disabled or observer never fires */
@media print { .fade { opacity: 1 !important; transform: none !important; } }