/* ==========================================================================
   Tarashe Negar Ofogh — "Instrument" design system
   Cinematic, wide, near-black. Hairline engineering-grid scaffolding,
   full-bleed imagery, oversized restrained type, one lime accent.
   RTL-first (logical properties). Ref DNA: cipherdigital.com
   ========================================================================== */

@font-face{font-family:'Vazirmatn';font-weight:400;font-style:normal;font-display:swap;src:url('../fonts/vazirmatn-regular.woff2') format('woff2');}
@font-face{font-family:'Vazirmatn';font-weight:500;font-style:normal;font-display:swap;src:url('../fonts/vazirmatn-medium.woff2') format('woff2');}
@font-face{font-family:'Vazirmatn';font-weight:600;font-style:normal;font-display:swap;src:url('../fonts/vazirmatn-semibold.woff2') format('woff2');}
@font-face{font-family:'Vazirmatn';font-weight:700;font-style:normal;font-display:swap;src:url('../fonts/vazirmatn-bold.woff2') format('woff2');}
@font-face{font-family:'Vazirmatn';font-weight:900;font-style:normal;font-display:swap;src:url('../fonts/vazirmatn-black.woff2') format('woff2');}

/* Optional heading fonts for the page-builder 'font' picker (self-hosted, Persian+Latin subsets) */
@font-face{font-family:'Lalezar';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/lalezar-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:'Lalezar';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/lalezar-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:'Markazi Text';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/markazi-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:'Markazi Text';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/markazi-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:'Gulzar';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/gulzar-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:'Gulzar';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/gulzar-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:'Noto Naskh Arabic';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/noto-naskh-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:'Noto Naskh Arabic';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/noto-naskh-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:'Noto Kufi Arabic';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/noto-kufi-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:'Noto Kufi Arabic';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/noto-kufi-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:'Noto Sans Arabic';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/noto-sans-ar-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:'Noto Sans Arabic';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/noto-sans-ar-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:'Amiri';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/amiri-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:'Amiri';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/amiri-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:'Reem Kufi';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/reem-kufi-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:'Reem Kufi';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/reem-kufi-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:'Cairo';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/cairo-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:'Cairo';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/cairo-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:'Changa';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/changa-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:'Changa';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/changa-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:'El Messiri';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/el-messiri-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:'El Messiri';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/el-messiri-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:'Mada';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/mada-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:'Mada';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/mada-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:'Tajawal';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/tajawal-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:'Tajawal';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/tajawal-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:'Almarai';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/almarai-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:'Almarai';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/almarai-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;}

:root{
  --bg:#0a0a0a;
  --bg-2:#0f0f10;
  --bg-3:#161617;
  --ink:#f4f3f0;
  --ink-2:#9c9b96;
  --ink-3:#6a6964;

  --line:rgba(255,255,255,.11);
  --line-2:rgba(255,255,255,.2);
  --line-strong:rgba(255,255,255,.32);

  --accent:#cfe94b;                 /* themeable — single lime signal accent */
  --accent-ink:#0a0a0a;

  --edge:clamp(1rem,3.5vw,3rem);    /* inset where the frame rules sit */
  --maxw:1560px;
  --radius:4px;
  --font:'Vazirmatn',Tahoma,sans-serif;
  --font-display:'Lalezar','Vazirmatn',Tahoma,sans-serif;
  --font-serif:'Markazi Text','Vazirmatn',Georgia,serif;
  --mono:ui-monospace,'Cascadia Code','SFMono-Regular',Consolas,monospace;

  --fs-eyebrow:clamp(.7rem, .67rem + .12vw, .78rem);
  --fs-body:clamp(.96rem, .93rem + .14vw, 1.04rem);
  --fs-lead:clamp(1.05rem, .98rem + .3vw, 1.25rem);
  --fs-h3:clamp(1.3rem, 1.15rem + .5vw, 1.6rem);
  --fs-h2:clamp(1.7rem, 1.4rem + 1.2vw, 2.3rem);
  --fs-display:clamp(2.2rem, 1.7rem + 1.8vw, 3rem);
  --outline-halo:-1px -1px 0 rgba(0,0,0,.7),1px -1px 0 rgba(0,0,0,.7),-1px 1px 0 rgba(0,0,0,.7),1px 1px 0 rgba(0,0,0,.7),0 2px 10px rgba(0,0,0,.85),0 4px 24px rgba(0,0,0,.6);
  --outline-thin:0 1px 2px rgba(0,0,0,.85);
  --outline-medium:-1px -1px 0 rgba(0,0,0,.7),1px -1px 0 rgba(0,0,0,.7),-1px 1px 0 rgba(0,0,0,.7),1px 1px 0 rgba(0,0,0,.7);
  --outline-thick:-2px -2px 0 rgba(0,0,0,.8),2px -2px 0 rgba(0,0,0,.8),-2px 2px 0 rgba(0,0,0,.8),2px 2px 0 rgba(0,0,0,.8),0 3px 20px rgba(0,0,0,.7);
}

