:root {
  --paper: #faf7f1;
  --paper-raised: #fffdf9;
  --ink: #201d19;
  --ink-soft: #57524a;
  --ink-faint: #8a8478;
  --accent: #a63d1f;
  --accent-soft: #c96a4b;
  --line: #e5ded2;
  --code-bg: #f1ece2;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
}

html[lang="ar"] body { font-family: "Geeza Pro", "Noto Naskh Arabic", "Amiri", "Traditional Arabic", serif; }
html[lang="he"] body { font-family: "David Libre", David, "Noto Serif Hebrew", Georgia, serif; }
* { box-sizing: border-box; }
html { font-size: 18px; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--serif);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
.wrap { max-width: 44rem; margin: 0 auto; padding: 0 1.25rem; }
a { color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { color: var(--accent-soft); }

header.site { border-bottom: 1px solid var(--line); padding: 2.2rem 0 1.4rem; margin-bottom: 2.2rem; }
.wordmark { font-size: 1.9rem; font-style: italic; font-weight: 600; letter-spacing: -0.01em; margin: 0; }
.wordmark a { color: var(--ink); text-decoration: none; }
.tagline { margin: 0.35rem 0 0; color: var(--ink-soft); font-size: 0.95rem; }
nav.site { margin-top: 1rem; font-family: var(--sans); font-size: 0.82rem; letter-spacing: 0.04em; text-transform: uppercase; }
nav.site a { color: var(--ink-soft); text-decoration: none; margin-inline-end: 1.2rem; }
nav.site a:hover { color: var(--accent); }
.langswitch { margin-top: 0.9rem; font-family: var(--sans); font-size: 0.8rem; }
.langswitch a { color: var(--ink-faint); text-decoration: none; margin-inline-end: 0.9rem; }
.langswitch a[aria-current] { color: var(--accent); border-bottom: 1px solid var(--accent); }
[dir="rtl"] nav.site, [dir="rtl"] .post-date, [dir="rtl"] .tldr h2, [dir="rtl"] .tags { letter-spacing: normal; }

.post-list { list-style: none; margin: 0; padding: 0; }
.post-list li { padding: 1.6rem 0; border-bottom: 1px solid var(--line); }
.post-list li:last-child { border-bottom: 0; }
.post-date { font-family: var(--mono); font-size: 0.78rem; color: var(--ink-faint); letter-spacing: 0.03em; }
.post-list h2 { font-size: 1.45rem; margin: 0.3rem 0 0.45rem; line-height: 1.25; }
.post-list h2 a { color: var(--ink); text-decoration: none; }
.post-list h2 a:hover { color: var(--accent); }
.post-excerpt { margin: 0; color: var(--ink-soft); font-size: 0.98rem; }
.tags { margin-top: 0.6rem; font-family: var(--sans); font-size: 0.75rem; }
.tags span { display: inline-block; border: 1px solid var(--line); border-radius: 99px; padding: 0.1rem 0.6rem; margin-inline-end: 0.4rem; color: var(--ink-faint); }

article.post h1 { font-size: 2rem; line-height: 1.2; margin: 0.2rem 0 0.5rem; letter-spacing: -0.015em; }
[dir="rtl"] article.post h1 { letter-spacing: normal; }
.standfirst { font-size: 1.12rem; color: var(--ink-soft); font-style: italic; margin: 0 0 1.8rem; }
.byline { font-family: var(--sans); font-size: 0.8rem; color: var(--ink-faint); margin-bottom: 2rem; }
article.post h2 { font-size: 1.35rem; margin: 2.4rem 0 0.7rem; }
article.post h3 { font-size: 1.08rem; margin: 1.8rem 0 0.5rem; }
article.post p { margin: 0 0 1.1rem; }
article.post ul, article.post ol { margin: 0 0 1.1rem; padding-inline-start: 1.4rem; }
article.post li { margin-bottom: 0.4rem; }
hr.sec { border: 0; border-top: 1px solid var(--line); margin: 2.4rem auto; width: 30%; }
code { font-family: var(--mono); font-size: 0.85em; background: var(--code-bg); padding: 0.1em 0.35em; border-radius: 4px; }

.tldr {
  background: var(--paper-raised);
  border: 1px solid var(--line);
  border-inline-start: 3px solid var(--accent);
  border-radius: 6px;
  padding: 1.1rem 1.3rem;
  margin: 0 0 2rem;
  font-size: 0.95rem;
}
.tldr h2 { font-family: var(--sans); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--accent); margin: 0 0 0.6rem; }
.tldr ul { margin: 0; padding-inline-start: 1.2rem; }
.tldr li { margin-bottom: 0.35rem; }

