/* The license page of the main site. One idea: the work is guarded. The owl keeps watch at night; a seal that carries
   the true fingerprint of LICENSE.txt is pressed into the page and checked live. Then: what you may and may not do,
   questions, how to report misuse, and the agreement in full on a calm, solid sheet with a note beside each section.
   The legal text and the index come from LICENSE.txt through assets/js/license-build.mjs (never typed by hand).
   Colours come from tokens.css; this file adds a few of its own, each mixed from those tokens. */

/* ------------------------------------------------------------------------------------------------------------
   TEMPORARY TYPE TOKENS. The site-wide type pair is being chosen and will arrive as main\assets\css\type.css
   (--font-display, --font-text, --font-mono and a type scale). Until it is linked, these three hold the dark
   site's present faces. When type.css is linked on this page, delete this block: no other line of this file names
   a family. */
:root {
}
/* ------------------------------------------------------------------------------------------------------------ */

:root {
  --lx-sheet: var(--color-surface);                                             /* the solid ground of the agreement */
  --lx-sheet-edge: var(--color-line-strong);
  --lx-read-ink: color-mix(in srgb, var(--color-ink) 58%, var(--color-ink-muted)); /* long text: bright, not glaring */
  --lx-lantern: var(--color-marigold);                                          /* the plain-words voice */
  --lx-lantern-ink: color-mix(in srgb, var(--color-marigold) 24%, var(--color-ink));
  --lx-lantern-dim: color-mix(in srgb, var(--color-marigold) 70%, var(--color-ink-muted));
  --lx-thread: var(--color-moon);                                               /* the river on the chart */
  --lx-thread-bed: color-mix(in srgb, var(--color-moon) 44%, var(--color-bg));   /* 3.39 to 1 on the ground: the unread river is a graphic that carries meaning (UI law, 3 to 1) */
  --lx-halo: color-mix(in srgb, var(--color-marigold) 30%, transparent);
  --lx-read-size: 1.125rem;
  --lx-leading: 1.72;
  --lx-measure: 33rem;                         /* 60 to 75 characters of the text face at the reading size */
  --lx-pad: 4.25rem;                           /* the sheet's side margin: the section numbers hang in it */
  --lx-col-a: 20rem;
  --lx-col-b: calc(var(--lx-measure) + 2 * var(--lx-pad));
  --lx-arch-w: 20rem;
  --lx-river-w: 3.75rem;
  --lx-hero-pad-b: clamp(2rem, 5.4svh, 4.5rem);
  --lx-stick: calc(var(--header-h) + 1.25rem);
}
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

.lx { position: relative; padding-top: var(--header-h); font-family: var(--font-text); }
.lx-wrap { width: min(100% - 2 * var(--gutter), 102rem); margin-inline: auto; container: lx / inline-size; }
.lx-defs { position: absolute; }
.lx-stop-core { stop-color: var(--color-ink); }
.lx-stop-mid { stop-color: var(--color-marigold); }
.lx-stop-edge { stop-color: var(--color-coral); }
.lx-lamp__line { fill: none; stroke: var(--lx-lantern-dim); stroke-width: 1.2; stroke-linecap: round; }
.lx-lamp__cap { fill: var(--lx-lantern-dim); }
.lx-lamp__rib { fill: none; stroke: var(--color-ink-on-bright); stroke-width: 0.7; opacity: 0.32; }

/* ================================================================== the first screen: the guardian and the seal */
/* Left, the owl keeps watch over the river at night (the arch window). Middle, what the license is, in one line.
   Right, the seal of Stryx Labs, pressed in as the page arrives; under it, the true fingerprint of LICENSE.txt. */
.lx-hero { position: relative; display: grid; min-height: calc(100svh - var(--header-h)); padding-block: clamp(1.25rem, 3.6svh, 3.5rem) var(--lx-hero-pad-b); }
.lx-hero > .lx-wrap { display: grid; }
.lx-hero__grid { position: relative; display: grid; grid-template-columns: var(--lx-arch-w) minmax(0, 1fr) var(--lx-seal-w); grid-template-rows: minmax(0, 1fr); column-gap: clamp(2rem, 4.2cqi, 5.5rem); align-items: center; --lx-arch-w: clamp(16rem, 25cqi, 30rem); --lx-seal-w: clamp(16rem, 23cqi, 28rem); }
/* the bank: one waterline under the window, the words and the seal */
.lx-hero__grid::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--gradient-brand); opacity: 0.7; }

.lx-arch { position: relative; grid-row: 1; align-self: end; height: 100%; min-height: 27rem; max-height: 52rem; }
.lx-arch__slot { position: absolute; inset: 0; border-radius: calc(var(--lx-arch-w) / 2) calc(var(--lx-arch-w) / 2) 0 0; border: 1px solid var(--color-glass-line); border-bottom: 0; }
.lx-arch .slot__pause { left: var(--space-4); right: auto; }
.lx-arch__say { position: absolute; left: var(--space-3); right: var(--space-3); bottom: var(--space-3); z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); margin: 0; padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--color-scrim-strong); border: 1px solid var(--color-glass-line); font-size: var(--text-xs); line-height: 1.5; color: var(--color-ink); }
.lx-arch__say[hidden] { display: none; }
.lx-arch__say button { min-height: 2.75rem; padding: 0 var(--space-4); border-radius: var(--radius-pill); background: var(--color-marigold); color: var(--color-ink-on-bright); font-weight: 700; font-size: var(--text-sm); transition: transform var(--duration-fast) var(--ease-premium), box-shadow var(--duration-normal) var(--ease-premium); }
.lx-arch__say button:hover { box-shadow: 0 8px 24px var(--lx-halo); }
.lx-arch__say button:active { transform: scale(0.97); }

.lx-hero__text { display: grid; gap: clamp(1rem, 2.6svh, 1.75rem); align-content: center; justify-items: start; padding-block: clamp(1rem, 4svh, 3rem); }
.lx-kicker { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5em; }
.lx-kicker::before { content: ""; width: 2.25rem; height: 2px; border-radius: 2px; margin-right: 0.35em; background: var(--lx-thread); }
.lx-force { display: inline-flex; align-items: center; gap: 0.55em; margin-left: 0.4em; padding: 0.3em 0.8em; border: 1px solid color-mix(in srgb, var(--color-success) 55%, transparent); border-radius: var(--radius-pill); color: var(--color-success); letter-spacing: 0.14em; }
.lx-force__dot { width: 0.5em; height: 0.5em; border-radius: 50%; background: var(--color-success); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-success) 22%, transparent); }
.lx-hero h1 { font-size: clamp(2.8rem, min(5.6cqi, 9.4svh), 6.4rem); line-height: 0.98; letter-spacing: -0.016em; }
.lx-hero h1 em { color: var(--lx-thread); }
.lx-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.lx-btn-file:hover svg, .lx-close .btn:hover svg { transform: none; }