*,*::before,*::after{box-sizing:border-box;}
*{margin:0;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  font-family:var(--font); font-size:var(--fs-body); line-height:1.7; color:var(--ink);
  background:var(--bg); overflow-x:hidden; position:relative;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img,svg,video{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
button,input,select,textarea{font:inherit;color:inherit;}
h1,h2,h3,h4{font-weight:600;line-height:1.08;letter-spacing:-.02em;text-wrap:balance;}
p{text-wrap:pretty;}
::selection{background:var(--accent);color:var(--accent-ink);}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
.tech,code,kbd,samp{font-family:var(--mono);direction:ltr;unicode-bidi:isolate;font-size:.92em;letter-spacing:-.01em;}

/* ---- Engineering frame: fixed vertical hairline rules at the edges ---- */
.site-frame{position:fixed;inset-block:0;inset-inline:0;z-index:2;pointer-events:none;}
.site-frame span{position:absolute;inset-block:0;inline-size:1px;background:var(--line);}
.site-frame span:nth-child(1){inset-inline-start:var(--edge);}
.site-frame span:nth-child(2){inset-inline-end:var(--edge);}
@media (max-width:640px){.site-frame{display:none;}}

/* registration "+" corner marks on a box */
.reg{position:relative;}
.reg > .m{position:absolute;inline-size:11px;block-size:11px;z-index:3;pointer-events:none;color:var(--line-2);}
.reg > .m::before,.reg > .m::after{content:"";position:absolute;background:currentColor;}
.reg > .m::before{inset-inline-start:50%;inset-block:0;inline-size:1px;transform:translateX(-50%);}
.reg > .m::after{inset-block-start:50%;inset-inline:0;block-size:1px;transform:translateY(-50%);}
.reg > .m.tl{inset-block-start:-5px;inset-inline-start:-5px;}
.reg > .m.tr{inset-block-start:-5px;inset-inline-end:-5px;}
.reg > .m.bl{inset-block-end:-5px;inset-inline-start:-5px;}
.reg > .m.br{inset-block-end:-5px;inset-inline-end:-5px;}

/* ---- Layout ---- */
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--edge);position:relative;}
.section{position:relative;padding-block:clamp(3.5rem,7vw,7rem);}
.section + .section, .section-b{border-block-start:1px solid var(--line);}
.center{text-align:center;} .muted{color:var(--ink-2);} .hidden{display:none!important;}
.eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-size:calc(var(--fs-eyebrow)*var(--sc,1));letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-family:var(--mono);}
.eyebrow::before{content:"";inline-size:1.6rem;block-size:1px;background:var(--accent);}
.statement{font-size:calc(var(--fs-h2)*var(--sc,1));font-weight:500;line-height:1.1;letter-spacing:-.025em;max-width:20ch;}
.display{font-size:calc(var(--fs-display)*var(--sc,1));font-weight:500;line-height:1.02;letter-spacing:-.03em;}