.source-note { font-family: var(--sans); font-size: 0.82rem; color: var(--ink-faint); margin: -0.4rem 0 1.4rem; }
.story { border-inline-start: 3px solid var(--line); padding-inline-start: 1.2rem; font-style: italic; color: var(--ink-soft); }
.fiction-label { font-family: var(--sans); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-faint); }

footer.site { border-top: 1px solid var(--line); margin-top: 3.5rem; padding: 1.6rem 0 3rem; font-family: var(--sans); font-size: 0.8rem; color: var(--ink-faint); }
footer.site a { color: var(--ink-soft); }
.page h1 { font-size: 1.9rem; margin: 0.2rem 0 0.5rem; }

@media (max-width: 540px) {
  html { font-size: 17px; }
  article.post h1 { font-size: 1.65rem; }
}
.category-strip { margin-bottom: 1.1rem; padding: 1rem 1.1rem; background: var(--paper-raised); border: 1px solid var(--line); border-radius: 8px; }
.category-strip h1 { font: 600 .76rem var(--sans); text-transform: uppercase; letter-spacing: .08em; color: var(--ink-faint); margin: 0 0 .55rem; }
.category-strip a, .category-links a { display: inline-block; margin-inline-end: .75rem; font: 600 .76rem var(--sans); text-decoration: none; color: var(--accent); }
.category-links { margin: .3rem 0 .45rem; }
.post-list li { display: grid; grid-template-columns: minmax(10rem, 35%) 1fr; gap: 1.3rem; align-items: start; }
.card-image { display: block; overflow: hidden; border-radius: 7px; border: 1px solid var(--line); background: var(--paper-raised); }
.card-image img { display: block; width: 100%; height: auto; aspect-ratio: 1200/630; object-fit: cover; }
.hero { margin: 1.25rem 0 2rem; }
.hero img { display: block; width: 100%; height: auto; border: 1px solid var(--line); border-radius: 9px; background: var(--paper-raised); }
.hero figcaption { margin-top: .45rem; color: var(--ink-faint); font: .74rem var(--sans); }
.category-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; margin-top: 1.3rem; }
.category-card { display: flex; justify-content: space-between; padding: 1rem; border: 1px solid var(--line); border-radius: 8px; background: var(--paper-raised); text-decoration: none; }
.category-card span { color: var(--ink-faint); font-family: var(--mono); }
.eyebrow { font: .75rem var(--sans); text-transform: uppercase; letter-spacing: .08em; color: var(--ink-faint); }
@media (max-width: 620px) { .post-list li { grid-template-columns: 1fr; gap: .8rem; } .category-grid { grid-template-columns: 1fr; } }
/* Site-wide responsive topic rail, inspired by the clear horizontal section navigation on Google's public blog. */
.topicbar { position: sticky; top: 0; z-index: 20; margin: -2.2rem calc(50% - 50vw) 2.2rem; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--paper) 94%, transparent); backdrop-filter: blur(12px); font-family: var(--sans); }
.topicbar-track { width: min(100% - 2rem, 72rem); margin: 0 auto; padding: .75rem 0; display: flex; align-items: center; gap: 1.35rem; overflow-x: auto; scrollbar-width: none; white-space: nowrap; }
.topicbar-track::-webkit-scrollbar { display: none; }
.topicbar a { flex: 0 0 auto; color: var(--ink-soft); text-decoration: none; font-size: .82rem; font-weight: 600; }
.topicbar a:hover, .topicbar .topic-all { color: var(--accent); }
.topicbar .topic-all { padding-inline-end: 1.35rem; border-inline-end: 1px solid var(--line); }
img, svg { max-width: 100%; }
main { min-width: 0; }
article.post, .page, .card-copy { min-width: 0; overflow-wrap: anywhere; }
article.post pre, article.post table { display: block; max-width: 100%; overflow-x: auto; }
article.post iframe, article.post video { width: 100%; max-width: 100%; }
.langswitch { display: flex; flex-wrap: wrap; gap: .35rem .9rem; }
.langswitch a { margin-inline-end: 0; }
nav.site { display: flex; flex-wrap: wrap; gap: .45rem 1.2rem; }
nav.site a { margin-inline-end: 0; }
@media (min-width: 1025px) {
  .wrap { max-width: 72rem; padding-inline: 2rem; }
  header.site { display: grid; grid-template-columns: minmax(15rem,1fr) auto; column-gap: 2rem; align-items: end; }
  .wordmark, .tagline { grid-column: 1; }
  nav.site, .langswitch { grid-column: 2; justify-content: flex-end; }
  nav.site { grid-row: 1; margin-top: 0; }
  .langswitch { grid-row: 2; }
  article.post, .page:not(:has(.category-grid)) { max-width: 48rem; margin-inline: auto; }
}
@media (max-width: 1024px) {
  .wrap { width: 100%; padding-inline: 1rem; }
  header.site { padding-top: 1.25rem; margin-bottom: 1.5rem; }
  .wordmark { font-size: 1.65rem; }
  .tagline { font-size: .9rem; }
  .topicbar { margin-top: -1.5rem; margin-bottom: 1.5rem; }
  .topicbar-track { width: 100%; padding-inline: 1rem; gap: 1rem; }
  .topicbar .topic-all { padding-inline-end: 1rem; }
  .category-strip { overflow-x: auto; white-space: nowrap; }
  article.post h1 { font-size: clamp(1.65rem, 8vw, 2rem); }
  .hero { margin-inline: -1rem; }
  .hero img { border-radius: 0; border-inline: 0; }
  .hero figcaption { padding-inline: 1rem; }
}
@media (max-width: 420px) {
  html { font-size: 16px; }
  nav.site { font-size: .76rem; gap: .4rem .8rem; }
  .langswitch { font-size: .74rem; }
  .post-list li { padding-block: 1.2rem; }
  .tldr { padding: .9rem 1rem; }
  footer.site { margin-top: 2.5rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }
html, body { max-width: 100%; overflow-x: clip; }
/* Make each topic an unmistakable, tappable menu item at every width. */
.topicbar-track { gap: .5rem; }
.topicbar a { display: inline-flex; align-items: center; min-height: 2.5rem; padding: .45rem .9rem; border: 1px solid var(--line); border-radius: 999px; background: var(--paper-raised); line-height: 1.15; }
.topicbar a:hover { border-color: var(--accent); }
.topicbar .topic-all { padding-inline: .95rem; border-inline-end: 1px solid var(--accent); background: color-mix(in srgb, var(--accent) 8%, var(--paper-raised)); }
.category-strip { white-space: normal; }
.category-strip a, .category-links a { margin: .2rem .35rem .2rem 0; padding: .35rem .65rem; border: 1px solid var(--line); border-radius: 999px; line-height: 1.2; }
[dir="rtl"] .category-strip a, [dir="rtl"] .category-links a { margin: .2rem 0 .2rem .35rem; }
@media (max-width: 1024px) {
  .topicbar-track { gap: .45rem; }
  .topicbar a { min-height: 2.75rem; padding-inline: .85rem; }
  .topicbar .topic-all { padding-inline: .9rem; }
}
.mobilebar { display: none; }
@media (max-width: 1024px) {
  body { font-family: var(--sans); line-height: 1.5; }
  .wrap { padding-inline: 1rem; }
  header.site { display: block; padding: 0; margin: 0; border-bottom: 1px solid var(--line); }
  header.site > .wordmark, header.site > .tagline, header.site > nav.site, header.site > .langswitch { display: none; }
  .mobilebar { height: 4rem; display: flex; align-items: center; justify-content: space-between; }
  .mobilebrand { color: var(--ink); font-size: 1.15rem; font-weight: 700; text-decoration: none; letter-spacing: -.02em; }
  .mobilemenu { position: static; }
  .mobilemenu summary { width: 2.75rem; height: 2.75rem; display: grid; place-content: center; gap: 4px; cursor: pointer; border-radius: 50%; background: var(--paper-raised); border: 1px solid var(--line); list-style: none; }
  .mobilemenu summary::-webkit-details-marker { display: none; }
  .mobilemenu summary span { display: block; width: 18px; height: 2px; background: var(--ink); border-radius: 2px; }
  .mobilemenu[open] summary { position: relative; z-index: 41; }
  .mobilepanel { position: absolute; z-index: 40; inset: 0 0 auto; min-height: 100vh; padding: 5rem 1.25rem 2rem; background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: 0 18px 45px rgba(0,0,0,.12); }
  .mobilepanel nav { display: grid; }
  .mobilepanel nav a { padding: .8rem 0; color: var(--ink); font-size: 1.18rem; font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--line); }
  .mobilepanel h2 { margin: 1.5rem 0 .4rem; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-faint); }
  .mobilepanel .langswitch { margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
  .mobilepanel .langswitch a { padding: .45rem 0; border: 0; font-size: .9rem; color: var(--ink-soft); }
  .topicbar { display: none; }
  main { padding-top: 1.25rem; }
  .category-strip { display: none; }
  .post-list { display: grid; gap: 1.75rem; }
  .post-list li { display: block; padding: 0 0 1.75rem; border-bottom: 1px solid var(--line); }
  .card-image { border: 0; border-radius: 1.35rem; margin-bottom: 1rem; }
  .card-copy .post-date { margin-top: .2rem; }
  .category-links a { font-size: .72rem; padding: .3rem .6rem; }
  .post-list h2 { font-family: var(--sans); font-size: 1.45rem; letter-spacing: -.025em; line-height: 1.18; margin-top: .55rem; }
  .post-excerpt { font-size: 1rem; line-height: 1.55; }
  .tags { display: none; }
  article.post { padding-top: .25rem; }
  article.post h1 { font-family: var(--sans); font-size: clamp(2rem, 9vw, 2.65rem); line-height: 1.08; letter-spacing: -.04em; }
  article.post h2, .page h1, .page h2 { font-family: var(--sans); letter-spacing: -.025em; }
  .hero { margin: 1.25rem 0 2rem; }
  .hero img { border: 0; border-radius: 1.35rem; }
  .hero figcaption { padding-inline: 0; }
  .tldr { border-inline-start-width: 4px; border-radius: 1rem; }
  .category-grid { grid-template-columns: 1fr; gap: .75rem; }
  .category-card { min-height: 4rem; align-items: center; border-radius: 1rem; padding: 1rem 1.1rem; }
  .page { padding-top: .25rem; }
  .page h1 { font-size: 2.15rem; line-height: 1.1; }
  footer.site { margin-top: 2.5rem; padding-bottom: 2rem; }
  [dir="rtl"] .mobilepanel { text-align: right; }
}
@media (max-width: 360px) {
  .wrap { padding-inline: .85rem; }
  .mobilebar { height: 3.65rem; }
  .post-list h2 { font-size: 1.3rem; }
  article.post h1 { font-size: 1.9rem; }
}

