/* Harrat Ventures design tokens + webfonts, copied from the Harrat design system (tokens/*.css). Regenerate from the design system rather than editing here. */

/* ── fonts.css ── */
/* Webfonts — self-hosted copies of Google Fonts (OFL / Apache 2.0). See readme.md > Type. */
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400 900;font-display:swap;src:url('../fonts/playfair-display-italic-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}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400 900;font-display:swap;src:url('../fonts/playfair-display-italic-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}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400 900;font-display:swap;src:url('../fonts/playfair-display-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}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400 900;font-display:swap;src:url('../fonts/playfair-display-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}
@font-face{font-family:'IBM Plex Sans';font-style:italic;font-weight:300 700;font-display:swap;src:url('../fonts/ibm-plex-sans-italic-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}
@font-face{font-family:'IBM Plex Sans';font-style:italic;font-weight:300 700;font-display:swap;src:url('../fonts/ibm-plex-sans-italic-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}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:300 700;font-display:swap;src:url('../fonts/ibm-plex-sans-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}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:300 700;font-display:swap;src:url('../fonts/ibm-plex-sans-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}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:300 700;font-display:swap;src:url('../fonts/geist-mono-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}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:300 700;font-display:swap;src:url('../fonts/geist-mono-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}
@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/ibm-plex-sans-arabic-300-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}
@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/ibm-plex-sans-arabic-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}
@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/ibm-plex-sans-arabic-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}
@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/ibm-plex-sans-arabic-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}
@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/ibm-plex-sans-arabic-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}
@font-face{font-family:'Material Symbols Sharp';font-style:normal;font-weight:300;font-display:block;src:url('../fonts/material-symbols-sharp-fallback.woff2') format('woff2')}

/* ── colors.css ── */
/* Harrat Ventures — color tokens. Dark-mode-first. Light + sub-brand overrides live in themes.css. */
:root{
/* Basalt — the neutral ramp. Cool-leaning volcanic blacks → charcoal → metallic silver. #333337 is the charcoal of the mountain mark. */
--basalt-0:#FFFFFF;--basalt-25:#F7F7F8;--basalt-50:#EFEFF1;--basalt-100:#DEDFE2;--basalt-200:#C4C6CA;--basalt-300:#A7A9AE;--basalt-400:#8A8C92;--basalt-500:#6E7077;--basalt-600:#55575D;--basalt-700:#3F4045;--basalt-750:#333337;--basalt-800:#2A2B2F;--basalt-850:#222326;--basalt-900:#1B1C1F;--basalt-925:#151618;--basalt-950:#0F1012;--basalt-975:#0A0A0C;--basalt-1000:#050506;
/* Named brand colors */
--harrat-obsidian:var(--basalt-1000);--harrat-charcoal:var(--basalt-750);--harrat-silver:var(--basalt-200);--harrat-white:var(--basalt-0);
/* Ember — molten accent ("volcanic innovation"). oklch hue 40. 500 is the brand accent. */
--ember-50:#FFF2EE;--ember-100:#FFE0D6;--ember-200:#FEC5B2;--ember-300:#FFA383;--ember-400:#FD8358;--ember-500:#F76225;--ember-600:#D44F13;--ember-700:#AB3D09;--ember-800:#832E09;--ember-900:#5A210B;--ember-950:#361307;
/* Stream — data / AI accent. oklch hue 205. Charts, telemetry, model output. */
--stream-50:#E7F9FC;--stream-100:#CDF4F8;--stream-200:#A6ECF4;--stream-300:#79E4F0;--stream-400:#49D7E6;--stream-500:#0DC1D0;--stream-600:#119EAB;--stream-700:#007E88;--stream-800:#005E66;--stream-900:#064045;--stream-950:#03272B;
/* Threat severity + status (dark values; light values in themes.css) */
--critical-500:#F84C45;--critical-700:#BE2323;--high-500:#FF9044;--high-700:#B35708;--medium-500:#FAD03E;--medium-700:#856A06;--low-500:#70ADEA;--low-700:#1666AA;--success-500:#5BD295;--success-700:#067D4D;

/* ── Semantic aliases (dark, default) ── */
--bg-page:var(--basalt-975);--bg-sunken:var(--basalt-1000);
--surface-1:var(--basalt-950);--surface-2:var(--basalt-925);--surface-3:var(--basalt-900);--surface-4:var(--basalt-850);
--surface-inverse:var(--basalt-25);--surface-inverse-hover:var(--basalt-100);--surface-inverse-press:var(--basalt-200);--surface-scrim:rgb(5 5 6 / .74);--surface-input:var(--basalt-1000);
--border-subtle:var(--basalt-850);--border-default:var(--basalt-750);--border-strong:var(--basalt-600);--border-inverse:var(--basalt-100);
--text-primary:var(--basalt-25);--text-secondary:var(--basalt-200);--text-muted:var(--basalt-400);--text-disabled:var(--basalt-600);--text-inverse:var(--basalt-1000);
--text-link:var(--basalt-50);--text-link-hover:var(--ember-400);

/* Accent slot — the ONLY hue a sub-brand re-points (see themes.css) */
--accent:var(--ember-500);--accent-hover:var(--ember-400);--accent-press:var(--ember-600);--accent-ink:var(--basalt-1000);--accent-text:var(--ember-400);

/* Data accent */
--data:var(--stream-400);

/* Severity — always pair color with a label; never color alone */
--sev-critical:var(--critical-500);--sev-high:var(--high-500);--sev-medium:var(--medium-500);--sev-low:var(--low-500);--sev-info:var(--basalt-300);
--status-success:var(--success-500);--status-danger-ink:var(--basalt-1000);

/* Data-viz series order */
--viz-1:var(--stream-400);--viz-2:var(--basalt-100);--viz-3:var(--ember-500);--viz-4:var(--medium-500);--viz-5:var(--low-500);--viz-6:var(--stream-700);--viz-7:var(--basalt-500);--viz-8:var(--ember-300);
--viz-grid:var(--basalt-850);--viz-axis:var(--basalt-500);
}