/* ---- Reveal (subtle) ---- */
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s);}
.js .reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1!important;transform:none!important;}}
.still .reveal{opacity:1!important;transform:none!important;transition:none!important;}
.still *,.still *::before,.still *::after{animation:none!important;}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.85em 1.5em;border-radius:var(--radius);font-weight:500;font-size:.95rem;border:1px solid transparent;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s,transform .2s;white-space:nowrap;}
.btn svg{inline-size:1.05em;block-size:1.05em;flex:0 0 auto;}
.btn-solid{background:var(--bg-3);color:var(--ink);border-color:var(--line-2);}
.btn-solid:hover{background:#1e1e20;border-color:var(--line-strong);}
.btn-accent{background:var(--accent);color:var(--accent-ink);font-weight:600;}
.btn-accent:hover{filter:brightness(1.06);transform:translateY(-1px);}
.btn-line{background:transparent;color:var(--ink);border-color:var(--line-2);}
.btn-line:hover{border-color:var(--ink);}
.btn-arrow svg{transition:transform .2s;}
.btn-arrow:hover svg{transform:translateX(-4px);}
.link-arrow{display:inline-flex;align-items:center;gap:.4rem;color:var(--ink);font-size:.95rem;font-weight:500;}
.link-arrow svg{inline-size:1em;block-size:1em;transition:transform .2s;}
.link-arrow:hover svg{transform:translateX(-4px);}

/* ---- Header (thin nav) ---- */
/* NOTE: no backdrop-filter here — it creates a containing block for the fixed
   mobile menu (.nav-links), which collapsed the menu to header height on iOS. */
.site-header{position:sticky;inset-block-start:0;z-index:50;background:color-mix(in srgb,var(--bg) 92%,transparent);border-block-end:1px solid var(--line);}
@supports (backdrop-filter:blur(1px)){.site-header{background:color-mix(in srgb,var(--bg) 78%,transparent);}}
/* apply the blur to a ::before layer so it doesn't contain the fixed menu */
.site-header::before{content:"";position:absolute;inset:0;z-index:-1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;}
.nav{display:flex;align-items:center;gap:1.5rem;min-block-size:66px;}
.brand{display:flex;align-items:center;gap:.7rem;font-weight:600;font-size:1rem;}
.brand-mark{inline-size:26px;block-size:26px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:2px;flex:0 0 auto;}
.brand-mark i{background:var(--ink-3);border-radius:1px;}
.brand-mark i:nth-child(3),.brand-mark i:nth-child(5),.brand-mark i:nth-child(7){background:var(--accent);}
.brand-logo{block-size:var(--logo-size,40px);inline-size:var(--logo-size,40px);object-fit:contain;flex:0 0 auto;}
.brand small{display:block;font-size:.64rem;font-weight:400;color:var(--ink-3);letter-spacing:.02em;}
.nav-links{display:flex;align-items:center;gap:.1rem;margin-inline-start:auto;}
.nav-links a{padding:.5rem .8rem;font-size:.9rem;color:var(--ink-2);transition:color .2s;}
.nav-links a:hover,.nav-links a.is-active{color:var(--ink);}
.nav-cta{margin-inline-start:.6rem;}
.menu-btn{display:none;inline-size:42px;block-size:42px;margin-inline-start:auto;border:1px solid var(--line-2);border-radius:var(--radius);background:transparent;cursor:pointer;place-items:center;color:var(--ink);}
.menu-btn svg{inline-size:20px;block-size:20px;}
@media (max-width:1000px){
  /* full-screen slide-in menu. Base state hidden off the inline-end edge;
     .open slides it in. Uses only .nav-links(.open) so specificity is even. */
  .nav-links{position:fixed;inset-block-start:66px;inset-inline:0;inset-block-end:0;flex-direction:column;align-items:stretch;gap:0;background:var(--bg);padding:1rem var(--edge) 2rem;transform:translateX(100%);transition:transform .32s cubic-bezier(.2,.7,.2,1);border-block-start:1px solid var(--line);overflow-y:auto;-webkit-overflow-scrolling:touch;}
  html[dir="ltr"] .nav-links{transform:translateX(-100%);}
  .nav-links.open,html[dir="ltr"] .nav-links.open{transform:translateX(0);}
  .nav-links a{padding:1rem .2rem;border-block-end:1px solid var(--line);font-size:1.05rem;}
  .nav-cta{margin:1.1rem 0 0;justify-content:center;}
  .menu-btn{display:grid;}
}

/* ================= SECTIONS ================= */

/* ---- Hero (video/image full-bleed) ---- */
.s-hero{position:relative;min-block-size:clamp(560px,92vh,940px);display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;border-block-end:1px solid var(--line);}
.s-hero__media{position:absolute;inset:0;z-index:0;}
.s-hero__media img,.s-hero__media video{width:100%;height:100%;object-fit:cover;}
.s-hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,.55) 0%,rgba(10,10,10,.18) 35%,rgba(10,10,10,.9) 100%),linear-gradient(to right,rgba(10,10,10,0) 40%,rgba(10,10,10,.72) 100%);}
.s-hero__inner{position:relative;z-index:1;padding-block:clamp(2rem,5vw,4rem) clamp(2rem,4vw,3.5rem);}
.s-hero__eyebrow{color:#f4f3f0;}
.s-hero h1{font-size:calc(var(--fs-display)*var(--sc,1));font-weight:500;line-height:1.02;letter-spacing:-.03em;margin-block:1.4rem;max-width:15ch;}
.s-hero .lead{font-size:calc(var(--fs-lead)*var(--sc,1));color:#d6d5d0;max-width:44ch;line-height:1.6;font-weight:400;}
.s-hero__actions{display:flex;flex-wrap:wrap;gap:1rem;margin-block-start:2rem;}
.s-hero__trust{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap;margin-block-start:2.6rem;padding-block-start:1.6rem;border-block-start:1px solid var(--line);}
.s-hero__trust .lbl{font-size:calc(var(--fs-eyebrow)*var(--sc,1));text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3);font-family:var(--mono);}
.s-hero__trust .logos{display:flex;align-items:center;gap:1.8rem;flex-wrap:wrap;}
.s-hero__trust img{max-block-size:34px;width:auto;background:#f4f3f0;padding:.28rem .5rem;border-radius:4px;}
.s-hero__scroll{position:absolute;inset-block-end:1.3rem;inset-inline-start:50%;transform:translateX(-50%);z-index:1;color:var(--ink-3);font-size:.7rem;letter-spacing:.1em;display:flex;flex-direction:column;align-items:center;gap:.5rem;font-family:var(--mono);}
.s-hero__scroll .bar{inline-size:1px;block-size:30px;background:linear-gradient(var(--accent),transparent);overflow:hidden;position:relative;}
.s-hero__scroll .bar::after{content:"";position:absolute;inset-inline:0;block-size:10px;background:#fff;animation:scrollDrop 1.9s ease-in-out infinite;}
@keyframes scrollDrop{0%{transform:translateY(-12px);opacity:0;}40%{opacity:1;}100%{transform:translateY(32px);opacity:0;}}
.s-hero__hud{position:absolute;z-index:1;inset-block-start:calc(66px + 2rem);inset-inline-end:var(--edge);display:grid;gap:.5rem;text-align:end;}
.s-hero__hud .row{display:inline-flex;align-items:center;gap:.5rem;justify-content:flex-end;font-family:var(--mono);font-size:.8rem;color:#cfe94b;background:rgba(10,10,10,.35);border:1px solid var(--line);padding:.35rem .7rem;border-radius:var(--radius);backdrop-filter:blur(4px);}
.s-hero__hud .row b{color:#fff;font-weight:600;}
@media (max-width:760px){.s-hero__hud{display:none;}}
@media (prefers-reduced-motion:reduce){.s-hero__scroll .bar::after{animation:none;}}

/* ---- Statement + image ---- */
.s-stmt__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,5rem);align-items:center;}
.s-stmt__text .statement{margin-block:1.4rem;}
.s-stmt__text p{color:var(--ink-2);max-width:46ch;font-size:calc(var(--fs-lead)*var(--sc,1));line-height:1.6;}
.s-stmt__text .btn,.s-stmt__text .link-arrow{margin-block-start:2rem;}
.s-stmt__media{position:relative;aspect-ratio:1/1;block-size:var(--media-h, auto);overflow:hidden;border:1px solid var(--line);}
.s-stmt__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,.7,.2,1);}
.s-stmt:hover .s-stmt__media img{transform:scale(1.05);}
.s-stmt--rev .s-stmt__grid{grid-template-columns:.9fr 1.1fr;}
.s-stmt--rev .s-stmt__media{order:-1;}
@media (max-width:860px){.s-stmt__grid,.s-stmt--rev .s-stmt__grid{grid-template-columns:1fr;}.s-stmt--rev .s-stmt__media{order:0;}.s-stmt__media{aspect-ratio:16/10;}}

/* ---- Full-bleed statement ---- */
.s-full{position:relative;min-block-size:var(--media-h, clamp(440px,68vh,720px));display:grid;place-items:center;overflow:hidden;text-align:center;border-block:1px solid var(--line);}
.s-full__media{position:absolute;inset:0;z-index:0;}
.s-full__media img{width:100%;height:100%;object-fit:cover;}
.s-full__media::after{content:"";position:absolute;inset:0;background:rgba(10,10,10,.5);}
.s-full__inner{position:relative;z-index:1;padding:2rem;max-width:36ch;}
.s-full__inner .display{font-weight:500;}

/* ---- Split ---- */
.s-split__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;}
.s-split__media{position:relative;aspect-ratio:4/3;block-size:var(--media-h, auto);overflow:hidden;border:1px solid var(--line);}
.s-split__media img,.s-split__media video{width:100%;height:100%;object-fit:cover;}
.s-split__text .statement{font-size:calc(var(--fs-h3)*var(--sc,1));margin-block:1rem 1.2rem;max-width:24ch;}
.s-split__text p{color:var(--ink-2);max-width:44ch;line-height:1.7;}
.s-split__text ul{list-style:none;padding:0;margin-block-start:1.4rem;display:grid;gap:.7rem;}
.s-split__text li{display:flex;gap:.7rem;color:var(--ink-2);}
.s-split__text li::before{content:"";flex:0 0 auto;inline-size:6px;block-size:6px;margin-block-start:.55rem;background:var(--accent);}
@media (max-width:860px){.s-split__grid{grid-template-columns:1fr;}}

