/* Rupture Labs site stylesheet. One file for every page.
   The house style: deep navy, warm gold, Barlow Condensed display set in
   uppercase with wide tracking, Barlow body in light weight, a faint grid and a
   gold glow behind the hero. Dark by default; the toggle switches to light.
   Pre-2026-09 pages (learn, companies, the record) keep their own inline
   palette, which is the same design; this file styles the shared header and
   footer on them and every rl-* component on the built pages. */

:root {
  --rl-navy: #0A1628;
  --rl-gold: #C8973A;
  --rl-gold-lt: #E8B84B;
  --rl-gold-dk: #9B6E1A;

  --rl-bg: #0A1628;
  --rl-bg-alt: #080F1C;
  --rl-surface: rgba(255,255,255,0.03);
  --rl-surface-solid: #0E1C31;
  --rl-surface-hover: rgba(255,255,255,0.05);
  --rl-ink: #FFFFFF;
  --rl-text: #6A93AC;
  --rl-em: #A8C8DC;
  --rl-muted: #7A94A8;
  --rl-rule: rgba(255,255,255,0.07);
  --rl-rule-strong: rgba(255,255,255,0.14);
  --rl-accent: #C8973A;
  --rl-accent-hover: #E8B84B;
  --rl-grid: rgba(74,122,150,0.07);
  --rl-glow: rgba(200,151,58,0.12);
  --rl-glow-cool: rgba(44,88,112,0.2);
  --rl-header-bg: rgba(10,22,40,0.88);
  --rl-footer-bg: #060D18;
  --rl-input-bg: rgba(255,255,255,0.04);
  --rl-input-border: rgba(255,255,255,0.12);
  --rl-danger: #E59C9C;
  --rl-danger-bg: rgba(229,156,156,0.06);
  --rl-focus: #E8B84B;

  --rl-font-display: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  --rl-font-body: 'Barlow', system-ui, sans-serif;
  --rl-font-mono: 'DM Mono', ui-monospace, monospace;
  --rl-gutter: clamp(20px, 4vw, 48px);
  --rl-width: 1100px;
  --rl-measure: 640px;
  --rl-header-h: 64px;
  color-scheme: dark;
}

:root[data-theme="light"] {
  --rl-gold: #A67318;
  --rl-gold-lt: #C8973A;
  --rl-gold-dk: #7A5510;
  --rl-bg: #E8EDF3;
  --rl-bg-alt: #DEE4EC;
  --rl-surface: rgba(255,255,255,0.85);
  --rl-surface-solid: #FFFFFF;
  --rl-surface-hover: rgba(255,255,255,0.95);
  --rl-ink: #0D1B2A;
  --rl-text: #2E4A60;
  --rl-em: #142D42;
  --rl-muted: #4A6A84;
  --rl-rule: #C8D4E0;
  --rl-rule-strong: #B0C0D0;
  --rl-accent: #8A5F12;
  --rl-accent-hover: #A67318;
  --rl-grid: rgba(10,22,40,0.06);
  --rl-glow: rgba(200,151,58,0.14);
  --rl-glow-cool: rgba(44,88,112,0.08);
  --rl-header-bg: rgba(220,228,238,0.94);
  --rl-footer-bg: #D0D8E4;
  --rl-input-bg: rgba(255,255,255,0.9);
  --rl-input-border: #B0C0D0;
  --rl-danger: #8A2A2A;
  --rl-danger-bg: rgba(138,42,42,0.05);
  --rl-focus: #0D1B2A;
  color-scheme: light;
}

/* ── base ─────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body.rl { margin: 0; background: var(--rl-bg); color: var(--rl-text); font-family: var(--rl-font-body); font-weight: 300; font-size: 16px; line-height: 1.75; -webkit-font-smoothing: antialiased; overflow-x: hidden; transition: background .3s, color .3s; }
body.rl > main { padding-top: var(--rl-header-h); }
.rl a { color: var(--rl-accent); text-decoration: none; }
.rl a:hover { color: var(--rl-accent-hover); }
.rl :focus-visible { outline: 2px solid var(--rl-focus); outline-offset: 3px; }
.rl h1, .rl h2, .rl h3 { font-family: var(--rl-font-display); color: var(--rl-ink); font-weight: 700; line-height: 1.05; margin: 0; letter-spacing: .5px; }
.rl p, .rl ul, .rl ol, .rl dl, .rl figure { margin: 0; }
.rl strong { color: var(--rl-em); font-weight: 500; }
.rl img { max-width: 100%; height: auto; }
.rl-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ── shared shell: header ─────────────────────────────────────────────── */
.rl-skip { position: fixed; left: 16px; top: -60px; z-index: 300; background: var(--rl-gold); color: var(--rl-navy); padding: 10px 16px; font: 700 12px/1 var(--rl-font-display); letter-spacing: 2px; text-transform: uppercase; border-radius: 5px; text-decoration: none; }
.rl-skip:focus { top: 12px; }
header.rl-header { all: initial; display: block; position: fixed; top: 0; left: 0; right: 0; z-index: 100; background: var(--rl-header-bg); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom: 1px solid var(--rl-rule); font-family: var(--rl-font-body); }
nav.rl-nav { all: initial; box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; gap: 24px; height: var(--rl-header-h); padding: 0 var(--rl-gutter); font-family: var(--rl-font-body); color: var(--rl-ink); max-width: 1440px; margin: 0 auto; }
nav.rl-nav * { box-sizing: border-box; }
a.rl-wordmark, .rl a.rl-wordmark { display: flex; align-items: center; gap: 14px; text-decoration: none; }
.rl-wordmark img { width: 30px; height: 30px; border-radius: 4px; display: block; }
.rl-wm { display: flex; flex-direction: column; line-height: 1; }
.rl-wm-name { font-family: var(--rl-font-display); font-weight: 700; font-size: 16px; letter-spacing: 4px; text-transform: uppercase; color: var(--rl-ink); }
.rl-wm-sub { font-family: var(--rl-font-display); font-weight: 300; font-size: 7.5px; letter-spacing: 6px; text-transform: uppercase; color: var(--rl-gold); margin-top: 3px; }
.rl-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 22px; }
.rl-menu > li { position: relative; }
.rl-menu a, .rl-sub-btn { font-family: var(--rl-font-display); font-size: 11px; font-weight: 600; letter-spacing: 2.5px; text-transform: uppercase; color: var(--rl-text); text-decoration: none; background: none; border: 0; padding: 6px 0; cursor: pointer; transition: color .2s; }
.rl-menu a:hover, .rl-sub-btn:hover, .rl-sub-btn[aria-expanded="true"] { color: var(--rl-gold); }
.rl-menu a[aria-current="page"] { color: var(--rl-ink); }
.rl-sub-btn::after { content: ""; display: inline-block; width: 5px; height: 5px; margin-left: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-3px) rotate(45deg); }
.rl-sub { display: none; position: absolute; top: calc(100% + 14px); left: 50%; transform: translateX(-50%); min-width: 280px; list-style: none; margin: 0; padding: 8px 0; background: var(--rl-header-bg); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border: 1px solid var(--rl-rule-strong); border-radius: 8px; box-shadow: 0 8px 32px rgba(0,0,0,.25); }
.rl-has-sub.is-open > .rl-sub { display: block; }
.rl-sub a { display: block; padding: 10px 18px; font-size: 12px; letter-spacing: 1.2px; color: var(--rl-ink); }
.rl-sub a:hover { background: rgba(200,151,58,.06); }
.rl-menu a.rl-cta { font-size: 10px; font-weight: 700; letter-spacing: 2px; color: var(--rl-navy); background: var(--rl-gold); padding: 8px 16px; border-radius: 5px; white-space: nowrap; transition: background .2s, transform .15s; }
.rl-menu a.rl-cta:hover { background: var(--rl-gold-lt); color: var(--rl-navy); transform: translateY(-1px); }
.rl-theme { width: 40px; height: 22px; border-radius: 11px; border: 1.5px solid var(--rl-rule-strong); background: var(--rl-surface); cursor: pointer; position: relative; padding: 0; display: block; }
.rl-theme:hover { border-color: var(--rl-gold); }
.rl-theme-knob { position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: var(--rl-gold); transition: transform .25s cubic-bezier(.34,1.56,.64,1); }
:root[data-theme="light"] .rl-theme-knob { transform: translateX(18px); }
.rl-menu-btn { display: none; background: none; border: 1px solid var(--rl-rule-strong); color: var(--rl-ink); font: 700 11px/1 var(--rl-font-display); letter-spacing: 2px; text-transform: uppercase; padding: 9px 12px; border-radius: 5px; cursor: pointer; }