/* Android/WebView compatibility and real-device viewport fallback. */
:root { color-scheme: light; }
body { background: #faf7f1; color: #201d19; }
.topicbar { background: #faf7f1; }
.topicbar a { margin: 0 .25rem; background: #fffdf9; }
.topicbar .topic-all { background: #f7ede8; }
.category-strip a, .category-links a { margin-right: .35rem; margin-left: 0; }
[dir="rtl"] .category-strip a, [dir="rtl"] .category-links a { margin-left: .35rem; margin-right: 0; }
.card-image, .hero { width: 100%; }
.card-image img, .hero img { display: block; width: 100%; max-width: 100%; height: auto; }
@media (max-width: 1024px) {
  header.site > .wordmark, header.site > .tagline, header.site > nav.site, header.site > .langswitch, .topicbar, .category-strip { display: none !important; }
  .mobilebar { display: flex !important; }
  .post-list li { display: block !important; width: 100%; }
  .card-image, .hero { max-width: 100%; overflow: hidden; }
}
.owner-card { padding: 1rem 1.1rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--paper-raised); }
.contact-form { display: grid; gap: 1rem; max-width: 42rem; }
.contact-form label { display: grid; gap: .35rem; font-family: var(--sans); font-weight: 600; font-size: .86rem; }
.contact-form input, .contact-form textarea { width: 100%; border: 1px solid var(--line); border-radius: .75rem; padding: .8rem .9rem; background: var(--paper-raised); color: var(--ink); font: 1rem var(--sans); }
.contact-form button { width: fit-content; min-height: 2.75rem; padding: .7rem 1rem; border: 1px solid var(--accent); border-radius: 999px; background: var(--accent); color: white; font: 600 .9rem var(--sans); cursor: pointer; }
.form-note { color: var(--ink-faint); font: .82rem var(--sans); }
.contact-honey { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.contact-form button:disabled { opacity: .62; cursor: wait; }
.form-status { min-height: 1.5em; margin: 0; font: 600 .9rem var(--sans); }
.form-status.success { color: #17733b; }
.form-status.error { color: #a12626; }
.deep-dive { margin-top: 3rem; }
.fact-analysis { margin: 1.75rem 0; padding: 1rem 1.1rem; border-inline-start: .3rem solid var(--accent); background: var(--paper-raised); border-radius: .35rem .8rem .8rem .35rem; }
.system-diagram { margin: 1.6rem 0; padding: 1.1rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--paper-raised); }
.system-diagram figcaption { margin-bottom: .9rem; font: 700 .86rem var(--sans); }
.diagram-flow { display: flex; align-items: stretch; gap: .6rem; }
.diagram-flow span { flex: 1 1 0; display: grid; place-items: center; min-height: 5rem; padding: .75rem; border-radius: .75rem; color: #fff; background: var(--accent); text-align: center; font: 650 .82rem/1.3 var(--sans); }
.diagram-flow span:nth-of-type(even) { background: #324a5f; }
.diagram-flow b { align-self: center; color: var(--accent); font-size: 1.3rem; }
article pre { overflow-x: auto; margin: 1.2rem 0; padding: 1rem; border-radius: .9rem; background: #17212b; color: #e8f0f2; font: .82rem/1.6 ui-monospace, SFMono-Regular, Consolas, monospace; direction: ltr; text-align: left; }
@media (max-width: 700px) { .diagram-flow { flex-direction: column; } .diagram-flow b { transform: rotate(90deg); } .diagram-flow span { min-height: 3.5rem; } article pre { margin-inline: -.25rem; font-size: .75rem; } }
article pre code { display: block; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; white-space: pre; }
.extension-card { margin: 1.8rem 0; padding: 1.25rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--paper-raised); }
.extension-card h2 { margin-top: .25rem; }
.extension-card h3 { margin: 1.15rem 0 .35rem; font: 700 .85rem var(--sans); text-transform: uppercase; letter-spacing: .03em; }
.extension-card p { margin: .35rem 0; }
.extension-kind { color: var(--accent); font: 700 .78rem var(--sans); text-transform: uppercase; letter-spacing: .08em; }
/* Technical-review editorial system */
.review-kicker { display:flex; gap:.55rem; flex-wrap:wrap; margin:1.2rem 0; }
.review-kicker span { padding:.38rem .7rem; border:1px solid var(--line); border-radius:999px; background:var(--paper-raised); color:var(--muted); font:650 .72rem var(--sans); text-transform:uppercase; letter-spacing:.055em; }
.review-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:.65rem; margin:1.35rem 0 2rem; }
.review-stat { min-height:6.7rem; padding:1rem; border:1px solid var(--line); border-radius:1rem; background:linear-gradient(145deg,var(--paper-raised),var(--paper)); }
.review-stat strong { display:block; margin-bottom:.35rem; color:var(--accent); font:750 1.65rem/1 var(--sans); }
.review-stat span { color:var(--muted); font:650 .75rem/1.35 var(--sans); }
.review-split { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; margin:1.3rem 0 2rem; }
.review-panel { padding:1.1rem 1.15rem; border:1px solid var(--line); border-radius:1rem; background:var(--paper-raised); }
.review-panel.good { border-top:4px solid #278563; } .review-panel.caution { border-top:4px solid #d17b30; }
.review-panel h3 { margin:0 0 .75rem; font:.8rem var(--sans); text-transform:uppercase; letter-spacing:.07em; }
.review-panel ul { margin:0!important; padding-inline-start:1.15rem!important; font-size:.92rem; }
.review-panel li:last-child { margin-bottom:0; }
.review-table { width:100%; border-collapse:collapse; margin:1.2rem 0 2rem; font-size:.9rem; }
.review-table th,.review-table td { padding:.75rem; border-bottom:1px solid var(--line); text-align:start; vertical-align:top; }
.review-table th { color:var(--muted); font:700 .72rem var(--sans); text-transform:uppercase; letter-spacing:.06em; }
.review-pull { margin:2rem 0; padding:1.25rem 1.35rem; border-inline-start:5px solid var(--accent); border-radius:0 1rem 1rem 0; background:var(--paper-raised); font:650 1.16rem/1.5 var(--serif); }
[dir="rtl"] .review-pull { border-radius:1rem 0 0 1rem; }
@media(max-width:700px){.review-stats{grid-template-columns:1fr 1fr}.review-split{grid-template-columns:1fr}.review-stat{min-height:5.8rem}}
.faq-block { margin:2.4rem 0 1.5rem; padding:1.1rem 1.25rem; border:1px solid var(--line); border-radius:1rem; background:var(--paper-raised); }
.faq-block h2 { margin-top:0!important; }.faq-block h3 { margin:1.15rem 0 .35rem!important; font-family:var(--sans)!important; }.faq-block p:last-child{margin-bottom:0}
/* Editorial article system: influenced by the reference's hierarchy, not its brand. */
.enhanced-article { max-width:56rem!important; }
.article-breadcrumb { display:flex; align-items:center; gap:.55rem; margin:0 0 1rem; color:var(--ink-faint); font:650 .76rem var(--sans); white-space:nowrap; overflow:hidden; }
.article-breadcrumb a { color:var(--ink-soft); text-decoration:none; }.article-breadcrumb span { overflow:hidden; text-overflow:ellipsis; }
.article-masthead { position:relative; overflow:hidden; margin:0 0 1rem; padding:1.75rem 1.8rem 1.55rem; border:1px solid var(--line); border-top:4px solid var(--accent); border-radius:1.1rem; background:linear-gradient(145deg,var(--paper-raised),#fbf7ef); box-shadow:0 12px 34px rgba(42,32,22,.07); }
.article-masthead:after { content:""; position:absolute; width:14rem; height:14rem; inset:auto -6rem -8rem auto; border-radius:50%; background:radial-gradient(circle,var(--accent-soft),transparent 67%); opacity:.11; pointer-events:none; }
.article-badges { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1rem; }
.article-badges span { padding:.34rem .62rem; border:1px solid var(--line); border-radius:999px; background:var(--paper); color:var(--accent); font:750 .66rem/1 var(--mono); letter-spacing:.045em; text-transform:uppercase; }
.article-masthead h1 { max-width:48rem; margin:.1rem 0 .7rem!important; font:750 clamp(2rem,5vw,3.35rem)/1.05 var(--sans)!important; letter-spacing:-.045em!important; }
.article-masthead .standfirst { max-width:46rem; margin:0 0 1.25rem; color:#35445a; font:1.08rem/1.55 var(--sans); }
.article-author { display:flex; align-items:center; gap:.7rem; padding-top:1rem; border-top:1px solid var(--line); font-family:var(--sans); }
.author-mark { display:grid; place-items:center; width:2.35rem; height:2.35rem; border-radius:50%; background:#17212b; color:#fff; font:800 .72rem var(--sans); }
.article-author strong,.article-author small { display:block; }.article-author strong { font-size:.8rem; }.article-author small { margin-top:.12rem; color:var(--ink-faint); font:.72rem var(--mono); }
.article-actions { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:1rem; }
.article-action { display:inline-flex; min-height:2.45rem; align-items:center; padding:.55rem .8rem; border:1px solid var(--line); border-radius:.65rem; color:var(--ink); background:var(--paper-raised); text-decoration:none; font:700 .72rem var(--sans); }
.article-action:first-child { border-color:var(--accent); background:var(--accent); color:#fff; }
.article-categories { margin:.8rem 0 1rem; }
.enhanced-article .hero { margin:1rem 0 1.4rem; }.enhanced-article .hero img { border-radius:1rem; box-shadow:0 14px 34px rgba(25,25,35,.12); }
.article-toc { margin:1.5rem 0 2.5rem; padding:1.1rem 1.25rem 1.15rem; border:1px solid var(--line); border-radius:1rem; background:var(--paper-raised); box-shadow:0 8px 22px rgba(42,32,22,.04); }
.article-toc p { margin:0 0 .7rem!important; color:var(--accent); font:800 .7rem var(--mono); letter-spacing:.07em; text-transform:uppercase; }
.article-toc ol { display:grid; grid-template-columns:1fr 1fr; gap:.45rem 1.5rem; margin:0!important; padding-inline-start:1.3rem!important; }
.article-toc li { margin:0!important; color:var(--ink-faint); font:.78rem/1.4 var(--sans); }.article-toc a { color:#344156; text-decoration:none; }.article-toc a:hover { color:var(--accent); text-decoration:underline; }
.article-copy { max-width:46rem; margin-inline:auto; }.article-copy > h2 { scroll-margin-top:5rem; padding-top:.4rem; border-top:1px solid var(--line); font:750 1.55rem/1.2 var(--sans)!important; letter-spacing:-.025em; }
.article-copy > h2:before { content:"§"; margin-inline-end:.45rem; color:var(--accent); font-family:var(--mono); font-size:.75em; }
.article-copy figure:not(.system-diagram) { margin:1.8rem calc(50% - 26rem); }.article-copy figure img { border-radius:.8rem; box-shadow:0 10px 25px rgba(0,0,0,.1); }
.article-copy blockquote { margin:1.8rem 0; padding:1rem 1.15rem; border-inline-start:4px solid var(--accent); border-radius:.4rem 1rem 1rem .4rem; background:var(--paper-raised); font:650 1.08rem/1.55 var(--serif); }
@media(max-width:900px){.article-copy figure:not(.system-diagram){margin:1.6rem 0}.article-toc ol{grid-template-columns:1fr}.article-masthead{padding:1.35rem}.article-masthead h1{font-size:clamp(2rem,8vw,2.7rem)!important}.enhanced-article .hero{margin-inline:0}.enhanced-article .hero img{border-radius:1rem}.article-breadcrumb{margin-top:.4rem}}
@media(max-width:540px){.article-masthead{margin-inline:-.25rem;padding:1.15rem;border-radius:1rem}.article-badges span{font-size:.6rem}.article-masthead .standfirst{font-size:1rem}.article-action{width:100%;justify-content:center}.article-toc{padding:1rem}.article-copy>h2{font-size:1.35rem!important}}

[dir="rtl"] code { direction: ltr; unicode-bidi: isolate; }
[dir="rtl"] .extension-card h2 a, [dir="rtl"] .article-toc a[href^="#dai"] { unicode-bidi: isolate; direction: ltr; }

/* Preserve the native 16:9 geometry of Linker UI captures at all widths. */
article.post:has(img[src$="linker-review-home.png"]) .hero img, .card-image:has(img[src$="linker-review-home.png"]) img, .article-copy .linker-screenshot img { display:block; width:100%; max-width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; }
.article-copy .linker-screenshot img { border-radius:.8rem; }
@media(max-width:540px){.article-copy .linker-screenshot { padding:.5rem; }.article-copy .linker-screenshot img { width:100%; height:auto; aspect-ratio:16/9; }}

/* Fable's source measurements are native markup, not script-injected. */
.fable-chart{direction:ltr;margin:1.3rem 0;padding:.8rem;border:1px solid var(--line);border-radius:.9rem;background:var(--paper-raised);font-family:var(--sans)}.fable-chart-row{display:grid;grid-template-columns:2.3rem minmax(0,1fr) 7.4rem;gap:.55rem;align-items:center;margin:.29rem 0;font-size:.7rem}.fable-chart-row span{text-align:right}.fable-track{display:grid;gap:2px}.fable-track i{display:block;height:5px;border-radius:3px}.fable-table-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:.85rem}.fable-table{width:100%;min-width:560px;border-collapse:collapse;font:.76rem var(--sans)}.fable-table th,.fable-table td{padding:.44rem .56rem;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.fable-table thead{background:var(--paper-raised)}.fable-table tbody tr:nth-child(even){background:var(--paper-raised)}.fable-table tbody th{font-weight:700}.review-stats .review-stat strong{font-size:clamp(1.1rem,2vw,1.65rem)}@media(max-width:540px){.fable-chart{padding:.4rem}.fable-chart-row{grid-template-columns:1.8rem minmax(0,1fr) 5.8rem;font-size:.59rem;gap:.25rem}.fable-table{font-size:.68rem}}

.fable-scroll-note{font:.74rem var(--sans);color:var(--ink-faint);margin:1rem 0 .35rem!important}.fable-table{min-width:660px}.fable-table th{unicode-bidi:isolate}.fable-table th[dir="rtl"]{text-align:right} [dir="rtl"] .fable-table th{unicode-bidi:plaintext}
/* Arabic and Hebrew display text must not inherit Latin display tracking. */
[dir="rtl"] .article-masthead h1,
[dir="rtl"] .article-copy > h2,
[dir="rtl"] .article-badges span,
[dir="rtl"] .article-toc p,
[dir="rtl"] .eyebrow,
[dir="rtl"] .extension-card h3 { letter-spacing: normal !important; }
/* Explicit script-aware fonts keep RTL headlines joined on systems without macOS faces. */
html[lang="ar"] .article-masthead h1,
html[lang="ar"] .article-masthead .standfirst,
html[lang="ar"] .article-copy,
html[lang="ar"] .site,
html[lang="ar"] .topicbar { font-family: "Noto Naskh Arabic", "Noto Sans Arabic", "Geeza Pro", sans-serif !important; }
html[lang="he"] .article-masthead h1,
html[lang="he"] .article-masthead .standfirst,
html[lang="he"] .article-copy,
html[lang="he"] .site,
html[lang="he"] .topicbar { font-family: "Noto Sans Hebrew", "Noto Serif Hebrew", Arial, sans-serif !important; }

.system-diagram .diagram-flow { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.35rem; }
[dir="rtl"] .system-diagram .diagram-flow { flex-direction:row; }
[dir="rtl"] .system-diagram .diagram-flow b { transform:scaleX(-1); }
.article-copy pre { max-width:100%; overflow-x:auto; white-space:pre; direction:ltr; unicode-bidi:isolate; padding:1rem; border-radius:.55rem; background:#152238; color:#f2f4f7; font-size:.78rem; line-height:1.5; }

/* Arabic body: avoid browser justification stretching connected-script glyphs across a narrow column. */
[lang="ar"] .article-copy p, [lang="ar"] .article-copy li, [lang="ar"] .article-copy h2, [lang="ar"] .article-copy h3 { text-align: right; text-align: start; text-justify: none; letter-spacing: normal !important; word-spacing: normal; }
/* Arabic fallback: avoid broken glyph spacing in Noto Naskh on some Chromium hosts. */
html[lang="ar"] body, html[lang="ar"] .article-masthead h1, html[lang="ar"] .article-masthead .standfirst, html[lang="ar"] .article-copy, html[lang="ar"] .site, html[lang="ar"] .topicbar { font-family: Arial, "Noto Sans Arabic", sans-serif !important; }
/* Serve a known Arabic face rather than relying on the visitor's fallback font. */
@font-face { font-family: "Jack Arabic"; src: url('/assets/fonts/noto-sans-arabic-regular.ttf') format('truetype'); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Jack Arabic"; src: url('/assets/fonts/noto-sans-arabic-bold.ttf') format('truetype'); font-style: normal; font-weight: 700 900; font-display: swap; }
html[lang="ar"] body, html[lang="ar"] .site, html[lang="ar"] .topicbar, html[lang="ar"] .article-masthead, html[lang="ar"] .article-masthead h1, html[lang="ar"] .article-masthead .standfirst, html[lang="ar"] .article-copy, html[lang="ar"] .article-copy p, html[lang="ar"] .article-copy li, html[lang="ar"] .article-copy h2, html[lang="ar"] .article-copy h3, html[lang="ar"] .source-note { font-family: "Jack Arabic", sans-serif !important; }

/* Explicit advertising, separate from editorial article copy. */
.ai-vps-promotion{margin:48px 0 16px;padding:28px;display:flex;align-items:center;gap:28px;border:1px solid #cdd9d3;border-inline-start:4px solid #47725f;border-radius:16px;background:#f0f5f1;color:#251f21;text-align:start}
.ai-vps-promotion-copy{flex:1;min-width:0}
.ai-vps-promotion p{margin:8px 0;line-height:1.55}
.ai-vps-promotion .ai-vps-promotion-label{font:600 11px/1.5 Arial,sans-serif;letter-spacing:.045em;color:#496456}
.ai-vps-promotion .ai-vps-promotion-context{font-size:13px;color:#53665a}
.ai-vps-promotion h2{font:600 24px/1.25 Arial,sans-serif;letter-spacing:-.02em;margin:8px 0 12px;border:0;padding:0;color:#253f31}
.ai-vps-promotion .ai-vps-promotion-note{font-size:12px;color:#536158}
.ai-vps-promotion-cta{flex-shrink:0;display:inline-flex;justify-content:center;align-items:center;padding:13px 18px;min-height:44px;border-radius:9px;background:#325e48;color:#fff;text-decoration:none;font:600 14px/1.4 Arial,sans-serif;text-align:center}
.ai-vps-promotion-cta:hover{background:#244b37;color:#fff}
.ai-vps-promotion-cta:focus-visible{outline:3px solid #b74726;outline-offset:4px}
html[lang=ar] .ai-vps-promotion,html[lang=ar] .ai-vps-promotion h2,html[lang=ar] .ai-vps-promotion-cta,html[lang=ar] .ai-vps-promotion-label{font-family:"Jack Arabic",Arial,sans-serif}
@media(max-width:700px){.ai-vps-promotion{flex-direction:column;align-items:stretch;gap:14px;padding:22px 18px;margin-top:32px}.ai-vps-promotion h2{font-size:22px}.ai-vps-promotion-cta{width:100%;box-sizing:border-box}}

/* Coding-plan affiliate card: shared accessible LTR/RTL card layout. */
.glm-coding-promotion {background:#f0f2f8;border-color:#64718b}
.glm-coding-promotion .ai-vps-promotion-cta {background:#354663}

/* data tables inside articles */
.data-table { margin: 1.6rem 0; }
.data-table figcaption { font-family: var(--sans); font-size: .82rem; color: var(--accent); margin-bottom: .5rem; }
.data-table table { width: 100%; border-collapse: collapse; font-family: var(--sans); font-size: .88rem; }
.data-table th, .data-table td { border-bottom: 1px solid #d9dde4; padding: .45rem .55rem; text-align: start; vertical-align: top; }
.data-table thead th { background: #f1f4f9; font-size: .78rem; }
.data-table td { font-variant-numeric: tabular-nums; }
article.post ol li { margin-bottom: .7rem; }