/* ---- Stats ---- */
.s-stats{position:relative;overflow:hidden;}
.s-stats__media{position:absolute;inset:0;z-index:0;}
.s-stats__media img{width:100%;height:100%;object-fit:cover;opacity:.6;}
.s-stats__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,.55),rgba(10,10,10,.28) 45%,rgba(10,10,10,.68));}
.s-stats .wrap{position:relative;z-index:1;}
.s-stats__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2);margin-block-start:2.4rem;}
.s-stats__cell{background:rgba(10,10,10,.42);backdrop-filter:blur(1px);padding:clamp(1.6rem,4vw,2.6rem);}
.s-stats__cell .n{font-size:calc(clamp(2.2rem, 1.7rem + 1.6vw, 3.4rem)*var(--sc,1));font-weight:400;line-height:1;letter-spacing:-.03em;font-family:var(--mono);}
.s-stats__cell .n small{font-size:.32em;color:var(--ink-3);margin-inline-start:.3em;font-weight:400;}
.s-stats__cell .l{color:var(--ink-2);margin-block-start:.7rem;font-size:calc(.95rem*var(--sc,1));}
@media (max-width:760px){.s-stats__grid{grid-template-columns:1fr;}}

/* ---- Logos strip ---- */
.s-logos__marquee{overflow:hidden;margin-block-start:2.4rem;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.s-logos__track{display:flex;gap:1px;width:max-content;animation:marquee 46s linear infinite;background:var(--line);}
.s-logos:hover .s-logos__track{animation-play-state:paused;}
@keyframes marquee{to{transform:translateX(50%);}}
.s-logos__chip{flex:0 0 auto;inline-size:190px;block-size:96px;display:grid;place-items:center;padding:1.1rem;background:var(--bg);}
.s-logos__chip img{max-block-size:60px;max-inline-size:150px;width:auto;background:#f4f3f0;padding:.6rem .8rem;border-radius:6px;transition:transform .3s;}
.s-logos__chip:hover img{transform:scale(1.04);}
@media (prefers-reduced-motion:reduce){.s-logos__track{animation:none;flex-wrap:wrap;}}

/* ---- Projects showcase ---- */
.s-proj__list{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);margin-block-start:2.4rem;counter-reset:pj;}
.s-proj__row{background:var(--bg);padding:1.1rem clamp(1rem,3vw,1.8rem);display:flex;gap:1.2rem;align-items:baseline;transition:background .2s;}
.s-proj__row:hover{background:var(--bg-2);}
.s-proj__row .num{counter-increment:pj;font-family:var(--mono);font-size:.8rem;color:var(--accent);min-inline-size:2.6rem;}
.s-proj__row .t{color:var(--ink);font-size:.98rem;}

/* ---- Generic cards (products/articles/categories) ---- */
.grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
@media (max-width:920px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}}
.card{background:var(--bg);padding:1.7rem;transition:background .25s;}
.card:hover{background:var(--bg-2);}
.cat-card{display:flex;flex-direction:column;gap:.9rem;min-block-size:210px;}
.cat-card .num{font-family:var(--mono);font-size:.75rem;color:var(--ink-3);}
.cat-card h3{font-size:calc(var(--fs-h3)*var(--sc,1));font-weight:500;margin-block-start:auto;}
.cat-card .count{font-family:var(--mono);font-size:.78rem;color:var(--accent);}