@media (max-width: 1100px) {
  .rl-menu-btn { display: inline-block; }
  .rl-menu { display: none; position: absolute; left: 0; right: 0; top: var(--rl-header-h); flex-direction: column; align-items: stretch; gap: 0; background: var(--rl-bg); padding: 8px var(--rl-gutter) 22px; border-bottom: 1px solid var(--rl-rule); max-height: calc(100vh - var(--rl-header-h)); overflow-y: auto; }
  .rl-nav.is-open .rl-menu { display: flex; }
  .rl-menu > li { border-top: 1px solid var(--rl-rule); }
  .rl-menu a, .rl-sub-btn { display: block; width: 100%; text-align: left; padding: 15px 0; font-size: 12px; }
  .rl-sub { position: static; transform: none; min-width: 0; border: 0; box-shadow: none; padding: 0 0 8px 12px; background: transparent; backdrop-filter: none; }
  .rl-menu a.rl-cta { margin: 16px 0 8px; padding: 13px 16px; text-align: center; font-size: 11px; }
  .rl-menu > li:nth-last-child(-n+2) { border-top: 0; }
  .rl-theme { margin-top: 8px; }
}

/* ── shared shell: footer ─────────────────────────────────────────────── */
footer.rl-footer { all: initial; display: block; background: var(--rl-footer-bg); border-top: 1px solid var(--rl-rule); color: var(--rl-text); font-family: var(--rl-font-body); font-weight: 300; font-size: 13px; line-height: 1.7; }
.rl-footer-grid { box-sizing: border-box; max-width: calc(var(--rl-width) + 2 * var(--rl-gutter)); margin: 0 auto; padding: 56px var(--rl-gutter) 32px; display: grid; grid-template-columns: 1.1fr 1fr 1fr 1.3fr; gap: 40px; }
nav.rl-fnav { all: initial; display: block; font-family: var(--rl-font-body); font-weight: 300; font-size: 13px; line-height: 1.7; color: var(--rl-text); }
.rl-footer a { color: var(--rl-text); text-decoration: none; }
.rl-footer a:hover { color: var(--rl-gold); }
.rl-footer-word { display: block; font-family: var(--rl-font-display); font-weight: 700; font-size: 13px; letter-spacing: 4px; text-transform: uppercase; color: var(--rl-ink); margin-bottom: 12px; }
.rl-footer-h { display: block; font-family: var(--rl-font-display); font-weight: 700; font-size: 10px; letter-spacing: 3px; text-transform: uppercase; color: var(--rl-gold); margin: 0 0 12px; }
.rl-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.rl-footer p { margin: 0 0 8px; }
.rl-copy { box-sizing: border-box; max-width: calc(var(--rl-width) + 2 * var(--rl-gutter)); margin: 0 auto; padding: 18px var(--rl-gutter) 36px; border-top: 1px solid var(--rl-rule); font-size: 11px; color: var(--rl-muted); }
@media (max-width: 900px) { .rl-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .rl-footer-grid { grid-template-columns: 1fr; gap: 28px; } }

/* ── layout ───────────────────────────────────────────────────────────── */
.rl-section { padding: clamp(64px, 9vw, 100px) max(var(--rl-gutter), calc((100% - var(--rl-width)) / 2)); border-top: 1px solid var(--rl-rule); position: relative; }
.rl-band { background: var(--rl-bg-alt); }
.rl-band-navy { background: var(--rl-bg-alt); border-top: 1px solid var(--rl-rule); }
.rl-band-navy > .rl-section, .rl-band > .rl-section { border-top: 0; }
.rl .rl-stack > * + *, .rl-stack > * + * { margin-top: 20px; }
.rl .rl-stack > .rl-cards, .rl .rl-stack > .rl-table-wrap, .rl .rl-stack > .rl-ladder, .rl .rl-stack > section { margin-top: 44px; }
.rl-grid-12 { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; row-gap: 32px; }
.rl-span-4 { grid-column: span 4; } .rl-span-5 { grid-column: span 5; } .rl-span-6 { grid-column: span 6; }
.rl-span-7 { grid-column: span 7; } .rl-span-8 { grid-column: span 8; }
.rl-start-7 { grid-column: 7 / span 6; } .rl-start-8 { grid-column: 8 / span 5; } .rl-start-9 { grid-column: 9 / span 4; }
@media (max-width: 900px) { .rl-grid-12 > * { grid-column: 1 / -1 !important; } }

