/* MIR shared page styles.
 *
 * Every page used to carry its own copy of this. Where they disagreed, they
 * disagreed by drift rather than intent: h1 had 32 definitions across 82 pages
 * but its color was #fff in all 61 that set one. So one version wins.
 *
 * how-it-works.html is the reference page -- where it defined a rule, its
 * version is what is here verbatim. The rest are the majority version across
 * the other 88 pages.
 *
 * Loaded AFTER tokens.css and BEFORE each page's own <style>, so a page can
 * still override anything it genuinely needs to.
 *
 * index.html and trust.html do not use this. index.html is a bespoke landing
 * page -- 63% of its selectors appear nowhere else. trust.html carries its own
 * token system on a different palette.
 */


* {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

body {
      min-height: 100vh;
      background: var(--bg);
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
      color: var(--text);
      line-height: 1.7;
    }

.site-header {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 1rem 2rem;
      background: rgba(var(--bg-rgb), 0.95);
      backdrop-filter: blur(10px);
      border-bottom: 1px solid var(--surface-1);
      z-index: 100;
    }

.header-logo {
      display: flex;
      align-items: center;
      gap: 0.75rem;
      text-decoration: none;
      color: var(--text-strong);
    }

.header-logo img {
      width: auto;
      height: 36px;
    }

.header-logo span {
      font-size: 1.25rem;
      font-weight: 700;
      background: linear-gradient(90deg, var(--brand), var(--ok));
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

.header-nav {
      display: flex;
      gap: 2rem;
    }

.header-nav a {
      color: var(--ink-8);
      text-decoration: none;
      font-size: 0.95rem;
      transition: color 0.2s;
    }

.header-nav a:hover {
      color: var(--brand-bright);
    }

main {
      max-width: 800px;
      margin: 0 auto;
      padding: 7rem 2rem 4rem;
    }

h1 {
      font-size: 2.25rem;
      font-weight: 700;
      margin-bottom: 0.5rem;
      color: var(--text-strong);
    }

.last-updated {
      color: #888;
      font-size: 0.9rem;
      margin-bottom: 0.5rem;
    }

.tagline {
      font-size: 1.35rem;
      font-weight: 500;
      color: var(--brand-bright);
      margin-bottom: 1.5rem;
    }

.intro {
      font-size: 1.1rem;
      color: var(--text-dim);
      margin-bottom: 2.5rem;
      padding-bottom: 2rem;
      border-bottom: 1px solid var(--surface-1);
    }

.section {
      margin-bottom: 3rem;
    }

.section h2 {
      font-size: 1.3rem;
      font-weight: 600;
      margin-bottom: 1.5rem;
      color: var(--brand-bright);
      padding-bottom: 0.5rem;
      border-bottom: 1px solid rgba(var(--brand-rgb), 0.3);
    }

.section p {
      color: var(--text-dim);
      margin-bottom: 1rem;
    }

.section ul {
      color: var(--text-dim);
      padding-left: 1.5rem;
      margin-bottom: 1rem;
    }

strong {
      color: var(--text);
    }

a {
      color: var(--brand-bright);
      text-decoration: none;
    }

a:hover {
      text-decoration: underline;
    }

.cta-section {
      background: linear-gradient(135deg, rgba(var(--brand-rgb), 0.1), rgba(var(--ok-rgb), 0.05));
      border: 1px solid rgba(var(--brand-rgb), 0.3);
      border-radius: 12px;
      padding: 2rem;
      text-align: center;
      margin-top: 3rem;
    }

.cta-section p {
      margin-bottom: 1.5rem;
    }

.cta-buttons {
      display: flex;
      gap: 1rem;
      justify-content: center;
      flex-wrap: wrap;
    }

footer {
      padding: 3rem 2rem;
      text-align: center;
      border-top: 1px solid var(--surface-1);
      margin-top: 4rem;
    }

footer a {
      color: var(--brand-pale);
      text-decoration: none;
      margin: 0 1rem;
      font-size: 0.9rem;
    }

footer a:hover {
      text-decoration: underline;
    }

footer p {
      font-size: 0.85rem;
      color: var(--ink-5);
      margin-top: 1rem;
    }

footer p.disambiguation {
      max-width: 700px;
      margin: 1.5rem auto 0;
      color: var(--ink-6);
      line-height: 1.6;
    }

/* Language Selector */
    .language-selector {
      background: var(--surface-1);
      border: 1px solid var(--surface-2);
      border-radius: 4px;
      color: var(--ink-7);
      padding: 0.25rem 0.5rem;
      font-size: 0.8rem;
      cursor: pointer;
      transition: all 0.2s ease;
    }

.language-selector:hover {
      background: var(--surface-15);
      border-color: var(--surface-3);
    }

.language-selector:focus {
      outline: none;
      border-color: var(--brand);
    }

.language-selector option {
      background: var(--bg-raised);
      color: var(--text-strong);
    }

.header-lang-selector {
      margin-left: 1rem;
    }

/* Hamburger Menu */
    .hamburger {
      display: none;
      flex-direction: column;
      justify-content: center;
      gap: 5px;
      width: auto;
      height: 28px;
      background: none;
      border: none;
      cursor: pointer;
      padding: 0;
      z-index: 200;
    }

.hamburger span {
      display: block;
      width: 100%;
      height: 2px;
      background: var(--text-strong);
      border-radius: 2px;
      transition: transform 0.3s, opacity 0.3s;
    }

.hamburger.active span:nth-child(1) {
      transform: translateY(7px) rotate(45deg);
    }

.hamburger.active span:nth-child(2) {
      opacity: 0;
    }

.hamburger.active span:nth-child(3) {
      transform: translateY(-7px) rotate(-45deg);
    }

.mobile-nav {
      display: none;
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: rgba(var(--bg-rgb), 0.98);
      backdrop-filter: blur(10px);
      z-index: 150;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 1.5rem;
    }

.mobile-nav.active {
      display: flex;
    }

.mobile-nav a {
      color: var(--ink-9);
      text-decoration: none;
      font-size: 1.25rem;
      padding: 0.5rem 1rem;
      transition: color 0.2s;
    }

.mobile-nav a:hover {
      color: var(--brand-bright);
    }

.container {
      max-width: 720px;
      margin: 0 auto;
      padding: 7rem 2rem 4rem;
    }

.highlight-box {
      background: rgba(var(--brand-rgb), 0.1);
      border: 1px solid rgba(var(--brand-rgb), 0.2);
      border-radius: 8px;
      padding: 1.5rem;
      margin: 2rem 0;
    }

.article-content p { margin-bottom: 1.5rem; }

.article-content h2 {
      font-size: 1.5rem;
      font-weight: 600;
      color: var(--text-strong);
      margin: 2.5rem 0 1rem;
    }

.article-content { color: var(--ink-8); font-size: 1.1rem; }

.article-content li {
      margin-bottom: 0.5rem;
    }

.article-date {
      font-size: 0.9rem;
      color: var(--ink-5);
      margin-top: 1rem;
    }

.article-content a {
      color: var(--brand);
      text-decoration: none;
    }

.article-content a:hover {
      text-decoration: underline;
    }

.breadcrumb a { color: var(--brand); text-decoration: none; }

.breadcrumb {
      font-size: 0.9rem;
      color: var(--ink-5);
      margin-bottom: 2rem;
    }

.breadcrumb a:hover { text-decoration: underline; }

.article-content blockquote {
      border-left: 3px solid var(--brand);
      padding-left: 1.5rem;
      margin: 2rem 0;
      font-style: italic;
      color: var(--ink-7);
    }

.article-header {
      margin-bottom: 3rem;
      padding-bottom: 2rem;
      border-bottom: 1px solid var(--surface-1);
    }

.article-content ul, .article-content ol {
      margin-bottom: 1.5rem;
      padding-left: 1.5rem;
    }

.highlight-box p:last-child {
      margin-bottom: 0;
    }

.article-content h3 {
      font-size: 1.25rem;
      font-weight: 600;
      color: var(--brand);
      margin: 2rem 0 0.75rem;
    }

.subtitle {
      font-size: 1.1rem;
      color: var(--ink-6);
      margin-bottom: 3rem;
    }

h2 {
      font-size: 1.4rem;
      font-weight: 600;
      margin-top: 2.5rem;
      margin-bottom: 1rem;
      color: var(--brand-bright);
    }

p { margin-bottom: 1rem; color: var(--text-dim); }

hr {
      border: none;
      border-top: 1px solid var(--surface-1);
      margin: 2.5rem 0;
    }

.emphasis-block {
      margin: 2rem 0;
      padding: 0;
    }

.emphasis-block p {
      margin-bottom: 0.5rem;
    }

.highlight-box p { margin-bottom: 0; color: var(--text); }

li { margin-bottom: 0.5rem; }

.lead-text { font-size: 1.2rem; color: var(--ink-9); line-height: 1.7; }

h3 {
      font-size: 1.1rem;
      font-weight: 600;
      margin-top: 1.5rem;
      margin-bottom: 0.75rem;
      color: var(--text);
    }

code { background: rgba(var(--brand-rgb), 0.1); color: var(--brand); padding: 2px 6px; border-radius: 3px; font-size: 0.9em; }

.article-image {
      width: 100%;
      max-width: 100%;
      height: auto;
      border-radius: 12px;
      margin-bottom: 2rem;
    }

.form-group {
      margin-bottom: 1.5rem;
    }

.warning-box {
      background: rgba(var(--warn-rgb), 0.1);
      border: 1px solid rgba(var(--warn-rgb), 0.3);
      border-radius: 8px;
      padding: 1.25rem;
      margin: 1.5rem 0;
    }

.logo {
      display: flex;
      align-items: center;
      gap: 0.5rem;
      text-decoration: none;
    }

.cta-btn:hover { opacity: 0.9; text-decoration: none; }

ul, ol {
      margin-bottom: 1rem;
      padding-left: 1.5rem;
      color: var(--text-dim);
    }

.cta-btn {
      display: inline-block;
      padding: 0.75rem 2rem;
      background: linear-gradient(135deg, var(--brand), var(--brand-deep));
      color: var(--text-strong);
      border-radius: 8px;
      font-weight: 600;
      text-decoration: none;
      margin: 0.25rem;
    }

.copyright {
      margin-top: 1.5rem;
      color: var(--ink-5);
      font-size: 0.85rem;
    }

.trademark {
      margin-top: 0.4rem;
      color: var(--ink-5);
      font-size: 0.75rem;
      opacity: 0.75;
    }

.btn {
      width: 100%;
      padding: 0.875rem 1.5rem;
      background: linear-gradient(90deg, var(--brand), var(--ok));
      border: none;
      border-radius: 6px;
      color: var(--bg);
      font-size: 1rem;
      font-weight: 600;
      cursor: pointer;
      transition: opacity 0.2s;
    }

label {
      display: block;
      font-size: 0.9rem;
      color: var(--ink-9);
      margin-bottom: 0.5rem;
      font-weight: 500;
    }

.logo span {
      font-size: 1.25rem;
      font-weight: 700;
      background: linear-gradient(90deg, var(--brand), var(--ok));
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

.btn-secondary {
      padding: 0.875rem 2rem;
      background: transparent;
      border: 1px solid var(--surface-2);
      border-radius: 6px;
      color: var(--text);
      font-size: 1rem;
      font-weight: 500;
      text-decoration: none;
      cursor: pointer;
      transition: border-color 0.2s;
    }

.back-link:hover {
      text-decoration: underline;
    }

.btn-primary {
      padding: 0.875rem 2rem;
      background: linear-gradient(90deg, var(--brand), var(--ok));
      border: none;
      border-radius: 6px;
      color: var(--bg);
      font-size: 1rem;
      font-weight: 600;
      text-decoration: none;
      cursor: pointer;
      transition: opacity 0.2s;
    }

.logo img {
      width: auto;
      height: 32px;
    }

.back-link {
      display: inline-block;
      color: var(--brand);
      text-decoration: none;
      margin-bottom: 2rem;
      font-size: 0.95rem;
    }

ul {
      color: var(--text-dim);
      margin-bottom: 1rem;
      padding-left: 1.5rem;
    }

.comparison-table th {
      background: rgba(var(--brand-rgb), 0.15);
      color: var(--brand);
      font-weight: 600;
    }

.btn-secondary:hover {
      border-color: var(--brand);
    }

.header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 1rem 2rem;
      background: var(--shadow-3);
      border-bottom: 1px solid var(--surface-1);
      position: sticky;
      top: 0;
      z-index: 100;
    }

.article-container {
      max-width: 720px;
      margin: 0 auto;
      padding: 7rem 2rem 4rem;
    }

.btn-primary:hover {
      opacity: 0.9;
    }

section {
      margin-bottom: 3.5rem;
    }

.cta-btn-outline:hover { background: rgba(var(--brand-rgb), 0.08); text-decoration: none; }

.closing {
      border-top: 1px solid var(--surface-1);
      padding-top: 2rem;
      margin-top: 3rem;
    }

.hero {
      text-align: center;
      margin-bottom: 4rem;
    }

.submit-btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 25px rgba(var(--brand-rgb), 0.3);
    }

.closing p {
      color: var(--text-muted);
      margin-bottom: 1rem;
    }

.submit-btn:disabled {
      opacity: 0.6;
      cursor: not-allowed;
      transform: none;
    }

.comparison-table {
      width: 100%;
      border-collapse: collapse;
      margin: 2rem 0;
      font-size: 0.95rem;
    }

.cta-btn-outline {
      display: inline-block;
      padding: 0.75rem 2rem;
      background: transparent;
      border: 1px solid rgba(var(--brand-rgb), 0.4);
      color: var(--brand);
      border-radius: 8px;
      font-weight: 600;
      text-decoration: none;
      margin: 0.25rem;
    }

.submit-btn {
      width: 100%;
      padding: 1rem;
      background: linear-gradient(135deg, var(--brand), var(--brand-deep));
      border: none;
      border-radius: 8px;
      color: var(--text-strong);
      font-size: 1rem;
      font-weight: 600;
      cursor: pointer;
      transition: transform 0.2s, box-shadow 0.2s;
    }

.article-content strong {
      color: var(--text-strong);
      font-weight: 600;
    }

.lead {
      font-size: 1.15rem;
      color: var(--text-dim-2);
      margin-bottom: 2rem;
    }

p:last-child {
      margin-bottom: 0;
    }

.success-icon {
      width: 64px;
      height: 64px;
      background: rgba(var(--ok-rgb), 0.2);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0 auto 1.5rem;
      font-size: 2rem;
    }

.article-content em {
      color: var(--ink-9);
    }

.cta-box {
      background: linear-gradient(135deg, rgba(var(--brand-rgb), 0.15), rgba(var(--ok-rgb), 0.15));
      border: 1px solid rgba(var(--brand-rgb), 0.3);
      border-radius: 12px;
      padding: 2rem;
      margin: 2rem 0;
      text-align: center;
    }

.cta-section h2 {
      margin-bottom: 0.75rem;
    }

.emphasis-block p:last-child {
      margin-bottom: 0;
    }

table { width: 100%; border-collapse: collapse; margin: 1rem 0 1.5rem; font-size: 0.92rem; }

.success-state {
      display: none;
      text-align: center;
      padding: 2rem;
    }

.loading {
      text-align: center;
      padding: 4rem;
      color: var(--ink-6);
    }

.warning-box p { margin-bottom: 0; color: #fcd34d; }

.article-content ul {
      margin-bottom: 1.5rem;
      padding-left: 1.5rem;
    }

.cta-box h3 {
      color: var(--text-strong);
      margin-top: 0;
    }

.article-subtitle {
      font-size: 1.15rem;
      color: var(--ink-7);
      font-style: italic;
    }