/* Derived aliases — re-declared on every theme/accent scope so they recompute from the scope's source tokens.
   Only pure functions of other semantic tokens belong here. */
:root,[data-theme],[data-accent]{
--surface-card:var(--surface-1);--surface-raised:var(--surface-2);--surface-hover:var(--surface-3);--surface-selected:var(--surface-4);
--text-body:var(--text-secondary);--text-heading:var(--text-primary);
--accent-subtle:color-mix(in oklch,var(--accent) 14%,transparent);--accent-border:color-mix(in oklch,var(--accent) 48%,transparent);--focus-ring:var(--accent);
--shadow-accent:0 0 0 1px var(--accent),0 0 28px -6px color-mix(in oklch,var(--accent) 70%,transparent);
--data-subtle:color-mix(in oklch,var(--data) 14%,transparent);--data-border:color-mix(in oklch,var(--data) 45%,transparent);
--status-warning:var(--sev-medium);--status-danger:var(--sev-critical);--status-info:var(--data);
--sev-critical-subtle:color-mix(in oklch,var(--sev-critical) 16%,transparent);--sev-high-subtle:color-mix(in oklch,var(--sev-high) 14%,transparent);--sev-medium-subtle:color-mix(in oklch,var(--sev-medium) 13%,transparent);--sev-low-subtle:color-mix(in oklch,var(--sev-low) 14%,transparent);--sev-info-subtle:color-mix(in oklch,var(--sev-info) 13%,transparent);--status-success-subtle:color-mix(in oklch,var(--status-success) 14%,transparent);
}

/* ── typography.css ── */
/* Harrat Ventures — typography tokens.
   Display serif echoes the HARRAT wordmark; sans carries subheads, body and all UI; mono carries data. */
:root{
--font-display:'Playfair Display','Times New Roman',Georgia,serif;
--font-sans:'IBM Plex Sans','IBM Plex Sans Arabic',system-ui,-apple-system,'Segoe UI',sans-serif;
--font-mono:'Geist Mono',ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;
--font-arabic:'IBM Plex Sans Arabic','IBM Plex Sans',system-ui,sans-serif;
--font-icon:'Material Symbols Sharp';/* @kind font */

--weight-light:300;/* @kind font */--weight-regular:400;/* @kind font */--weight-medium:500;/* @kind font */--weight-semibold:600;/* @kind font */--weight-bold:700;/* @kind font */--weight-heavy:800;/* @kind font */--weight-black:900;/* @kind font */

/* Size scale (px) */
--fs-2xs:11px;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-base:16px;--fs-lg:18px;--fs-xl:20px;--fs-2xl:24px;--fs-3xl:30px;--fs-4xl:38px;--fs-5xl:48px;--fs-6xl:60px;--fs-7xl:76px;--fs-8xl:96px;--fs-9xl:128px;

--lh-solid:1;/* @kind font */--lh-display:1.04;/* @kind font */--lh-heading:1.14;/* @kind font */--lh-title:1.3;/* @kind font */--lh-ui:1.25;/* @kind font */--lh-body:1.6;/* @kind font */--lh-dense:1.45;/* @kind font */

/* Tracking. Caps are always tracked — the wordmark sets HARRAT at ~0.2em. */
--tracking-display:-0.012em;/* @kind font */--tracking-heading:-0.006em;/* @kind font */--tracking-normal:0;/* @kind font */--tracking-ui:0.005em;/* @kind font */--tracking-eyebrow:0.18em;/* @kind font */--tracking-wordmark:0.22em;/* @kind font */--tracking-mono:0;/* @kind font */
}