/* the statement: framed, on a solid ground, marked as a summary */
.lx-pledge { position: relative; display: grid; gap: var(--space-3); max-width: 46rem; padding: clamp(1.25rem, 2.6svh, 1.75rem) clamp(1.25rem, 2cqi, 2rem); border: 1px solid color-mix(in srgb, var(--color-marigold) 38%, var(--color-line)); border-radius: var(--radius-lg); background: var(--color-surface); }
.lx-pledge::before { content: ""; position: absolute; left: -1px; top: 1.25rem; bottom: 1.25rem; width: 3px; border-radius: 0 3px 3px 0; background: var(--color-marigold); }
.lx-pledge__tag, .lx-sechead__note { display: block; line-height: 1.9; font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--lx-lantern); }
.lx-pledge__tag svg, .lx-sechead__note svg { display: inline-block; width: 0.7rem; height: 1.3rem; margin-right: 0.6em; vertical-align: -0.35em; overflow: visible; }
.lx-pledge__tag .lx-prov, .lx-sechead__note .lx-prov { margin-left: 0.5em; vertical-align: 0.05em; }
.lx-pledge__say { font-family: var(--font-display); font-size: clamp(1.35rem, min(1.85cqi, 3.4svh), 2.15rem); line-height: 1.3; color: var(--color-ink); text-wrap: pretty; }
.lx-pledge__foot { font-size: var(--text-sm); line-height: 1.6; color: var(--color-ink-muted); }
.lx-ref { display: inline-flex; align-items: center; gap: 0.4em; font-weight: 700; letter-spacing: 0.02em; color: var(--lx-lantern); white-space: nowrap; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; transition: color var(--duration-fast) var(--ease-premium), text-decoration-color var(--duration-fast) var(--ease-premium); }
.lx-ref svg { width: 0.85em; height: 0.85em; transition: transform var(--duration-normal) var(--ease-premium); }
.lx-ref:hover { color: var(--color-ink); text-decoration-color: var(--color-ink); }
.lx-ref:hover svg { transform: translateX(3px); }
.lx-ref:active svg { transform: translateX(5px); }

