/*
 * Roles and industries, Claude Design layout (design-v2 Roles, Role, Industries, Industry).
 * Loaded only on single-bd_role, archive-bd_role, single-bd_industry and archive-bd_industry (inc/bd-ri.php).
 * Everything lives under .ri, so nothing here reaches other pages.
 * Type: sizes come from the site tokens (bd-type.css); eyebrows, labels, numbers and kinds are mono (var(--bd-font-mono)).
 * Motion: one entrance per block ([data-ri-reveal], roles-ind.js), then rest. prefers-reduced-motion switches it off.
 */

/* ---------------------------------------------------------------- 1. Tokens and reset */
.ri {
    --ri-navy: #000313;
    --ri-ink: #11193f;
    --ri-ink-2: #4b5563;
    --ri-mute: #6b7591;
    --ri-coral: #ff5247;
    --ri-coral-ink: #d63a30;
    --ri-on-dark: #a6b0d2;
    --ri-on-dark-2: #8b97c4;
    --ri-on-dark-3: #c6cdd7;
    --ri-line: #e3e7ef;
    --ri-line-2: #dfe4ea;
    --ri-line-3: #eceff3;
    --ri-paper: #f6f8f9;
    --ri-ease: cubic-bezier(.16, 1, .3, 1);
    --ri-max: 1280px;
    --ri-pad: 32px;

    position: relative;
    overflow-x: clip;
    background: #fff;
    color: var(--ri-ink);
    font-family: var(--bd-font-body);
    -webkit-font-smoothing: antialiased;
}
.ri *, .ri *::before, .ri *::after { box-sizing: border-box; }
.ri :where(h1, h2, h3, p, ul, ol, li, figure, dl, dd) { margin: 0; padding: 0; }
.ri ul, .ri ol { list-style: none; }
.ri a { color: inherit; text-decoration: none; }
.ri button { font: inherit; color: inherit; }
.ri small { font-size: inherit; }
.ri i { font-style: normal; }
.ri em { font-style: normal; }
.ri .ri-wrap { max-width: var(--ri-max); margin: 0 auto; padding: 0 var(--ri-pad); }
.ri .ri-wrap--in { padding: 0 calc(var(--ri-pad) - 16px); }
/* design keeps the 1280px column inside the side padding (role pages only) */
.ri.ri--role .ri-wrap, .ri.ri--roles .ri-wrap { max-width: calc(var(--ri-max) + 2 * var(--ri-pad)); }
.ri .ri-sec { position: relative; padding: 112px 0 120px; scroll-margin-top: calc(var(--bd4-top, 0px) + 96px); }
.ri .ri-sec--paper { background: var(--ri-paper); }
.ri .ri-num { font-family: var(--bd-font-mono); font-size: var(--bd-small-size); color: var(--ri-mute); }
.ri .ri-mono-note { font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); color: var(--ri-mute); }
@media (max-width: 720px) {
    .ri { --ri-pad: 16px; }
    .ri .ri-wrap--in { padding: 0; }
    .ri .ri-sec { padding: 64px 0 72px; }
}

