@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibmplexmono-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibmplexmono-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:400;font-display:optional;src:url(/fonts/ibmplexsansarabic-400-arabic.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:400;font-display:optional;src:url(/fonts/ibmplexsansarabic-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:500;font-display:optional;src:url(/fonts/ibmplexsansarabic-500-arabic.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:500;font-display:optional;src:url(/fonts/ibmplexsansarabic-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:600;font-display:optional;src:url(/fonts/ibmplexsansarabic-600-arabic.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:600;font-display:optional;src:url(/fonts/ibmplexsansarabic-600-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:700;font-display:optional;src:url(/fonts/ibmplexsansarabic-700-arabic.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:700;font-display:optional;src:url(/fonts/ibmplexsansarabic-700-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--green-50:#ecfdf5;--green-100:#d1fae5;--green-200:#a7f3d0;--green-300:#6ee7b7;--green-400:#34d399;--green-500:#10b981;--green-600:#059669;--green-700:#047857;--green-800:#065f46;--green-900:#064e3b;--green-950:#022c22;--ink-950:#070b0a;--ink-900:#0a0f0d;--ink-850:#0e1613;--ink-800:#101915;--ink-750:#16211d;--ink-700:#1c2b26;--ink-600:#2a3a34;--ink-500:#3c4e47;--ink-400:#5c6b65;--ink-300:#8a968f;--ink-200:#b9c2bd;--paper-0:#fff;--paper-50:#f7f9f8;--paper-100:#eff2f0;--paper-200:#e4e8e6;--paper-300:#d5dad8;--paper-400:#b7bfbb;--amber-500:#f59e0b;--amber-100:#fef3c7;--red-500:#ef4444;--red-100:#fee2e2;--blue-500:#3b82f6;--blue-100:#dbeafe;--cursor:#34d399;--bg:var(--paper-50);--bg-body:var(--paper-50);--surface:var(--paper-0);--surface-raised:var(--paper-0);--surface-sunken:var(--paper-100);--surface-inverse:var(--ink-900);--border:var(--paper-200);--border-strong:var(--paper-300);--border-subtle:var(--paper-100);--text:var(--ink-900);--text-secondary:var(--ink-500);--text-muted:var(--ink-400);--text-inverse:var(--paper-50);--primary:var(--green-500);--primary-hover:var(--green-600);--primary-active:var(--green-700);--primary-soft:var(--green-50);--primary-soft-border:var(--green-200);--on-primary:#052e22;--link:var(--green-700);--link-hover:var(--green-800);--code-bg:var(--ink-900);--code-text:var(--green-300);--code-inline-bg:var(--green-50);--code-inline-text:var(--green-800);--focus-ring:var(--green-500);--success:var(--green-600);--success-soft:var(--green-50);--warning:var(--amber-500);--warning-soft:var(--amber-100);--danger:var(--red-500);--danger-soft:var(--red-100);--info:var(--blue-500);--info-soft:var(--blue-100);--cat-programming:var(--green-700);--cat-ai:var(--blue-500);--cat-devtools:var(--green-600);--cat-security:var(--red-500);--cat-news:var(--amber-500)}[data-theme=dark]{--bg:var(--ink-900);--bg-body:var(--ink-950);--surface:var(--ink-850);--surface-raised:var(--ink-800);--surface-sunken:var(--ink-950);--surface-inverse:var(--paper-50);--border:var(--ink-700);--border-strong:var(--ink-600);--border-subtle:var(--ink-750);--text:#e7ece9;--text-secondary:var(--ink-300);--text-muted:var(--ink-400);--text-inverse:var(--ink-900);--primary:var(--green-400);--primary-hover:var(--green-300);--primary-active:var(--green-500);--primary-soft:#34d3991f;--primary-soft-border:#34d3994d;--on-primary:#052e22;--link:var(--green-300);--link-hover:var(--green-200);--code-bg:var(--ink-850);--code-text:var(--green-300);--code-inline-bg:#34d3991f;--code-inline-text:var(--green-300);--focus-ring:var(--green-400);--success:var(--green-400);--success-soft:#34d3991f;--warning:var(--amber-500);--warning-soft:#f59e0b24;--danger:var(--red-500);--danger-soft:#ef444424;--info:var(--blue-500);--info-soft:#3b82f624;--cat-programming:var(--green-400);--cat-ai:#60a5fa;--cat-devtools:var(--green-400);--cat-security:#f87171;--cat-news:#fbbf24}:root{--font-display:"IBM Plex Sans Arabic",system-ui,sans-serif;--font-sans:"IBM Plex Sans Arabic",system-ui,sans-serif;--font-latin:"IBM Plex Sans Arabic",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace;--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extrabold:800;--fw-black:900;--fs-caption:12px;--fs-small:13px;--fs-sm:14px;--fs-base:16px;--fs-md:17px;--fs-lg:19px;--fs-xl:22px;--fs-2xl:26px;--fs-3xl:32px;--fs-4xl:40px;--fs-5xl:52px;--fs-6xl:68px;--lh-none:1;--lh-tight:1.2;--lh-snug:1.35;--lh-normal:1.6;--lh-relaxed:1.9;--lh-loose:2.1;--ls-tight:-.02em;--ls-normal:0;--ls-wide:.04em;--ls-wider:.14em;--ls-widest:.28em;--type-display-size:var(--fs-6xl);--type-display-weight:var(--fw-black);--type-h1-size:var(--fs-4xl);--type-h1-weight:var(--fw-extrabold);--type-h2-size:var(--fs-3xl);--type-h2-weight:var(--fw-bold);--type-h3-size:var(--fs-2xl);--type-h3-weight:var(--fw-bold);--type-h4-size:var(--fs-xl);--type-h4-weight:var(--fw-semibold);--type-body-size:var(--fs-md);--type-body-weight:var(--fw-regular);--type-small-size:var(--fs-sm);--type-small-weight:var(--fw-regular);--type-label-size:var(--fs-caption);--type-label-weight:var(--fw-semibold);--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--space-32:128px;--container:1120px;--container-narrow:720px;--container-wide:1320px;--gutter:24px;--header-height:68px;--radius-none:0;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-2xl:28px;--radius-full:999px;--radius-button:10px;--radius-input:10px;--radius-card:12px;--radius-chip:999px;--radius-logo:27%;--shadow-xs:0 1px 2px #06140f0f;--shadow-sm:0 1px 3px #06140f14, 0 1px 2px #06140f0d;--shadow-md:0 4px 12px #06140f14, 0 2px 4px #06140f0d;--shadow-lg:0 12px 32px #06140f1a, 0 4px 8px #06140f0d;--shadow-xl:0 24px 60px #06140f24;--ring-focus:0 0 0 3px #10b98140;--glow:0 0 0 3px #10b98126;--glow-strong:0 0 24px #10b98159}[data-theme=dark]{--shadow-xs:0 1px 2px #0006;--shadow-sm:0 1px 3px #00000080;--shadow-md:0 4px 14px #00000080;--shadow-lg:0 16px 40px #0009;--shadow-xl:0 28px 70px #000000b3;--ring-focus:0 0 0 3px #34d39959;--glow:0 0 0 3px #34d3992e;--glow-strong:0 0 28px #34d39973}:root{--dur-instant:80ms;--dur-fast:.14s;--dur:.2s;--dur-slow:.32s;--dur-slower:.48s;--ease-standard:cubic-bezier(.2,.6,.2,1);--ease-out:cubic-bezier(.16,.84,.3,1);--ease-in:cubic-bezier(.5,0,.75,0);--ease-spring:cubic-bezier(.34,1.4,.5,1);--blink:1.1s steps(1) infinite}@keyframes tqni-blink{50%{opacity:0}}@keyframes tqni-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-relaxed);color:var(--text);background:var(--bg-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0}html[dir=rtl] body,body[dir=rtl]{direction:rtl}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--fw-bold);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);color:var(--text);margin:0}p{margin:0}a{color:var(--link);transition:color var(--dur-fast) var(--ease-standard);text-decoration:none}a:hover{color:var(--link-hover)}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.92em}code:not(pre code){background:var(--code-inline-bg);color:var(--code-inline-text);border-radius:var(--radius-sm);direction:ltr;unicode-bidi:embed;padding:.12em .4em}pre{background:var(--code-bg);color:var(--code-text);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);text-align:left;line-height:var(--lh-normal);direction:ltr;overflow:auto}hr{border:0;border-top:1px solid var(--border);margin:var(--space-8) 0}::selection{background:var(--primary);color:var(--on-primary)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.ltr,[lang=en]{font-family:var(--font-latin);direction:ltr;unicode-bidi:isolate}.mono{font-family:var(--font-mono)}:root{--max-width:var(--container-narrow)}html{direction:rtl}body{font-size:var(--fs-md);line-height:var(--lh-relaxed);transition:background-color var(--dur) var(--ease-standard), color var(--dur) var(--ease-standard)}img{border-radius:var(--radius-card);max-width:100%;height:auto}.container{max-width:var(--max-width);padding:0 var(--gutter);margin:0 auto}header.site-header{border-bottom:1px solid var(--border);padding:var(--space-4) 0;background:var(--surface)}header.site-header .container{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}header.site-header .logo{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--fs-xl);font-weight:var(--fw-extrabold);color:var(--text);letter-spacing:var(--ls-tight);display:inline-flex}header.site-header .logo:hover{color:var(--text)}header.site-header .logo img,header.site-header .logo svg{border-radius:var(--radius-logo);width:34px;height:34px;display:block}.header-actions{align-items:center;gap:var(--space-2);display:flex}header.site-header nav{align-items:center;gap:var(--space-5);display:flex}header.site-header nav a{color:var(--text-secondary);font-weight:var(--fw-medium);font-size:var(--fs-sm)}header.site-header nav a:hover{color:var(--primary)}.theme-toggle{border:1px solid var(--border);border-radius:var(--radius-button);background:var(--surface-sunken);width:38px;height:38px;color:var(--text-secondary);cursor:pointer;transition:color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), background-color var(--dur-fast) var(--ease-standard);justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:hover{color:var(--primary);border-color:var(--primary-soft-border)}.theme-toggle svg{width:20px;height:20px}.theme-toggle .icon-sun{display:none}.theme-toggle .icon-moon,[data-theme=dark] .theme-toggle .icon-sun{display:block}[data-theme=dark] .theme-toggle .icon-moon{display:none}footer.site-footer{border-top:1px solid var(--border);margin-top:var(--space-16);padding:var(--space-8) 0;color:var(--text-muted);font-size:var(--fs-sm);text-align:center}.article-card{border-bottom:1px solid var(--border);padding:var(--space-6) 0;gap:var(--space-5);grid-template-columns:280px 1fr;align-items:start;display:grid}.article-card__cover{border-radius:var(--radius-card,12px);border:1px solid var(--border);display:block;overflow:hidden}.article-card__cover img{aspect-ratio:1200/630;object-fit:cover;width:100%;height:auto;transition:transform var(--dur-fast,.15s) var(--ease-standard,ease);display:block}.article-card__cover:hover img{transform:scale(1.03)}.article-card:has(.article-card__body:only-child),.article-card:not(:has(.article-card__cover)){grid-template-columns:1fr}@media (width<=640px){.article-card{gap:var(--space-3);grid-template-columns:1fr}}.article-card h2{margin:0 0 var(--space-2);font-size:var(--fs-xl)}.article-card h2 a{color:var(--text)}.article-card h2 a:hover{color:var(--primary)}.article-card .meta{color:var(--text-muted);font-size:var(--fs-sm);margin-bottom:var(--space-2)}.article-card p.excerpt{color:var(--text-secondary);margin:var(--space-2) 0 0}.tag-badge{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-chip);padding:var(--space-1) var(--space-3);font-size:var(--fs-small);color:var(--text-secondary);transition:color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard);margin-inline-end:var(--space-2);display:inline-block}.tag-badge:hover{color:var(--primary);border-color:var(--primary-soft-border)}article.post h1{font-size:var(--fs-4xl);margin-bottom:var(--space-3)}article.post .meta{color:var(--text-muted);font-size:var(--fs-sm);margin-bottom:var(--space-6)}article.post .content h2{margin-top:var(--space-8)}article.post .content h3{margin-top:var(--space-6)}article.post .content pre{overflow-x:auto}article.post .content table{border-collapse:collapse;max-width:100%;margin:var(--space-6) 0;font-size:var(--fs-small);line-height:1.6;display:block;overflow-x:auto}article.post .content th,article.post .content td{border:1px solid var(--border);padding:var(--space-2) var(--space-3);text-align:start;vertical-align:top;min-width:6.5rem}article.post .content th{background:var(--surface-sunken);white-space:nowrap;font-weight:600}article.post .content tbody tr:nth-child(2n){background:var(--surface-sunken)}.page-title{margin:var(--space-8) 0 var(--space-4);font-size:var(--fs-3xl)}.not-found{margin:var(--space-12) 0 var(--space-8)}.not-found__code{margin:0 0 var(--space-2);color:var(--primary);font-family:var(--font-display);font-size:var(--fs-sm);font-weight:var(--fw-bold);letter-spacing:var(--ls-wide)}.not-found .page-title{margin-top:0}.not-found__lead{max-width:48rem;color:var(--text-secondary);font-size:var(--fs-lg)}.not-found__actions{gap:var(--space-3);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.not-found__actions a{border:1px solid var(--border);border-radius:var(--radius-button);min-height:2.75rem;padding:var(--space-2) var(--space-4);background:var(--surface);color:var(--text);font-weight:var(--fw-medium);align-items:center;display:inline-flex}.not-found__actions a:hover{border-color:var(--primary-soft-border);color:var(--primary)}.not-found__actions .not-found__primary{border-color:var(--primary);background:var(--primary);color:var(--on-primary)}.not-found__actions .not-found__primary:hover{border-color:var(--primary-hover);background:var(--primary-hover);color:var(--on-primary)}.not-found__latest{margin-top:var(--space-10)}.not-found__latest h2{margin:0 0 var(--space-2);font-size:var(--fs-2xl)}.breadcrumbs{margin:var(--space-6) 0 var(--space-2);font-size:var(--fs-sm);color:var(--text-muted)}.breadcrumbs a{color:var(--text-secondary)}.breadcrumbs a:hover{color:var(--primary)}.breadcrumbs .sep{margin:0 var(--space-2);color:var(--border-strong)}.related{border-top:1px solid var(--border);margin-top:var(--space-10);padding-top:var(--space-6)}.related h2{font-size:var(--fs-2xl);margin:0 0 var(--space-3)}.related ul,.hub-list{margin:0;padding:0;list-style:none}.related li,.hub-list li{padding:var(--space-2) 0;border-bottom:1px solid var(--border)}.hub-list .count{color:var(--text-muted);font-size:var(--fs-small)}.footer-nav{justify-content:center;gap:var(--space-2) var(--space-5);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.footer-nav a{color:var(--text-secondary);white-space:nowrap}.footer-nav a:hover{color:var(--primary)}.copyright{line-height:var(--lh-relaxed);margin:0}.article-card .meta a,article.post .meta a,.breadcrumbs a,article.post .content a,.related li a,.hub-list li a{text-underline-offset:3px;text-decoration:underline}@media (width<=700px){header.site-header .container{gap:var(--space-3);flex-wrap:wrap}header.site-header nav{gap:var(--space-2) var(--space-4);flex-wrap:wrap}.header-actions{gap:var(--space-3)}article.post h1{font-size:var(--fs-3xl)}.page-title{font-size:var(--fs-2xl)}.article-card h2{font-size:var(--fs-lg)}body{font-size:var(--fs-base)}}
