{"version":3,"sources":["jsdelivr-header.js","/npm/fscss@1.1.22/exec.js"],"names":[],"mappings":"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","file":"/npm/fscss@1.1.22/exec.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/fscss@1.1.22/exec.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/* Figsh-fscss light, source v3., fscss.devtem.org */\nfunction exec({ type = 'text', content, onError, onSuccess }) {\n  \n  // 1. Validation\n  if (!content) {\n    const errorText = 'No CSS content or URL provided.';\n    console.error(`[FSCSS] ${errorText}`);\n    if (onError) onError(errorText);\n    return;\n  }\n\n  const style = document.createElement('style');\n  \n  const appendStyle = (cssText) => {\n    style.textContent = cssText;\n    document.head.appendChild(style);\n    if (onSuccess) onSuccess(style);\n    xfscssProcessorWrap();\n  };\n\n  // 2. Normalizing Types\n  const isText = ['text', 'auto', 'text/fscss', 'text/css'].includes(type);\n  const isUrl = ['fromUrl', 'URL', 'fromURL', 'link'].includes(type);\n\n  // 3. Logic Execution\n  if (isText) {\n    appendStyle(content);\n  } else if (isUrl) {\n    fetch(content)\n      .then(res => {\n        if (!res.ok) throw new Error(`HTTP ${res.status}: ${res.statusText}`);\n        return res.text();\n      })\n      .then(appendStyle)\n      .catch(err => {\n        const msg = `Failed to load CSS from: ${content}. ${err.message}`;\n        console.error(`[FSCSS] ${msg}`);\n        if (onError) onError(msg);\n      });\n  } else {\n    const errorText = `Unsupported type \"${type}\". Use \"text\" or \"fromUrl\".`;\n    console.error(`[FSCSS] ${errorText}`);\n    if (onError) onError(errorText);\n  }\n}\n\n \n\nfunction xfscssProcessorWrap(){(async ()=>{\n  /**\n * FSCSS Processing Script\n * Note: Use official npm package/CDN instead of copying this directly.\n * visit: (fscss.devtem.org) for support.\n */\n \nfunction procCntInit(ntc,stc){\n  const nu = Array(ntc).fill().map((_, i)=>(i+1)*stc);\n  return `${nu}`;\n} \n  function procCnt(text){\n    const reg=/count\\(\\s*([\\d\\.]+)\\s*(?:,\\s*([\\d\\.]+)?)?\\)/g;\n    text = text.replace(reg, (March, num, step)=>{\n      if(step===null)step=1;\n      return procCntInit(parseInt(num), parseInt(step?step:1));\n    })\n    return text;\n  }\n  function procChe(text) {\n  const reg = /length\\((?:([^\\)]+)|\\s*\"([^\"]*)\"\\s*|\\s*'([^']*)'\\s*)\\)/g;\n  text = text.replace(reg, (match, txt, txt2, txt3) => {\n    const resTxt = txt || txt2 || txt3;\n    return resTxt.length;\n  })\n  return text;\n}\nfunction parseMath(expr) {\n  const str = expr.replace(/\\s+/g, '');\n  let pos = 0;\n  \n  function parseExpr() {\n    let left = parseTerm();\n    while (pos < str.length && (str[pos] === '+' || str[pos] === '-')) {\n      const op = str[pos++];\n      const right = parseTerm();\n      left = op === '+' ? left + right : left - right;\n    }\n    return left;\n  }\n  \n  function parseTerm() {\n    let left = parsePower();\n    while (pos < str.length && (str[pos] === '*' || str[pos] === '/')) {\n      const op = str[pos++];\n      const right = parsePower();\n      left = op === '*' ? left * right : left / right;\n    }\n    return left;\n  }\n  \n  function parsePower() {\n    let base = parseUnary();\n    if (pos < str.length && str[pos] === '*' && str[pos + 1] === '*') {\n      pos += 2;\n      const exp = parseUnary(); // right-associative\n      return Math.pow(base, exp);\n    }\n    return base;\n  }\n  \n  function parseUnary() {\n    if (str[pos] === '-') { pos++; return -parsePrimary(); }\n    if (str[pos] === '+') { pos++; return parsePrimary(); }\n    return parsePrimary();\n  }\n  \n  function parsePrimary() {\n    if (str[pos] === '(') {\n      pos++; // skip '('\n      const val = parseExpr();\n      if (str[pos] !== ')') throw new Error('Missing closing )');\n      pos++; // skip ')'\n      return val;\n    }\n    \n    const numMatch = str.slice(pos).match(/^[0-9]*\\.?[0-9]+/);\n    if (!numMatch) throw new Error(`Unexpected token at pos ${pos}: \"${str[pos]}\"`);\n    pos += numMatch[0].length;\n    return parseFloat(numMatch[0]);\n  }\n  \n  const result = parseExpr();\n  if (pos !== str.length) throw new Error(`Unexpected token: \"${str[pos]}\"`);\n  return result;\n}\n\nfunction procNum(css) {\n  const regex = /num\\((.*?)\\)/g;\n  \n  return css.replace(regex, (match, expression) => {\n    try {\n      return parseMath(expression);\n    } catch (e) {\n      console.error('Invalid math expression:', expression);\n      return expression;\n    }\n  });\n}\n  \nconst arraysExfscss = {}; // global variable\nconst orderedxFscssRandom = {};\n\nconst exfMAX_DEPTH = 10; // Prevent infinite recursion\nconst defExfscss = {}; // Stores definitions globally. FIGSH-FSCSS \nconst runnedSet = new Set();\nconst runnedSetS = new Set();\n\nfunction extractBlock(css, startIndex) {\n  let depth = 0;\n  let i = startIndex;\n  while (i < css.length) {\n    if (css[i] === '{') depth++;\n    else if (css[i] === '}') depth--;\n    if (depth === 0) break;\n    i++;\n  }\n  return css.slice(startIndex, i + 1);\n}\n\nfunction parseConditionBlocks(block) {\n  const blocks = [];\n  // Adjusted regex to correctly capture the block content within curly braces\n  const conditionRegex = /(if|el-if|el)\\s*([^{}]*?)\\s*\\{([\\s\\S]*?)\\}/g;\n  let match;\n  while ((match = conditionRegex.exec(block)) !== null) {\n    blocks.push({\n      type: match[1],\n      condition: match[2].trim(),\n      block: match[3].trim()\n    });\n  }\n  return blocks;\n}\n\n\nfunction procExC(css) {\n  const regex = /exec\\((_log|_error|_warn|_info),\\s*(?:\"([^\"]*)\"|'([^']*)'|([^)]*))\\)/g;\n  \n  const methodMap = {\n    _log: console.log,\n    _error: console.error,\n    _warn: console.warn,\n    _info: console.info,\n  };\n  \n  const cleanedCSS = css.replace(regex, (full, method, dQ, sQ, raw) => {\n    const arg = dQ ?? sQ ?? raw;\n    \n    if (!methodMap[method]) {\n      console.warn(`fscss[exec(console)]: Unsupported method: ${method}`);\n      return '';\n    }\n    \n    if (!arg) {\n      console.warn(`fscss[exec(console)]: Empty argument for method: ${method}`);\n      return '';\n    }\n    \n    methodMap[method](arg);\n    return '';\n  });\n  \n  return cleanedCSS;\n}\n\n  function procEv(css) {\n  const functionMap = {};\n  const funcDefRegex = /@event\\s+([\\w-]+)\\(([^)]*)\\)\\s*:?{/g;\n  let funcMatch;\n  let modifiedCSS = css;\n  const removalRanges = [];\n\n  // First pass: extract and mark function definitions\n  while ((funcMatch = funcDefRegex.exec(css)) !== null) {\n    const funcName = funcMatch[1];\n    const argsStr = funcMatch[2];\n    const blockStart = funcMatch.index + funcMatch[0].length - 1;\n\n    if (blockStart >= css.length) {\n      console.warn(`fscss[parsing] Warning: Unexpected end of CSS after @event ${funcName} definition.`);\n      continue;\n    }\n\n    const fullBlock = extractBlock(css, blockStart);\n\n    if (fullBlock.length === 0 || fullBlock[fullBlock.length - 1] !== '}') {\n      console.warn(`fscss[parsing] Warning: Malformed block for @event '${funcName}'. Missing closing '}'.`);\n      continue;\n    }\n\n    const fullFunc = css.slice(funcMatch.index, blockStart + fullBlock.length);\n\n    const conditionBlocks = parseConditionBlocks(fullBlock);\n    const args = argsStr.split(',').map(arg => arg.trim()).filter(arg => arg !== '');\n\n    if (functionMap[funcName]) {\n        console.warn(`fscss[definition] Warning: Duplicate @event definition for '${funcName}'. The last one will be used.`);\n    }\n    functionMap[funcName] = { args, conditionBlocks };\n\n    removalRanges.push([funcMatch.index, blockStart + fullBlock.length]);\n  }\n  for (let i = removalRanges.length - 1; i >= 0; i--) {\n    const [start, end] = removalRanges[i];\n    modifiedCSS = modifiedCSS.slice(0, start) + modifiedCSS.slice(end);\n  }\n  modifiedCSS = modifiedCSS.replace(/@event\\.([\\w-]+)\\(([^)]*)\\)/g, (match, funcName, argValuesStr) => {\n    const func = functionMap[funcName];\n    if (!func) {\n      console.warn(`fscss[call] Warning: @event function '${funcName}' not found during call.`);\n      return match;\n    }\n\n    const context = {};\n    const argValues = argValuesStr.split(',').map(v => v.trim()).filter(v => v !== '');\n\n    if (argValues.length !== func.args.length) {\n      console.warn(`fscss[call] Warning: Argument count mismatch for @event '${funcName}'. Expected ${func.args.length}, got ${argValues.length}.`);\n    }\n\n    func.args.forEach((argName, i) => {\n      if (argValues[i] !== undefined) {\n        context[argName] = argValues[i];\n      } else {\n        console.warn(`fscss[call] Warning: Missing value for argument '${argName}' in @event '${funcName}' call.`);\n      }\n    });\n\n    let result = '';\n    let matched = false;\n    let elBlockFound = false;\n\n    for (const block of func.conditionBlocks) {\n      if (block.type === 'el') {\n          if (elBlockFound) {\n              console.warn(`fscss[logic] Warning: Multiple 'el' (else) blocks found in @event '${funcName}'. Only the first 'el' block will be considered.`);\n          }\n          elBlockFound = true;\n      }\n\n      if (matched && block.type !== 'el') {\n          continue;\n      }\n\n      if (block.type === 'el') {\n        if (!matched) {\n          matched = true;\n        } else {\n            continue;\n        }\n      } else {\n        const conditions = block.condition.split(',').map(c => c.trim()).filter(c => c !== '');\n        if (conditions.length === 0) {\n            console.warn(`fscss[logic] Warning: Empty condition in '${block.type}' block for @event '${funcName}'.`);\n            matched = true;\n        } else {\n            matched = conditions.every(cond => {\n                const comparisonMatch = cond.match(/^(\\w+)\\s*(==|!=|>=|<=|>|<)\\s*([^]+)$/);\n                if (comparisonMatch) {\n                    const [, varName, operator, expected] = comparisonMatch;\n                    if (!(varName in context)) {\n                        console.warn(`fscss[logic] Warning: Condition variable '${varName}' not provided in @event '${funcName}' context. Treating as false.`);\n                        return false;\n                    }\n                    const actual = context[varName];\n                    \n                    const numActual = isNaN(actual) ? actual : Number(actual);\n                    const numExpected = isNaN(expected) ? expected : Number(expected);\n                    switch (operator) {\n                        case '==': return numActual == numExpected;\n                        case '!=': return numActual != numExpected;\n                        case '>': return numActual > numExpected;\n                        case '<': return numActual < numExpected;\n                        case '>=': return numActual >= numExpected;\n                        case '<=': return numActual <= numExpected;\n                        default: return false;\n                    }\n                } else {\n                    const parts = cond.split(':').map(s => s.trim());\n                    if (parts.length !== 2) {\n                        console.warn(`fscss[logic] Warning: Malformed condition '${cond}' in @event '${funcName}'. Expected 'variable operator value' or 'variable:value'.`);\n                        return false;\n                    }\n                    const [varName, expected] = parts;\n                    if (!(varName in context)) {\n                        console.warn(`fscss[logic] Warning: Condition variable '${varName}' not provided in @event '${funcName}' context. Treating as false.`);\n                        return false;\n                    }\n                    return context[varName] === expected;\n                }\n            });\n        }\n      }\n\n      if (matched) {\n        const assignMatch = block.block.match(/(\\w+)\\s*(?:\\:\\s*([^;]*);?|\\|([^\\|]+)\\|?)/);\n        if (assignMatch && assignMatch[2]) {\n          result = assignMatch[2].trim();\n        } \n        else if (assignMatch && assignMatch[3]) {\n          result = assignMatch[3].trim();\n        }\n        else {\n          console.warn(`fscss[logic] Warning: No valid CSS property assignment found in matched block for @event '${funcName}'. Block content: '${block.block}'.`);\n        }\n        break;\n      }\n    }\n    \n    \n    if (!result && func.conditionBlocks.length > 0 && !matched) {\n        console.warn(`fscss[call] Warning: No condition matched for @event '${funcName}' with provided arguments. Returning original call string.`);\n    } else if (!result && func.conditionBlocks.length === 0) {\n        console.warn(`fscss[definition] Warning: @event '${funcName}' has no condition blocks defined. Returning original call string.`);\n    }\n\n    return result || match;\n  });\n\n  return modifiedCSS.trim();\n}\nasync function initlibraries(css){\n  css = css.replace(/exec\\(\\s*_init\\sisjs\\s*\\)/g, \"exec(https://cdn.jsdelivr.net/gh/fscss-ttr/FSCSS@main/xf/styles/isjs.fscss)\");\n  css = css.replace(/exec\\(\\s*_init\\sthemes\\s*\\)/g, \"exec(https://cdn.jsdelivr.net/gh/fscss-ttr/FSCSS@main/xf/styles/trshapes.fthemes.fscss)\")\n  css = css.replace(/exec\\(_init\\sarray1to500\\s*\\)/g, \"exec(https://cdn.jsdelivr.net/gh/fscss-ttr/FSCSS@main/xf/styles/1to500.fscss)\");\n  css = css.replace(/exec\\(_init\\s+([\\w\\d\\._—\\-\\%\\*\\+\\&\\$\\=]+)(?:\\/([\\w\\-]+))?\\s*\\)/g, (match, impName, impType)=>{\n    if(!impType){\n    //`\n      return `exec(https://cdn.jsdelivr.net/gh/fscss-ttr/FSCSS@main/xf/styles/${impName}.fscss)`;\n    }\n    return `exec(https://cdn.jsdelivr.net/gh/fscss-ttr/FSCSS@main/xf/styles/${impName}.${impType})`;\n  });\n  css = css.replace(/(\\@import\\((?:\\s+)?(?:exec)?\\((?:[\\w\\d\\.\\@\\—\\-_*\\#\\$\\s\\,]+)\\)(?:\\s+)?from(?:\\s+)?)([\\w\\d\\._—\\-\\%\\*\\+\\&\\$\\=]+)(?:\\/([\\w\\-]+))?(?:\\s+)?\\)/g, (match, state, impName, impType) => {\n  if (!impType) {\n    return `${state}'https://cdn.jsdelivr.net/gh/fscss-ttr/FSCSS@main/xf/styles/${impName}.fscss')`;\n  }\n  return `${state}'https://cdn.jsdelivr.net/gh/fscss-ttr/FSCSS@main/xf/styles/${impName}.${impType}')`;\n  }); \n   return css;\n}\n\nfunction procVar(vcss) {\n  function processSCSS(scssCode) {\n    const globalVars = {};\n    const processedLines = [];\n    const lines = scssCode.split('\\n');\n\n    let inBlock = false;\n    const blockVars = {};\n\n    for (let i = 0; i < lines.length; i++) {\n      let line = lines[i].trim();\n\n      if (line.includes('{')) {\n        inBlock = true;\n        processedLines.push(line);\n        continue;\n      }\n\n      if (line.includes('}')) {\n        inBlock = false;\n        for (const varName in blockVars) {\n          delete blockVars[varName];\n        }\n        processedLines.push(line);\n        continue;\n      }\n\n      const varDeclarationRegex = /^\\s*\\$([a-zA-Z0-9_-]+)\\s*:\\s*([^;]+);/;\n      const varMatch = line.match(varDeclarationRegex);\n\n      if (varMatch) {\n        const [, varName, varValue] = varMatch;\n        if (inBlock) {\n          blockVars[varName] = varValue.trim();\n          // Do not include block-scoped declarations in the final CSS\n        } else {\n          globalVars[varName] = varValue.trim();\n          // Include global variable declarations in the final CSS\n          processedLines.push(line);\n        }\n        continue;\n      }\n\n      const varUsageRegex = /\\$\\/?([a-zA-Z0-9_-]+)(!)?/g;\n\n      line = line.replace(varUsageRegex, (match, varName) => {\n        if (blockVars[varName] !== undefined) {\n          return blockVars[varName];\n        } else if (globalVars[varName] !== undefined) {\n          return globalVars[varName];\n        }\n        return match;\n      });\n\n      processedLines.push(line);\n    }\n\n    function getVariable(varName) {\n      return globalVars[varName] || null;\n    }\n    const finalCss = processedLines.join('\\n');\n\n    return {\n      css: finalCss,\n      getVariable\n    };\n  }\n\n  const result = processSCSS(vcss);\n  return result.css;\n}\n\n\nfunction procDef(fscss) {\n  const pRegex = /@define\\s+([\\w\\_\\-\\—]+)\\s*\\(([^)]*)\\)\\s*\\$?\\{\\s*(?:\"([^\"]*)\"|'([^']*)'|`([^`]*)`|([^\\}^\\{]*?))\\s*\\}/g;\n  \n  // First, extract all @define blocks and store them in defExfscss. FIGSH-FSCSS \n  let processed = fscss.replace(pRegex,\n    (match, name, paramsStr, body1, body2, body3, body4) => {\n      const params = paramsStr.split(',').map(p =>p.trim()).filter(p =>p);\n      const body = body1 ?? body2 ?? body3 ?? body4 ?? '';\n      defExfscss[name] = { params, body };\n      return ''; // Remove the define block from the output. FIGSH-FSCSS \n    }\n  );\n  \n  // Now replace all @name(...) usages with their expanded bodies. FIGSH-FSCSS \n  processed = processed.replace(\n    /@([\\w\\_\\-\\—]+)\\s*\\(([\\s\\S]*?)\\)/g,\n    (match, name, argsStr) => {\n      const def = defExfscss[name];\n      if (!def){\n        return match;\n      }// Leave unknown Def macros unchanged. FIGSH-FSCSS  \n      \n      const args = argsStr?.split(',').map(a => a.trim());\n      if(args[0]==='') args[0] = undefined;\n      let result = def.body;\n     \n      /* Replace each @use(param) with the corresponding argument. FIGSH-FSCSS */\n      let xfVal = [];\n      def.params.forEach((param, index) => {\n         const df = def.params[index];\n         if(df&&df.includes(':')){\n         xfVal = df?.split(':')?.map(i=>i.trim()).filter(i=>i);\n         } \n         \nconst dfv = xfVal[1]?xfVal[1]:'';\n\n        const arg = args[index] !== (undefined) ? args[index] : dfv;\n        const regex = new RegExp(`@use\\\\(\\\\s*${param.replace(/(\\s+)?(\\:(\\s+)?.*)/g, '')}\\\\s*\\\\)`, 'g');\n        result = result.replace(regex, arg);\n      });\n      \n      return result;\n    }\n  );\n if(!pRegex.test(processed)) return processed;\n  \n  return procDef(processed); \n}\nfunction procExt(css) {\n  let extractedVariables = {};\n  let tempCSS = css;\n\n  // Step 1: Process string literals\n  tempCSS = tempCSS.replace(/(\"(?:[^\"\\\\]|\\\\.)*\")|('(?:[^'\\\\]|\\\\.)*')/g, function(fullMatch) {\n    let quote = fullMatch[0];\n    let content = fullMatch.slice(1, -1);\n    const directiveRegex = /@ext\\((-?\\d+),(\\d+):\\s*([^)]+)\\)/g;\n    let match;\n    let directivesToProcess = [];\n\n    while ((match = directiveRegex.exec(content)) !== null) {\n      directivesToProcess.push({\n        fullMatch: match[0],\n        start: parseInt(match[1]),\n        length: parseInt(match[2]),\n        varName: match[3].trim(),\n        index: match.index\n      });\n    }\n\n    for (let i = directivesToProcess.length - 1; i >= 0; i--) {\n      let d = directivesToProcess[i];\n      let s = d.start < 0 ? content.length + d.start : d.start;\n      s = Math.max(0, s);\n      let extracted = content.substring(s, s + d.length);\n\n      if (s + d.length > content.length || s < 0) {\n        console.warn(`fscss:[@ext]Warning: @ext directive for variable '${d.varName}' in string literal specifies an out-of-bounds range. Extraction may be incomplete or incorrect.`);\n      }\n\n      if (extractedVariables[d.varName] !== undefined) {\n        console.warn(`fscss:[@ext]Warning: Duplicate variable name '${d.varName}' found in string literal. The last extracted value will be used.`);\n      }\n      extractedVariables[d.varName] = extracted;\n\n      // Remove @ext from content\n      content = content.slice(0, d.index) + content.slice(d.index + d.fullMatch.length);\n    }\n\n    return quote + content + quote;\n  });\n\n  // Step 2: Outside strings\n  tempCSS = tempCSS.replace(/([#.\\w-]+)\\s*@ext\\((-?\\d+),(\\d+):\\s*([^)]+)\\)/g, function(match, token, start, len, varName) {\n    start = parseInt(start);\n    len = parseInt(len);\n    varName = varName.trim();\n    let s = start < 0 ? token.length + start : start;\n    s = Math.max(0, s);\n    let extracted = token.substring(s, s + len);\n\n    if (s + len > token.length || s < 0) {\n      console.warn(`fscss:[@ext]Warning: @ext directive for variable '${varName}' on token '${token}' specifies an out-of-bounds range. Extraction may be incomplete or incorrect.`);\n    }\n\n    if (extractedVariables[varName] !== undefined) {\n      console.warn(`fscss:[@ext]Warning: Duplicate variable name '${varName}' found outside string literals. The last extracted value will be used.`);\n    }\n    extractedVariables[varName] = extracted;\n    return token;\n  });\n\n  // Step 3: Replace @ext.varName references\n  tempCSS = tempCSS.replace(/@ext\\.(\\w+)\\!?/g, function(match, varName) {\n    if (extractedVariables[varName] === undefined) {\n      console.warn(`fscss:[@ext]Warning: Reference to undefined variable '@ext.${varName}'. It will not be replaced.`);\n      return match;\n    }\n    return extractedVariables[varName];\n  });\n\n  return tempCSS;\n}\n\n\nfunction procRan(input) {\n  return input.replace(/@random\\(\\[([^\\]]+)\\](?:, *ordered)?\\)/g, (match, valuesStr) => {\n    const isOrdered = /, *ordered\\)/.test(match);\n    const values = valuesStr.split(',').map(v => v.trim());\n    \n    if (values.length === 0) {\n      console.warn(\"fscss[@random] Warning: Empty array provided for @random. Returning empty string.\");\n      return '';\n    }\n    \n    if (isOrdered) {\n      // Create consistent key for value sequences\n      const sequenceKey = values.join(':');\n      \n      if (!orderedxFscssRandom[sequenceKey]) {\n        orderedxFscssRandom[sequenceKey] = {\n          values,\n          index: 0,\n        };\n        console.warn(`fscss[@random] Warning: New ordered sequence created for [${valuesStr}].`);\n      }\n      \n      const store = orderedxFscssRandom[sequenceKey];\n      const val = store.values[store.index % store.values.length];\n      \n      if (store.index >= store.values.length && store.index % store.values.length === 0) {\n        console.warn(`fscss[@random] Warning: Ordered sequence [${valuesStr}] is looping back to the beginning.`);\n      }\n      \n      store.index++;\n      return val;\n    } else {\n      // Regular random selection\n      const randIndex = Math.floor(Math.random() * values.length);\n      return values[randIndex];\n    }\n  });\n}\n\n\n\nfunction procArr(input) {\n  // 1. Parse array declarations\n  const arrayDeclarationRegex = /@arr\\(?\\s*([\\w\\-_—0-9]+)\\)?\\[([^\\]]+)\\]\\)?/g;\n  let match;\n  while ((match = arrayDeclarationRegex.exec(input)) !== null) {\n    const arrayName = match[1];\n    const arrayValues = match[2].split(',').map(item => item.trim());\n    arraysExfscss[arrayName] = arrayValues;\n  }\n  \n  let output = input;\n  \n  output = output.replace(/@arr\\.([\\w\\-_—0-9]+)(?:\\!\\s*\\+\\s*\\[([^\\]]+)?\\])/g, (match, arrName, newArr) => {\n  const arr = arraysExfscss[arrName];\n  if (!arr) {\n    console.warn(`fscss[@arr] Warning: Array '${arrName}' not found.`);\n    return match;\n  }\n  if (!newArr) {\n  console.warn(\n    `[FSCSS Warning] @arr push failed → Invalid or empty value at \"${match}\"`\n  );\n  return match;\n  }\n  newItems = newArr.split(',').map(item => item.trim());\n  arraysExfscss[arrName].push(...newItems);\n  return \"\";\n})\n\noutput = output.replace(/@arr\\.([\\w\\-_—0-9]+)(?:\\!\\s*\\-\\s*\\[([\\d\\w\\-_—\\s]+)?\\])/g, (match, arrName, ind) => {\n  const arr = arraysExfscss[arrName];\n  if (!arr) {\n    console.warn(`fscss[@arr] Warning: Array '${arrName}' not found.`);\n    return match;\n  }\n  ind = Number(ind?.trim());\n  if (!ind||ind<1||!Number(ind)) {\n  console.warn(\n    `[FSCSS Warning] @arr splice failed → Invalid or empty index at \"${match}\"`\n  );\n  return match;\n  }\n  if(ind>arr.length){\n    console.warn(\n  `[FSCSS Warning] @arr → @arr.${arrName}[${ind}] is undefined at \"${match}\"`);\n  return \"\";\n  }\n  ind = (ind-1);\n  arr.splice(ind,1);\n  return \"\";\n})\n\n\noutput = output.replace(/@arr\\.([\\w\\-_—0-9]+)(?:\\!\\s*\\.(length|last|reverse|first|list|indices|randint|segment|sum|unique|sort|shuffle|min|max))/g, (match, arrName, obj) => {\n  const arr = arraysExfscss[arrName];\n  if (!arr) {\n    console.warn(`fscss[@arr] Warning: Array '${arrName}' not found.`);\n    return match;\n  }\n  if(obj){\n  if (obj===\"length\") {\n    return arr.length;\n  }\n  if(obj===\"first\"){\n    return arr[0];\n  }\n  if (obj===\"last\") {\n    return arr.at(-1);\n  }\n  if (obj===\"indices\") {\n    return Array(arr.length).fill().map((_, i)=>(i+1)*1);\n  }\n  if (obj===\"list\") {\n    return arr.join(',');\n  }\n  if (obj===\"reverse\") {\n    return arr.toReversed().join(',');\n  }\n  if (obj===\"randint\") {\n    return arr[Math.floor(Math.random() * arr.length)];\n  }\n  if(obj===\"segment\") {\n    return arr.map(u => `[${u}]`).join('')\n  }\n  if (obj === \"unique\") {\n  return [...new Set(arr)].join(',');\n  }\n  if (obj === \"sort\") {\n  return arr.slice().sort().join(',');\n  }\nif (obj === \"shuffle\") {\n  return arr.slice().sort(() => Math.random() - 0.5).join(',');\n}\nif (obj === \"sum\") {\n  return arr.reduce((a, b) => a + Number(b), 0);\n}\nif (obj === \"min\") {\n  return Math.min(...arr.map(Number));\n}\nif (obj === \"max\") {\n  return Math.max(...arr.map(Number));\n}\n  } \n})\n\n  // 2. Process loops using @arr.name[]\n  output = output.replace(/([^\\{\\}]+)\\{\\s*([^}]*@arr\\.([\\w\\-_—0-9]+)\\[\\][^}]*)\\s*\\}/g,\n    (fullMatch, selector, content, arrayName) => {\n      const arr = arraysExfscss[arrayName];\n      if (!arr) {\n        console.warn(`fscss[@arr] Warning: Array '${arrayName}' not found for loop processing.`);\n        return fullMatch;\n      }\n      \n      return arr.map((value, index) => {\n        const sel = selector.replace(new RegExp(`@arr\\\\.${arrayName}\\\\[\\\\]`, 'g'), index + 1);\n        const body = content.replace(new RegExp(`@arr\\\\.${arrayName}\\\\[\\\\]`, 'g'), value);\n        return `${sel.trim()} {\\n  ${body.trim()}\\n}`;\n      }).join('\\n');\n    });\n  \n  // 3. Specific array access: @arr.name[index]\n  output = output.replace(/@arr\\.([\\w\\-_—0-9]+)\\[(\\d+)\\]/g,\n    (fullMatch, arrayName, index) => {\n      const idx = parseInt(index) - 1;\n      const arr = arraysExfscss[arrayName];\n      if (!arr) {\n        console.warn(`fscss[@arr] Warning: Array '${arrayName}' not found.`);\n        return fullMatch;\n      }\n      return arr[idx] !== undefined ? arr[idx] : fullMatch;\n    });\n  \n  output = output.replace(/@arr\\.([\\w\\-_—0-9]+)(?:!\\s*\\.unit)(?:\\(([^)]*)\\))/g,\n    (fullMatch, arrayName, pl) => {\n      const arr = arraysExfscss[arrayName];\n      if (!arr) {\n        console.warn(`fscss[@arr] Warning: Array '${arrayName}' not found for direct access.`);\n        return fullMatch;\n      }\n      const sep = (pl !== undefined && pl !== \"\") ? pl : ' ';\n      return arr.map(u=>`${u+sep}`).join(',');\n    });\n   \n   output = output.replace(/@arr\\.([\\w\\-_—0-9]+)(?:!\\s*\\.prefix)(?:\\(([^)]*)\\))/g,\n    (fullMatch, arrayName, pl) => {\n      const arr = arraysExfscss[arrayName];\n      if (!arr) {\n        console.warn(`fscss[@arr] Warning: Array '${arrayName}' not found for direct access.`);\n        return fullMatch;\n      }\n      const sep = (pl !== undefined && pl !== \"\") ? pl : ' ';\n      return arr.map(u=>`${sep+u}`).join(',');\n    });\n   \n   \n   \n     output = output.replace(/@arr\\.([\\w\\-_—0-9]+)(?:!\\s*\\.surround)(?:\\(([^)]+)\\))/g,\n    (fullMatch, arrayName, sur) => {\n      const arr = arraysExfscss[arrayName];\n      if (!arr) {\n        console.warn(`fscss[@arr] Warning: Array '${arrayName}' not found for direct access.`);\n        return fullMatch;\n      }\n      if(!sur||sur===undefined||sur===\"\"||!sur.includes(\",\")){\n        console.warn(\n    `[FSCSS Warning] @arr surround failed → Invalid or empty value at \"${fullMatch}\"`);\n    return fullMatch;\n      }\n      surArr = sur.split(',');\n      return arr.map(u=>`${surArr[0]+u+surArr.at(-1)}`).join(' ');\n    });\n   \n   \n  // 4. Direct array access: @arr.name or @arr.name(separator)\n  output = output.replace(/@arr\\.([\\w\\-_—0-9]+)(?:!\\s*\\.join)?(?:\\(([^)]*)\\))/g,\n    (fullMatch, arrayName, separator) => {\n      const arr = arraysExfscss[arrayName];\n      if (!arr) {\n        console.warn(`fscss[@arr] Warning: Array '${arrayName}' not found for direct access.`);\n        return fullMatch;\n      }\n      const sep = (separator !== undefined && separator !== \"\") ? separator : ' ';\n      return arr.join(sep);\n    });\n    output = output.replace(/@arr\\.([\\w\\-_—0-9]+)(!)?/g, (match, arrName, fos)=>{\n        const arr = arraysExfscss[arrName];\n      if (!arr) {\n        console.warn(`fscss[@arr] Warning: Array '${arrName}' not found for direct access.`);\n        return match;\n      }\n      if(fos){\n        return match;\n      }\n      return `[${arr.join(',')}]`;\n    })\n  // Clean up array declarations\n  return output\n    .replace(arrayDeclarationRegex, '')\n    .replace(/\\n{3,}/g, '\\n\\n')\n    .trim();\n}\n\nfunction procFun(code) {\n  const variables = {};\n  const funRegex = /@fun\\(([\\w\\-\\_\\—0-9]+)\\)\\s*\\{([\\s\\S]*?)\\}\\s*/g;\n\n  function parseStyle(styleStr) {\n    const props = {};\n    const lines = styleStr.split(';');\n    for (let line of lines) {\n      line = line.trim();\n      if (!line) continue;\n      const colonIdx = line.indexOf(':');\n      if (colonIdx === -1) {\n        console.warn(`fscss[@fun] Invalid style line (missing colon): \"${line}\"`);\n        continue;\n      }\n      const prop = line.substring(0, colonIdx).trim();\n      const value = line.substring(colonIdx + 1).trim();\n      if (prop) {\n        props[prop] = value;\n      } else {\n        console.warn(`fscss[@fun] Empty property name in line: \"${line}\"`);\n      }\n    }\n    return props;\n  }\n\n  \n  let funMatch;\n  while ((funMatch = funRegex.exec(code)) !== null) {\n    const varName = funMatch[1];\n    const rawStyles = funMatch[2].trim();\n    if (variables[varName]) {\n      console.warn(`fscss[@fun] Duplicate @fun variable declaration: \"${varName}\". The last one will overwrite previous declarations.`);\n    }\n    variables[varName] = {\n      raw: rawStyles,\n      props: parseStyle(rawStyles)\n    };\n  }\n\n  let processedCode = code;\n\n  // Handle value extraction (e.g., @fun.varname2.bg.value)\n  processedCode = processedCode.replace(/@fun\\.([\\w\\-\\_\\—0-9]+)\\.([\\w\\-\\_\\—0-9]+)\\.value\\!?/g, (match, varName, prop) => {\n    if (variables[varName] && variables[varName].props[prop]) {\n      return variables[varName].props[prop];\n    } else {\n      console.warn(`fscss[@fun] Value extraction failed for \"@fun.${varName}.${prop}.value\". Variable or property not found.`);\n    }\n    return match;\n  });\n\n  // Handle single property rule (e.g., @fun.varname2.background)\n  processedCode = processedCode.replace(/@fun\\.([\\w\\-\\_\\—0-9]+)\\.([\\w\\-\\_\\—0-9]+)\\!?/g, (match, varName, prop) => {\n    if (variables[varName] && variables[varName].props[prop]) {\n      return `${prop}: ${variables[varName].props[prop]};`;\n    } else {\n      console.warn(`fscss[@fun] Single property rule failed for \"@fun.${varName}.${prop}\". Variable or property not found.`);\n    }\n    return match;\n  });\n\n  // Handle full variable block (e.g., @fun.varname2)\n  processedCode = processedCode.replace(/@fun\\.([\\w\\-\\_\\—0-9]+)(?=[\\s;}])\\!?/g, (match, varName) => {\n    if (variables[varName]) {\n      return variables[varName].raw;\n    } else {\n      console.warn(`[@fun] Full variable block replacement failed for \"@fun.${varName}\". Variable not found.`);\n    }\n    return match;\n  });\n\n  // Clean up code\n  processedCode = processedCode.replace(funRegex, '');\n  processedCode = processedCode.replace(/^\\s*[\\r\\n]/gm, '');\n  processedCode = processedCode.trim();\n\n  return processedCode;\n}\n\nfunction procFunObj(code) {\n  const variables = {};\n  const funRegex = /@obj\\s+([\\w\\-\\_\\—0-9]+)\\s*\\{([\\s\\S]*?)\\}\\s*/g;\n\n  function parseStyle(styleStr) {\n    const props = {};\n    const lines = styleStr.split(';');\n    for (let line of lines) {\n      line = line.trim();\n      if (!line) continue;\n      const colonIdx = line.indexOf(':');\n      if (colonIdx === -1) {\n        console.warn(`fscss[@obj] Invalid style line (missing colon): \"${line}\"`);\n        continue;\n      }\n      const prop = line.substring(0, colonIdx).trim();\n      const value = line.substring(colonIdx + 1).trim();\n      if (prop) {\n        props[prop] = value;\n      } else {\n        console.warn(`fscss[@obj] Empty property name in line: \"${line}\"`);\n      }\n    }\n    return props;\n  }\n\n  \n  let funMatch;\n  while ((funMatch = funRegex.exec(code)) !== null) {\n    const varName = funMatch[1];\n    const rawStyles = funMatch[2].trim();\n    if (variables[varName]) {\n      console.warn(`fscss[@obj] Duplicate @obj variable declaration: \"${varName}\". The last one will overwrite previous declarations.`);\n    }\n    variables[varName] = {\n      raw: rawStyles,\n      props: parseStyle(rawStyles)\n    };\n  }\n\n  let processedCode = code;\n\n  // Handle value extraction (e.g., @fun.varname2.bg.value)\n  processedCode = processedCode.replace(/@obj\\.([\\w\\-\\_\\—0-9]+)\\.([\\w\\-\\_\\—0-9]+)\\.value\\!?/g, (match, varName, prop) => {\n    if (variables[varName] && variables[varName].props[prop]) {\n      return variables[varName].props[prop];\n    } else {\n      console.warn(`fscss[@obj] Value extraction failed for \"@obj.${varName}.${prop}.value\". Variable or property not found.`);\n    }\n    return match;\n  });\n\n  // Handle single property rule (e.g., @fun.varname2.background)\n  processedCode = processedCode.replace(/@obj\\.([\\w\\-\\_\\—0-9]+)\\.([\\w\\-\\_\\—0-9]+)\\!?/g, (match, varName, prop) => {\n    if (variables[varName] && variables[varName].props[prop]) {\n      return `${prop}: ${variables[varName].props[prop]};`;\n    } else {\n      console.warn(`fscss[@obj] Single property rule failed for \"@obj.${varName}.${prop}\". Variable or property not found.`);\n    }\n    return match;\n  });\n\n  // Handle full variable block (e.g., @fun.varname2)\n  processedCode = processedCode.replace(/@obj\\.([\\w\\-\\_\\—0-9]+)(?=[\\s;}])\\!?/g, (match, varName) => {\n    if (variables[varName]) {\n      return variables[varName].raw;\n    } else {\n      console.warn(`[@obj] Full variable block replacement failed for \"@obj.${varName}\". Variable not found.`);\n    }\n    return match;\n  });\n\n  // Clean up code\n  processedCode = processedCode.replace(funRegex, '');\n  processedCode = processedCode.replace(/^\\s*[\\r\\n]/gm, '');\n  processedCode = processedCode.trim();\n\n  return processedCode;\n}\n\n\n// Extracts values using copy() and creates CSS custom properties\nfunction flattenNestedCSS(css, options = {}) {\n  const {\n    preserveComments = false,\n    indent = '  ',\n    validate = true,\n    errorHandler = (msg) => console.warn(msg),\n  } = options;\n\n  // Remove comments unless preserved\n  if (!preserveComments) {\n    css = css.replace(/\\/\\*[\\s\\S]*?\\*\\//g, '').trim();\n  }\n\n  function isValidSelector(selector) {\n    // Allow modern CSS features (:has(), > selector, etc.)\n    return selector && selector.trim() !== '' && \n           !/[^a-zA-Z0-9\\-_@*.\\#:,\\s>&~+()\\[\\]'\"]|\\/\\//.test(selector);\n  }\n\n  function isValidProperty(prop) {\n    const [name, ...rest] = prop.split(':').map(s => s.trim());\n    return !validate || /^(--|[\\w-]+)$/.test(name);\n  }\n\n  function parseBlock(css, start, parentSelector = '') {\n    let output = '';\n    let pos = start;\n    const stack = [];\n    let current = '';\n    let inString = false;\n    let quote = null;\n    let depth = 0;\n\n    while (pos < css.length) {\n      const char = css[pos];\n      \n      if (char === '\\\\' && inString) {\n        current += char;\n        pos++;\n        if (pos < css.length) {\n          current += css[pos];\n        }\n        pos++;\n        continue;\n      }\n      \n      if ((char === '\"' || char === \"'\") && !inString) {\n        inString = true;\n        quote = char;\n        current += char;\n      } else if (char === quote && inString) {\n        inString = false;\n        quote = null;\n        current += char;\n      } else if (char === '{' && !inString) {\n        if (depth === 0) {\n          const selector = current.trim();\n          current = '';\n          stack.push({ selector, parent: parentSelector });\n        } else {\n          current += char;\n        }\n        depth++;\n      } else if (char === '}' && !inString) {\n        depth--;\n        if (depth === 0) {\n          const block = stack.pop();\n          if (!block) continue;\n          \n          let fullSelector = '';\n          if (block.selector.includes('&')) {\n            fullSelector = block.selector.replace(/&/g, block.parent);\n          } else {\n            fullSelector = block.parent ? `${block.parent} ${block.selector}` : block.selector;\n          }\n          \n          // Parse nested content\n          const nested = parseNestedContent(current, fullSelector);\n          \n          if (nested.properties.length > 0 || nested.keyframes.length > 0) {\n            output += `${fullSelector} {\\n`;\n            if (nested.properties.length > 0) {\n              output += indent + nested.properties.join(`;\\n${indent}`) + ';\\n';\n            }\n            output += nested.keyframes.join('\\n');\n            output += '}\\n\\n';\n          }\n          \n          output += nested.nestedBlocks;\n          current = '';\n        } else {\n          current += char;\n        }\n      } else if (char === '@' && !inString && depth === 0) {\n        // Handle at-rules at root level\n        const atRuleEnd = findAtRuleEnd(css, pos);\n        if (atRuleEnd === -1) break;\n        \n        output += css.substring(pos, atRuleEnd).trim() + '\\n\\n';\n        pos = atRuleEnd;\n        continue;\n      } else {\n        current += char;\n      }\n      \n      pos++;\n    }\n\n    return { output, pos };\n  }\n\n  function findAtRuleEnd(css, start) {\n    let depth = 0;\n    let inString = false;\n    let quote = null;\n    let pos = start;\n    \n    while (pos < css.length) {\n      const char = css[pos];\n      \n      if (char === '\\\\' && inString) {\n        pos += 2;\n        continue;\n      }\n      \n      if ((char === '\"' || char === \"'\") && !inString) {\n        inString = true;\n        quote = char;\n      } else if (char === quote && inString) {\n        inString = false;\n        quote = null;\n      } else if (char === '{' && !inString) {\n        depth++;\n      } else if (char === '}' && !inString) {\n        depth--;\n        if (depth === 0) {\n          return pos + 1;\n        }\n      }\n      \n      pos++;\n    }\n    \n    return -1;\n  }\n\n  function parseNestedContent(content, parentSelector) {\n    const result = {\n      properties: [],\n      nestedBlocks: '',\n      keyframes: []\n    };\n    \n    let current = '';\n    let inString = false;\n    let quote = null;\n    let depth = 0;\n    let pos = 0;\n    \n    while (pos < content.length) {\n      const char = content[pos];\n      \n      if (char === '\\\\' && inString) {\n        current += char;\n        pos++;\n        if (pos < content.length) {\n          current += content[pos];\n        }\n        pos++;\n        continue;\n      }\n      \n      if ((char === '\"' || char === \"'\") && !inString) {\n        inString = true;\n        quote = char;\n        current += char;\n      } else if (char === quote && inString) {\n        inString = false;\n        quote = null;\n        current += char;\n      } else if (char === '{' && !inString) {\n        depth++;\n        current += char;\n      } else if (char === '}' && !inString) {\n        depth--;\n        current += char;\n        if (depth === 0) {\n          // Found a complete nested block\n          const block = parseBlock(current, 0, parentSelector).output;\n          result.nestedBlocks += block;\n          current = '';\n        }\n      } else if (char === ';' && !inString && depth === 0) {\n        // Property handling\n        const prop = current.trim();\n        if (prop) {\n          if (isValidProperty(prop)) {\n            result.properties.push(prop);\n          } else if (validate) {\n            errorHandler(`Invalid property: ${prop}`);\n          }\n        }\n        current = '';\n      } else if (char === '@' && !inString && depth === 0) {\n        // Handle keyframes inside blocks\n        const atEnd = findAtRuleEnd(content, pos);\n        if (atEnd === -1) break;\n        \n        const atContent = content.substring(pos, atEnd);\n        result.keyframes.push(atContent.trim());\n        pos = atEnd;\n        current = '';\n        continue;\n      } else {\n        current += char;\n      }\n      \n      pos++;\n    }\n    \n    // Handle trailing property\n    const lastProp = current.trim();\n    if (lastProp && depth === 0) {\n      if (isValidProperty(lastProp)) {\n        result.properties.push(lastProp);\n      } else if (validate) {\n        errorHandler(`Invalid property: ${lastProp}`);\n      }\n    }\n    \n    return result;\n  }\n\n  const result = parseBlock(css, 0);\n  return result.output;\n}\nfunction procP(text) {\n  return text.replace(/%(\\d+)\\(([^[]+)\\[\\s*([^\\]]+)\\]\\)/g, (match, number, properties, value) => {\n    const propList = properties.split(',').map(p => p.trim());\n    if (propList.length != number) {\n      console.warn(`Number of properties ${propList.length} does not match %${number}`);\n      return match;\n    }\n    return propList.map(prop => `${prop}${value}`).join(\"\");\n  });\n}\n\nfunction transformCssValues(css) {\n  const customProperties = new Set();\n  const copyRegex = /(:\\s*)([\"']?)(.*?)([\"']?)\\s*copy\\(([-]?\\d+),\\s*([^\\;^\\)^\\(^,^ ]*)\\)/g;\n  \n  const transformedCss = css.replace(copyRegex, (match, prefix, quote1, value, quote2, lengthStr, variableName) => {\n    const length = parseInt(lengthStr);\n    const sanitizedVar = variableName.replace(/[^a-zA-Z0-9_-]/g, '');\n    let extractedValue = '';\n\n    if (length >= 0) {\n      extractedValue = value.substring(0, length);\n    } else {\n      extractedValue = value.substring(value.length + length);\n    }\n\n    customProperties.add(`--${sanitizedVar}:${extractedValue};`);\n    return `${prefix}${quote1}${value}${quote2}`;\n  });\n\n  // Append custom properties to :root if any were created\n  if (customProperties.size > 0) {\n    const rootBlock = `:root{${Array.from(customProperties).join('\\n')}\\n}`;\n    return transformedCss + `\\n${rootBlock}`;\n  }\n  return transformedCss;\n}\n\n// Repeats a string while handling quotes\nfunction repeatString(str, count) {\n  return str.replace(/^['\"]|['\"]$/g, '').repeat(Math.max(0, parseInt(count)));\n}\n\n// Processes recursive CSS patterns (re() function)\nfunction replaceRe(css) {\n  // Enhanced regex to capture re() declarations with flexibility\n const reRegex = /(?:store|str|re)\\(\\s*([^:,]+)\\s*[,:]\\s*(?:\"([^\"]*)\"|'([^']*)')\\s*\\)/gi;\n  const variableMap = new Map();\n  \n  // Step 1: Remove re() declarations and store variable-value mappings\n  let cleanedCss = css.replace(reRegex, (match, variable, dqValue, sqValue) => {\n    const value = dqValue || sqValue;\n    variable = variable.trim();\n    variableMap.set(variable, value);\n    return ''; // Completely remove the re() call\n  });\n\n  // If no variables found, return cleaned CSS\n  if (variableMap.size === 0) return cleanedCss;\n\n  // Step 2: Replace variables throughout the CSS\n  let changed;\n  let iterations = 0;\n  const maxIterations = 100;\n  let current = cleanedCss;\n  \n  do {\n    changed = false;\n    for (const [variable, value] of variableMap.entries()) {\n      // Use word boundaries to avoid partial replacements\n      const varRegex = new RegExp(`\\\\b${escapeRegExp(variable)}\\\\b`, 'g');\n      const newCss = current.replace(varRegex, value);\n      \n      if (newCss !== current) {\n        changed = true;\n        current = newCss;\n      }\n    }\n    iterations++;\n  } while (changed && iterations < maxIterations);\n\n  if (iterations >= maxIterations) {\n    console.warn('Maximum iterations reached. Possible circular dependency.');\n  }\n\n  return current;\n}\n\nfunction escapeRegExp(string) {\n  return string.replace(/[.*+?^${}|[\\]\\\\]/g, '\\\\$&');\n}\n/* Variable fallback chain */\nfunction vfc(fscss){\n  fscss = fscss.replace(\n  /([\\w-]+:\\s*)(\\$\\/?[\\w-]+!?)(\\s*\\|\\|\\s*([^\\n\\};]+))?/g,\n  (match, pr, variable, fallbackPart, fallback) => {\n    \n    // Invalid variable format\n    if (!/^\\$\\/[\\w-]+!?$/.test(variable)) {\n      console.warn(`fscss[VFC]: Invalid variable escape syntax -> ${variable} at ${match}`);\n      return match;\n    }\n    \n    //  Required variable but has fallback\n    if (variable.endsWith(\"!\") && fallback) {\n      console.warn(`fscss[VFC]: Required variable \"${variable}\" should not have fallback (${fallback})`);\n    }\n    \n    //  Fallback starts with ||\n    if (fallbackPart && !fallback?.trim()) {\n      console.warn(`fscss[VFC]: Empty fallback in -> ${match}`);\n      return match;\n    }\n    \n    //  Invalid fallback variable syntax\n    if (fallback?.includes(\"$/\") && !/^\\$\\/[\\w-]+!?$/.test(fallback.trim())) {\n      console.warn(`fscss[VFC]: Invalid fallback variable syntax -> ${fallback}`);\n    }\n    \n    // Compile logic\n    if (fallback) {\n      return `${pr}${fallback.trim()};${pr}${variable}`;\n    }\n    \n    return `${pr}${variable}`;\n  })\n  return fscss;\n}\n// Applies all FSCSS transformations to CSS content\nfunction applyFscssTransformations(css) {\n    // Handle mx/mxs padding shorthands\n    css = css.replace(/(?:mxs|\\$p)\\((([^\\,]*)\\,)?(([^\\,]*)\\,)?(([^\\,]*)\\,)?(([^\\,]*)\\,)?(([^\\,]*)\\,)?(([^\\,]*)\\,\\s*)?(\"([^\"]*)\"|'([^']*)')\\)/gi, '$2:$14$15;$4:$14$15;$6:$14$15;$8:$14$15;$10:$14$15;$12:$14$15;')\n    .replace(/(?:mx|\\$m)\\((([^\\,]*)\\,)?(([^\\,]*)\\,)?(([^\\,]*)\\,)?(([^\\,]*)\\,)?(([^\\,]*)\\,)?(([^\\,]*)\\,\\s*)?(\"([^\"]*)\"|'([^']*)')\\)/gi, '$2$14$15$4$14$15$6$14$15$8$14$15$10$14$15$12$14$15')\n    \n    // Handle string repetition (rpt)\n    .replace(/rpt\\((\\d+)\\,\\s*(\"([^\"]*)\"|'([^']*)')\\)/gi, (match, count, quotedStr) => repeatString(quotedStr, count))\n    \n    // Process CSS variable declarations and references\n    .replace(/\\$(([\\_\\-\\d\\w]+)\\:(\\\"[^\\\"]*\\\"|\\'[^\\']*\\'|[^\\;]*)\\;)/gi, ':root{--$1}')\n    .replace(/\\$([^\\!\\s]+)!/gi, 'var(--$1)')\n    .replace(/\\$([\\w\\-\\_\\d]+)/gi, 'var(--$1)')\n    \n    // Handle vendor prefix expansion\n  .replace(/\\-\\*\\-(([^\\:]+)\\:(\\\"[^\\\"]*\\\"|\\'[^\\']*\\'|[^\\;]*)\\;)/gi, '-webkit-$1-moz-$1-ms-$1-o-$1')\n  // Process list-based shorthands (%i, %6-%1)\n  .replace(/%i\\((([^\\,\\[\\]]*)\\,)?(([^\\,\\[\\]]*)\\,)?(([^\\,\\[\\]]*)\\,)?(([^\\,\\[\\]]*)\\,)?(([^\\,\\[\\]]*)\\,)?(([^\\,\\[\\]]*)\\,)?(([^\\,\\]\\[]*)\\,)?(([^\\,\\]\\[]*)\\,)?(([^\\,\\[\\]]*))?\\s*\\[([^\\]\\[]*)\\]\\)/gi, '$2$21$4$21$6$21$8$21$10$21$12$21$14$21$16$21$18$21$20$21')\n    .replace(/%6\\((([^\\,\\[\\]]*)\\,)?(([^\\,\\[\\]]*)\\,)?(([^\\,\\[\\]]*)\\,)?(([^\\,\\]\\[]*)\\,)?(([^\\,\\]\\[]*)\\,)?(([^\\,\\[\\]]*))?\\s*\\[([^\\]\\[]*)\\]\\)/gi, '$2$13$4$13$6$13$8$13$10$13$12$13')\n    .replace(/%5\\((([^\\,\\[\\]]*)\\,)?(([^\\,\\[\\]]*)\\,)?(([^\\,\\[\\]]*)\\,)?(([^\\,\\]\\[]*)\\,)?(([^\\,\\]\\[]*))?\\s*\\[([^\\]\\[]*)\\]\\)/gi, '$2$11$4$11$6$11$8$11$10$11')\n    .replace(/%4\\((([^\\,\\[\\]]*)\\,)?(([^\\,\\[\\]]*)\\,)?(([^\\,\\[\\]]*)\\,)?(([^\\,\\[\\]]*))?\\s*\\[([^\\]\\[]*)\\]\\)/gi, '$2$9$4$9$6$9$8$9')\n    .replace(/%3\\((([^\\,\\[\\]]*)\\,)?(([^\\,\\[\\]]*)\\,)?(([^\\,\\[\\]]*))?\\s*\\[([^\\]\\[]*)\\]\\)/gi, '$2$7$4$7$6$7')\n    .replace(/%2\\((([^\\,\\[\\]]*)\\,)?(([^\\,\\]\\[]*))?\\s*\\[([^\\]\\[]*)\\]\\)/gi, '$2$5$4$5')\n    .replace(/%1\\((([^\\,\\]\\[]*))?\\s*\\[([^\\]\\[]*)\\]\\)/gi, '$2$3');\n  css = procP(css);\n    css = css.replace(/\\$\\(\\s*@keyframes\\s*(\\S+)\\)/gi, '$1{animation-name:$1;}@keyframes $1')\n    .replace(/\\$\\(\\s*(\\@[\\w\\-\\*]*)\\s*([^\\{\\}\\,&]*)(\\s*,\\s*[^\\{\\}&]*)?&?(\\[([^\\{\\}]*)\\])?\\s*\\)/gi, '$2$3{animation:$2 $5;}$1 $2')\n    \n    // Process property references\n    .replace(/\\$\\(\\s*--([^\\{\\}]*)\\)/gi, '$1')\n    .replace(/\\$\\(([^\\:]*):\\s*([^\\)\\:]*)\\)/gi, '[$1=\\'$2\\']')\n    \n    // Handle grouping syntax (g)\n    .replace(/g\\(([^\"'\\s]*)\\,\\s*((\"([^\"]*)\"|'([^']*)')\\,\\s*)?(\"([^\"]*)\"|'([^']*)')\\s*\\)/gi, '$1 $4$5$1 $7$8')\n    .replace(/\\$\\(([^\\:]*):\\s*([^\\)\\:]*)\\)/gi, '[$1=\\'$2\\']')\n    .replace(/\\$\\(([^\\:^\\)]*)\\)/gi, '[$1]');\n    /* || */\n  return css;\n}\nasync function impSel(text) {\n  text = await initlibraries(text);\n  const validImpExt = [\".fscss\", \".css\", \".txt\", \".scss\", \".less\", \"xfscss\"]\n  const regex = /@import\\(exec\\(([^)]+)\\)\\s*\\.\\s*(?:pick|find)\\(([^)]+)\\)\\)/g;\n  const matches = [...text.matchAll(regex)];\n  \n    \n  let result = text;\n  let setFile = null;\n  \n  for (const match of matches) {\n    const [fullMatch, urlSrc, part] = match;\n    \nsetFile = urlSrc;\n\n\n  if (runnedSetS.has(setFile)) {\n    \n  // Helper to escape special characters in the filename (like dots or dashes)\n  const escapedFile = setFile.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n  \n  // Simplified regex using \\s* for zero-or-more whitespace\n  const fregex = new RegExp(\"@import\\\\(exec\\\\((\"+escapedFile+\")\\\\)\\\\s*\\\\.\\\\s*(?:pick|find)\\\\(([^)]+)\\\\)\\\\)\", 'g');\n  \n  \n  result = result.replace(fregex, `/* Can't import ${setFile} multiple times */`);\n  \n  console.warn(`[FSCSS Warning]  Can't import ${setFile} multiple times at `);\n}\n\n    try {\n      const impUrl = urlSrc.replace(/[\"']/g, \"\");\n      const impExt = impUrl.slice(impUrl.lastIndexOf(\".\")).toLowerCase();\n      if (impUrl.trim().startsWith(\"_init\") && impUrl.includes(\" \")) {\n        console.warn(`fscss[@import] library not found for: ${impUrl}`);\n        return;\n      }\n      \n      if (!validImpExt.includes(impExt)) {\n        console.warn(`fscss[@import] invalid extension for: ${impUrl}`);\n        return;\n      }\n      \n      const response = await fetch(impUrl);\n      if (!response.ok) throw new Error(`fscss[@import] HTTP ${response.status} for ${urlSrc}`);\n      const resText = await response.text();\n      const extracted = extractOnlyBlock(resText, part.trim());\n      result = result.replace(fullMatch, extracted);\n    } catch (err) {\n      console.error(`fscss[@import]  Failed: ${urlSrc} `, err);\n      result = result.replace(fullMatch, `/* Failed import: ${urlSrc} */`);\n      \n    }\n  }\n  \n  if(!result.match(regex)) return result;\nrunnedSetS.add(setFile);\nreturn impSel(result);\n\n}\n\nfunction extractOnlyBlock(cssText, blockName) {\n  const regex = new RegExp(`${blockName}\\\\s*{[^}]*}`, \"g\");\n  const match = cssText.match(regex);\n  return match ? match.join(\"\\n\") : console.warn(`fscss[@import pick] No block matches: ${blockName} `);\n}\n\nconst runnedSetImp = new Set();\n\nasync function procImp(text) {\n  text = await initlibraries(text);\n  const regex = /\\@import\\((?:\\s+)?exec\\((?:\\s+)?(?:\"([^\"]+)\"|'([^']+)'|`([^`]+)`|([^\\)]+)(?:\\s+)?)\\)(?:\\s+)?\\)/g;\n  \n  const matches = [...text.matchAll(regex)];\n  \n  let result = text;\n  let setFile = null;\n  \n  \n  for (const match of matches) {\n    let [fullMatch, url1, url2, url3, url4] = match;\n    \n    const impUrl = (url1 || url2 || url3 || url4).trim();\n    setFile = impUrl;\n    \n    if (runnedSetImp.has(setFile)) {\n      // Helper to escape special characters in the filename (like dots or dashes)\n      const escapedFile = setFile.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n      \n      // Simplified regex using \\s* for zero-or-more whitespace\n      const fregex = new RegExp(\"\\\\@import\\\\((?:\\\\s+)?exec\\\\((?:\\\\s+)?(?:\\\"(\"+ escapedFile + \")\\\"|'(\"+ escapedFile + \")'|`(\"+ escapedFile + \")`|(\"+ escapedFile + \")(?:\\\\s+)?)\\\\)(?:\\\\s+)?\\\\)\", 'g');\n      \n      \n      result = result.replace(fregex, `/* Can't import ${setFile} multiple times */`);\n      \n      console.warn(`[FSCSS Warning]  Can't import ${setFile} multiple times at `);\n    }\n    \n    \n    try {\n      \n      const response = await fetch(impUrl);\n      \n      if (!response.ok) throw new Error(`fscss[@import] HTTP ${response.status} for ${impUrl}`);\n      \n      const resText = await response.text();\n      result = result.replace(fullMatch, resText);\n      \n    } catch (error) {\n      console.error(`fscss[@import]  Failed: ${impUrl} `, error);\n      \n      result = result.replace(fullMatch, `/* Failed import: ${impUrl} */`);\n      \n    }\n  }\n  \n  if (!result.match(regex)) return result;\n  runnedSetImp.add(setFile);\n  return procImp(result);\n}\n\nasync function impFrom(text) {\n  text = await initlibraries(text);\n  const regex = /\\@import\\((?:\\s+)?(?:exec)?\\(([\\w\\d\\.\\@\\—\\-_*\\#\\$\\s\\,]+)\\)(?:\\s+)?from(?:\\s+)?(?:\"([^\"]+)\"|'([^']+)'|`([^`]+)`)(?:\\s+)?\\)/g;\n  \n  const matches = [...text.matchAll(regex)];\n  \n  let result = text;\n  let setFile = null;\n  \n  \n  for (const match of matches) {\n    let [fullMatch, blocks, url1, url2, url3] = match;\n    \n    blocks = blocks.trim();\n    \n    const impUrl = (url1 || url2 || url3).trim();\n    setFile = impUrl;\n    \n    if (runnedSet.has(setFile)) {\n      // Helper to escape special characters in the filename (like dots or dashes)\n      const escapedFile = setFile.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n      \n      // Simplified regex using \\s* for zero-or-more whitespace\n      const fregex = new RegExp(\"\\\\@import\\\\((?:\\\\s+)?(?:exec)?\\\\(([\\\\w\\\\d\\\\.\\\\@\\\\—\\\\-_*\\\\#\\\\$\\\\s\\\\,]+)\\\\)(?:\\\\s+)?from(?:\\\\s+)?(?:\\\"((?:\\\\s+)?\" + escapedFile + \"(?:\\\\s+)?)\\\"|'((?:\\\\s+)?\" + escapedFile + \"(?:\\\\s+)?)'|`((?:\\\\s+)?\" + escapedFile + \"(?:\\\\s+)?)`)(?:\\\\s+)?\\\\)\", 'g');\n      \n      \n      result = result.replace(fregex, `/* Can't import ${setFile} multiple times */`);\n      \n      console.warn(`[FSCSS Warning]  Can't import ${setFile} multiple times at `);\n    }\n    \n    \n    try {\n      \n      const response = await fetch(impUrl);\n      \n      if (!response.ok) throw new Error(`fscss[@import] HTTP ${response.status} for ${impUrl}`);\n      \n      const resText = await response.text();\n      \n      if (blocks === '*') {\n        result = result.replace(fullMatch, resText);\n      }\n      if (blocks !== '*' && blocks.includes('*')) {\n        console.warn(`[FSCSS Warning] syntax error at ${fullMatch}: unexpected *`);\n        result = result.replace(fullMatch, `/* syntax error: unexpected * */`);\n      }\n      if (blocks !== '*' && !blocks.includes('*')) {\n        const arblock = blocks.split(\",\").map(a => a.trim());\n        const exblocks = findBlock(resText, arblock);\n        result = result.replace(fullMatch, exblocks);\n      }\n      \n    } catch (error) {\n      console.error(`fscss[@import]  Failed: ${impUrl} `, error);\n      \n      result = result.replace(fullMatch, `/* Failed import: ${impUrl} */`);\n      \n    }\n  }\n  \n  if (!result.match(regex)) return result;\n  \n  runnedSet.add(setFile);\n  return impFrom(result);\n}\n\nfunction findBlock(text, blocks = []) {\n  if (!text || text === \"\" || typeof text !== \"string\") return console.warn(\"FSCSS >Invalid input\");\n  if (!blocks || blocks.length === 0) return console.warn(\"FSCSS >Invalid input\");\n  let resBlock = '';\n  \n  blocks.forEach(key => {\n    let blk = '';\n    let keyname = key;\n    \n    //Captures the source, the 'as' keyword, and \n    const aliasRegex = /([^\\s]+)(?:\\s+as\\s+([^\\s]+))?/;\n    const matchAs = key.trim().match(aliasRegex);\n    \n    if (matchAs) {\n      const [_, name, alias] = matchAs;\n      keyname = name;\n      if (alias) {\n        blk = alias;\n      } else if (key.includes(' as')) {\n        // Handles the \"func as \" (missing alias) case\n        console.warn(`[FSCSS Warning] Can't assign @${name} to invalid or empty value`);\n        blk = name;\n      } else {\n        blk = name;\n      }\n    }\n    \n    const regex = new RegExp('@define\\\\s+(' + keyname + ')\\\\s*\\\\(([^)]*)\\\\)\\\\s*\\\\$?\\\\{\\\\s*(?:\"([^\"]*)\"|\\'([^\\']*)\\'|`([^`]*)`|([^\\\\}^\\\\{]*?))\\\\s*\\\\}', \"g\");\n    \n    const match = text.match(regex);\n    if (!match) {\n      return console.warn(`[FSCSS Warning] @${keyname} is undefined for import`);\n    }\n    const resRegex = new RegExp('(@define\\\\s+)(' + keyname + ')(\\\\s*\\\\(([^)]*)\\\\)\\\\s*\\\\$?\\\\{\\\\s*(?:\"([^\"]*)\"|\\'([^\\']*)\\'|`([^`]*)`|([^\\\\}^\\\\{]*?))\\\\s*\\\\})', 'g');\n    \n    resBlock += (match.join('\\n')).replace(resRegex, (m, g1, g2, g3) => {\n      return `${g1}${blk}${g3}`;\n    }) + '\\n';\n  })\n  return resBlock.trim();\n}\n\nasync function processStyles() {\n  const styleElements = document.querySelectorAll('style');\n\n  if (!styleElements.length) {\n    console.warn('fscss[Obj]\\n No <style> elements found.');\n    return;\n  }for (const element of styleElements) {\n    let css = element.textContent;\n    if(!css.includes(\"exec.obj.block(all)\")){\n    if(!css.includes(\"exec.obj.block(f import)\")||!css.includes(\"exec.obj.block(f import pick)\"))css = await impSel(css);\n     if(!css.includes(\"exec.obj.block(f import)\")||!css.includes(\"exec.obj.block(f import from)\"))css = await impFrom(css);\n    if(!css.includes(\"exec.obj.block(f import)\"))css = await procImp(css);\n    if(!css.includes(\"exec.obj.block(vfc)\")) css = vfc(css);\n    if(!css.includes(\"exec.obj.block(store:before)\")||!css.includes(\"exec.obj.block(store)\"))css = replaceRe(css);\n    if(!css.includes(\"exec.obj.block(ext:before)\")||!css.includes(\"exec.obj.block(ext)\"))css = procExt(css);\n    if(!css.includes(\"exec.obj.block(f var)\"))css = procVar(css);\n    if(!css.includes(\"exec.obj.block(fun)\"))css = procFun(css);\n    if(!css.includes(\"exec.obj.block(obj)\"))css = procFunObj(css);\n    if(!css.includes(\"exec.obj.block(length)\"))css = procChe(css);\n    if(!css.includes(\"exec.obj.block(count)\"))css = procCnt(css);\n    if(!css.includes(\"exec.obj.block(define)\"))css = procDef(css);\n    if(!css.includes(\"exec.obj.block(arr)\"))css = procArr(css);\n    if(!css.includes(\"exec.obj.block(event)\"))css = procEv(css);\n    if(!css.includes(\"exec.obj.block(random)\"))css = procRan(css);\n    if(!css.includes(\"exec.obj.block(copy)\"))css = transformCssValues(css);\n    if(!css.includes(\"exec.obj.block(store:after)\")||!css.includes(\"exec.obj.block(store)\"))css = replaceRe(css);\n    if(!css.includes(\"exec.obj.block(num)\"))css = procNum(css);\n    if(!css.includes(\"exec.obj.block(ext:after)\")||!css.includes(\"exec.obj.block(ext)\"))css = procExt(css);\n    if(!css.includes(\"exec.obj.block(t group)\"))css = applyFscssTransformations(css);\n    if(!css.includes(\"exec.obj.block(length)\"))css = procChe(css);\n    if(!css.includes(\"exec.obj.block(count)\"))css = procCnt(css);\n    if(!css.includes(\"exec.obj.block(debug)\"))css = procExC(css);\n    } \n    css=css.replace(/exec\\.obj\\.block\\([^\\)\\n]*\\)\\;?/g, \"\");\n    element.innerHTML = css;\n    \n  }\n}\nfunction processDrawElements() {\n  document.querySelectorAll('.draw').forEach(element => {\n    const originalColor = element.style.color || '#000';\n    element.style.color = 'transparent';\n    element.style.webkitTextStroke = `2px ${originalColor}`;\n  });\n}\n\n  try {\n    await processStyles();\n    await processDrawElements(); // This can run after styles are processed\n  } catch (error) {\n    console.error('Error processing styles or draw elements:', error);\n  }\n})()} \n\nfunction applyFscssStyles() {const fscssLinks=document.querySelectorAll('[type*=\"fscss\"]');\nfscssLinks.forEach(link => {fetch(link.href).then(\n  response=>response.text()\n  \n).then(css =>{\n  const style=document.createElement('style');\n  style.textContent = css;\n  document.head.appendChild(style);xfscssProcessorWrap();}).catch(error => {\n        console.error(`Failed to load FSCSS from ${link.href}`, error);});});}\n        \n        \nxfscssProcessorWrap();\napplyFscssStyles();\n\n\n"]}