/* ---------- the seal */
.lx-seal { display: grid; justify-items: center; gap: clamp(1rem, 2.6svh, 1.75rem); margin: 0; }
.lx-seal__press { position: relative; width: 100%; aspect-ratio: 1; }
/* its warm light on the night: a fixed soft disc behind it */
.lx-seal__press::before { content: ""; position: absolute; inset: -14%; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--color-marigold) 20%, transparent), color-mix(in srgb, var(--color-coral) 7%, transparent) 60%, transparent); pointer-events: none; }
/* the ring of the press: shown once, as the seal lands */
.lx-seal__press::after { content: ""; position: absolute; inset: 1%; border-radius: 50%; border: 2px solid var(--color-marigold); opacity: 0; pointer-events: none; }
.lx-seal__disc { position: relative; display: block; width: 100%; height: 100%; overflow: visible; filter: drop-shadow(0 1.4rem 2rem var(--color-shadow)); }
.lx-seal__rim { fill: none; stroke: url(#lx-seal-foil); stroke-width: 9; stroke-dasharray: 3.1 4.4; }
.lx-seal__wax { fill: url(#lx-seal-wax); stroke: url(#lx-seal-foil); stroke-width: 1.2; }
.lx-seal-stop-a { stop-color: var(--color-surface-2); }
.lx-seal-stop-b { stop-color: var(--color-plum); }
.lx-seal-stop-c { stop-color: var(--color-bg-deep); }
.lx-foil-a { stop-color: color-mix(in srgb, var(--color-marigold) 45%, var(--color-ink)); }
.lx-foil-b { stop-color: var(--color-marigold); }
.lx-foil-c { stop-color: color-mix(in srgb, var(--color-marigold) 62%, var(--color-coral)); }
.lx-seal__ink { fill: url(#lx-seal-foil); stroke: url(#lx-seal-foil); }
.lx-seal__shade { fill: var(--color-bg-deep); stroke: var(--color-bg-deep); opacity: 0.85; }
.lx-seal__lit { fill: var(--color-ink); stroke: var(--color-ink); opacity: 0.28; }
.lx-seal__ringtext { font-family: var(--font-text); font-size: 18.5px; font-weight: 700; letter-spacing: 0.16em; stroke: none; }
.lx-seal__year { font-family: var(--font-display); font-size: 21px; letter-spacing: 0.24em; stroke: none; }
.lx-seal__cap { display: grid; justify-items: center; gap: 0.4rem; max-width: 24rem; text-align: center; }
.lx-seal__lab { font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--lx-lantern); }
.lx-seal__sha { font-size: var(--text-sm); line-height: 1.55; letter-spacing: 0.08em; word-spacing: 0.2em; color: var(--color-ink); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.lx-seal__alg { font-weight: 700; color: var(--color-ink-dim); letter-spacing: 0.12em; }
.lx-seal__meta { font-size: var(--text-xs); letter-spacing: 0.06em; color: var(--color-ink-dim); }
.lx-seal__check { display: inline-flex; align-items: center; gap: 0.5em; margin-top: 0.2rem; font-size: var(--text-sm); font-weight: 700; color: var(--color-ink-muted); }
.lx-seal__ok { width: 1rem; height: 1rem; flex: none; opacity: 0; transition: opacity var(--duration-slow) var(--ease-premium); }
.lx-seal__check[data-state="ok"] { color: var(--color-success); }
.lx-seal__check[data-state="ok"] .lx-seal__ok { opacity: 1; }
.lx-seal__check[data-state="bad"] { color: var(--color-error); }

/* the arrival: the words rise (shared), then the seal is pressed in, once */
.js .lx-hero__grid:not(.is-arrived) .lx-seal__press { opacity: 0; }
.js .lx-hero__grid.is-arrived .lx-seal__press { animation: lx-press 1100ms var(--ease-premium) 520ms both; }
.js .lx-hero__grid.is-arrived .lx-seal__press::after { animation: lx-ring 1300ms cubic-bezier(0.2, 0.7, 0.3, 1) 1060ms both; }
.js .lx-hero__grid:not(.is-arrived) .lx-seal__cap { opacity: 0; }
.js .lx-hero__grid.is-arrived .lx-seal__cap { animation: lx-fade 700ms var(--ease-premium) 1250ms both; }
@keyframes lx-press { 0% { opacity: 0; transform: scale(1.16) rotate(-8deg); } 58% { opacity: 1; transform: scale(0.985) rotate(0deg); } 100% { opacity: 1; transform: none; } }
@keyframes lx-ring { from { opacity: 0.6; transform: scale(0.97); } to { opacity: 0; transform: scale(1.3); } }
@keyframes lx-fade { from { opacity: 0; } to { opacity: 1; } }

/* summaries hidden while they are rewritten for a new version of the text (license-build.mjs --summaries-pending) */
.lx-pending-note { display: none; }
.lx[data-summaries="pending"] .lx-pending-note { display: flex; gap: 0.75em; align-items: center; width: min(100% - 2 * var(--gutter), 60rem); margin: var(--space-7) auto 0; padding: var(--space-4) var(--space-5); border: 1px solid var(--lx-lantern-dim); border-radius: var(--radius-md); font-size: var(--text-base); color: var(--lx-lantern-ink); }
.lx-pending-note svg { width: 0.8rem; height: 1.4rem; flex: none; overflow: visible; }
.lx[data-summaries="pending"] :is(.lx-summary, .lx-pledge, .lx-gloss, .lx-prov-line) { display: none; }

/* ================================================================== section heads (rights, questions, the agreement) */
.lx-sechead { display: grid; gap: var(--space-4); max-width: 62rem; margin-bottom: clamp(2.25rem, 6svh, 4rem); }
.lx-sechead h2, .lx-readhead h2 { font-size: var(--text-3xl); line-height: 1.02; letter-spacing: -0.01em; }
.lx-sechead h2 em, .lx-readhead h2 em { color: var(--lx-thread); }
.lx-sechead__note { font-weight: 700; }
.lx-sechead__note > span:not(.lx-prov) { letter-spacing: 0.04em; text-transform: none; font-size: var(--text-sm); color: var(--lx-lantern-ink); font-weight: 400; }

/* ================================================================== you may / you may not */
.lx-rights { padding-block: clamp(4.5rem, 12svh, 8.5rem) clamp(4rem, 10svh, 7rem); }
.lx-led { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(2rem, 5cqi, 6rem); row-gap: var(--space-8); align-items: start; }
.lx-led__col--may { --led: var(--color-success); }
.lx-led__col--not { --led: var(--color-error); }
.lx-led__head { display: flex; align-items: center; gap: 0.85rem; padding-bottom: var(--space-4); border-bottom: 2px solid var(--led); font-family: var(--font-display); font-size: var(--text-2xl); font-weight: 400; line-height: 1.1; color: var(--color-ink); }
.lx-led__badge { display: inline-grid; place-items: center; width: 2.6rem; height: 2.6rem; flex: none; border: 1.5px solid var(--led); border-radius: 50%; color: var(--led); }
.lx-led__badge svg { width: 1.1rem; height: 1.1rem; }
.lx-led__list { display: grid; }
.lx-led__row { display: grid; grid-template-columns: 1.6rem minmax(0, 1fr) auto; column-gap: var(--space-4); row-gap: var(--space-2); align-items: baseline; padding: 1.05rem 0; border-bottom: 1px solid var(--color-line); }
.lx-led__mk { color: var(--led); }
.lx-led__mk svg { width: 1rem; height: 1rem; transform: translateY(0.12em); }
.lx-led__text { font-size: var(--text-lg); line-height: 1.42; color: var(--color-ink); text-wrap: pretty; }
.lx-led__refs { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--space-2); }
.lx-chip { display: inline-flex; align-items: center; min-height: 2rem; padding: 0 0.75em; border: 1px solid var(--color-control-line); border-radius: var(--radius-pill); font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.06em; line-height: 1.2; color: var(--color-ink-muted); white-space: nowrap; transition: color var(--duration-fast) var(--ease-premium), border-color var(--duration-fast) var(--ease-premium), background-color var(--duration-fast) var(--ease-premium); }
a.lx-chip:hover { color: var(--color-ink); border-color: var(--color-ink); background: color-mix(in srgb, var(--color-moon) 8%, transparent); }
a.lx-chip:active { background: color-mix(in srgb, var(--color-moon) 14%, transparent); }
.lx-chip--next { border-style: dashed; border-color: var(--lx-lantern-dim); color: var(--lx-lantern); white-space: normal; letter-spacing: 0.04em; }
.lx-led__nexthead { margin-top: var(--space-6); padding-bottom: var(--space-2); font-size: var(--text-sm); line-height: 1.5; color: var(--lx-lantern-ink); border-bottom: 1px dashed var(--lx-lantern-dim); }
.lx-led__row--next { grid-template-columns: 1.6rem minmax(0, 1fr); border-bottom-style: dashed; }
.lx-led__row--next .lx-led__refs { grid-column: 2; justify-content: flex-start; }
.lx-led__row--next .lx-led__text { color: var(--color-ink-muted); }
.lx-led__row--next .lx-led__mk { color: var(--lx-lantern-dim); }

/* ================================================================== questions */
.lx-faq { padding-block: clamp(4rem, 10svh, 7rem); border-top: 1px solid var(--color-line); }
.lx-faq__grid { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.5fr); column-gap: clamp(2rem, 6cqi, 7rem); align-items: start; }
.lx-sechead--side { position: sticky; top: var(--lx-stick); margin-bottom: 0; }
.lx-faq__list { border-top: 1px solid var(--color-line-strong); }
.lx-faq__item { border-bottom: 1px solid var(--color-line-strong); }
.lx-faq__item summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--space-5); min-height: 3rem; padding: 1.35rem 0.25rem 1.35rem 0; cursor: pointer; list-style: none; border-radius: var(--radius-sm); }
.lx-faq__item summary::-webkit-details-marker { display: none; }
.lx-faq__q { font-family: var(--font-display); font-size: clamp(1.4rem, 1.7cqi, 2rem); line-height: 1.2; color: var(--color-ink); transition: color var(--duration-fast) var(--ease-premium); }
.lx-faq__icon { width: 1.25rem; height: 1.25rem; color: var(--color-ink-muted); transition: transform var(--duration-normal) var(--ease-premium), color var(--duration-fast) var(--ease-premium); }
.lx-faq__item summary:hover .lx-faq__q { color: var(--lx-thread); }
.lx-faq__item summary:hover .lx-faq__icon { color: var(--color-ink); }
.lx-faq__item[open] .lx-faq__icon { transform: rotate(45deg); }
.lx-faq__a { display: grid; gap: var(--space-3); max-width: 48rem; padding: 0 0 1.75rem; font-size: var(--text-lg); line-height: 1.62; color: var(--color-ink-muted); }
.lx-faq__a p { text-wrap: pretty; }
.lx-faq__next { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5em 0.75em; font-size: var(--text-sm); line-height: 1.55; color: var(--lx-lantern-ink); }

/* ================================================================== report misuse */
.lx-report { position: relative; padding-block: clamp(4.5rem, 12svh, 8.5rem); border-block: 1px solid var(--color-line-strong); background: radial-gradient(ellipse 70% 120% at 8% 0%, color-mix(in srgb, var(--color-plum) 85%, transparent), transparent 70%), var(--color-bg-deep); }
.lx-report__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); column-gap: clamp(2rem, 6cqi, 7rem); row-gap: var(--space-7); align-items: end; }
.lx-report__say { display: grid; gap: var(--space-4); }
.lx-report__label { display: inline-flex; align-items: center; gap: 0.6em; color: var(--color-coral); }
.lx-report__label svg { width: 1rem; height: 1rem; }
.lx-report h2 { font-size: var(--text-hero-2); line-height: 0.98; letter-spacing: -0.014em; }
.lx-report h2 em { color: var(--color-marigold); }
.lx-report .lede { max-width: 38rem; }
.lx-report__act { display: grid; gap: var(--space-3); justify-items: start; }
.lx-report__mail { display: inline-flex; align-items: center; gap: 0.45em; min-height: 3rem; font-family: var(--font-display); font-size: clamp(1.8rem, 3cqi, 3.2rem); line-height: 1.1; color: var(--color-ink); text-decoration: underline; text-decoration-color: var(--color-control-line); text-decoration-thickness: 1px; text-underline-offset: 0.2em; transition: text-decoration-color var(--duration-fast) var(--ease-premium), color var(--duration-fast) var(--ease-premium); }
.lx-report__mail svg { width: 0.55em; height: 0.55em; transition: transform var(--duration-normal) var(--ease-premium); }
.lx-report__mail:hover { text-decoration-color: var(--color-marigold); }
.lx-report__mail:hover svg { transform: translateX(4px); }
.lx-report__mail:active { color: var(--color-marigold); }
.lx-report__helps { margin-top: var(--space-3); font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-ink-dim); }
.lx-report__list { display: grid; grid-template-columns: repeat(2, minmax(0, auto)); gap: var(--space-2) var(--space-7); counter-reset: lx-r; font-size: var(--text-base); color: var(--color-ink-muted); }
.lx-report__list li { counter-increment: lx-r; display: flex; gap: 0.6em; align-items: baseline; }
.lx-report__list li::before { content: counter(lx-r); font-family: var(--font-display); color: var(--color-marigold); }
.lx-report__ref { margin-top: var(--space-2); font-size: var(--text-sm); color: var(--color-ink-dim); }