.product-card{background:var(--bg);display:flex;flex-direction:column;transition:background .25s;}
.product-card:hover{background:var(--bg-2);}
.product-card .thumb{aspect-ratio:4/3;background:#000;overflow:hidden;display:grid;place-items:center;border-block-end:1px solid var(--line);}
.product-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.product-card:hover .thumb img{transform:scale(1.05);}
.product-card .body{padding:1.2rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:.4rem;flex:1;}
.product-card .code{font-family:var(--mono);font-size:.72rem;color:var(--ink-3);}
.product-card h3{font-size:1.05rem;font-weight:500;line-height:1.5;}
.product-card .desc{font-size:.9rem;color:var(--ink-2);flex:1;line-height:1.6;}
.product-card .more{color:var(--ink);font-size:.86rem;font-weight:500;display:inline-flex;gap:.3rem;align-items:center;margin-block-start:.5rem;}

/* ---- CTA band ---- */
.s-cta{border-block:1px solid var(--line);}
.s-cta__grid{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;}
.s-cta h2{font-size:calc(var(--fs-h2)*var(--sc,1));font-weight:500;max-width:22ch;}
.s-cta__actions{display:flex;gap:1rem;flex-wrap:wrap;}

/* ---- Section header (shared) ---- */
.s-head{max-width:60ch;margin-block-end:2.6rem;}
.s-head h2{font-size:calc(var(--fs-h2)*var(--sc,1));font-weight:500;margin-block-start:1rem;}
.s-head p{color:var(--ink-2);margin-block-start:1rem;font-size:calc(var(--fs-lead)*var(--sc,1));line-height:1.6;}

/* ---- Page band (inner pages) ---- */
.page-band{position:relative;padding-block:clamp(3rem,7vw,5.5rem);border-block-end:1px solid var(--line);overflow:hidden;}
.page-band__media{position:absolute;inset:0;z-index:0;}
.page-band__media img{width:100%;height:100%;object-fit:cover;opacity:.3;}
.page-band__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,.5),var(--bg));}
.page-band .wrap{position:relative;z-index:1;}
.page-band h1{font-size:calc(var(--fs-h2)*var(--sc,1));font-weight:500;margin-block-start:.8rem;max-width:22ch;}
.page-band p:not(.kicker){color:var(--ink-2);max-width:60ch;margin-block-start:1rem;font-size:calc(var(--fs-lead)*var(--sc,1));}
.breadcrumbs{font-size:.85rem;color:var(--ink-3);padding-block:1.2rem;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;}
.breadcrumbs a:hover{color:var(--ink);}
.breadcrumbs .sep{opacity:.5;}

