/* Article 24 — Confidence Without Fake Precision
   Scope: .ri2-article only. No shared selectors are modified. */
.ri2-article {
  --a24-bg: #061322;
  --a24-surface: #0b1d31;
  --a24-surface-2: #102943;
  --a24-text: #eef5fb;
  --a24-muted: #b9c9d8;
  --a24-line: rgba(188, 215, 235, .24);
  --a24-accent: #6fd1e8;
  --a24-accent-strong: #9ee7f4;
  --a24-positive: #9ce0b5;
  --a24-caution: #f6d887;
  --a24-danger: #ffb3ad;
  --a24-max: 76rem;
  --a24-reading: 46rem;
  /* Keep the protected two-rail canvas visually continuous.
     The main article must not become a full-height contrasting slab. */
  background: transparent;
  color: var(--a24-text);
  position: relative;
}
.ri2-article *, .ri2-article *::before, .ri2-article *::after { box-sizing: border-box; }
.ri2-article img, .ri2-article svg { max-width: 100%; height: auto; }
.ri2-article a { overflow-wrap: anywhere; }
.ri2-article :where(h1,h2,h3,p,li,dd,dt,summary,label,legend,button,input,select,textarea) { max-width: 100%; }
.ri2-article .a24-shell { width: min(calc(100% - 2rem), var(--a24-max)); margin-inline: auto; }
.ri2-article .a24-breadcrumb-wrap { border-bottom: 1px solid var(--a24-line); }
.ri2-article .a24-breadcrumb { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; margin: 0; padding: .85rem 0; list-style: none; font-size: .92rem; color: var(--a24-muted); }
.ri2-article .a24-breadcrumb li:not(:last-child)::after { content: "/"; margin-left: .45rem; opacity: .6; }
.ri2-article .a24-breadcrumb a { color: inherit; }
.ri2-article .a24-hero { padding: clamp(2.75rem, 7vw, 6.5rem) 0 clamp(2.5rem, 5vw, 5rem); background: radial-gradient(circle at 75% 10%, rgba(111,209,232,.16), transparent 34%), linear-gradient(180deg, #061523 0%, #071725 100%); border-bottom: 1px solid var(--a24-line); }
.ri2-article .a24-hero-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(17rem, .75fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.ri2-article .a24-kicker { margin: 0 0 .7rem; color: var(--a24-accent-strong); font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ri2-article .a24-hero h1 { margin: 0; max-width: 18ch; font-size: clamp(2.35rem, 6vw, 5rem); line-height: .98; letter-spacing: -.045em; text-wrap: balance; }
.ri2-article .a24-deck { max-width: 46rem; margin: 1.35rem 0 0; color: var(--a24-muted); font-size: clamp(1.08rem, 2.2vw, 1.35rem); line-height: 1.55; }
.ri2-article .a24-byline { margin: 1.4rem 0 0; color: var(--a24-muted); font-size: .95rem; }
.ri2-article .a24-hero-summary { padding: 1.25rem; background: rgba(16,41,67,.8); border: 1px solid var(--a24-line); border-radius: 1rem; box-shadow: 0 1rem 3rem rgba(0,0,0,.2); }
.ri2-article .a24-hero-summary h2 { margin: 0 0 .8rem; font-size: 1.15rem; }
.ri2-article .a24-hero-summary ul { margin: 0; padding-left: 1.2rem; }
.ri2-article .a24-hero-summary li + li { margin-top: .55rem; }
.ri2-article .a24-layout { display: grid; grid-template-columns: minmax(0, var(--a24-reading)) minmax(14rem, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; padding-block: clamp(2.5rem, 6vw, 5rem); }
.ri2-article .a24-main-column { min-width: 0; }
.ri2-article .a24-side-rail { position: sticky; top: 6rem; display: grid; gap: 1rem; min-width: 0; }
.ri2-article .a24-rail-card { padding: 1.1rem; border: 1px solid var(--a24-line); border-radius: .85rem; background: rgba(11,29,49,.78); }
.ri2-article .a24-rail-card ul { margin: 0; padding-left: 1.2rem; color: var(--a24-muted); }
.ri2-article .a24-rail-card li + li { margin-top: .45rem; }
.ri2-article .a24-article { overflow: clip; }
.ri2-article .a24-section { padding: clamp(2.6rem, 6vw, 5.2rem) 0; border-top: 1px solid var(--a24-line); }
.ri2-article .a24-main-column > .a24-section:first-child { padding-top: 0; border-top: 0; }
.ri2-article .a24-section h2 { margin: 0 0 1rem; font-size: clamp(1.75rem, 4vw, 2.7rem); line-height: 1.08; letter-spacing: -.025em; text-wrap: balance; }
.ri2-article .a24-section h3 { margin: 1.7rem 0 .65rem; font-size: clamp(1.2rem, 2vw, 1.5rem); line-height: 1.2; }
.ri2-article .a24-section p, .ri2-article .a24-section li, .ri2-article .a24-section dd { color: var(--a24-muted); line-height: 1.72; }
.ri2-article .a24-section strong, .ri2-article .a24-section b { color: var(--a24-text); }
.ri2-article code { padding: .12em .36em; border: 1px solid var(--a24-line); border-radius: .3rem; background: rgba(0,0,0,.16); color: var(--a24-accent-strong); font-size: .92em; }
.ri2-article .a24-direct-answer, .ri2-article .a24-callout, .ri2-article .a24-writing-pattern { padding: clamp(1.1rem, 3vw, 1.55rem); border: 1px solid var(--a24-line); border-left: .28rem solid var(--a24-accent); border-radius: .8rem; background: rgba(16,41,67,.55); }
.ri2-article .a24-direct-answer { font-size: 1.08rem; }
.ri2-article .a24-direct-answer p:last-child, .ri2-article .a24-callout p:last-child { margin-bottom: 0; }
.ri2-article .a24-callout-critical { border-left-color: var(--a24-danger); }
.ri2-article .a24-toc { padding: 1.2rem; margin: 1.5rem 0 0; border: 1px solid var(--a24-line); border-radius: .8rem; background: rgba(11,29,49,.65); }
.ri2-article .a24-toc h2 { font-size: 1rem; margin: 0 0 .75rem; }
.ri2-article .a24-toc ol { columns: 2; column-gap: 2rem; margin: 0; padding-left: 1.25rem; }
.ri2-article .a24-toc li { break-inside: avoid; margin-bottom: .35rem; }
.ri2-article .a24-toc a { color: var(--a24-accent-strong); }
.ri2-article .a24-two-column, .ri2-article .a24-manual-grid, .ri2-article .a24-example-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.ri2-article .a24-state-grid, .ri2-article .a24-rule-grid, .ri2-article .a24-mistakes, .ri2-article .a24-related-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.ri2-article .a24-state-card, .ri2-article .a24-rule-grid > article, .ri2-article .a24-mistakes > article, .ri2-article .a24-manual-grid > article, .ri2-article .a24-example-grid > article { min-width: 0; padding: 1.1rem; border: 1px solid var(--a24-line); border-radius: .8rem; background: rgba(11,29,49,.55); }
.ri2-article .a24-state-card h3, .ri2-article .a24-rule-grid h3, .ri2-article .a24-mistakes h3, .ri2-article .a24-manual-grid h3, .ri2-article .a24-example-grid h3 { margin-top: 0; }
.ri2-article .a24-state-label { display: inline-flex; align-items: center; padding: .28rem .55rem; border: 1px solid currentColor; border-radius: 999px; font-size: .78rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.ri2-article .is-high .a24-state-label { color: var(--a24-positive); }
.ri2-article .is-moderate .a24-state-label { color: var(--a24-caution); }
.ri2-article .is-low .a24-state-label { color: #ffca8e; }
.ri2-article .is-na .a24-state-label { color: var(--a24-danger); }
.ri2-article .a24-flow { margin: 1.5rem 0; padding: 1rem; border: 1px solid var(--a24-line); border-radius: 1rem; background: rgba(11,29,49,.55); }
.ri2-article .a24-flow > ol { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: .65rem; margin: 0; padding: 0; list-style: none; counter-reset: flow; }
.ri2-article .a24-flow-step { position: relative; min-width: 0; padding: .95rem .75rem; border: 1px solid var(--a24-line); border-radius: .65rem; background: var(--a24-surface-2); }
.ri2-article .a24-flow-step::before { counter-increment: flow; content: counter(flow); display: grid; place-items: center; width: 1.6rem; height: 1.6rem; margin-bottom: .5rem; border-radius: 50%; background: var(--a24-accent); color: #04101d; font-weight: 900; }
.ri2-article .a24-flow-step strong { display: block; }
.ri2-article .a24-flow-arrow { align-self: center; text-align: center; color: var(--a24-accent); font-size: 1.3rem; }
.ri2-article .a24-flow-branches { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .75rem; margin-top: .85rem; }
.ri2-article .a24-flow-branches > div { padding: .75rem; border: 1px dashed var(--a24-line); border-radius: .6rem; }
.ri2-article .a24-table-wrap, .ri2-article .a24-example-table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid var(--a24-line); border-radius: .7rem; }
.ri2-article table { width: 100%; min-width: 42rem; border-collapse: collapse; }
.ri2-article th, .ri2-article td { padding: .75rem; border-bottom: 1px solid var(--a24-line); text-align: left; vertical-align: top; line-height: 1.5; }
.ri2-article th { background: var(--a24-surface-2); color: var(--a24-text); }
.ri2-article td { color: var(--a24-muted); }
.ri2-article .a24-numbered { counter-reset: a24-numbered; list-style: none; padding: 0; }
.ri2-article .a24-numbered > li { position: relative; padding-left: 2.6rem; }
.ri2-article .a24-numbered > li + li { margin-top: 1rem; }
.ri2-article .a24-numbered > li::before { counter-increment: a24-numbered; content: counter(a24-numbered); position: absolute; left: 0; top: .08rem; display: grid; place-items: center; width: 1.7rem; height: 1.7rem; border: 1px solid var(--a24-accent); border-radius: 50%; color: var(--a24-accent-strong); font-weight: 800; }
.ri2-article .a24-check-list { padding-left: 1.2rem; }
.ri2-article .a24-related-grid a { display: block; padding: 1rem; border: 1px solid var(--a24-line); border-radius: .75rem; background: rgba(11,29,49,.55); text-decoration: none; }
.ri2-article .a24-related-grid a:hover { border-color: var(--a24-accent); }
.ri2-article .a24-related-grid span { display: block; margin-bottom: .3rem; color: var(--a24-accent-strong); font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.ri2-article .a24-related-grid strong { display: block; }
.ri2-article .a24-faq details { border-top: 1px solid var(--a24-line); }
.ri2-article .a24-faq details:last-child { border-bottom: 1px solid var(--a24-line); }
.ri2-article .a24-faq summary { cursor: pointer; padding: 1rem .2rem; color: var(--a24-text); font-weight: 750; }
.ri2-article .a24-faq details p { margin-top: 0; }
.ri2-article .a24-sources { padding-left: 1.25rem; }
.ri2-article .a24-sources li + li { margin-top: .8rem; }
.ri2-article .a24-tool-section { padding: clamp(1rem, 3vw, 1.6rem); border: 1px solid var(--a24-line); border-radius: 1rem; background: linear-gradient(180deg, rgba(16,41,67,.85), rgba(11,29,49,.72)); }
.ri2-article .a24-tool-intro { max-width: 48rem; }
.ri2-article .a24-tool fieldset { min-width: 0; margin: 1.3rem 0 0; padding: 1rem; border: 1px solid var(--a24-line); border-radius: .8rem; }
.ri2-article .a24-tool legend { padding-inline: .35rem; color: var(--a24-text); font-weight: 800; }
.ri2-article .a24-field { display: grid; gap: .38rem; margin-top: 1rem; }
.ri2-article .a24-field:first-of-type { margin-top: .4rem; }
.ri2-article .a24-field label { color: var(--a24-text); font-weight: 700; }
.ri2-article .a24-help { margin: 0; color: var(--a24-muted); font-size: .86rem; line-height: 1.45; }
.ri2-article .a24-field :where(input,select,textarea) { width: 100%; min-height: 2.75rem; padding: .68rem .72rem; border: 1px solid #7794aa; border-radius: .5rem; background: #f7fbff; color: #07131e; font: inherit; }
.ri2-article .a24-field textarea { min-height: 6rem; resize: vertical; }
.ri2-article .a24-field :where(input,select,textarea)[aria-invalid="true"] { border-width: 2px; border-color: #e34b42; box-shadow: 0 0 0 .18rem rgba(255,179,173,.28); }
.ri2-article .a24-error-summary { margin-top: 1rem; padding: 1rem; border: 2px solid var(--a24-danger); border-radius: .7rem; background: rgba(95,15,15,.42); }
.ri2-article .a24-error-summary:focus { outline: .2rem solid var(--a24-accent); outline-offset: .2rem; }
.ri2-article .a24-error-summary h3 { margin-top: 0; }
.ri2-article .a24-button-row { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1rem; }
.ri2-article .a24-button { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; padding: .7rem 1rem; border: 1px solid transparent; border-radius: .55rem; font: inherit; font-weight: 800; text-decoration: none; cursor: pointer; }
.ri2-article .a24-button-primary { background: var(--a24-accent); color: #04101d; }
.ri2-article .a24-button-secondary { background: transparent; border-color: var(--a24-accent); color: var(--a24-accent-strong); }
.ri2-article .a24-button-quiet { background: transparent; border-color: var(--a24-line); color: var(--a24-text); }
.ri2-article .a24-result { margin-top: 1.4rem; padding: 1rem; border: 1px solid var(--a24-line); border-radius: .9rem; background: #081827; }
.ri2-article .a24-result-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .7rem; }
.ri2-article .a24-result-heading h3 { margin: 0; }
.ri2-article .a24-technical { color: var(--a24-muted); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .82rem; }
.ri2-article .a24-result-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; margin-top: 1rem; }
.ri2-article .a24-result-grid > div { min-width: 0; padding: .8rem; border: 1px solid var(--a24-line); border-radius: .6rem; }
.ri2-article .a24-result-grid dt { color: var(--a24-accent-strong); font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.ri2-article .a24-result-grid dd { margin: .35rem 0 0; color: var(--a24-text); }
.ri2-article .a24-result-copy { white-space: pre-wrap; overflow-wrap: anywhere; }
.ri2-article .a24-download-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.ri2-article .a24-download-grid > article { padding: 1.2rem; border: 1px solid var(--a24-line); border-radius: .8rem; background: rgba(11,29,49,.55); }
.ri2-article .a24-download-type { display: inline-block; color: var(--a24-accent-strong); font-size: .78rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.ri2-article .a24-cta-section { padding: clamp(2.5rem, 6vw, 5rem) 0; border-top: 1px solid var(--a24-line); background: #081827; }
.ri2-article .a24-cta { display: flex; justify-content: space-between; gap: 2rem; align-items: center; padding: clamp(1.3rem, 4vw, 2.2rem); border: 1px solid var(--a24-line); border-radius: 1rem; background: linear-gradient(135deg, rgba(16,41,67,.95), rgba(6,19,34,.95)); }
.ri2-article .a24-cta h2 { margin: 0 0 .65rem; max-width: 26ch; }
.ri2-article .a24-cta p { max-width: 50rem; margin-bottom: 0; color: var(--a24-muted); }
.ri2-article [hidden] { display: none !important; }
.ri2-article :focus-visible { outline: .2rem solid var(--a24-accent-strong); outline-offset: .2rem; }

@media (max-width: 62rem) {
  .ri2-article .a24-hero-grid, .ri2-article .a24-layout { grid-template-columns: minmax(0,1fr); }
  .ri2-article .a24-side-rail { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ri2-article .a24-flow > ol { grid-template-columns: 1fr; }
  .ri2-article .a24-flow-arrow { transform: rotate(90deg); }
}
@media (max-width: 44rem) {
  .ri2-article .a24-shell { width: min(calc(100% - 1.25rem), var(--a24-max)); }
  .ri2-article .a24-toc ol { columns: 1; }
  .ri2-article .a24-two-column, .ri2-article .a24-manual-grid, .ri2-article .a24-example-grid, .ri2-article .a24-state-grid, .ri2-article .a24-rule-grid, .ri2-article .a24-mistakes, .ri2-article .a24-related-grid, .ri2-article .a24-result-grid, .ri2-article .a24-download-grid, .ri2-article .a24-flow-branches, .ri2-article .a24-side-rail { grid-template-columns: minmax(0,1fr); }
  .ri2-article .a24-cta { align-items: stretch; flex-direction: column; }
  .ri2-article .a24-button-row > * { flex: 1 1 100%; }
  .ri2-article .a24-result-heading { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 22rem) {
  .ri2-article .a24-shell { width: min(calc(100% - .8rem), var(--a24-max)); }
  .ri2-article .a24-tool-section, .ri2-article .a24-tool fieldset { padding: .7rem; }
  .ri2-article .a24-hero h1 { font-size: 2rem; }
}
/* V1.0.2 premium canvas correction
   Remove the hard full-height center-column seam while retaining bounded
   tonal hierarchy on cards, tools, tables and callouts. */
.a24-product-v1-0-1 .ri2-article-layout > .ri2-article {
  background: transparent;
  box-shadow: none;
}
.a24-product-v1-0-1 .ri2-article > .a24-section {
  background: transparent;
}
.a24-product-v1-0-1 .ri2-article .a24-table-wrap,
.a24-product-v1-0-1 .ri2-article .a24-example-table-wrap,
.a24-product-v1-0-1 .ri2-article .a24-tool-section,
.a24-product-v1-0-1 .ri2-article .a24-flow,
.a24-product-v1-0-1 .ri2-article .a24-direct-answer,
.a24-product-v1-0-1 .ri2-article .a24-callout,
.a24-product-v1-0-1 .ri2-article .a24-writing-pattern {
  box-shadow: 0 1.1rem 2.8rem rgba(0, 7, 16, .14);
}
.a24-product-v1-0-1 .ri2-article .a24-section {
  border-top-color: rgba(188, 215, 235, .14);
}

@media (prefers-reduced-motion: reduce) {
  .ri2-article *, .ri2-article *::before, .ri2-article *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
@media (forced-colors: active) {
  .ri2-article .a24-state-label, .ri2-article .a24-callout, .ri2-article .a24-direct-answer, .ri2-article .a24-flow-step, .ri2-article .a24-result, .ri2-article .a24-tool-section { border: 1px solid CanvasText; }
  .ri2-article .a24-button { border: 2px solid ButtonText; }
  .ri2-article .a24-flow-step::before { forced-color-adjust: none; background: Highlight; color: HighlightText; }
}
@media print {
  .ri2-article { --a24-text:#000; --a24-muted:#222; --a24-line:#999; --a24-accent:#000; --a24-accent-strong:#000; background:#fff !important; color:#000 !important; }
  .ri2-article .site-header, .ri2-article .a24-breadcrumb-wrap, .ri2-article .a24-side-rail, .ri2-article .a24-cta-section, .ri2-article .ri2-footer, .ri2-article .a24-button-row, .ri2-article .a24-error-summary, .ri2-article .a24-tool fieldset, .ri2-article .a24-download-grid { display:none !important; }
  .ri2-article .a24-hero { padding:0 0 1rem; background:none !important; }
  .ri2-article .a24-hero-grid, .ri2-article .a24-layout { display:block; width:100%; }
  .ri2-article .a24-section { padding:1.2rem 0; break-inside:auto; }
  .ri2-article .a24-result, .ri2-article .a24-callout, .ri2-article .a24-direct-answer, .ri2-article .a24-flow { background:#fff !important; box-shadow:none; break-inside:avoid; }
  .ri2-article .a24-flow > ol, .ri2-article .a24-flow-branches { display:block; }
  .ri2-article .a24-flow-step, .ri2-article .a24-flow-branches > div { margin-bottom:.35rem; break-inside:avoid; }
  .ri2-article .a24-flow-arrow { display:none; }
  .ri2-article a[href^="http"]::after { content:" (" attr(href) ")"; font-size:.8em; }
  .ri2-article table { min-width:0; font-size:9pt; }
  @page { margin: 14mm; }
}


/* Protected-shell integration */
.ri2-article > .a24-section { max-width: 100%; }
.ri2-article > .a24-section:first-child { padding-top: 0; border-top: 0; }
.ri2-article .a24-preserved-framework-intro { margin-top: clamp(2.5rem,6vw,5rem); }
.ri2-article .a24-preserved-framework-figure { margin-block: 1.25rem clamp(2.5rem,6vw,5rem); }
.ri2-article .a24-preserved-framework-figure img { display:block; width:100%; height:auto; }
.ri2-article .a24-tool-section,
.ri2-article #confidence-flow,
.ri2-article #worked-example,
.ri2-article #downloads { position:relative; z-index:1; }
.ri2-article .a24-tool-section { margin-inline: 0; }
/* The desktop rails remain controlled by the existing ri2 article layout. */
.a24-product-v1-0-1 .ri2-article-layout > .ri2-toc,
.a24-product-v1-0-1 .ri2-article-layout > .ri2-side-note { display:block; }
@media (max-width: 62rem) {
  .a24-product-v1-0-1 .ri2-article-layout > .ri2-toc,
  .a24-product-v1-0-1 .ri2-article-layout > .ri2-side-note { position:static; }
}
@media print {
  .ri2-article .a24-preserved-framework-figure { break-inside:avoid; }
}