/* ================================================================== the head of the agreement */
.lx-readhead { display: grid; gap: var(--space-4); max-width: 54rem; margin-left: calc(var(--lx-col-a) + clamp(2rem, 4cqi, 4rem)); padding-block: clamp(4.5rem, 12svh, 8rem) clamp(2rem, 5svh, 3.5rem); }
.lx-readhead p:not(.label) { font-size: var(--text-lg); line-height: 1.55; color: var(--color-ink-muted); max-width: 46rem; }
.lx-tagword { font-weight: 700; color: var(--lx-lantern); white-space: nowrap; }

/* ================================================================== the reading: index, sheet, notes */
.lx-read { position: relative; padding-bottom: clamp(4rem, 10svh, 7rem); }
.lx-read__grid { display: grid; grid-template-columns: var(--lx-col-a) minmax(0, 1fr); column-gap: clamp(2rem, 4cqi, 4rem); align-items: start; }
.lx-jump { display: none; }

/* ---------- the index: a chart of the river, thirteen marks */
.lx-index { position: sticky; top: var(--lx-stick); display: grid; gap: var(--space-4); align-self: start; }
.lx-index__title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.lx-chart { --row: clamp(2.2rem, calc((100svh - var(--header-h) - 8.5rem) / var(--count, 13)), 3.05rem); position: relative; }
.lx-river { position: absolute; left: 0; top: 0; width: var(--lx-river-w); height: calc(var(--row) * var(--count, 13)); overflow: visible; pointer-events: none; }
.lx-river path { fill: none; vector-effect: non-scaling-stroke; stroke-linecap: round; stroke-linejoin: round; }
.lx-river--bed path { stroke: var(--lx-thread-bed); }
.lx-river--bed .lx-river__main { stroke-width: 2px; }
.lx-river--bed .lx-river__strand, .lx-river--bed .lx-river__trib { stroke-width: 1.5px; opacity: 0.75; }
/* the lit river is uncovered as far as the reader has come: a window slides down and the river in it slides back
   by the same distance, so only two transforms change while scrolling and nothing is painted again */
.lx-river-lit { position: absolute; left: -2rem; top: 0; width: calc(var(--lx-river-w) + 4rem); height: calc(var(--row) * var(--count, 13)); overflow: hidden; pointer-events: none; transform: translateY(calc((var(--p) - 1) * 100%)); will-change: transform; }
.lx-river-lit .lx-river { left: 2rem; transform: translateY(calc((1 - var(--p)) * 100%)); will-change: transform; }
.lx-river--lit .lx-river__main { stroke: var(--lx-thread); stroke-width: 2.5px; }
.lx-river--lit .lx-river__strand, .lx-river--lit .lx-river__trib { stroke-width: 2px; }
.lx-river--lit .lx-river--mneme { stroke: var(--color-river-blue); }
.lx-river--lit .lx-river--skills { stroke: var(--color-river-mint); }
.lx-river--lit .lx-river--orion { stroke: var(--color-river-cyan); }
.lx-chart__list { position: relative; display: grid; grid-auto-rows: var(--row); }
.lx-chart__list li { position: relative; }
.lx-chart__list a { position: relative; display: grid; grid-template-columns: 1.9rem minmax(0, 1fr); align-items: center; height: 100%; padding: 0 var(--space-2) 0 var(--lx-river-w); border-radius: var(--radius-sm); font-size: var(--text-sm); line-height: 1.2; color: var(--color-ink-muted); transition: color var(--duration-fast) var(--ease-premium), background-color var(--duration-fast) var(--ease-premium); }
.lx-chart__list a::before { content: ""; position: absolute; left: calc(var(--x) * var(--lx-river-w)); top: 50%; width: 0.62rem; height: 0.62rem; margin: -0.31rem 0 0 -0.31rem; border-radius: 50%; border: 1.5px solid var(--color-control-line); background: var(--color-bg); transition: transform var(--duration-normal) var(--ease-premium), background-color var(--duration-normal) var(--ease-premium), border-color var(--duration-normal) var(--ease-premium); }
.lx-chart__list a::after { content: ""; position: absolute; left: calc(var(--x) * var(--lx-river-w)); top: 50%; width: 2.1rem; height: 2.1rem; margin: -1.05rem 0 0 -1.05rem; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--color-moon) 46%, transparent), transparent); opacity: 0; transform: scale(0.6); transition: opacity var(--duration-slow) var(--ease-premium), transform var(--duration-slow) var(--ease-premium); pointer-events: none; }
.lx-chart__n { font-family: var(--font-display); font-size: var(--text-base); color: var(--color-ink-dim); font-variant-numeric: tabular-nums; transition: color var(--duration-fast) var(--ease-premium); }
.lx-chart__t { text-wrap: balance; }
.lx-chart__list a:hover { color: var(--color-ink); background: color-mix(in srgb, var(--color-moon) 7%, transparent); }
.lx-chart__list a:active { background: color-mix(in srgb, var(--color-moon) 13%, transparent); }
.lx-chart__list a.is-past::before { background: var(--lx-thread); border-color: var(--lx-thread); }
.lx-chart__list a[aria-current]::before { background: var(--color-ink); border-color: var(--color-ink); transform: scale(1.35); }
.lx-chart__list a[aria-current]::after { opacity: 1; transform: none; }
.lx-chart__list a[aria-current] { color: var(--color-ink); font-weight: 700; }
.lx-chart__list a[aria-current] .lx-chart__n { color: var(--lx-thread); }
.lx-index__foot { display: grid; gap: var(--space-1); padding-left: var(--lx-river-w); font-size: var(--text-xs); letter-spacing: 0.04em; color: var(--color-ink-dim); }
.lx-filelink { display: inline-flex; align-items: center; gap: 0.5em; min-height: 2.5rem; justify-self: start; font-size: var(--text-sm); font-weight: 700; letter-spacing: 0; color: var(--color-ink-muted); text-decoration: underline; text-decoration-color: var(--color-control-line); text-underline-offset: 4px; transition: color var(--duration-fast) var(--ease-premium), text-decoration-color var(--duration-fast) var(--ease-premium); }
.lx-filelink svg { width: 1em; height: 1em; flex: none; }
.lx-filelink:hover { color: var(--color-ink); text-decoration-color: var(--color-ink); }

