function nsse(...e){console.error(" Parsing failed: "+e.join(" "))}function pns(){let sheets=document.querySelectorAll('link[rel="novasheet" i], link[rel="novasheets" i]'),fn=[];for(let e of sheets)fn.push(e.href);let sc=[];for(let e of fn)try{let t=new XMLHttpRequest;t.open("GET",e,!1),t.send();let s=t.responseText;sc.push(s.toString())}catch(t){nsse(`File "${e}" cannot be accessed.`)}let inline=document.querySelectorAll('[type="novasheet" i], [type="novasheets" i]');for(let e of inline)sc.push(e.innerHTML);for(let contents of sc){let lines=contents.split("\n"),cv=[],localVars=[],styles={},MAX_RECURSION=50,MAX_ARGUMENTS=10;for(let e in lines)if(lines[e]=lines[e].replace(/[\r\n]/g,"").replace(/^(.*?)\s?\/\/.+$/,"$1"),lines[e].match(/\s*---\s*/))lines[e]="---";else if(lines[e].match(/^\s*@var\s/)){let t=lines[e].replace(/^\s*@var\s/,"");cv.push({line:Number(e),contents:t,name:t.split("|")[0].trim(),subvars:t.split("|").splice(1)})}else lines[e].match(/^\s*@const\s*MAX_RECURSION\s/)?MAX_RECURSION=Number(lines[e].split("MAX_RECURSION")[1]):lines[e].match(/^\s*@const\s*MAX_ARGUMENTS\s/)&&(MAX_ARGUMENTS=Number(lines[e].split("MAX_ARGUMENTS")[1]));window.randomHash=window.randomHash||Math.random().toString().hashCode(6);const varDeclEnding=lines.indexOf("---"),cssContent=lines.slice(varDeclEnding+1).join("\n");let loop=0,csso=cssContent;for(let e in cv){let t=cv[e].line+1,s=cv[e].name.trim(),n=cv[e+1]&&cv[e+1].line||varDeclEnding;for(styles[s]="";t-1||loop<2)&&loop++(Array.isArray(t)||(t=Array(s||MAX_ARGUMENTS).fill(t||"[^|)]*?")),RegExp(`\\$\\(\\s*${e}\\s*(?:\\|(\\s*${t.join("))?\\s*(?:\\|(\\s*")}))?\\s*\\)`,"g")),ga=(e,t)=>{let s=e.replace(/\$\((.*)\)/,"$1").split("|");return t?s[t]&&s[t].trim():s.join("|").replace(/\s*\|\s*/g,"|").split("|").splice(1)};csso=csso.replace(nssf("@if"),output=>{let a=ga(output,1).replace(/^['"]+(.+)['"]+$/,"$1").replace(/>/g,">").replace(/</g,"<"),b=ga(output,2),c=ga(output,3);return["false","NaN","undefined",""].includes(a)&&(a=!1),a.match(/<|<=|>|>=|=/)&&(a=eval(a)),a?b:c});const nmre="(?:0x|0b|0o)?(?:[0-9]*[.])?[0-9]+",mr=e=>"("+nmre+")\\s*"+e.escapeRegex()+"\\s*("+nmre+")",mrb=e=>"\\("+mr(e)+"\\)",parseMath=(ops,b)=>{for(let op of ops){Array.isArray(op)||(op=[op,op]),csso=csso.replace(RegExp("\\(\\s*("+nmre+")\\s*\\)","g"),"$1");let regex=b?mrb(op[0]):mr(op[0]),nums=csso.match(RegExp(regex));try{let func=eval(`Number(${nums[1]}) ${op[1]} Number(${nums[2]})`);nums&&(csso=csso.replace(RegExp(regex),func))}catch(e){}}};for(let e=0;e<5;e++)csso=csso.replace(/([^.0-9]+?|^)(?:\+|--)+([.0-9]+)/,"$1+$2").replace(/([^.0-9]+?|^)(?:\+-|-\+)+([.0-9]+)/,"$1-$2"),parseMath(["**",["^","**"],"/","*","+","-",["--","- -"]],!0),parseMath(["**",["^","**"],"/","*","+","-",["--","- -"]],!1);csso=csso.replace(nssf("@mod",nm,2),e=>ga(e,1)%ga(e,2)).replace(nssf("@min",nm),e=>Math.min(...ga(e))).replace(nssf("@max",nm),e=>Math.max(...ga(e))).replace(nssf("@clamp",nm,3),e=>{let t=ga(e,1),s=ga(e,2),n=ga(e,3);return n=n?n:t}).replace(nssf("@sin",nm,1),e=>Math.sin(ga(e,1))).replace(nssf("@asin",nm,1),e=>Math.asin(ga(e,1))).replace(nssf("@cos",nm,1),e=>Math.cos(ga(e,1))).replace(nssf("@acos",nm,1),e=>Math.acos(ga(e,1))).replace(nssf("@tan",nm,1),e=>Math.tan(ga(e,1))).replace(nssf("@atan",nm,1),e=>Math.atan(ga(e,1))).replace(nssf("@abs",nm,1),e=>Math.abs(ga(e,1))).replace(nssf("@floor",nm,1),e=>Math.floor(ga(e,1))).replace(nssf("@ceil",nm,1),e=>Math.ciel(ga(e,1))).replace(nssf("@round",nm,2),e=>{let t=Number(ga(e,1))+Number.EPSILON,s=ga(e,2)||0;return Math.round(t*10**s)/10**s}).replace(nssf("@log",nm,1),e=>Math.log(ga(e,1))).replace(nssf("@root",nm,2),e=>Math.pow(ga(e,2),1/ga(e,1))).replace(/\$\(@pi\)/g,Math.PI).replace(/\$\(@e\)/g,Math.E),csso=csso.replace(nssf("@encode"),e=>encodeURIComponent(ga(e,1))).replace(nssf("@replace"),e=>ga(e,1).replace(ga(e,2),ga(e,3))).replace(nssf("@length"),e=>ga(e,1).length),csso=csso.replace(nssf("@color"),e=>{let t=ga(e,1),s=ga(e,2)||0,n=ga(e,3)||0,r=ga(e,4)||0,a=ga(e,5)||0;return"hash"===t|"#"===t?s?((s=Math.abs(Math.round(s.replace("#",""))).toString()).length<3&&(s=s.padStart(3,0)),5===s.length&&(s=s.padStart(6,0)),7===s.length&&(s=s.padStart(8,0)),"#"+s):"#000":["rgb","hsl"].includes(t)?`${t}(${s}, ${n}, ${r})`:["rgba","hsla"].includes(t)?`${t}(${s}, ${n}, ${r}, ${a})`:void 0}).replace(nssf("@colorpart"),e=>{let t=ga(e,1),s=ga(e,2)||0,n=[];const r=(e,t)=>Number("0x"+e.substr(t,2)).toString();if(s.startsWith("#")){let e=s.replace("#","");3===e.length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]+"00"),4===e.length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]+e[3]+e[3]),6===e.length&&(e=e.repeat(2)+"00"),n=[r(e,0),r(e,2),r(e,4),r(e,6)]}else n=s.replace(/^\s*...a?/,"").split(",");return s.startsWith("#")||s.startsWith("rgb")?["red","r"].includes(t)?n[0]:["green","g"].includes(t)?n[1]:["blue","b"].includes(t)?n[2]:["alpha","a"].includes(t)?n[3]:(nsse(`Unknown part identifier "${t}" in function "@colorpart" of color type "rgb"/"rgba"/"#".`),s):s.startsWith("hsl")?["hue","h"].includes(t)?n[0]:["saturation","s"].includes(t)?n[1]:["lightness","l"].includes(t)?n[2]:["alpha","a"].includes(t)?n[3]:(nsse(`Unknown part identifier "${t}" in function "@colorpart" of color type "hsl"/"hsla".`),s):(nsse(`Unknown part identifier "${t}" in function "@colorpart" of unknown color type.`),s)})}if(csso=csso.replace(/;\s*;/g,";").replace(/\s+/g," "),document.querySelectorAll(`[data-hash="${csso.hashCode()}"]`).length)break;let se=document.createElement("style");se.dataset.hash=csso.hashCode(),se.innerHTML="\n"+csso+"\n",(document.head||document.body).appendChild(se)}}String.prototype.hashCode=function(e=8){let t=0;for(let e=0;e