/* ============================================
   TSS-PUB-CSS-CONTRACT — v3.3
   Structural Grammar Contract
   ============================================ */

/* Root geometry */
:root {
  --font-main: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
               Roboto, Helvetica, Arial, sans-serif;
  --font-size-base: 17px;
  --line-height-base: 1.55;
  --max-width: 720px;

  --space-xxs: 0.25rem;
  --space-xs: 0.5rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2rem;
  --space-xl: 3rem;

  /* Step 3 tightening tokens */
  --space-md-tight: 1.32rem;
  --space-lg-tight: 1.76rem;

  /* Step 4 triad compression token */
  --space-lg-tight-2: 1.68rem;

  /* Step 5 block rhythm tightening token */
  --space-lg-tight-block: 1.78rem;

  /* Step 6 rule-system consolidation tokens */
  --space-rule: 1.78rem;
  --space-rule-terminal: 2.64rem;

  /* Step 7 terminal-state refinement token */
  --space-terminal: 2.05rem;

  /* Step 8 compression-state refinement tokens */
  --space-compression: 1.60rem;
  --font-size-compression: 0.96rem;

  /* Step 9 section-label refinement token */
  --space-section-label: 0.62rem;

  /* Step 10 paragraph-flow refinement token */
  --space-paragraph: 0.90rem;

  /* Step 11 global optical-weight balancing tokens */
  --weight-base: 420;
  --weight-identity: 610;
  --weight-section-label: 590;

  /* Step 12 global micro-contrast harmonization tokens */
  --opacity-base: 0.97;
  --opacity-compression: 0.89;
  --opacity-terminal: 0.93;

  --rule-color: #000;
  --text-color: #000;
  --background-color: #fff;
}

/* Page container */
body {
  margin: 0;
  padding: 0;
  background: var(--background-color);
  color: var(--text-color);
  font-family: var(--font-main);
  font-size: var(--font-size-base);
  line-height: var(--line-height-base);
  font-weight: var(--weight-base);
  opacity: var(--opacity-base);
}

.page {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: var(--space-lg-tight-2) var(--space-sm) var(--space-lg-tight-2);
}

/* Identity */
.identity {
  font-size: 1.25rem;
  font-weight: var(--weight-identity);
  margin-bottom: var(--space-md-tight);
}

/* Thesis */
.thesis {
  font-size: 1.1rem;
  margin-bottom: var(--space-lg-tight);
}

/* Rules */
.rule,
.rule-terminal {
  border: none;
  border-top: 1px solid var(--rule-color);
  margin: var(--space-rule) 0;
}

.rule-terminal {
  margin-top: var(--space-rule-terminal);
}

/* Blocks */
.block {
  margin-bottom: var(--space-lg-tight-block);
}

/* Section labels */
.section-label {
  font-weight: var(--weight-section-label);
  margin-bottom: var(--space-section-label);
  letter-spacing: -0.2px;
}

/* Paragraph flow */
.section-body p {
  margin: 0 0 var(--space-paragraph);
}

/* Compression and terminal states */
.compression {
  opacity: var(--opacity-compression);
  font-size: var(--font-size-compression);
  margin-top: var(--space-compression);
}

.terminal {
  font-weight: 650;
  opacity: var(--opacity-terminal);
  margin-top: var(--space-terminal);
}

/* Document code (version + email artifact block) */
.document-code {
  font-size: 0.85rem;
  margin-top: var(--space-md);
  opacity: 0.62;
}

/* Email quieting + artifact harmonization */
.document-code a {
  color: inherit;
  text-decoration: none;
  font-size: 0.85rem;
  opacity: 0.62;
  font-weight: var(--weight-base);
}

/* Micro‑spacing between version artifact and email coordinate */
.document-code + .document-code {
  margin-top: calc(var(--space-md) * 0.66);
}

/* Email opacity refinement (quieter than version artifact) */
.document-code.email {
  opacity: 0.40;
}