/* ---- Prose ---- */
.prose{max-width:70ch;font-size:calc(1.08rem*var(--sc,1));line-height:1.9;color:var(--ink-2);}
.prose>*+*{margin-block-start:1.3rem;}
.prose h2{font-size:calc(var(--fs-h3)*var(--sc,1));margin-block-start:2.4rem;color:var(--ink);font-weight:600;}
.prose h3{font-size:1.3rem;margin-block-start:1.8rem;color:var(--ink);font-weight:600;}
.prose strong{color:var(--ink);}
.prose ul,.prose ol{padding-inline-start:1.4rem;display:grid;gap:.55rem;}
.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;}
.prose img{border:1px solid var(--line);}

/* ---- Spec table ---- */
.spec-table{width:100%;border-collapse:collapse;font-size:.92rem;}
.spec-table th,.spec-table td{text-align:start;padding:.85rem 1rem;border:1px solid var(--line);vertical-align:top;}
.spec-table th{inline-size:38%;background:var(--bg-2);font-weight:500;color:var(--ink-2);}
.spec-table td{font-family:var(--mono);direction:ltr;unicode-bidi:plaintext;color:var(--ink);}
.feature-list{list-style:none;padding:0;display:grid;gap:.7rem;}
.feature-list li{display:flex;gap:.7rem;align-items:flex-start;color:var(--ink-2);}
.feature-list li::before{content:"";flex:0 0 auto;inline-size:6px;block-size:6px;margin-block-start:.6rem;background:var(--accent);}

/* ---- Tags / badges ---- */
.tag{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;padding:.32rem .8rem;border:1px solid var(--line-2);color:var(--ink-2);transition:.2s;border-radius:100px;}
.tag:hover{border-color:var(--ink);color:var(--ink);}
.badge{font-family:var(--mono);font-size:.72rem;padding:.28rem .65rem;border:1px solid var(--line-2);color:var(--ink-2);border-radius:var(--radius);}

/* ---- Forms ---- */
.field{display:grid;gap:.45rem;margin-block-end:1.15rem;}
.field label{font-size:.85rem;color:var(--ink-2);}
.field input,.field textarea,.field select{padding:.8rem 1rem;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--bg-2);color:var(--ink);transition:border-color .2s;width:100%;}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-3);}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--ink);}
.field textarea{resize:vertical;min-block-size:130px;}
.field .hint{font-size:.78rem;color:var(--ink-3);}
.honeypot{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;opacity:0;}
.form-note{padding:.9rem 1.2rem;border-radius:var(--radius);font-size:.92rem;border:1px solid var(--line-2);}
.form-note.ok{color:#bfe08a;border-color:rgba(191,224,138,.4);}
.form-note.err{color:#e29797;border-color:rgba(226,151,151,.4);}

/* ---- Footer ---- */
.site-footer{position:relative;border-block-start:1px solid var(--line);overflow:hidden;}
.site-footer__top{padding-block:clamp(3.5rem,8vw,6rem);position:relative;}
.footer-statement{font-size:clamp(2.4rem,1.3rem+4vw,5rem);font-weight:500;line-height:1.04;letter-spacing:-.03em;max-width:16ch;}
.footer-cta{margin-block-start:2.2rem;display:flex;gap:1rem;flex-wrap:wrap;align-items:center;}
.site-footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:2.4rem;padding-block:clamp(2.5rem,5vw,3.5rem);border-block-start:1px solid var(--line);}
.footer-h{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);margin-block-end:1.1rem;font-family:var(--mono);}
.footer-links{list-style:none;padding:0;display:grid;gap:.65rem;}
.footer-links a{color:var(--ink-2);font-size:.94rem;transition:.2s;}
.footer-links a:hover{color:var(--ink);}
.footer-contact{color:var(--ink-2);font-size:.94rem;display:grid;gap:.7rem;}
.footer-contact .tech{color:var(--ink);}
.footer-bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:1.5rem;border-block-start:1px solid var(--line);font-size:.82rem;color:var(--ink-3);}
.footer-social{display:flex;gap:.5rem;}
.footer-social a{inline-size:38px;block-size:38px;border:1px solid var(--line-2);border-radius:var(--radius);display:grid;place-items:center;color:var(--ink-2);transition:.2s;}
.footer-social a:hover{border-color:var(--ink);color:var(--ink);}
@media (max-width:820px){.site-footer__grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.site-footer__grid{grid-template-columns:1fr;}}

/* ---- Utilities ---- */
/* off-screen via transform (never adds horizontal scroll in RTL) */
.skip-link{position:fixed;inset-block-start:0;inset-inline-start:0;transform:translateY(-120%);background:var(--accent);color:var(--accent-ink);padding:.6rem 1rem;z-index:100;transition:transform .2s;}
.skip-link:focus{transform:translateY(0);}
.pill-row{display:flex;flex-wrap:wrap;gap:.6rem;}
.split-simple{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center;}
@media (max-width:860px){.split-simple{grid-template-columns:1fr;}}