/* Semantic roles — re-declared on [lang]/[dir] scopes so Arabic swaps the sans family through them. */
:root,[lang],[dir]{

/* Semantic roles — use as `font: var(--type-…)` then set letter-spacing from the paired tracking token */
--type-display-xl:var(--weight-heavy) var(--fs-8xl)/1 var(--font-display);/* @kind font */
--type-display-lg:var(--weight-heavy) var(--fs-7xl)/var(--lh-display) var(--font-display);/* @kind font */
--type-display-md:var(--weight-bold) var(--fs-6xl)/var(--lh-display) var(--font-display);/* @kind font */
--type-heading-1:var(--weight-bold) var(--fs-5xl)/var(--lh-heading) var(--font-display);/* @kind font */
--type-heading-2:var(--weight-bold) var(--fs-4xl)/var(--lh-heading) var(--font-display);/* @kind font */
--type-heading-3:var(--weight-bold) var(--fs-3xl)/1.2 var(--font-display);/* @kind font */
--type-title-lg:var(--weight-semibold) var(--fs-2xl)/var(--lh-title) var(--font-sans);/* @kind font */
--type-title-md:var(--weight-semibold) var(--fs-lg)/var(--lh-title) var(--font-sans);/* @kind font */
--type-title-sm:var(--weight-semibold) var(--fs-base)/var(--lh-title) var(--font-sans);/* @kind font */
--type-eyebrow:var(--weight-semibold) var(--fs-xs)/1.2 var(--font-sans);/* @kind font */
--type-body-lg:var(--weight-regular) var(--fs-lg)/var(--lh-body) var(--font-sans);/* @kind font */
--type-body:var(--weight-regular) var(--fs-base)/var(--lh-body) var(--font-sans);/* @kind font */
--type-body-sm:var(--weight-regular) var(--fs-md)/var(--lh-dense) var(--font-sans);/* @kind font */
--type-ui:var(--weight-medium) var(--fs-md)/var(--lh-ui) var(--font-sans);/* @kind font */
--type-ui-sm:var(--weight-medium) var(--fs-sm)/var(--lh-ui) var(--font-sans);/* @kind font */
--type-caption:var(--weight-regular) var(--fs-xs)/1.4 var(--font-sans);/* @kind font */
--type-mono:var(--weight-regular) var(--fs-sm)/1.5 var(--font-mono);/* @kind font */
--type-mono-sm:var(--weight-regular) var(--fs-2xs)/1.4 var(--font-mono);/* @kind font */
--type-metric-xl:var(--weight-bold) var(--fs-6xl)/1 var(--font-display);/* @kind font */
--type-metric:var(--weight-medium) var(--fs-3xl)/1.05 var(--font-mono);/* @kind font */
}

/* ── spacing.css ── */
/* Harrat Ventures — spacing, layout, geometry. 4px base unit. */
:root{
--space-0:0;--space-px:1px;--space-0-5:2px;--space-1:4px;--space-1-5:6px;--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;--space-40:160px;

/* Layout */
--container-text:680px;/* @kind spacing */--container-md:1040px;/* @kind spacing */--container-max:1280px;/* @kind spacing */--container-wide:1440px;/* @kind spacing */
--gutter:24px;/* @kind spacing */--gutter-lg:40px;/* @kind spacing */--section-y:128px;/* @kind spacing */--section-y-sm:80px;/* @kind spacing */
--sidebar-w:248px;/* @kind spacing */--sidebar-w-collapsed:64px;/* @kind spacing */--topbar-h:56px;/* @kind spacing */
--control-h-sm:28px;/* @kind spacing */--control-h-md:36px;/* @kind spacing */--control-h-lg:44px;/* @kind spacing */--control-h-xl:56px;/* @kind spacing */
--row-h-dense:36px;/* @kind spacing */--row-h:44px;/* @kind spacing */

/* Geometry — sharp by default. Radius exists only for the hairline softening of 1–2px on dense data widgets. */
--radius-0:0;--radius-1:1px;--radius-2:2px;
--radius-control:0;--radius-card:0;--radius-overlay:0;

/* Chamfer — the signature 45° cut corner, taken from the fractured facets of the mountain mark.
   Cut sits on the inline-end/top corner (top-right in LTR, top-left in RTL). */
--chamfer-xs:4px;/* @kind radius */--chamfer-sm:6px;/* @kind radius */--chamfer-md:10px;/* @kind radius */--chamfer-lg:16px;/* @kind radius */--chamfer-xl:28px;/* @kind radius */
--clip-chamfer-sm:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,0 100%);/* @kind other */
--clip-chamfer-md:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%);/* @kind other */
--clip-chamfer-lg:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%);/* @kind other */
--clip-chamfer-xl:polygon(0 0,calc(100% - 28px) 0,100% 28px,100% 100%,0 100%);/* @kind other */