/* ---------- the sheet and the notes beside it */
.lx-doc { min-width: 0; }
.lx-clause { position: relative; display: grid; grid-template-columns: minmax(0, var(--lx-col-b)) minmax(0, 1fr); column-gap: clamp(1.75rem, 3.2cqi, 3.25rem); scroll-margin-top: 0; }   /* the shared page already keeps the header's height clear of a jump */
.lx-sheet { grid-column: 1; grid-row: 1; position: relative; min-width: 0; padding: clamp(2.4rem, 6svh, 3.4rem) var(--lx-pad) 0; background: var(--lx-sheet); border-inline: 1px solid var(--color-line); }
.lx-clause--mast .lx-sheet { padding-top: clamp(3rem, 8svh, 4.5rem); border-top: 1px solid var(--color-line); border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
.lx-clause--end .lx-sheet { padding-bottom: clamp(3rem, 8svh, 4.5rem); border-bottom: 1px solid var(--color-line); border-radius: 0 0 var(--radius-lg) var(--radius-lg); }
/* the rule of a section: a hairline across the sheet, and the river crossing it at the left */
.lx-clause[data-n] .lx-sheet::before, .lx-clause--end .lx-sheet::before { content: ""; position: absolute; left: var(--lx-pad); right: var(--lx-pad); top: 0; height: 1px; background: var(--color-line-strong); }
.lx-clause[data-n] .lx-sheet::after { content: ""; position: absolute; left: 0; top: -1px; width: calc(var(--lx-pad) + 3.5rem); height: 3px; border-radius: 0 3px 3px 0; background: linear-gradient(90deg, var(--lx-thread), color-mix(in srgb, var(--lx-thread) 0%, transparent)); transform-origin: 0 50%; }
html.lx-live .lx-clause[data-n] .lx-sheet::after { transform: scaleX(0); opacity: 0.4; }
html.lx-live .lx-clause[data-n].is-in .lx-sheet::after { transform: none; opacity: 1; transition: transform 1100ms var(--ease-premium), opacity 700ms var(--ease-premium); }

.lx-mast { display: grid; justify-items: center; gap: var(--space-2); padding-bottom: var(--space-6); text-align: center; }
.lx-mast__title { font-family: var(--font-display); font-size: clamp(1.5rem, 2.3cqi, 2.1rem); font-weight: 400; line-height: 1.15; letter-spacing: 0.09em; color: var(--color-ink); text-wrap: balance; }
.lx-mast__meta { font-size: var(--text-sm); letter-spacing: 0.12em; color: var(--color-ink-dim); }
.lx-mast::after { content: ""; width: 3.5rem; height: 1px; margin-top: var(--space-4); background: var(--lx-thread); }

.lx-head { position: relative; display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-5); }
.lx-head h3 { position: relative; font-family: var(--font-display); font-size: clamp(1.45rem, 2cqi, 1.8rem); font-weight: 400; line-height: 1.18; letter-spacing: 0.075em; color: var(--color-ink); text-wrap: balance; padding-top: 0.35rem; }
.lx-num { position: absolute; right: calc(100% + 1.1rem); top: 0; font-size: 1.5em; line-height: 1; letter-spacing: 0; color: var(--lx-thread); font-variant-numeric: lining-nums; white-space: nowrap; }
.lx-num--two { font-size: 1.2em; top: 0.14em; }      /* two figures: a little smaller, so a wide face still hangs inside the sheet */
html.lx-live .lx-clause[data-n] .lx-num { opacity: 0.35; }
html.lx-live .lx-clause[data-n].is-in .lx-num { opacity: 1; transition: opacity 900ms var(--ease-premium) 150ms; }
.lx-anchor { position: relative; flex: none; display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; margin-right: -0.75rem; border-radius: 50%; border: 1px solid transparent; color: var(--color-ink-dim); transition: color var(--duration-fast) var(--ease-premium), border-color var(--duration-fast) var(--ease-premium), background-color var(--duration-fast) var(--ease-premium), transform var(--duration-fast) var(--ease-premium); }
.lx-anchor svg { width: 1.05rem; height: 1.05rem; }
.lx-anchor:hover, .lx-anchor:focus-visible { color: var(--color-ink); border-color: var(--color-control-line); background: var(--color-surface-2); }
.lx-anchor:active { transform: scale(0.92); }
.lx-anchor__tip { position: absolute; right: calc(100% + 0.5rem); top: 50%; padding: 0.3rem 0.7rem; border-radius: var(--radius-pill); background: var(--color-ink); color: var(--color-ink-on-bright); font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.02em; white-space: nowrap; opacity: 0; transform: translate(6px, -50%); transition: opacity var(--duration-normal) var(--ease-premium), transform var(--duration-normal) var(--ease-premium); pointer-events: none; }
.lx-anchor.is-done { color: var(--color-success); border-color: var(--color-success); }
.lx-anchor.is-done .lx-anchor__tip { opacity: 1; transform: translate(0, -50%); }