/* ==========================================================================
   Compatibility layer — inner pages authored against the previous design
   system reuse a handful of class/token names. Map them onto the new
   "Instrument" tokens so every inner page inherits the cinematic look
   without rewriting each template.
   ========================================================================== */
:root{
  --brand:var(--accent);
  --step--1:clamp(.82rem,.8rem+.1vw,.9rem);
  --step-1:clamp(1.15rem,1.05rem+.4vw,1.35rem);
  --step-2:clamp(1.5rem,1.2rem+1.2vw,2.1rem);
  --step-3:var(--fs-h2);
  --radius-sm:4px;
  --space:clamp(3.5rem,7vw,7rem);
}

/* container ≡ wrap */
.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--edge);position:relative;}
.page-band .container{position:relative;z-index:1;}

/* kicker ≡ eyebrow */
.kicker{display:inline-flex;align-items:center;gap:.6rem;font-size:calc(var(--fs-eyebrow)*var(--sc,1));letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-family:var(--mono);margin:0 0 .4rem;}
.kicker::before{content:"";inline-size:1.6rem;block-size:1px;background:var(--accent);}
.page-band .kicker{color:var(--eyebrow-color, var(--accent));}

/* section heading cluster */
.section-head{max-width:66ch;margin-block-end:2.4rem;}
.section-head h2{font-size:calc(var(--fs-h3)*var(--sc,1));font-weight:500;letter-spacing:-.02em;}
.section-head p:not(.kicker){color:var(--ink-2);margin-block-start:.8rem;}

/* tighten the page-band so it doesn't read as an empty void on media-less pages */
.page-band{padding-block:clamp(1.8rem,3.5vw,3rem) clamp(2.5rem,5vw,4rem);}
.page-band h1{font-weight:600;}

/* misc inner-page helpers */
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-block-start:1.8rem;}
.chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border:1px solid var(--line);border-radius:100px;font-size:calc(var(--fs-eyebrow)*var(--sc,1));color:var(--ink-2);background:var(--bg-2);}
.blueprint{position:relative;}
.project-list{list-style:none;display:flex;flex-direction:column;}

/* --- more inner-page aliases (product detail, contact, gallery) --- */
:root{--surface:var(--bg-2);}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:start;}
@media (max-width:860px){.split{grid-template-columns:1fr;}}
.section-tight{padding-block:clamp(1.8rem,3.5vw,2.8rem);}
.hero-figure{border-radius:var(--radius);overflow:hidden;}
.hero-figure img{width:100%;height:auto;}
.thumb-btn.is-active{border-color:var(--accent)!important;}
.lead{font-size:calc(var(--fs-lead)*var(--sc,1));color:var(--ink-2);line-height:1.6;}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-2);}
.btn-ghost:hover{border-color:var(--ink);}
.btn-sm{padding:.62em 1.15em;font-size:.88rem;}

/* --- projects/clients + remaining tokens --- */
:root{--paper:var(--bg-2);--radius-lg:8px;--accent-2:var(--accent);}
.logo-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.8rem;}
.logo-strip .cell{display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;padding:1rem;border:1px solid var(--line);border-radius:var(--radius);background:#f4f3f0;}
.logo-strip .cell img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;mix-blend-mode:multiply;}

/* ===== Typography by role — eyebrow(label) / heading / body =====
   Role vars (eyebrow, head, body) are set GLOBALLY at :root from
   settings (site-wide default) and OVERRIDDEN per-home-section inline. When a var
   is unset the rule falls back to the original design value. Applies everywhere,
   inner pages included. */