.rl-eyebrow { display: flex; align-items: center; gap: 12px; font-family: var(--rl-font-display); font-size: 11px; font-weight: 600; letter-spacing: 4px; text-transform: uppercase; color: var(--rl-gold); line-height: 1.4; }
.rl-eyebrow::before { content: ""; width: 32px; height: 1px; background: var(--rl-gold); opacity: .6; flex: none; }
.rl-card .rl-eyebrow::before { display: none; }
.rl-h1 { font-weight: 800; font-size: clamp(44px, 5.5vw, 72px); line-height: .95; letter-spacing: -1px; text-transform: uppercase; }
.rl-h1 .accent { color: var(--rl-gold); }
.rl-h1 .dim { color: var(--rl-text); opacity: .75; }
.rl-h2 { font-size: clamp(32px, 4vw, 48px); line-height: 1.05; }
.rl-h3 { font-size: clamp(22px, 2.4vw, 28px); line-height: 1.1; }
.rl-lede { font-size: 16px; line-height: 1.75; max-width: 560px; color: var(--rl-text); }
.rl-prose { max-width: var(--rl-measure); font-size: 15px; }
.rl .rl-prose p + p, .rl .rl-prose p + ul, .rl .rl-prose ul + p, .rl .rl-prose ul + ul { margin-top: 16px; }
.rl-prose ul { padding-left: 0; list-style: none; }
.rl-prose li { position: relative; padding-left: 22px; }
.rl-prose li::before { content: ""; position: absolute; left: 0; top: .8em; width: 10px; height: 1px; background: var(--rl-gold); }
.rl-prose li + li { margin-top: 10px; }
.rl-muted { color: var(--rl-muted); }
.rl-mono { font-family: var(--rl-font-mono); }

/* ── hero ─────────────────────────────────────────────────────────────── */
.rl-hero { position: relative; overflow: hidden; background: var(--rl-bg); }
.rl-hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(var(--rl-grid) 1px, transparent 1px), linear-gradient(90deg, var(--rl-grid) 1px, transparent 1px); background-size: 60px 60px; pointer-events: none; }
.rl-hero::after { content: ""; position: absolute; top: -200px; right: -200px; width: 700px; height: 700px; background: radial-gradient(circle, var(--rl-glow) 0%, transparent 60%); pointer-events: none; }
.rl-hero > .rl-section { border-top: 0; position: relative; z-index: 1; padding-top: clamp(72px, 10vw, 120px); padding-bottom: clamp(64px, 8vw, 100px); }
.rl-hero-home > .rl-section { min-height: calc(92vh - var(--rl-header-h)); align-content: center; }
.rl-hero-mark { align-self: center; justify-self: end; }
.rl-hero-mark img { width: clamp(160px, 18vw, 240px); height: auto; display: block; filter: drop-shadow(0 0 40px rgba(200,151,58,.18)); }
.rl-hero-aside { align-self: end; border-top: 1px solid rgba(200,151,58,.4); padding-top: 18px; }
.rl-hero-aside strong { display: block; font-family: var(--rl-font-display); font-weight: 600; font-size: 20px; line-height: 1.2; letter-spacing: .5px; color: var(--rl-ink); }
.rl-hero-aside span { display: block; margin-top: 8px; font-size: 13px; color: var(--rl-text); }
/* the thirty-second read: four facts under the hero */
.rl-proof { list-style: none; margin: 4px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: rgba(200,151,58,.25); border: 1px solid rgba(200,151,58,.25); border-radius: 8px; overflow: hidden; max-width: 760px; }
.rl-proof li { background: var(--rl-bg); padding: 14px 16px; display: grid; gap: 4px; }
.rl-proof b { font-family: var(--rl-font-display); font-size: 22px; font-weight: 800; letter-spacing: .5px; color: var(--rl-gold); line-height: 1; text-transform: uppercase; }
.rl-proof span { font-size: 12px; line-height: 1.4; color: var(--rl-text); }
@media (max-width: 700px) { .rl-proof { grid-template-columns: 1fr 1fr; } }
.rl-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; font-family: var(--rl-font-display); font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--rl-text); }
.rl-strip b { color: var(--rl-gold); font-weight: 600; }
/* On phones the mark keeps its top-right place and scales down instead of dropping below the text. */
@media (max-width: 900px) { .rl-hero-mark { grid-row: 1; justify-self: end; align-self: start; margin-bottom: -8px; } .rl-hero-mark img { width: clamp(72px, 22vw, 112px); } }

/* ── buttons ──────────────────────────────────────────────────────────── */
.rl-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; }
.rl-btn { display: inline-block; font: 700 12px/1.2 var(--rl-font-display); letter-spacing: 2px; text-transform: uppercase; padding: 14px 24px; border-radius: 6px; text-decoration: none; cursor: pointer; border: 1px solid transparent; transition: background .2s, transform .15s, border-color .2s, color .2s; }
.rl .rl-btn-primary, .rl .rl-btn-solid { background: var(--rl-gold); color: var(--rl-navy); }
.rl .rl-btn-primary:hover, .rl .rl-btn-solid:hover { background: var(--rl-gold-lt); color: var(--rl-navy); transform: translateY(-1px); }
.rl .rl-btn-ghost { background: transparent; color: var(--rl-gold); padding-left: 0; padding-right: 0; border: 0; border-bottom: 1px solid transparent; border-radius: 0; }
.rl .rl-btn-ghost:hover { border-bottom-color: var(--rl-gold); color: var(--rl-gold); }
.rl .rl-btn-ghost::after { content: " \2192"; }

/* ── cards and lists ──────────────────────────────────────────────────── */
.rl-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; list-style: none; padding: 0; margin: 0; }
.rl-cards > li { display: flex; }
.rl-card { position: relative; overflow: hidden; flex: 1; display: flex; flex-direction: column; gap: 10px; padding: 30px 26px; background: var(--rl-surface); border: 1px solid var(--rl-rule); border-radius: 12px; color: var(--rl-text); text-decoration: none; transition: border-color .3s, transform .3s; }
.rl-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, var(--rl-gold), transparent); opacity: 0; transition: opacity .3s; }
.rl a.rl-card { color: var(--rl-text); }
a.rl-card:hover { border-color: rgba(200,151,58,.25); transform: translateY(-3px); color: var(--rl-text); }
a.rl-card:hover::before { opacity: 1; }
.rl-card h3 { font-size: 19px; letter-spacing: .5px; line-height: 1.15; }
.rl-card p { font-size: 13px; line-height: 1.7; }
.rl-card .rl-card-foot { margin-top: auto; padding-top: 8px; font-family: var(--rl-font-display); font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--rl-gold); }
.rl-card-dark { border-color: rgba(200,151,58,.25); background: linear-gradient(160deg, rgba(200,151,58,.08), var(--rl-surface) 60%); }
.rl-budget { align-self: flex-start; font-family: var(--rl-font-display); font-size: 9px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--rl-gold-dk); background: rgba(200,151,58,.08); border: 1px solid rgba(200,151,58,.18); padding: 3px 9px; border-radius: 3px; line-height: 1.5; }
:root:not([data-theme="light"]) .rl-budget { color: var(--rl-gold); }