/* the legal text itself */
.lx-body { font-family: var(--font-text); font-size: var(--lx-read-size); line-height: var(--lx-leading); color: var(--lx-read-ink); padding-bottom: clamp(2.4rem, 6svh, 3.4rem); hyphens: manual; font-variant-ligatures: common-ligatures; }
.lx-body p { text-wrap: pretty; }
.lx-body p + p, .lx-body ol + p, .lx-body p + ol { margin-top: 1.05em; }
.lx-body .lx-lead + ol { margin-top: 0.7em; }
.lx-def { text-indent: -0.42em; }
.lx-body dfn { font-style: normal; font-weight: 700; color: var(--color-ink); }
.lx-items { display: grid; gap: 0.6em; }
.lx-items li { position: relative; display: grid; grid-template-columns: 2.5em minmax(0, 1fr); border-radius: var(--radius-sm); scroll-margin-top: 2.5rem; }
.lx-mk { color: var(--color-ink-dim); font-variant-numeric: tabular-nums; }
/* capital-letter paragraphs keep their capitals: a little smaller, tracked and looser, so they stay readable */
.lx-caps { font-size: 0.86em; line-height: 1.86; letter-spacing: 0.052em; word-spacing: 0.08em; }
.lx-runin { font-size: 0.84em; font-weight: 700; letter-spacing: 0.085em; color: var(--color-ink); }
.lx-addr { padding-left: 2.5em; }
.lx-xref { color: var(--color-ink); text-decoration: underline; text-decoration-color: var(--color-control-line); text-decoration-thickness: 1px; text-underline-offset: 0.22em; transition: text-decoration-color var(--duration-fast) var(--ease-premium), color var(--duration-fast) var(--ease-premium); }
.lx-xref:hover { text-decoration-color: var(--color-ink); }
.lx-xref:active { color: var(--lx-thread); }
.lx-colophon { padding-top: clamp(2rem, 5svh, 2.75rem); padding-bottom: 0; font-size: var(--text-sm); color: var(--color-ink-muted); }
/* a clause that was linked to: the river marks it */
.lx-items li:target::before, .lx-clause:target .lx-head::before { content: ""; position: absolute; left: -1.1rem; top: 0.2em; bottom: 0.2em; width: 3px; border-radius: 3px; background: var(--lx-thread); }
.lx-items li:target .lx-mk { color: var(--lx-thread); }
.lx-clause:target .lx-head::before { left: calc(-1 * var(--lx-pad)); top: 0; bottom: 0; }

/* the notes in plain words: outside the sheet, in a lantern's light */
.lx-gloss { grid-column: 2; grid-row: 1; position: sticky; top: var(--lx-stick); align-self: start; display: grid; gap: var(--space-3); max-width: 25rem; margin-top: clamp(2.4rem, 6svh, 3.4rem); padding: 0 0 var(--space-6) var(--space-5); border-left: 1px solid color-mix(in srgb, var(--color-marigold) 34%, transparent); font-family: var(--font-display); font-size: var(--text-base); line-height: 1.5; color: var(--lx-lantern-ink); }
.lx-clause--mast .lx-gloss { margin-top: clamp(3rem, 8svh, 4.5rem); }
.lx-gloss__tag { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6em; font-family: var(--font-text); font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--lx-lantern); }
.lx-gloss__tag svg { width: 0.86rem; height: 1.6rem; margin-top: -0.3rem; overflow: visible; }
.lx-gloss__sec { color: var(--lx-lantern-dim); }
/* the summary is marked as a summary, and as provisional until the owner approves it (owner rule 3, 2026-10-14):
   one quiet outlined tag, the same in every note; delete the .lx-prov spans in the page when he approves */
.lx-prov { display: inline-flex; align-items: center; min-height: 1.5em; padding: 0 0.6em; border: 1px solid var(--lx-lantern-dim); border-radius: var(--radius-pill); font-family: var(--font-text); font-size: var(--text-xs); font-style: normal; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; line-height: 1; color: var(--lx-lantern); white-space: nowrap; }
.lx-gloss > p:not(.lx-gloss__tag) { font-style: italic; text-wrap: pretty; }
.lx-gloss ul { display: grid; gap: 0.45em; font-style: italic; }
.lx-gloss li { position: relative; padding-left: 1.1em; }
.lx-gloss li::before { content: ""; position: absolute; left: 0; top: 0.72em; width: 0.5em; height: 1px; background: var(--lx-lantern-dim); }
.lx-nb { white-space: nowrap; }
.lx-gloss li a { font-family: var(--font-text); font-style: normal; font-size: var(--text-sm); color: var(--lx-lantern-dim); white-space: nowrap; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; transition: color var(--duration-fast) var(--ease-premium), text-decoration-color var(--duration-fast) var(--ease-premium); }
.lx-gloss li a:hover { color: var(--lx-lantern); text-decoration-color: var(--lx-lantern); }
/* "in practice": the everyday example under a note */
.lx-gloss > p.lx-gloss__eg { font-style: normal; font-family: var(--font-text); font-size: var(--text-sm); line-height: 1.6; color: var(--color-ink-muted); padding-top: var(--space-2); border-top: 1px solid color-mix(in srgb, var(--color-marigold) 22%, transparent); }
.lx-gloss__eg span { display: block; font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--lx-lantern-dim); }
html.lx-live .lx-gloss { opacity: 0; }
html.lx-live .lx-clause.is-in .lx-gloss { opacity: 1; transition: opacity 800ms var(--ease-premium) 180ms; }

/* ================================================================== the close */
.lx-close { border-top: 1px solid var(--color-line); background: linear-gradient(180deg, var(--color-bg) 0%, var(--color-plum) 190%); padding-block: clamp(3.5rem, 10svh, 6.5rem); }
.lx-close__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5cqi, 5rem); align-items: end; }
.lx-close h2 { font-size: var(--text-3xl); margin-bottom: var(--space-4); }
.lx-close__act { display: grid; gap: var(--space-5); justify-items: start; }
.lx-close__mail { font-size: var(--text-2xl); }

