/* Shared Paper-theme styles for zzlab case-study pages */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

:root {
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
  --font: 'Instrument Sans', system-ui, -apple-system, sans-serif;
  --font-display: 'Instrument Sans', system-ui, sans-serif;
  --font-serif: 'Instrument Serif', Georgia, serif;
  --font-ar: 'IBM Plex Sans Arabic', sans-serif;

  color-scheme: light;
  --bg: #f4f1e9; --bg-2: #eeeae0;
  --text: #14161a; --text-secondary: #565f6b; --text-tertiary: #939aa4;
  --border: rgba(20,30,45,0.10); --border-hover: rgba(20,30,45,0.22);
  --card: #fffefb; --card-border: rgba(20,28,42,0.09);
  --surface: #fffefb; --surface-2: #ffffff;
  --shadow-sm: 0 1px 2px rgba(24,30,44,0.05);
  --shadow: 0 1px 2px rgba(24,30,44,0.04), 0 14px 30px -16px rgba(24,30,44,0.16);
  --shadow-lg: 0 2px 4px rgba(24,30,44,0.04), 0 34px 60px -26px rgba(24,30,44,0.26);
  --accent: #17724a; --accent-2: #22935e; --accent-ink: #ffffff; --highlight: #17724a;
  --glow-a: rgba(28,120,78,0.16);
  --grid-line: rgba(20,40,60,0.045);
  --logo-invert: 0;
}

html { scroll-behavior: smooth; }
body {
  font-family: var(--font); background: var(--bg); color: var(--text); line-height: 1.65;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden;
}
:lang(ar) body, [dir="rtl"] body { font-family: var(--font-ar); line-height: 1.8; }