/* problem / solution boxes: the buyer's problem first, in their words */
.rl-cards-ps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1180px) { .rl-cards-ps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .rl-cards-ps { grid-template-columns: 1fr; } }
.rl-ps { gap: 8px; }
.rl-ps .rl-budget { margin-bottom: 10px; }
.rl-ps-label { font-family: var(--rl-font-display); font-size: 10px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: var(--rl-muted); }
.rl-ps-label + h3 { margin-top: -2px; }
.rl-ps .rl-ps-solution { color: var(--rl-gold); margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--rl-rule); }
.rl-card p.rl-ps-problem { font-family: var(--rl-font-display); font-size: 18px; font-weight: 500; font-style: italic; line-height: 1.35; letter-spacing: .2px; color: var(--rl-em); }

/* customer journey: five steps joined by a dashed gold path */
.rl-journey { list-style: none; margin: 48px 0 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 18px; position: relative; }
.rl-journey::before { content: ""; position: absolute; top: 34px; left: 10%; right: 10%; border-top: 1.5px dashed rgba(200,151,58,.55); }
.rl-journey > li { position: relative; display: grid; justify-items: center; align-content: start; text-align: center; gap: 10px; }
.rl-j-n { width: 68px; height: 68px; border-radius: 50%; display: grid; place-items: center; background: var(--rl-bg); border: 1.5px solid var(--rl-gold); box-shadow: 0 0 0 6px var(--rl-bg-alt), 0 0 28px rgba(200,151,58,.18); font-family: var(--rl-font-display); font-size: 26px; font-weight: 800; color: var(--rl-gold); position: relative; z-index: 1; }
/* three gold rings ripple out of every step, offset along the path */
.rl-j-n .rl-ring { position: absolute; inset: -1.5px; border-radius: 50%; border: 1.5px solid var(--rl-gold); opacity: 0; animation: rl-ripple 3.6s cubic-bezier(.2,.6,.35,1) infinite; pointer-events: none; }
.rl-j-n .rl-ring { animation-delay: var(--rl-off, 0s); }
.rl-j-n .rl-ring:nth-of-type(2) { animation-delay: calc(var(--rl-off, 0s) + 1.2s); }
.rl-j-n .rl-ring:nth-of-type(3) { animation-delay: calc(var(--rl-off, 0s) + 2.4s); }
.rl-journey > li:nth-child(2) { --rl-off: .3s; }
.rl-journey > li:nth-child(3) { --rl-off: .6s; }
.rl-journey > li:nth-child(4) { --rl-off: .9s; }
.rl-journey > li:nth-child(5) { --rl-off: 1.2s; }
.rl-journey > li:nth-child(6) { --rl-off: 1.5s; }
a.rl-j-n { text-decoration: none; transition: transform .25s, box-shadow .25s; }
a.rl-j-n:hover, a.rl-j-n:focus-visible { transform: scale(1.06); box-shadow: 0 0 0 6px var(--rl-bg-alt), 0 0 36px rgba(200,151,58,.4); }
a.rl-j-n:hover .rl-ring, a.rl-j-n:focus-visible .rl-ring { animation-duration: 2.2s; }
.rl-journey h3 a, .rl-journey-loop h3 a { color: inherit; text-decoration: none; }
.rl-journey h3 a:hover, .rl-journey-loop h3 a:hover { color: var(--rl-gold); }
.rl-journey-loop { margin: 36px auto 0; max-width: 660px; display: grid; grid-template-columns: 68px 1fr; gap: 20px; align-items: center; padding: 18px 26px 18px 18px; border: 1.5px dashed rgba(200,151,58,.45); border-radius: 60px; }
.rl-journey-loop h3 { font-size: 17px; text-transform: uppercase; letter-spacing: 1px; }
.rl-journey-loop p { font-size: 13px; line-height: 1.6; margin: 2px 0 0; }
.rl-journey-loop-links a { font-family: var(--rl-font-display); font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; }
.rl-j-loop span { font-size: 30px; line-height: 1; }
@keyframes rl-ripple { 0% { transform: scale(1); opacity: .7; } 70% { opacity: .12; } 100% { transform: scale(1.9); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .rl-j-n .rl-ring { animation: none; } .rl-j-n .rl-ring:nth-of-type(1) { opacity: .35; transform: scale(1.25); } }
.rl-journey h3 { font-size: 17px; text-transform: uppercase; letter-spacing: 1px; margin-top: 6px; }
.rl-journey p { font-size: 13px; line-height: 1.6; max-width: 180px; }
.rl-journey ul { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 4px; }
.rl-journey ul a { font-family: var(--rl-font-display); font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; }
@media (max-width: 900px) {
  .rl-journey { grid-template-columns: 1fr; gap: 0; }
  .rl-journey::before { top: 34px; bottom: 34px; left: 33px; right: auto; border-top: 0; border-left: 1.5px dashed rgba(200,151,58,.55); }
  .rl-journey > li { grid-template-columns: 68px 1fr; justify-items: start; text-align: left; column-gap: 18px; row-gap: 4px; padding-bottom: 28px; }
  .rl-journey > li > .rl-j-n { grid-row: span 3; }
  .rl-journey p { max-width: none; }
}

/* numbered steps */
.rl-steps { list-style: none; margin: 44px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.rl-steps > li { background: var(--rl-surface); border: 1px solid var(--rl-rule); border-radius: 12px; padding: 28px 24px; font-size: 13px; line-height: 1.7; }
.rl-steps .rl-step-n { display: block; font-family: var(--rl-font-mono); font-size: 12px; color: var(--rl-gold); margin-bottom: 12px; }
.rl-steps h3 { font-size: 19px; margin-bottom: 8px; }
@media (max-width: 900px) { .rl-steps { grid-template-columns: 1fr; } }

.rl-dl > div { padding: 22px 0; border-top: 1px solid var(--rl-rule); }
.rl-dl > div:first-child { border-top-color: rgba(200,151,58,.4); }
.rl-dl dt { font-family: var(--rl-font-display); font-weight: 700; font-size: 20px; letter-spacing: .5px; color: var(--rl-ink); }
.rl-dl dd { margin: 6px 0 0; font-size: 14px; }

/* ── the engine block (mandatory on every audit and testing page) ─────── */
.rl-engine { position: relative; overflow: hidden; border: 1px solid rgba(200,151,58,.22); border-radius: 12px; background: var(--rl-surface); padding: clamp(28px, 4vw, 44px); }
.rl-engine::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, var(--rl-gold), var(--rl-gold-lt), transparent); }
.rl-engine h2 { font-size: clamp(26px, 3vw, 36px); margin-top: 16px; }
.rl-engine ol { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; counter-reset: eng; }
.rl-engine li { counter-increment: eng; border-top: 1px solid var(--rl-rule); padding-top: 16px; font-size: 13px; line-height: 1.7; }
.rl-engine li::before { content: "0" counter(eng); display: block; font-family: var(--rl-font-mono); font-size: 11px; color: var(--rl-gold); margin-bottom: 8px; }
.rl-engine li strong { display: block; font-family: var(--rl-font-display); font-size: 17px; font-weight: 700; letter-spacing: .5px; color: var(--rl-ink); margin-bottom: 6px; }
@media (max-width: 900px) { .rl-engine ol { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .rl-engine ol { grid-template-columns: 1fr; } }

/* ── tables ───────────────────────────────────────────────────────────── */
.rl-table-wrap { overflow-x: auto; background: var(--rl-surface); border: 1px solid var(--rl-rule); border-radius: 10px; }
.rl-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.rl-table caption { text-align: left; padding: 16px 22px; font-family: var(--rl-font-mono); font-size: 12px; color: var(--rl-muted); border-bottom: 1px solid var(--rl-rule); }
.rl-table thead th { text-align: left; font-family: var(--rl-font-display); font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--rl-gold); padding: 14px 22px; border-bottom: 1px solid rgba(200,151,58,.25); white-space: nowrap; }
.rl-table tbody th { text-align: left; font-weight: 500; color: var(--rl-ink); vertical-align: top; padding: 16px 22px; border-top: 1px solid var(--rl-rule); }
.rl-table tbody th a { font-family: var(--rl-font-display); font-size: 16px; font-weight: 700; letter-spacing: .5px; }
.rl-table tbody th .rl-muted { font-weight: 300; font-size: 13px; }
.rl-table td { padding: 16px 22px; border-top: 1px solid var(--rl-rule); vertical-align: top; }
.rl-table td.rl-num { font-family: var(--rl-font-mono); white-space: nowrap; font-size: 13px; }
.rl-table tr.rl-withheld td { color: var(--rl-danger); background: var(--rl-danger-bg); }
.rl-tag { display: inline-block; font-family: var(--rl-font-mono); font-size: 11px; padding: 2px 7px; border-radius: 3px; border: 1px solid var(--rl-rule-strong); color: var(--rl-em); margin-right: 10px; }
.rl-tag-solid { background: rgba(200,151,58,.12); border-color: rgba(200,151,58,.35); color: var(--rl-gold); }
.rl-tag-dashed { border-style: dashed; border-color: var(--rl-danger); color: var(--rl-danger); }
.rl-sample { font-family: var(--rl-font-mono); font-size: 11px; color: var(--rl-danger); border: 1px solid var(--rl-danger); padding: 2px 8px; border-radius: 3px; }