/* ================================================================== narrower: the seal joins the words; the notes move above their section */
@container lx (max-width: 86rem) {
  .lx-hero__grid { grid-template-columns: var(--lx-arch-w) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; row-gap: clamp(1.25rem, 3svh, 2.5rem); --lx-arch-w: clamp(15rem, 30cqi, 26rem); --lx-seal-w: clamp(10rem, 17cqi, 14rem); }
  .lx-arch { grid-row: 1 / 3; }
  .lx-hero__text { padding-bottom: 0; }
  .lx-seal { grid-column: 2; grid-row: 2; grid-template-columns: var(--lx-seal-w) minmax(0, 1fr); align-items: center; justify-items: start; column-gap: clamp(1.25rem, 3cqi, 2.5rem); padding-bottom: clamp(1.25rem, 3svh, 2rem); }
  .lx-seal__cap { justify-items: start; text-align: left; }
  .lx-faq__grid { grid-template-columns: minmax(0, 1fr); row-gap: var(--space-6); }
  .lx-sechead--side { position: static; }
  .lx-clause { grid-template-columns: minmax(0, 1fr); }
  .lx-sheet { grid-column: 1; grid-row: 2; }
  .lx-gloss { grid-column: 1; grid-row: 1; position: static; max-width: none; margin: 0; padding: var(--space-5) var(--lx-pad) var(--space-5); border-left: 0; background: var(--color-bg); }
  .lx-clause--mast .lx-gloss { margin-top: 0; padding-top: 0; }
  .lx-gloss > p:not(.lx-gloss__tag), .lx-gloss ul { max-width: var(--lx-measure); }
  .lx-clause[data-n] .lx-sheet, .lx-clause--end .lx-sheet { border-top: 1px solid var(--color-line); }
  .lx-read__grid { grid-template-columns: var(--lx-col-a) minmax(0, var(--lx-col-b)); justify-content: center; }
  .lx-readhead { margin-inline: auto; width: calc(var(--lx-col-a) + var(--lx-col-b) + 4rem); max-width: 100%; }
}
@container lx (max-width: 70rem) {
  .lx-led { grid-template-columns: minmax(0, 1fr); }
  .lx-report__grid { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .lx-read__grid, .lx-readhead { --lx-col-a: 16.5rem; --lx-pad: 2.75rem; }
}
/* a tablet upright and a phone: one column; the index becomes a bar that opens */
@container lx (max-width: 56rem) {
  .lx-hero__grid { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; --lx-arch-w: min(100cqi, 24rem); --lx-seal-w: min(64cqi, 15rem); }
  .lx-hero__text { order: 1; padding-top: 0; }
  .lx-seal { order: 2; grid-column: 1; grid-row: auto; grid-template-columns: minmax(0, 1fr); justify-items: center; padding-bottom: var(--space-4); }
  .lx-seal__press { width: var(--lx-seal-w); }
  .lx-seal__cap { justify-items: center; text-align: center; }
  .lx-arch { grid-row: auto; order: 3; width: var(--lx-arch-w); height: calc(var(--lx-arch-w) * 1.12); min-height: 0; justify-self: center; }
  .lx-hero__grid::after { display: none; }
  .lx-force { margin-left: 0; }
  .lx-led__row { grid-template-columns: 1.6rem minmax(0, 1fr); }
  .lx-led__refs { grid-column: 2; justify-content: flex-start; }
  .lx-report__list { grid-template-columns: minmax(0, 1fr); }
  .lx-index { display: none; }
  .lx-readhead { width: auto; padding-top: var(--space-8); }
  .lx-read__grid { grid-template-columns: minmax(0, 1fr); --lx-pad: 1.35rem; }
  .lx-clause { scroll-margin-top: 3rem; }
  .lx-items li { scroll-margin-top: 5rem; }
  .lx-sheet { margin-inline: calc(-1 * var(--gutter)); padding-inline: var(--gutter); border-inline: 0; border-radius: 0; }
  .lx-clause--mast .lx-sheet, .lx-clause--end .lx-sheet { border-radius: 0; }
  .lx-clause[data-n] .lx-sheet::before, .lx-clause--end .lx-sheet::before { left: var(--gutter); right: var(--gutter); }
  .lx-clause[data-n] .lx-sheet::after { width: calc(var(--gutter) + 3rem); }
  .lx-gloss { padding-inline: 0; }
  .lx-num { position: static; font-size: 1em; margin-right: 0.35em; }
  .lx-head h3 { padding-top: 0; }
  .lx-anchor { margin-right: -0.5rem; }
  .lx-anchor__tip { right: 0; top: auto; bottom: calc(100% + 0.35rem); transform: translate(0, 6px); }
  .lx-anchor.is-done .lx-anchor__tip { transform: none; }
  .lx-clause:target .lx-head::before { left: calc(-1 * var(--gutter) + 0px); }
  .lx-items li { grid-template-columns: 2.2em minmax(0, 1fr); }
  .lx-addr { padding-left: 2.2em; }
  .lx-close__grid { grid-template-columns: minmax(0, 1fr); align-items: start; }

  .lx-jump { display: block; position: relative; z-index: 40; margin: 0 calc(-1 * var(--gutter)) var(--space-5); background: var(--color-header); border-block: 1px solid var(--color-line-strong); }
  .js .lx-jump { position: sticky; top: var(--header-h); }
  .lx-jump summary { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--space-3); min-height: 3.25rem; padding: 0 var(--gutter); cursor: pointer; list-style: none; font-size: var(--text-sm); color: var(--color-ink); transition: background-color var(--duration-fast) var(--ease-premium); }
  .lx-jump summary::-webkit-details-marker { display: none; }
  .lx-jump summary::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--lx-thread); transform-origin: 0 50%; transform: scaleX(var(--p, 0)); }
  .lx-jump summary:active { background: var(--color-surface); }
  .lx-jump__label { font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-ink-dim); }
  .lx-jump__now { font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .lx-jump summary svg { width: 1rem; height: 1rem; transition: transform var(--duration-normal) var(--ease-premium); }
  .lx-jump[open] summary svg { transform: rotate(180deg); }
  .lx-jump__list { display: grid; padding: var(--space-2) var(--gutter) var(--space-4); border-top: 1px solid var(--color-line); }
  .js .lx-jump__list { position: absolute; left: 0; right: 0; top: 100%; max-height: calc(100svh - var(--header-h) - 4rem); overflow-y: auto; overscroll-behavior: contain; background: var(--color-header); border-bottom: 1px solid var(--color-line-strong); box-shadow: 0 24px 48px var(--color-shadow); }
  .lx-jump__list a { display: grid; grid-template-columns: 2.2rem minmax(0, 1fr); align-items: center; min-height: 3rem; border-radius: var(--radius-sm); font-size: var(--text-base); color: var(--color-ink-muted); transition: background-color var(--duration-fast) var(--ease-premium), color var(--duration-fast) var(--ease-premium); }
  .lx-jump__list a:active { background: var(--color-surface); }
  .lx-jump__list a[aria-current] { color: var(--color-ink); font-weight: 700; }
  .lx-jump__n { font-family: var(--font-display); color: var(--color-ink-dim); }
  .lx-jump__list a[aria-current] .lx-jump__n { color: var(--lx-thread); }
}

/* ================================================================== less motion: fades stay, movement goes */
@media (prefers-reduced-motion: reduce) {
  .js .lx-hero__grid.is-arrived .lx-seal__press { animation: lx-fade 500ms ease-out both; }
  .js .lx-hero__grid.is-arrived .lx-seal__press::after { animation: none; }
  html.lx-live .lx-clause[data-n] .lx-sheet::after, html.lx-live .lx-clause[data-n].is-in .lx-sheet::after { transform: none; transition: opacity 500ms ease-out; }
  .lx-ref:hover svg, .lx-report__mail:hover svg, .lx-anchor:active, .lx-chart__list a[aria-current]::before, .lx-faq__item[open] .lx-faq__icon { transform: none; }
  .lx-anchor__tip, .lx-chart__list a::after, .lx-chart__list a::before, .lx-jump summary svg, .lx-faq__icon { transition: opacity var(--duration-normal) linear; }
}
@media (forced-colors: active) {
  .lx-sheet, .lx-pledge { border: 1px solid CanvasText; }
  .lx-chart__list a::before { border-color: CanvasText; }
  .lx-chart__list a[aria-current]::before { background: Highlight; border-color: Highlight; }
  .lx-river--lit path { stroke: Highlight; }
  .lx-gloss { border-left-color: CanvasText; }
  .lx-anchor, .lx-chip, .lx-led__badge { border-color: ButtonText; }
  .lx-seal__wax, .lx-seal__rim { fill: Canvas; stroke: CanvasText; }
  .lx-seal__ink { fill: CanvasText; stroke: CanvasText; }
  .lx-seal__shade, .lx-seal__lit { display: none; }
}