/* Atmosphere */
body::before {
  content: ''; position: fixed; inset: 0; z-index: -2; pointer-events: none;
  background:
    radial-gradient(560px 420px at 50% -120px, var(--glow-a), transparent 70%),
    linear-gradient(to right, var(--grid-line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);
  background-size: auto, 64px 64px, 64px 64px;
  mask-image: radial-gradient(ellipse 90% 55% at 50% 0%, #000 25%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 90% 55% at 50% 0%, #000 25%, transparent 80%);
}
body::after {
  content: ''; position: fixed; inset: 0; z-index: 9999; pointer-events: none; opacity: 0.03; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.container { max-width: 860px; margin: 0 auto; padding: 0 28px; }
a { color: inherit; }

/* Nav — floating pill */
nav { position: fixed; top: 14px; left: 0; right: 0; z-index: 100; padding: 0 16px; }
nav .container { max-width: 900px; display: flex; justify-content: space-between; align-items: center; padding: 8px; padding-inline-start: 22px; border-radius: 100px; background: color-mix(in srgb, var(--bg) 76%, transparent); backdrop-filter: blur(18px) saturate(160%); -webkit-backdrop-filter: blur(18px) saturate(160%); border: 1px solid var(--card-border); box-shadow: var(--shadow-sm); }
.logo { text-decoration: none; display: flex; align-items: center; }
.logo-img { height: 28px; filter: invert(var(--logo-invert)); }
/* green logo mark — matches the homepage nav */
.logo .mark { width: 30px; height: 30px; display: block; background: var(--accent); -webkit-mask: url(/images/logo-nobg.png) center/contain no-repeat; mask: url(/images/logo-nobg.png) center/contain no-repeat; }
.nav-right { display: flex; align-items: center; gap: 14px; }
nav .btn { padding: 9px 18px; border-radius: 100px; }

/* Language switch pill (EN <-> AR, lands on the mirror page) */
.lang-switch { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-family: 'Instrument Sans', 'IBM Plex Sans Arabic', sans-serif; color: var(--text-secondary); text-decoration: none; border: 1px solid var(--border); padding: 6px 13px; border-radius: 100px; transition: color 0.2s, border-color 0.2s, background 0.2s; white-space: nowrap; }
.lang-switch:hover { color: var(--text); border-color: var(--border-hover); background: var(--surface-2); }
.lang-switch svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 1.5; }
@media (max-width: 640px) { .lang-switch { font-size: 0; gap: 0; padding: 8px; } }

.btn { display: inline-flex; align-items: center; gap: 8px; padding: 11px 20px; font-size: 14px; font-weight: 600; font-family: var(--font); border-radius: 10px; text-decoration: none; cursor: pointer; transition: all 0.22s var(--ease); border: none; white-space: nowrap; }
:lang(ar) .btn, [dir="rtl"] .btn { font-family: var(--font-ar); }
.btn-primary { background: var(--text); color: #fbf9f4; box-shadow: 0 8px 22px -12px rgba(18,20,26,0.55); }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 16px 34px -14px rgba(18,20,26,0.6); }
.btn-accent { background: linear-gradient(122deg, var(--accent), var(--accent-2)); color: #fff; box-shadow: 0 10px 26px -12px var(--accent); }
.btn-accent:hover { transform: translateY(-2px); box-shadow: 0 18px 40px -14px var(--accent); }

.back-link { display: inline-block; font-size: 13px; color: var(--text-tertiary); text-decoration: none; margin-top: 100px; transition: color 0.2s; }
.back-link:hover { color: var(--accent); }

/* Hero */
.hero { padding: 24px 0 48px; position: relative; }
.hero h1 { font-family: var(--font-display); font-size: clamp(34px, 6vw, 60px); font-weight: 600; letter-spacing: -0.035em; line-height: 1.04; margin-bottom: 16px; overflow-wrap: break-word; }
:lang(ar) .hero h1, [dir="rtl"] .hero h1 { font-family: var(--font-ar); font-weight: 700; letter-spacing: -0.01em; line-height: 1.2; }
.ital { font-family: var(--font-serif); font-style: italic; font-weight: 400; color: var(--highlight); font-size: 1.08em; }
[dir="rtl"] .ital, :lang(ar) .ital { font-family: inherit; font-style: normal; font-weight: 700; color: var(--highlight); font-size: 1em; }

.case-header { display: flex; align-items: center; gap: 16px; margin-top: 30px; }
.case-header img { width: 56px; height: 56px; border-radius: 15px; box-shadow: 0 6px 20px -8px rgba(0,0,0,0.35); }
.case-header .app-name { font-family: var(--font-display); font-size: 20px; font-weight: 600; letter-spacing: -0.02em; margin-bottom: 2px; }
:lang(ar) .case-header .app-name, [dir="rtl"] .case-header .app-name { font-family: var(--font-ar); }
.case-header .app-subtitle { font-size: 14px; color: var(--text-tertiary); font-weight: 400; font-family: var(--font-ar); }
.case-header a { font-size: 13px; color: var(--accent); text-decoration: none; }
.case-header a:hover { text-decoration: underline; }

/* Chips */
.chips { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 22px; }
.chip { font-size: 12px; font-weight: 500; color: var(--text-secondary); border: 1px solid var(--border); background: var(--surface-2); padding: 5px 12px; border-radius: 100px; }
:lang(ar) .chip, [dir="rtl"] .chip { font-family: var(--font-ar); }

/* Store badge row */
.store-row { display: flex; gap: 10px; align-items: center; margin-top: 26px; flex-wrap: wrap; }
.store-row img { height: 42px; opacity: 0.92; transition: opacity 0.2s, transform 0.2s; }
.store-row a:hover img { opacity: 1; transform: translateY(-1px); }
/* Google Play PNG has a ~16% transparent border; render taller + negative margin so its
   visible pill matches the App Store badge's 42px height (42 / 0.672 ≈ 62). */
.store-row img.gp { height: 62px; margin: -10px 0; }

/* Sections */
section { padding: 64px 0; position: relative; }
section + section, .band { border-top: 1px solid var(--border); }
.section-label { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 600; color: var(--accent); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 18px; }
.section-label::before { content: ''; width: 20px; height: 1.5px; background: var(--accent); }
.section-title { font-family: var(--font-display); font-size: clamp(24px, 4vw, 34px); font-weight: 600; letter-spacing: -0.025em; line-height: 1.14; margin-bottom: 16px; overflow-wrap: break-word; }
:lang(ar) .section-title, [dir="rtl"] .section-title { font-family: var(--font-ar); font-weight: 700; letter-spacing: -0.01em; line-height: 1.3; }
.section-desc { font-size: 16px; color: var(--text-secondary); line-height: 1.75; max-width: 620px; margin-bottom: 20px; }
.section-desc a { color: var(--accent); }

/* Hero subtitle + service tech cards */
.hero .subtitle { font-size: clamp(16px, 2.4vw, 19px); color: var(--text-secondary); max-width: 580px; line-height: 1.65; margin: 0 0 30px; }
:lang(ar) .hero .subtitle, [dir="rtl"] .hero .subtitle { line-height: 1.9; }
.tech-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin-top: 44px; }
.tech-card { padding: 28px; background: var(--card); border: 1px solid var(--card-border); border-radius: 18px; box-shadow: var(--shadow-sm); transition: transform 0.4s var(--ease), box-shadow 0.4s, border-color 0.4s; }
.tech-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: var(--border-hover); }
.tech-card h3 { font-family: var(--font-display); font-size: 18px; font-weight: 600; margin-bottom: 8px; letter-spacing: -0.01em; }
:lang(ar) .tech-card h3, [dir="rtl"] .tech-card h3 { font-family: var(--font-ar); font-weight: 700; }
.tech-card p { font-size: 14.5px; color: var(--text-secondary); line-height: 1.65; }
@media (max-width: 640px) { .tech-grid { grid-template-columns: 1fr; } }

/* CTA */
.cta-section { text-align: center; }
.cta-section .section-label { justify-content: center; }
.cta-section .section-title { max-width: 520px; margin: 0 auto 12px; }
.cta-section .section-desc { max-width: 440px; margin: 0 auto 32px; }
.cta-buttons { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }

/* Process steps (numbered) */
.steps { margin-top: 40px; display: flex; flex-direction: column; gap: 4px; }
.step { display: flex; gap: 18px; padding: 22px 0; border-top: 1px solid var(--border); }
.step:last-child { border-bottom: 1px solid var(--border); }
.step .num { flex-shrink: 0; width: 34px; height: 34px; border-radius: 10px; background: var(--surface-2); border: 1px solid var(--card-border); display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-weight: 600; font-size: 14px; color: var(--accent); }
.step h3 { font-family: var(--font-display); font-size: 17px; font-weight: 600; letter-spacing: -0.01em; margin-bottom: 5px; }
:lang(ar) .step h3, [dir="rtl"] .step h3 { font-family: var(--font-ar); font-weight: 700; }
.step p { font-size: 14.5px; color: var(--text-secondary); line-height: 1.65; }

/* Linkable card (internal links to case studies / sibling services) */
a.tech-card { display: block; text-decoration: none; color: inherit; }
a.tech-card h3 { display: inline-flex; align-items: center; gap: 7px; }
a.tech-card h3::after { content: '→'; color: var(--accent); font-weight: 400; transition: transform 0.3s var(--ease); }
a.tech-card:hover h3::after { transform: translateX(4px); }
[dir="rtl"] a.tech-card h3::after { content: '←'; }
[dir="rtl"] a.tech-card:hover h3::after { transform: translateX(-4px); }

/* FAQ (accordion) */
.faq-list { margin-top: 36px; }
.faq-item { border-top: 1px solid var(--border); }
.faq-item:last-child { border-bottom: 1px solid var(--border); }
.faq-item summary { cursor: pointer; list-style: none; padding: 20px 0; font-family: var(--font-display); font-size: 16.5px; font-weight: 600; letter-spacing: -0.01em; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
:lang(ar) .faq-item summary, [dir="rtl"] .faq-item summary { font-family: var(--font-ar); font-weight: 700; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: '+'; font-size: 22px; font-weight: 400; line-height: 1; color: var(--accent); transition: transform 0.3s var(--ease); flex-shrink: 0; }
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-item p { padding: 0 0 22px; margin: 0; font-size: 15.5px; color: var(--text-secondary); line-height: 1.75; max-width: 660px; }
.faq-item p a { color: var(--accent); }

/* Blog listing cards */
.post-list { display: flex; flex-direction: column; gap: 16px; margin-top: 40px; }
a.post-card { display: block; text-decoration: none; color: inherit; padding: 26px 28px; background: var(--card); border: 1px solid var(--card-border); border-radius: 18px; box-shadow: var(--shadow-sm); transition: transform 0.4s var(--ease), box-shadow 0.4s, border-color 0.4s; }
a.post-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: var(--border-hover); }
.post-card .post-meta { font-size: 12.5px; color: var(--text-tertiary); margin-bottom: 8px; display: flex; gap: 10px; flex-wrap: wrap; }
.post-card h3 { font-family: var(--font-display); font-size: 20px; font-weight: 600; letter-spacing: -0.02em; margin-bottom: 8px; line-height: 1.25; }
:lang(ar) .post-card h3, [dir="rtl"] .post-card h3 { font-family: var(--font-ar); font-weight: 700; }
.post-card p { font-size: 15px; color: var(--text-secondary); line-height: 1.65; }
.post-card .read-more { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; font-size: 13.5px; font-weight: 600; color: var(--accent); }
.post-card .read-more::after { content: '→'; transition: transform 0.3s var(--ease); }
a.post-card:hover .read-more::after { transform: translateX(4px); }
[dir="rtl"] .post-card .read-more::after { content: '←'; }

/* Article prose */
.article { max-width: 720px; margin: 0 auto; }
.article-meta { font-size: 13px; color: var(--text-tertiary); margin-top: 30px; display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.prose { font-size: 17px; line-height: 1.8; color: var(--text); margin-top: 8px; }
.prose > p { margin: 0 0 22px; color: var(--text-secondary); }
.prose h2 { font-family: var(--font-display); font-size: clamp(22px, 3.4vw, 28px); font-weight: 600; letter-spacing: -0.02em; line-height: 1.2; margin: 44px 0 14px; }
:lang(ar) .prose h2, [dir="rtl"] .prose h2 { font-family: var(--font-ar); font-weight: 700; }
.prose h3 { font-family: var(--font-display); font-size: 20px; font-weight: 600; margin: 30px 0 10px; letter-spacing: -0.01em; }
.prose ul, .prose ol { margin: 0 0 22px; padding-inline-start: 24px; color: var(--text-secondary); }
.prose li { margin-bottom: 8px; }
.prose strong { color: var(--text); font-weight: 600; }
.prose a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.prose blockquote { margin: 0 0 22px; padding: 4px 20px; border-inline-start: 3px solid var(--accent); color: var(--text-secondary); font-style: italic; }
.prose .lead { font-size: 19px; color: var(--text); margin-bottom: 28px; }
.cost-table { width: 100%; border-collapse: collapse; margin: 0 0 24px; font-size: 15px; }
.cost-table th, .cost-table td { text-align: start; padding: 12px 14px; border-bottom: 1px solid var(--border); }
.cost-table th { font-weight: 600; color: var(--text); background: var(--bg-2); }
.cost-table td { color: var(--text-secondary); }
.article-cta { margin-top: 40px; padding: 30px; background: var(--card); border: 1px solid var(--card-border); border-radius: 18px; box-shadow: var(--shadow-sm); text-align: center; }
.article-cta h3 { font-family: var(--font-display); font-size: 20px; font-weight: 600; margin-bottom: 8px; }
:lang(ar) .article-cta h3, [dir="rtl"] .article-cta h3 { font-family: var(--font-ar); font-weight: 700; }
.article-cta p { color: var(--text-secondary); font-size: 15px; margin-bottom: 18px; }

/* Footer */
footer { padding: 40px 0; border-top: 1px solid var(--border); }
footer .container { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
.footer-left p { font-size: 13px; color: var(--text-tertiary); }
.footer-nav { display: flex; gap: 20px; flex-wrap: wrap; }
.footer-nav a { font-size: 13px; color: var(--text-secondary); text-decoration: none; transition: color 0.2s; }
.footer-nav a:hover { color: var(--accent); }
.location { font-size: 13px; color: var(--text-tertiary); }

@media (max-width: 480px) {
  section { padding: 48px 0; }
  footer .container { flex-direction: column; gap: 12px; text-align: center; }
  .footer-nav { justify-content: center; gap: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}

/* ===== Self-hosted fonts (replaces Google Fonts CDN) ===== */
/* arabic */ @font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 400; font-display: swap; src: url(/fonts/plexar-400-arabic.woff2) format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, 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; }
/* latin-ext */ @font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 400; font-display: swap; src: url(/fonts/plexar-400-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 400; font-display: swap; src: url(/fonts/plexar-400-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* arabic */ @font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 500; font-display: swap; src: url(/fonts/plexar-500-arabic.woff2) format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, 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; }
/* latin-ext */ @font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 500; font-display: swap; src: url(/fonts/plexar-500-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 500; font-display: swap; src: url(/fonts/plexar-500-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* arabic */ @font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 600; font-display: swap; src: url(/fonts/plexar-600-arabic.woff2) format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, 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; }
/* latin-ext */ @font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 600; font-display: swap; src: url(/fonts/plexar-600-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 600; font-display: swap; src: url(/fonts/plexar-600-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* arabic */ @font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 700; font-display: swap; src: url(/fonts/plexar-700-arabic.woff2) format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, 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; }
/* latin-ext */ @font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 700; font-display: swap; src: url(/fonts/plexar-700-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 700; font-display: swap; src: url(/fonts/plexar-700-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext */ @font-face { font-family: 'Instrument Sans'; font-style: normal; font-weight: 400; font-stretch: 100%; font-display: swap; src: url(/fonts/isans-400-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'Instrument Sans'; font-style: normal; font-weight: 400; font-stretch: 100%; font-display: swap; src: url(/fonts/isans-400-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext */ @font-face { font-family: 'Instrument Sans'; font-style: normal; font-weight: 500; font-stretch: 100%; font-display: swap; src: url(/fonts/isans-400-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'Instrument Sans'; font-style: normal; font-weight: 500; font-stretch: 100%; font-display: swap; src: url(/fonts/isans-400-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext */ @font-face { font-family: 'Instrument Sans'; font-style: normal; font-weight: 600; font-stretch: 100%; font-display: swap; src: url(/fonts/isans-400-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'Instrument Sans'; font-style: normal; font-weight: 600; font-stretch: 100%; font-display: swap; src: url(/fonts/isans-400-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext */ @font-face { font-family: 'Instrument Sans'; font-style: normal; font-weight: 700; font-stretch: 100%; font-display: swap; src: url(/fonts/isans-400-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'Instrument Sans'; font-style: normal; font-weight: 700; font-stretch: 100%; font-display: swap; src: url(/fonts/isans-400-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext */ @font-face { font-family: 'Instrument Serif'; font-style: italic; font-weight: 400; font-display: swap; src: url(/fonts/iserif-400i-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'Instrument Serif'; font-style: italic; font-weight: 400; font-display: swap; src: url(/fonts/iserif-400i-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext */ @font-face { font-family: 'Instrument Serif'; font-style: normal; font-weight: 400; font-display: swap; src: url(/fonts/iserif-400-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'Instrument Serif'; font-style: normal; font-weight: 400; font-display: swap; src: url(/fonts/iserif-400-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext */ @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url(/fonts/jbmono-400-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url(/fonts/jbmono-400-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext */ @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url(/fonts/jbmono-400-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url(/fonts/jbmono-400-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext */ @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 700; font-display: swap; src: url(/fonts/jbmono-400-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 700; font-display: swap; src: url(/fonts/jbmono-400-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