/* ── pricing ──────────────────────────────────────────────────────────── */
.rl-ladder { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; counter-reset: rung; }
.rl-ladder li { counter-increment: rung; background: var(--rl-surface); border: 1px solid var(--rl-rule); border-radius: 12px; padding: 28px 24px; font-size: 13px; }
.rl-ladder li::before { content: "Level " counter(rung); display: inline-block; font-family: var(--rl-font-display); font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--rl-gold); background: rgba(200,151,58,.08); border: 1px solid rgba(200,151,58,.18); padding: 3px 9px; border-radius: 3px; margin-bottom: 16px; }
.rl-ladder h3 { font-size: 19px; margin-bottom: 10px; }
@media (max-width: 900px) { .rl-ladder { grid-template-columns: 1fr; } }
.rl-price { font-family: var(--rl-font-mono); color: var(--rl-ink); white-space: nowrap; }
.rl a.rl-scoping, .rl a[data-cta] { font-family: var(--rl-font-display); font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; }

/* ── forms ────────────────────────────────────────────────────────────── */
.rl-form { display: grid; gap: 16px; max-width: 560px; }
.rl-form label { display: block; font-family: var(--rl-font-display); font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--rl-em); margin-bottom: 8px; }
.rl-form input, .rl-form textarea, .rl-form select { width: 100%; font: 300 15px/1.4 var(--rl-font-body); padding: 13px 16px; border: 1px solid var(--rl-input-border); border-radius: 6px; background: var(--rl-input-bg); color: var(--rl-ink); transition: border-color .2s; }
.rl-form select option { background: var(--rl-surface-solid); color: var(--rl-ink); }
.rl-form input:focus, .rl-form textarea:focus, .rl-form select:focus { border-color: rgba(200,151,58,.6); outline: none; }
.rl-form textarea { min-height: 120px; resize: vertical; }
.rl-form-note { font-size: 12px; color: var(--rl-muted); }
.rl-form-status { font-size: 13px; color: var(--rl-em); min-height: 1.5em; }

/* ── platform: nav, orbit, part cards, feature pages ───────────────────── */
.rl-sub-wide { min-width: 560px; grid-template-columns: 1fr 1fr; padding: 8px 0 12px; }
.rl-has-sub.is-open > .rl-sub-wide { display: grid; }
.rl-sub-all { grid-column: 1 / -1; border-bottom: 1px solid var(--rl-rule); margin-bottom: 6px; }
.rl-sub-all a { color: var(--rl-gold); }
.rl-sub-col ul { list-style: none; margin: 0; padding: 0; }
.rl-sub-h { display: block; padding: 10px 18px 2px; font-family: var(--rl-font-display); font-size: 10px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: var(--rl-muted); }
.rl-sub-wide a { padding: 7px 18px; }
@media (max-width: 1100px) { .rl-sub-wide { min-width: 0; grid-template-columns: 1fr; } }

.rl-orb-know { --rl-orb: var(--rl-gold); }
.rl-orb-operate { --rl-orb: var(--rl-gold-lt); }
.rl-orb-test { --rl-orb: var(--rl-gold-dk); }
.rl-orb-prove { --rl-orb: var(--rl-em); }