/* ================================================================== print: the summary on page 1, the agreement from page 2, black on white */
@media print {
  @page { size: auto; margin: 20mm 19mm 22mm; }
  /* on paper every ink of the page is the darkest ink of the site (the night ground itself): black on white */
  :root { color-scheme: light; --lx-paper-ink: var(--color-ink-on-bright); --color-ink: var(--lx-paper-ink); --color-ink-muted: var(--lx-paper-ink); --color-ink-dim: var(--lx-paper-ink); --lx-read-ink: var(--lx-paper-ink); --lx-lantern: var(--lx-paper-ink); --lx-lantern-ink: var(--lx-paper-ink); --lx-lantern-dim: var(--lx-paper-ink); --lx-thread: var(--lx-paper-ink); --color-line: var(--lx-paper-ink); --color-line-strong: var(--lx-paper-ink); --color-control-line: var(--lx-paper-ink); --color-success: var(--lx-paper-ink); --color-error: var(--lx-paper-ink); }
  html { font-size: 10.5pt; background: none; }
  body { background: none; color: var(--lx-paper-ink); overflow: visible; }
  .site-header, .site-footer, .skip, .lx-arch, .lx-actions, .lx-index, .lx-jump, .lx-gloss, .lx-anchor, .lx-close, .lx-ref svg, .scene-say, .lx-seal__press, .lx-seal__check, .lx-faq, .lx-report, .lx-led__mk, .lx-led__badge, .lx-pledge__tag svg, .lx-sechead__note svg, .lx-readhead, .lx-pending-note { display: none; }
  .lx { padding: 0; }
  .lx-wrap { width: auto; container-type: normal; }
  .lx *, .lx *::before, .lx *::after { color: var(--lx-paper-ink); background: none; box-shadow: none; text-shadow: none; opacity: 1; transform: none; animation: none; transition: none; filter: none; }
  html.js .lx [data-reveal], html.js .lx .lx-seal__cap, html.lx-live .lx .lx-clause .lx-num { opacity: 1; animation: none; }
  html.js .lx .line-mask > span { transform: none; }
  .lx-hero__grid::after, .lx-clause[data-n] .lx-sheet::after, .lx-kicker::before, .lx-mast::after, .lx-pledge::before, .lx-force__dot { display: none; }
  /* page 1: what the license means, boxed and marked, apart from the agreement */
  .lx-hero, .lx-rights { display: block; min-height: 0; padding: 0; }
  .lx-hero__grid, .lx-hero__text { display: block; }
  .lx-hero h1 { font-size: 24pt; margin: 6pt 0 10pt; }
  .lx-force { border: 0.5pt solid var(--lx-paper-ink); }
  .lx-pledge { display: block; max-width: none; margin-bottom: 10pt; padding: 9pt 12pt; border: 0.75pt solid var(--lx-paper-ink); border-radius: 0; }
  .lx-pledge__say { font-size: 13pt; margin: 4pt 0; }
  .lx-pledge__tag, .lx-pledge__foot, .lx-sechead__note { font-size: 8.5pt; }
  .lx-seal { display: block; margin: 0 0 12pt; }
  .lx-seal__cap { display: block; max-width: none; text-align: left; font-size: 8.5pt; }
  .lx-seal__cap > span { display: inline; margin-right: 6pt; font-size: 8.5pt; }
  .lx-seal__cap > .lx-seal__check { display: none; }
  .lx-sechead { margin: 0 0 6pt; gap: 3pt; }
  .lx-sechead .label { display: none; }
  .lx-sechead h2 { font-size: 13pt; }
  .lx-led { display: block; }
  .lx-led__col { break-inside: avoid; margin-bottom: 8pt; }
  .lx-led__head { font-size: 11pt; font-family: var(--font-text); font-weight: 700; padding-bottom: 2pt; border-bottom: 0.75pt solid var(--lx-paper-ink); }
  .lx-led__row, .lx-led__row--next { display: block; padding: 2.5pt 0; border-bottom: 0; break-inside: avoid; }
  .lx-led__text { font-size: 10pt; }
  .lx-led__refs { display: inline; }
  .lx-chip { display: inline; min-height: 0; padding: 0; margin-left: 4pt; border: 0; font-size: 8.5pt; font-weight: 400; }
  a.lx-chip::before { content: "(section "; } a.lx-chip::after { content: ")"; }
  .lx-chip--next::before { content: "("; } .lx-chip--next::after { content: ")"; }
  .lx-led__nexthead { margin-top: 6pt; font-size: 9pt; border-bottom: 0; }
  .lx-hero__grid, .lx-rights .lx-wrap, .lx-read__grid { max-width: 152mm; margin-inline: auto; }
  /* from page 2: the agreement */
  .lx-read { padding: 0; break-before: page; }
  .lx-read__grid, .lx-clause { display: block; }
  .lx-sheet, .lx-clause--mast .lx-sheet, .lx-clause--end .lx-sheet, .lx-clause[data-n] .lx-sheet { padding: 0; border: 0; border-radius: 0; margin: 0; }
  .lx-clause[data-n] .lx-sheet::before, .lx-clause--end .lx-sheet::before { position: static; display: block; height: 0; border-top: 0.5pt solid var(--lx-paper-ink); background: none; margin: 14pt 0 12pt; }
  .lx-mast { padding-bottom: 14pt; }
  .lx-mast__title { font-size: 15pt; }
  .lx-mast__meta { font-size: 9.5pt; }
  .lx-head { margin-bottom: 7pt; break-after: avoid; }
  .lx-head h3 { font-size: 12.5pt; padding: 0; break-after: avoid; }
  .lx-num { position: static; font-size: 1em; margin-right: 0.3em; }
  .lx-body { font-size: 10.5pt; line-height: 1.5; padding-bottom: 0; orphans: 3; widows: 3; }
  .lx-caps { font-size: 9.3pt; line-height: 1.6; }
  .lx-items li { break-inside: avoid; }
  #s13 .lx-sheet, .lx-addr { break-inside: avoid; }   /* the contact section and its address stay on one page */
  .lx-xref { text-decoration: none; }
  .lx-colophon { font-size: 9pt; padding-top: 0; }
  .lx-clause--end .lx-sheet { padding-bottom: 0; }
}
