:root {--font-heading:"Segoe UI Variable Display","Aptos Display","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif; --font-body:"Segoe UI Variable Text","Aptos","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif; --font-mono:"Cascadia Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace; --brand-blue:#2c88d9; --brand-cyan:#0891b2; --brand-green:#5f7a1f; --brand-yellow:#c47f13; --brand-red:#c94d43; --theme-950:#060d1a; --theme-900:#0a1628; --theme-850:#0c1b30; --theme-800:#0f2038; --theme-700:#162a4a; --theme-text:#f1f5f9; --theme-secondary:#b3bfd0; --theme-muted:#9fadc0; --light-0:#ffffff; --light-50:#f8fafc; --light-100:#f1f5f9; --light-200:#e2e8f0; --light-300:#cbd5e1; --light-text:#17233a; --light-secondary:#475569; --light-muted:#64748b; --light-border:#dbe5ef; --light-border-strong:#c4d2df; --light-shadow:0 18px 44px rgba(20,34,55,.08); --color-surface-light:var(--light-50); --color-surface-light-alt:var(--light-100); --color-text-on-light:var(--light-text); --color-text-on-light-secondary:var(--light-secondary)} html {background:var(--theme-950)} body {min-height:100vh; font-family:var(--font-body); color:var(--theme-text); background:var(--theme-950)} h1,h2,h3,h4,h5,h6,.section-label,.btn,button {font-family:var(--font-heading)} code,pre,kbd,samp {font-family:var(--font-mono)} main {isolation:isolate}::selection {background:rgba(8,145,178,.26); color:#071426}:where(a,button,input,select,textarea,[tabindex]):focus-visible {outline:3px solid #0ea5c6 !important; outline-offset:3px !important; box-shadow:0 0 0 2px #ffffff !important}:where(.nav-link,.nav-mobile__link,.btn,button) {min-height:44px} .skip-link {z-index:10000 !important} .site-header::before {content:""; position:absolute; inset:0 0 auto; height:3px; background:linear-gradient(90deg,var(--brand-blue) 0 25%,var(--brand-red) 25% 50%,var(--brand-green) 50% 75%,var(--brand-yellow) 75% 100%); opacity:.95} .nav-link[aria-current="page"],.nav-mobile__link[aria-current="page"] {color:#fff !important; background:rgba(44,136,217,.14) !important} .nav-link[aria-current="page"]::after {background:var(--brand-blue) !important} .page-context {width:min(1200px,calc(100% - 48px)); margin:0 auto; padding-top:96px; position:relative; z-index:2} .page-context+main {padding-top:0 !important} .page-context__inner {display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; min-height:44px; font-size:.875rem; color:var(--theme-muted)} .page-context a,.page-context button {color:#b9d7f2; background:transparent; border:0; font:inherit; cursor:pointer; padding:.45rem .35rem; border-radius:6px} .page-context a:hover,.page-context button:hover {color:#fff; background:rgba(148,163,184,.08)} .page-context__separator {color:#7f90a6} .page-context__current {color:#dbe9f6}:where(.section--light,.story-section--light,.bg-light,.bg-light-alt,.article-page,.platform-req-page) {--color-text-primary:var(--light-text); --color-text-secondary:var(--light-secondary); --color-text-muted:var(--light-muted); --color-text-on-light:var(--light-text); --color-text-on-light-secondary:var(--light-secondary); --color-surface-card:#ffffff; --color-surface-card-hover:#ffffff; --color-border-subtle:rgba(51,65,85,.14); --color-border-medium:rgba(51,65,85,.24); --color-accent-400:#0e7490; --color-accent-500:#0e7490; --color-accent-600:#075985; --color-signal-400:#047857; --color-signal-500:#059669; --color-gold-400:#a16207; color:var(--light-text)} .section--light,.story-section--light,.bg-light {background:linear-gradient(180deg,#ffffff 0%,var(--light-50) 100%) !important; border-block:1px solid var(--light-200); color:var(--light-text) !important} .bg-light-alt {background:var(--light-100) !important; color:var(--light-text) !important}:where(.section--light,.story-section--light,.bg-light,.bg-light-alt):is(h1,h2,h3,h4,h5,h6,dt,th) {color:var(--light-text) !important}:where(.section--light,.story-section--light,.bg-light,.bg-light-alt):is(p,li,dd,td,label,.section-desc,.card__desc,.feature-list__text) {color:var(--light-secondary) !important}:where(.section--light,.story-section--light,.bg-light,.bg-light-alt) .section-label,:where(.section--light,.story-section--light,.bg-light,.bg-light-alt) .story-kicker {color:#0e7490 !important}:where(.section--light,.story-section--light,.bg-light,.bg-light-alt) .section-label::before {background:#0e7490 !important}:where(.section--light,.story-section--light,.bg-light,.bg-light-alt) a:not(.btn):not(.lang-link) {color:#0e7490}:where(.section--light,.story-section--light,.bg-light,.bg-light-alt) a:not(.btn):not(.lang-link):hover {color:#075985} .text-on-light {color:var(--light-text) !important} .text-on-light-secondary {color:var(--light-secondary) !important}:where(.section--light,.story-section--light,.bg-light,.bg-light-alt):is(.card,.solution-card,.leader-card,.award-card,.download-card,.resource-card,.whitepaper-card,.event-card,.dl-card,.yt-card,.contact-info,.contact-form,.partner-logo,.value-step,.cap-card,.feature-split__visual,.feature-row__visual,.requirement-section,.platform-req-sidebar__card,.sidebar-block,.kb-article-card) {background:#ffffff !important; border-color:var(--light-border) !important; color:var(--light-text) !important; box-shadow:var(--light-shadow) !important}:where(.section--light,.story-section--light,.bg-light,.bg-light-alt):is(.card,.solution-card,.leader-card,.award-card,.download-card,.resource-card,.whitepaper-card,.event-card,.dl-card,.yt-card,.partner-logo,.value-step,.cap-card):hover {background:#ffffff !important; border-color:var(--light-border-strong) !important}:where(.section--light,.story-section--light):is(.card__title,.leader-card__name,.award-card__title,.dl-card__name,.yt-card__title) {color:var(--light-text) !important}:where(.section--light,.story-section--light):is(.leader-card__role,.leader-card__bio,.award-card__year,.dl-card__meta,.yt-card__meta) {color:var(--light-secondary) !important} .card,.solution-card {border-top-color:rgba(44,136,217,.48)} .theme-card {border-top-width:3px !important} .theme-card--blue {border-top-color:var(--brand-blue) !important} .theme-card--cyan {border-top-color:#0891b2 !important} .theme-card--green {border-top-color:var(--brand-green) !important} .theme-card--gold {border-top-color:var(--brand-yellow) !important} .partner-node,.story-visual__badge {background:#ffffff !important; color:var(--light-text) !important; border-color:var(--light-border-strong) !important; box-shadow:0 16px 36px rgba(6,13,26,.22) !important} .partner-hub {background:linear-gradient(145deg,#17385e,#0a1628) !important} .milestone-section {background:linear-gradient(180deg,#ffffff 0%,var(--light-50) 100%) !important; border-block:1px solid var(--light-200)} .milestone-grid {display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:var(--space-5,1.25rem)} .milestone-card {min-height:190px; padding:var(--space-6,1.5rem); background:#ffffff !important; border:1px solid var(--light-border) !important; border-top-width:3px !important; border-radius:var(--radius-xl,16px); box-shadow:var(--light-shadow)} .milestone-card--blue {border-top-color:var(--brand-blue) !important} .milestone-card--cyan {border-top-color:#0891b2 !important} .milestone-card--green {border-top-color:var(--brand-green) !important} .milestone-card--gold {border-top-color:var(--brand-yellow) !important} .milestone-card__year {display:block; margin-bottom:.75rem; font-family:var(--font-heading); font-size:1.25rem; font-weight:700; color:#0e7490 !important} .milestone-card h3 {margin-bottom:.5rem; color:var(--light-text) !important} .milestone-card p {margin:0; font-size:.875rem; line-height:1.625; color:var(--light-secondary) !important} .leadership-grid {align-items:stretch} .leadership-grid .leader-card {height:100%} .award-grid {max-width:900px; margin-inline:auto} .award-grid .award-card:last-child:nth-child(odd) {grid-column:1 / -1; width:min(100%,438px); justify-self:center} input,select,textarea {color:var(--light-text); background:#ffffff; border-color:var(--light-300); accent-color:#0891b2} input::placeholder,textarea::placeholder {color:var(--light-muted); opacity:1} input:focus,select:focus,textarea:focus {border-color:#0891b2 !important; box-shadow:0 0 0 3px rgba(8,145,178,.16) !important} select option {color:#111827 !important; background:#ffffff !important} .article__body,.article-body,.legal-content {text-wrap:pretty} .article__body p,.article-body p,.legal-content p {max-width:74ch} .article__body:where(h2,h3,h4),.article-body:where(h2,h3,h4),section[id] {scroll-margin-top:110px} .article__body:where(code,pre,a,li,td,th,.article__note),.article-body:where(code,pre,a,li,td,th,.callout),.legal-content:where(code,pre,a,li,td,th) {overflow-wrap:anywhere; word-break:break-word} .article-layout,.article-content,.article__body,.article-body {min-width:0} .article__body pre,.article-body pre {white-space:pre-wrap} .table-scroll {overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:12px} .table-scroll table {min-width:620px; margin:0} table caption {text-align:left; padding:.75rem 0; color:inherit; font-weight:600} body.article-site-page .site-header,body.requirements-page .site-header {background:rgba(10,22,40,.96); border-bottom:1px solid rgba(148,163,184,.18); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px)} .article-page {padding:8rem 0 5rem !important; min-height:70vh; background:linear-gradient(180deg,#ffffff 0%,var(--light-50) 100%) !important; color:var(--light-text)} .article-content {max-width:860px; padding:clamp(1.4rem,3vw,2.5rem); background:#ffffff; border:1px solid var(--light-border); border-radius:18px; box-shadow:var(--light-shadow)} .article-page:is(.article-title,.article__body h2,.article-body h2,.article__body h3,.article-body h3,.article-sidebar__title,.sidebar-block__title) {color:var(--light-text) !important} .article-page:is(.article-subtitle,.article__body p,.article-body p,.article__body li,.article-body li,.article__date,.article-breadcrumb,.article-breadcrumb__current) {color:var(--light-secondary) !important} .article-page:is(.article-sidebar__section,.sidebar-block,.article-back,.article-next) {background:#ffffff !important; border-color:var(--light-border) !important; color:var(--light-text) !important; box-shadow:0 12px 30px rgba(20,34,55,.06)} .article-page:is(.article-toc a,.sidebar-toc a,.sidebar-related a,.article-back,.article-next) {color:var(--light-secondary) !important} .article-page:is(.article-toc a,.sidebar-toc a,.sidebar-related a,.article-back,.article-next):hover {color:#0e7490 !important} .article-page:is(.article__note,.callout--info) {background:#ecfeff !important; color:#334155 !important} .article-page:is(.article__body pre,.article-body pre) {background:#0f2038 !important; border-color:#243a55 !important} .article-page:is(.article__body pre code,.article-body pre code) {color:#dbe9f6 !important} .article-page:is(.article__body code,.article-body code) {background:#eef6fb; color:#0e7490; border-color:#d5e6f1} .article-page:is(table,.article-table) {background:#ffffff; border-color:var(--light-border) !important} .article-page:is(th,td) {border-color:var(--light-border) !important} .article-page th {background:#eef4f8 !important; color:var(--light-text) !important} .article-page td {color:var(--light-secondary) !important} .platform-req-page {padding:132px 0 88px; background:linear-gradient(180deg,#ffffff 0%,var(--light-50) 100%) !important; color:var(--light-text)} .platform-req-page .platform-req-breadcrumb,.platform-req-page .platform-req-breadcrumb a {color:var(--light-secondary) !important} .platform-req-hero {--color-text-primary:#f1f5f9; --color-text-secondary:#c5d2e3; --color-text-muted:#aab8ca; --color-signal-400:#34d399; color:#f1f5f9} .platform-req-hero:is(h1,p,span,strong) {color:inherit} .platform-req-summary__item {background:rgba(6,13,26,.38) !important; border-color:rgba(148,163,184,.22) !important} .platform-req-summary__label {color:#aab8ca !important} .platform-req-summary__value {color:#f1f5f9 !important} .requirement-section,.platform-req-sidebar__card,.addon-card {background:#ffffff !important; border-color:var(--light-border) !important; box-shadow:var(--light-shadow) !important} .requirement-table-wrap {background:#ffffff !important; border-color:var(--light-border) !important} .requirement-table th {background:#eef4f8 !important; color:var(--light-text) !important} .requirement-table td {color:var(--light-secondary) !important; border-color:var(--light-border) !important} .requirement-table td:first-child,.addon-card h3 {color:var(--light-text) !important} .platform-req-note {background:#fff8e7 !important; color:var(--light-secondary) !important} .platform-req-toc a,.platform-req-related a {color:var(--light-secondary) !important} body.planner-page {--ink:var(--light-text); --muted:var(--light-secondary); --bg:#ffffff; --bg2:var(--light-50); --surface:#ffffff; --chip:#eef6fb; --border:var(--light-border-strong); --shadow:0 18px 44px rgba(20,34,55,.10); background:linear-gradient(180deg,#ffffff 0%,var(--light-50) 100%) !important; color:var(--light-text) !important} .planner-page>nav {background:rgba(10,22,40,.98) !important} .planner-page>nav a:first-child {color:#f1f5f9 !important} .planner-page .hero,.planner-page .hero:is(h1,p,.pill) {color:#ffffff !important} .planner-page:is(.sidebar,main>.card,.results .section) {background:#ffffff !important; border-color:var(--light-border-strong) !important; color:var(--light-text) !important; box-shadow:var(--light-shadow) !important} .planner-page:is(.title,.side-title,.section h3,.section h4,label,td) {color:var(--light-text) !important} .planner-page:is(.desc,.hint,.muted) {color:var(--light-secondary) !important} .planner-page .step {color:var(--light-secondary) !important; border-color:var(--light-border-strong) !important} .planner-page .step.active {color:var(--light-text) !important; background:#e8f4fa !important} .planner-page .opt {background:#ffffff !important; color:var(--light-text) !important; border-color:var(--light-border-strong) !important} .planner-page .opt.active {background:#ecfeff !important} .planner-page input[type="text"],.planner-page input[type="email"],.planner-page input[type="tel"] {background:#ffffff !important; color:var(--light-text) !important} .planner-page .btn-subtle {background:#f1f5f9 !important; color:var(--light-text) !important; border-color:var(--light-border-strong) !important} .planner-page .btn-ghost {color:var(--light-text) !important; border-color:var(--light-border-strong) !important} .planner-page tr:nth-child(even) td {background:#f8fafc !important} .planner-page .infobox {background:#ecfeff !important; color:#334155 !important} .planner-page .warn {background:#fff8e7 !important} .planner-page footer,.planner-page footer a {color:var(--light-secondary) !important} body.archive-page {background:linear-gradient(180deg,var(--theme-900) 0 34%,var(--light-50) 34% 100%) !important; color:var(--light-text) !important} .archive-page .archive-card {background:#ffffff !important; border-color:var(--light-border) !important; color:var(--light-text) !important; box-shadow:0 24px 60px rgba(6,13,26,.18) !important} .archive-page .archive-card h1 {color:var(--light-text) !important} .archive-page .archive-card p {color:var(--light-secondary) !important} .archive-page .secondary {color:var(--light-text) !important; border-color:var(--light-border-strong) !important} body.admin-page {--bg:var(--light-50); --bg2:#ffffff; --card:#ffffff; --line:var(--light-border-strong); --ink:var(--light-text); --muted:var(--light-secondary); background:var(--light-50) !important; color:var(--light-text) !important} .admin-page header.top {background:var(--theme-900) !important; color:#f1f5f9 !important} .admin-page header.top .who {color:#b3bfd0 !important} .admin-page .card {background:#ffffff !important; border-color:var(--light-border) !important; box-shadow:var(--light-shadow)} .admin-page input,.admin-page select,.admin-page textarea {background:#ffffff !important; color:var(--light-text) !important} .admin-page dialog {background:#ffffff !important; color:var(--light-text) !important} .admin-page button.ghost {color:var(--light-text) !important; border-color:var(--light-border-strong) !important} .admin-page .tabs button {color:var(--light-secondary) !important} .admin-page .tabs button.active {color:#0e7490 !important} .error-page main {background:linear-gradient(180deg,#ffffff 0%,var(--light-50) 100%); color:var(--light-text)} .error-page main>.container {width:min(760px,calc(100% - 32px)); padding:clamp(2rem,5vw,4rem); background:#ffffff; border:1px solid var(--light-border); border-radius:20px; box-shadow:var(--light-shadow)} .error-page main h1 {color:var(--light-text) !important} .error-page main p {color:var(--light-secondary) !important} .archive-page .primary {background:#0e7490 !important} .kb-signin-bar {min-height:78px} .kb-signin-bar__actions {min-height:44px} .kb-signin-bar.is-authenticated,[data-authenticated="true"] .kb-signin-bar {border-color:rgba(95,122,31,.6) !important; background:linear-gradient(90deg,rgba(95,122,31,.13),rgba(44,136,217,.08)) !important} .kb-signin-bar.is-authenticated .kb-signin-bar__text strong,[data-authenticated="true"] .kb-signin-bar__text strong {color:#486014 !important} .site-scroll-top {position:fixed; right:20px; bottom:20px; z-index:300; width:46px; height:46px; border-radius:50%; border:1px solid rgba(148,163,184,.32); background:rgba(15,32,56,.96); color:#ffffff; display:grid; place-items:center; font:700 20px/1 var(--font-heading); cursor:pointer; box-shadow:0 10px 25px rgba(0,0,0,.28); opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .2s ease,transform .2s ease,visibility .2s} .site-scroll-top.is-visible {opacity:1; visibility:visible; transform:translateY(0)} .site-scroll-top:hover {border-color:var(--brand-blue); background:#123358} .btn,.card,.solution-card,.leader-card,.award-card,.partner-logo,.feature-list__item,.download-card,.resource-card,.whitepaper-card,.event-card,.dl-card,.yt-card {transition-property:transform,opacity !important; transition-duration:.18s !important} .nav-link,.nav-mobile__link,.footer-col__link,.footer-bottom__link,input,select,textarea,.tabs__btn,.accordion__trigger {transition:none !important} .reveal {will-change:auto} .visually-hidden {position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important} .internal-gallery-page {overflow-x:clip} .comic-hero {position:relative; padding:9rem 0 4.5rem; overflow:hidden; background:radial-gradient(circle at 12% 18%,rgba(196,127,19,.22),transparent 28%),radial-gradient(circle at 88% 12%,rgba(201,77,67,.18),transparent 26%),linear-gradient(145deg,#0a1628,#102a48); border-bottom:1px solid rgba(148,163,184,.2)} .comic-hero::before {content:""; position:absolute; inset:0; opacity:.18; pointer-events:none; background-image:radial-gradient(circle,rgba(255,255,255,.7) 1px,transparent 1px); background-size:14px 14px; mask-image:linear-gradient(to bottom,#000,transparent 88%)} .comic-hero__content {position:relative; z-index:1; max-width:820px} .comic-kicker {display:inline-flex; align-items:center; gap:.6rem; margin-bottom:1rem; padding:.45rem .8rem; border:1px solid rgba(229,185,35,.46); border-radius:999px; color:#ffe78b; background:rgba(229,185,35,.1); font:700 .8rem/1 var(--font-heading); letter-spacing:.08em; text-transform:uppercase} .comic-hero h1 {max-width:16ch; margin-bottom:1rem} .comic-hero p {font-size:1.1rem; color:#c5d2e3} .comic-burst {display:inline-grid; place-items:center; width:88px; aspect-ratio:1; margin-top:1.5rem; color:#111827; background:#e5b923; font:900 .82rem/1.1 var(--font-heading); text-align:center; text-transform:uppercase; clip-path:polygon(50% 0%,60% 23%,79% 7%,77% 31%,100% 28%,81% 47%,100% 59%,76% 64%,84% 88%,61% 76%,50% 100%,39% 76%,16% 88%,24% 64%,0% 59%,19% 47%,0% 28%,23% 31%,21% 7%,40% 23%); transform:rotate(-5deg)} .comic-gallery-section {padding:4.5rem 0 6rem} .comic-status {min-height:126px; display:grid; place-items:center; padding:1.5rem; text-align:center; border:1px dashed rgba(148,163,184,.32); border-radius:18px; background:rgba(15,32,56,.62)} .comic-status p {margin:.45rem auto 1rem} .comic-grid {display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr)); gap:1.5rem; align-items:start} .comic-panel {margin:0; padding:.75rem; background:#f8fafc; border:3px solid #111827; border-radius:10px; box-shadow:8px 8px 0 rgba(44,136,217,.45); transform:rotate(var(--comic-tilt,-.35deg))} .comic-panel:nth-child(even) {--comic-tilt:.35deg; box-shadow:8px 8px 0 rgba(229,185,35,.45)} .comic-panel:nth-child(3n) {--comic-tilt:-.2deg; box-shadow:8px 8px 0 rgba(201,77,67,.38)} .comic-panel img {width:100%; height:auto; border:2px solid #111827; background:#ffffff; display:block}
/* The panel is a button so it is reachable by keyboard and announced properly. */
.comic-panel__open {display:block; width:100%; padding:0; border:0; background:none; cursor:zoom-in; font:inherit; color:inherit}
.comic-panel__open:focus-visible {outline:3px solid #2c88d9; outline-offset:3px}
/* At 50+ strips this is the difference that matters: the browser skips layout and
   paint for panels that are off-screen. contain-intrinsic-size reserves plausible
   space so the scrollbar stays stable. */
.comic-panel {content-visibility:auto; contain-intrinsic-size:auto 420px}

/* ---- Full-screen viewer ---- */
body.comic-viewer-open {overflow:hidden}
.comic-viewer {position:fixed; inset:0; z-index:1200; display:flex; align-items:center; justify-content:center;
  flex-direction:column; gap:.75rem; padding:clamp(.5rem,3vw,2.5rem); background:rgba(6,13,26,.94);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); cursor:zoom-out}
.comic-viewer__stage {display:flex; align-items:center; justify-content:center; max-width:100%; min-height:0; flex:1}
.comic-viewer__img {max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain;
  border-radius:6px; background:#fff; box-shadow:0 24px 70px rgba(0,0,0,.55)}
.comic-viewer__caption {margin:0; flex:none; color:#e8eefb; font:600 .95rem/1.4 var(--font-heading); text-align:center}
.comic-viewer__close, .comic-viewer__nav {position:absolute; display:grid; place-items:center; cursor:pointer;
  color:#fff; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.28); border-radius:50%}
.comic-viewer__close {top:1rem; right:1rem; width:44px; height:44px; font-size:1.1rem}
.comic-viewer__nav {top:50%; transform:translateY(-50%); width:52px; height:52px; font-size:2rem; line-height:1}
.comic-viewer__nav--prev {left:1rem}
.comic-viewer__nav--next {right:1rem}
.comic-viewer__close:hover, .comic-viewer__nav:hover {background:rgba(255,255,255,.22)}
.comic-viewer__close:focus-visible, .comic-viewer__nav:focus-visible {outline:3px solid #7dd3fc; outline-offset:3px}
.comic-viewer__nav[hidden] {display:none}
/* Keeps the tab cycle closed without leaving the tab order. */
.comic-viewer__sentinel {position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0}
@media (max-width:620px){
  .comic-viewer__nav {width:44px; height:44px; font-size:1.6rem}
  .comic-viewer__nav--prev {left:.35rem}
  .comic-viewer__nav--next {right:.35rem}
} .comic-panel figcaption {padding:.9rem .35rem .25rem; color:#172033; font:700 .95rem/1.45 var(--font-heading)} .comic-panel__meta {display:block; margin-top:.25rem; color:#526076; font:500 .78rem/1.4 var(--font-body)} @media (max-width:960px) {.article-content {max-width:none}} @media (max-width:760px) {.page-context {width:min(calc(100% - 28px),1200px); padding-top:82px} .page-context__inner {font-size:.8rem} .site-scroll-top {right:14px; bottom:14px} .award-grid .award-card:last-child:nth-child(odd) {grid-column:auto; width:100%} .milestone-card {min-height:0} .table-scroll table {min-width:560px} .kb-signin-bar,.kb-signin-bar__actions {min-height:auto} .article-page {padding-top:6.75rem !important} .article-content {padding:1.25rem; border-radius:14px} .comic-hero {padding-top:7.5rem} .comic-panel {transform:none; box-shadow:5px 5px 0 rgba(44,136,217,.42)}} @media (prefers-reduced-motion:reduce) {*,*::before,*::after {scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important}} @media print {.site-header,.nav-mobile,.page-context,.site-scroll-top,.site-footer,.no-print {display:none !important} body,.article-page,.platform-req-page {background:#ffffff !important; color:#111827 !important} main {padding-top:0 !important} .article-content,.requirement-section {box-shadow:none !important}}.article__body code,.article-content code,.requirements-page code,.site-page code{overflow-wrap:anywhere;word-break:break-word}pre code{overflow-wrap:normal;word-break:normal}

/* ============================================================================
   Article / requirements layout system (centralized; previously inline).
   Controls all /articles/*.html + security-ports.html + platform requirement
   pages. Change look-and-feel here; theme overrides live in theme-*.css.
   ============================================================================ */
.article-page .article-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(1.5rem,4vw,3rem);align-items:start;margin-top:1.5rem;}
@media(max-width:960px){.article-page .article-layout{grid-template-columns:1fr;}}
.article-page .article-layout .article-content{max-width:none;min-width:0;}
.article-page .article-header{margin-bottom:1.75rem;padding-bottom:1.5rem;border-bottom:1px solid var(--color-border-subtle);}
.article-page .article__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;}
.article-page .article__tag{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border-radius:999px;font-family:var(--font-heading);font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;background:rgba(8,145,178,.12);color:#0e7490;border:1px solid rgba(8,145,178,.25);}
.article-page .article__tag--security{background:rgba(239,68,68,.1);color:#b91c1c;border-color:rgba(239,68,68,.28);}
.article-page .article__tag--deployment{background:rgba(5,150,105,.12);color:#047857;border-color:rgba(5,150,105,.28);}
.article-page .article__date{display:inline-flex;align-items:center;font-size:.85rem;color:var(--color-text-muted);}
.article-page .article__meta .article__date::before{content:'';display:inline-block;width:4px;height:4px;margin-right:.75rem;border-radius:50%;background:currentColor;opacity:.55;}
.article-page .article-title{margin:0 0 .5rem;font-size:clamp(2rem,4.5vw,3rem);line-height:1.1;letter-spacing:-.02em;}
.article-page .article-subtitle{margin:0;font-size:1.1rem;line-height:1.6;color:var(--color-text-secondary);}
.article-page .article-body,.article-page .article__body{font-size:1.02rem;line-height:1.75;}
.article-page :is(.article-body,.article__body) h2{margin:2.25rem 0 .9rem;font-size:clamp(1.4rem,2.6vw,1.9rem);line-height:1.25;}
.article-page :is(.article-body,.article__body) h3{margin:1.75rem 0 .55rem;font-size:1.2rem;}
.article-page :is(.article-body,.article__body) p{margin:0 0 1.1rem;}
.article-page :is(.article-body,.article__body) ul{list-style:disc;margin:0 0 1.2rem;padding-left:1.5rem;}
.article-page :is(.article-body,.article__body) ol{list-style:decimal;margin:0 0 1.2rem;padding-left:1.5rem;}
.article-page :is(.article-body,.article__body) li{margin:.4rem 0;line-height:1.65;}
.article-page :is(.article-body,.article__body) li::marker{color:#0891b2;}
.article-page :is(.article-body,.article__body) li>ul,.article-page :is(.article-body,.article__body) li>ol{margin:.4rem 0;}
.article-page .article-table-wrap{margin:1.4rem 0;}
.article-page .table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--color-border-subtle);border-radius:12px;}
.article-page table.article-table{width:100%;min-width:560px;border-collapse:collapse;margin:0;font-size:.92rem;}
.article-page .article-table th,.article-page .article-table td{padding:.8rem 1rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--color-border-subtle);}
.article-page .article-table thead th{background:rgba(148,163,184,.12);font-family:var(--font-heading);font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;font-weight:700;}
.article-page .article-table tbody tr:last-child td{border-bottom:0;}
.article-page .article-table td:first-child{font-weight:600;white-space:nowrap;}
.article-page .callout,.article-page .article__note{margin:1.5rem 0;padding:1rem 1.25rem;border-radius:0 12px 12px 0;border-left:4px solid #0891b2;background:rgba(8,145,178,.07);font-size:.95rem;line-height:1.65;}
.article-page .callout strong,.article-page .article__note strong{color:#0e7490;}
.article-page .article-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1.25rem;font-size:.85rem;color:var(--color-text-muted);}
.article-page .article-breadcrumb a{color:var(--color-text-muted);text-decoration:none;}
.article-page .article-breadcrumb a:hover{color:#0e7490;}
.article-page .article-breadcrumb__sep{color:var(--color-border-medium);}
.article-page .article-sidebar{display:flex;flex-direction:column;gap:1.25rem;position:sticky;top:96px;}
@media(max-width:960px){.article-page .article-sidebar{position:static;}}
.article-page :is(.sidebar-block,.article-sidebar__section){padding:1.25rem;border:1px solid var(--color-border-subtle);border-radius:14px;background:rgba(148,163,184,.05);}
.article-page :is(.sidebar-block__title,.article-sidebar__title){margin:0 0 .75rem;font-family:var(--font-heading);font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);}
.article-page :is(.sidebar-toc,.article-toc,.sidebar-related){list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.1rem;}
.article-page :is(.sidebar-toc a,.article-toc a,.sidebar-related a){display:block;padding:.42rem .55rem;border-left:2px solid transparent;border-radius:0 8px 8px 0;font-size:.9rem;line-height:1.4;color:var(--color-text-secondary);text-decoration:none;}
.article-page :is(.sidebar-toc a,.article-toc a,.sidebar-related a):hover{color:#0e7490;border-left-color:#0891b2;background:rgba(8,145,178,.06);}
.article-page .article-footer-nav{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border-subtle);}
.article-page :is(.article-back,.article-next){display:inline-flex;align-items:center;gap:.5rem;padding:.6rem .95rem;border:1px solid var(--color-border-subtle);border-radius:10px;font-size:.9rem;font-weight:600;color:var(--color-text-secondary);text-decoration:none;background:rgba(148,163,184,.05);}
.article-page :is(.article-back,.article-next):hover{border-color:#0891b2;color:#0e7490;}
html[data-theme="noir"] .article-page .article__tag{background:rgba(92,198,222,.16);color:#bfe9f4;border-color:rgba(92,198,222,.32);}
html[data-theme="noir"] .article-page .article__tag--security{background:rgba(248,113,113,.16);color:#fca5a5;border-color:rgba(248,113,113,.32);}
html[data-theme="noir"] .article-page .article__tag--deployment{background:rgba(52,211,153,.16);color:#6ee7b7;border-color:rgba(52,211,153,.32);}
html[data-theme="noir"] .article-page .article-table thead th{background:rgba(92,198,222,.12);}
html[data-theme="noir"] .article-page :is(.sidebar-toc a,.article-toc a,.sidebar-related a):hover,
html[data-theme="noir"] .article-page :is(.article-back,.article-next):hover{color:#bfe9f4;border-left-color:#5cc6de;border-color:#5cc6de;}
html[data-theme="noir"] .article-page :is(.callout,.article__note) strong{color:#bfe9f4;}

/* --- Article category tag variants + warn callout + body links (centralized) --- */
.article-page .article__tag--network{background:rgba(6,182,212,.12);color:#0e7490;border-color:rgba(6,182,212,.28);}
.article-page .article__tag--release{background:rgba(245,158,11,.12);color:#a16207;border-color:rgba(245,158,11,.3);}
.article-page .article__tag--install{background:rgba(99,102,241,.12);color:#4f46e5;border-color:rgba(99,102,241,.3);}
.article-page .article__tag--config{background:rgba(236,72,153,.12);color:#be185d;border-color:rgba(236,72,153,.3);}
.article-page .article__note.article__warn,.article-page .article__warn{border-left-color:#d97706;background:rgba(245,158,11,.08);}
.article-page :is(.article-body,.article__body) a{color:#0e7490;text-decoration:underline;text-underline-offset:2px;text-decoration-color:rgba(8,145,178,.4);}
.article-page :is(.article-body,.article__body) a:hover{text-decoration-color:#0891b2;}
.article-page :is(.article-body,.article__body) table{width:100%;border-collapse:collapse;margin:1.4rem 0;font-size:.92rem;}
.article-page :is(.article-body,.article__body) :is(th,td){padding:.8rem 1rem;text-align:left;border-bottom:1px solid var(--color-border-subtle);}
.article-page :is(.article-body,.article__body) thead th{background:rgba(148,163,184,.12);font-family:var(--font-heading);font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;font-weight:700;}
html[data-theme="noir"] .article-page .article__tag--network{background:rgba(34,211,238,.16);color:#7dd3fc;border-color:rgba(34,211,238,.3);}
html[data-theme="noir"] .article-page .article__tag--release{background:rgba(245,158,11,.16);color:#fcd34d;border-color:rgba(245,158,11,.3);}
html[data-theme="noir"] .article-page .article__tag--install{background:rgba(129,140,248,.16);color:#c7d2fe;border-color:rgba(129,140,248,.3);}
html[data-theme="noir"] .article-page .article__tag--config{background:rgba(244,114,182,.16);color:#fbcfe8;border-color:rgba(244,114,182,.3);}