.rl-orbit-wrap { display: grid; gap: 22px; justify-items: center; margin-top: 36px; }
.rl-orbit { position: relative; width: min(760px, 100%); aspect-ratio: 1; }
.rl-orbit::before { content: ""; position: absolute; inset: 8%; border-radius: 50%; border: 1.5px dashed rgba(200,151,58,.35); }
.rl-orbit-core { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: grid; justify-items: center; gap: 10px; text-align: center; font-family: var(--rl-font-display); font-weight: 700; font-size: 13px; letter-spacing: 3px; text-transform: uppercase; color: var(--rl-ink); }
.rl-orbit-core img { width: 120px; height: 120px; filter: drop-shadow(0 0 30px rgba(200,151,58,.3)); }
.rl-orbit-list { list-style: none; margin: 0; padding: 0; }
.rl-orbit-list > li { position: absolute; transform: translate(-50%, -50%); width: 118px; }
.rl-orbit-list a { display: grid; justify-items: center; gap: 8px; text-align: center; text-decoration: none; color: var(--rl-ink); }
.rl-orb-dot { position: relative; display: block; width: 26px; height: 26px; border-radius: 50%; background: var(--rl-bg); border: 2px solid var(--rl-orb, var(--rl-gold)); box-shadow: 0 0 18px rgba(200,151,58,.25); transition: transform .25s; }
.rl-orb-dot::after { content: ""; position: absolute; inset: 5px; border-radius: 50%; background: var(--rl-orb, var(--rl-gold)); }
.rl-orb-dot .rl-ring { position: absolute; inset: -2px; border-radius: 50%; border: 1.5px solid var(--rl-orb, var(--rl-gold)); opacity: 0; animation: rl-ripple 3.6s cubic-bezier(.2,.6,.35,1) infinite; animation-delay: var(--rl-off, 0s); pointer-events: none; }
.rl-orb-dot .rl-ring:nth-of-type(2) { animation-delay: calc(var(--rl-off, 0s) + 1.2s); }
.rl-orb-dot .rl-ring:nth-of-type(3) { animation-delay: calc(var(--rl-off, 0s) + 2.4s); }
.rl-orb-label { font-family: var(--rl-font-display); font-size: 11px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; line-height: 1.25; }
.rl-orbit-list a:hover .rl-orb-dot, .rl-orbit-list a:focus-visible .rl-orb-dot, .rl-related a:hover .rl-orb-dot { transform: scale(1.25); }
.rl-orbit-list a:hover .rl-orb-label, .rl-orbit-list a:focus-visible .rl-orb-label { color: var(--rl-gold); }
.rl-orbit-legend { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 22px; font-family: var(--rl-font-display); font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--rl-muted); }
.rl-orbit-legend li { display: flex; align-items: center; gap: 8px; }
.rl-orb-key { width: 12px; height: 12px; border-radius: 50%; background: var(--rl-orb); }
@media (max-width: 760px) { .rl-orbit-wrap { display: none; } }
@media (prefers-reduced-motion: reduce) { .rl-orb-dot .rl-ring, .rl-pcard-dot .rl-ring { animation: none; } }

.rl-pgroups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 28px; margin-top: 40px; }
.rl-pgroup h3 { font-size: 20px; text-transform: uppercase; letter-spacing: 1.5px; color: var(--rl-orb); }
.rl-pgroup > p { font-size: 13px; margin: 4px 0 14px; }
.rl-pcards, .rl-scards, .rl-lcards, .rl-related { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.rl-pcard { display: grid; grid-template-columns: 22px 1fr; gap: 4px 14px; padding: 16px 18px; border: 1px solid var(--rl-rule); border-radius: 10px; background: var(--rl-surface); text-decoration: none; color: var(--rl-text); transition: border-color .25s, transform .25s; }
.rl-pcard:hover, .rl-scard:hover, .rl-lcard:hover, .rl-related a:hover { border-color: rgba(200,151,58,.55); transform: translateY(-2px); }
.rl-pcard-dot { grid-row: span 2; position: relative; width: 14px; height: 14px; margin-top: 4px; border-radius: 50%; background: var(--rl-orb, var(--rl-gold)); }
.rl-pcard-dot .rl-ring { position: absolute; inset: 0; border-radius: 50%; border: 1.5px solid var(--rl-orb, var(--rl-gold)); opacity: 0; animation: rl-ripple 3.6s ease-out infinite; }
.rl-pcard strong, .rl-scard strong, .rl-lcard strong, .rl-related strong { font-family: var(--rl-font-display); font-size: 16px; font-weight: 700; letter-spacing: .5px; color: var(--rl-ink); }
.rl-pcard span:last-child, .rl-lcard span:last-child, .rl-related span:last-child { font-size: 13px; line-height: 1.6; }
@media (max-width: 760px) { .rl-pgroups { grid-template-columns: 1fr; } }

.rl-scards { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin-top: 18px; }
.rl-scard, .rl-lcard { display: grid; gap: 8px; align-content: start; height: 100%; padding: 20px 22px; border: 1px solid var(--rl-rule); border-radius: 10px; background: var(--rl-surface); text-decoration: none; color: var(--rl-text); transition: border-color .25s, transform .25s; }
.rl-scard .rl-eyebrow::before, .rl-lcard .rl-eyebrow::before { display: none; }
.rl-lcards { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); margin-top: 18px; }
.rl-related { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin-top: 18px; }
.rl-related a { display: grid; grid-template-columns: 26px 1fr; gap: 4px 14px; padding: 18px 20px; border: 1px solid var(--rl-rule); border-radius: 10px; background: var(--rl-surface); text-decoration: none; color: var(--rl-text); height: 100%; transition: border-color .25s, transform .25s; }
.rl-related .rl-orb-dot { grid-row: span 2; }