/* -- eyebrow small labels and kickers (site-wide) -- */
.eyebrow{font-family:var(--eyebrow-font, ui-monospace,'Cascadia Code','SFMono-Regular',Consolas,monospace);}
.kicker{font-family:var(--eyebrow-font, ui-monospace,'Cascadia Code','SFMono-Regular',Consolas,monospace);}
.breadcrumbs{font-family:var(--eyebrow-font, ui-monospace,'Cascadia Code','SFMono-Regular',Consolas,monospace);}
.eyebrow,.kicker{color:var(--eyebrow-color, var(--ink-3));}
.eyebrow,.kicker{font-size:var(--eyebrow-size, var(--fs-eyebrow));}
.eyebrow{text-shadow:var(--eyebrow-outline, none);}
.s-hero__inner .s-hero__eyebrow{font-family:var(--eyebrow-font, ui-monospace,'Cascadia Code','SFMono-Regular',Consolas,monospace);color:var(--eyebrow-color, #f4f3f0);text-shadow:var(--eyebrow-outline, var(--outline-halo));}
.s-hero__trust .lbl{font-family:var(--eyebrow-font, ui-monospace,'Cascadia Code','SFMono-Regular',Consolas,monospace);}
.product-card .code{font-family:var(--eyebrow-font, ui-monospace,'Cascadia Code','SFMono-Regular',Consolas,monospace);}
.cat-card .count{font-family:var(--eyebrow-font, ui-monospace,'Cascadia Code','SFMono-Regular',Consolas,monospace);}
.cat-card .num{font-family:var(--eyebrow-font, ui-monospace,'Cascadia Code','SFMono-Regular',Consolas,monospace);}
.s-proj__row .num{font-family:var(--eyebrow-font, ui-monospace,'Cascadia Code','SFMono-Regular',Consolas,monospace);}

/* -- heading (main title / big stat number) -- */
.s-hero__inner h1,.s-full__inner .display{font-family:var(--head-font, inherit);font-size:var(--head-size, var(--fs-display));color:var(--head-color, inherit);text-shadow:var(--head-outline, var(--outline-halo));}
.s-stmt__text .statement{font-family:var(--head-font, inherit);font-size:var(--head-size, var(--fs-h2));color:var(--head-color, inherit);text-shadow:var(--head-outline, none);}
.s-split__text .statement{font-family:var(--head-font, inherit);font-size:var(--head-size, var(--fs-h3));color:var(--head-color, inherit);text-shadow:var(--head-outline, none);}
.s-head h2,.s-cta h2{font-family:var(--head-font, inherit);font-size:var(--head-size, var(--fs-h2));color:var(--head-color, inherit);text-shadow:var(--head-outline, none);}
.s-stats.has-media .s-head h2{text-shadow:var(--head-outline, var(--outline-halo));}
.s-stats__cell .n{font-family:var(--head-font, ui-monospace,'Cascadia Code','SFMono-Regular',Consolas,monospace);font-size:var(--head-size, clamp(2.2rem, 1.7rem + 1.6vw, 3.4rem));color:var(--head-color, inherit);text-shadow:var(--head-outline, none);}
.s-stats.has-media .s-stats__cell .n{text-shadow:var(--head-outline, var(--outline-halo));}
/* inner-page headings follow the global heading role (font + colour; size per design) */
.page-band h1,.section-head h2,.cat-card h3,.product-card h3,.article-card h3,.prose h1,.prose h2,.prose h3{font-family:var(--head-font, inherit);color:var(--head-color, inherit);}

/* -- body (paragraph / sub-text) -- */
.s-hero .lead{font-family:var(--body-font, inherit);font-size:var(--body-size, var(--fs-lead));color:var(--body-color, #d6d5d0);text-shadow:var(--body-outline, var(--outline-halo));}
.s-stmt__text p,.s-head p{font-family:var(--body-font, inherit);font-size:var(--body-size, var(--fs-lead));color:var(--body-color, var(--ink-2));text-shadow:var(--body-outline, none);}
.prose{font-family:var(--body-font, inherit);font-size:var(--body-size, 1.08rem);color:var(--body-color, var(--ink-2));text-shadow:var(--body-outline, none);}
.s-stats__cell .l{font-family:var(--body-font, inherit);font-size:var(--body-size, .95rem);color:var(--body-color, var(--ink-2));text-shadow:var(--body-outline, none);}
.s-stats.has-media .s-stats__cell .l{text-shadow:var(--body-outline, var(--outline-halo));}
/* inner-page body text follows the global body role (font; colour kept per design) */
.page-band p:not(.kicker),.section-head p:not(.kicker),.product-card .desc,.article-card p,.s-full__inner .display + p{font-family:var(--body-font, inherit);}
.page-band p:not(.kicker),.section-head p:not(.kicker){color:var(--body-color, var(--ink-2));}

/* scroll cue keeps a fixed halo (not slot-controlled) */
.s-hero__scroll{text-shadow:var(--outline-halo);}

/* -- bold toggles: font-weight var; default keeps the design weight -- */
.s-hero__inner h1{font-weight:var(--head-weight, 500);}
.s-full__inner .display{font-weight:var(--head-weight, 500);}
.s-stmt__text .statement{font-weight:var(--head-weight, 500);}
.s-split__text .statement{font-weight:var(--head-weight, 500);}
.s-head h2{font-weight:var(--head-weight, 500);}
.s-cta h2{font-weight:var(--head-weight, 500);}
.s-stats__cell .n{font-weight:var(--head-weight, 400);}
.page-band h1{font-weight:var(--head-weight, 500);}
.section-head h2{font-weight:var(--head-weight, 500);}
.eyebrow{font-weight:var(--eyebrow-weight, 400);}
.kicker{font-weight:var(--eyebrow-weight, 400);}
.s-hero .lead{font-weight:var(--body-weight, 400);}
.s-stmt__text p{font-weight:var(--body-weight, 400);}
.s-head p{font-weight:var(--body-weight, 400);}
.prose{font-weight:var(--body-weight, 400);}
.page-band p:not(.kicker){font-weight:var(--body-weight, 400);}
.section-head p:not(.kicker){font-weight:var(--body-weight, 400);}