/* icons painted from the self-hosted SVGs */
.ri .ri-ic {
    display: inline-block; flex: 0 0 auto; width: 1em; height: 1em; background: currentColor;
    -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat;
}
.ri .ri-ic--coral { color: var(--ri-coral); }
.ri .ri-ic--mute { color: #7a8299; }

/* texture layers */
.ri .ri-dots { position: absolute; inset: 0; pointer-events: none; background: none; }
.ri .ri-dots--hero { z-index: -1; opacity: .12; -webkit-mask-image: radial-gradient(60% 70% at 50% 0%, #000, transparent); mask-image: radial-gradient(60% 70% at 50% 0%, #000, transparent); }
.ri .ri-dots--panel { z-index: -1; opacity: .12; -webkit-mask-image: radial-gradient(50% 45% at 50% 0%, #000, transparent); mask-image: radial-gradient(50% 45% at 50% 0%, #000, transparent); }
.ri .ri-dots--soft { z-index: -1; opacity: .08; -webkit-mask-image: linear-gradient(180deg, #000, transparent); mask-image: linear-gradient(180deg, #000, transparent); }
.ri .ri-dots--card { z-index: -1; opacity: .1; -webkit-mask-image: radial-gradient(70% 45% at 100% 0%, #000, transparent); mask-image: radial-gradient(70% 45% at 100% 0%, #000, transparent); }

/* ---------------------------------------------------------------- 2. Type roles */
.ri .ri-h1, .ri .ri-h2, .ri .ri-h3 { font-weight: var(--bd-medium-weight); text-wrap: balance; }
.ri .ri-h1 { font-size: var(--bd-h1-size); line-height: var(--bd-h1-lh); letter-spacing: var(--bd-h1-track); }
.ri .ri-h2 { font-size: var(--bd-h2-size); line-height: var(--bd-h2-lh); letter-spacing: var(--bd-h2-track); }
.ri .ri-h2--sm { font-size: var(--bd-h3-size); line-height: 1.12; letter-spacing: var(--bd-h3-track); }
.ri .ri-h3 { font-size: var(--bd-h3-size); line-height: var(--bd-h3-lh); letter-spacing: var(--bd-h3-track); }
.ri .ri-h1 span, .ri .ri-h2 span { font-weight: 300; color: var(--ri-ink-2); }
.ri .ri-h1 span, .ri .ri-head--dark .ri-h2 span, .ri .ri-h2--cta span { color: var(--ri-on-dark); }

.ri .ri-eyebrow {
    display: flex; align-items: center; gap: 10px; font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size);
    font-weight: var(--bd-eyebrow-weight); line-height: var(--bd-eyebrow-lh); letter-spacing: var(--bd-eyebrow-track);
    text-transform: uppercase; color: var(--ri-ink-2);
}
.ri .ri-eyebrow::before { content: ""; flex: 0 0 auto; width: 8px; height: 8px; background: var(--ri-coral); }
.ri .ri-eyebrow--dark, .ri .ri-head--dark .ri-eyebrow { color: var(--ri-on-dark); }

.ri .ri-head { display: flex; flex-wrap: wrap; gap: 24px 64px; align-items: end; margin-bottom: 48px; }
.ri .ri-head__main { flex: 1 1 520px; display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.ri .ri-head__lead { flex: 1 1 360px; max-width: 30em; font-size: var(--bd-lead-size); line-height: 1.55; color: var(--ri-ink-2); text-wrap: pretty; }
.ri .ri-head--dark .ri-head__lead { color: var(--ri-on-dark); }
.ri .ri-head--sm { margin-bottom: 0; }
.ri .ri-head--sm .ri-h2 { font-size: var(--bd-h3-size); line-height: 1.1; }
.ri .ri-head--stack { display: block; margin-bottom: 32px; }
.ri .ri-head--stack .ri-head__main { gap: 16px; }
.ri .ri-head--stack .ri-head__lead { margin-top: 16px; max-width: 44em; }
.ri .ri-head--split { margin-bottom: 40px; }

/* ---------------------------------------------------------------- 3. Buttons and pills */
.ri .ri-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 52px; padding: 0 26px; border-radius: 8px;
    font-size: var(--bd-btn-size); font-weight: 700; line-height: 1; white-space: nowrap; transition: background .2s, box-shadow .2s, color .2s;
}
.ri .ri-btn--primary { background: var(--ri-coral); color: #fff; box-shadow: 0 14px 30px -12px rgb(255 82 71 / .55); }
.ri .ri-btn--primary:hover { color: #fff; box-shadow: inset 0 0 0 100px rgb(255 255 255 / .08), 0 14px 30px -12px rgb(255 82 71 / .7); }
.ri .ri-btn--ghost { padding: 0 24px; font-weight: 600; background: rgb(255 255 255 / .07); color: #fff; box-shadow: inset 0 1px 0 rgb(255 255 255 / .08), inset 0 0 0 1px rgb(255 255 255 / .06); }
.ri .ri-btn--ghost:hover { color: #fff; background: rgb(255 255 255 / .13); }
.ri .ri-btn--light { padding: 0 24px; font-weight: 600; background: #fff; color: var(--ri-navy); }
.ri .ri-btn--light:hover { color: var(--ri-navy); background: #e6eaf2; }
.ri .ri-btn--dark { height: 46px; padding: 0 22px; font-size: var(--bd-btn-size-sm); font-weight: 600; background: var(--ri-ink); color: #fff; box-shadow: 0 10px 24px -10px rgb(17 25 63 / .55); }
.ri .ri-btn--dark:hover { color: #fff; background: var(--ri-coral); }
.ri .ri-btn--outline { height: 44px; padding: 0 20px; font-size: var(--bd-btn-size-sm); font-weight: 600; background: #fff; color: var(--ri-ink); box-shadow: inset 0 0 0 1px var(--ri-line-2); }
.ri .ri-btn--outline:hover { color: #fff; background: var(--ri-ink); }

.ri .ri-pill {
    display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px; border-radius: 8px; background: var(--ri-ink); color: #fff;
    font-size: var(--bd-small-size); font-weight: 600; transition: background .2s;
}
.ri .ri-pill:hover { color: #fff; background: var(--ri-coral); }
.ri .ri-pill--glass { height: 44px; padding: 0 18px 0 14px; gap: 10px; font-size: var(--bd-btn-size-sm); background: rgb(255 255 255 / .07); box-shadow: inset 0 1px 0 rgb(255 255 255 / .08); }
.ri .ri-pill--glass:hover { background: rgb(255 255 255 / .13); }
.ri .ri-pill--white { height: 44px; padding: 0 18px; font-size: var(--bd-btn-size-sm); background: #fff; color: var(--ri-navy); }
.ri .ri-pill--white:hover { color: var(--ri-navy); background: #e6eaf2; }
.ri .ri-ulink { align-self: flex-start; font-size: var(--bd-small-size); font-weight: 600; color: var(--ri-ink); text-decoration: underline; text-decoration-color: transparent; text-decoration-thickness: 1.5px; text-underline-offset: 5px; }
.ri .ri-ulink:hover { color: var(--ri-ink); text-decoration-color: currentColor; }
.ri .ri-kind { font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); letter-spacing: .1em; text-transform: uppercase; color: var(--ri-mute); }
.ri .ri-kind--coral { color: var(--ri-coral-ink); }
.ri .ri-tag { justify-self: start; display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border-radius: 5px; font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); font-weight: 600; letter-spacing: .04em; }
.ri .ri-tag--alert { background: #ffe9e7; color: var(--ri-coral-ink); }
.ri .ri-tag--view { background: var(--ri-ink); color: #fff; }
.ri .ri-tag--report { background: var(--ri-coral); color: #fff; }

/* Glossary links inside running text: dotted coral underline instead of the chip. */
.ri a.bd-term {
    color: inherit; font-weight: inherit; background: none; border: 0; padding: 0; border-radius: 0; box-shadow: none;
    text-decoration: underline dotted var(--ri-coral); text-decoration-thickness: 1.5px; text-underline-offset: 6px;
}
.ri a.bd-term:hover { color: var(--ri-coral); }

/* ---------------------------------------------------------------- 4. Reveal (one entrance, then rest) */
.ri-js .ri [data-ri-reveal] { opacity: 0; transform: translateY(14px); transition: opacity .7s var(--ri-ease), transform .7s var(--ri-ease); }
.ri-js .ri [data-ri-reveal].is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
    .ri-js .ri [data-ri-reveal] { opacity: 1; transform: none; transition: none; }
    .ri *, .ri *::before, .ri *::after { animation: none !important; transition: none !important; }
}

/* ---------------------------------------------------------------- 5. Hero */
.ri .ri-hero {
    position: relative; overflow: hidden; isolation: isolate; color: #fff; padding: calc(var(--bd4-top, 0px) + clamp(112px, 9vw, 128px)) 0 clamp(48px, 5vw, 72px);
    background: radial-gradient(43% 45% at 50% 0%, rgb(255 82 70 / .26) 0%, rgb(3 8 36 / 0) 100%), url(../../img/uc/bg-digital-red.jpg) right bottom / 120% auto no-repeat, var(--ri-navy);
}
.ri .ri-hero--inds { padding-bottom: 0; background-position: left bottom; }
.ri .ri-hero--inds, .ri .ri-hero--center { background: radial-gradient(43% 50% at 50% 0%, rgb(255 82 70 / .26) 0%, rgb(3 8 36 / 0) 100%), url(../../img/uc/bg-digital-red.jpg) left bottom / 120% auto no-repeat, var(--ri-navy); }
.ri .ri-hero--center { padding-bottom: clamp(56px, 5vw, 72px); }
.ri .ri-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 480px); gap: 56px 64px; align-items: center; }
.ri .ri-hero__copy { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.ri .ri-hero__lead { max-width: 34em; font-size: var(--bd-lead-size); line-height: 1.55; color: var(--ri-on-dark-3); text-wrap: pretty; }
.ri .ri-hero__btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.ri .ri-hero__side { min-width: 0; max-width: 500px; width: 100%; margin-left: auto; }
.ri .ri-hero__center { display: flex; flex-direction: column; align-items: center; gap: 22px; text-align: center; }
.ri .ri-hero__center .ri-h1 { max-width: 16em; }
.ri.ri--role .ri-hero--split .ri-h1 { text-wrap: balance; letter-spacing: -0.03em; font-size: clamp(34px, 4.69vw, 60px); line-height: 1.04; }
.ri.ri--role .ri-hero--split .ri-hero__lead { font-size: 18px; }
.ri .ri-hero__center .ri-hero__lead { max-width: 36em; color: var(--ri-on-dark); }
.ri .ri-hero__row { display: flex; flex-wrap: wrap; gap: 24px 80px; align-items: end; margin-top: 22px; }
.ri .ri-hero__row .ri-h1 { flex: 1 1 520px; }
.ri .ri-hero__aside { flex: 1 1 360px; display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.ri .ri-hero__aside .ri-hero__lead { color: var(--ri-on-dark); max-width: 30em; }
.ri .ri-hero .ri-wrap { position: relative; }

.ri .ri-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: var(--bd-small-size); color: var(--ri-on-dark-2); }
.ri .ri-crumbs a { color: var(--ri-on-dark); }
.ri .ri-crumbs a:hover { color: #fff; }
.ri .ri-crumbs__here { color: #fff; }
.ri .ri-hero--center .ri-crumbs { justify-content: center; }

.ri .ri-badge { align-self: flex-start; display: inline-flex; align-items: center; gap: 12px; height: 40px; padding: 0 16px 0 6px; border-radius: 8px; background: rgb(255 255 255 / .07); box-shadow: inset 0 1px 0 rgb(255 255 255 / .08); font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); letter-spacing: .08em; text-transform: uppercase; font-weight: 500; }
.ri .ri-badge__ic { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--ri-coral); font-size: 16px; color: #fff; }

/* glass card in the hero */
.ri .ri-glass { border-radius: 14px; overflow: hidden; border: 1px solid rgb(255 255 255 / .1); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 40px 80px -24px rgb(0 3 19 / .6); background: radial-gradient(67% 39% at 50% 0%, rgb(255 82 70 / .2) 0%, rgb(3 9 37 / 0) 100%), rgb(255 255 255 / .04); }
.ri .ri-glass__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 24px; border-bottom: 1px solid rgb(255 255 255 / .08); font-size: var(--bd-small-size); font-weight: 600; }
.ri .ri-glass__title { display: flex; align-items: center; gap: 10px; }
.ri .ri-glass__count { font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); color: var(--ri-on-dark-2); }
.ri .ri-glass__foot { display: flex; align-items: center; justify-content: space-between; padding: 16px 24px; border-top: 1px solid rgb(255 255 255 / .08); font-size: var(--bd-small-size); font-weight: 600; color: var(--ri-on-dark); }
.ri .ri-glass__foot:hover { color: #fff; }

.ri .ri-desk__row { width: 100%; display: grid; grid-template-columns: 28px minmax(0, 1fr) 20px; gap: 14px; align-items: center; padding: 14px 24px; border: 0; border-top: 1px solid rgb(255 255 255 / .05); background: transparent; cursor: pointer; text-align: left; color: #fff; transition: background .2s, color .3s; }
.ri .ri-desk li:first-child .ri-desk__row { border-top: 0; }
.ri .ri-desk__row:hover { background: rgb(255 255 255 / .04); }
.ri .ri-desk__row b { font-size: var(--bd-btn-size); font-weight: 600; line-height: 1.3; }
.ri .ri-desk__box { width: 28px; height: 28px; border-radius: 6px; display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px rgb(255 255 255 / .3); font-size: 14px; color: #fff; transition: background .3s; }
.ri .ri-desk__box .ri-ic { opacity: 0; transition: opacity .3s; }
.ri .ri-desk__row[aria-pressed="true"] { color: var(--ri-on-dark); }
.ri .ri-desk__row[aria-pressed="true"] .ri-desk__box { background: var(--ri-coral); box-shadow: none; }
.ri .ri-desk__row[aria-pressed="true"] .ri-desk__box .ri-ic { opacity: 1; }
.ri .ri-desk__row[aria-pressed="true"] b { text-decoration: line-through; text-decoration-color: rgb(255 255 255 / .35); }
.ri .ri-desk__row > .ri-ic { font-size: 18px; }

.ri .ri-watch a { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 16px 24px; border-top: 1px solid rgb(255 255 255 / .05); color: #fff; transition: background .2s; }
.ri .ri-watch li:first-child a { border-top: 0; }
.ri .ri-watch a:hover { color: #fff; background: rgb(255 255 255 / .04); }
.ri .ri-watch__ic { width: 44px; height: 44px; border-radius: 8px; display: grid; place-items: center; background: rgb(255 255 255 / .07); box-shadow: inset 0 1px 0 rgb(255 255 255 / .08); font-size: 20px; }
.ri .ri-watch__txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ri .ri-watch__txt small { font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); color: var(--ri-on-dark-2); }
.ri .ri-watch__txt b { font-size: var(--bd-btn-size); font-weight: 600; line-height: 1.3; }
.ri .ri-watch__tag { display: inline-flex; align-items: center; gap: 8px; font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); color: var(--ri-on-dark); }
.ri .ri-watch__tag i { width: 7px; height: 7px; border-radius: 50%; background: var(--ri-coral); animation: ri-pulse 2s ease-out infinite; }
@keyframes ri-pulse { 0% { box-shadow: 0 0 0 0 rgb(255 82 71 / .55); } 100% { box-shadow: 0 0 0 14px rgb(255 82 71 / 0); } }

/* persona shortcuts and sector chips in the hero */
.ri .ri-picks { margin-top: 14px; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; max-width: 920px; }
.ri .ri-picks a { display: inline-flex; align-items: center; gap: 10px; height: 44px; padding: 0 18px 0 14px; border-radius: 8px; background: rgb(255 255 255 / .07); box-shadow: inset 0 1px 0 rgb(255 255 255 / .08); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); color: #fff; font-size: var(--bd-btn-size-sm); font-weight: 600; transition: background .2s; }
.ri .ri-picks a:hover { color: #fff; background: rgb(255 255 255 / .14); }
.ri .ri-chips { position: relative; overflow: hidden; margin-top: 56px; border-top: 1px solid rgb(255 255 255 / .08); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.ri .ri-chips__track { display: flex; width: max-content; animation: ri-mq 50s linear infinite; }
.ri .ri-chips__set { display: flex; gap: 8px; padding: 22px 8px 26px 0; margin: 0; list-style: none; }
.ri .ri-chips__set li { flex: 0 0 auto; }
@keyframes ri-mq { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
    .ri .ri-chips { -webkit-mask-image: none; mask-image: none; }
    .ri .ri-chips__track { width: auto; flex-direction: column; }
    .ri .ri-chips__set { flex-wrap: wrap; padding-right: 0; }
    .ri .ri-chips__set[aria-hidden] { display: none; }
}
.ri .ri-chips a { white-space: nowrap; display: inline-flex; align-items: center; gap: 10px; height: 40px; padding: 0 16px 0 12px; border-radius: 8px; background: rgb(255 255 255 / .06); box-shadow: inset 0 1px 0 rgb(255 255 255 / .08); font-size: var(--bd-small-size); font-weight: 600; color: var(--ri-on-dark-3); transition: background .2s, color .2s; }
.ri .ri-chips a:hover { color: #fff; background: rgb(255 255 255 / .13); }

/* ---------------------------------------------------------------- 6. Role: in short, week, path */
.ri .ri-short__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px 96px; align-items: start; }
.ri .ri-short__lead { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.ri .ri-short__def { font-size: clamp(20px, 1.6vw + 12px, 26px); line-height: 1.42; letter-spacing: -0.015em; text-wrap: pretty; }
.ri .ri-glance { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: baseline; padding-top: 18px; border-top: 1px solid var(--ri-line-2); font-size: var(--bd-body-size); line-height: 1.5; color: var(--ri-ink-2); }
.ri .ri-glance b { font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ri-mute); }
.ri .ri-tile { position: relative; overflow: hidden; height: 220px; border-radius: 14px; color: #fff; background: radial-gradient(60% 80% at 70% 40%, rgb(255 82 70 / .28), rgb(255 82 70 / 0) 70%), var(--ri-navy); box-shadow: 0 30px 60px -28px rgb(0 3 19 / .6); }
.ri .ri-tile__ring { position: absolute; left: 70%; top: 40%; width: 340px; height: 340px; margin: -170px 0 0 -170px; border-radius: 50%; border: 1px solid rgb(255 82 71 / .35); opacity: 0; animation: ri-ring 3.6s ease-out infinite; }
.ri .ri-tile__ring--b { animation-delay: 1.8s; }
.ri .ri-tile__ring--c { width: 200px; height: 200px; margin: -100px 0 0 -100px; border-color: rgb(255 255 255 / .08); opacity: 1; animation: none; }
@keyframes ri-ring { 0% { transform: scale(.6); opacity: .7; } 100% { transform: scale(1.4); opacity: 0; } }
.ri .ri-tile__icon { position: absolute; left: 70%; top: 40%; width: 72px; height: 72px; margin: -36px 0 0 -36px; color: var(--ri-coral); }
.ri .ri-tile__label { position: absolute; left: 24px; top: 22px; font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); letter-spacing: .12em; text-transform: uppercase; color: var(--ri-on-dark); }
.ri .ri-tile__name { position: absolute; left: 24px; bottom: 24px; right: 40%; display: flex; flex-direction: column; gap: 6px; }
.ri .ri-tile__name b { font-size: 24px; font-weight: 600; letter-spacing: -0.015em; line-height: 1.15; }
.ri .ri-tile__name small { font-size: var(--bd-small-size); color: var(--ri-on-dark); line-height: 1.35; }
.ri .ri-tile__name i { margin-top: 6px; width: 32px; height: 2px; background: var(--ri-coral); }

.ri .ri-short__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin-bottom: 16px; }
.ri .ri-short__top .ri-h3 { font-size: 24px; font-weight: 600; letter-spacing: -0.015em; line-height: 1.2; }
.ri .ri-week { display: flex; flex-direction: column; gap: 10px; }
.ri .ri-week__row { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 18px 22px 18px 18px; border-radius: 12px; background: #fff; box-shadow: 0 1px 0 rgb(17 25 63 / .04), 0 14px 30px -20px rgb(17 25 63 / .25); }
.ri .ri-week__tile { width: 52px; height: 52px; border-radius: 8px; display: grid; place-items: center; font-size: 22px; color: #fff; background: radial-gradient(80% 70% at 50% 0%, rgb(255 82 70 / .35), rgb(255 82 70 / 0) 75%), var(--ri-ink); box-shadow: 0 10px 24px -10px rgb(17 25 63 / .5); }
.ri .ri-week__tile.is-last { background: var(--ri-coral); }
.ri .ri-week__txt { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ri .ri-week__txt b { font-size: 18px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.3; }
.ri .ri-week__txt span { font-size: var(--bd-body-size); line-height: 1.45; color: var(--ri-ink-2); }
.ri .ri-week__n { font-family: var(--bd-font-mono); font-size: var(--bd-small-size); color: var(--ri-mute); }

.ri .ri-path .ri-head { margin-bottom: 48px; }
.ri .ri-path .ri-head__main { max-width: none; }
.ri .ri-path__rail { position: relative; }
.ri .ri-path__line { position: absolute; left: 0; right: 0; top: 21px; height: 2px; background: linear-gradient(90deg, var(--ri-ink) 0%, var(--ri-ink) 70%, var(--ri-coral) 100%); opacity: .9; }
.ri .ri-path__steps { position: relative; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 24px; }
.ri .ri-path__step { display: flex; flex-direction: column; gap: 18px; }
.ri .ri-path__head { display: flex; align-items: center; gap: 12px; }
.ri .ri-path__dot { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--ri-ink); box-shadow: 0 0 0 6px #fff; font-size: 20px; color: #fff; }
.ri .ri-path__dot.is-last { background: var(--ri-coral); }
.ri .ri-path__pill { padding: 5px 12px; border-radius: 8px; background: #fff; box-shadow: inset 0 0 0 1px var(--ri-line); font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.ri .ri-path__pill .ri-num { font-size: inherit; color: inherit; }
.ri .ri-path__links { border-top: 1px solid var(--ri-line-2); }
.ri .ri-path__links a { display: grid; grid-template-columns: minmax(0, 1fr) 16px; gap: 12px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--ri-line-3); font-size: 15.5px; font-weight: 600; line-height: 1.35; color: var(--ri-ink); }
.ri .ri-path__links a:hover { color: var(--ri-coral); }

/* ---------------------------------------------------------------- 7. Panels (dark and grey, rounded) */
.ri .ri-inset { padding: 0 16px; }
.ri .ri-panel { position: relative; overflow: hidden; isolation: isolate; border-radius: 22px; padding: 104px 16px 96px; }
.ri .ri-panel--dark { color: #fff; background: radial-gradient(43% 30% at 50% 0%, rgb(255 82 70 / .28) 0%, rgb(3 8 36 / 0) 100%), url(../../img/uc/bg-digital-red.jpg) right bottom / 130% auto no-repeat, var(--ri-navy); box-shadow: 0 40px 80px -24px rgb(0 3 19 / .35); }
.ri .ri-panel--grey { background: radial-gradient(50% 60% at 100% 0%, rgb(160 176 214 / .35), rgb(160 176 214 / 0) 70%), linear-gradient(180deg, #f1f3f8 0%, #e6eaf2 100%); }
@media (max-width: 720px) { .ri .ri-panel { border-radius: 16px; padding: 64px 16px; } }

.ri .ri-cards { display: grid; gap: 16px; }
.ri .ri-cards--problems { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 20px; }
.ri .ri-pcard, .ri .ri-rcard { position: relative; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; gap: 14px; border-radius: 14px; color: #fff; border: 1px solid rgb(255 255 255 / .08); background: radial-gradient(67% 39% at 50% 0%, rgb(255 82 70 / .2) 0%, rgb(3 9 37 / 0) 100%), linear-gradient(0deg, rgb(0 3 19 / .8) 0%, rgb(255 255 255 / 0) 100%), rgb(255 255 255 / .03); }
.ri .ri-pcard { padding: 30px 30px 26px; }
.ri .ri-pcard__ghost, .ri .ri-rcard__ghost, .ri .ri-dcard__ghost { position: absolute; z-index: -1; right: -26px; top: -26px; width: 150px; height: 150px; color: rgb(255 255 255 / .04); }
.ri .ri-pcard__top { display: flex; align-items: center; justify-content: space-between; }
.ri .ri-pcard__top .ri-num { color: var(--ri-on-dark); }
.ri .ri-pcard__badge { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; font-size: 22px; background: radial-gradient(closest-side, rgb(255 82 71 / .28), rgb(255 82 71 / .06)); box-shadow: inset 0 0 0 1px rgb(255 82 71 / .45); }
.ri .ri-pcard__title { margin-top: 10px; font-size: var(--bd-card-size); font-weight: 600; line-height: 1.2; letter-spacing: -0.015em; }
.ri .ri-pcard__text { flex: 1 1 auto; font-size: 15.5px; line-height: 1.5; color: var(--ri-on-dark); }
.ri .ri-pcard__links { margin-top: 6px; display: grid; grid-template-columns: auto 1fr; gap: 10px 14px; align-items: center; padding-top: 16px; border-top: 1px solid rgb(255 255 255 / .08); font-size: var(--bd-small-size); }
.ri .ri-pcard__links small { font-family: var(--bd-font-mono); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ri-on-dark); }
.ri .ri-pcard__links a { font-weight: 600; color: #fff; }
.ri .ri-pcard__links a:hover { color: var(--ri-coral); }
.ri .ri-pcard__links a.is-soft { font-weight: 400; color: var(--ri-on-dark-3); }
.ri .ri-pcard__links a.is-soft:hover { color: #fff; }

/* ---------------------------------------------------------------- 8. Splits (what you get, questions) */
.ri .ri-split { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 40px 96px; align-items: start; }
.ri .ri-split__side { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.ri .ri-gets .ri-head { display: block; margin-bottom: 0; }
.ri .ri-gets .ri-head__main { gap: 20px; }
.ri .ri-gets .ri-head__lead { margin-top: 20px; max-width: none; }
.ri .ri-split__main { min-width: 0; }
.ri .ri-metrics { margin-top: 20px; border-radius: 14px; padding: 26px 28px; background: radial-gradient(50% 80% at 100% 0%, rgb(160 176 214 / .35), rgb(160 176 214 / 0) 70%), linear-gradient(180deg, #f1f3f8 0%, #e6eaf2 100%); }
.ri .ri-metrics > b { display: block; font-size: 18px; font-weight: 600; }
.ri .ri-metrics > small { display: block; margin-top: 4px; font-size: var(--bd-small-size); color: var(--ri-ink-2); }
.ri .ri-metrics ul { margin-top: 16px; }
.ri .ri-metrics li { display: flex; flex-direction: column; gap: 3px; padding: 14px 0; border-top: 1px solid #d5dbe6; }
.ri .ri-metrics li b { font-size: var(--bd-nav-size); font-weight: 600; }
.ri .ri-metrics li small { font-size: var(--bd-small-size); line-height: 1.45; color: var(--ri-ink-2); }
.ri .ri-gets__list { display: flex; flex-direction: column; gap: 14px; }
.ri .ri-get { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 18px; align-items: start; padding: 22px 26px; border-radius: 12px; background: #fff; border: 1px solid var(--ri-line); box-shadow: 0 18px 40px rgb(17 25 63 / .06); }
.ri .ri-get__txt { display: flex; flex-direction: column; gap: 5px; }
.ri .ri-get__txt b { font-size: 18px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.3; }
.ri .ri-get__txt span { font-size: 15.5px; line-height: 1.5; color: var(--ri-ink-2); }

.ri .ri-faqsec { padding: 0 0 120px; }
.ri .ri-split--ruled { padding-top: 56px; border-top: 1px solid var(--ri-line-2); max-width: var(--ri-max); }
.ri .ri-faqsec .ri-wrap { padding-top: 0; }
.ri .ri-faqsec .ri-split--ruled { margin: 0 auto; width: calc(100% - 2 * var(--ri-pad)); padding-left: 0; padding-right: 0; }
.ri .ri-split--ruled .ri-split__side { position: sticky; top: calc(var(--bd4-top, 0px) + 152px); }
.ri .ri-faq { border-bottom: 1px solid var(--ri-line-2); }
.ri .ri-faq li { border-top: 1px solid var(--ri-line-2); }
.ri .ri-faq__item summary { list-style: none; display: grid; grid-template-columns: minmax(0, 1fr) 32px; gap: 24px; align-items: center; padding: 22px 0; cursor: pointer; font-size: 19px; font-weight: 600; line-height: 1.35; color: var(--ri-ink); }
.ri .ri-faq__item summary::-webkit-details-marker { display: none; }
.ri .ri-faq__item summary:hover { color: var(--ri-coral); }
.ri .ri-faq__plus { position: relative; width: 32px; height: 32px; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--ri-line-2); color: var(--ri-coral); transition: transform .3s var(--ri-ease); }
.ri .ri-faq__plus::before, .ri .ri-faq__plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.5px; margin: -.75px 0 0 -6px; background: currentColor; }
.ri .ri-faq__plus::after { transform: rotate(90deg); }
.ri .ri-faq__item[open] .ri-faq__plus { transform: rotate(45deg); }
.ri .ri-faq__a { padding: 0 56px 24px 0; font-size: var(--bd-body-size); line-height: 1.6; color: var(--ri-ink-2); }
.ri .ri-faq__a p + p { margin-top: 12px; }
.ri .ri-faq__a a { color: var(--ri-ink); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.ri .ri-faq__a a:hover { color: var(--ri-coral); }
.ri .ri-faq__a ul { list-style: disc; padding-left: 20px; margin-top: 10px; }

/* ---------------------------------------------------------------- 9. Threat cards, go further, rules, sources */
.ri .ri-threats .ri-head { margin-bottom: 40px; }
.ri .ri-cards--threats { grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); }
.ri .ri-tcard { display: flex; flex-direction: column; gap: 12px; padding: 24px; border-radius: 12px; background: #fff; box-shadow: 0 1px 0 rgb(17 25 63 / .04), 0 14px 30px -18px rgb(17 25 63 / .25); color: var(--ri-ink); transition: transform .25s, box-shadow .25s; }
.ri a.ri-tcard:hover { color: var(--ri-ink); transform: translateY(-3px); box-shadow: 0 1px 0 rgb(17 25 63 / .04), 0 24px 44px -18px rgb(17 25 63 / .32); }
.ri .ri-tcard__title { font-size: 21px; font-weight: 600; letter-spacing: -0.015em; line-height: 1.25; }
.ri .ri-tcard__text { flex: 1 1 auto; font-size: 15px; line-height: 1.5; color: var(--ri-ink-2); }
.ri .ri-tcard__link { font-size: var(--bd-small-size); font-weight: 600; }

.ri .ri-further__stack { display: flex; flex-direction: column; gap: 40px; }
.ri .ri-reading { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); column-gap: 72px; }
.ri .ri-reading a { display: grid; grid-template-columns: minmax(0, 1fr) 16px; gap: 12px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--ri-line-3); color: var(--ri-ink); }
.ri .ri-reading a:hover { color: var(--ri-coral); }
.ri .ri-reading a > span:first-child { display: flex; flex-direction: column; gap: 4px; }
.ri .ri-reading b { font-size: var(--bd-body-size); font-weight: 600; line-height: 1.35; }
.ri .ri-twocol { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 32px 72px; }
.ri .ri-twocol--top { align-items: start; }
.ri .ri-links { display: flex; flex-direction: column; }
.ri .ri-links__head { display: flex; align-items: center; gap: 10px; font-size: 17px; font-weight: 600; padding-bottom: 14px; border-bottom: 1px solid var(--ri-line-2); }
.ri .ri-links__head--bare { border: 0; padding-bottom: 12px; }
.ri .ri-links > a { display: flex; flex-direction: column; gap: 4px; padding: 16px 0; border-bottom: 1px solid var(--ri-line-3); color: var(--ri-ink); }
.ri .ri-links > a:hover { color: var(--ri-coral); }
.ri .ri-links > a b { font-size: var(--bd-body-size); font-weight: 600; }
.ri .ri-links > a span { font-size: 14.5px; line-height: 1.5; color: var(--ri-ink-2); }
.ri .ri-links > a.ri-links__more { padding-bottom: 0; border: 0; font-weight: 600; font-size: var(--bd-small-size); color: var(--ri-ink); }
.ri .ri-rules { display: flex; flex-direction: column; gap: 16px; }
.ri .ri-rules__box { border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px var(--ri-line); overflow: hidden; }
.ri .ri-rules__row { display: grid; grid-template-columns: minmax(90px, .35fr) minmax(0, 1fr); gap: 16px; padding: 20px 22px; border-top: 1px solid var(--ri-line-3); }
.ri .ri-rules__row:first-child { border-top: 0; }
.ri .ri-rules__row > b { font-size: var(--bd-body-size); font-weight: 600; }
.ri .ri-rules__row > span { display: flex; flex-direction: column; gap: 8px; font-size: 14.5px; line-height: 1.55; color: var(--ri-ink-2); }
.ri .ri-rules__row a { align-self: flex-start; font-weight: 600; color: var(--ri-ink); }
.ri .ri-rules__row a:hover { color: var(--ri-coral); }
.ri .ri-note { font-size: 14.5px; line-height: 1.55; color: var(--ri-ink-2); }
.ri .ri-note--icon { margin-top: 18px; display: flex; align-items: flex-start; gap: 10px; font-size: var(--bd-small-size); color: var(--ri-mute); }
.ri .ri-note--icon .ri-ic { margin-top: 3px; }
.ri .ri-sources ol li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 8px; padding: 13px 0; border-top: 1px solid var(--ri-line-3); font-size: 14.5px; line-height: 1.5; color: var(--ri-ink-2); }
.ri .ri-sources ol a { color: var(--ri-ink); text-decoration: underline; text-decoration-color: #c9d0de; text-underline-offset: 4px; }
.ri .ri-sources ol a:hover { color: var(--ri-coral); }
.ri .ri-mentions ol li { display: block; }
.ri .ri-mentions a { display: flex; flex-direction: column; gap: 4px; text-decoration: none; }
.ri .ri-mentions a b { font-size: var(--bd-nav-size); font-weight: 600; line-height: 1.4; }
.ri .ri-mentions a small { font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); color: var(--ri-mute); }

/* ---------------------------------------------------------------- 10. Closing panel */
.ri .ri-cta-wrap { padding: 24px 16px 16px; background: linear-gradient(180deg, #fff, var(--ri-paper)); }
.ri .ri-sec--paper + .ri-cta-wrap, .ri .ri-reading + .ri-cta-wrap { background: var(--ri-paper); padding-top: 0; }
.ri .ri-cta { position: relative; overflow: hidden; isolation: isolate; border-radius: 22px; padding: 96px 48px; color: #fff; display: flex; flex-wrap: wrap; gap: 32px 64px; align-items: center; justify-content: space-between; max-width: calc(var(--ri-max) + 128px); margin: 0 auto; background: radial-gradient(43% 60% at 50% 0%, rgb(255 82 70 / .3) 0%, rgb(3 8 36 / 0) 100%), url(../../img/uc/bg-digital-red.jpg) right bottom / 130% auto no-repeat, var(--ri-navy); box-shadow: 0 40px 80px -24px rgb(0 3 19 / .35); }
.ri .ri-cta .ri-dots { z-index: -1; opacity: .1; -webkit-mask-image: radial-gradient(50% 50% at 50% 0%, #000, transparent); mask-image: radial-gradient(50% 50% at 50% 0%, #000, transparent); }
.ri .ri-cta__copy { flex: 1 1 520px; display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ri .ri-cta .ri-h2 { font-size: clamp(30px, 24px + 1.8vw, 52px); }
.ri .ri-cta__text { font-size: var(--bd-lead-size); line-height: 1.55; color: var(--ri-on-dark-3); max-width: 36em; }
.ri .ri-cta__btns { display: flex; flex-wrap: wrap; gap: 12px; }
@media (max-width: 720px) { .ri .ri-cta { border-radius: 16px; padding: 56px 24px; } }

/* ---------------------------------------------------------------- 11. Roles list */
.ri .ri-personas { padding-top: 112px; }
.ri .ri-personas__grid { display: grid; grid-template-columns: minmax(240px, 340px) minmax(0, 1fr); gap: 20px; align-items: start; }
.ri .ri-ptabs { display: flex; flex-direction: column; gap: 6px; position: sticky; top: calc(var(--bd4-top, 0px) + 152px); }
.ri .ri-ptab { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; align-items: center; padding: 14px; border: 0; border-radius: 10px; cursor: pointer; text-align: left; background: #fff; color: var(--ri-ink); box-shadow: inset 0 0 0 1px var(--ri-line); transition: background .25s, box-shadow .25s, color .25s; }
.ri .ri-ptab b { font-size: var(--bd-body-size); font-weight: 600; line-height: 1.25; }
.ri .ri-ptab__ic { width: 44px; height: 44px; border-radius: 8px; display: grid; place-items: center; font-size: 20px; background: #f1f3f8; transition: background .25s, color .25s; }
.ri .ri-ptab.is-on { background: var(--ri-ink); color: #fff; box-shadow: 0 18px 36px -16px rgb(17 25 63 / .6); }
.ri .ri-ptab.is-on .ri-ptab__ic { background: var(--ri-coral); color: #fff; }
.ri .ri-ptab:not(.is-on):hover { background: #f8f9fc; }
.ri .ri-ppanels { min-width: 0; }
.ri .ri-ppanel { position: relative; overflow: hidden; isolation: isolate; border-radius: 18px; padding: 40px 40px 36px; background: radial-gradient(50% 60% at 100% 0%, rgb(160 176 214 / .35), rgb(160 176 214 / 0) 70%), linear-gradient(180deg, #f1f3f8 0%, #e6eaf2 100%); }
.ri .ri-ppanel + .ri-ppanel { margin-top: 20px; }
.ri-js .ri .ri-ppanel[hidden] { display: none; }
.ri-js .ri .ri-ppanel { animation: ri-in .5s var(--ri-ease) both; }
@keyframes ri-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.ri .ri-ppanel__head { display: flex; align-items: center; gap: 16px; }
.ri .ri-ppanel__badge { width: 60px; height: 60px; border-radius: 10px; display: grid; place-items: center; font-size: 26px; color: #fff; background: radial-gradient(80% 70% at 50% 0%, rgb(255 82 70 / .35), rgb(255 82 70 / 0) 75%), var(--ri-ink); box-shadow: 0 12px 26px -10px rgb(17 25 63 / .6); }
.ri .ri-ppanel__head small { display: block; font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); letter-spacing: .1em; text-transform: uppercase; color: var(--ri-mute); }
.ri .ri-ppanel__head h3 { margin-top: 4px; font-size: clamp(24px, 1.2vw + 18px, 32px); font-weight: 500; letter-spacing: -0.02em; line-height: 1.1; }
.ri .ri-ppanel__text { margin-top: 16px; max-width: 36em; font-size: var(--bd-lead-size); line-height: 1.55; color: var(--ri-ink-2); }
.ri .ri-stages { margin-top: 32px; display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.ri .ri-stage { display: flex; flex-direction: column; gap: 12px; padding: 20px 18px 18px; border-radius: 12px; background: #fff; box-shadow: 0 1px 0 rgb(17 25 63 / .04), 0 14px 30px -20px rgb(17 25 63 / .3); }
.ri .ri-stage__top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ri .ri-stage__top > span:first-child { display: flex; align-items: center; gap: 8px; font-size: 18px; color: var(--ri-ink); }
.ri .ri-stage.is-last .ri-stage__top > span:first-child { color: var(--ri-coral); }
.ri .ri-stage__top b { font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.ri .ri-stage__top .ri-num { font-size: var(--bd-eyebrow-size); }
.ri .ri-stage__bar { height: 3px; border-radius: 2px; background: linear-gradient(90deg, var(--ri-ink) var(--p), var(--ri-line-2) 0); }
.ri .ri-stage.is-last .ri-stage__bar { background: var(--ri-coral); }
.ri .ri-stage ul { display: flex; flex-direction: column; gap: 2px; }
.ri .ri-stage li a { display: block; padding: 6px 0; font-size: 14.5px; font-weight: 600; line-height: 1.35; color: var(--ri-ink); }
.ri .ri-stage li a:hover { color: var(--ri-coral); }
.ri .ri-ppanel__roles { margin-top: 24px; padding-top: 20px; border-top: 1px solid #d5dbe6; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.ri .ri-ppanel__label { margin-right: 6px; font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); letter-spacing: .1em; text-transform: uppercase; color: var(--ri-mute); }

.ri .ri-cards--roles { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.ri .ri-rolepages .ri-head { margin-bottom: 48px; }
.ri .ri-rcard { padding: 26px 26px 24px; gap: 12px; transition: transform .3s var(--ri-ease), border-color .3s; }
.ri .ri-rcard:hover { color: #fff; transform: translateY(-4px); border-color: rgb(255 255 255 / .18); }
.ri .ri-rcard__ghost { right: -24px; top: -24px; width: 140px; height: 140px; }
.ri .ri-rcard__top { display: flex; align-items: center; gap: 12px; }
.ri .ri-rcard__badge { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 8px; display: grid; place-items: center; font-size: 20px; background: rgb(255 255 255 / .07); box-shadow: inset 0 1px 0 rgb(255 255 255 / .1); }
.ri .ri-rcard__top small { font-family: var(--bd-font-mono); font-size: 11.5px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--ri-on-dark-2); line-height: 1.35; }
.ri .ri-rcard__title { margin-top: 8px; font-size: 22px; font-weight: 600; line-height: 1.2; letter-spacing: -0.015em; }
.ri .ri-rcard__text { font-size: 14.5px; line-height: 1.5; color: var(--ri-on-dark); }
.ri .ri-rcard__jobs { margin-top: 6px; flex: 1 1 auto; border-top: 1px solid rgb(255 255 255 / .08); }
.ri .ri-rcard__jobs li { display: grid; grid-template-columns: 28px 1fr; gap: 6px; padding: 9px 0; border-bottom: 1px solid rgb(255 255 255 / .05); font-size: var(--bd-small-size); }
.ri .ri-rcard__jobs li span { font-family: var(--bd-font-mono); color: var(--ri-on-dark-2); }
.ri .ri-rcard__cta { margin-top: 8px; font-size: var(--bd-btn-size-sm); font-weight: 600; }

.ri .ri-keep { padding: 120px 0 0; }
.ri .ri-keep--end { padding: 72px 0 120px; }
.ri .ri-keep__box { display: flex; flex-wrap: wrap; gap: 32px 64px; padding: 40px; border-radius: 14px; background: #fff; box-shadow: 0 1px 0 rgb(17 25 63 / .04), 0 18px 40px rgb(17 25 63 / .08); }
.ri .ri-keep__lead { flex: 3 1 220px; display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.ri .ri-keep__lead .ri-btn { margin-top: 6px; }
.ri .ri-keep__grid { flex: 9 1 600px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 12px; align-content: start; }
.ri .ri-mini { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 14px; align-items: start; padding: 14px; border-radius: 10px; background: var(--ri-paper); box-shadow: inset 0 0 0 1px var(--ri-line); color: var(--ri-ink); transition: background .2s; }
.ri .ri-mini:hover { color: var(--ri-ink); background: #eef1f7; }
.ri .ri-mini__ic { width: 40px; height: 40px; border-radius: 8px; display: grid; place-items: center; font-size: 18px; background: #fff; box-shadow: inset 0 0 0 1px var(--ri-line); }
.ri .ri-mini > span:last-child { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ri .ri-mini b { font-size: var(--bd-nav-size); font-weight: 600; }
.ri .ri-mini small { font-size: 13px; line-height: 1.4; color: var(--ri-ink-2); }
.ri .ri-bar-wrap { padding: 24px 0 120px; }
.ri .ri-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 48px; padding: 40px 44px; border-radius: 14px; color: #fff; background: radial-gradient(40% 120% at 50% 0%, rgb(255 82 70 / .22) 0%, rgb(3 8 36 / 0) 100%), var(--ri-navy); box-shadow: 0 30px 60px -28px rgb(0 3 19 / .55); }
.ri .ri-bar__mark { flex: 0 0 auto; width: 56px; height: 56px; padding: 13px; border-radius: 10px; background: rgb(255 255 255 / .07); box-shadow: inset 0 1px 0 rgb(255 255 255 / .1); object-fit: contain; }
.ri .ri-bar__txt { flex: 1 1 380px; display: flex; flex-direction: column; gap: 6px; }
.ri .ri-bar__txt b { font-size: 26px; font-weight: 500; letter-spacing: -0.02em; }
.ri .ri-bar__txt span { font-size: var(--bd-body-size); line-height: 1.5; color: var(--ri-on-dark); }
.ri .ri-bar { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; }
@media (max-width: 860px) { .ri .ri-bar { grid-template-columns: 1fr; padding: 28px 24px; } .ri .ri-keep__box { padding: 24px; } }

/* ---------------------------------------------------------------- 12. Industries list */
.ri .ri-filter { position: sticky; top: calc(var(--bd4-top, 0px) + 72px); z-index: 20; background: rgb(246 248 249 / .88); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-bottom: 1px solid var(--ri-line); }
.ri .ri-filter__in { min-height: 68px; display: flex; align-items: center; gap: 16px; }
.ri .ri-filter__label { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; font-size: var(--bd-small-size); font-weight: 600; color: var(--ri-ink-2); }
.ri .ri-filter__chips { flex: 1 1 auto; min-width: 0; display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding: 12px 0; }
.ri .ri-filter__chips::-webkit-scrollbar { display: none; }
.ri .ri-filter__chips button { flex: 0 0 auto; height: 38px; padding: 0 16px; border: 0; border-radius: 8px; cursor: pointer; font-size: var(--bd-small-size); font-weight: 600; white-space: nowrap; background: #fff; color: var(--ri-ink); box-shadow: inset 0 0 0 1px var(--ri-line-2); transition: background .2s, color .2s; }
.ri .ri-filter__chips button.is-on { background: var(--ri-ink); color: #fff; box-shadow: none; }
.ri .ri-filter__count { flex: 0 0 auto; font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); color: var(--ri-mute); }
.ri--inds { background: var(--ri-paper); }
.ri .ri-grid-sec { padding: 56px 0 24px; background: var(--ri-paper); }
.ri .ri-cards--inds { grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); }
.ri .ri-icard { position: relative; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; gap: 12px; padding: 26px 26px 24px; border-radius: 14px; background: #fff; color: var(--ri-ink); box-shadow: 0 1px 0 rgb(17 25 63 / .04), 0 18px 40px rgb(17 25 63 / .06); transition: transform .3s var(--ri-ease), box-shadow .3s; }
.ri .ri-icard:hover { color: var(--ri-ink); transform: translateY(-4px); box-shadow: 0 1px 0 rgb(17 25 63 / .04), 0 28px 56px -18px rgb(17 25 63 / .22); }
.ri .ri-icard[hidden] { display: none; }
.ri .ri-icard__top { display: flex; align-items: center; justify-content: space-between; }
.ri .ri-icard__badge { width: 52px; height: 52px; border-radius: 10px; display: grid; place-items: center; font-size: 24px; color: #fff; background: radial-gradient(80% 70% at 50% 0%, rgb(255 82 70 / .35), rgb(255 82 70 / 0) 75%), var(--ri-ink); box-shadow: 0 10px 24px -10px rgb(17 25 63 / .55); }
.ri .ri-icard__go { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; font-size: 17px; box-shadow: inset 0 0 0 1px var(--ri-line-2); }
.ri .ri-icard__title { margin-top: 10px; font-size: 22px; font-weight: 600; line-height: 1.2; letter-spacing: -0.015em; }
.ri .ri-icard__text { font-size: 14.5px; line-height: 1.5; color: var(--ri-ink-2); }
.ri .ri-icard__threats { margin-top: 6px; flex: 1 1 auto; }
.ri .ri-icard__threats li { display: grid; grid-template-columns: 14px 1fr; gap: 8px; align-items: baseline; padding: 8px 0; border-top: 1px solid var(--ri-line-3); font-size: var(--bd-small-size); line-height: 1.4; }
.ri .ri-icard__threats li::before { content: ""; width: 6px; height: 6px; background: var(--ri-coral); transform: translateY(-1px); }
.ri .ri-icard__rules { display: flex; flex-wrap: wrap; gap: 6px; padding-top: 14px; border-top: 1px solid var(--ri-line-3); }
.ri .ri-icard__rules span { display: inline-flex; align-items: center; min-height: 26px; padding: 3px 10px; border-radius: 6px; background: #f1f3f8; color: var(--ri-ink-2); font-size: 12px; font-weight: 600; line-height: 1.3; }
.ri .ri-icard__rules span.is-on { background: var(--ri-ink); color: #fff; }
.ri--inds .ri-keep { background: var(--ri-paper); }

/* ---------------------------------------------------------------- 13. Industry page body */
.ri .ri-bodywrap { padding: 80px 0 0; }
.ri .ri-body { display: flex; flex-wrap: wrap; gap: 40px 64px; align-items: flex-start; }
.ri .ri-toc { flex: 0 1 220px; position: sticky; top: calc(var(--bd4-top, 0px) + 152px); display: flex; flex-direction: column; gap: 2px; }
.ri .ri-toc__title { font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); letter-spacing: .1em; text-transform: uppercase; color: var(--ri-mute); margin-bottom: 10px; }
.ri .ri-toc a { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 6px; font-size: var(--bd-small-size); font-weight: 500; color: var(--ri-ink-2); transition: background .2s, color .2s; }
.ri .ri-toc a i { flex: 0 0 auto; width: 6px; height: 6px; background: #d5dbe6; }
.ri .ri-toc a:hover { color: var(--ri-ink); }
.ri .ri-toc a.is-on { background: #f1f3f8; color: var(--ri-ink); font-weight: 600; }
.ri .ri-toc a.is-on i { background: var(--ri-coral); }
.ri .ri-toc__date { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--ri-line-3); font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); color: var(--ri-mute); }
.ri .ri-body__main { flex: 1 1 480px; min-width: 0; display: flex; flex-direction: column; gap: 96px; }
.ri .ri-block { scroll-margin-top: calc(var(--bd4-top, 0px) + 112px); }
.ri .ri-short--box { position: relative; isolation: isolate; overflow: hidden; border-radius: 18px; padding: 44px 48px; scroll-margin-top: calc(var(--bd4-top, 0px) + 112px); background: radial-gradient(50% 80% at 100% 0%, rgb(160 176 214 / .35), rgb(160 176 214 / 0) 70%), linear-gradient(180deg, #f1f3f8 0%, #e6eaf2 100%); }
.ri .ri-short--box .ri-short__def { margin-top: 18px; font-size: 24px; line-height: 1.5; letter-spacing: -0.01em; }
.ri .ri-glance--ruled { margin-top: 28px; padding-top: 22px; border-top: 1px solid #d5dbe6; gap: 14px 20px; font-size: var(--bd-body-size); }
.ri .ri-cover { border-radius: 14px; overflow: hidden; background: var(--ri-navy); box-shadow: 0 30px 60px -28px rgb(0 3 19 / .45); }
.ri .ri-cover img { display: block; width: 100%; height: auto; }
.ri .ri-stat { display: grid; grid-template-columns: auto 1fr; gap: 24px; align-items: center; padding: 28px 32px; border-radius: 14px; background: var(--ri-paper); box-shadow: inset 0 0 0 1px var(--ri-line); }
.ri .ri-stat__fig { font-size: var(--bd-stat-size); font-weight: var(--bd-stat-weight); letter-spacing: var(--bd-stat-track); line-height: 1; color: var(--ri-coral); }
.ri .ri-stat figcaption { display: flex; flex-direction: column; gap: 6px; font-size: var(--bd-body-size); line-height: 1.5; color: var(--ri-ink-2); }
.ri .ri-stat small { font-size: var(--bd-small-size); color: var(--ri-mute); }
.ri .ri-stat small a { text-decoration: underline; text-underline-offset: 3px; }

.ri .ri-cards--threat2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.ri .ri-xcard { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 20px; padding: 26px 26px 24px; border-radius: 14px; background: #fff; border: 1px solid var(--ri-line); box-shadow: 0 18px 40px rgb(17 25 63 / .06); color: var(--ri-ink); transition: box-shadow .25s, transform .25s; }
.ri a.ri-xcard:hover { color: var(--ri-ink); transform: translateY(-2px); box-shadow: 0 24px 50px -16px rgb(17 25 63 / .22); }
.ri .ri-xcard__tile { width: 56px; height: 56px; border-radius: 10px; display: grid; place-items: center; font-size: 24px; color: #fff; background: radial-gradient(80% 70% at 50% 0%, rgb(255 82 70 / .35), rgb(255 82 70 / 0) 75%), var(--ri-ink); box-shadow: 0 10px 24px -10px rgb(17 25 63 / .55); }
.ri .ri-xcard__tile.is-coral { background: var(--ri-coral); }
.ri .ri-xcard__txt { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.ri .ri-xcard__txt b { font-size: 20px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.25; }
.ri .ri-xcard__txt > span { font-size: 15px; line-height: 1.5; color: var(--ri-ink-2); }
.ri .ri-xcard__txt em { margin-top: 8px; font-size: var(--bd-small-size); font-weight: 600; }

.ri .ri-cards--rules { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.ri .ri-rcard2 { display: flex; flex-direction: column; gap: 14px; padding: 28px; border-radius: 14px; background: var(--ri-paper); box-shadow: inset 0 0 0 1px var(--ri-line); }
.ri .ri-rcard2__top { display: flex; align-items: center; gap: 14px; }
.ri .ri-rcard2__top b { font-size: 22px; font-weight: 600; letter-spacing: -0.015em; line-height: 1.2; }
.ri .ri-rcard2__ic { flex: 0 0 auto; width: 48px; height: 48px; border-radius: 8px; display: grid; place-items: center; font-size: 22px; background: #fff; box-shadow: inset 0 0 0 1px var(--ri-line); }
.ri .ri-rcard2__text { flex: 1 1 auto; font-size: 15px; line-height: 1.55; color: var(--ri-ink-2); }

.ri .ri-darkbox { position: relative; overflow: hidden; isolation: isolate; border-radius: 18px; padding: 48px; color: #fff; scroll-margin-top: calc(var(--bd4-top, 0px) + 112px); background: radial-gradient(50% 40% at 50% 0%, rgb(255 82 70 / .26) 0%, rgb(3 8 36 / 0) 100%), url(../../img/uc/bg-digital-red.jpg) right bottom / 160% auto no-repeat, var(--ri-navy); box-shadow: 0 40px 80px -24px rgb(0 3 19 / .35); }
.ri .ri-darkbox .ri-head--stack { margin-bottom: 28px; }
.ri .ri-helps { border-bottom: 1px solid rgb(255 255 255 / .1); }
.ri .ri-helps a { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; padding: 22px 0; border-top: 1px solid rgb(255 255 255 / .1); color: #fff; }
.ri .ri-helps a:hover { color: #fff; }
.ri .ri-helps__ic { flex: 0 0 52px; width: 52px; height: 52px; border-radius: 8px; display: grid; place-items: center; font-size: 22px; background: rgb(255 255 255 / .07); box-shadow: inset 0 1px 0 rgb(255 255 255 / .1); }
.ri .ri-helps b { flex: 1 1 140px; font-size: 19px; font-weight: 600; line-height: 1.25; }
.ri .ri-helps__txt { flex: 1.6 1 220px; font-size: 15.5px; line-height: 1.5; color: var(--ri-on-dark); }
.ri .ri-helps__go { flex: 0 0 44px; margin-left: auto; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font-size: 18px; box-shadow: inset 0 0 0 1px rgb(255 255 255 / .2); transition: background .2s, color .2s; }
.ri .ri-helps a:hover .ri-helps__go { background: #fff; color: var(--ri-navy); }
.ri .ri-ucs { margin-top: 36px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; scroll-margin-top: calc(var(--bd4-top, 0px) + 112px); }
.ri .ri-ucs__label { margin-right: 8px; font-size: var(--bd-small-size); font-weight: 600; color: var(--ri-on-dark); }
.ri .ri-proof { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px; padding: 28px 32px; border-radius: 14px; background: #fff; border: 1px solid var(--ri-line); box-shadow: 0 18px 40px rgb(17 25 63 / .06); }
.ri .ri-proof__txt { flex: 1 1 320px; display: flex; flex-direction: column; gap: 6px; }
.ri .ri-proof__txt b { font-size: 22px; font-weight: 600; letter-spacing: -0.015em; }
.ri .ri-proof__txt span { font-size: var(--bd-body-size); line-height: 1.5; color: var(--ri-ink-2); }

.ri .ri-land__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
.ri .ri-land__head .ri-head { margin: 0; flex: 1 1 100%; }
.ri .ri-tabs { display: flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 16px; background: var(--ri-paper); box-shadow: inset 0 0 0 1px var(--ri-line); }
.ri .ri-tabs button { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px; border: 0; border-radius: 8px; cursor: pointer; font-size: var(--bd-small-size); font-weight: 600; background: transparent; color: var(--ri-ink-2); transition: background .2s, color .2s; }
.ri .ri-tabs button small { font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); opacity: .7; }
.ri .ri-tabs button.is-on { background: var(--ri-ink); color: #fff; }
.ri .ri-lgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 14px; }
.ri-js .ri .ri-lgrid[hidden] { display: none; }
.ri .ri-lcard { display: flex; flex-direction: column; gap: 10px; padding: 22px 22px 20px; border-radius: 12px; background: #fff; border: 1px solid var(--ri-line); color: var(--ri-ink); transition: box-shadow .25s, border-color .25s; }
.ri .ri-lcard:hover { color: var(--ri-ink); border-color: #d5dbe6; box-shadow: 0 18px 40px -16px rgb(17 25 63 / .2); }
.ri .ri-lcard__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.ri .ri-lcard__name { display: flex; align-items: center; gap: 10px; min-width: 0; }
.ri .ri-lcard__name b { font-size: 18px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.25; }
.ri .ri-lcard__ic { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 6px; display: grid; place-items: center; font-size: 16px; background: #f1f3f8; }
.ri .ri-lcard__pill { flex: 0 0 auto; display: inline-flex; align-items: center; min-height: 24px; padding: 2px 9px; border-radius: 4px; background: #f1f3f8; color: var(--ri-ink-2); font-family: var(--bd-font-mono); font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.ri .ri-lcard__text { flex: 1 1 auto; font-size: var(--bd-small-size); line-height: 1.5; color: var(--ri-ink-2); }
.ri .ri-lcard__meta { padding-top: 10px; border-top: 1px solid var(--ri-line-3); font-size: 13px; line-height: 1.45; color: var(--ri-mute); }

.ri .ri-srcgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 40px; align-items: start; scroll-margin-top: calc(var(--bd4-top, 0px) + 112px); }
.ri .ri-readsec__stack { display: flex; flex-direction: column; gap: 72px; }
.ri .ri-rowhead { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 28px; }
.ri .ri-cards--read { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.ri .ri-dcard { position: relative; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; gap: 10px; min-height: 220px; padding: 26px; border-radius: 14px; color: #fff; transition: transform .25s; background: radial-gradient(67% 45% at 50% 0%, rgb(255 82 70 / .16) 0%, rgb(3 9 37 / 0) 100%), radial-gradient(80% 50% at 100% 100%, rgb(59 79 150 / .4) 0%, rgb(3 9 37 / 0) 100%), var(--ri-navy); }
.ri .ri-dcard:hover { color: #fff; transform: translateY(-3px); }
.ri .ri-dcard__ghost { right: -20px; top: auto; bottom: -20px; width: 130px; height: 130px; color: rgb(255 255 255 / .05); }
.ri .ri-dcard__top { display: flex; align-items: center; gap: 10px; }
.ri .ri-dcard__ic { width: 38px; height: 38px; border-radius: 7px; display: grid; place-items: center; font-size: 18px; background: rgb(255 255 255 / .07); }
.ri .ri-dcard__top small { font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--ri-on-dark-2); }
.ri .ri-dcard > b { margin-top: 10px; font-size: 22px; font-weight: 600; letter-spacing: -0.015em; line-height: 1.25; }
.ri .ri-dcard__text { flex: 1 1 auto; font-size: 14.5px; line-height: 1.5; color: var(--ri-on-dark); }
.ri .ri-dcard__go { align-self: flex-end; font-size: var(--bd-small-size); font-weight: 600; }
.ri .ri-cards--explore { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 12px; }
.ri .ri-ecard { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; align-items: start; padding: 18px; border-radius: 12px; background: #fff; box-shadow: 0 1px 0 rgb(17 25 63 / .04), 0 14px 30px -20px rgb(17 25 63 / .25); color: var(--ri-ink); transition: box-shadow .2s; }
.ri .ri-ecard:hover { color: var(--ri-ink); box-shadow: 0 1px 0 rgb(17 25 63 / .04), 0 20px 40px -18px rgb(17 25 63 / .3); }
.ri .ri-ecard__ic { width: 44px; height: 44px; border-radius: 8px; display: grid; place-items: center; font-size: 20px; color: #fff; background: var(--ri-ink); }
.ri .ri-ecard > span:last-child { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ri .ri-ecard small { font-family: var(--bd-font-mono); font-size: var(--bd-eyebrow-size); letter-spacing: .08em; text-transform: uppercase; color: var(--ri-mute); }
.ri .ri-ecard b { font-size: 17px; font-weight: 600; line-height: 1.3; }
.ri .ri-ecard > span > span { font-size: var(--bd-small-size); line-height: 1.45; color: var(--ri-ink-2); }

/* ---------------------------------------------------------------- 14. Responsive */
@media (max-width: 1100px) {
    .ri .ri-hero__grid, .ri .ri-short__grid, .ri .ri-split { grid-template-columns: minmax(0, 1fr); }
    .ri .ri-hero__side { margin-left: 0; max-width: 560px; }
    .ri .ri-split--ruled .ri-split__side { position: static; }
    .ri .ri-body { flex-direction: column; }
    .ri .ri-toc { position: static; flex: 0 0 auto; width: 100%; flex-direction: row; flex-wrap: wrap; gap: 6px; }
    .ri .ri-toc__title, .ri .ri-toc__date { display: none; }
    .ri .ri-toc a { padding: 8px 14px; background: #f1f3f8; }
    .ri .ri-body__main { width: 100%; gap: 72px; }
}
@media (max-width: 900px) {
    .ri .ri-personas__grid { grid-template-columns: minmax(0, 1fr); }
    .ri .ri-ptabs { position: static; flex-direction: row; overflow-x: auto; scrollbar-width: none; padding-bottom: 6px; }
    .ri .ri-ptab { flex: 0 0 auto; min-width: 220px; }
}
@media (max-width: 720px) {
    .ri .ri-hero { padding: calc(var(--bd4-top, 0px) + 128px) 0 64px; }
    .ri .ri-hero--inds { padding-bottom: 0; }
    .ri .ri-tile { height: 200px; }
    .ri .ri-week__row { grid-template-columns: 44px minmax(0, 1fr); padding: 16px; gap: 14px; }
    .ri .ri-week__tile { width: 44px; height: 44px; font-size: 18px; }
    .ri .ri-week__n { display: none; }
    .ri .ri-get { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 20px; }
    .ri .ri-ppanel { padding: 24px 20px; border-radius: 14px; }
    .ri .ri-filter__label { display: none; }
    .ri .ri-filter__count { display: none; }
    .ri .ri-short--box { padding: 28px 24px; border-radius: 14px; }
    .ri .ri-short--box .ri-short__def { font-size: 20px; }
    .ri .ri-darkbox { padding: 28px 22px; border-radius: 14px; }
    .ri .ri-helps a { gap: 14px; }
    .ri .ri-helps__txt { flex-basis: 100%; order: 3; }
    .ri .ri-helps__go { display: none; }
    .ri .ri-stat { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .ri .ri-faq__a { padding-right: 0; }
    .ri .ri-faqsec { padding-bottom: 72px; }
    .ri .ri-rules__row { grid-template-columns: minmax(0, 1fr); gap: 6px; }
    .ri .ri-bodywrap { padding-top: 48px; }
    .ri .ri-keep { padding-top: 72px; }
    .ri .ri-keep--end { padding-bottom: 72px; }
    .ri .ri-bar-wrap { padding-bottom: 72px; }
}

@media (min-width: 1000px) {
    .ri .ri-cards--threats:has(> :nth-child(5):last-child) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .ri .ri-cards--threats:has(> :nth-child(5):last-child) > * { grid-column: span 2; }
    .ri .ri-cards--threats:has(> :nth-child(5):last-child) > :nth-child(n+4) { grid-column: span 3; }
}

/* review fix: four threat cards sit as 2 by 2, not 3 plus 1 */
@media (min-width: 700px) {
    .ri .ri-cards--threats:has(> :nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* v3: "Who targets this sector" actor cards (dark, one per threat group). */
.ri .ri-actors { display: grid; grid-template-columns: 1fr; gap: 14px; }
.ri .ri-actors.is-multi { grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }
.ri .ri-acard { position: relative; overflow: hidden; isolation: isolate; display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 22px; padding: 30px clamp(22px, 2.5vw, 32px); border-radius: 14px; background: radial-gradient(60% 80% at 100% 0%, rgb(59 79 150 / .45) 0%, rgb(3 9 37 / 0) 100%), #000313; color: #fff; box-shadow: 0 30px 60px -28px rgb(0 3 19 / .6); transition: transform .25s; }
.ri a.ri-acard:hover { color: #fff; transform: translateY(-3px); }
.ri .ri-acard__ic { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: rgb(255 255 255 / .06); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .14); color: #ff5247; }
.ri .ri-acard__ic .ri-ic, .ri .ri-acard__ic svg, .ri .ri-acard__ic i { width: 22px; height: 22px; }
.ri .ri-acard__txt { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.ri .ri-acard__txt b { font-size: 24px; font-weight: 600; letter-spacing: -0.015em; }
.ri .ri-acard__txt small { font-family: var(--bd-font-mono); font-size: 13px; letter-spacing: .04em; color: #8b97c4; }
.ri .ri-acard__txt span { font-size: 15.5px; line-height: 1.6; color: #c6cdd7; }
.ri .ri-acard__txt em { margin-top: 4px; font-style: normal; font-size: 14px; font-weight: 600; }
@media (max-width: 600px) { .ri .ri-acard { grid-template-columns: 44px minmax(0, 1fr); gap: 16px; padding: 24px 20px; } .ri .ri-acard__ic { width: 44px; height: 44px; } }

/* v3 review: balanced grids, name and tag never collide */
@media (min-width: 900px) {
    .ri .ri-cards--threat2:has(> :nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ri .ri-cards--threat2:has(> :nth-child(5):last-child) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .ri .ri-cards--threat2:has(> :nth-child(5):last-child) > * { grid-column: span 2; }
    .ri .ri-cards--threat2:has(> :nth-child(5):last-child) > :nth-child(n+4) { grid-column: span 3; }
    .ri .ri-actors.is-multi:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---- design parity (industries): full-width container, proof and use cases inside the dark panel ---- */
.ri--ind .ri-wrap, .ri--inds .ri-wrap { max-width: calc(var(--ri-max) + 2 * var(--ri-pad)); }
.ri .ri-proof--dark { margin-top: 32px; padding: 22px 24px; border-radius: 12px; background: rgb(255 255 255 / .05); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .1); border: 0; color: #fff; transition: background .2s; }
.ri a.ri-proof--dark:hover { color: #fff; background: rgb(255 255 255 / .08); }
.ri .ri-proof--dark .ri-proof__txt { gap: 4px; }
.ri .ri-proof--dark .ri-proof__txt small { font-family: var(--bd-font-mono); font-size: 12px; letter-spacing: .12em; color: #ff5247; }
.ri .ri-proof--dark .ri-proof__txt b { font-size: 19px; font-weight: 600; letter-spacing: 0; }
.ri .ri-proof--dark .ri-proof__txt span { font-size: 14.5px; color: var(--ri-on-dark); }
.ri .ri-proof__btn { display: inline-flex; align-items: center; height: 44px; padding: 0 20px; border-radius: 8px; background: #ff5247; font-size: 15px; font-weight: 700; color: #fff; }
.ri .ri-ucs { display: flex; flex-wrap: nowrap; flex-direction: column; align-items: stretch; gap: 16px; }
.ri .ri-ucs__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.ri .ri-ucs__label { margin: 0; }
.ri .ri-ucs__all { font-size: var(--bd-small-size); font-weight: 600; color: #fff; }
.ri .ri-ucs__all:hover { color: #ff5247; }
.ri .ri-ucs__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 10px; }
.ri .ri-uct { display: grid; grid-template-columns: minmax(0, 1fr) 16px; gap: 12px; align-items: center; padding: 16px 18px; border-radius: 10px; background: rgb(255 255 255 / .05); box-shadow: inset 0 1px 0 rgb(255 255 255 / .06); color: #fff; transition: background .2s; }
.ri a.ri-uct:hover { color: #fff; background: rgb(255 255 255 / .1); }
.ri .ri-uct > span { display: flex; flex-direction: column; gap: 3px; }
.ri .ri-uct b { font-size: 15.5px; font-weight: 600; }
.ri .ri-uct > span > span { font-size: 13.5px; line-height: 1.45; color: var(--ri-on-dark); }
.ri .ri-uct i { color: #ff5247; }
.ri .ri-lcard__pill.is-hot { background: #ffe9e7; color: #d63a30; }
.ri #actors .ri-head__lead { max-width: 40em; font-size: 17px; }
.ri--ind .ri-hero .ri-h1, .ri--inds .ri-hero .ri-h1 { font-size: clamp(31px, 4.69vw, 60px); line-height: 1.04; letter-spacing: -0.03em; text-wrap: balance; }
.ri .ri-glass__count { white-space: nowrap; flex: 0 0 auto; }

/* ============ Readability round (11 Oct): visible card edges, 15px text, tinted panels ============ */
.ri .ri-xcard, .ri .ri-lcard, .ri .ri-ccard { border: 1px solid rgb(0 3 19 / .13); box-shadow: 0 14px 32px rgb(17 25 63 / .07); }
.ri a.ri-xcard:hover, .ri a.ri-lcard:hover { border-color: rgb(0 3 19 / .3); box-shadow: 0 22px 44px -14px rgb(17 25 63 / .26); transform: translateY(-3px); }
.ri .ri-lcard__text, .ri .ri-dcard__text, .ri .ri-xcard__txt > span { font-size: 15px; line-height: 1.6; }
.ri .ri-lcard__meta { font-size: 14.5px; }
.ri .ri-lcard__pill { font-size: 12px; }
.ri .ri-lcard__pill.is-hot { color: #b92e26; }
.ri .ri-dcard__go, .ri .ri-ulink, .ri .ri-ucs__label, .ri .ri-ucs__all, .ri .ri-num, .ri .ri-glass__title, .ri .ri-crumbs__here, .ri .ri-toc a { font-size: 15px; }
/* Two content blocks sit on a soft tinted panel so the long column is no longer one white run. */
.ri .ri-body__main > .ri-block:nth-of-type(2),
.ri .ri-body__main > .ri-block:nth-of-type(4) {
    padding: clamp(20px, 2.4vw, 32px); border-radius: 18px;
    background: radial-gradient(55% 70% at 8% 0%, rgb(60 80 200 / .08), rgb(60 80 200 / 0) 70%), radial-gradient(45% 60% at 98% 100%, rgb(255 82 70 / .07), rgb(255 82 70 / 0) 70%), #eef1f6;
    box-shadow: inset 0 0 0 1px rgb(0 3 19 / .08);
}
@media (prefers-reduced-motion: reduce) { .ri a.ri-xcard:hover, .ri a.ri-lcard:hover { transform: none; } }
.ri .ri-crumbs, .ri .ri-crumbs a, .ri .ri-xcard__txt em, .ri .ri-acard__txt em, .ri .ri-acard__txt small, .ri .ri-note--icon span, .ri .ri-proof__txt, .ri .ri-lcard__meta { font-size: 15px; }
.ri .ri-glass__row span, .ri .ri-glass a span { font-size: 15px; }
.ri .ri-proof__txt *, .ri .ri-uct span, .ri .ri-sources a, .ri .ri-sources span, .ri .ri-ecard span { font-size: 15px; }

/* owner fb C11 C13 C14 */
.ri a.ri-tcard { position: relative; transition: transform .25s cubic-bezier(.22, 1, .36, 1), box-shadow .25s cubic-bezier(.22, 1, .36, 1); }
.ri a.ri-tcard::after { content: ""; position: absolute; left: 0; right: 0; top: -6px; bottom: -8px; }
@media (prefers-reduced-motion: reduce) { .ri a.ri-tcard { transition: none; } .ri a.ri-tcard:hover { transform: none; } }
@media (min-width: 901px) {
    .ri .ri-personas__grid { align-items: stretch; }
    .ri .ri-ptabs { position: static; }
    .ri .ri-ptab { flex: 1 1 auto; }
    .ri .ri-ppanels { display: grid; }
    .ri .ri-ppanel:not([hidden]) { height: 100%; align-content: center; }
}

/* owner sol S5 S6 S7b SWEEP2 (roles and industries) */
/* S6: equal-height columns, cards spread to the bottom of the left panel; Questions aligned to the page column */
.ri .ri-gets .ri-split { align-items: stretch; }
.ri .ri-gets__list { height: 100%; }
.ri .ri-gets__list .ri-get { flex: 1 1 auto; align-items: center; }
.ri .ri-faqsec .ri-split--ruled { width: auto; max-width: var(--ri-max); box-sizing: content-box; padding-left: var(--ri-pad); padding-right: var(--ri-pad); border-top: 0; background: linear-gradient(var(--ri-line-2), var(--ri-line-2)) center top / calc(100% - 2 * var(--ri-pad)) 1px no-repeat; }
@media (max-width: 1100px) { .ri .ri-gets__list .ri-get { flex: 0 0 auto; } }

/* S7b: industry "On this page" like the blog index: thin rail, coral active marker, wrapping titles (look only) */
@media (min-width: 1101px) {
    .ri .ri-toc { gap: 0; }
    .ri .ri-toc a { display: grid; grid-template-columns: 2px minmax(0, 1fr); align-items: stretch; gap: 12px; padding: 7px 0; border-radius: 0; background: transparent; font-size: 14px; line-height: 1.35; font-weight: 500; color: #6b7591; overflow-wrap: anywhere; }
    .ri .ri-toc a i { width: 2px; height: auto; border-radius: 1px; background: var(--ri-line); }
    .ri .ri-toc a:hover { color: var(--ri-ink); background: transparent; }
    .ri .ri-toc a.is-on { background: transparent; color: var(--ri-ink); font-weight: 600; }
    .ri .ri-toc a.is-on i { background: var(--ri-coral); }
    .ri .ri-toc__title { font-family: inherit; text-transform: none; letter-spacing: 0; font-size: 13px; font-weight: 600; }
}

/* S5: Go further, one compact tabbed component on the navy ramp */
.ri .ri-fg { display: flex; flex-direction: column; gap: 24px; padding: 32px; border-radius: 16px; background: #eef0f6; box-shadow: inset 0 0 0 1px rgb(0 3 19 / .12); }
.ri .ri-fg__top { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px 32px; }
.ri .ri-fg__top .ri-head { margin-bottom: 0; }
.ri .ri-fg .ri-tabs { background: #e1e5ee; box-shadow: inset 0 0 0 1px rgb(0 3 19 / .12); }
.ri .ri-fg .ri-tabs button { color: #11193f; }
.ri .ri-fg .ri-tabs button.is-on { background: #11193f; color: #fff; }
.ri-js .ri .ri-fgp[hidden] { display: none; }
.ri .ri-fgp { display: flex; flex-direction: column; gap: 20px; }
.ri-js .ri .ri-fgp { animation: ri-in .5s var(--ri-ease) both; }
.ri .ri-fgp__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.ri .ri-fgp__foot { display: flex; }
.ri .ri-fgi, .ri .ri-fgr { display: grid; border-radius: 10px; background: #e1e5ee; box-shadow: inset 0 0 0 1px rgb(0 3 19 / .12); color: #11193f; transition: background .2s, transform .2s; }
.ri .ri-fgi:hover, .ri .ri-fgr:hover { background: #d3d8e5; color: #11193f; }
.ri .ri-fgi { grid-template-columns: 44px minmax(0, 1fr) 16px; gap: 14px; align-items: center; padding: 18px 20px; }
.ri .ri-fgi__ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 8px; background: #11193f; color: #fff; }
.ri .ri-fgi__ic .ri-ic { width: 22px; height: 22px; }
.ri .ri-fgi__txt { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ri .ri-fgi__txt b, .ri .ri-fgr__txt b { font-size: var(--bd-body-size); font-weight: 600; line-height: 1.3; }
.ri .ri-fgi__txt span { font-size: 14px; line-height: 1.45; color: #3d4559; }
.ri .ri-fgi__go { font-style: normal; color: #11193f; transition: transform .2s; }
.ri .ri-fgi:hover .ri-fgi__go { transform: translateX(3px); color: #d63a30; }
.ri .ri-fgr { grid-template-rows: auto 1fr; overflow: hidden; }
.ri .ri-fgr__img { position: relative; display: grid; place-items: center; aspect-ratio: 16 / 9; overflow: hidden; background: linear-gradient(135deg, #000313 0%, #11193f 100%); color: #a6b0d2; }
.ri .ri-fgr__img .ri-ic { width: 34px; height: 34px; opacity: .7; }
.ri .ri-fgr__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ri .ri-fgr__txt { display: flex; flex-direction: column; gap: 6px; padding: 14px 18px 18px; }
.ri .ri-fg .ri-kind { color: #3d4559; }
@media (max-width: 1100px) { .ri .ri-fgp__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) {
    .ri .ri-fg { padding: 20px 16px; border-radius: 12px; }
    .ri .ri-fgp__grid { grid-template-columns: minmax(0, 1fr); }
    .ri .ri-fg .ri-tabs { width: 100%; }
    .ri .ri-fg .ri-tabs button { flex: 1 1 auto; justify-content: center; padding: 0 10px; }
}
@media (prefers-reduced-motion: reduce) { .ri-js .ri .ri-fgp { animation: none; } .ri .ri-fgi, .ri .ri-fgr, .ri .ri-fgi__go { transition: none; } }
@media (max-width: 700px) {
    .ri .ri-fgr { grid-template-columns: 112px minmax(0, 1fr); grid-template-rows: auto; align-items: stretch; }
    .ri .ri-fgr__img { aspect-ratio: auto; min-height: 88px; }
    .ri .ri-fgr__txt { padding: 12px 14px; justify-content: center; }
}

/* owner sol S7c: role/industry content column = header width (1280); panel bleeds by its own padding only */
.ri .ri-wrap.ri-wrap--in { max-width: calc(var(--ri-max) + 2 * (var(--ri-pad) - 16px)); }
.ri .ri-cta { max-width: calc(var(--ri-max) + 96px); }

/* owner sol S1/S7a: active TOC link keeps the same text metrics (no reflow while scroll-spy runs) */
.ri .ri-toc a, .ri .ri-toc a.is-on { font-weight: 500; }
.ri .ri-toc a.is-on { text-shadow: .4px 0 0 currentColor; }

/* Threat landscape: composed at any count (1, 2, 3+), designed blocks fill the column, few cards pair with a block. */
.ri .ri-lgrid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); }
.ri .ri-lgrid--n1 { grid-template-columns: 1fr; }
.ri .ri-lgrid--n1 .ri-lcard { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-areas: "top text" "meta text"; column-gap: 40px; row-gap: 14px; align-items: start; padding: 28px 30px; }
.ri .ri-lgrid--n1 .ri-lcard__top { grid-area: top; }
.ri .ri-lgrid--n1 .ri-lcard__text { grid-area: text; font-size: 16px; }
.ri .ri-lgrid--n1 .ri-lcard__meta { grid-area: meta; align-self: end; }
@media (max-width: 700px) { .ri .ri-lgrid--n1 .ri-lcard { display: flex; } }
.ri .ri-blocks__in .blog-detail-content.blog-detail-content .bdb { max-width: 100%; margin: 0; }
.ri .ri-blocks__in .blog-detail-content.blog-detail-content { margin: 0; }
.ri .ri-land__split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 24px; align-items: stretch; }
.ri .ri-land__split .ri-land__cards { display: flex; flex-direction: column; min-width: 0; }
.ri .ri-land__split .ri-lgrid { grid-template-columns: 1fr; flex: 1 1 auto; grid-auto-rows: 1fr; }
.ri .ri-land__split .ri-lgrid .ri-lcard { display: flex; }
.ri .ri-land__split .ri-blocks__in { min-width: 0; display: flex; }
.ri .ri-land__split .ri-blocks__in > .blog-detail-content { flex: 1 1 auto; display: flex; }
.ri .ri-land__split .ri-blocks__in .bdb { flex: 1 1 auto; }
@media (max-width: 900px) { .ri .ri-land__split { grid-template-columns: 1fr; } }

/* DIG-190: one landscape card plus one designed block: stack them, so the single card is not stretched over empty space */
.ri .ri-land__split:has(.ri-lgrid--n1) { grid-template-columns: minmax(0, 1fr); }
.ri .ri-land__split:has(.ri-lgrid--n1) .ri-land__cards { display: block; }
.ri .ri-land__split:has(.ri-lgrid--n1) .ri-lgrid { grid-auto-rows: auto; }
.ri .ri-land__split:has(.ri-lgrid--n1) .ri-lgrid .ri-lcard { display: grid; }
.ri .ri-land__split:has(.ri-lgrid--n1) .ri-blocks__in, .ri .ri-land__split:has(.ri-lgrid--n1) .ri-blocks__in > .blog-detail-content { display: block; }
@media (max-width: 700px) { .ri .ri-land__split:has(.ri-lgrid--n1) .ri-lgrid .ri-lcard { display: flex; } }
.ri .ri-land__split:has(.ri-lgrid--n1) .ri-blocks__in .bdb { max-width: none; width: 100%; }
.ri .ri-land__split:has(.ri-lgrid--n1) .ri-blocks__in, .ri .ri-land__split:has(.ri-lgrid--n1) .ri-blocks__in > .blog-detail-content { max-width: none; width: 100%; }
/* DIG-190: exactly four landscape cards sit in two rows of two, not three plus one alone */
.ri .ri-lgrid--n4:has(.ri-lcard:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 600px) { .ri .ri-lgrid--n4:has(.ri-lcard:nth-child(4):last-child) { grid-template-columns: minmax(0, 1fr); } }
/* a last card alone on a three-column row spans the row (7, 10 cards ...) */
@media (min-width: 1000px) { .ri .ri-lgrid--n4:not(:has(.ri-lcard:nth-child(4):last-child)) .ri-lcard:last-child:nth-child(3n + 1) { grid-column: 1 / -1; } }