/* sample-output panel on feature pages: real output shapes, example data */
.rl-panel { border: 1px solid var(--rl-rule-strong); border-radius: 12px; background: var(--rl-surface-solid); overflow: hidden; font-size: 13px; box-shadow: 0 18px 50px rgba(0,0,0,.18); }
.rl-panel-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 16px; border-bottom: 1px solid var(--rl-rule); font-family: var(--rl-font-display); font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--rl-muted); }
.rl-panel-bar b { color: var(--rl-ink); font-weight: 700; }
.rl-panel-tag { padding: 3px 8px; border: 1px solid var(--rl-rule-strong); border-radius: 4px; font-size: 10px; white-space: nowrap; }
.rl-panel-body { padding: 16px; overflow-x: auto; }
.rl-panel table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.rl-panel th, .rl-panel td { text-align: left; padding: 9px 10px; border-bottom: 1px solid var(--rl-rule); vertical-align: top; }
.rl-panel th { font-family: var(--rl-font-display); font-size: 10px; letter-spacing: 1.8px; text-transform: uppercase; color: var(--rl-muted); font-weight: 700; }
.rl-panel .rl-mono { font-family: var(--rl-font-mono); font-size: 12px; }
.rl-chip { display: inline-block; padding: 2px 8px; border-radius: 999px; font-family: var(--rl-font-display); font-size: 10px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; border: 1px solid currentColor; white-space: nowrap; }
.rl-chip-ok { color: #3fa37a; }
.rl-chip-warn { color: var(--rl-gold); }
.rl-chip-bad { color: var(--rl-danger); }
.rl-chip-muted { color: var(--rl-muted); }
.rl-panel-note { padding: 10px 16px; border-top: 1px solid var(--rl-rule); font-size: 12px; color: var(--rl-muted); }
.rl-limits li::marker { content: "\00D7  "; color: var(--rl-gold); }
.rl-hitl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 28px 0 0; list-style: none; padding: 0; }
.rl-hitl li { padding: 22px; border: 1px solid var(--rl-rule); border-radius: 12px; background: var(--rl-surface); display: grid; gap: 8px; align-content: start; }
.rl-hitl h3 { font-size: 17px; text-transform: uppercase; letter-spacing: 1px; }
.rl-hitl p { font-size: 13px; line-height: 1.7; }
.rl-hitl .rl-step-n { color: var(--rl-gold); font-family: var(--rl-font-display); font-weight: 800; font-size: 13px; letter-spacing: 3px; }
@media (max-width: 900px) { .rl-hitl { grid-template-columns: 1fr; } }
.rl-journey-more { margin-top: 28px; text-align: center; }
.rl-panel td.rl-mono { white-space: nowrap; }
.rl-prose ol + p { margin-top: 14px; }

/* ── domains: who we serve, one engine many rulebooks ─────────────────── */
.rl-dcards { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.rl-dcard { display: grid; gap: 8px; align-content: start; height: 100%; padding: 20px 22px; border: 1px solid var(--rl-rule); border-radius: 10px; background: var(--rl-surface); text-decoration: none; color: var(--rl-text); transition: border-color .25s, transform .25s; }
.rl-dcard:hover { border-color: rgba(200,151,58,.55); transform: translateY(-2px); }
.rl-dcard .rl-chip { justify-self: start; }
.rl-dcard strong { font-family: var(--rl-font-display); font-size: 17px; font-weight: 700; letter-spacing: .5px; color: var(--rl-ink); }
.rl-dcard span:last-child { font-size: 13px; line-height: 1.6; }
.rl-d-opening { border-style: dashed; }
.rl-d-opening strong { color: var(--rl-text); }
.rl-dcard span:last-child, .rl-lcard span:last-child, .rl-pcard span:last-child, .rl-related span:last-child { color: var(--rl-text); }
.rl-lede-call { color: var(--rl-ink); margin-top: -4px; }
.rl-j-replaces { margin: 2px 0 0; font-family: var(--rl-font-display); font-size: 11px; font-weight: 600; letter-spacing: .6px; color: var(--rl-text); }
.rl-j-replaces span { display: inline-block; margin-right: 6px; padding: 1px 6px; border: 1px solid rgba(200,151,58,.5); border-radius: 4px; font-size: 9px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--rl-gold); }

/* ── Kintsugi band: assemble the mark to reveal the philosophy ─────────── */
.rl-k-inner { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; }
.rl-k-inner .rl-eyebrow { justify-content: center; }
.rl-k-instruction { margin: 10px 0 0; font-family: var(--rl-font-display); font-size: 12px; font-weight: 600; letter-spacing: 4px; text-transform: uppercase; color: var(--rl-gold); transition: opacity .8s; }
.rl-k-instruction.hidden { opacity: 0; }
.rl-k-puzzle { position: relative; width: 320px; height: 320px; max-width: 100%; margin: 18px auto 96px; }
.rl-k-target { --k-a: calc(.3 + var(--k-progress, 0) * .5); position: absolute; top: 50%; left: 50%; width: 240px; height: 240px; transform: translate(-50%, -50%); border-radius: 50%; border: 1.5px dashed rgba(200,151,58,var(--k-a)); box-shadow: inset 0 0 40px rgba(200,151,58,.04); transition: border-color .5s, box-shadow .6s; }
.rl-k-target.rl-k-glow-on { border-color: rgba(200,151,58,.5); box-shadow: inset 0 0 50px rgba(200,151,58,.08), 0 0 40px rgba(200,151,58,.15); }
.rl-k-target.complete { border-color: transparent; box-shadow: 0 0 80px rgba(200,151,58,.4), 0 0 160px rgba(200,151,58,.15); }
.rl-k-ghost, .rl-k-logo { position: absolute; top: 50%; left: 50%; width: 220px; height: auto; transform: translate(-50%, -50%); pointer-events: none; }
.rl-k-ghost { opacity: .08; filter: grayscale(1) brightness(1.5); transition: opacity 1s; z-index: 1; }
.rl-k-ghost.hidden { opacity: 0; }
.rl-k-logo { opacity: 0; z-index: 5; }
.rl-k-piece { position: absolute; height: auto; cursor: pointer; z-index: 10; touch-action: none; filter: brightness(.85) saturate(.7) drop-shadow(0 0 12px rgba(200,151,58,.3)); transition: filter .4s; animation: rl-k-hint 2.5s ease-in-out infinite; }
.rl-k-piece:hover { filter: brightness(1) saturate(1) drop-shadow(0 0 20px rgba(200,151,58,.5)); }
.rl-k-piece.near { filter: brightness(1.1) drop-shadow(0 0 24px rgba(200,151,58,.7)); }
.rl-k-piece.snapped { cursor: default; animation: none; filter: brightness(1) saturate(1) drop-shadow(0 0 8px rgba(200,151,58,.2)); }
@keyframes rl-k-hint { 0%, 100% { filter: brightness(.85) saturate(.7) drop-shadow(0 0 12px rgba(200,151,58,.3)); } 50% { filter: brightness(1) saturate(.8) drop-shadow(0 0 18px rgba(200,151,58,.5)); } }
.rl-k-glow { position: absolute; top: 50%; left: 50%; width: 300px; height: 300px; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(circle, rgba(200,151,58,.25) 0%, transparent 70%); opacity: 0; transition: opacity 1.5s; pointer-events: none; }
.rl-k-glow.active { opacity: 1; }
.rl-k-sparks { position: absolute; left: 50%; top: 50%; width: 0; height: 0; pointer-events: none; z-index: 60; }
.rl-k-spark { position: absolute; border-radius: 50%; background: var(--rl-gold); box-shadow: 0 0 6px var(--rl-gold); }
.rl-k-skip { background: none; border: 1px solid var(--rl-rule-strong); color: var(--rl-muted); font: 600 11px/1 var(--rl-font-display); letter-spacing: 1.5px; text-transform: uppercase; padding: 9px 14px; border-radius: 4px; cursor: pointer; }
.rl-k-skip:hover, .rl-k-skip:focus-visible { border-color: var(--rl-gold); color: var(--rl-gold); }
.rl-k-reveal { max-width: 640px; display: grid; gap: 16px; opacity: 0; transform: translateY(24px); transition: opacity 1.2s ease, transform 1.2s ease; }
.rl-k-reveal.visible { opacity: 1; transform: none; }
.rl-k-reveal p { font-size: 16px; line-height: 1.8; }
.rl-k-quote { font-family: var(--rl-font-display); font-size: 26px !important; font-style: italic; font-weight: 300; line-height: 1.4 !important; color: var(--rl-ink); }
.rl-k-reveal:focus { outline: none; }
@media (max-width: 420px) { .rl-k-puzzle { width: 280px; height: 280px; } .rl-k-target { width: 200px; height: 200px; } .rl-k-ghost, .rl-k-logo { width: 190px; } }
@media (prefers-reduced-motion: reduce) { .rl-k-piece { animation: none; } .rl-k-reveal { transition: none; } }
.rl-k-reveal[hidden] { display: none; }
.rl-k-piece:focus-visible { outline: 2px solid var(--rl-gold); outline-offset: 4px; border-radius: 8px; }
.rl-k-piece.rl-k-seam { filter: brightness(1.35) saturate(1.2) drop-shadow(0 0 22px rgba(232,190,100,.95)) !important; }
.rl-k-progress { margin: 0; font-family: var(--rl-font-display); font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--rl-muted); }
.rl-k-ring { position: absolute; top: 50%; left: 50%; width: 240px; height: 240px; transform: translate(-50%, -50%) scale(1); border-radius: 50%; border: 2px solid rgba(200,151,58,.8); opacity: 0; pointer-events: none; }
.rl-k-ring.go { animation: rl-k-ring 1.6s cubic-bezier(.2,.6,.35,1) forwards; }
@keyframes rl-k-ring { 0% { opacity: .9; transform: translate(-50%, -50%) scale(1); } 100% { opacity: 0; transform: translate(-50%, -50%) scale(2.2); } }
@media (prefers-reduced-motion: reduce) { .rl-k-ring.go { animation: none; } }