/* Facet angles measured from the mark — use for diagonal rules, wipes, and image crops */
--angle-facet-steep:62deg;/* @kind other */--angle-facet-shallow:32deg;/* @kind other */

/* Borders */
--border-w:1px;/* @kind spacing */--border-w-strong:2px;/* @kind spacing */--rule-accent-w:2px;/* @kind spacing */
}

/* ── effects.css ── */
/* Harrat Ventures — surfaces, elevation, motion, layering. */
:root{
/* Metallic + matte textures (from the silver mark) */
--metal-silver:linear-gradient(135deg,#FAFAFB 0%,#D6D7DA 28%,#9EA0A5 52%,#E7E8EA 74%,#B4B6BA 100%);/* @kind other */
--metal-silver-text:linear-gradient(180deg,#FFFFFF 0%,#D9DADD 48%,#9A9CA1 100%);/* @kind other */
--metal-edge:linear-gradient(90deg,transparent 0%,rgb(255 255 255 / .22) 50%,transparent 100%);/* @kind other */
--matte-basalt:linear-gradient(180deg,var(--basalt-925) 0%,var(--basalt-975) 100%);/* @kind other */
--matte-charcoal:linear-gradient(160deg,#2B2C30 0%,#1A1B1E 60%,#141517 100%);/* @kind other */
--glow-ember:radial-gradient(60% 55% at 50% 100%,rgb(247 98 37 / .16) 0%,transparent 70%);/* @kind other */
--texture-facets:linear-gradient(62deg,transparent calc(50% - .5px),rgb(255 255 255 / .05) 50%,transparent calc(50% + .5px)),linear-gradient(-58deg,transparent calc(50% - .5px),rgb(255 255 255 / .04) 50%,transparent calc(50% + .5px));/* @kind other */

/* Elevation — dark UIs lean on borders + a 1px top highlight, not soft shadows */
--highlight-top:inset 0 1px 0 rgb(255 255 255 / .06);/* @kind shadow */
--shadow-0:none;
--shadow-1:inset 0 1px 0 rgb(255 255 255 / .05),0 1px 2px rgb(0 0 0 / .5);
--shadow-2:inset 0 1px 0 rgb(255 255 255 / .06),0 12px 32px -12px rgb(0 0 0 / .8);
--shadow-3:inset 0 1px 0 rgb(255 255 255 / .07),0 32px 80px -16px rgb(0 0 0 / .9);
--blur-scrim:6px;/* @kind other */--blur-glass:16px;/* @kind other */

/* Motion — decisive, never bouncy */
--ease-standard:cubic-bezier(.2,0,0,1);/* @kind other */--ease-enter:cubic-bezier(0,0,.2,1);/* @kind other */--ease-exit:cubic-bezier(.4,0,1,1);/* @kind other */--ease-fracture:cubic-bezier(.7,0,.2,1);/* @kind other */
--dur-instant:80ms;/* @kind other */--dur-fast:140ms;/* @kind other */--dur-base:220ms;/* @kind other */--dur-slow:380ms;/* @kind other */--dur-deliberate:640ms;/* @kind other */

/* Layers */
--z-base:0;/* @kind other */--z-raised:10;/* @kind other */--z-sticky:100;/* @kind other */--z-dropdown:200;/* @kind other */--z-overlay:300;/* @kind other */--z-modal:400;/* @kind other */--z-toast:500;/* @kind other */--z-tooltip:600;/* @kind other */
}

/* ── themes.css ── */
/* Harrat Ventures — theme + sub-brand layer.
   Brand architecture: Harrat (parent) owns neutrals, type, geometry, spacing, severity.
   A portfolio company / consultancy inherits everything and may override ONLY:
   --accent* (one hue family), optionally --font-display, and its own logo.
   Scope overrides on a wrapper: <div data-theme="light">, <div data-accent="stream">. */

[data-theme="light"]{
color-scheme:light;
--bg-page:var(--basalt-0);--bg-sunken:var(--basalt-50);
--surface-1:var(--basalt-0);--surface-2:var(--basalt-25);--surface-3:var(--basalt-50);--surface-4:var(--basalt-100);
--surface-inverse:var(--basalt-975);--surface-inverse-hover:var(--basalt-800);--surface-inverse-press:var(--basalt-700);--surface-scrim:rgb(10 10 12 / .48);--surface-input:var(--basalt-0);
--border-subtle:var(--basalt-100);--border-default:var(--basalt-200);--border-strong:var(--basalt-400);--border-inverse:var(--basalt-800);
--text-primary:var(--basalt-1000);--text-secondary:var(--basalt-700);--text-muted:var(--basalt-500);--text-disabled:var(--basalt-300);--text-inverse:var(--basalt-0);
--text-link:var(--basalt-1000);--text-link-hover:var(--ember-700);
--accent:var(--ember-600);--accent-hover:var(--ember-700);--accent-press:var(--ember-800);--accent-ink:var(--basalt-0);--accent-text:var(--ember-700);
--data:var(--stream-700);
--sev-critical:var(--critical-700);--sev-high:var(--high-700);--sev-medium:var(--medium-700);--sev-low:var(--low-700);--sev-info:var(--basalt-500);
--status-success:var(--success-700);--status-danger-ink:var(--basalt-0);
--viz-grid:var(--basalt-100);--viz-axis:var(--basalt-400);--viz-1:var(--stream-700);--viz-2:var(--basalt-800);--viz-3:var(--ember-600);
--highlight-top:inset 0 1px 0 rgb(255 255 255 / .8);/* @kind shadow */
--shadow-1:0 1px 2px rgb(10 10 12 / .08);--shadow-2:0 12px 32px -12px rgb(10 10 12 / .22);--shadow-3:0 32px 80px -16px rgb(10 10 12 / .32);
}

/* Accent slots — how a sub-brand re-points the accent without touching anything else */
[data-accent="stream"]{--accent:var(--stream-400);--accent-hover:var(--stream-300);--accent-press:var(--stream-500);--accent-ink:var(--basalt-1000);--accent-text:var(--stream-300)}
[data-accent="silver"]{--accent:var(--basalt-100);--accent-hover:var(--basalt-0);--accent-press:var(--basalt-300);--accent-ink:var(--basalt-1000);--accent-text:var(--basalt-50)}
[data-theme="light"][data-accent="stream"],[data-theme="light"] [data-accent="stream"]{--accent:var(--stream-700);--accent-hover:var(--stream-800);--accent-press:var(--stream-900);--accent-ink:var(--basalt-0);--accent-text:var(--stream-800)}

/* Arabic / RTL — Plex Sans Arabic carries sans roles; display stays Playfair for Latin runs */
[lang="ar"],[dir="rtl"]{--font-sans:'IBM Plex Sans Arabic','IBM Plex Sans',system-ui,sans-serif;--tracking-eyebrow:0;--tracking-wordmark:0}

/* ── base.css ── */
/* Harrat Ventures — minimal element defaults shipped with styles.css */
html{color-scheme:dark;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg-page);color:var(--text-body);font:var(--type-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
h1,h2,h3{font-variant-numeric:lining-nums;font-family:var(--font-display);color:var(--text-heading);font-weight:var(--weight-bold);letter-spacing:var(--tracking-heading);text-wrap:balance;margin:0}
h4,h5,h6{font-family:var(--font-sans);color:var(--text-heading);font-weight:var(--weight-semibold);margin:0}
p{text-wrap:pretty}
a{color:var(--text-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:var(--border-strong);transition:color var(--dur-fast) var(--ease-standard),text-decoration-color var(--dur-fast) var(--ease-standard)}
a:hover{color:var(--text-link-hover);text-decoration-color:currentColor}
code,kbd,samp,pre{font-family:var(--font-mono);font-size:.92em}
::selection{background:var(--accent);color:var(--accent-ink)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.hv-icon{font-family:var(--font-icon);font-weight:300;font-style:normal;font-size:20px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';font-feature-settings:'liga';-webkit-font-smoothing:antialiased;font-variation-settings:'FILL' 0,'wght' 300,'GRAD' 0,'opsz' 24;user-select:none;flex-shrink:0}
.hv-icon[data-fill="true"]{font-variation-settings:'FILL' 1,'wght' 300,'GRAD' 0,'opsz' 24}
.hv-tabular{font-variant-numeric:tabular-nums}
input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:1}