/* ── the regulator's read: weather, peers, reputation ─────────────────── */
.rl-read { margin: 22px 0 6px; display: grid; gap: 14px; }
.rl-read-h { margin: 0; font-family: var(--rl-font-display); font-size: clamp(22px, 2.6vw, 30px); font-weight: 700; letter-spacing: .3px; line-height: 1.2; color: var(--rl-ink); }
.rl-read-tiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.rl-read-tiles a { position: relative; display: grid; gap: 8px; height: 100%; padding: 20px 20px 22px; border: 1px solid rgba(200,151,58,.35); border-radius: 10px; background: linear-gradient(160deg, rgba(200,151,58,.10), var(--rl-surface) 65%); text-decoration: none; color: var(--rl-text); transition: transform .25s, border-color .25s, box-shadow .25s; }
.rl-read-tiles a::before { content: ""; position: absolute; top: 0; left: 18px; right: 18px; height: 2px; background: linear-gradient(90deg, var(--rl-gold), transparent); }
.rl-read-tiles a:hover, .rl-read-tiles a:focus-visible { transform: translateY(-3px); border-color: var(--rl-gold); box-shadow: 0 10px 30px rgba(200,151,58,.15); }
.rl-read-k { font-family: var(--rl-font-display); font-size: 15px; font-weight: 800; letter-spacing: 2.5px; text-transform: uppercase; color: var(--rl-gold); }
.rl-read-v { font-size: 14px; line-height: 1.6; color: var(--rl-text); }
.rl-read-foot { margin: 0; font-family: var(--rl-font-display); font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--rl-muted); }
@media (max-width: 760px) { .rl-read-tiles { grid-template-columns: 1fr; } }

/* ── privacy choices prompt (EU/EEA/UK/CH only; see assets/js/consent.js) ─ */
.rl-consent { position: fixed; left: 16px; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 200; max-width: 720px; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; padding: 16px 18px; background: var(--rl-surface-solid); border: 1px solid var(--rl-rule-strong); border-radius: 10px; box-shadow: 0 18px 50px rgba(0,0,0,.35); }
.rl-consent p { flex: 1 1 320px; margin: 0; font-size: 13px; line-height: 1.6; color: var(--rl-text); }
.rl-consent-actions { display: flex; gap: 10px; }
.rl-consent .rl-btn { padding: 9px 16px; font-size: 11px; }
.rl-copy a { color: inherit; }

/* Journey, 2026-09-27 notes: the rows line up across all six columns (subgrid); "Replaces" is a filled gold tag on its own line. */
.rl-journey { grid-template-rows: repeat(5, auto); row-gap: 10px; }
.rl-journey > li { grid-row: span 5; grid-template-rows: subgrid; gap: 0; row-gap: 10px; }
.rl-journey > li > h3 { align-self: end; }
.rl-j-replaces { display: grid; justify-items: center; align-content: start; gap: 6px; font-family: var(--rl-font-body); font-size: 13px; line-height: 1.45; letter-spacing: 0; max-width: 180px; }
.rl-j-replaces span { margin: 0; padding: 3px 9px; line-height: 1.3; align-self: center; font-family: var(--rl-font-display); font-size: 11px; letter-spacing: 1.2px; background: var(--rl-gold-lt); border-color: var(--rl-gold-lt); color: var(--rl-navy); font-weight: 700; }
.rl-j-replaces b { font-weight: 600; color: var(--rl-ink); }
.rl-journey-loop .rl-j-replaces { justify-items: start; max-width: none; grid-template-columns: auto 1fr; align-items: center; }
@media (max-width: 900px) {
  .rl-journey { grid-template-rows: none; row-gap: 0; }
  .rl-journey > li { grid-row: auto; grid-template-rows: none; column-gap: 22px; row-gap: 4px; }
  .rl-journey > li > h3 { align-self: start; }
  .rl-journey > li > .rl-j-n { grid-row: span 4; }
  .rl-j-replaces { justify-items: start; max-width: none; grid-template-columns: auto 1fr; align-items: center; }
}
