diff --git a/public/demo.js b/public/demo.js index 0c2c182..49faa8a 100755 --- a/public/demo.js +++ b/public/demo.js @@ -1265,7 +1265,8 @@ function flattenRefs(scope) { var main = { template: html`
-

Colors

+

phase

+

Colors

diff --git a/public/demo.js.map b/public/demo.js.map index 08bc998..c709992 100755 --- a/public/demo.js.map +++ b/public/demo.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../src/util.ts", "../src/directives/attribute.ts", "../src/directives/event.ts", "../src/directives/for.ts", "../src/directives/if.ts", "../src/directives/interpolation.ts", "../src/directives/show.ts", "../src/directives/teleport.ts", "../src/directives/value.ts", "../src/reactivity/effect.ts", "../src/reactivity/computed.ts", "../src/reactivity/ref.ts", "../src/reactivity/reactive.ts", "../src/reactivity/unwrap.ts", "../src/plugins/router/plugin.ts", "../src/index.ts", "../src/demo.ts"], - "sourcesContent": ["import { Component } from \".\";\n\nexport function stringToElement(template: string): Element {\n const parser = new DOMParser();\n const doc = parser.parseFromString(template, \"text/html\");\n return doc.body.firstChild as Element;\n}\n\nexport const isText = (node: Node): node is Text => {\n return node.nodeType === Node.TEXT_NODE;\n};\n\nexport const isTemplate = (node: Node): node is HTMLTemplateElement => {\n return node.nodeName === \"TEMPLATE\";\n};\n\nexport const isElement = (node: Node): node is Element => {\n return node.nodeType === Node.ELEMENT_NODE;\n};\n\nexport function isObject(value: any): value is object {\n return value !== null && typeof value === \"object\";\n}\n\nexport function isArray(value: any): value is any[] {\n return Array.isArray(value);\n}\n\nexport function checkAndRemoveAttribute(el: Element, attrName: string): string | null {\n // Attempt to get the attribute value\n const attributeValue = el.getAttribute(attrName);\n\n // If attribute exists, remove it from the element\n if (attributeValue !== null) {\n el.removeAttribute(attrName);\n }\n\n // Return the value of the attribute or null if not present\n return attributeValue;\n}\n\nexport interface Slot {\n node: Element;\n name: string;\n}\n\nexport interface Template {\n targetSlotName: string;\n node: HTMLTemplateElement;\n}\n\nexport function findSlotNodes(element: Element): Slot[] {\n const slots: Slot[] = [];\n\n const findSlots = (node: Element) => {\n Array.from(node.childNodes).forEach((node) => {\n if (isElement(node)) {\n if (node.nodeName === \"SLOT\") {\n slots.push({ node, name: node.getAttribute(\"name\") || \"default\" });\n }\n\n if (node.hasChildNodes()) {\n findSlots(node);\n }\n }\n });\n };\n\n findSlots(element);\n\n return slots;\n}\n\nexport function findTemplateNodes(element: Element) {\n const templates: Template[] = [];\n\n const findTemplates = (element: Element) => {\n let defaultContentNodes: Node[] = [];\n\n Array.from(element.childNodes).forEach((node) => {\n if (isElement(node) || isText(node)) {\n if (isElement(node) && node.nodeName === \"TEMPLATE\" && isTemplate(node)) {\n templates.push({ targetSlotName: node.getAttribute(\"slot\") || \"\", node });\n } else {\n // Capture non-template top-level nodes and text nodes for default slot\n defaultContentNodes.push(node);\n }\n }\n });\n\n if (defaultContentNodes.length > 0) {\n // Create a template element with a default slot\n const defaultTemplate = document.createElement(\"template\");\n defaultTemplate.setAttribute(\"slot\", \"default\");\n\n defaultContentNodes.forEach((node) => {\n defaultTemplate.content.appendChild(node);\n });\n\n templates.push({ targetSlotName: \"default\", node: defaultTemplate });\n }\n };\n\n findTemplates(element);\n\n return templates;\n}\n\nexport const nextTick = async (f?: Function) => {\n await new Promise((r) =>\n setTimeout((_) =>\n requestAnimationFrame((_) => {\n f && f();\n r();\n }),\n ),\n );\n};\n\nexport function html(strings: TemplateStringsArray, ...values: any[]): string {\n // List of valid self-closing tags in HTML\n const selfClosingTags = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"link\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"];\n\n // Join the strings and values into a single template\n let result = strings.reduce((acc, str, i) => acc + str + (values[i] || \"\"), \"\");\n\n // Match non-HTML valid self-closing tags\n result = result.replace(/<([a-zA-Z][^\\s/>]*)\\s*([^>]*?)\\/>/g, (match, tagName, attributes) => {\n // If the tag is a valid self-closing tag, return it as is\n if (selfClosingTags.includes(tagName.toLowerCase())) {\n return match;\n }\n\n // Return the tag as an open/close tag preserving attributes\n return `<${tagName} ${attributes}>`;\n });\n\n return result;\n}\n\nexport function toDisplayString(value: unknown) {\n return value == null ? \"\" : isObject(value) ? JSON.stringify(value, null, 2) : String(value);\n}\n\nexport function insertAfter(newNode: Node, existingNode: Node) {\n if (existingNode.nextSibling) {\n existingNode.parentNode.insertBefore(newNode, existingNode.nextSibling);\n } else {\n existingNode?.parentNode?.appendChild(newNode);\n }\n}\n\nexport function insertBefore(newNode: Node, existingNode: Node) {\n existingNode.parentNode?.insertBefore(newNode, existingNode);\n}\n\nexport function isPropAttribute(attrName: string) {\n if (attrName.startsWith(\".\")) {\n return true;\n }\n\n if (attrName.startsWith(\"{\") && attrName.endsWith(\"}\")) {\n return true;\n }\n\n return false;\n}\n\nexport function isSpreadProp(attr: string) {\n return attr.startsWith(\"...\");\n}\n\nexport function isMirrorProp(attr: string) {\n return attr.startsWith(\"{\") && attr.endsWith(\"}\");\n}\n\nexport function isRegularProp(attr: string) {\n return attr.startsWith(\".\");\n}\n\nexport function isEventAttribute(attrName: string) {\n return attrName.startsWith(\"@\");\n}\n\nexport function componentHasPropByName(name: string, component: Component) {\n return Object.keys(component?.props ?? {}).some((prop) => prop === name);\n}\n\nexport function extractAttributeName(attrName: string) {\n return attrName\n .replace(/^\\.\\.\\./, \"\")\n .replace(/^\\./, \"\")\n .replace(/^{/, \"\")\n .replace(/}$/, \"\")\n .replace(/:bind$/, \"\");\n}\n\nfunction dashToCamel(str: string) {\n return str.toLowerCase().replace(/-([a-z])/g, (g) => g[1].toUpperCase());\n}\n\nexport function extractPropName(attrName: string) {\n return dashToCamel(extractAttributeName(attrName));\n}\n\nexport function classNames(_: any) {\n const classes = [];\n for (let i = 0; i < arguments.length; i++) {\n const arg = arguments[i];\n if (!arg) continue;\n const argType = typeof arg;\n if (argType === \"string\" || argType === \"number\") {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n const inner = classNames.apply(null, arg);\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === \"object\") {\n if (arg.toString === Object.prototype.toString) {\n for (let key in arg) {\n if (Object.hasOwnProperty.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n } else {\n classes.push(arg.toString());\n }\n }\n }\n return classes.join(\" \");\n}\n", "import { Context, evalGet } from \"..\";\nimport { classNames, extractAttributeName } from \"../util\";\n\ninterface AttributeDirectiveOptions {\n element: Element;\n context: Context;\n attr: Attr;\n}\n\ninterface Is {\n sameNameProperty: boolean;\n bound: boolean;\n spread: boolean;\n componentProp: boolean;\n}\n\nexport class AttributeDirective {\n element: Element;\n context: Context;\n expression: string;\n attr: Attr;\n extractedAttributeName: string;\n\n previousClasses: string[] = [];\n previousStyles: { [key: string]: string } = {};\n\n is: Is = {\n sameNameProperty: false,\n bound: false,\n spread: false,\n componentProp: false,\n };\n\n constructor({ element, context, attr }: AttributeDirectiveOptions) {\n this.element = element;\n this.context = context;\n this.expression = attr.value;\n this.attr = attr;\n this.extractedAttributeName = extractAttributeName(attr.name);\n\n this.is = {\n sameNameProperty: attr.name.startsWith(\"{\") && attr.name.endsWith(\"}\"),\n bound: attr.name.includes(\":bind\"),\n spread: attr.name.startsWith(\"...\"),\n componentProp: false,\n };\n\n if (this.is.sameNameProperty) {\n this.expression = this.extractedAttributeName;\n }\n\n if (this.is.spread) {\n this.expression = this.extractedAttributeName;\n }\n\n element.removeAttribute(attr.name);\n\n if (this.is.bound) {\n context.effect(this.update.bind(this));\n } else {\n this.update();\n }\n }\n\n update() {\n let value = evalGet(this.context.scope, this.expression, this.element);\n\n if (this.is.spread && typeof value === \"object\") {\n for (const [key, val] of Object.entries(value)) {\n this.element.setAttribute(key, String(val));\n }\n } else if ((typeof value === \"object\" || Array.isArray(value)) && this.extractedAttributeName === \"class\") {\n value = classNames(value);\n const next = value.split(\" \");\n\n // If we now have classes that are not already on the element, add them now.\n // Remove classes that are no longer on the element.\n const diff = next.filter((c: string) => !this.previousClasses.includes(c)).filter(Boolean);\n const rm = this.previousClasses.filter((c) => !next.includes(c));\n\n diff.forEach((c: string) => {\n this.previousClasses.push(c);\n this.element.classList.add(c);\n });\n\n rm.forEach((c) => {\n this.previousClasses = this.previousClasses.filter((addedClass) => addedClass !== c);\n this.element.classList.remove(c);\n });\n } else if (typeof value === \"object\" && this.extractedAttributeName === \"style\") {\n const next = Object.keys(value);\n const rm = Object.keys(this.previousStyles).filter((style) => !next.includes(style));\n\n next.forEach((style) => {\n this.previousStyles[style] = value[style];\n // @ts-ignore\n this.element.style[style] = value[style];\n });\n\n rm.forEach((style) => {\n this.previousStyles[style] = \"\";\n // @ts-ignore\n this.element.style[style] = \"\";\n });\n\n this.previousStyles = value;\n } else {\n this.element.setAttribute(this.extractedAttributeName, value);\n }\n }\n}\n", "import { Context, evalGet } from \"..\";\n\ninterface EventDirectiveOptions {\n element: Element;\n context: Context;\n attr: Attr;\n}\n\nexport class EventDirective {\n element: Element;\n context: Context;\n expression: string;\n attr: Attr;\n eventCount = 0;\n\n constructor({ element, context, attr }: EventDirectiveOptions) {\n this.element = element;\n this.context = context;\n this.expression = attr.value;\n this.attr = attr;\n\n const eventName = attr.name.replace(/^@/, \"\");\n const parts = eventName.split(\".\");\n\n this.element.addEventListener(parts[0], (event) => {\n if (parts.includes(\"prevent\")) event.preventDefault();\n if (parts.includes(\"stop\")) event.stopPropagation();\n if (parts.includes(\"once\") && this.eventCount > 0) return;\n\n this.eventCount++;\n\n const handler = evalGet(context.scope, attr.value, element);\n if (typeof handler === \"function\") {\n handler(event);\n }\n });\n\n element.removeAttribute(attr.name);\n }\n}\n", "import { Block, Component, Context, createScopedContext, evalGet } from \"..\";\nimport { isArray, isObject } from \"../util\";\n\nconst forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/;\nconst forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\nconst stripParensRE = /^\\(|\\)$/g;\nconst destructureRE = /^[{[]\\s*((?:[\\w_$]+\\s*,?\\s*)+)[\\]}]$/;\n\ntype KeyToIndexMap = Map;\n\nexport const _for = (el: Element, exp: string, ctx: Context, component?: Component, componentProps?: Record, allProps?: Record) => {\n const inMatch = exp.match(forAliasRE);\n if (!inMatch) {\n console.warn(`invalid :for expression: ${exp}`);\n return;\n }\n\n const nextNode = el.nextSibling;\n\n const parent = el.parentElement!;\n const anchor = new Text(\"\");\n parent.insertBefore(anchor, el);\n parent.removeChild(el);\n\n const sourceExp = inMatch[2].trim();\n let valueExp = inMatch[1].trim().replace(stripParensRE, \"\").trim();\n let destructureBindings: string[] | undefined;\n let isArrayDestructure = false;\n let indexExp: string | undefined;\n let objIndexExp: string | undefined;\n\n let keyAttr = \"key\";\n let keyExp = el.getAttribute(keyAttr) || el.getAttribute((keyAttr = \":key\")) || el.getAttribute((keyAttr = \":key:bind\"));\n if (keyExp) {\n el.removeAttribute(keyAttr);\n if (keyAttr === \"key\") keyExp = JSON.stringify(keyExp);\n }\n\n let match: any;\n if ((match = valueExp.match(forIteratorRE))) {\n valueExp = valueExp.replace(forIteratorRE, \"\").trim();\n indexExp = match[1].trim();\n if (match[2]) {\n objIndexExp = match[2].trim();\n }\n }\n\n if ((match = valueExp.match(destructureRE))) {\n destructureBindings = match[1].split(\",\").map((s: string) => s.trim());\n isArrayDestructure = valueExp[0] === \"[\";\n }\n\n let mounted = false;\n let blocks: Block[];\n let childCtxs: Context[];\n let keyToIndexMap: Map;\n\n const createChildContexts = (source: unknown): [Context[], KeyToIndexMap] => {\n const map: KeyToIndexMap = new Map();\n const ctxs: Context[] = [];\n\n if (isArray(source)) {\n for (let i = 0; i < source.length; i++) {\n ctxs.push(createChildContext(map, source[i], i));\n }\n } else if (typeof source === \"number\") {\n for (let i = 0; i < source; i++) {\n ctxs.push(createChildContext(map, i + 1, i));\n }\n } else if (isObject(source)) {\n let i = 0;\n for (const key in source) {\n ctxs.push(createChildContext(map, source[key], i++, key));\n }\n }\n\n return [ctxs, map];\n };\n\n const createChildContext = (map: KeyToIndexMap, value: any, index: number, objKey?: string): Context => {\n const data: any = {};\n if (destructureBindings) {\n destructureBindings.forEach((b, i) => (data[b] = value[isArrayDestructure ? i : b]));\n } else {\n data[valueExp] = value;\n }\n if (objKey) {\n indexExp && (data[indexExp] = objKey);\n objIndexExp && (data[objIndexExp] = index);\n } else {\n indexExp && (data[indexExp] = index);\n }\n\n const childCtx = createScopedContext(ctx, data);\n const key = keyExp ? evalGet(childCtx.scope, keyExp, el) : index;\n map.set(key, index);\n childCtx.key = key;\n return childCtx;\n };\n\n const mountBlock = (ctx: Context, ref: Node) => {\n const block = new Block({ element: el, parentContext: ctx, replacementType: \"replace\", component, componentProps, allProps });\n block.key = ctx.key;\n block.insert(parent, ref);\n return block;\n };\n\n ctx.effect(() => {\n const source = evalGet(ctx.scope, sourceExp, el);\n const prevKeyToIndexMap = keyToIndexMap;\n [childCtxs, keyToIndexMap] = createChildContexts(source);\n if (!mounted) {\n blocks = childCtxs.map((s) => mountBlock(s, anchor));\n mounted = true;\n } else {\n for (let i = 0; i < blocks.length; i++) {\n if (!keyToIndexMap.has(blocks[i].key)) {\n blocks[i].remove();\n }\n }\n\n const nextBlocks: Block[] = [];\n let i = childCtxs.length;\n let nextBlock: Block | undefined;\n let prevMovedBlock: Block | undefined;\n while (i--) {\n const childCtx = childCtxs[i];\n const oldIndex = prevKeyToIndexMap.get(childCtx.key);\n let block: Block;\n if (oldIndex == null) {\n // new\n block = mountBlock(childCtx, nextBlock ? nextBlock.element : anchor);\n } else {\n // update\n block = blocks[oldIndex];\n Object.assign(block.context.scope, childCtx.scope);\n if (oldIndex !== i) {\n // moved\n if (\n blocks[oldIndex + 1] !== nextBlock ||\n // If the next has moved, it must move too\n prevMovedBlock === nextBlock\n ) {\n prevMovedBlock = block;\n block.insert(parent, nextBlock ? nextBlock.element : anchor);\n }\n }\n }\n nextBlocks.unshift((nextBlock = block));\n }\n blocks = nextBlocks;\n }\n });\n\n return nextNode;\n};\n", "import { Block, Component, Context, evalGet } from \"..\";\nimport { checkAndRemoveAttribute } from \"../util\";\n\ninterface Branch {\n exp?: string | null;\n el: Element;\n}\n\nexport function _if(el: Element, exp: string, ctx: Context, component?: Component, componentProps?: Record, allProps?: Record) {\n const parent = el.parentElement!;\n const anchor = new Comment(\":if\");\n\n parent.insertBefore(anchor, el);\n\n const branches: Branch[] = [{ exp, el }];\n\n let elseEl: Element | null;\n let elseExp: string | null;\n\n while ((elseEl = el.nextElementSibling)) {\n elseExp = null;\n\n if (checkAndRemoveAttribute(elseEl, \":else\") === \"\" || (elseExp = checkAndRemoveAttribute(elseEl, \":else-if\"))) {\n parent.removeChild(elseEl);\n branches.push({ exp: elseExp, el: elseEl });\n } else {\n break;\n }\n }\n\n const nextNode = el.nextSibling;\n parent.removeChild(el);\n\n let block: Block | undefined;\n let activeBranchIndex = -1;\n\n const removeActiveBlock = () => {\n if (block) {\n parent.insertBefore(anchor, block.element);\n block.remove();\n block = undefined;\n }\n };\n\n ctx.effect(() => {\n for (let i = 0; i < branches.length; i++) {\n const { exp, el } = branches[i];\n\n if (!exp || evalGet(ctx.scope, exp, el)) {\n if (i !== activeBranchIndex) {\n removeActiveBlock();\n block = new Block({ element: el, parentContext: ctx, replacementType: \"replace\", component, componentProps, allProps });\n block.insert(parent, anchor);\n parent.removeChild(anchor);\n activeBranchIndex = i;\n }\n\n return;\n }\n }\n\n activeBranchIndex = -1;\n removeActiveBlock();\n });\n\n return nextNode;\n}\n", "import { Context, evalGet } from \"../\";\nimport { insertAfter, toDisplayString } from \"../util\";\n\ninterface InterpolationDirectiveOptions {\n element: Text;\n context: Context;\n}\n\nconst delims = /{{\\s?(.*?)\\s?}}/g;\n\nexport class InterpolationDirective {\n element: Text;\n context: Context;\n textNodes: Map = new Map();\n\n constructor({ element, context }: InterpolationDirectiveOptions) {\n this.element = element;\n this.context = context;\n\n this.findNodes();\n\n this.textNodes.forEach((nodes, expression) => {\n const trimmedExpression = expression.slice(2, -2).trim();\n\n nodes.forEach((node) => {\n const getter = (exp = trimmedExpression) => evalGet(this.context.scope, exp, element);\n\n context.effect(() => {\n node.textContent = toDisplayString(getter());\n });\n });\n });\n }\n\n findNodes() {\n const textContent = this.element.textContent.trim();\n if (textContent?.match(delims)) {\n const textNodes = textContent.split(/(\\{\\{\\s?[^}]+\\s?\\}\\})/g).filter(Boolean);\n if (textNodes) {\n let previousNode = this.element;\n\n for (let i = 0; i < textNodes.length; i++) {\n const textNode = textNodes[i];\n\n if (textNode.match(/\\{\\{\\s?.+\\s?\\}\\}/)) {\n const newNode = document.createTextNode(textNode);\n\n if (i === 0) {\n this.element.replaceWith(newNode);\n } else {\n insertAfter(newNode, previousNode);\n }\n\n previousNode = newNode;\n\n if (this.textNodes.has(textNode)) {\n this.textNodes.get(textNode).push(newNode);\n } else {\n this.textNodes.set(textNode, [newNode]);\n }\n } else {\n const newNode = document.createTextNode(textNodes[i]);\n\n if (i === 0) {\n this.element.replaceWith(newNode);\n } else {\n insertAfter(newNode, previousNode);\n }\n\n previousNode = newNode;\n }\n }\n }\n }\n }\n\n update() {}\n}\n", "import { Context, evalGet } from \"..\";\n\ninterface ShowDirectiveOptions {\n element: Element;\n context: Context;\n expression: string;\n}\n\nexport class ShowDirective {\n element: Element;\n context: Context;\n expression: string;\n originalDisplay: string;\n\n constructor({ element, context, expression }: ShowDirectiveOptions) {\n this.element = element;\n this.context = context;\n this.expression = expression;\n this.originalDisplay = getComputedStyle(this.element).display;\n\n context.effect(this.update.bind(this));\n }\n\n update() {\n const shouldShow = Boolean(evalGet(this.context.scope, this.expression, this.element));\n // @ts-ignore\n this.element.style.display = shouldShow ? this.originalDisplay : \"none\";\n }\n}\n", "import { Block, Component, Context } from \"..\";\nimport { insertBefore } from \"../util\";\n\nexport function _teleport(el: Element, exp: string, ctx: Context, component?: Component, componentProps?: Record, allProps?: Record) {\n const anchor = new Comment(\":teleport anchor\");\n insertBefore(anchor, el);\n const observed = new Comment(\":teleport\");\n el.replaceWith(observed);\n console.log(\"Creating new block with allProps\", component);\n\n const target = document.querySelector(exp);\n if (!target) {\n console.warn(`teleport target not found: ${exp}`);\n return;\n }\n\n // Prevent interpolations flashing before they can be compiled due to nextTick,\n // which is apparently required.\n // @ts-ignore\n const originalDisplay = el.style.display;\n // @ts-ignore\n el.style.display = \"none\";\n\n let block: Block;\n\n target.appendChild(el);\n\n const observer = new MutationObserver((mutationsList) => {\n mutationsList.forEach((mutation) => {\n mutation.removedNodes.forEach((removedNode) => {\n if (removedNode.contains(observed)) {\n if (block.element) block.remove();\n observer.disconnect();\n }\n });\n });\n });\n\n observer.observe(document.body, { childList: true, subtree: true });\n\n // @ts-ignore\n el.style.display = originalDisplay;\n\n block = new Block({\n element: el,\n parentContext: ctx,\n replacementType: \"replace\",\n component,\n componentProps,\n allProps,\n });\n\n // Return the anchor so walk continues down the tree in the right order.\n return anchor;\n}\n", "import { Context, evalGet, evalSet } from \"..\";\n\ninterface ValueDirectiveOptions {\n element: Element;\n context: Context;\n expression: string;\n}\n\ntype SupportedModelType = \"text\" | \"checkbox\" | \"radio\" | \"number\" | \"password\" | \"color\";\n\nfunction isInput(element: Element): element is HTMLInputElement {\n return element instanceof HTMLInputElement;\n}\n\nfunction isTextarea(element: Element): element is HTMLTextAreaElement {\n return element instanceof HTMLTextAreaElement;\n}\n\nfunction isSelect(element: Element): element is HTMLSelectElement {\n return element instanceof HTMLSelectElement;\n}\n\nexport class ValueDirective {\n element: Element;\n context: Context;\n expression: string;\n inputType: SupportedModelType;\n\n constructor({ element, context, expression }: ValueDirectiveOptions) {\n this.element = element;\n this.context = context;\n this.expression = expression;\n this.inputType = element.getAttribute(\"type\") as SupportedModelType;\n\n // Element -> Context\n if (isInput(element)) {\n switch (this.inputType) {\n case \"text\":\n case \"password\":\n case \"number\":\n case \"color\":\n element.addEventListener(\"input\", () => {\n const value = this.inputType === \"number\" ? (element.value ? parseFloat(element.value) : 0) : element.value;\n evalSet(this.context.scope, expression, value);\n });\n break;\n\n case \"checkbox\":\n element.addEventListener(\"change\", (e: any) => {\n evalSet(this.context.scope, expression, !!e.currentTarget.checked);\n });\n break;\n case \"radio\":\n element.addEventListener(\"change\", (e: any) => {\n if (e.currentTarget.checked) {\n evalSet(this.context.scope, expression, element.getAttribute(\"value\"));\n }\n });\n break;\n default:\n break;\n }\n }\n\n if (isTextarea(element)) {\n element.addEventListener(\"input\", () => {\n evalSet(this.context.scope, expression, element.value);\n });\n }\n\n if (isSelect(element)) {\n element.addEventListener(\"change\", () => {\n evalSet(this.context.scope, expression, element.value);\n });\n }\n\n // Context -> Element\n context.effect(this.updateElementValue.bind(this));\n }\n\n updateElementValue() {\n const value = evalGet(this.context.scope, this.expression, this.element);\n\n if (isInput(this.element)) {\n switch (this.inputType) {\n case \"text\":\n case \"password\":\n case \"number\":\n case \"color\":\n this.element.value = value;\n break;\n case \"checkbox\":\n this.element.checked = !!value;\n break;\n case \"radio\":\n this.element.checked = this.element.value === value;\n break;\n default:\n break;\n }\n }\n\n if (isTextarea(this.element)) {\n this.element.value = value;\n }\n\n if (isSelect(this.element)) {\n this.element.value = value;\n }\n }\n}\n", "interface EffectOptions {\n lazy?: boolean;\n}\n\ninterface EffectFunction {\n active: boolean;\n handler: () => void;\n refs: Set[];\n}\n\ntype Effects = Set;\ntype EffectsMap = Map;\ntype TargetMap = WeakMap;\n\nconst targetMap: TargetMap = new WeakMap();\nconst effectStack: (EffectFunction | undefined)[] = [];\n\nexport function track(target: T, key: PropertyKey) {\n const activeEffect = effectStack[effectStack.length - 1];\n\n if (!activeEffect) return;\n\n let effectsMap = targetMap.get(target);\n if (!effectsMap)\n targetMap.set(target, (effectsMap = new Map() as EffectsMap));\n\n let effects = effectsMap.get(key);\n if (!effects) effectsMap.set(key, (effects = new Set()));\n\n if (!effects.has(activeEffect)) {\n effects.add(activeEffect);\n activeEffect.refs.push(effects);\n }\n}\n\nexport function trigger(target: any, key: PropertyKey) {\n const effectsMap = targetMap.get(target);\n if (!effectsMap) return;\n\n const scheduled = new Set();\n\n effectsMap.get(key)?.forEach((effect) => {\n scheduled.add(effect);\n });\n\n scheduled.forEach(run);\n}\n\nfunction stop(effect: EffectFunction) {\n if (effect.active) cleanup(effect);\n effect.active = false;\n}\n\nfunction start(effect: EffectFunction) {\n if (!effect.active) {\n effect.active = true;\n run(effect);\n }\n}\n\nfunction run(effect: EffectFunction): unknown {\n if (!effect.active) return;\n\n if (effectStack.includes(effect)) return;\n\n cleanup(effect);\n\n let val: unknown;\n\n try {\n effectStack.push(effect);\n val = effect.handler();\n } finally {\n effectStack.pop();\n }\n\n return val;\n}\n\nfunction cleanup(effect: EffectFunction) {\n const { refs } = effect;\n\n if (refs.length) {\n for (const ref of refs) {\n ref.delete(effect);\n }\n }\n\n refs.length = 0;\n}\n\nexport function effect(handler: () => void, opts: EffectOptions = {}) {\n const { lazy } = opts;\n const newEffect: EffectFunction = {\n active: !lazy,\n handler,\n refs: [],\n };\n\n run(newEffect);\n\n return {\n start: () => {\n start(newEffect);\n },\n stop: () => {\n stop(newEffect);\n },\n toggle: () => {\n if (newEffect.active) {\n stop(newEffect);\n } else {\n start(newEffect);\n }\n return newEffect.active;\n },\n };\n}\n", "import { isObject } from \"../util\";\nimport { effect } from \"./effect\";\n\nconst $computed = Symbol(\"computed\");\n\nexport type Computed = {\n readonly value: T;\n readonly [$computed]: true;\n};\n\nexport function isComputed(value: unknown): value is Computed {\n return isObject(value) && value[$computed];\n}\n\nexport function computed(getter: () => T): Computed {\n const ref = {\n get value(): T {\n return getter();\n },\n [$computed]: true,\n } as const;\n\n effect(() => {\n getter();\n });\n\n return ref;\n}\n", "import { isObject } from \"../util\";\nimport { track, trigger } from \"./effect\";\nimport { Reactive, reactive } from \"./reactive\";\n\nexport const $ref = Symbol(\"ref\");\n\nexport type Ref = {\n value: T;\n [$ref]: true;\n};\n\nexport function isRef(value: unknown): value is Ref {\n return isObject(value) && !!value[$ref];\n}\n\nexport function ref(value: T = null as unknown as T): Ref {\n if (isObject(value)) {\n // @ts-ignore\n return isRef(value) ? (value as Ref) : (reactive(value) as Reactive);\n }\n\n const result = { value, [$ref]: true };\n\n return new Proxy(result, {\n get(target: object, key: string | symbol, receiver: any) {\n const val = Reflect.get(target, key, receiver);\n track(result, \"value\");\n return val;\n },\n set(target: object, key: string | symbol, value: unknown) {\n const oldValue = target[key];\n if (oldValue !== value) {\n const success = Reflect.set(target, key, value);\n if (success) {\n trigger(result, \"value\");\n }\n }\n return true;\n },\n }) as Ref;\n}\n", "import { isObject } from \"../util\";\nimport { track, trigger } from \"./effect\";\nimport { ref } from \"./ref\";\n\nconst $reactive = Symbol(\"reactive\");\n\nexport type Reactive = T & { [$reactive]: true };\n\nexport function isReactive(\n value: unknown,\n): value is Reactive {\n return isObject(value) && !!value[$reactive];\n}\n\nexport function reactive(value: T): Reactive {\n // @ts-ignore\n if (!isObject(value)) return ref(value) as Reactive;\n if (value[$reactive]) return value as Reactive;\n\n value[$reactive] = true;\n\n Object.keys(value).forEach((key) => {\n if (isObject(value[key])) {\n value[key] = reactive(value[key]);\n }\n });\n\n return new Proxy(value, reactiveProxyHandler()) as Reactive;\n}\n\nfunction reactiveProxyHandler() {\n return {\n deleteProperty(target: object, key: string | symbol) {\n const had = Reflect.has(target, key);\n const result = Reflect.deleteProperty(target, key);\n if (had) trigger(target, key);\n return result;\n },\n get(target: object, key: string | symbol) {\n track(target, key);\n return Reflect.get(target, key);\n },\n set(target: object, key: string | symbol, value: unknown) {\n if (target[key] === value) return true;\n let newObj = false;\n\n if (isObject(value) && !isObject(target[key])) {\n newObj = true;\n }\n\n if (Reflect.set(target, key, value)) {\n trigger(target, key);\n }\n\n if (newObj) {\n target[key] = reactive(target[key]);\n }\n\n return true;\n },\n };\n}\n", "import { isComputed } from \"./computed\";\nimport { isRef } from \"./ref\";\n\nexport function unwrap(value: unknown) {\n if (isRef(value) || isComputed(value)) {\n return value.value;\n }\n\n if (typeof value === \"function\") {\n return value();\n }\n\n return value;\n}\n", "import { pathToRegexp } from \"path-to-regexp\";\nimport { Route, RouteExpression, RouteMatch } from \".\";\nimport { Plugin } from \"..\";\nimport { App, Block, Component, current } from \"../..\";\nimport { reactive } from \"../../reactivity/reactive\";\nimport { unwrap } from \"../../reactivity/unwrap\";\nimport { html } from \"../../util\";\n\nexport const activeRouters = new Set();\n\nexport function getRouter(): RouterPlugin | undefined {\n return current.componentBlock ? [...activeRouters].find((router) => router.app === current.componentBlock.context.app) : undefined;\n}\n\nconst link = {\n template: html``,\n props: { href: { default: \"#\" } },\n main({ href }: { href: string }) {\n const go = (e: Event) => {\n e.preventDefault();\n\n activeRouters.forEach((router) => {\n router.doRouteChange(unwrap(href as unknown) as string);\n });\n };\n\n const classes = reactive({ \"router-link\": true });\n\n return { go, classes, href };\n },\n};\n\nasync function runEnterTransition(enter: () => boolean | Promise): Promise {\n return await enter();\n}\n\nconst canEnterRoute = async (route: Route) => {\n if (route.beforeEnter) {\n return await runEnterTransition(route.beforeEnter);\n }\n return true;\n};\n\nconst maybeRedirectRoute = (route: Route) => {\n if (route.redirectTo) {\n activeRouters.forEach((plugin) => plugin.doRouteChange(route.redirectTo));\n }\n};\n\nexport class RouterPlugin implements Plugin {\n app: App;\n routes: Route[] = [];\n pathExpressions = new Map();\n lastPath = \"/\";\n knownRouterViews = new Map();\n knownRouterViewNames = new Map();\n populatedRouterViews = new Map();\n\n constructor(routes: Route[] = []) {\n this.routes = routes;\n }\n\n use(app: App, ..._: any[]) {\n this.app = app;\n this.app.register(\"router-link\", link);\n\n window.addEventListener(\"popstate\", this.onHistoryEvent.bind(this));\n window.addEventListener(\"pushstate\", this.onHistoryEvent.bind(this));\n window.addEventListener(\"load\", this.onHistoryEvent.bind(this));\n\n for (const route of this.routes) {\n this.cacheRouteExpression(route);\n }\n\n this.lastPath = `${location.pathname}${location.search}`;\n window.history.replaceState({}, \"\", this.lastPath);\n\n activeRouters.add(this);\n }\n\n compile(element: Element) {\n if (element.nodeType === Node.ELEMENT_NODE && element.nodeName === \"ROUTER-VIEW\" && !this.knownRouterViews.has(element) && current.componentBlock) {\n this.knownRouterViews.set(element, current.componentBlock);\n this.knownRouterViewNames.set(element.getAttribute(\"name\")?.trim() || \"\", element);\n }\n }\n\n onHistoryEvent(e: PopStateEvent | Event) {\n e.preventDefault();\n e.stopImmediatePropagation();\n\n // @ts-ignore\n const path = new URL(e.currentTarget.location.href).pathname;\n\n if (e.type === \"load\") {\n window.history.replaceState({}, \"\", this.lastPath);\n } else if (e.type === \"pushstate\") {\n window.history.replaceState({}, \"\", path);\n } else if (e.type === \"popstate\") {\n window.history.replaceState({}, \"\", path);\n }\n\n this.lastPath = path;\n\n const matches = this.getMatchesForURL(path);\n this.applyMatches(matches);\n }\n\n doRouteChange(to: string) {\n window.history.pushState({}, \"\", to);\n const matches = this.getMatchesForURL(`${location.pathname}${location.search}`);\n this.applyMatches(matches);\n }\n\n getMatchesForURL(url: string): RouteMatch[] {\n let matches: RouteMatch[] = [];\n\n const matchRoutes = (routes: Route[], parentPath: string = \"\", previousParents = []): RouteMatch[] => {\n let parents = [];\n\n for (const route of routes) {\n parents.push(route);\n const path = `${parentPath}${route.path}`.replace(/\\/\\//g, \"/\");\n const match = this.getPathMatch(path, url);\n if (match) matches.push({ match, parents: [...previousParents, ...parents] });\n if (route.children?.length) {\n matchRoutes(route.children, path, [...previousParents, ...parents]);\n parents = [];\n }\n }\n\n return matches;\n };\n matches = matchRoutes(this.routes);\n return matches;\n }\n\n /**\n * getRouteExpression takes a path like \"/users/:id\" and returns a regex\n * and an array of params that match the path.\n * \"/users/:id\" => { regex: /^\\/users\\/([^\\/]+)\\?jwt=(\\w)$/, params: [\"id\"], query: [\"jwt\"] }\n */\n getRouteExpression(path: string, route: Route): RouteExpression {\n if (this.pathExpressions.has(path)) return this.pathExpressions.get(path);\n\n const params = [];\n const regex = pathToRegexp(path, params, { strict: false, sensitive: false, end: true });\n const expression = { regex, params, path, route };\n this.pathExpressions.set(path, expression);\n return expression;\n }\n\n /**\n *\n * @param path A path like /foo/bar/:id\n * @param url A url like /foo/bar/1234\n * @returns A RouteExpression if the URL matches the regex cached for @param path, null otherwise.\n */\n getPathMatch(path: string, url: string): RouteExpression | null {\n if (this.pathExpressions.get(path)) {\n const match = this.pathExpressions.get(path).regex.exec(url);\n if (match) {\n return this.pathExpressions.get(path);\n }\n }\n\n return null;\n }\n\n async applyMatches(matches: RouteMatch[] | null) {\n if (!matches) return;\n\n const usedRouterViews = new Set();\n\n const renderRoutes = async (routeChain: Route[], rootNode?: Element) => {\n for (const route of routeChain) {\n if (route.view) {\n const viewNode = this.knownRouterViewNames.get(route.view);\n if (viewNode && (await canEnterAndRenderRoute(viewNode, route))) {\n continue;\n }\n } else if (rootNode && (await canEnterAndRenderRoute(rootNode, route))) {\n continue;\n }\n }\n };\n\n const canEnterAndRenderRoute = async (node: Element, route: Route) => {\n const canEnter = await canEnterRoute(route);\n if (canEnter) {\n renderRouteAtNode(node, route);\n return true;\n } else {\n if (route.componentFallback) {\n renderRouteAtNode(node, route, route.componentFallback);\n } else {\n maybeRedirectRoute(route);\n }\n\n return false;\n }\n };\n\n const renderRouteAtNode = (node: Element, route: Route, component?: Component) => {\n if (!usedRouterViews.has(node) || this.populatedRouterViews.get(node)?.route !== route) {\n const div = document.createElement(\"div\");\n node.replaceChildren(div);\n\n const target = div.parentElement;\n\n const block = new Block({\n element: div,\n component: component ? component : route.component,\n replacementType: \"replaceChildren\",\n parentContext: current.componentBlock.context,\n });\n\n target.replaceChild(block.element, div);\n\n this.populatedRouterViews.set(node, { block, route });\n\n usedRouterViews.add(node);\n }\n };\n\n for (const match of matches) {\n const routeChain = [...match.parents, match.match.route];\n const uniqueRouteChain = routeChain.filter((route, index, self) => index === self.findIndex((r) => r.path === route.path));\n const rootNode = this.knownRouterViewNames.get(\"\") ?? null;\n await renderRoutes(uniqueRouteChain, rootNode);\n }\n\n // Clean up stale views\n for (const node of this.knownRouterViews.keys()) {\n if (!usedRouterViews.has(node) && this.populatedRouterViews.has(node)) {\n const entry = this.populatedRouterViews.get(node);\n if (entry) {\n entry.block.teardown();\n this.populatedRouterViews.delete(node);\n }\n }\n }\n }\n\n cacheRouteExpression(route: Route, parentPath: string = \"\") {\n const path = `${parentPath}${route.path}`.replace(/\\/\\//g, \"/\");\n this.getRouteExpression(path, route);\n if (route.children?.length) {\n route.children.forEach((child) => {\n this.cacheRouteExpression(child, path);\n });\n }\n }\n\n destroy() {\n window.removeEventListener(\"popstate\", this.onHistoryEvent.bind(this));\n window.removeEventListener(\"pushstate\", this.onHistoryEvent.bind(this));\n window.removeEventListener(\"load\", this.onHistoryEvent.bind(this));\n }\n}\n", "import { AttributeDirective } from \"./directives/attribute\";\nimport { EventDirective } from \"./directives/event\";\nimport { _for } from \"./directives/for\";\nimport { _if } from \"./directives/if\";\nimport { InterpolationDirective } from \"./directives/interpolation\";\nimport { ShowDirective } from \"./directives/show\";\nimport { _teleport } from \"./directives/teleport\";\nimport { ValueDirective } from \"./directives/value\";\nimport { Plugin } from \"./plugins\";\nimport { isComputed } from \"./reactivity/computed\";\nimport { effect as _effect } from \"./reactivity/effect\";\nimport { reactive } from \"./reactivity/reactive\";\nimport { isRef } from \"./reactivity/ref\";\nimport { checkAndRemoveAttribute, componentHasPropByName, extractPropName, findSlotNodes, findTemplateNodes, insertBefore, isElement, isEventAttribute, isMirrorProp, isObject, isPropAttribute, isRegularProp, isSpreadProp, isText, nextTick, Slot, stringToElement, Template, toDisplayString } from \"./util\";\n\nexport * from \"./plugins\";\nexport * from \"./plugins/router\";\n\nexport function provide(key: string, value: unknown) {\n if (!current.componentBlock) {\n console.warn(\"Can't provide: no current component block\");\n }\n\n current.componentBlock.provides.set(key, value);\n}\n\nexport function inject(key: string) {\n if (!current.componentBlock) {\n console.warn(\"Can't inject: no current component block\");\n }\n\n let c = current.componentBlock;\n\n while (c) {\n if (c.provides.has(key)) {\n return c.provides.get(key);\n }\n\n c = c.parentComponentBlock;\n }\n\n return undefined;\n}\n\nexport class App {\n root: Block;\n registry = new Map();\n plugins = new Set();\n\n register(name: string, component: Component) {\n this.registry.set(name, component);\n }\n\n use(plugin: Plugin, ...config: any[]) {\n this.plugins.add(plugin);\n plugin.use(this, ...config);\n }\n\n getComponent(tag: string) {\n return this.registry.get(tag);\n }\n\n mount(component: Component, target: string | HTMLElement = \"body\", props: Record = {}) {\n const root = typeof target === \"string\" ? (document.querySelector(target) as HTMLElement) : target;\n const display = root.style.display;\n root.style.display = \"none\";\n this._mount(component, root, props);\n root.style.display = display;\n return this.root;\n }\n\n private _mount(component: Component, target: HTMLElement, props: Record) {\n const parentContext = createContext({ app: this });\n\n if (props) {\n parentContext.scope = reactive(props);\n bindContextMethods(parentContext.scope);\n }\n\n parentContext.scope.$isRef = isRef;\n parentContext.scope.$isComputed = isComputed;\n\n const block = new Block({\n app: this,\n element: target,\n parentContext,\n component,\n isRoot: true,\n componentProps: props,\n replacementType: \"replaceChildren\",\n });\n\n return block;\n }\n\n unmount() {\n this.root.teardown();\n }\n}\n\nexport interface Context {\n key?: any;\n app: App;\n scope: Record;\n blocks: Block[];\n effects: Array>;\n effect: typeof _effect;\n slots: Slot[];\n templates: Template[];\n}\n\ninterface CreateContextOptions {\n parentContext?: Context;\n app?: App;\n}\n\nexport function createContext({ parentContext, app }: CreateContextOptions): Context {\n const context: Context = {\n app: app ? app : parentContext && parentContext.app ? parentContext.app : null,\n scope: parentContext ? parentContext.scope : reactive({}),\n blocks: [],\n effects: [],\n slots: [],\n templates: parentContext ? parentContext.templates : [],\n effect: (handler: () => void) => {\n const e = _effect(handler);\n context.effects.push(e);\n return e;\n },\n };\n\n return context;\n}\n\nexport const createScopedContext = (ctx: Context, data = {}): Context => {\n const parentScope = ctx.scope;\n const mergedScope = Object.create(parentScope);\n Object.defineProperties(mergedScope, Object.getOwnPropertyDescriptors(data));\n let proxy: any;\n proxy = reactive(\n new Proxy(mergedScope, {\n set(target, key, val, receiver) {\n // when setting a property that doesn't exist on current scope,\n // do not create it on the current scope and fallback to parent scope.\n if (receiver === proxy && !target.hasOwnProperty(key)) {\n return Reflect.set(parentScope, key, val);\n }\n return Reflect.set(target, key, val, receiver);\n },\n }),\n );\n\n bindContextMethods(proxy);\n\n const out: Context = {\n ...ctx,\n scope: {\n ...ctx.scope,\n ...proxy,\n },\n };\n\n return out;\n};\n\nfunction bindContextMethods(scope: Record) {\n for (const key of Object.keys(scope)) {\n if (typeof scope[key] === \"function\") {\n scope[key] = scope[key].bind(scope);\n }\n }\n}\n\nfunction mergeProps(props: Record, defaultProps: Record) {\n const merged = {};\n\n Object.keys(defaultProps).forEach((defaultProp) => {\n const propValue = props.hasOwnProperty(defaultProp) ? props[defaultProp] : defaultProps[defaultProp]?.default;\n\n merged[defaultProp] = reactive(typeof propValue === \"function\" ? propValue() : propValue);\n });\n\n return merged;\n}\n\nexport interface Component {\n template: string;\n props?: Record;\n main?: (props?: Record) => Record | void;\n}\n\ninterface Current {\n componentBlock?: Block;\n}\n\nexport const current: Current = { componentBlock: undefined };\n\ninterface BlockOptions {\n element: Element;\n isRoot?: boolean;\n replacementType?: \"replace\" | \"replaceChildren\";\n componentProps?: Record;\n allProps?: Record;\n parentContext?: Context;\n app?: App;\n component?: Component;\n parentComponentBlock?: Block;\n templates?: Template[];\n}\n\nexport class Block {\n element: Element;\n context: Context;\n parentContext: Context;\n component: Component;\n provides = new Map();\n parentComponentBlock: Block | undefined;\n componentProps: Record;\n allProps: Record;\n\n isFragment: boolean;\n start?: Text;\n end?: Text;\n key?: any;\n\n constructor(opts: BlockOptions) {\n this.isFragment = opts.element instanceof HTMLTemplateElement;\n this.parentComponentBlock = opts.parentComponentBlock;\n\n if (opts.component) {\n current.componentBlock = this;\n this.element = stringToElement(opts.component.template);\n } else {\n if (this.isFragment) {\n this.element = (opts.element as HTMLTemplateElement).content.cloneNode(true) as Element;\n } else if (typeof opts.element === \"string\") {\n this.element = stringToElement(opts.element);\n } else {\n this.element = opts.element.cloneNode(true) as Element;\n opts.element.replaceWith(this.element);\n }\n }\n\n if (opts.isRoot) {\n this.context = opts.parentContext;\n opts.app.root = this;\n } else {\n this.parentContext = opts.parentContext ? opts.parentContext : createContext({});\n this.parentContext.blocks.push(this);\n this.context = createContext({ parentContext: opts.parentContext, app: opts.app });\n }\n\n if (opts.component) {\n this.componentProps = mergeProps(opts.componentProps ?? {}, opts.component.props ?? {});\n\n if (opts.component.main) {\n this.context.scope = {\n ...(opts.component.main(this.componentProps) || {}),\n };\n }\n }\n\n opts.allProps?.forEach((prop: any) => {\n if (prop.isBind) {\n this.context.effect(() => {\n let newValue: unknown;\n\n if (prop.isSpread) {\n const spreadProps = evalGet(this.parentContext.scope, prop.extractedName);\n if (isObject(spreadProps)) {\n Object.keys(spreadProps).forEach((key) => {\n newValue = spreadProps[key];\n this.setProp(key, newValue);\n });\n }\n } else {\n newValue = prop.isMirror ? evalGet(this.parentContext.scope, prop.extractedName) : evalGet(this.parentContext.scope, prop.exp);\n this.setProp(prop.extractedName, newValue);\n }\n });\n }\n });\n\n // Capture slots\n this.context.slots = findSlotNodes(this.element);\n this.context.templates = opts.templates ?? [];\n\n // Put templates into slots\n this.context.slots.forEach((slot) => {\n const template = this.context.templates.find((t) => t.targetSlotName === slot.name);\n\n if (template) {\n const templateContents = template.node.content.cloneNode(true);\n slot.node.replaceWith(templateContents);\n }\n });\n\n this.context.scope.$isRef = isRef;\n this.context.scope.$isComputed = isComputed;\n\n walk(this.element, this.context);\n\n if (opts.component) {\n if (opts.replacementType === \"replace\") {\n if (opts.element instanceof HTMLElement) {\n opts.element.replaceWith(this.element);\n }\n } else {\n if (opts.element instanceof HTMLElement) {\n opts.element.replaceChildren(this.element);\n }\n }\n }\n }\n\n setProp(name: string, value: unknown) {\n if (isRef(this.componentProps[name])) {\n this.componentProps[name].value = value;\n } else {\n this.componentProps[name] = value;\n }\n }\n\n insert(parent: Element, anchor: Node | null = null) {\n if (this.isFragment) {\n if (this.start) {\n // Already inserted, moving\n let node: Node | null = this.start;\n let next: Node | null;\n\n while (node) {\n next = node.nextSibling;\n parent.insertBefore(node, anchor);\n\n if (node === this.end) {\n break;\n }\n\n node = next;\n }\n } else {\n this.start = new Text(\"\");\n this.end = new Text(\"\");\n\n parent.insertBefore(this.end, anchor);\n parent.insertBefore(this.start, this.end);\n parent.insertBefore(this.element, this.end);\n }\n } else {\n parent.insertBefore(this.element, anchor);\n }\n }\n\n remove() {\n if (this.parentContext) {\n const i = this.parentContext.blocks.indexOf(this);\n\n if (i > -1) {\n this.parentContext.blocks.splice(i, 1);\n }\n }\n\n if (this.start) {\n const parent = this.start.parentNode!;\n let node: Node | null = this.start;\n let next: Node | null;\n\n while (node) {\n next = node.nextSibling;\n parent.removeChild(node);\n\n if (node === this.end) {\n break;\n }\n\n node = next;\n }\n } else {\n this.element.remove();\n }\n\n this.teardown();\n }\n\n teardown() {\n this.context.blocks.forEach((block) => {\n block.teardown();\n });\n\n this.context.effects.forEach(stop);\n }\n}\n\nfunction isComponent(element: Element, context: Context) {\n return !!context.app.getComponent(element.tagName.toLowerCase());\n}\n\nfunction warnInvalidDirectives(node: Element, directives: string[]): boolean {\n if (directives.every((d) => node.hasAttribute(d))) {\n console.warn(`These directives cannot be used together on the same node:`, directives);\n console.warn(\"Node ignored:\", node);\n return true;\n }\n\n return false;\n}\n\nfunction walk(node: Node, context: Context) {\n if (isText(node)) {\n new InterpolationDirective({ element: node, context });\n return;\n }\n\n if (isElement(node)) {\n let exp: string | null;\n\n const handleDirectives = (node: Element, context: Context, component?: Component, componentProps?: Record, allProps?: any[]) => {\n if (warnInvalidDirectives(node, [\":if\", \":for\"])) return;\n if (warnInvalidDirectives(node, [\":for\", \":teleport\"])) return;\n if (warnInvalidDirectives(node, [\":if\", \":teleport\"])) return;\n\n // e.g.
\n // In this case, the scope is merged into context.scope and will overwrite\n // anything returned from `main`.\n if ((exp = checkAndRemoveAttribute(node, \":scope\"))) {\n const scope = evalGet(context.scope, exp, node);\n if (typeof scope === \"object\") {\n Object.assign(context.scope, scope);\n // context = createScopedContext(context, scope);\n }\n }\n\n if ((exp = checkAndRemoveAttribute(node, \":if\"))) {\n return _if(node, exp, context, component, componentProps, allProps);\n }\n if ((exp = checkAndRemoveAttribute(node, \":for\"))) {\n return _for(node, exp, context, component, componentProps, allProps);\n }\n if ((exp = checkAndRemoveAttribute(node, \":teleport\"))) {\n return _teleport(node, exp, context, component, componentProps, allProps);\n }\n if ((exp = checkAndRemoveAttribute(node, \":show\"))) {\n new ShowDirective({ element: node, context, expression: exp });\n }\n if ((exp = checkAndRemoveAttribute(node, \":ref\"))) {\n context.scope[exp].value = node;\n }\n if ((exp = checkAndRemoveAttribute(node, \":value\"))) {\n new ValueDirective({ element: node, context, expression: exp });\n }\n if ((exp = checkAndRemoveAttribute(node, \":html\"))) {\n const htmlExp = exp;\n\n context.effect(() => {\n const result = evalGet(context.scope, htmlExp, node);\n if (result instanceof Element) {\n node.replaceChildren();\n node.append(result);\n } else {\n node.innerHTML = result;\n }\n });\n }\n if ((exp = checkAndRemoveAttribute(node, \":text\"))) {\n const textExp = exp;\n\n context.effect(() => {\n node.textContent = toDisplayString(evalGet(context.scope, textExp, node));\n });\n }\n };\n\n const processAttributes = (node: Element, component?: Component) => {\n return Array.from(node.attributes)\n .filter((attr) => isSpreadProp(attr.name) || isMirrorProp(attr.name) || (isRegularProp(attr.name) && componentHasPropByName(extractPropName(attr.name), component)))\n .map((attr) => ({\n isMirror: isMirrorProp(attr.name),\n isSpread: isSpreadProp(attr.name),\n isBind: attr.name.includes(\"bind\"),\n originalName: attr.name,\n extractedName: extractPropName(attr.name),\n exp: attr.value,\n value: isMirrorProp(attr.name) ? evalGet(context.scope, extractPropName(attr.name), node) : attr.value ? evalGet(context.scope, attr.value, node) : undefined,\n }));\n };\n\n if (isComponent(node, context)) {\n const component = context.app.getComponent(node.tagName.toLowerCase());\n const allProps = processAttributes(node, component);\n\n const componentProps = allProps.reduce((acc, { isSpread, isMirror, extractedName, value }) => {\n if (isSpread) {\n const spread = evalGet(context.scope, extractedName, node);\n if (isObject(spread)) Object.assign(acc, spread);\n } else if (isMirror) {\n acc[extractedName] = evalGet(context.scope, extractedName, node);\n } else {\n acc[extractedName] = value;\n }\n return acc;\n }, {});\n\n const next = handleDirectives(node, context, component, componentProps, allProps);\n if (next) return next;\n\n const templates = findTemplateNodes(node);\n\n return new Block({\n element: node,\n app: current.componentBlock.context.app,\n // parentContext: context,\n component,\n replacementType: \"replace\",\n parentComponentBlock: current.componentBlock,\n templates,\n componentProps,\n allProps,\n }).element;\n }\n\n const next = handleDirectives(node, context);\n if (next) return next;\n\n Array.from(node.attributes).forEach((attr) => {\n if (isPropAttribute(attr.name)) {\n new AttributeDirective({ element: node, context, attr });\n }\n\n if (isEventAttribute(attr.name)) {\n new EventDirective({ element: node, context, attr });\n }\n });\n\n walkChildren(node, context);\n }\n}\n\nfunction walkChildren(node: Node, context: Context) {\n let child = node.firstChild;\n\n while (child) {\n child = walk(child, context) || child.nextSibling;\n }\n}\n\nconst evalFuncCache: Record = {};\n\nexport function evalGet(scope: any, exp: string, el?: Node) {\n if (!exp.trim()) return undefined;\n return execute(scope, `const ___value = (${exp.trim()}); return ___value;`, el);\n}\n\nexport function evalSet(scope: any, exp: string, value: unknown) {\n value = typeof value === \"string\" ? `\"${value}\"` : value;\n return execute(scope, `const ___target = (${exp.trim()}); return $isRef(___target) ? ___target.value = ${value} : ___target = ${value};`, null, false);\n}\n\nfunction execute(scope: any, exp: string, el?: Node, flatRefs = true) {\n const newScope = flatRefs ? flattenRefs(scope) : scope;\n const fn = evalFuncCache[exp] || (evalFuncCache[exp] = toFunction(exp));\n\n try {\n return fn(newScope, el);\n } catch (e) {\n console.warn(`Error evaluating expression: \"${exp}\":`);\n console.error(e);\n }\n}\n\n// Function to convert expression strings to functions\nfunction toFunction(exp: string) {\n try {\n return new Function(\"$data\", \"$el\", `with($data){${exp}}`);\n } catch (e) {\n console.error(`${(e as Error).message} in expression: ${exp}`);\n return () => {};\n }\n}\n\n// Map all ref properties in scope to their `.value`\nfunction flattenRefs(scope: any): any {\n const mapped = {};\n\n for (const key in scope) {\n if (scope.hasOwnProperty(key)) {\n // Check if the value is a Ref\n if (isRef(scope[key])) {\n mapped[key] = scope[key].value;\n } else {\n mapped[key] = scope[key];\n }\n }\n }\n return mapped;\n}\n", "import { App } from \".\";\nimport { computed } from \"./reactivity/computed\";\nimport { reactive } from \"./reactivity/reactive\";\nimport { ref } from \"./reactivity/ref\";\nimport { html } from \"./util\";\n\n// ------------------------------------------------\n// Slots, multiple default and named, :if and :for\n// const card = {\n// template: html`
\n//

\n// \n//
`,\n// };\n\n// const main = {\n// template: html`\n//
\n//

card below

\n// \n// card title\n// \n// \n//
\n// `,\n// };\n\n// const app = new App();\n// app.register(\"card\", card);\n// app.mount(main, \"#app\");\n\n// ------------------------------------------------\n// Slots, multiple default and named, :if and :for\n// const app = new App();\n\n// const parent = {\n// template: html`\n//
\n//

parent

\n// \n// \n//
\n//
\n//
1
\n//
2
\n//
3
\n//
\n//
\n// content 1 always shown\n//
\n// content 2, animals:\n//
animal: {{animal}}
\n//
\n\n// \n// \n//
\n//
\n// `,\n// main() {\n// const bool = ref(true);\n// const animals = reactive([\"dog\", \"cat\", \"bear\"]);\n\n// setInterval(() => {\n// bool.value = !bool.value;\n// }, 2000);\n\n// return { bool, animals };\n// },\n// };\n// const card = {\n// template: html`
\n//

card

\n//

\n// \n//
`,\n// };\n// app.register(\"card\", card);\n// const parentBlock = app.mount(parent, \"body\");\n// const cardBlock = parentBlock.context.blocks[0];\n\n// ------------------------------------------------\n// Component pros, mirror and spread, bind and no bind\n// const child = {\n// template: html`
Animal: {{animal}} {{index}}
`,\n// props: { animal: { default: \"cat\" }, index: { default: 0 } },\n// main({ animal, index }) {\n// return { animal, index };\n// },\n// };\n\n// const parent = {\n// template: html`\n//
\n// \n// mirror, no bind:\n// \n//
\n// mirror, bind:\n// \n//
\n// spread, no bind:\n// \n//
\n// spread, bind:\n// \n//
\n// regular prop:\n// \n//
\n// regular prop, bind:\n// \n//
\n//
div has \"id\" set to animal.value
\n//
\n//
div has \"id\" set and bound to animal.value
\n//
\n//
div has \"animal\" set to animal.value
\n//
\n//
div has \"animal\" set and bound to animal.value
\n//
\n//
div has \"animal\" spread
\n//
\n//
div has \"animal\" spread and bound
\n//
\n//
\n//
\n//
\n// if bool, mirror, no bind:\n// \n// if bool, mirror, bind:\n// \n//
\n// for list, mirror, no bind:\n// \n//
\n// for list, mirror, bind:\n// \n// if bool, for list, mirror, no bind: these have the value \"DOG!\" because by the time for :for directive is evaluated, animal.value is \"DOG!\", and no longer \"dog\".\n//
\n// \n//
\n//
\n// `,\n// main() {\n// const bool = ref(false);\n// const animal = ref(\"dog\");\n// const spread = reactive({ animal: \"panther\" });\n// const list = reactive([1, 2, 3]);\n\n// setTimeout(() => {\n// spread.animal = \"PANTHER!\";\n// animal.value = \"DOG!\";\n// bool.value = true;\n// }, 500);\n\n// setTimeout(() => {\n// animal.value = \"DOG!!!!!\";\n// }, 1000);\n\n// return { animal, spread, bool, list };\n// },\n// };\n\n// const app = new App();\n// app.register(\"child\", child);\n// app.mount(parent, \"#app\");\n\n// ------------------------------------------------\n// Event directive\n// const counter = {\n// template: html`\n//
\n//
\n//
true
\n//
\n//

Count: {{count}}{{count >= 2 ? '!!!' : ''}}

\n// \n// \n//
\n//
{{color}}
\n//
\n//
\n// `,\n// main() {\n// const count = ref(0);\n// const style = reactive({ color: \"gray\" });\n// const increment = () => count.value++;\n// const decrement = () => count.value--;\n\n// setInterval(() => {\n// style.color = style.color === \"gray\" ? \"white\" : \"gray\";\n// }, 500);\n\n// return { count, increment, decrement, style };\n// },\n// };\n\n// const app = new App();\n// app.mount(counter, \"#app\");\n\n// ------------------------------------------------\n// :if above :for\n// :if with :teleport\n// const main = {\n// template: html`\n//
\n//
\n//
\n//
{{item}}
\n//
\n//
\n//
\n//
if bool teleported! {{items}}
\n//
\n//
\n// `,\n// main() {\n// const items = reactive([1, 2, 3, 4, 5]);\n// const bool = ref(true);\n// setInterval(() => (bool.value = !bool.value), 250);\n// return { items, bool };\n// },\n// };\n\n// const app = new App();\n// app.mount(main, \"#app\");\n\n// ------------------------------------------------\n// :html\n// const main = {\n// template: html`
`,\n// main() {\n// const html = ref(\"

hello

\");\n\n// setTimeout(() => {\n// if (html.value === \"

hello

\") {\n// html.value = \"

world

\";\n// }\n// }, 1000);\n\n// return { html };\n// },\n// };\n\n// const app = new App();\n// app.mount(main, \"#app\");\n\n// ------------------------------------------------\n// Colors from css framework\nconst main = {\n template: html`\n
\n

Colors

\n \n
\n
\n
{{variant}}-{{rank}}
\n
\n
\n
\n
\n `,\n main() {\n const ranks = reactive([\"5\", \"10\", \"20\", \"30\", \"40\", \"50\", \"60\", \"70\", \"80\", \"90\"]);\n const basesReverse = computed(() => Array.from(ranks).reverse());\n const bg = (variant: string, rank: string, index: number) => ({ backgroundColor: `var(--${variant}-${rank})`, color: `var(--${variant}-${basesReverse.value[index]})` });\n\n return { ranks, bg };\n },\n};\n\nconst app = new App();\napp.mount(main, \"#app\");\n\n// ------------------------------------------------\n// :scope\n// const child = {\n// template: html`\n//
\n// I am child and I have food: \"{{food}}\" (does not inherit)\n//
\n// \n//
\n//
\n// `,\n// main() {\n// const food = ref(\"\uD83C\uDF54\");\n// return { food };\n// },\n// };\n\n// const main = {\n// template: html`\n//
\n//
\n//
Scoped food: {{food}} and scoped drink: {{drink}}
\n// Child slot, food: {{food}} {{drink}}\n//
\n//
\n// `,\n// main() {\n// return { food: ref(\"nothing\") };\n// },\n// };\n\n// const app = new App();\n// app.register(\"child\", child);\n// app.mount(main, \"#app\");\n\n// ------------------------------------------------\n// Practical :scope demo\n// const main = {\n// template: html`\n//
\n//
ON
\n//
OFF
\n// \n//
\n// `,\n// main() {\n// const onClick = () => {\n// console.log(\"ok\");\n// };\n//\n// return { onClick };\n// },\n// };\n//\n// const app = new App();\n// app.mount(main, \"#app\");\n\n// --------\n// weird issue\n// const child = {\n// template: html`
child{{thing}}
`,\n// props: { thing: { default: 1 }},\n// main({ thing }) {\n// return { thing };\n// }\n// };\n\n// const counter = {\n// template: html`\n//
\n//
\n//
{{color}}
\n//
\n// \n//
\n// `,\n// main() {\n// const colors = reactive([\"red\", \"green\"]);\n// return { colors };\n// },\n// };\n\n// const app = new App();\n// app.register(\"child\", child);\n// app.mount(counter, \"#app\");\n"], - "mappings": "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", + "sourcesContent": ["import { Component } from \".\";\n\nexport function stringToElement(template: string): Element {\n const parser = new DOMParser();\n const doc = parser.parseFromString(template, \"text/html\");\n return doc.body.firstChild as Element;\n}\n\nexport const isText = (node: Node): node is Text => {\n return node.nodeType === Node.TEXT_NODE;\n};\n\nexport const isTemplate = (node: Node): node is HTMLTemplateElement => {\n return node.nodeName === \"TEMPLATE\";\n};\n\nexport const isElement = (node: Node): node is Element => {\n return node.nodeType === Node.ELEMENT_NODE;\n};\n\nexport function isObject(value: any): value is object {\n return value !== null && typeof value === \"object\";\n}\n\nexport function isArray(value: any): value is any[] {\n return Array.isArray(value);\n}\n\nexport function checkAndRemoveAttribute(el: Element, attrName: string): string | null {\n // Attempt to get the attribute value\n const attributeValue = el.getAttribute(attrName);\n\n // If attribute exists, remove it from the element\n if (attributeValue !== null) {\n el.removeAttribute(attrName);\n }\n\n // Return the value of the attribute or null if not present\n return attributeValue;\n}\n\nexport interface Slot {\n node: Element;\n name: string;\n}\n\nexport interface Template {\n targetSlotName: string;\n node: HTMLTemplateElement;\n}\n\nexport function findSlotNodes(element: Element): Slot[] {\n const slots: Slot[] = [];\n\n const findSlots = (node: Element) => {\n Array.from(node.childNodes).forEach((node) => {\n if (isElement(node)) {\n if (node.nodeName === \"SLOT\") {\n slots.push({ node, name: node.getAttribute(\"name\") || \"default\" });\n }\n\n if (node.hasChildNodes()) {\n findSlots(node);\n }\n }\n });\n };\n\n findSlots(element);\n\n return slots;\n}\n\nexport function findTemplateNodes(element: Element) {\n const templates: Template[] = [];\n\n const findTemplates = (element: Element) => {\n let defaultContentNodes: Node[] = [];\n\n Array.from(element.childNodes).forEach((node) => {\n if (isElement(node) || isText(node)) {\n if (isElement(node) && node.nodeName === \"TEMPLATE\" && isTemplate(node)) {\n templates.push({ targetSlotName: node.getAttribute(\"slot\") || \"\", node });\n } else {\n // Capture non-template top-level nodes and text nodes for default slot\n defaultContentNodes.push(node);\n }\n }\n });\n\n if (defaultContentNodes.length > 0) {\n // Create a template element with a default slot\n const defaultTemplate = document.createElement(\"template\");\n defaultTemplate.setAttribute(\"slot\", \"default\");\n\n defaultContentNodes.forEach((node) => {\n defaultTemplate.content.appendChild(node);\n });\n\n templates.push({ targetSlotName: \"default\", node: defaultTemplate });\n }\n };\n\n findTemplates(element);\n\n return templates;\n}\n\nexport const nextTick = async (f?: Function) => {\n await new Promise((r) =>\n setTimeout((_) =>\n requestAnimationFrame((_) => {\n f && f();\n r();\n }),\n ),\n );\n};\n\nexport function html(strings: TemplateStringsArray, ...values: any[]): string {\n // List of valid self-closing tags in HTML\n const selfClosingTags = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"link\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"];\n\n // Join the strings and values into a single template\n let result = strings.reduce((acc, str, i) => acc + str + (values[i] || \"\"), \"\");\n\n // Match non-HTML valid self-closing tags\n result = result.replace(/<([a-zA-Z][^\\s/>]*)\\s*([^>]*?)\\/>/g, (match, tagName, attributes) => {\n // If the tag is a valid self-closing tag, return it as is\n if (selfClosingTags.includes(tagName.toLowerCase())) {\n return match;\n }\n\n // Return the tag as an open/close tag preserving attributes\n return `<${tagName} ${attributes}>`;\n });\n\n return result;\n}\n\nexport function toDisplayString(value: unknown) {\n return value == null ? \"\" : isObject(value) ? JSON.stringify(value, null, 2) : String(value);\n}\n\nexport function insertAfter(newNode: Node, existingNode: Node) {\n if (existingNode.nextSibling) {\n existingNode.parentNode.insertBefore(newNode, existingNode.nextSibling);\n } else {\n existingNode?.parentNode?.appendChild(newNode);\n }\n}\n\nexport function insertBefore(newNode: Node, existingNode: Node) {\n existingNode.parentNode?.insertBefore(newNode, existingNode);\n}\n\nexport function isPropAttribute(attrName: string) {\n if (attrName.startsWith(\".\")) {\n return true;\n }\n\n if (attrName.startsWith(\"{\") && attrName.endsWith(\"}\")) {\n return true;\n }\n\n return false;\n}\n\nexport function isSpreadProp(attr: string) {\n return attr.startsWith(\"...\");\n}\n\nexport function isMirrorProp(attr: string) {\n return attr.startsWith(\"{\") && attr.endsWith(\"}\");\n}\n\nexport function isRegularProp(attr: string) {\n return attr.startsWith(\".\");\n}\n\nexport function isEventAttribute(attrName: string) {\n return attrName.startsWith(\"@\");\n}\n\nexport function componentHasPropByName(name: string, component: Component) {\n return Object.keys(component?.props ?? {}).some((prop) => prop === name);\n}\n\nexport function extractAttributeName(attrName: string) {\n return attrName\n .replace(/^\\.\\.\\./, \"\")\n .replace(/^\\./, \"\")\n .replace(/^{/, \"\")\n .replace(/}$/, \"\")\n .replace(/:bind$/, \"\");\n}\n\nfunction dashToCamel(str: string) {\n return str.toLowerCase().replace(/-([a-z])/g, (g) => g[1].toUpperCase());\n}\n\nexport function extractPropName(attrName: string) {\n return dashToCamel(extractAttributeName(attrName));\n}\n\nexport function classNames(_: any) {\n const classes = [];\n for (let i = 0; i < arguments.length; i++) {\n const arg = arguments[i];\n if (!arg) continue;\n const argType = typeof arg;\n if (argType === \"string\" || argType === \"number\") {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n const inner = classNames.apply(null, arg);\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === \"object\") {\n if (arg.toString === Object.prototype.toString) {\n for (let key in arg) {\n if (Object.hasOwnProperty.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n } else {\n classes.push(arg.toString());\n }\n }\n }\n return classes.join(\" \");\n}\n", "import { Context, evalGet } from \"..\";\nimport { classNames, extractAttributeName } from \"../util\";\n\ninterface AttributeDirectiveOptions {\n element: Element;\n context: Context;\n attr: Attr;\n}\n\ninterface Is {\n sameNameProperty: boolean;\n bound: boolean;\n spread: boolean;\n componentProp: boolean;\n}\n\nexport class AttributeDirective {\n element: Element;\n context: Context;\n expression: string;\n attr: Attr;\n extractedAttributeName: string;\n\n previousClasses: string[] = [];\n previousStyles: { [key: string]: string } = {};\n\n is: Is = {\n sameNameProperty: false,\n bound: false,\n spread: false,\n componentProp: false,\n };\n\n constructor({ element, context, attr }: AttributeDirectiveOptions) {\n this.element = element;\n this.context = context;\n this.expression = attr.value;\n this.attr = attr;\n this.extractedAttributeName = extractAttributeName(attr.name);\n\n this.is = {\n sameNameProperty: attr.name.startsWith(\"{\") && attr.name.endsWith(\"}\"),\n bound: attr.name.includes(\":bind\"),\n spread: attr.name.startsWith(\"...\"),\n componentProp: false,\n };\n\n if (this.is.sameNameProperty) {\n this.expression = this.extractedAttributeName;\n }\n\n if (this.is.spread) {\n this.expression = this.extractedAttributeName;\n }\n\n element.removeAttribute(attr.name);\n\n if (this.is.bound) {\n context.effect(this.update.bind(this));\n } else {\n this.update();\n }\n }\n\n update() {\n let value = evalGet(this.context.scope, this.expression, this.element);\n\n if (this.is.spread && typeof value === \"object\") {\n for (const [key, val] of Object.entries(value)) {\n this.element.setAttribute(key, String(val));\n }\n } else if ((typeof value === \"object\" || Array.isArray(value)) && this.extractedAttributeName === \"class\") {\n value = classNames(value);\n const next = value.split(\" \");\n\n // If we now have classes that are not already on the element, add them now.\n // Remove classes that are no longer on the element.\n const diff = next.filter((c: string) => !this.previousClasses.includes(c)).filter(Boolean);\n const rm = this.previousClasses.filter((c) => !next.includes(c));\n\n diff.forEach((c: string) => {\n this.previousClasses.push(c);\n this.element.classList.add(c);\n });\n\n rm.forEach((c) => {\n this.previousClasses = this.previousClasses.filter((addedClass) => addedClass !== c);\n this.element.classList.remove(c);\n });\n } else if (typeof value === \"object\" && this.extractedAttributeName === \"style\") {\n const next = Object.keys(value);\n const rm = Object.keys(this.previousStyles).filter((style) => !next.includes(style));\n\n next.forEach((style) => {\n this.previousStyles[style] = value[style];\n // @ts-ignore\n this.element.style[style] = value[style];\n });\n\n rm.forEach((style) => {\n this.previousStyles[style] = \"\";\n // @ts-ignore\n this.element.style[style] = \"\";\n });\n\n this.previousStyles = value;\n } else {\n this.element.setAttribute(this.extractedAttributeName, value);\n }\n }\n}\n", "import { Context, evalGet } from \"..\";\n\ninterface EventDirectiveOptions {\n element: Element;\n context: Context;\n attr: Attr;\n}\n\nexport class EventDirective {\n element: Element;\n context: Context;\n expression: string;\n attr: Attr;\n eventCount = 0;\n\n constructor({ element, context, attr }: EventDirectiveOptions) {\n this.element = element;\n this.context = context;\n this.expression = attr.value;\n this.attr = attr;\n\n const eventName = attr.name.replace(/^@/, \"\");\n const parts = eventName.split(\".\");\n\n this.element.addEventListener(parts[0], (event) => {\n if (parts.includes(\"prevent\")) event.preventDefault();\n if (parts.includes(\"stop\")) event.stopPropagation();\n if (parts.includes(\"once\") && this.eventCount > 0) return;\n\n this.eventCount++;\n\n const handler = evalGet(context.scope, attr.value, element);\n if (typeof handler === \"function\") {\n handler(event);\n }\n });\n\n element.removeAttribute(attr.name);\n }\n}\n", "import { Block, Component, Context, createScopedContext, evalGet } from \"..\";\nimport { isArray, isObject } from \"../util\";\n\nconst forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/;\nconst forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\nconst stripParensRE = /^\\(|\\)$/g;\nconst destructureRE = /^[{[]\\s*((?:[\\w_$]+\\s*,?\\s*)+)[\\]}]$/;\n\ntype KeyToIndexMap = Map;\n\nexport const _for = (el: Element, exp: string, ctx: Context, component?: Component, componentProps?: Record, allProps?: Record) => {\n const inMatch = exp.match(forAliasRE);\n if (!inMatch) {\n console.warn(`invalid :for expression: ${exp}`);\n return;\n }\n\n const nextNode = el.nextSibling;\n\n const parent = el.parentElement!;\n const anchor = new Text(\"\");\n parent.insertBefore(anchor, el);\n parent.removeChild(el);\n\n const sourceExp = inMatch[2].trim();\n let valueExp = inMatch[1].trim().replace(stripParensRE, \"\").trim();\n let destructureBindings: string[] | undefined;\n let isArrayDestructure = false;\n let indexExp: string | undefined;\n let objIndexExp: string | undefined;\n\n let keyAttr = \"key\";\n let keyExp = el.getAttribute(keyAttr) || el.getAttribute((keyAttr = \":key\")) || el.getAttribute((keyAttr = \":key:bind\"));\n if (keyExp) {\n el.removeAttribute(keyAttr);\n if (keyAttr === \"key\") keyExp = JSON.stringify(keyExp);\n }\n\n let match: any;\n if ((match = valueExp.match(forIteratorRE))) {\n valueExp = valueExp.replace(forIteratorRE, \"\").trim();\n indexExp = match[1].trim();\n if (match[2]) {\n objIndexExp = match[2].trim();\n }\n }\n\n if ((match = valueExp.match(destructureRE))) {\n destructureBindings = match[1].split(\",\").map((s: string) => s.trim());\n isArrayDestructure = valueExp[0] === \"[\";\n }\n\n let mounted = false;\n let blocks: Block[];\n let childCtxs: Context[];\n let keyToIndexMap: Map;\n\n const createChildContexts = (source: unknown): [Context[], KeyToIndexMap] => {\n const map: KeyToIndexMap = new Map();\n const ctxs: Context[] = [];\n\n if (isArray(source)) {\n for (let i = 0; i < source.length; i++) {\n ctxs.push(createChildContext(map, source[i], i));\n }\n } else if (typeof source === \"number\") {\n for (let i = 0; i < source; i++) {\n ctxs.push(createChildContext(map, i + 1, i));\n }\n } else if (isObject(source)) {\n let i = 0;\n for (const key in source) {\n ctxs.push(createChildContext(map, source[key], i++, key));\n }\n }\n\n return [ctxs, map];\n };\n\n const createChildContext = (map: KeyToIndexMap, value: any, index: number, objKey?: string): Context => {\n const data: any = {};\n if (destructureBindings) {\n destructureBindings.forEach((b, i) => (data[b] = value[isArrayDestructure ? i : b]));\n } else {\n data[valueExp] = value;\n }\n if (objKey) {\n indexExp && (data[indexExp] = objKey);\n objIndexExp && (data[objIndexExp] = index);\n } else {\n indexExp && (data[indexExp] = index);\n }\n\n const childCtx = createScopedContext(ctx, data);\n const key = keyExp ? evalGet(childCtx.scope, keyExp, el) : index;\n map.set(key, index);\n childCtx.key = key;\n return childCtx;\n };\n\n const mountBlock = (ctx: Context, ref: Node) => {\n const block = new Block({ element: el, parentContext: ctx, replacementType: \"replace\", component, componentProps, allProps });\n block.key = ctx.key;\n block.insert(parent, ref);\n return block;\n };\n\n ctx.effect(() => {\n const source = evalGet(ctx.scope, sourceExp, el);\n const prevKeyToIndexMap = keyToIndexMap;\n [childCtxs, keyToIndexMap] = createChildContexts(source);\n if (!mounted) {\n blocks = childCtxs.map((s) => mountBlock(s, anchor));\n mounted = true;\n } else {\n for (let i = 0; i < blocks.length; i++) {\n if (!keyToIndexMap.has(blocks[i].key)) {\n blocks[i].remove();\n }\n }\n\n const nextBlocks: Block[] = [];\n let i = childCtxs.length;\n let nextBlock: Block | undefined;\n let prevMovedBlock: Block | undefined;\n while (i--) {\n const childCtx = childCtxs[i];\n const oldIndex = prevKeyToIndexMap.get(childCtx.key);\n let block: Block;\n if (oldIndex == null) {\n // new\n block = mountBlock(childCtx, nextBlock ? nextBlock.element : anchor);\n } else {\n // update\n block = blocks[oldIndex];\n Object.assign(block.context.scope, childCtx.scope);\n if (oldIndex !== i) {\n // moved\n if (\n blocks[oldIndex + 1] !== nextBlock ||\n // If the next has moved, it must move too\n prevMovedBlock === nextBlock\n ) {\n prevMovedBlock = block;\n block.insert(parent, nextBlock ? nextBlock.element : anchor);\n }\n }\n }\n nextBlocks.unshift((nextBlock = block));\n }\n blocks = nextBlocks;\n }\n });\n\n return nextNode;\n};\n", "import { Block, Component, Context, evalGet } from \"..\";\nimport { checkAndRemoveAttribute } from \"../util\";\n\ninterface Branch {\n exp?: string | null;\n el: Element;\n}\n\nexport function _if(el: Element, exp: string, ctx: Context, component?: Component, componentProps?: Record, allProps?: Record) {\n const parent = el.parentElement!;\n const anchor = new Comment(\":if\");\n\n parent.insertBefore(anchor, el);\n\n const branches: Branch[] = [{ exp, el }];\n\n let elseEl: Element | null;\n let elseExp: string | null;\n\n while ((elseEl = el.nextElementSibling)) {\n elseExp = null;\n\n if (checkAndRemoveAttribute(elseEl, \":else\") === \"\" || (elseExp = checkAndRemoveAttribute(elseEl, \":else-if\"))) {\n parent.removeChild(elseEl);\n branches.push({ exp: elseExp, el: elseEl });\n } else {\n break;\n }\n }\n\n const nextNode = el.nextSibling;\n parent.removeChild(el);\n\n let block: Block | undefined;\n let activeBranchIndex = -1;\n\n const removeActiveBlock = () => {\n if (block) {\n parent.insertBefore(anchor, block.element);\n block.remove();\n block = undefined;\n }\n };\n\n ctx.effect(() => {\n for (let i = 0; i < branches.length; i++) {\n const { exp, el } = branches[i];\n\n if (!exp || evalGet(ctx.scope, exp, el)) {\n if (i !== activeBranchIndex) {\n removeActiveBlock();\n block = new Block({ element: el, parentContext: ctx, replacementType: \"replace\", component, componentProps, allProps });\n block.insert(parent, anchor);\n parent.removeChild(anchor);\n activeBranchIndex = i;\n }\n\n return;\n }\n }\n\n activeBranchIndex = -1;\n removeActiveBlock();\n });\n\n return nextNode;\n}\n", "import { Context, evalGet } from \"../\";\nimport { insertAfter, toDisplayString } from \"../util\";\n\ninterface InterpolationDirectiveOptions {\n element: Text;\n context: Context;\n}\n\nconst delims = /{{\\s?(.*?)\\s?}}/g;\n\nexport class InterpolationDirective {\n element: Text;\n context: Context;\n textNodes: Map = new Map();\n\n constructor({ element, context }: InterpolationDirectiveOptions) {\n this.element = element;\n this.context = context;\n\n this.findNodes();\n\n this.textNodes.forEach((nodes, expression) => {\n const trimmedExpression = expression.slice(2, -2).trim();\n\n nodes.forEach((node) => {\n const getter = (exp = trimmedExpression) => evalGet(this.context.scope, exp, element);\n\n context.effect(() => {\n node.textContent = toDisplayString(getter());\n });\n });\n });\n }\n\n findNodes() {\n const textContent = this.element.textContent.trim();\n if (textContent?.match(delims)) {\n const textNodes = textContent.split(/(\\{\\{\\s?[^}]+\\s?\\}\\})/g).filter(Boolean);\n if (textNodes) {\n let previousNode = this.element;\n\n for (let i = 0; i < textNodes.length; i++) {\n const textNode = textNodes[i];\n\n if (textNode.match(/\\{\\{\\s?.+\\s?\\}\\}/)) {\n const newNode = document.createTextNode(textNode);\n\n if (i === 0) {\n this.element.replaceWith(newNode);\n } else {\n insertAfter(newNode, previousNode);\n }\n\n previousNode = newNode;\n\n if (this.textNodes.has(textNode)) {\n this.textNodes.get(textNode).push(newNode);\n } else {\n this.textNodes.set(textNode, [newNode]);\n }\n } else {\n const newNode = document.createTextNode(textNodes[i]);\n\n if (i === 0) {\n this.element.replaceWith(newNode);\n } else {\n insertAfter(newNode, previousNode);\n }\n\n previousNode = newNode;\n }\n }\n }\n }\n }\n\n update() {}\n}\n", "import { Context, evalGet } from \"..\";\n\ninterface ShowDirectiveOptions {\n element: Element;\n context: Context;\n expression: string;\n}\n\nexport class ShowDirective {\n element: Element;\n context: Context;\n expression: string;\n originalDisplay: string;\n\n constructor({ element, context, expression }: ShowDirectiveOptions) {\n this.element = element;\n this.context = context;\n this.expression = expression;\n this.originalDisplay = getComputedStyle(this.element).display;\n\n context.effect(this.update.bind(this));\n }\n\n update() {\n const shouldShow = Boolean(evalGet(this.context.scope, this.expression, this.element));\n // @ts-ignore\n this.element.style.display = shouldShow ? this.originalDisplay : \"none\";\n }\n}\n", "import { Block, Component, Context } from \"..\";\nimport { insertBefore } from \"../util\";\n\nexport function _teleport(el: Element, exp: string, ctx: Context, component?: Component, componentProps?: Record, allProps?: Record) {\n const anchor = new Comment(\":teleport anchor\");\n insertBefore(anchor, el);\n const observed = new Comment(\":teleport\");\n el.replaceWith(observed);\n console.log(\"Creating new block with allProps\", component);\n\n const target = document.querySelector(exp);\n if (!target) {\n console.warn(`teleport target not found: ${exp}`);\n return;\n }\n\n // Prevent interpolations flashing before they can be compiled due to nextTick,\n // which is apparently required.\n // @ts-ignore\n const originalDisplay = el.style.display;\n // @ts-ignore\n el.style.display = \"none\";\n\n let block: Block;\n\n target.appendChild(el);\n\n const observer = new MutationObserver((mutationsList) => {\n mutationsList.forEach((mutation) => {\n mutation.removedNodes.forEach((removedNode) => {\n if (removedNode.contains(observed)) {\n if (block.element) block.remove();\n observer.disconnect();\n }\n });\n });\n });\n\n observer.observe(document.body, { childList: true, subtree: true });\n\n // @ts-ignore\n el.style.display = originalDisplay;\n\n block = new Block({\n element: el,\n parentContext: ctx,\n replacementType: \"replace\",\n component,\n componentProps,\n allProps,\n });\n\n // Return the anchor so walk continues down the tree in the right order.\n return anchor;\n}\n", "import { Context, evalGet, evalSet } from \"..\";\n\ninterface ValueDirectiveOptions {\n element: Element;\n context: Context;\n expression: string;\n}\n\ntype SupportedModelType = \"text\" | \"checkbox\" | \"radio\" | \"number\" | \"password\" | \"color\";\n\nfunction isInput(element: Element): element is HTMLInputElement {\n return element instanceof HTMLInputElement;\n}\n\nfunction isTextarea(element: Element): element is HTMLTextAreaElement {\n return element instanceof HTMLTextAreaElement;\n}\n\nfunction isSelect(element: Element): element is HTMLSelectElement {\n return element instanceof HTMLSelectElement;\n}\n\nexport class ValueDirective {\n element: Element;\n context: Context;\n expression: string;\n inputType: SupportedModelType;\n\n constructor({ element, context, expression }: ValueDirectiveOptions) {\n this.element = element;\n this.context = context;\n this.expression = expression;\n this.inputType = element.getAttribute(\"type\") as SupportedModelType;\n\n // Element -> Context\n if (isInput(element)) {\n switch (this.inputType) {\n case \"text\":\n case \"password\":\n case \"number\":\n case \"color\":\n element.addEventListener(\"input\", () => {\n const value = this.inputType === \"number\" ? (element.value ? parseFloat(element.value) : 0) : element.value;\n evalSet(this.context.scope, expression, value);\n });\n break;\n\n case \"checkbox\":\n element.addEventListener(\"change\", (e: any) => {\n evalSet(this.context.scope, expression, !!e.currentTarget.checked);\n });\n break;\n case \"radio\":\n element.addEventListener(\"change\", (e: any) => {\n if (e.currentTarget.checked) {\n evalSet(this.context.scope, expression, element.getAttribute(\"value\"));\n }\n });\n break;\n default:\n break;\n }\n }\n\n if (isTextarea(element)) {\n element.addEventListener(\"input\", () => {\n evalSet(this.context.scope, expression, element.value);\n });\n }\n\n if (isSelect(element)) {\n element.addEventListener(\"change\", () => {\n evalSet(this.context.scope, expression, element.value);\n });\n }\n\n // Context -> Element\n context.effect(this.updateElementValue.bind(this));\n }\n\n updateElementValue() {\n const value = evalGet(this.context.scope, this.expression, this.element);\n\n if (isInput(this.element)) {\n switch (this.inputType) {\n case \"text\":\n case \"password\":\n case \"number\":\n case \"color\":\n this.element.value = value;\n break;\n case \"checkbox\":\n this.element.checked = !!value;\n break;\n case \"radio\":\n this.element.checked = this.element.value === value;\n break;\n default:\n break;\n }\n }\n\n if (isTextarea(this.element)) {\n this.element.value = value;\n }\n\n if (isSelect(this.element)) {\n this.element.value = value;\n }\n }\n}\n", "interface EffectOptions {\n lazy?: boolean;\n}\n\ninterface EffectFunction {\n active: boolean;\n handler: () => void;\n refs: Set[];\n}\n\ntype Effects = Set;\ntype EffectsMap = Map;\ntype TargetMap = WeakMap;\n\nconst targetMap: TargetMap = new WeakMap();\nconst effectStack: (EffectFunction | undefined)[] = [];\n\nexport function track(target: T, key: PropertyKey) {\n const activeEffect = effectStack[effectStack.length - 1];\n\n if (!activeEffect) return;\n\n let effectsMap = targetMap.get(target);\n if (!effectsMap)\n targetMap.set(target, (effectsMap = new Map() as EffectsMap));\n\n let effects = effectsMap.get(key);\n if (!effects) effectsMap.set(key, (effects = new Set()));\n\n if (!effects.has(activeEffect)) {\n effects.add(activeEffect);\n activeEffect.refs.push(effects);\n }\n}\n\nexport function trigger(target: any, key: PropertyKey) {\n const effectsMap = targetMap.get(target);\n if (!effectsMap) return;\n\n const scheduled = new Set();\n\n effectsMap.get(key)?.forEach((effect) => {\n scheduled.add(effect);\n });\n\n scheduled.forEach(run);\n}\n\nfunction stop(effect: EffectFunction) {\n if (effect.active) cleanup(effect);\n effect.active = false;\n}\n\nfunction start(effect: EffectFunction) {\n if (!effect.active) {\n effect.active = true;\n run(effect);\n }\n}\n\nfunction run(effect: EffectFunction): unknown {\n if (!effect.active) return;\n\n if (effectStack.includes(effect)) return;\n\n cleanup(effect);\n\n let val: unknown;\n\n try {\n effectStack.push(effect);\n val = effect.handler();\n } finally {\n effectStack.pop();\n }\n\n return val;\n}\n\nfunction cleanup(effect: EffectFunction) {\n const { refs } = effect;\n\n if (refs.length) {\n for (const ref of refs) {\n ref.delete(effect);\n }\n }\n\n refs.length = 0;\n}\n\nexport function effect(handler: () => void, opts: EffectOptions = {}) {\n const { lazy } = opts;\n const newEffect: EffectFunction = {\n active: !lazy,\n handler,\n refs: [],\n };\n\n run(newEffect);\n\n return {\n start: () => {\n start(newEffect);\n },\n stop: () => {\n stop(newEffect);\n },\n toggle: () => {\n if (newEffect.active) {\n stop(newEffect);\n } else {\n start(newEffect);\n }\n return newEffect.active;\n },\n };\n}\n", "import { isObject } from \"../util\";\nimport { effect } from \"./effect\";\n\nconst $computed = Symbol(\"computed\");\n\nexport type Computed = {\n readonly value: T;\n readonly [$computed]: true;\n};\n\nexport function isComputed(value: unknown): value is Computed {\n return isObject(value) && value[$computed];\n}\n\nexport function computed(getter: () => T): Computed {\n const ref = {\n get value(): T {\n return getter();\n },\n [$computed]: true,\n } as const;\n\n effect(() => {\n getter();\n });\n\n return ref;\n}\n", "import { isObject } from \"../util\";\nimport { track, trigger } from \"./effect\";\nimport { Reactive, reactive } from \"./reactive\";\n\nexport const $ref = Symbol(\"ref\");\n\nexport type Ref = {\n value: T;\n [$ref]: true;\n};\n\nexport function isRef(value: unknown): value is Ref {\n return isObject(value) && !!value[$ref];\n}\n\nexport function ref(value: T = null as unknown as T): Ref {\n if (isObject(value)) {\n // @ts-ignore\n return isRef(value) ? (value as Ref) : (reactive(value) as Reactive);\n }\n\n const result = { value, [$ref]: true };\n\n return new Proxy(result, {\n get(target: object, key: string | symbol, receiver: any) {\n const val = Reflect.get(target, key, receiver);\n track(result, \"value\");\n return val;\n },\n set(target: object, key: string | symbol, value: unknown) {\n const oldValue = target[key];\n if (oldValue !== value) {\n const success = Reflect.set(target, key, value);\n if (success) {\n trigger(result, \"value\");\n }\n }\n return true;\n },\n }) as Ref;\n}\n", "import { isObject } from \"../util\";\nimport { track, trigger } from \"./effect\";\nimport { ref } from \"./ref\";\n\nconst $reactive = Symbol(\"reactive\");\n\nexport type Reactive = T & { [$reactive]: true };\n\nexport function isReactive(\n value: unknown,\n): value is Reactive {\n return isObject(value) && !!value[$reactive];\n}\n\nexport function reactive(value: T): Reactive {\n // @ts-ignore\n if (!isObject(value)) return ref(value) as Reactive;\n if (value[$reactive]) return value as Reactive;\n\n value[$reactive] = true;\n\n Object.keys(value).forEach((key) => {\n if (isObject(value[key])) {\n value[key] = reactive(value[key]);\n }\n });\n\n return new Proxy(value, reactiveProxyHandler()) as Reactive;\n}\n\nfunction reactiveProxyHandler() {\n return {\n deleteProperty(target: object, key: string | symbol) {\n const had = Reflect.has(target, key);\n const result = Reflect.deleteProperty(target, key);\n if (had) trigger(target, key);\n return result;\n },\n get(target: object, key: string | symbol) {\n track(target, key);\n return Reflect.get(target, key);\n },\n set(target: object, key: string | symbol, value: unknown) {\n if (target[key] === value) return true;\n let newObj = false;\n\n if (isObject(value) && !isObject(target[key])) {\n newObj = true;\n }\n\n if (Reflect.set(target, key, value)) {\n trigger(target, key);\n }\n\n if (newObj) {\n target[key] = reactive(target[key]);\n }\n\n return true;\n },\n };\n}\n", "import { isComputed } from \"./computed\";\nimport { isRef } from \"./ref\";\n\nexport function unwrap(value: unknown) {\n if (isRef(value) || isComputed(value)) {\n return value.value;\n }\n\n if (typeof value === \"function\") {\n return value();\n }\n\n return value;\n}\n", "import { pathToRegexp } from \"path-to-regexp\";\nimport { Route, RouteExpression, RouteMatch } from \".\";\nimport { Plugin } from \"..\";\nimport { App, Block, Component, current } from \"../..\";\nimport { reactive } from \"../../reactivity/reactive\";\nimport { unwrap } from \"../../reactivity/unwrap\";\nimport { html } from \"../../util\";\n\nexport const activeRouters = new Set();\n\nexport function getRouter(): RouterPlugin | undefined {\n return current.componentBlock ? [...activeRouters].find((router) => router.app === current.componentBlock.context.app) : undefined;\n}\n\nconst link = {\n template: html``,\n props: { href: { default: \"#\" } },\n main({ href }: { href: string }) {\n const go = (e: Event) => {\n e.preventDefault();\n\n activeRouters.forEach((router) => {\n router.doRouteChange(unwrap(href as unknown) as string);\n });\n };\n\n const classes = reactive({ \"router-link\": true });\n\n return { go, classes, href };\n },\n};\n\nasync function runEnterTransition(enter: () => boolean | Promise): Promise {\n return await enter();\n}\n\nconst canEnterRoute = async (route: Route) => {\n if (route.beforeEnter) {\n return await runEnterTransition(route.beforeEnter);\n }\n return true;\n};\n\nconst maybeRedirectRoute = (route: Route) => {\n if (route.redirectTo) {\n activeRouters.forEach((plugin) => plugin.doRouteChange(route.redirectTo));\n }\n};\n\nexport class RouterPlugin implements Plugin {\n app: App;\n routes: Route[] = [];\n pathExpressions = new Map();\n lastPath = \"/\";\n knownRouterViews = new Map();\n knownRouterViewNames = new Map();\n populatedRouterViews = new Map();\n\n constructor(routes: Route[] = []) {\n this.routes = routes;\n }\n\n use(app: App, ..._: any[]) {\n this.app = app;\n this.app.register(\"router-link\", link);\n\n window.addEventListener(\"popstate\", this.onHistoryEvent.bind(this));\n window.addEventListener(\"pushstate\", this.onHistoryEvent.bind(this));\n window.addEventListener(\"load\", this.onHistoryEvent.bind(this));\n\n for (const route of this.routes) {\n this.cacheRouteExpression(route);\n }\n\n this.lastPath = `${location.pathname}${location.search}`;\n window.history.replaceState({}, \"\", this.lastPath);\n\n activeRouters.add(this);\n }\n\n compile(element: Element) {\n if (element.nodeType === Node.ELEMENT_NODE && element.nodeName === \"ROUTER-VIEW\" && !this.knownRouterViews.has(element) && current.componentBlock) {\n this.knownRouterViews.set(element, current.componentBlock);\n this.knownRouterViewNames.set(element.getAttribute(\"name\")?.trim() || \"\", element);\n }\n }\n\n onHistoryEvent(e: PopStateEvent | Event) {\n e.preventDefault();\n e.stopImmediatePropagation();\n\n // @ts-ignore\n const path = new URL(e.currentTarget.location.href).pathname;\n\n if (e.type === \"load\") {\n window.history.replaceState({}, \"\", this.lastPath);\n } else if (e.type === \"pushstate\") {\n window.history.replaceState({}, \"\", path);\n } else if (e.type === \"popstate\") {\n window.history.replaceState({}, \"\", path);\n }\n\n this.lastPath = path;\n\n const matches = this.getMatchesForURL(path);\n this.applyMatches(matches);\n }\n\n doRouteChange(to: string) {\n window.history.pushState({}, \"\", to);\n const matches = this.getMatchesForURL(`${location.pathname}${location.search}`);\n this.applyMatches(matches);\n }\n\n getMatchesForURL(url: string): RouteMatch[] {\n let matches: RouteMatch[] = [];\n\n const matchRoutes = (routes: Route[], parentPath: string = \"\", previousParents = []): RouteMatch[] => {\n let parents = [];\n\n for (const route of routes) {\n parents.push(route);\n const path = `${parentPath}${route.path}`.replace(/\\/\\//g, \"/\");\n const match = this.getPathMatch(path, url);\n if (match) matches.push({ match, parents: [...previousParents, ...parents] });\n if (route.children?.length) {\n matchRoutes(route.children, path, [...previousParents, ...parents]);\n parents = [];\n }\n }\n\n return matches;\n };\n matches = matchRoutes(this.routes);\n return matches;\n }\n\n /**\n * getRouteExpression takes a path like \"/users/:id\" and returns a regex\n * and an array of params that match the path.\n * \"/users/:id\" => { regex: /^\\/users\\/([^\\/]+)\\?jwt=(\\w)$/, params: [\"id\"], query: [\"jwt\"] }\n */\n getRouteExpression(path: string, route: Route): RouteExpression {\n if (this.pathExpressions.has(path)) return this.pathExpressions.get(path);\n\n const params = [];\n const regex = pathToRegexp(path, params, { strict: false, sensitive: false, end: true });\n const expression = { regex, params, path, route };\n this.pathExpressions.set(path, expression);\n return expression;\n }\n\n /**\n *\n * @param path A path like /foo/bar/:id\n * @param url A url like /foo/bar/1234\n * @returns A RouteExpression if the URL matches the regex cached for @param path, null otherwise.\n */\n getPathMatch(path: string, url: string): RouteExpression | null {\n if (this.pathExpressions.get(path)) {\n const match = this.pathExpressions.get(path).regex.exec(url);\n if (match) {\n return this.pathExpressions.get(path);\n }\n }\n\n return null;\n }\n\n async applyMatches(matches: RouteMatch[] | null) {\n if (!matches) return;\n\n const usedRouterViews = new Set();\n\n const renderRoutes = async (routeChain: Route[], rootNode?: Element) => {\n for (const route of routeChain) {\n if (route.view) {\n const viewNode = this.knownRouterViewNames.get(route.view);\n if (viewNode && (await canEnterAndRenderRoute(viewNode, route))) {\n continue;\n }\n } else if (rootNode && (await canEnterAndRenderRoute(rootNode, route))) {\n continue;\n }\n }\n };\n\n const canEnterAndRenderRoute = async (node: Element, route: Route) => {\n const canEnter = await canEnterRoute(route);\n if (canEnter) {\n renderRouteAtNode(node, route);\n return true;\n } else {\n if (route.componentFallback) {\n renderRouteAtNode(node, route, route.componentFallback);\n } else {\n maybeRedirectRoute(route);\n }\n\n return false;\n }\n };\n\n const renderRouteAtNode = (node: Element, route: Route, component?: Component) => {\n if (!usedRouterViews.has(node) || this.populatedRouterViews.get(node)?.route !== route) {\n const div = document.createElement(\"div\");\n node.replaceChildren(div);\n\n const target = div.parentElement;\n\n const block = new Block({\n element: div,\n component: component ? component : route.component,\n replacementType: \"replaceChildren\",\n parentContext: current.componentBlock.context,\n });\n\n target.replaceChild(block.element, div);\n\n this.populatedRouterViews.set(node, { block, route });\n\n usedRouterViews.add(node);\n }\n };\n\n for (const match of matches) {\n const routeChain = [...match.parents, match.match.route];\n const uniqueRouteChain = routeChain.filter((route, index, self) => index === self.findIndex((r) => r.path === route.path));\n const rootNode = this.knownRouterViewNames.get(\"\") ?? null;\n await renderRoutes(uniqueRouteChain, rootNode);\n }\n\n // Clean up stale views\n for (const node of this.knownRouterViews.keys()) {\n if (!usedRouterViews.has(node) && this.populatedRouterViews.has(node)) {\n const entry = this.populatedRouterViews.get(node);\n if (entry) {\n entry.block.teardown();\n this.populatedRouterViews.delete(node);\n }\n }\n }\n }\n\n cacheRouteExpression(route: Route, parentPath: string = \"\") {\n const path = `${parentPath}${route.path}`.replace(/\\/\\//g, \"/\");\n this.getRouteExpression(path, route);\n if (route.children?.length) {\n route.children.forEach((child) => {\n this.cacheRouteExpression(child, path);\n });\n }\n }\n\n destroy() {\n window.removeEventListener(\"popstate\", this.onHistoryEvent.bind(this));\n window.removeEventListener(\"pushstate\", this.onHistoryEvent.bind(this));\n window.removeEventListener(\"load\", this.onHistoryEvent.bind(this));\n }\n}\n", "import { AttributeDirective } from \"./directives/attribute\";\nimport { EventDirective } from \"./directives/event\";\nimport { _for } from \"./directives/for\";\nimport { _if } from \"./directives/if\";\nimport { InterpolationDirective } from \"./directives/interpolation\";\nimport { ShowDirective } from \"./directives/show\";\nimport { _teleport } from \"./directives/teleport\";\nimport { ValueDirective } from \"./directives/value\";\nimport { Plugin } from \"./plugins\";\nimport { isComputed } from \"./reactivity/computed\";\nimport { effect as _effect } from \"./reactivity/effect\";\nimport { reactive } from \"./reactivity/reactive\";\nimport { isRef } from \"./reactivity/ref\";\nimport { checkAndRemoveAttribute, componentHasPropByName, extractPropName, findSlotNodes, findTemplateNodes, insertBefore, isElement, isEventAttribute, isMirrorProp, isObject, isPropAttribute, isRegularProp, isSpreadProp, isText, nextTick, Slot, stringToElement, Template, toDisplayString } from \"./util\";\n\nexport * from \"./plugins\";\nexport * from \"./plugins/router\";\n\nexport function provide(key: string, value: unknown) {\n if (!current.componentBlock) {\n console.warn(\"Can't provide: no current component block\");\n }\n\n current.componentBlock.provides.set(key, value);\n}\n\nexport function inject(key: string) {\n if (!current.componentBlock) {\n console.warn(\"Can't inject: no current component block\");\n }\n\n let c = current.componentBlock;\n\n while (c) {\n if (c.provides.has(key)) {\n return c.provides.get(key);\n }\n\n c = c.parentComponentBlock;\n }\n\n return undefined;\n}\n\nexport class App {\n root: Block;\n registry = new Map();\n plugins = new Set();\n\n register(name: string, component: Component) {\n this.registry.set(name, component);\n }\n\n use(plugin: Plugin, ...config: any[]) {\n this.plugins.add(plugin);\n plugin.use(this, ...config);\n }\n\n getComponent(tag: string) {\n return this.registry.get(tag);\n }\n\n mount(component: Component, target: string | HTMLElement = \"body\", props: Record = {}) {\n const root = typeof target === \"string\" ? (document.querySelector(target) as HTMLElement) : target;\n const display = root.style.display;\n root.style.display = \"none\";\n this._mount(component, root, props);\n root.style.display = display;\n return this.root;\n }\n\n private _mount(component: Component, target: HTMLElement, props: Record) {\n const parentContext = createContext({ app: this });\n\n if (props) {\n parentContext.scope = reactive(props);\n bindContextMethods(parentContext.scope);\n }\n\n parentContext.scope.$isRef = isRef;\n parentContext.scope.$isComputed = isComputed;\n\n const block = new Block({\n app: this,\n element: target,\n parentContext,\n component,\n isRoot: true,\n componentProps: props,\n replacementType: \"replaceChildren\",\n });\n\n return block;\n }\n\n unmount() {\n this.root.teardown();\n }\n}\n\nexport interface Context {\n key?: any;\n app: App;\n scope: Record;\n blocks: Block[];\n effects: Array>;\n effect: typeof _effect;\n slots: Slot[];\n templates: Template[];\n}\n\ninterface CreateContextOptions {\n parentContext?: Context;\n app?: App;\n}\n\nexport function createContext({ parentContext, app }: CreateContextOptions): Context {\n const context: Context = {\n app: app ? app : parentContext && parentContext.app ? parentContext.app : null,\n scope: parentContext ? parentContext.scope : reactive({}),\n blocks: [],\n effects: [],\n slots: [],\n templates: parentContext ? parentContext.templates : [],\n effect: (handler: () => void) => {\n const e = _effect(handler);\n context.effects.push(e);\n return e;\n },\n };\n\n return context;\n}\n\nexport const createScopedContext = (ctx: Context, data = {}): Context => {\n const parentScope = ctx.scope;\n const mergedScope = Object.create(parentScope);\n Object.defineProperties(mergedScope, Object.getOwnPropertyDescriptors(data));\n let proxy: any;\n proxy = reactive(\n new Proxy(mergedScope, {\n set(target, key, val, receiver) {\n // when setting a property that doesn't exist on current scope,\n // do not create it on the current scope and fallback to parent scope.\n if (receiver === proxy && !target.hasOwnProperty(key)) {\n return Reflect.set(parentScope, key, val);\n }\n return Reflect.set(target, key, val, receiver);\n },\n }),\n );\n\n bindContextMethods(proxy);\n\n const out: Context = {\n ...ctx,\n scope: {\n ...ctx.scope,\n ...proxy,\n },\n };\n\n return out;\n};\n\nfunction bindContextMethods(scope: Record) {\n for (const key of Object.keys(scope)) {\n if (typeof scope[key] === \"function\") {\n scope[key] = scope[key].bind(scope);\n }\n }\n}\n\nfunction mergeProps(props: Record, defaultProps: Record) {\n const merged = {};\n\n Object.keys(defaultProps).forEach((defaultProp) => {\n const propValue = props.hasOwnProperty(defaultProp) ? props[defaultProp] : defaultProps[defaultProp]?.default;\n\n merged[defaultProp] = reactive(typeof propValue === \"function\" ? propValue() : propValue);\n });\n\n return merged;\n}\n\nexport interface Component {\n template: string;\n props?: Record;\n main?: (props?: Record) => Record | void;\n}\n\ninterface Current {\n componentBlock?: Block;\n}\n\nexport const current: Current = { componentBlock: undefined };\n\ninterface BlockOptions {\n element: Element;\n isRoot?: boolean;\n replacementType?: \"replace\" | \"replaceChildren\";\n componentProps?: Record;\n allProps?: Record;\n parentContext?: Context;\n app?: App;\n component?: Component;\n parentComponentBlock?: Block;\n templates?: Template[];\n}\n\nexport class Block {\n element: Element;\n context: Context;\n parentContext: Context;\n component: Component;\n provides = new Map();\n parentComponentBlock: Block | undefined;\n componentProps: Record;\n allProps: Record;\n\n isFragment: boolean;\n start?: Text;\n end?: Text;\n key?: any;\n\n constructor(opts: BlockOptions) {\n this.isFragment = opts.element instanceof HTMLTemplateElement;\n this.parentComponentBlock = opts.parentComponentBlock;\n\n if (opts.component) {\n current.componentBlock = this;\n this.element = stringToElement(opts.component.template);\n } else {\n if (this.isFragment) {\n this.element = (opts.element as HTMLTemplateElement).content.cloneNode(true) as Element;\n } else if (typeof opts.element === \"string\") {\n this.element = stringToElement(opts.element);\n } else {\n this.element = opts.element.cloneNode(true) as Element;\n opts.element.replaceWith(this.element);\n }\n }\n\n if (opts.isRoot) {\n this.context = opts.parentContext;\n opts.app.root = this;\n } else {\n this.parentContext = opts.parentContext ? opts.parentContext : createContext({});\n this.parentContext.blocks.push(this);\n this.context = createContext({ parentContext: opts.parentContext, app: opts.app });\n }\n\n if (opts.component) {\n this.componentProps = mergeProps(opts.componentProps ?? {}, opts.component.props ?? {});\n\n if (opts.component.main) {\n this.context.scope = {\n ...(opts.component.main(this.componentProps) || {}),\n };\n }\n }\n\n opts.allProps?.forEach((prop: any) => {\n if (prop.isBind) {\n this.context.effect(() => {\n let newValue: unknown;\n\n if (prop.isSpread) {\n const spreadProps = evalGet(this.parentContext.scope, prop.extractedName);\n if (isObject(spreadProps)) {\n Object.keys(spreadProps).forEach((key) => {\n newValue = spreadProps[key];\n this.setProp(key, newValue);\n });\n }\n } else {\n newValue = prop.isMirror ? evalGet(this.parentContext.scope, prop.extractedName) : evalGet(this.parentContext.scope, prop.exp);\n this.setProp(prop.extractedName, newValue);\n }\n });\n }\n });\n\n // Capture slots\n this.context.slots = findSlotNodes(this.element);\n this.context.templates = opts.templates ?? [];\n\n // Put templates into slots\n this.context.slots.forEach((slot) => {\n const template = this.context.templates.find((t) => t.targetSlotName === slot.name);\n\n if (template) {\n const templateContents = template.node.content.cloneNode(true);\n slot.node.replaceWith(templateContents);\n }\n });\n\n this.context.scope.$isRef = isRef;\n this.context.scope.$isComputed = isComputed;\n\n walk(this.element, this.context);\n\n if (opts.component) {\n if (opts.replacementType === \"replace\") {\n if (opts.element instanceof HTMLElement) {\n opts.element.replaceWith(this.element);\n }\n } else {\n if (opts.element instanceof HTMLElement) {\n opts.element.replaceChildren(this.element);\n }\n }\n }\n }\n\n setProp(name: string, value: unknown) {\n if (isRef(this.componentProps[name])) {\n this.componentProps[name].value = value;\n } else {\n this.componentProps[name] = value;\n }\n }\n\n insert(parent: Element, anchor: Node | null = null) {\n if (this.isFragment) {\n if (this.start) {\n // Already inserted, moving\n let node: Node | null = this.start;\n let next: Node | null;\n\n while (node) {\n next = node.nextSibling;\n parent.insertBefore(node, anchor);\n\n if (node === this.end) {\n break;\n }\n\n node = next;\n }\n } else {\n this.start = new Text(\"\");\n this.end = new Text(\"\");\n\n parent.insertBefore(this.end, anchor);\n parent.insertBefore(this.start, this.end);\n parent.insertBefore(this.element, this.end);\n }\n } else {\n parent.insertBefore(this.element, anchor);\n }\n }\n\n remove() {\n if (this.parentContext) {\n const i = this.parentContext.blocks.indexOf(this);\n\n if (i > -1) {\n this.parentContext.blocks.splice(i, 1);\n }\n }\n\n if (this.start) {\n const parent = this.start.parentNode!;\n let node: Node | null = this.start;\n let next: Node | null;\n\n while (node) {\n next = node.nextSibling;\n parent.removeChild(node);\n\n if (node === this.end) {\n break;\n }\n\n node = next;\n }\n } else {\n this.element.remove();\n }\n\n this.teardown();\n }\n\n teardown() {\n this.context.blocks.forEach((block) => {\n block.teardown();\n });\n\n this.context.effects.forEach(stop);\n }\n}\n\nfunction isComponent(element: Element, context: Context) {\n return !!context.app.getComponent(element.tagName.toLowerCase());\n}\n\nfunction warnInvalidDirectives(node: Element, directives: string[]): boolean {\n if (directives.every((d) => node.hasAttribute(d))) {\n console.warn(`These directives cannot be used together on the same node:`, directives);\n console.warn(\"Node ignored:\", node);\n return true;\n }\n\n return false;\n}\n\nfunction walk(node: Node, context: Context) {\n if (isText(node)) {\n new InterpolationDirective({ element: node, context });\n return;\n }\n\n if (isElement(node)) {\n let exp: string | null;\n\n const handleDirectives = (node: Element, context: Context, component?: Component, componentProps?: Record, allProps?: any[]) => {\n if (warnInvalidDirectives(node, [\":if\", \":for\"])) return;\n if (warnInvalidDirectives(node, [\":for\", \":teleport\"])) return;\n if (warnInvalidDirectives(node, [\":if\", \":teleport\"])) return;\n\n // e.g.
\n // In this case, the scope is merged into context.scope and will overwrite\n // anything returned from `main`.\n if ((exp = checkAndRemoveAttribute(node, \":scope\"))) {\n const scope = evalGet(context.scope, exp, node);\n if (typeof scope === \"object\") {\n Object.assign(context.scope, scope);\n // context = createScopedContext(context, scope);\n }\n }\n\n if ((exp = checkAndRemoveAttribute(node, \":if\"))) {\n return _if(node, exp, context, component, componentProps, allProps);\n }\n if ((exp = checkAndRemoveAttribute(node, \":for\"))) {\n return _for(node, exp, context, component, componentProps, allProps);\n }\n if ((exp = checkAndRemoveAttribute(node, \":teleport\"))) {\n return _teleport(node, exp, context, component, componentProps, allProps);\n }\n if ((exp = checkAndRemoveAttribute(node, \":show\"))) {\n new ShowDirective({ element: node, context, expression: exp });\n }\n if ((exp = checkAndRemoveAttribute(node, \":ref\"))) {\n context.scope[exp].value = node;\n }\n if ((exp = checkAndRemoveAttribute(node, \":value\"))) {\n new ValueDirective({ element: node, context, expression: exp });\n }\n if ((exp = checkAndRemoveAttribute(node, \":html\"))) {\n const htmlExp = exp;\n\n context.effect(() => {\n const result = evalGet(context.scope, htmlExp, node);\n if (result instanceof Element) {\n node.replaceChildren();\n node.append(result);\n } else {\n node.innerHTML = result;\n }\n });\n }\n if ((exp = checkAndRemoveAttribute(node, \":text\"))) {\n const textExp = exp;\n\n context.effect(() => {\n node.textContent = toDisplayString(evalGet(context.scope, textExp, node));\n });\n }\n };\n\n const processAttributes = (node: Element, component?: Component) => {\n return Array.from(node.attributes)\n .filter((attr) => isSpreadProp(attr.name) || isMirrorProp(attr.name) || (isRegularProp(attr.name) && componentHasPropByName(extractPropName(attr.name), component)))\n .map((attr) => ({\n isMirror: isMirrorProp(attr.name),\n isSpread: isSpreadProp(attr.name),\n isBind: attr.name.includes(\"bind\"),\n originalName: attr.name,\n extractedName: extractPropName(attr.name),\n exp: attr.value,\n value: isMirrorProp(attr.name) ? evalGet(context.scope, extractPropName(attr.name), node) : attr.value ? evalGet(context.scope, attr.value, node) : undefined,\n }));\n };\n\n if (isComponent(node, context)) {\n const component = context.app.getComponent(node.tagName.toLowerCase());\n const allProps = processAttributes(node, component);\n\n const componentProps = allProps.reduce((acc, { isSpread, isMirror, extractedName, value }) => {\n if (isSpread) {\n const spread = evalGet(context.scope, extractedName, node);\n if (isObject(spread)) Object.assign(acc, spread);\n } else if (isMirror) {\n acc[extractedName] = evalGet(context.scope, extractedName, node);\n } else {\n acc[extractedName] = value;\n }\n return acc;\n }, {});\n\n const next = handleDirectives(node, context, component, componentProps, allProps);\n if (next) return next;\n\n const templates = findTemplateNodes(node);\n\n return new Block({\n element: node,\n app: current.componentBlock.context.app,\n // parentContext: context,\n component,\n replacementType: \"replace\",\n parentComponentBlock: current.componentBlock,\n templates,\n componentProps,\n allProps,\n }).element;\n }\n\n const next = handleDirectives(node, context);\n if (next) return next;\n\n Array.from(node.attributes).forEach((attr) => {\n if (isPropAttribute(attr.name)) {\n new AttributeDirective({ element: node, context, attr });\n }\n\n if (isEventAttribute(attr.name)) {\n new EventDirective({ element: node, context, attr });\n }\n });\n\n walkChildren(node, context);\n }\n}\n\nfunction walkChildren(node: Node, context: Context) {\n let child = node.firstChild;\n\n while (child) {\n child = walk(child, context) || child.nextSibling;\n }\n}\n\nconst evalFuncCache: Record = {};\n\nexport function evalGet(scope: any, exp: string, el?: Node) {\n if (!exp.trim()) return undefined;\n return execute(scope, `const ___value = (${exp.trim()}); return ___value;`, el);\n}\n\nexport function evalSet(scope: any, exp: string, value: unknown) {\n value = typeof value === \"string\" ? `\"${value}\"` : value;\n return execute(scope, `const ___target = (${exp.trim()}); return $isRef(___target) ? ___target.value = ${value} : ___target = ${value};`, null, false);\n}\n\nfunction execute(scope: any, exp: string, el?: Node, flatRefs = true) {\n const newScope = flatRefs ? flattenRefs(scope) : scope;\n const fn = evalFuncCache[exp] || (evalFuncCache[exp] = toFunction(exp));\n\n try {\n return fn(newScope, el);\n } catch (e) {\n console.warn(`Error evaluating expression: \"${exp}\":`);\n console.error(e);\n }\n}\n\n// Function to convert expression strings to functions\nfunction toFunction(exp: string) {\n try {\n return new Function(\"$data\", \"$el\", `with($data){${exp}}`);\n } catch (e) {\n console.error(`${(e as Error).message} in expression: ${exp}`);\n return () => {};\n }\n}\n\n// Map all ref properties in scope to their `.value`\nfunction flattenRefs(scope: any): any {\n const mapped = {};\n\n for (const key in scope) {\n if (scope.hasOwnProperty(key)) {\n // Check if the value is a Ref\n if (isRef(scope[key])) {\n mapped[key] = scope[key].value;\n } else {\n mapped[key] = scope[key];\n }\n }\n }\n return mapped;\n}\n", "import { App } from \".\";\nimport { computed } from \"./reactivity/computed\";\nimport { reactive } from \"./reactivity/reactive\";\nimport { ref } from \"./reactivity/ref\";\nimport { html } from \"./util\";\n\n// ------------------------------------------------\n// Slots, multiple default and named, :if and :for\n// const card = {\n// template: html`
\n//

\n// \n//
`,\n// };\n\n// const main = {\n// template: html`\n//
\n//

card below

\n// \n// card title\n// \n// \n//
\n// `,\n// };\n\n// const app = new App();\n// app.register(\"card\", card);\n// app.mount(main, \"#app\");\n\n// ------------------------------------------------\n// Slots, multiple default and named, :if and :for\n// const app = new App();\n\n// const parent = {\n// template: html`\n//
\n//

parent

\n// \n// \n//
\n//
\n//
1
\n//
2
\n//
3
\n//
\n//
\n// content 1 always shown\n//
\n// content 2, animals:\n//
animal: {{animal}}
\n//
\n\n// \n// \n//
\n//
\n// `,\n// main() {\n// const bool = ref(true);\n// const animals = reactive([\"dog\", \"cat\", \"bear\"]);\n\n// setInterval(() => {\n// bool.value = !bool.value;\n// }, 2000);\n\n// return { bool, animals };\n// },\n// };\n// const card = {\n// template: html`
\n//

card

\n//

\n// \n//
`,\n// };\n// app.register(\"card\", card);\n// const parentBlock = app.mount(parent, \"body\");\n// const cardBlock = parentBlock.context.blocks[0];\n\n// ------------------------------------------------\n// Component pros, mirror and spread, bind and no bind\n// const child = {\n// template: html`
Animal: {{animal}} {{index}}
`,\n// props: { animal: { default: \"cat\" }, index: { default: 0 } },\n// main({ animal, index }) {\n// return { animal, index };\n// },\n// };\n\n// const parent = {\n// template: html`\n//
\n// \n// mirror, no bind:\n// \n//
\n// mirror, bind:\n// \n//
\n// spread, no bind:\n// \n//
\n// spread, bind:\n// \n//
\n// regular prop:\n// \n//
\n// regular prop, bind:\n// \n//
\n//
div has \"id\" set to animal.value
\n//
\n//
div has \"id\" set and bound to animal.value
\n//
\n//
div has \"animal\" set to animal.value
\n//
\n//
div has \"animal\" set and bound to animal.value
\n//
\n//
div has \"animal\" spread
\n//
\n//
div has \"animal\" spread and bound
\n//
\n//
\n//
\n//
\n// if bool, mirror, no bind:\n// \n// if bool, mirror, bind:\n// \n//
\n// for list, mirror, no bind:\n// \n//
\n// for list, mirror, bind:\n// \n// if bool, for list, mirror, no bind: these have the value \"DOG!\" because by the time for :for directive is evaluated, animal.value is \"DOG!\", and no longer \"dog\".\n//
\n// \n//
\n//
\n// `,\n// main() {\n// const bool = ref(false);\n// const animal = ref(\"dog\");\n// const spread = reactive({ animal: \"panther\" });\n// const list = reactive([1, 2, 3]);\n\n// setTimeout(() => {\n// spread.animal = \"PANTHER!\";\n// animal.value = \"DOG!\";\n// bool.value = true;\n// }, 500);\n\n// setTimeout(() => {\n// animal.value = \"DOG!!!!!\";\n// }, 1000);\n\n// return { animal, spread, bool, list };\n// },\n// };\n\n// const app = new App();\n// app.register(\"child\", child);\n// app.mount(parent, \"#app\");\n\n// ------------------------------------------------\n// Event directive\n// const counter = {\n// template: html`\n//
\n//
\n//
true
\n//
\n//

Count: {{count}}{{count >= 2 ? '!!!' : ''}}

\n// \n// \n//
\n//
{{color}}
\n//
\n//
\n// `,\n// main() {\n// const count = ref(0);\n// const style = reactive({ color: \"gray\" });\n// const increment = () => count.value++;\n// const decrement = () => count.value--;\n\n// setInterval(() => {\n// style.color = style.color === \"gray\" ? \"white\" : \"gray\";\n// }, 500);\n\n// return { count, increment, decrement, style };\n// },\n// };\n\n// const app = new App();\n// app.mount(counter, \"#app\");\n\n// ------------------------------------------------\n// :if above :for\n// :if with :teleport\n// const main = {\n// template: html`\n//
\n//
\n//
\n//
{{item}}
\n//
\n//
\n//
\n//
if bool teleported! {{items}}
\n//
\n//
\n// `,\n// main() {\n// const items = reactive([1, 2, 3, 4, 5]);\n// const bool = ref(true);\n// setInterval(() => (bool.value = !bool.value), 250);\n// return { items, bool };\n// },\n// };\n\n// const app = new App();\n// app.mount(main, \"#app\");\n\n// ------------------------------------------------\n// :html\n// const main = {\n// template: html`
`,\n// main() {\n// const html = ref(\"

hello

\");\n\n// setTimeout(() => {\n// if (html.value === \"

hello

\") {\n// html.value = \"

world

\";\n// }\n// }, 1000);\n\n// return { html };\n// },\n// };\n\n// const app = new App();\n// app.mount(main, \"#app\");\n\n// ------------------------------------------------\n// Colors from css framework\nconst main = {\n template: html`\n
\n

phase

\n

Colors

\n \n
\n
\n
{{variant}}-{{rank}}
\n
\n
\n
\n
\n `,\n main() {\n const ranks = reactive([\"5\", \"10\", \"20\", \"30\", \"40\", \"50\", \"60\", \"70\", \"80\", \"90\"]);\n const basesReverse = computed(() => Array.from(ranks).reverse());\n const bg = (variant: string, rank: string, index: number) => ({ backgroundColor: `var(--${variant}-${rank})`, color: `var(--${variant}-${basesReverse.value[index]})` });\n\n return { ranks, bg };\n },\n};\n\nconst app = new App();\napp.mount(main, \"#app\");\n\n// ------------------------------------------------\n// :scope\n// const child = {\n// template: html`\n//
\n// I am child and I have food: \"{{food}}\" (does not inherit)\n//
\n// \n//
\n//
\n// `,\n// main() {\n// const food = ref(\"\uD83C\uDF54\");\n// return { food };\n// },\n// };\n\n// const main = {\n// template: html`\n//
\n//
\n//
Scoped food: {{food}} and scoped drink: {{drink}}
\n// Child slot, food: {{food}} {{drink}}\n//
\n//
\n// `,\n// main() {\n// return { food: ref(\"nothing\") };\n// },\n// };\n\n// const app = new App();\n// app.register(\"child\", child);\n// app.mount(main, \"#app\");\n\n// ------------------------------------------------\n// Practical :scope demo\n// const main = {\n// template: html`\n//
\n//
ON
\n//
OFF
\n// \n//
\n// `,\n// main() {\n// const onClick = () => {\n// console.log(\"ok\");\n// };\n//\n// return { onClick };\n// },\n// };\n//\n// const app = new App();\n// app.mount(main, \"#app\");\n\n// --------\n// weird issue\n// const child = {\n// template: html`
child{{thing}}
`,\n// props: { thing: { default: 1 }},\n// main({ thing }) {\n// return { thing };\n// }\n// };\n\n// const counter = {\n// template: html`\n//
\n//
\n//
{{color}}
\n//
\n// \n//
\n// `,\n// main() {\n// const colors = reactive([\"red\", \"green\"]);\n// return { colors };\n// },\n// };\n\n// const app = new App();\n// app.register(\"child\", child);\n// app.mount(counter, \"#app\");\n"], + "mappings": "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", "names": ["node", "element", "ctx", "ref", "i", "exp", "el", "effect", "stop", "ref", "ref", "value", "App", "app", "node", "context", "next", "App"] } diff --git a/public/index.css b/public/index.css index fb6e027..f89af8d 100644 --- a/public/index.css +++ b/public/index.css @@ -1 +1 @@ -:root{--amber-5:oklch(.99 .02 78);--amber-10:oklch(.97 .06 78);--amber-20:oklch(.94 .11 78);--amber-30:oklch(.91 .16 78);--amber-40:oklch(.86 .2 78);--amber-50:oklch(.79 .23 78);--amber-60:oklch(.72 .21 78);--amber-70:oklch(.62 .19 78);--amber-80:oklch(.51 .17 78);--amber-90:oklch(.38 .15 78);--amber-95:oklch(.23 .13 78);--blue-5:oklch(.99 .02 260);--blue-10:oklch(.92 .06 260);--blue-20:oklch(.85 .11 260);--blue-30:oklch(.78 .16 260);--blue-40:oklch(.71 .2 260);--blue-50:oklch(.64 .23 260);--blue-60:oklch(.56 .21 260);--blue-70:oklch(.48 .19 260);--blue-80:oklch(.40 .17 260);--blue-90:oklch(.32 .15 260);--blue-95:oklch(.24 .13 260);--cyan-5:oklch(.99 .02 205);--cyan-10:oklch(.94 .06 205);--cyan-20:oklch(.89 .11 205);--cyan-30:oklch(.83 .16 205);--cyan-40:oklch(.77 .2 205);--cyan-50:oklch(.70 .23 205);--cyan-60:oklch(.62 .21 205);--cyan-70:oklch(.54 .19 205);--cyan-80:oklch(.45 .17 205);--cyan-90:oklch(.34 .15 205);--cyan-95:oklch(.23 .13 205);--emerald-5:oklch(.99 .02 169);--emerald-10:oklch(.95 .06 169);--emerald-20:oklch(.91 .11 169);--emerald-30:oklch(.86 .16 169);--emerald-40:oklch(.81 .2 169);--emerald-50:oklch(.74 .23 169);--emerald-60:oklch(.66 .21 169);--emerald-70:oklch(.57 .19 169);--emerald-80:oklch(.47 .17 169);--emerald-90:oklch(.36 .15 169);--emerald-95:oklch(.23 .13 169);--fuchsia-5:oklch(.99 .02 322);--fuchsia-10:oklch(.93 .06 322);--fuchsia-20:oklch(.87 .11 322);--fuchsia-30:oklch(.80 .16 322);--fuchsia-40:oklch(.73 .2 322);--fuchsia-50:oklch(.66 .23 322);--fuchsia-60:oklch(.59 .21 322);--fuchsia-70:oklch(.51 .19 322);--fuchsia-80:oklch(.42 .17 322);--fuchsia-90:oklch(.33 .15 322);--fuchsia-95:oklch(.24 .13 322);--green-5:oklch(.99 .02 150);--green-10:oklch(.96 .06 150);--green-20:oklch(.93 .11 150);--green-30:oklch(.88 .16 150);--green-40:oklch(.83 .2 150);--green-50:oklch(.76 .23 150);--green-60:oklch(.68 .21 150);--green-70:oklch(.59 .19 150);--green-80:oklch(.49 .17 150);--green-90:oklch(.37 .15 150);--green-95:oklch(.23 .13 150);--indigo-5:oklch(.99 .02 275);--indigo-10:oklch(.92 .06 275);--indigo-20:oklch(.84 .11 275);--indigo-30:oklch(.77 .16 275);--indigo-40:oklch(.69 .2 275);--indigo-50:oklch(.62 .23 275);--indigo-60:oklch(.54 .21 275);--indigo-70:oklch(.47 .19 275);--indigo-80:oklch(.39 .17 275);--indigo-90:oklch(.32 .15 275);--indigo-95:oklch(.24 .13 275);--lavender-5:oklch(.99 .02 285);--lavender-10:oklch(.92 .06 285);--lavender-20:oklch(.84 .11 285);--lavender-30:oklch(.77 .16 285);--lavender-40:oklch(.69 .2 285);--lavender-50:oklch(.62 .23 285);--lavender-60:oklch(.54 .21 285);--lavender-70:oklch(.47 .19 285);--lavender-80:oklch(.39 .17 285);--lavender-90:oklch(.32 .15 285);--lavender-95:oklch(.24 .13 285);--lime-5:oklch(.99 .02 127);--lime-10:oklch(.97 .06 127);--lime-20:oklch(.94 .11 127);--lime-30:oklch(.90 .16 127);--lime-40:oklch(.85 .2 127);--lime-50:oklch(.79 .23 127);--lime-60:oklch(.71 .21 127);--lime-70:oklch(.62 .19 127);--lime-80:oklch(.50 .17 127);--lime-90:oklch(.38 .15 127);--lime-95:oklch(.23 .13 127);--orange-5:oklch(.99 .02 55);--orange-10:oklch(.96 .06 55);--orange-20:oklch(.93 .11 55);--orange-30:oklch(.89 .16 55);--orange-40:oklch(.83 .2 55);--orange-50:oklch(.77 .23 55);--orange-60:oklch(.69 .21 55);--orange-70:oklch(.60 .19 55);--orange-80:oklch(.49 .17 55);--orange-90:oklch(.37 .15 55);--orange-95:oklch(.23 .13 55);--peach-5:oklch(.99 .02 35);--peach-10:oklch(.96 .06 35);--peach-20:oklch(.92 .11 35);--peach-30:oklch(.87 .16 35);--peach-40:oklch(.81 .2 35);--peach-50:oklch(.75 .23 35);--peach-60:oklch(.67 .21 35);--peach-70:oklch(.58 .19 35);--peach-80:oklch(.48 .17 35);--peach-90:oklch(.36 .15 35);--peach-95:oklch(.23 .13 35);--pink-5:oklch(.99 .02 354);--pink-10:oklch(.94 .06 354);--pink-20:oklch(.89 .11 354);--pink-30:oklch(.83 .16 354);--pink-40:oklch(.77 .2 354);--pink-50:oklch(.70 .23 354);--pink-60:oklch(.62 .21 354);--pink-70:oklch(.54 .19 354);--pink-80:oklch(.44 .17 354);--pink-90:oklch(.34 .15 354);--pink-95:oklch(.23 .13 354);--plum-5:oklch(.99 .02 310);--plum-10:oklch(.93 .06 310);--plum-20:oklch(.86 .11 310);--plum-30:oklch(.79 .16 310);--plum-40:oklch(.72 .2 310);--plum-50:oklch(.65 .23 310);--plum-60:oklch(.57 .21 310);--plum-70:oklch(.49 .19 310);--plum-80:oklch(.41 .17 310);--plum-90:oklch(.33 .15 310);--plum-95:oklch(.24 .13 310);--purple-5:oklch(.99 .02 304);--purple-10:oklch(.92 .06 304);--purple-20:oklch(.86 .11 304);--purple-30:oklch(.79 .16 304);--purple-40:oklch(.71 .2 304);--purple-50:oklch(.64 .23 304);--purple-60:oklch(.57 .21 304);--purple-70:oklch(.49 .19 304);--purple-80:oklch(.41 .17 304);--purple-90:oklch(.32 .15 304);--purple-95:oklch(.24 .13 304);--red-5:oklch(.99 .02 25);--red-10:oklch(.95 .06 25);--red-20:oklch(.91 .11 25);--red-30:oklch(.86 .16 25);--red-40:oklch(.80 .2 25);--red-50:oklch(.73 .23 25);--red-60:oklch(.66 .21 25);--red-70:oklch(.57 .19 25);--red-80:oklch(.47 .17 25);--red-90:oklch(.36 .15 25);--red-95:oklch(.23 .13 25);--rose-5:oklch(.99 .02 17);--rose-10:oklch(.95 .06 17);--rose-20:oklch(.90 .11 17);--rose-30:oklch(.85 .16 17);--rose-40:oklch(.79 .2 17);--rose-50:oklch(.72 .23 17);--rose-60:oklch(.65 .21 17);--rose-70:oklch(.56 .19 17);--rose-80:oklch(.46 .17 17);--rose-90:oklch(.35 .15 17);--rose-95:oklch(.23 .13 17);--sky-5:oklch(.99 .02 225);--sky-10:oklch(.93 .06 225);--sky-20:oklch(.88 .11 225);--sky-30:oklch(.81 .16 225);--sky-40:oklch(.75 .2 225);--sky-50:oklch(.68 .23 225);--sky-60:oklch(.60 .21 225);--sky-70:oklch(.52 .19 225);--sky-80:oklch(.43 .17 225);--sky-90:oklch(.34 .15 225);--sky-95:oklch(.24 .13 225);--teal-5:oklch(.99 .02 185);--teal-10:oklch(.95 .06 185);--teal-20:oklch(.90 .11 185);--teal-30:oklch(.85 .16 185);--teal-40:oklch(.79 .2 185);--teal-50:oklch(.72 .23 185);--teal-60:oklch(.65 .21 185);--teal-70:oklch(.56 .19 185);--teal-80:oklch(.46 .17 185);--teal-90:oklch(.35 .15 185);--teal-95:oklch(.23 .13 185);--violet-5:oklch(.99 .02 293);--violet-10:oklch(.92 .06 293);--violet-20:oklch(.85 .11 293);--violet-30:oklch(.78 .16 293);--violet-40:oklch(.70 .2 293);--violet-50:oklch(.63 .23 293);--violet-60:oklch(.55 .21 293);--violet-70:oklch(.48 .19 293);--violet-80:oklch(.40 .17 293);--violet-90:oklch(.32 .15 293);--violet-95:oklch(.24 .13 293);--yellow-5:oklch(.99 .02 98);--yellow-10:oklch(.98 .06 98);--yellow-20:oklch(.96 .11 98);--yellow-30:oklch(.93 .16 98);--yellow-40:oklch(.88 .2 98);--yellow-50:oklch(.82 .23 98);--yellow-60:oklch(.74 .21 98);--yellow-70:oklch(.64 .19 98);--yellow-80:oklch(.52 .17 98);--yellow-90:oklch(.39 .15 98);--yellow-95:oklch(.23 .13 98)}.border-color-5{border-color:light-dark(var( --base-90 ),var( --base-5 ))}.border-color-10{border-color:light-dark(var( --base-80 ),var( --base-10 ))}.border-color-20{border-color:light-dark(var( --base-70 ),var( --base-20 ))}.border-color-30{border-color:light-dark(var( --base-60 ),var( --base-30 ))}.border-color-40{border-color:light-dark(var( --base-50 ),var( --base-40 ))}.border-color-50{border-color:light-dark(var( --base-40 ),var( --base-50 ))}.border-color-60{border-color:light-dark(var( --base-30 ),var( --base-60 ))}.border-color-70{border-color:light-dark(var( --base-20 ),var( --base-70 ))}.border-color-80{border-color:light-dark(var( --base-10 ),var( --base-80 ))}.border-color-90{border-color:light-dark(var( --base-5 ),var( --base-90 ))}.border-1px{border-width:1px}.border-2px{border-width:2px}.border-3px{border-width:3px}.border-4px{border-width:4px}.border-5px{border-width:5px}.border-radius-0{border-radius:0}.border-radius-0_125{border-radius:.125rem}.border-radius-0_25{border-radius:.25rem}.border-radius-0_5{border-radius:.5rem}.border-radius-0_625{border-radius:.625rem}.border-radius-0_75{border-radius:.75rem}.border-radius-1{border-radius:1rem}.border-radius-full{border-radius:100%}.border-top-left-radius-0{border-top-left-radius:0}.border-top-left-radius-0_125{border-top-left-radius:.125rem}.border-top-left-radius-0_25{border-top-left-radius:.25rem}.border-top-left-radius-0_5{border-top-left-radius:.5rem}.border-top-left-radius-0_625{border-top-left-radius:.625rem}.border-top-left-radius-0_75{border-top-left-radius:.75rem}.border-top-left-radius-1{border-top-left-radius:1rem}.border-top-left-radius-full{border-top-left-radius:100%}.border-top-right-radius-0{border-top-right-radius:0}.border-top-right-radius-0_125{border-top-right-radius:.125rem}.border-top-right-radius-0_25{border-top-right-radius:.25rem}.border-top-right-radius-0_5{border-top-right-radius:.5rem}.border-top-right-radius-0_625{border-top-right-radius:.625rem}.border-top-right-radius-0_75{border-top-right-radius:.75rem}.border-top-right-radius-1{border-top-right-radius:1rem}.border-top-right-radius-full{border-top-right-radius:100%}.border-bottom-left-radius-0{border-bottom-left-radius:0}.border-bottom-left-radius-0_125{border-bottom-left-radius:.125rem}.border-bottom-left-radius-0_25{border-bottom-left-radius:.25rem}.border-bottom-left-radius-0_5{border-bottom-left-radius:.5rem}.border-bottom-left-radius-0_625{border-bottom-left-radius:.625rem}.border-bottom-left-radius-0_75{border-bottom-left-radius:.75rem}.border-bottom-left-radius-1{border-bottom-left-radius:1rem}.border-bottom-left-radius-full{border-bottom-left-radius:100%}.border-bottom-right-radius-0{border-bottom-right-radius:0}.border-bottom-right-radius-0_125{border-bottom-right-radius:.125rem}.border-bottom-right-radius-0_25{border-bottom-right-radius:.25rem}.border-bottom-right-radius-0_5{border-bottom-right-radius:.5rem}.border-bottom-right-radius-0_625{border-bottom-right-radius:.625rem}.border-bottom-right-radius-0_75{border-bottom-right-radius:.75rem}.border-bottom-right-radius-1{border-bottom-right-radius:1rem}.border-bottom-right-radius-full{border-bottom-right-radius:100%}.border-top-radius-0{border-top-left-radius:0;border-top-right-radius:0}.border-top-radius-0_125{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.border-top-radius-0_25{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border-top-radius-0_625{border-top-left-radius:.625rem;border-top-right-radius:.625rem}.border-top-radius-0_5{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border-top-radius-0_75{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.border-top-radius-1{border-top-left-radius:1rem;border-top-right-radius:1rem}.border-top-radius-full{border-top-left-radius:100%;border-top-right-radius:100%}.border-right-radius-0{border-bottom-right-radius:0;border-top-right-radius:0}.border-right-radius-0_125{border-bottom-right-radius:.125rem;border-top-right-radius:.125rem}.border-right-radius-0_25{border-bottom-right-radius:.25rem;border-top-right-radius:.25rem}.border-right-radius-0_625{border-bottom-right-radius:.625rem;border-top-right-radius:.625rem}.border-right-radius-0_5{border-bottom-right-radius:.5rem;border-top-right-radius:.5rem}.border-right-radius-0_75{border-bottom-right-radius:.75rem;border-top-right-radius:.75rem}.border-right-radius-1{border-bottom-right-radius:1rem;border-top-right-radius:1rem}.border-right-radius-full{border-bottom-right-radius:100%;border-top-right-radius:100%}.border-bottom-radius-0{border-bottom-left-radius:0;border-bottom-right-radius:0}.border-bottom-radius-0_125{border-bottom-left-radius:.125rem;border-bottom-right-radius:.125rem}.border-bottom-radius-0_25{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.border-bottom-radius-0_5{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.border-bottom-radius-0_625{border-bottom-left-radius:.625rem;border-bottom-right-radius:.625rem}.border-bottom-radius-0_75{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.border-bottom-radius-1{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.border-bottom-radius-full{border-bottom-left-radius:100%;border-bottom-right-radius:100%}.border-left-radius-0{border-bottom-left-radius:0;border-top-left-radius:0}.border-left-radius-0_125{border-bottom-left-radius:.125rem;border-top-left-radius:.125rem}.border-left-radius-0_25{border-bottom-left-radius:.25rem;border-top-left-radius:.25rem}.border-left-radius-0_5{border-bottom-left-radius:.5rem;border-top-left-radius:.5rem}.border-left-radius-0_625{border-bottom-left-radius:.625rem;border-top-left-radius:.625rem}.border-left-radius-0_75{border-bottom-left-radius:.75rem;border-top-left-radius:.75rem}.border-left-radius-1{border-bottom-left-radius:1rem;border-top-left-radius:1rem}.border-left-radius-full{border-bottom-left-radius:100%;border-top-left-radius:100%}.border-radius-1px{border-radius:1px}.border-radius-2px{border-radius:2px}.border-radius-3px{border-radius:3px}.border-radius-4px{border-radius:4px}.border-radius-5px{border-radius:5px}.border-radius-6px{border-radius:6px}.border-radius-7px{border-radius:7px}.border-radius-8px{border-radius:8px}.border-radius-9px{border-radius:9px}.border-radius-10px{border-radius:10px}.border-radius-11px{border-radius:11px}.border-radius-12px{border-radius:12px}.border-radius-13px{border-radius:13px}.border-radius-14px{border-radius:14px}.border-radius-15px{border-radius:15px}.border-radius-16px{border-radius:16px}.border-radius-17px{border-radius:17px}.border-radius-18px{border-radius:18px}.border-radius-19px{border-radius:19px}.border-radius-20px{border-radius:20px}.border-top-left-radius-1px{border-top-left-radius:1px}.border-top-left-radius-2px{border-top-left-radius:2px}.border-top-left-radius-3px{border-top-left-radius:3px}.border-top-left-radius-4px{border-top-left-radius:4px}.border-top-left-radius-5px{border-top-left-radius:5px}.border-top-left-radius-6px{border-top-left-radius:6px}.border-top-left-radius-7px{border-top-left-radius:7px}.border-top-left-radius-8px{border-top-left-radius:8px}.border-top-left-radius-9px{border-top-left-radius:9px}.border-top-left-radius-10px{border-top-left-radius:10px}.border-top-left-radius-11px{border-top-left-radius:11px}.border-top-left-radius-12px{border-top-left-radius:12px}.border-top-left-radius-13px{border-top-left-radius:13px}.border-top-left-radius-14px{border-top-left-radius:14px}.border-top-left-radius-15px{border-top-left-radius:15px}.border-top-left-radius-16px{border-top-left-radius:16px}.border-top-left-radius-17px{border-top-left-radius:17px}.border-top-left-radius-18px{border-top-left-radius:18px}.border-top-left-radius-19px{border-top-left-radius:19px}.border-top-left-radius-20px{border-top-left-radius:20px}.border-top-right-radius-1px{border-top-right-radius:1px}.border-top-right-radius-2px{border-top-right-radius:2px}.border-top-right-radius-3px{border-top-right-radius:3px}.border-top-right-radius-4px{border-top-right-radius:4px}.border-top-right-radius-5px{border-top-right-radius:5px}.border-top-right-radius-6px{border-top-right-radius:6px}.border-top-right-radius-7px{border-top-right-radius:7px}.border-top-right-radius-8px{border-top-right-radius:8px}.border-top-right-radius-9px{border-top-right-radius:9px}.border-top-right-radius-10px{border-top-right-radius:10px}.border-top-right-radius-11px{border-top-right-radius:11px}.border-top-right-radius-12px{border-top-right-radius:12px}.border-top-right-radius-13px{border-top-right-radius:13px}.border-top-right-radius-14px{border-top-right-radius:14px}.border-top-right-radius-15px{border-top-right-radius:15px}.border-top-right-radius-16px{border-top-right-radius:16px}.border-top-right-radius-17px{border-top-right-radius:17px}.border-top-right-radius-18px{border-top-right-radius:18px}.border-top-right-radius-19px{border-top-right-radius:19px}.border-top-right-radius-20px{border-top-right-radius:20px}.border-bottom-left-radius-1px{border-bottom-left-radius:1px}.border-bottom-left-radius-2px{border-bottom-left-radius:2px}.border-bottom-left-radius-3px{border-bottom-left-radius:3px}.border-bottom-left-radius-4px{border-bottom-left-radius:4px}.border-bottom-left-radius-5px{border-bottom-left-radius:5px}.border-bottom-left-radius-6px{border-bottom-left-radius:6px}.border-bottom-left-radius-7px{border-bottom-left-radius:7px}.border-bottom-left-radius-8px{border-bottom-left-radius:8px}.border-bottom-left-radius-9px{border-bottom-left-radius:9px}.border-bottom-left-radius-10px{border-bottom-left-radius:10px}.border-bottom-left-radius-11px{border-bottom-left-radius:11px}.border-bottom-left-radius-12px{border-bottom-left-radius:12px}.border-bottom-left-radius-13px{border-bottom-left-radius:13px}.border-bottom-left-radius-14px{border-bottom-left-radius:14px}.border-bottom-left-radius-15px{border-bottom-left-radius:15px}.border-bottom-left-radius-16px{border-bottom-left-radius:16px}.border-bottom-left-radius-17px{border-bottom-left-radius:17px}.border-bottom-left-radius-18px{border-bottom-left-radius:18px}.border-bottom-left-radius-19px{border-bottom-left-radius:19px}.border-bottom-left-radius-20px{border-bottom-left-radius:20px}.border-bottom-right-radius-1px{border-bottom-right-radius:1px}.border-bottom-right-radius-2px{border-bottom-right-radius:2px}.border-bottom-right-radius-3px{border-bottom-right-radius:3px}.border-bottom-right-radius-4px{border-bottom-right-radius:4px}.border-bottom-right-radius-5px{border-bottom-right-radius:5px}.border-bottom-right-radius-6px{border-bottom-right-radius:6px}.border-bottom-right-radius-7px{border-bottom-right-radius:7px}.border-bottom-right-radius-8px{border-bottom-right-radius:8px}.border-bottom-right-radius-9px{border-bottom-right-radius:9px}.border-bottom-right-radius-10px{border-bottom-right-radius:10px}.border-bottom-right-radius-11px{border-bottom-right-radius:11px}.border-bottom-right-radius-12px{border-bottom-right-radius:12px}.border-bottom-right-radius-13px{border-bottom-right-radius:13px}.border-bottom-right-radius-14px{border-bottom-right-radius:14px}.border-bottom-right-radius-15px{border-bottom-right-radius:15px}.border-bottom-right-radius-16px{border-bottom-right-radius:16px}.border-bottom-right-radius-17px{border-bottom-right-radius:17px}.border-bottom-right-radius-18px{border-bottom-right-radius:18px}.border-bottom-right-radius-19px{border-bottom-right-radius:19px}.border-bottom-right-radius-20px{border-bottom-right-radius:20px}.border-top-radius-1px{border-top-left-radius:1px;border-top-right-radius:1px}.border-top-radius-2px{border-top-left-radius:2px;border-top-right-radius:2px}.border-top-radius-3px{border-top-left-radius:3px;border-top-right-radius:3px}.border-top-radius-4px{border-top-left-radius:4px;border-top-right-radius:4px}.border-top-radius-5px{border-top-left-radius:5px;border-top-right-radius:5px}.border-top-radius-6px{border-top-left-radius:6px;border-top-right-radius:6px}.border-top-radius-7px{border-top-left-radius:7px;border-top-right-radius:7px}.border-top-radius-8px{border-top-left-radius:8px;border-top-right-radius:8px}.border-top-radius-9px{border-top-left-radius:9px;border-top-right-radius:9px}.border-top-radius-10px{border-top-left-radius:10px;border-top-right-radius:10px}.border-top-radius-11px{border-top-left-radius:11px;border-top-right-radius:11px}.border-top-radius-12px{border-top-left-radius:12px;border-top-right-radius:12px}.border-top-radius-13px{border-top-left-radius:13px;border-top-right-radius:13px}.border-top-radius-14px{border-top-left-radius:14px;border-top-right-radius:14px}.border-top-radius-15px{border-top-left-radius:15px;border-top-right-radius:15px}.border-top-radius-16px{border-top-left-radius:16px;border-top-right-radius:16px}.border-top-radius-17px{border-top-left-radius:17px;border-top-right-radius:17px}.border-top-radius-18px{border-top-left-radius:18px;border-top-right-radius:18px}.border-top-radius-19px{border-top-left-radius:19px;border-top-right-radius:19px}.border-top-radius-20px{border-top-left-radius:20px;border-top-right-radius:20px}.border-right-radius-1px{border-bottom-right-radius:1px;border-top-right-radius:1px}.border-right-radius-2px{border-bottom-right-radius:2px;border-top-right-radius:2px}.border-right-radius-3px{border-bottom-right-radius:3px;border-top-right-radius:3px}.border-right-radius-4px{border-bottom-right-radius:4px;border-top-right-radius:4px}.border-right-radius-5px{border-bottom-right-radius:5px;border-top-right-radius:5px}.border-right-radius-6px{border-bottom-right-radius:6px;border-top-right-radius:6px}.border-right-radius-7px{border-bottom-right-radius:7px;border-top-right-radius:7px}.border-right-radius-8px{border-bottom-right-radius:8px;border-top-right-radius:8px}.border-right-radius-9px{border-bottom-right-radius:9px;border-top-right-radius:9px}.border-right-radius-10px{border-bottom-right-radius:10px;border-top-right-radius:10px}.border-right-radius-11px{border-bottom-right-radius:11px;border-top-right-radius:11px}.border-right-radius-12px{border-bottom-right-radius:12px;border-top-right-radius:12px}.border-right-radius-13px{border-bottom-right-radius:13px;border-top-right-radius:13px}.border-right-radius-14px{border-bottom-right-radius:14px;border-top-right-radius:14px}.border-right-radius-15px{border-bottom-right-radius:15px;border-top-right-radius:15px}.border-right-radius-16px{border-bottom-right-radius:16px;border-top-right-radius:16px}.border-right-radius-17px{border-bottom-right-radius:17px;border-top-right-radius:17px}.border-right-radius-18px{border-bottom-right-radius:18px;border-top-right-radius:18px}.border-right-radius-19px{border-bottom-right-radius:19px;border-top-right-radius:19px}.border-right-radius-20px{border-bottom-right-radius:20px;border-top-right-radius:20px}.border-bottom-radius-1px{border-bottom-left-radius:1px;border-bottom-right-radius:1px}.border-bottom-radius-2px{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.border-bottom-radius-3px{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.border-bottom-radius-4px{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.border-bottom-radius-5px{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.border-bottom-radius-6px{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.border-bottom-radius-7px{border-bottom-left-radius:7px;border-bottom-right-radius:7px}.border-bottom-radius-8px{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.border-bottom-radius-9px{border-bottom-left-radius:9px;border-bottom-right-radius:9px}.border-bottom-radius-10px{border-bottom-left-radius:10px;border-bottom-right-radius:10px}.border-bottom-radius-11px{border-bottom-left-radius:11px;border-bottom-right-radius:11px}.border-bottom-radius-12px{border-bottom-left-radius:12px;border-bottom-right-radius:12px}.border-bottom-radius-13px{border-bottom-left-radius:13px;border-bottom-right-radius:13px}.border-bottom-radius-14px{border-bottom-left-radius:14px;border-bottom-right-radius:14px}.border-bottom-radius-15px{border-bottom-left-radius:15px;border-bottom-right-radius:15px}.border-bottom-radius-16px{border-bottom-left-radius:16px;border-bottom-right-radius:16px}.border-bottom-radius-17px{border-bottom-left-radius:17px;border-bottom-right-radius:17px}.border-bottom-radius-18px{border-bottom-left-radius:18px;border-bottom-right-radius:18px}.border-bottom-radius-19px{border-bottom-left-radius:19px;border-bottom-right-radius:19px}.border-bottom-radius-20px{border-bottom-left-radius:20px;border-bottom-right-radius:20px}.border-left-radius-1px{border-bottom-left-radius:1px;border-top-left-radius:1px}.border-left-radius-2px{border-bottom-left-radius:2px;border-top-left-radius:2px}.border-left-radius-3px{border-bottom-left-radius:3px;border-top-left-radius:3px}.border-left-radius-4px{border-bottom-left-radius:4px;border-top-left-radius:4px}.border-left-radius-5px{border-bottom-left-radius:5px;border-top-left-radius:5px}.border-left-radius-6px{border-bottom-left-radius:6px;border-top-left-radius:6px}.border-left-radius-7px{border-bottom-left-radius:7px;border-top-left-radius:7px}.border-left-radius-8px{border-bottom-left-radius:8px;border-top-left-radius:8px}.border-left-radius-9px{border-bottom-left-radius:9px;border-top-left-radius:9px}.border-left-radius-10px{border-bottom-left-radius:10px;border-top-left-radius:10px}.border-left-radius-11px{border-bottom-left-radius:11px;border-top-left-radius:11px}.border-left-radius-12px{border-bottom-left-radius:12px;border-top-left-radius:12px}.border-left-radius-13px{border-bottom-left-radius:13px;border-top-left-radius:13px}.border-left-radius-14px{border-bottom-left-radius:14px;border-top-left-radius:14px}.border-left-radius-15px{border-bottom-left-radius:15px;border-top-left-radius:15px}.border-left-radius-16px{border-bottom-left-radius:16px;border-top-left-radius:16px}.border-left-radius-17px{border-bottom-left-radius:17px;border-top-left-radius:17px}.border-left-radius-18px{border-bottom-left-radius:18px;border-top-left-radius:18px}.border-left-radius-19px{border-bottom-left-radius:19px;border-top-left-radius:19px}.border-left-radius-20px{border-bottom-left-radius:20px;border-top-left-radius:20px}.container{margin:0 auto;max-width:90rem;padding:0 1rem;width:100%}.hero{align-content:center;min-height:100vh;text-align:center}.debug *{outline:1px solid gold}.display-none{display:none}.display-inline{display:inline}.display-block{display:block}.display-inline-block{display:inline-block}.display-inline-table{display:inline-table}.display-table{display:table}.display-table-cell{display:table-cell}.display-table-row{display:table-row}.display-table-row-group{display:table-row-group}.display-table-column{display:table-column}.display-table-column-group{display:table-column-group}.table-layout-fixed{table-layout:fixed;width:100%}.display-flex{display:flex}.display-inline-flex{display:inline-flex}.flex-direction-row{flex-direction:row}.flex-direction-row-reverse{flex-direction:row-reverse}.flex-direction-column{flex-direction:column}.flex-direction-column-reverse{flex-direction:column-reverse}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto;min-height:0;min-width:0}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.flex-wrap-wrap{flex-wrap:wrap}.flex-wrap-nowrap{flex-wrap:nowrap}.flex-wrap-wrap-reverse{flex-wrap:wrap-reverse}.align-items-flex-start{align-items:flex-start}.align-items-flex-end{align-items:flex-end}.align-items-center{align-items:center}.align-items-baseline{align-items:baseline}.align-items-stretch{align-items:stretch}.align-self-flex-start{align-self:flex-start}.align-self-flex-end{align-self:flex-end}.align-self-center{align-self:center}.align-self-baseline{align-self:baseline}.align-self-stretch{align-self:stretch}.justify-content-flex-start{justify-content:flex-start}.justify-content-flex-end{justify-content:flex-end}.justify-content-center{justify-content:center}.justify-content-space-between{justify-content:space-between}.justify-content-space-around{justify-content:space-around}.align-content-flex-start{align-content:flex-start}.align-content-flex-end{align-content:flex-end}.align-content-center{align-content:center}.align-content-space-between{align-content:space-between}.align-content-space-around{align-content:space-around}.align-content-stretch{align-content:stretch}.flex-grow-1{flex-grow:1}.flex-grow-0{flex-grow:0}.sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica neue,helvetica,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.serif{font-family:georgia,times,serif}.font-weight-1{font-weight:100}.font-weight-2{font-weight:200}.font-weight-3{font-weight:300}.font-weight-4{font-weight:400}.font-weight-5{font-weight:500}.font-weight-6{font-weight:600}.font-weight-7{font-weight:700}.font-weight-8{font-weight:800}.font-weight-9{font-weight:900}.font-weight-b{font-weight:700}.line-height-1{line-height:1}.line-height-1_25{line-height:1.25}.line-height-1_5{line-height:1.5}.line-height-1_75{line-height:1.75}.line-height-2{line-height:2}.line-height-2_25{line-height:2.25}.line-height-2_5{line-height:2.5}.line-height-2_75{line-height:2.75}.line-height-3{line-height:3}.copy{line-height:1.5}.list-style-type-none{list-style-type:none}.list-style-type-disc{list-style-type:disc}.list-style-type-decimal{list-style-type:decimal}.list-style-type-lower-roman{list-style-type:lower-roman}.list-style-type-upper-roman{list-style-type:upper-roman}.list-style-type-lower-alpha{list-style-type:lower-alpha}.list-style-type-upper-alpha{list-style-type:upper-alpha}.list-style-type-circle{list-style-type:circle}.margin-1px{margin:1px}.margin-2px{margin:2px}.margin-3px{margin:3px}.margin-4px{margin:4px}.margin-5px{margin:5px}.margin-6px{margin:6px}.margin-7px{margin:7px}.margin-8px{margin:8px}.margin-9px{margin:9px}.margin-10px{margin:10px}.margin-0{margin:0}.margin-0_25{margin:.25rem}.margin-0_5{margin:.5rem}.margin-0_75{margin:.75rem}.margin-1{margin:1rem}.margin-1_25{margin:1.25rem}.margin-1_5{margin:1.5rem}.margin-1_75{margin:1.75rem}.margin-2{margin:2rem}.margin-2_25{margin:2.25rem}.margin-2_5{margin:2.5rem}.margin-2_75{margin:2.75rem}.margin-3{margin:3rem}.margin-3_25{margin:3.25rem}.margin-3_5{margin:3.5rem}.margin-3_75{margin:3.75rem}.margin-4{margin:4rem}.margin-4_25{margin:4.25rem}.margin-4_5{margin:4.5rem}.margin-4_75{margin:4.75rem}.margin-5{margin:5rem}.margin-5_25{margin:5.25rem}.margin-5_5{margin:5.5rem}.margin-5_75{margin:5.75rem}.margin-6{margin:6rem}.margin-6_25{margin:6.25rem}.margin-6_5{margin:6.5rem}.margin-6_75{margin:6.75rem}.margin-7{margin:7rem}.margin-7_25{margin:7.25rem}.margin-7_5{margin:7.5rem}.margin-7_75{margin:7.75rem}.margin-8{margin:8rem}.margin-8_25{margin:8.25rem}.margin-8_5{margin:8.5rem}.margin-8_75{margin:8.75rem}.margin-9{margin:9rem}.margin-9_25{margin:9.25rem}.margin-9_5{margin:9.5rem}.margin-9_75{margin:9.75rem}.margin-10{margin:10rem}.margin-10_25{margin:10.25rem}.margin-10_5{margin:10.5rem}.margin-10_75{margin:10.75rem}.margin-11{margin:11rem}.margin-11_25{margin:11.25rem}.margin-11_5{margin:11.5rem}.margin-11_75{margin:11.75rem}.margin-12{margin:12rem}.margin-12_25{margin:12.25rem}.margin-12_5{margin:12.5rem}.margin-12_75{margin:12.75rem}.margin-13{margin:13rem}.margin-13_25{margin:13.25rem}.margin-13_5{margin:13.5rem}.margin-13_75{margin:13.75rem}.margin-14{margin:14rem}.margin-14_25{margin:14.25rem}.margin-14_5{margin:14.5rem}.margin-14_75{margin:14.75rem}.margin-15{margin:15rem}.margin-15_25{margin:15.25rem}.margin-15_5{margin:15.5rem}.margin-15_75{margin:15.75rem}.margin-16{margin:16rem}.margin-16_25{margin:16.25rem}.margin-16_5{margin:16.5rem}.margin-16_75{margin:16.75rem}.margin-17{margin:17rem}.margin-17_25{margin:17.25rem}.margin-17_5{margin:17.5rem}.margin-17_75{margin:17.75rem}.margin-18{margin:18rem}.margin-18_25{margin:18.25rem}.margin-18_5{margin:18.5rem}.margin-18_75{margin:18.75rem}.margin-19{margin:19rem}.margin-19_25{margin:19.25rem}.margin-19_5{margin:19.5rem}.margin-19_75{margin:19.75rem}.margin-20{margin:20rem}.margin-auto{margin:auto}.margin-top-1px{margin-top:1px}.margin-top-2px{margin-top:2px}.margin-top-3px{margin-top:3px}.margin-top-4px{margin-top:4px}.margin-top-5px{margin-top:5px}.margin-top-6px{margin-top:6px}.margin-top-7px{margin-top:7px}.margin-top-8px{margin-top:8px}.margin-top-9px{margin-top:9px}.margin-top-10px{margin-top:10px}.margin-top-0{margin-top:0}.margin-top-0_25{margin-top:.25rem}.margin-top-0_5{margin-top:.5rem}.margin-top-0_75{margin-top:.75rem}.margin-top-1{margin-top:1rem}.margin-top-1_25{margin-top:1.25rem}.margin-top-1_5{margin-top:1.5rem}.margin-top-1_75{margin-top:1.75rem}.margin-top-2{margin-top:2rem}.margin-top-2_25{margin-top:2.25rem}.margin-top-2_5{margin-top:2.5rem}.margin-top-2_75{margin-top:2.75rem}.margin-top-3{margin-top:3rem}.margin-top-3_25{margin-top:3.25rem}.margin-top-3_5{margin-top:3.5rem}.margin-top-3_75{margin-top:3.75rem}.margin-top-4{margin-top:4rem}.margin-top-4_25{margin-top:4.25rem}.margin-top-4_5{margin-top:4.5rem}.margin-top-4_75{margin-top:4.75rem}.margin-top-5{margin-top:5rem}.margin-top-5_25{margin-top:5.25rem}.margin-top-5_5{margin-top:5.5rem}.margin-top-5_75{margin-top:5.75rem}.margin-top-6{margin-top:6rem}.margin-top-6_25{margin-top:6.25rem}.margin-top-6_5{margin-top:6.5rem}.margin-top-6_75{margin-top:6.75rem}.margin-top-7{margin-top:7rem}.margin-top-7_25{margin-top:7.25rem}.margin-top-7_5{margin-top:7.5rem}.margin-top-7_75{margin-top:7.75rem}.margin-top-8{margin-top:8rem}.margin-top-8_25{margin-top:8.25rem}.margin-top-8_5{margin-top:8.5rem}.margin-top-8_75{margin-top:8.75rem}.margin-top-9{margin-top:9rem}.margin-top-9_25{margin-top:9.25rem}.margin-top-9_5{margin-top:9.5rem}.margin-top-9_75{margin-top:9.75rem}.margin-top-10{margin-top:10rem}.margin-top-10_25{margin-top:10.25rem}.margin-top-10_5{margin-top:10.5rem}.margin-top-10_75{margin-top:10.75rem}.margin-top-11{margin-top:11rem}.margin-top-11_25{margin-top:11.25rem}.margin-top-11_5{margin-top:11.5rem}.margin-top-11_75{margin-top:11.75rem}.margin-top-12{margin-top:12rem}.margin-top-12_25{margin-top:12.25rem}.margin-top-12_5{margin-top:12.5rem}.margin-top-12_75{margin-top:12.75rem}.margin-top-13{margin-top:13rem}.margin-top-13_25{margin-top:13.25rem}.margin-top-13_5{margin-top:13.5rem}.margin-top-13_75{margin-top:13.75rem}.margin-top-14{margin-top:14rem}.margin-top-14_25{margin-top:14.25rem}.margin-top-14_5{margin-top:14.5rem}.margin-top-14_75{margin-top:14.75rem}.margin-top-15{margin-top:15rem}.margin-top-15_25{margin-top:15.25rem}.margin-top-15_5{margin-top:15.5rem}.margin-top-15_75{margin-top:15.75rem}.margin-top-16{margin-top:16rem}.margin-top-16_25{margin-top:16.25rem}.margin-top-16_5{margin-top:16.5rem}.margin-top-16_75{margin-top:16.75rem}.margin-top-17{margin-top:17rem}.margin-top-17_25{margin-top:17.25rem}.margin-top-17_5{margin-top:17.5rem}.margin-top-17_75{margin-top:17.75rem}.margin-top-18{margin-top:18rem}.margin-top-18_25{margin-top:18.25rem}.margin-top-18_5{margin-top:18.5rem}.margin-top-18_75{margin-top:18.75rem}.margin-top-19{margin-top:19rem}.margin-top-19_25{margin-top:19.25rem}.margin-top-19_5{margin-top:19.5rem}.margin-top-19_75{margin-top:19.75rem}.margin-top-20{margin-top:20rem}.margin-top-auto{margin-top:auto}.margin-right-1px{margin-right:1px}.margin-right-2px{margin-right:2px}.margin-right-3px{margin-right:3px}.margin-right-4px{margin-right:4px}.margin-right-5px{margin-right:5px}.margin-right-6px{margin-right:6px}.margin-right-7px{margin-right:7px}.margin-right-8px{margin-right:8px}.margin-right-9px{margin-right:9px}.margin-right-10px{margin-right:10px}.margin-right-0{margin-right:0}.margin-right-0_25{margin-right:.25rem}.margin-right-0_5{margin-right:.5rem}.margin-right-0_75{margin-right:.75rem}.margin-right-1{margin-right:1rem}.margin-right-1_25{margin-right:1.25rem}.margin-right-1_5{margin-right:1.5rem}.margin-right-1_75{margin-right:1.75rem}.margin-right-2{margin-right:2rem}.margin-right-2_25{margin-right:2.25rem}.margin-right-2_5{margin-right:2.5rem}.margin-right-2_75{margin-right:2.75rem}.margin-right-3{margin-right:3rem}.margin-right-3_25{margin-right:3.25rem}.margin-right-3_5{margin-right:3.5rem}.margin-right-3_75{margin-right:3.75rem}.margin-right-4{margin-right:4rem}.margin-right-4_25{margin-right:4.25rem}.margin-right-4_5{margin-right:4.5rem}.margin-right-4_75{margin-right:4.75rem}.margin-right-5{margin-right:5rem}.margin-right-5_25{margin-right:5.25rem}.margin-right-5_5{margin-right:5.5rem}.margin-right-5_75{margin-right:5.75rem}.margin-right-6{margin-right:6rem}.margin-right-6_25{margin-right:6.25rem}.margin-right-6_5{margin-right:6.5rem}.margin-right-6_75{margin-right:6.75rem}.margin-right-7{margin-right:7rem}.margin-right-7_25{margin-right:7.25rem}.margin-right-7_5{margin-right:7.5rem}.margin-right-7_75{margin-right:7.75rem}.margin-right-8{margin-right:8rem}.margin-right-8_25{margin-right:8.25rem}.margin-right-8_5{margin-right:8.5rem}.margin-right-8_75{margin-right:8.75rem}.margin-right-9{margin-right:9rem}.margin-right-9_25{margin-right:9.25rem}.margin-right-9_5{margin-right:9.5rem}.margin-right-9_75{margin-right:9.75rem}.margin-right-10{margin-right:10rem}.margin-right-10_25{margin-right:10.25rem}.margin-right-10_5{margin-right:10.5rem}.margin-right-10_75{margin-right:10.75rem}.margin-right-11{margin-right:11rem}.margin-right-11_25{margin-right:11.25rem}.margin-right-11_5{margin-right:11.5rem}.margin-right-11_75{margin-right:11.75rem}.margin-right-12{margin-right:12rem}.margin-right-12_25{margin-right:12.25rem}.margin-right-12_5{margin-right:12.5rem}.margin-right-12_75{margin-right:12.75rem}.margin-right-13{margin-right:13rem}.margin-right-13_25{margin-right:13.25rem}.margin-right-13_5{margin-right:13.5rem}.margin-right-13_75{margin-right:13.75rem}.margin-right-14{margin-right:14rem}.margin-right-14_25{margin-right:14.25rem}.margin-right-14_5{margin-right:14.5rem}.margin-right-14_75{margin-right:14.75rem}.margin-right-15{margin-right:15rem}.margin-right-15_25{margin-right:15.25rem}.margin-right-15_5{margin-right:15.5rem}.margin-right-15_75{margin-right:15.75rem}.margin-right-16{margin-right:16rem}.margin-right-16_25{margin-right:16.25rem}.margin-right-16_5{margin-right:16.5rem}.margin-right-16_75{margin-right:16.75rem}.margin-right-17{margin-right:17rem}.margin-right-17_25{margin-right:17.25rem}.margin-right-17_5{margin-right:17.5rem}.margin-right-17_75{margin-right:17.75rem}.margin-right-18{margin-right:18rem}.margin-right-18_25{margin-right:18.25rem}.margin-right-18_5{margin-right:18.5rem}.margin-right-18_75{margin-right:18.75rem}.margin-right-19{margin-right:19rem}.margin-right-19_25{margin-right:19.25rem}.margin-right-19_5{margin-right:19.5rem}.margin-right-19_75{margin-right:19.75rem}.margin-right-20{margin-right:20rem}.margin-right-auto{margin-right:auto}.margin-bottom-1px{margin-bottom:1px}.margin-bottom-2px{margin-bottom:2px}.margin-bottom-3px{margin-bottom:3px}.margin-bottom-4px{margin-bottom:4px}.margin-bottom-5px{margin-bottom:5px}.margin-bottom-6px{margin-bottom:6px}.margin-bottom-7px{margin-bottom:7px}.margin-bottom-8px{margin-bottom:8px}.margin-bottom-9px{margin-bottom:9px}.margin-bottom-10px{margin-bottom:10px}.margin-bottom-0{margin-bottom:0}.margin-bottom-0_25{margin-bottom:.25rem}.margin-bottom-0_5{margin-bottom:.5rem}.margin-bottom-0_75{margin-bottom:.75rem}.margin-bottom-1{margin-bottom:1rem}.margin-bottom-1_25{margin-bottom:1.25rem}.margin-bottom-1_5{margin-bottom:1.5rem}.margin-bottom-1_75{margin-bottom:1.75rem}.margin-bottom-2{margin-bottom:2rem}.margin-bottom-2_25{margin-bottom:2.25rem}.margin-bottom-2_5{margin-bottom:2.5rem}.margin-bottom-2_75{margin-bottom:2.75rem}.margin-bottom-3{margin-bottom:3rem}.margin-bottom-3_25{margin-bottom:3.25rem}.margin-bottom-3_5{margin-bottom:3.5rem}.margin-bottom-3_75{margin-bottom:3.75rem}.margin-bottom-4{margin-bottom:4rem}.margin-bottom-4_25{margin-bottom:4.25rem}.margin-bottom-4_5{margin-bottom:4.5rem}.margin-bottom-4_75{margin-bottom:4.75rem}.margin-bottom-5{margin-bottom:5rem}.margin-bottom-5_25{margin-bottom:5.25rem}.margin-bottom-5_5{margin-bottom:5.5rem}.margin-bottom-5_75{margin-bottom:5.75rem}.margin-bottom-6{margin-bottom:6rem}.margin-bottom-6_25{margin-bottom:6.25rem}.margin-bottom-6_5{margin-bottom:6.5rem}.margin-bottom-6_75{margin-bottom:6.75rem}.margin-bottom-7{margin-bottom:7rem}.margin-bottom-7_25{margin-bottom:7.25rem}.margin-bottom-7_5{margin-bottom:7.5rem}.margin-bottom-7_75{margin-bottom:7.75rem}.margin-bottom-8{margin-bottom:8rem}.margin-bottom-8_25{margin-bottom:8.25rem}.margin-bottom-8_5{margin-bottom:8.5rem}.margin-bottom-8_75{margin-bottom:8.75rem}.margin-bottom-9{margin-bottom:9rem}.margin-bottom-9_25{margin-bottom:9.25rem}.margin-bottom-9_5{margin-bottom:9.5rem}.margin-bottom-9_75{margin-bottom:9.75rem}.margin-bottom-10{margin-bottom:10rem}.margin-bottom-10_25{margin-bottom:10.25rem}.margin-bottom-10_5{margin-bottom:10.5rem}.margin-bottom-10_75{margin-bottom:10.75rem}.margin-bottom-11{margin-bottom:11rem}.margin-bottom-11_25{margin-bottom:11.25rem}.margin-bottom-11_5{margin-bottom:11.5rem}.margin-bottom-11_75{margin-bottom:11.75rem}.margin-bottom-12{margin-bottom:12rem}.margin-bottom-12_25{margin-bottom:12.25rem}.margin-bottom-12_5{margin-bottom:12.5rem}.margin-bottom-12_75{margin-bottom:12.75rem}.margin-bottom-13{margin-bottom:13rem}.margin-bottom-13_25{margin-bottom:13.25rem}.margin-bottom-13_5{margin-bottom:13.5rem}.margin-bottom-13_75{margin-bottom:13.75rem}.margin-bottom-14{margin-bottom:14rem}.margin-bottom-14_25{margin-bottom:14.25rem}.margin-bottom-14_5{margin-bottom:14.5rem}.margin-bottom-14_75{margin-bottom:14.75rem}.margin-bottom-15{margin-bottom:15rem}.margin-bottom-15_25{margin-bottom:15.25rem}.margin-bottom-15_5{margin-bottom:15.5rem}.margin-bottom-15_75{margin-bottom:15.75rem}.margin-bottom-16{margin-bottom:16rem}.margin-bottom-16_25{margin-bottom:16.25rem}.margin-bottom-16_5{margin-bottom:16.5rem}.margin-bottom-16_75{margin-bottom:16.75rem}.margin-bottom-17{margin-bottom:17rem}.margin-bottom-17_25{margin-bottom:17.25rem}.margin-bottom-17_5{margin-bottom:17.5rem}.margin-bottom-17_75{margin-bottom:17.75rem}.margin-bottom-18{margin-bottom:18rem}.margin-bottom-18_25{margin-bottom:18.25rem}.margin-bottom-18_5{margin-bottom:18.5rem}.margin-bottom-18_75{margin-bottom:18.75rem}.margin-bottom-19{margin-bottom:19rem}.margin-bottom-19_25{margin-bottom:19.25rem}.margin-bottom-19_5{margin-bottom:19.5rem}.margin-bottom-19_75{margin-bottom:19.75rem}.margin-bottom-20{margin-bottom:20rem}.margin-bottom-auto{margin-bottom:auto}.margin-left-1px{margin-left:1px}.margin-left-2px{margin-left:2px}.margin-left-3px{margin-left:3px}.margin-left-4px{margin-left:4px}.margin-left-5px{margin-left:5px}.margin-left-6px{margin-left:6px}.margin-left-7px{margin-left:7px}.margin-left-8px{margin-left:8px}.margin-left-9px{margin-left:9px}.margin-left-10px{margin-left:10px}.margin-left-0{margin-left:0}.margin-left-0_25{margin-left:.25rem}.margin-left-0_5{margin-left:.5rem}.margin-left-0_75{margin-left:.75rem}.margin-left-1{margin-left:1rem}.margin-left-1_25{margin-left:1.25rem}.margin-left-1_5{margin-left:1.5rem}.margin-left-1_75{margin-left:1.75rem}.margin-left-2{margin-left:2rem}.margin-left-2_25{margin-left:2.25rem}.margin-left-2_5{margin-left:2.5rem}.margin-left-2_75{margin-left:2.75rem}.margin-left-3{margin-left:3rem}.margin-left-3_25{margin-left:3.25rem}.margin-left-3_5{margin-left:3.5rem}.margin-left-3_75{margin-left:3.75rem}.margin-left-4{margin-left:4rem}.margin-left-4_25{margin-left:4.25rem}.margin-left-4_5{margin-left:4.5rem}.margin-left-4_75{margin-left:4.75rem}.margin-left-5{margin-left:5rem}.margin-left-5_25{margin-left:5.25rem}.margin-left-5_5{margin-left:5.5rem}.margin-left-5_75{margin-left:5.75rem}.margin-left-6{margin-left:6rem}.margin-left-6_25{margin-left:6.25rem}.margin-left-6_5{margin-left:6.5rem}.margin-left-6_75{margin-left:6.75rem}.margin-left-7{margin-left:7rem}.margin-left-7_25{margin-left:7.25rem}.margin-left-7_5{margin-left:7.5rem}.margin-left-7_75{margin-left:7.75rem}.margin-left-8{margin-left:8rem}.margin-left-8_25{margin-left:8.25rem}.margin-left-8_5{margin-left:8.5rem}.margin-left-8_75{margin-left:8.75rem}.margin-left-9{margin-left:9rem}.margin-left-9_25{margin-left:9.25rem}.margin-left-9_5{margin-left:9.5rem}.margin-left-9_75{margin-left:9.75rem}.margin-left-10{margin-left:10rem}.margin-left-10_25{margin-left:10.25rem}.margin-left-10_5{margin-left:10.5rem}.margin-left-10_75{margin-left:10.75rem}.margin-left-11{margin-left:11rem}.margin-left-11_25{margin-left:11.25rem}.margin-left-11_5{margin-left:11.5rem}.margin-left-11_75{margin-left:11.75rem}.margin-left-12{margin-left:12rem}.margin-left-12_25{margin-left:12.25rem}.margin-left-12_5{margin-left:12.5rem}.margin-left-12_75{margin-left:12.75rem}.margin-left-13{margin-left:13rem}.margin-left-13_25{margin-left:13.25rem}.margin-left-13_5{margin-left:13.5rem}.margin-left-13_75{margin-left:13.75rem}.margin-left-14{margin-left:14rem}.margin-left-14_25{margin-left:14.25rem}.margin-left-14_5{margin-left:14.5rem}.margin-left-14_75{margin-left:14.75rem}.margin-left-15{margin-left:15rem}.margin-left-15_25{margin-left:15.25rem}.margin-left-15_5{margin-left:15.5rem}.margin-left-15_75{margin-left:15.75rem}.margin-left-16{margin-left:16rem}.margin-left-16_25{margin-left:16.25rem}.margin-left-16_5{margin-left:16.5rem}.margin-left-16_75{margin-left:16.75rem}.margin-left-17{margin-left:17rem}.margin-left-17_25{margin-left:17.25rem}.margin-left-17_5{margin-left:17.5rem}.margin-left-17_75{margin-left:17.75rem}.margin-left-18{margin-left:18rem}.margin-left-18_25{margin-left:18.25rem}.margin-left-18_5{margin-left:18.5rem}.margin-left-18_75{margin-left:18.75rem}.margin-left-19{margin-left:19rem}.margin-left-19_25{margin-left:19.25rem}.margin-left-19_5{margin-left:19.5rem}.margin-left-19_75{margin-left:19.75rem}.margin-left-20{margin-left:20rem}.margin-left-auto{margin-left:auto}.margin-x-1px{margin-left:1px;margin-right:1px}.margin-x-2px{margin-left:2px;margin-right:2px}.margin-x-3px{margin-left:3px;margin-right:3px}.margin-x-4px{margin-left:4px;margin-right:4px}.margin-x-5px{margin-left:5px;margin-right:5px}.margin-x-6px{margin-left:6px;margin-right:6px}.margin-x-7px{margin-left:7px;margin-right:7px}.margin-x-8px{margin-left:8px;margin-right:8px}.margin-x-9px{margin-left:9px;margin-right:9px}.margin-x-10px{margin-left:10px;margin-right:10px}.margin-x-0{margin-left:0;margin-right:0}.margin-x-0_25{margin-left:.25rem;margin-right:.25rem}.margin-x-0_5{margin-left:.5rem;margin-right:.5rem}.margin-x-0_75{margin-left:.75rem;margin-right:.75rem}.margin-x-1{margin-left:1rem;margin-right:1rem}.margin-x-1_25{margin-left:1.25rem;margin-right:1.25rem}.margin-x-1_5{margin-left:1.5rem;margin-right:1.5rem}.margin-x-1_75{margin-left:1.75rem;margin-right:1.75rem}.margin-x-2{margin-left:2rem;margin-right:2rem}.margin-x-2_25{margin-left:2.25rem;margin-right:2.25rem}.margin-x-2_5{margin-left:2.5rem;margin-right:2.5rem}.margin-x-2_75{margin-left:2.75rem;margin-right:2.75rem}.margin-x-3{margin-left:3rem;margin-right:3rem}.margin-x-3_25{margin-left:3.25rem;margin-right:3.25rem}.margin-x-3_5{margin-left:3.5rem;margin-right:3.5rem}.margin-x-3_75{margin-left:3.75rem;margin-right:3.75rem}.margin-x-4{margin-left:4rem;margin-right:4rem}.margin-x-4_25{margin-left:4.25rem;margin-right:4.25rem}.margin-x-4_5{margin-left:4.5rem;margin-right:4.5rem}.margin-x-4_75{margin-left:4.75rem;margin-right:4.75rem}.margin-x-5{margin-left:5rem;margin-right:5rem}.margin-x-5_25{margin-left:5.25rem;margin-right:5.25rem}.margin-x-5_5{margin-left:5.5rem;margin-right:5.5rem}.margin-x-5_75{margin-left:5.75rem;margin-right:5.75rem}.margin-x-6{margin-left:6rem;margin-right:6rem}.margin-x-6_25{margin-left:6.25rem;margin-right:6.25rem}.margin-x-6_5{margin-left:6.5rem;margin-right:6.5rem}.margin-x-6_75{margin-left:6.75rem;margin-right:6.75rem}.margin-x-7{margin-left:7rem;margin-right:7rem}.margin-x-7_25{margin-left:7.25rem;margin-right:7.25rem}.margin-x-7_5{margin-left:7.5rem;margin-right:7.5rem}.margin-x-7_75{margin-left:7.75rem;margin-right:7.75rem}.margin-x-8{margin-left:8rem;margin-right:8rem}.margin-x-8_25{margin-left:8.25rem;margin-right:8.25rem}.margin-x-8_5{margin-left:8.5rem;margin-right:8.5rem}.margin-x-8_75{margin-left:8.75rem;margin-right:8.75rem}.margin-x-9{margin-left:9rem;margin-right:9rem}.margin-x-9_25{margin-left:9.25rem;margin-right:9.25rem}.margin-x-9_5{margin-left:9.5rem;margin-right:9.5rem}.margin-x-9_75{margin-left:9.75rem;margin-right:9.75rem}.margin-x-10{margin-left:10rem;margin-right:10rem}.margin-x-10_25{margin-left:10.25rem;margin-right:10.25rem}.margin-x-10_5{margin-left:10.5rem;margin-right:10.5rem}.margin-x-10_75{margin-left:10.75rem;margin-right:10.75rem}.margin-x-11{margin-left:11rem;margin-right:11rem}.margin-x-11_25{margin-left:11.25rem;margin-right:11.25rem}.margin-x-11_5{margin-left:11.5rem;margin-right:11.5rem}.margin-x-11_75{margin-left:11.75rem;margin-right:11.75rem}.margin-x-12{margin-left:12rem;margin-right:12rem}.margin-x-12_25{margin-left:12.25rem;margin-right:12.25rem}.margin-x-12_5{margin-left:12.5rem;margin-right:12.5rem}.margin-x-12_75{margin-left:12.75rem;margin-right:12.75rem}.margin-x-13{margin-left:13rem;margin-right:13rem}.margin-x-13_25{margin-left:13.25rem;margin-right:13.25rem}.margin-x-13_5{margin-left:13.5rem;margin-right:13.5rem}.margin-x-13_75{margin-left:13.75rem;margin-right:13.75rem}.margin-x-14{margin-left:14rem;margin-right:14rem}.margin-x-14_25{margin-left:14.25rem;margin-right:14.25rem}.margin-x-14_5{margin-left:14.5rem;margin-right:14.5rem}.margin-x-14_75{margin-left:14.75rem;margin-right:14.75rem}.margin-x-15{margin-left:15rem;margin-right:15rem}.margin-x-15_25{margin-left:15.25rem;margin-right:15.25rem}.margin-x-15_5{margin-left:15.5rem;margin-right:15.5rem}.margin-x-15_75{margin-left:15.75rem;margin-right:15.75rem}.margin-x-16{margin-left:16rem;margin-right:16rem}.margin-x-16_25{margin-left:16.25rem;margin-right:16.25rem}.margin-x-16_5{margin-left:16.5rem;margin-right:16.5rem}.margin-x-16_75{margin-left:16.75rem;margin-right:16.75rem}.margin-x-17{margin-left:17rem;margin-right:17rem}.margin-x-17_25{margin-left:17.25rem;margin-right:17.25rem}.margin-x-17_5{margin-left:17.5rem;margin-right:17.5rem}.margin-x-17_75{margin-left:17.75rem;margin-right:17.75rem}.margin-x-18{margin-left:18rem;margin-right:18rem}.margin-x-18_25{margin-left:18.25rem;margin-right:18.25rem}.margin-x-18_5{margin-left:18.5rem;margin-right:18.5rem}.margin-x-18_75{margin-left:18.75rem;margin-right:18.75rem}.margin-x-19{margin-left:19rem;margin-right:19rem}.margin-x-19_25{margin-left:19.25rem;margin-right:19.25rem}.margin-x-19_5{margin-left:19.5rem;margin-right:19.5rem}.margin-x-19_75{margin-left:19.75rem;margin-right:19.75rem}.margin-x-20{margin-left:20rem;margin-right:20rem}.margin-x-auto{margin-left:auto;margin-right:auto}.margin-y-1px{margin-bottom:1px;margin-top:1px}.margin-y-2px{margin-bottom:2px;margin-top:2px}.margin-y-3px{margin-bottom:3px;margin-top:3px}.margin-y-4px{margin-bottom:4px;margin-top:4px}.margin-y-5px{margin-bottom:5px;margin-top:5px}.margin-y-6px{margin-bottom:6px;margin-top:6px}.margin-y-7px{margin-bottom:7px;margin-top:7px}.margin-y-8px{margin-bottom:8px;margin-top:8px}.margin-y-9px{margin-bottom:9px;margin-top:9px}.margin-y-10px{margin-bottom:10px;margin-top:10px}.margin-y-0{margin-bottom:0;margin-top:0}.margin-y-0_25{margin-bottom:.25rem;margin-top:.25rem}.margin-y-0_5{margin-bottom:.5rem;margin-top:.5rem}.margin-y-0_75{margin-bottom:.75rem;margin-top:.75rem}.margin-y-1{margin-bottom:1rem;margin-top:1rem}.margin-y-1_25{margin-bottom:1.25rem;margin-top:1.25rem}.margin-y-1_5{margin-bottom:1.5rem;margin-top:1.5rem}.margin-y-1_75{margin-bottom:1.75rem;margin-top:1.75rem}.margin-y-2{margin-bottom:2rem;margin-top:2rem}.margin-y-2_25{margin-bottom:2.25rem;margin-top:2.25rem}.margin-y-2_5{margin-bottom:2.5rem;margin-top:2.5rem}.margin-y-2_75{margin-bottom:2.75rem;margin-top:2.75rem}.margin-y-3{margin-bottom:3rem;margin-top:3rem}.margin-y-3_25{margin-bottom:3.25rem;margin-top:3.25rem}.margin-y-3_5{margin-bottom:3.5rem;margin-top:3.5rem}.margin-y-3_75{margin-bottom:3.75rem;margin-top:3.75rem}.margin-y-4{margin-bottom:4rem;margin-top:4rem}.margin-y-4_25{margin-bottom:4.25rem;margin-top:4.25rem}.margin-y-4_5{margin-bottom:4.5rem;margin-top:4.5rem}.margin-y-4_75{margin-bottom:4.75rem;margin-top:4.75rem}.margin-y-5{margin-bottom:5rem;margin-top:5rem}.margin-y-5_25{margin-bottom:5.25rem;margin-top:5.25rem}.margin-y-5_5{margin-bottom:5.5rem;margin-top:5.5rem}.margin-y-5_75{margin-bottom:5.75rem;margin-top:5.75rem}.margin-y-6{margin-bottom:6rem;margin-top:6rem}.margin-y-6_25{margin-bottom:6.25rem;margin-top:6.25rem}.margin-y-6_5{margin-bottom:6.5rem;margin-top:6.5rem}.margin-y-6_75{margin-bottom:6.75rem;margin-top:6.75rem}.margin-y-7{margin-bottom:7rem;margin-top:7rem}.margin-y-7_25{margin-bottom:7.25rem;margin-top:7.25rem}.margin-y-7_5{margin-bottom:7.5rem;margin-top:7.5rem}.margin-y-7_75{margin-bottom:7.75rem;margin-top:7.75rem}.margin-y-8{margin-bottom:8rem;margin-top:8rem}.margin-y-8_25{margin-bottom:8.25rem;margin-top:8.25rem}.margin-y-8_5{margin-bottom:8.5rem;margin-top:8.5rem}.margin-y-8_75{margin-bottom:8.75rem;margin-top:8.75rem}.margin-y-9{margin-bottom:9rem;margin-top:9rem}.margin-y-9_25{margin-bottom:9.25rem;margin-top:9.25rem}.margin-y-9_5{margin-bottom:9.5rem;margin-top:9.5rem}.margin-y-9_75{margin-bottom:9.75rem;margin-top:9.75rem}.margin-y-10{margin-bottom:10rem;margin-top:10rem}.margin-y-10_25{margin-bottom:10.25rem;margin-top:10.25rem}.margin-y-10_5{margin-bottom:10.5rem;margin-top:10.5rem}.margin-y-10_75{margin-bottom:10.75rem;margin-top:10.75rem}.margin-y-11{margin-bottom:11rem;margin-top:11rem}.margin-y-11_25{margin-bottom:11.25rem;margin-top:11.25rem}.margin-y-11_5{margin-bottom:11.5rem;margin-top:11.5rem}.margin-y-11_75{margin-bottom:11.75rem;margin-top:11.75rem}.margin-y-12{margin-bottom:12rem;margin-top:12rem}.margin-y-12_25{margin-bottom:12.25rem;margin-top:12.25rem}.margin-y-12_5{margin-bottom:12.5rem;margin-top:12.5rem}.margin-y-12_75{margin-bottom:12.75rem;margin-top:12.75rem}.margin-y-13{margin-bottom:13rem;margin-top:13rem}.margin-y-13_25{margin-bottom:13.25rem;margin-top:13.25rem}.margin-y-13_5{margin-bottom:13.5rem;margin-top:13.5rem}.margin-y-13_75{margin-bottom:13.75rem;margin-top:13.75rem}.margin-y-14{margin-bottom:14rem;margin-top:14rem}.margin-y-14_25{margin-bottom:14.25rem;margin-top:14.25rem}.margin-y-14_5{margin-bottom:14.5rem;margin-top:14.5rem}.margin-y-14_75{margin-bottom:14.75rem;margin-top:14.75rem}.margin-y-15{margin-bottom:15rem;margin-top:15rem}.margin-y-15_25{margin-bottom:15.25rem;margin-top:15.25rem}.margin-y-15_5{margin-bottom:15.5rem;margin-top:15.5rem}.margin-y-15_75{margin-bottom:15.75rem;margin-top:15.75rem}.margin-y-16{margin-bottom:16rem;margin-top:16rem}.margin-y-16_25{margin-bottom:16.25rem;margin-top:16.25rem}.margin-y-16_5{margin-bottom:16.5rem;margin-top:16.5rem}.margin-y-16_75{margin-bottom:16.75rem;margin-top:16.75rem}.margin-y-17{margin-bottom:17rem;margin-top:17rem}.margin-y-17_25{margin-bottom:17.25rem;margin-top:17.25rem}.margin-y-17_5{margin-bottom:17.5rem;margin-top:17.5rem}.margin-y-17_75{margin-bottom:17.75rem;margin-top:17.75rem}.margin-y-18{margin-bottom:18rem;margin-top:18rem}.margin-y-18_25{margin-bottom:18.25rem;margin-top:18.25rem}.margin-y-18_5{margin-bottom:18.5rem;margin-top:18.5rem}.margin-y-18_75{margin-bottom:18.75rem;margin-top:18.75rem}.margin-y-19{margin-bottom:19rem;margin-top:19rem}.margin-y-19_25{margin-bottom:19.25rem;margin-top:19.25rem}.margin-y-19_5{margin-bottom:19.5rem;margin-top:19.5rem}.margin-y-19_75{margin-bottom:19.75rem;margin-top:19.75rem}.margin-y-20{margin-bottom:20rem;margin-top:20rem}.margin-y-auto{margin-bottom:auto;margin-top:auto}.max-width-1{max-width:1rem}.max-width-2{max-width:2rem}.max-width-3{max-width:3rem}.max-width-4{max-width:4rem}.max-width-5{max-width:5rem}.max-width-6{max-width:6rem}.max-width-7{max-width:7rem}.max-width-8{max-width:8rem}.max-width-9{max-width:9rem}.max-width-10{max-width:10rem}.max-width-11{max-width:11rem}.max-width-12{max-width:12rem}.max-width-13{max-width:13rem}.max-width-14{max-width:14rem}.max-width-15{max-width:15rem}.max-width-16{max-width:16rem}.max-width-17{max-width:17rem}.max-width-18{max-width:18rem}.max-width-19{max-width:19rem}.max-width-20{max-width:20rem}.max-width-21{max-width:21rem}.max-width-22{max-width:22rem}.max-width-23{max-width:23rem}.max-width-24{max-width:24rem}.max-width-25{max-width:25rem}.max-width-26{max-width:26rem}.max-width-27{max-width:27rem}.max-width-28{max-width:28rem}.max-width-29{max-width:29rem}.max-width-30{max-width:30rem}.max-width-31{max-width:31rem}.max-width-32{max-width:32rem}.max-width-33{max-width:33rem}.max-width-34{max-width:34rem}.max-width-35{max-width:35rem}.max-width-36{max-width:36rem}.max-width-37{max-width:37rem}.max-width-38{max-width:38rem}.max-width-39{max-width:39rem}.max-width-40{max-width:40rem}.max-width-41{max-width:41rem}.max-width-42{max-width:42rem}.max-width-43{max-width:43rem}.max-width-44{max-width:44rem}.max-width-45{max-width:45rem}.max-width-46{max-width:46rem}.max-width-47{max-width:47rem}.max-width-48{max-width:48rem}.max-width-49{max-width:49rem}.max-width-50{max-width:50rem}.max-width-51{max-width:51rem}.max-width-52{max-width:52rem}.max-width-53{max-width:53rem}.max-width-54{max-width:54rem}.max-width-55{max-width:55rem}.max-width-56{max-width:56rem}.max-width-57{max-width:57rem}.max-width-58{max-width:58rem}.max-width-59{max-width:59rem}.max-width-60{max-width:60rem}.max-width-61{max-width:61rem}.max-width-62{max-width:62rem}.max-width-63{max-width:63rem}.max-width-64{max-width:64rem}.max-width-1p{max-width:1%}.max-width-2p{max-width:2%}.max-width-3p{max-width:3%}.max-width-4p{max-width:4%}.max-width-5p{max-width:5%}.max-width-6p{max-width:6%}.max-width-7p{max-width:7%}.max-width-8p{max-width:8%}.max-width-9p{max-width:9%}.max-width-10p{max-width:10%}.max-width-11p{max-width:11%}.max-width-12p{max-width:12%}.max-width-13p{max-width:13%}.max-width-14p{max-width:14%}.max-width-15p{max-width:15%}.max-width-16p{max-width:16%}.max-width-17p{max-width:17%}.max-width-18p{max-width:18%}.max-width-19p{max-width:19%}.max-width-20p{max-width:20%}.max-width-21p{max-width:21%}.max-width-22p{max-width:22%}.max-width-23p{max-width:23%}.max-width-24p{max-width:24%}.max-width-25p{max-width:25%}.max-width-26p{max-width:26%}.max-width-27p{max-width:27%}.max-width-28p{max-width:28%}.max-width-29p{max-width:29%}.max-width-30p{max-width:30%}.max-width-31p{max-width:31%}.max-width-32p{max-width:32%}.max-width-33p{max-width:33%}.max-width-34p{max-width:34%}.max-width-35p{max-width:35%}.max-width-36p{max-width:36%}.max-width-37p{max-width:37%}.max-width-38p{max-width:38%}.max-width-39p{max-width:39%}.max-width-40p{max-width:40%}.max-width-41p{max-width:41%}.max-width-42p{max-width:42%}.max-width-43p{max-width:43%}.max-width-44p{max-width:44%}.max-width-45p{max-width:45%}.max-width-46p{max-width:46%}.max-width-47p{max-width:47%}.max-width-48p{max-width:48%}.max-width-49p{max-width:49%}.max-width-50p{max-width:50%}.max-width-51p{max-width:51%}.max-width-52p{max-width:52%}.max-width-53p{max-width:53%}.max-width-54p{max-width:54%}.max-width-55p{max-width:55%}.max-width-56p{max-width:56%}.max-width-57p{max-width:57%}.max-width-58p{max-width:58%}.max-width-59p{max-width:59%}.max-width-60p{max-width:60%}.max-width-61p{max-width:61%}.max-width-62p{max-width:62%}.max-width-63p{max-width:63%}.max-width-64p{max-width:64%}.max-width-65p{max-width:65%}.max-width-66p{max-width:66%}.max-width-67p{max-width:67%}.max-width-68p{max-width:68%}.max-width-69p{max-width:69%}.max-width-70p{max-width:70%}.max-width-71p{max-width:71%}.max-width-72p{max-width:72%}.max-width-73p{max-width:73%}.max-width-74p{max-width:74%}.max-width-75p{max-width:75%}.max-width-76p{max-width:76%}.max-width-77p{max-width:77%}.max-width-78p{max-width:78%}.max-width-79p{max-width:79%}.max-width-80p{max-width:80%}.max-width-81p{max-width:81%}.max-width-82p{max-width:82%}.max-width-83p{max-width:83%}.max-width-84p{max-width:84%}.max-width-85p{max-width:85%}.max-width-86p{max-width:86%}.max-width-87p{max-width:87%}.max-width-88p{max-width:88%}.max-width-89p{max-width:89%}.max-width-90p{max-width:90%}.max-width-91p{max-width:91%}.max-width-92p{max-width:92%}.max-width-93p{max-width:93%}.max-width-94p{max-width:94%}.max-width-95p{max-width:95%}.max-width-96p{max-width:96%}.max-width-97p{max-width:97%}.max-width-98p{max-width:98%}.max-width-99p{max-width:99%}.max-width-100p,.max-width-full{max-width:100%}.max-width-auto{max-width:auto}.max-width-third{max-width:33.33333%}.max-width-two-thirds{max-width:66.66667%}.overflow-visible{overflow:visible}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-auto{overflow:auto}.overflow-x-visible{overflow-x:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-visible{overflow-y:visible}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-auto{overflow-y:auto}.padding-1px{padding:1px}.padding-2px{padding:2px}.padding-3px{padding:3px}.padding-4px{padding:4px}.padding-5px{padding:5px}.padding-6px{padding:6px}.padding-7px{padding:7px}.padding-8px{padding:8px}.padding-9px{padding:9px}.padding-10px{padding:10px}.padding-0{padding:0}.padding-0_25{padding:.25rem}.padding-0_5{padding:.5rem}.padding-0_75{padding:.75rem}.padding-1{padding:1rem}.padding-1_25{padding:1.25rem}.padding-1_5{padding:1.5rem}.padding-1_75{padding:1.75rem}.padding-2{padding:2rem}.padding-2_25{padding:2.25rem}.padding-2_5{padding:2.5rem}.padding-2_75{padding:2.75rem}.padding-3{padding:3rem}.padding-3_25{padding:3.25rem}.padding-3_5{padding:3.5rem}.padding-3_75{padding:3.75rem}.padding-4{padding:4rem}.padding-4_25{padding:4.25rem}.padding-4_5{padding:4.5rem}.padding-4_75{padding:4.75rem}.padding-5{padding:5rem}.padding-5_25{padding:5.25rem}.padding-5_5{padding:5.5rem}.padding-5_75{padding:5.75rem}.padding-6{padding:6rem}.padding-6_25{padding:6.25rem}.padding-6_5{padding:6.5rem}.padding-6_75{padding:6.75rem}.padding-7{padding:7rem}.padding-7_25{padding:7.25rem}.padding-7_5{padding:7.5rem}.padding-7_75{padding:7.75rem}.padding-8{padding:8rem}.padding-8_25{padding:8.25rem}.padding-8_5{padding:8.5rem}.padding-8_75{padding:8.75rem}.padding-9{padding:9rem}.padding-9_25{padding:9.25rem}.padding-9_5{padding:9.5rem}.padding-9_75{padding:9.75rem}.padding-10{padding:10rem}.padding-10_25{padding:10.25rem}.padding-10_5{padding:10.5rem}.padding-10_75{padding:10.75rem}.padding-11{padding:11rem}.padding-11_25{padding:11.25rem}.padding-11_5{padding:11.5rem}.padding-11_75{padding:11.75rem}.padding-12{padding:12rem}.padding-12_25{padding:12.25rem}.padding-12_5{padding:12.5rem}.padding-12_75{padding:12.75rem}.padding-13{padding:13rem}.padding-13_25{padding:13.25rem}.padding-13_5{padding:13.5rem}.padding-13_75{padding:13.75rem}.padding-14{padding:14rem}.padding-14_25{padding:14.25rem}.padding-14_5{padding:14.5rem}.padding-14_75{padding:14.75rem}.padding-15{padding:15rem}.padding-15_25{padding:15.25rem}.padding-15_5{padding:15.5rem}.padding-15_75{padding:15.75rem}.padding-16{padding:16rem}.padding-16_25{padding:16.25rem}.padding-16_5{padding:16.5rem}.padding-16_75{padding:16.75rem}.padding-17{padding:17rem}.padding-17_25{padding:17.25rem}.padding-17_5{padding:17.5rem}.padding-17_75{padding:17.75rem}.padding-18{padding:18rem}.padding-18_25{padding:18.25rem}.padding-18_5{padding:18.5rem}.padding-18_75{padding:18.75rem}.padding-19{padding:19rem}.padding-19_25{padding:19.25rem}.padding-19_5{padding:19.5rem}.padding-19_75{padding:19.75rem}.padding-20{padding:20rem}.padding-auto{padding:auto}.padding-top-1px{padding-top:1px}.padding-top-2px{padding-top:2px}.padding-top-3px{padding-top:3px}.padding-top-4px{padding-top:4px}.padding-top-5px{padding-top:5px}.padding-top-6px{padding-top:6px}.padding-top-7px{padding-top:7px}.padding-top-8px{padding-top:8px}.padding-top-9px{padding-top:9px}.padding-top-10px{padding-top:10px}.padding-top-0{padding-top:0}.padding-top-0_25{padding-top:.25rem}.padding-top-0_5{padding-top:.5rem}.padding-top-0_75{padding-top:.75rem}.padding-top-1{padding-top:1rem}.padding-top-1_25{padding-top:1.25rem}.padding-top-1_5{padding-top:1.5rem}.padding-top-1_75{padding-top:1.75rem}.padding-top-2{padding-top:2rem}.padding-top-2_25{padding-top:2.25rem}.padding-top-2_5{padding-top:2.5rem}.padding-top-2_75{padding-top:2.75rem}.padding-top-3{padding-top:3rem}.padding-top-3_25{padding-top:3.25rem}.padding-top-3_5{padding-top:3.5rem}.padding-top-3_75{padding-top:3.75rem}.padding-top-4{padding-top:4rem}.padding-top-4_25{padding-top:4.25rem}.padding-top-4_5{padding-top:4.5rem}.padding-top-4_75{padding-top:4.75rem}.padding-top-5{padding-top:5rem}.padding-top-5_25{padding-top:5.25rem}.padding-top-5_5{padding-top:5.5rem}.padding-top-5_75{padding-top:5.75rem}.padding-top-6{padding-top:6rem}.padding-top-6_25{padding-top:6.25rem}.padding-top-6_5{padding-top:6.5rem}.padding-top-6_75{padding-top:6.75rem}.padding-top-7{padding-top:7rem}.padding-top-7_25{padding-top:7.25rem}.padding-top-7_5{padding-top:7.5rem}.padding-top-7_75{padding-top:7.75rem}.padding-top-8{padding-top:8rem}.padding-top-8_25{padding-top:8.25rem}.padding-top-8_5{padding-top:8.5rem}.padding-top-8_75{padding-top:8.75rem}.padding-top-9{padding-top:9rem}.padding-top-9_25{padding-top:9.25rem}.padding-top-9_5{padding-top:9.5rem}.padding-top-9_75{padding-top:9.75rem}.padding-top-10{padding-top:10rem}.padding-top-10_25{padding-top:10.25rem}.padding-top-10_5{padding-top:10.5rem}.padding-top-10_75{padding-top:10.75rem}.padding-top-11{padding-top:11rem}.padding-top-11_25{padding-top:11.25rem}.padding-top-11_5{padding-top:11.5rem}.padding-top-11_75{padding-top:11.75rem}.padding-top-12{padding-top:12rem}.padding-top-12_25{padding-top:12.25rem}.padding-top-12_5{padding-top:12.5rem}.padding-top-12_75{padding-top:12.75rem}.padding-top-13{padding-top:13rem}.padding-top-13_25{padding-top:13.25rem}.padding-top-13_5{padding-top:13.5rem}.padding-top-13_75{padding-top:13.75rem}.padding-top-14{padding-top:14rem}.padding-top-14_25{padding-top:14.25rem}.padding-top-14_5{padding-top:14.5rem}.padding-top-14_75{padding-top:14.75rem}.padding-top-15{padding-top:15rem}.padding-top-15_25{padding-top:15.25rem}.padding-top-15_5{padding-top:15.5rem}.padding-top-15_75{padding-top:15.75rem}.padding-top-16{padding-top:16rem}.padding-top-16_25{padding-top:16.25rem}.padding-top-16_5{padding-top:16.5rem}.padding-top-16_75{padding-top:16.75rem}.padding-top-17{padding-top:17rem}.padding-top-17_25{padding-top:17.25rem}.padding-top-17_5{padding-top:17.5rem}.padding-top-17_75{padding-top:17.75rem}.padding-top-18{padding-top:18rem}.padding-top-18_25{padding-top:18.25rem}.padding-top-18_5{padding-top:18.5rem}.padding-top-18_75{padding-top:18.75rem}.padding-top-19{padding-top:19rem}.padding-top-19_25{padding-top:19.25rem}.padding-top-19_5{padding-top:19.5rem}.padding-top-19_75{padding-top:19.75rem}.padding-top-20{padding-top:20rem}.padding-top-auto{padding-top:auto}.padding-right-1px{padding-right:1px}.padding-right-2px{padding-right:2px}.padding-right-3px{padding-right:3px}.padding-right-4px{padding-right:4px}.padding-right-5px{padding-right:5px}.padding-right-6px{padding-right:6px}.padding-right-7px{padding-right:7px}.padding-right-8px{padding-right:8px}.padding-right-9px{padding-right:9px}.padding-right-10px{padding-right:10px}.padding-right-0{padding-right:0}.padding-right-0_25{padding-right:.25rem}.padding-right-0_5{padding-right:.5rem}.padding-right-0_75{padding-right:.75rem}.padding-right-1{padding-right:1rem}.padding-right-1_25{padding-right:1.25rem}.padding-right-1_5{padding-right:1.5rem}.padding-right-1_75{padding-right:1.75rem}.padding-right-2{padding-right:2rem}.padding-right-2_25{padding-right:2.25rem}.padding-right-2_5{padding-right:2.5rem}.padding-right-2_75{padding-right:2.75rem}.padding-right-3{padding-right:3rem}.padding-right-3_25{padding-right:3.25rem}.padding-right-3_5{padding-right:3.5rem}.padding-right-3_75{padding-right:3.75rem}.padding-right-4{padding-right:4rem}.padding-right-4_25{padding-right:4.25rem}.padding-right-4_5{padding-right:4.5rem}.padding-right-4_75{padding-right:4.75rem}.padding-right-5{padding-right:5rem}.padding-right-5_25{padding-right:5.25rem}.padding-right-5_5{padding-right:5.5rem}.padding-right-5_75{padding-right:5.75rem}.padding-right-6{padding-right:6rem}.padding-right-6_25{padding-right:6.25rem}.padding-right-6_5{padding-right:6.5rem}.padding-right-6_75{padding-right:6.75rem}.padding-right-7{padding-right:7rem}.padding-right-7_25{padding-right:7.25rem}.padding-right-7_5{padding-right:7.5rem}.padding-right-7_75{padding-right:7.75rem}.padding-right-8{padding-right:8rem}.padding-right-8_25{padding-right:8.25rem}.padding-right-8_5{padding-right:8.5rem}.padding-right-8_75{padding-right:8.75rem}.padding-right-9{padding-right:9rem}.padding-right-9_25{padding-right:9.25rem}.padding-right-9_5{padding-right:9.5rem}.padding-right-9_75{padding-right:9.75rem}.padding-right-10{padding-right:10rem}.padding-right-10_25{padding-right:10.25rem}.padding-right-10_5{padding-right:10.5rem}.padding-right-10_75{padding-right:10.75rem}.padding-right-11{padding-right:11rem}.padding-right-11_25{padding-right:11.25rem}.padding-right-11_5{padding-right:11.5rem}.padding-right-11_75{padding-right:11.75rem}.padding-right-12{padding-right:12rem}.padding-right-12_25{padding-right:12.25rem}.padding-right-12_5{padding-right:12.5rem}.padding-right-12_75{padding-right:12.75rem}.padding-right-13{padding-right:13rem}.padding-right-13_25{padding-right:13.25rem}.padding-right-13_5{padding-right:13.5rem}.padding-right-13_75{padding-right:13.75rem}.padding-right-14{padding-right:14rem}.padding-right-14_25{padding-right:14.25rem}.padding-right-14_5{padding-right:14.5rem}.padding-right-14_75{padding-right:14.75rem}.padding-right-15{padding-right:15rem}.padding-right-15_25{padding-right:15.25rem}.padding-right-15_5{padding-right:15.5rem}.padding-right-15_75{padding-right:15.75rem}.padding-right-16{padding-right:16rem}.padding-right-16_25{padding-right:16.25rem}.padding-right-16_5{padding-right:16.5rem}.padding-right-16_75{padding-right:16.75rem}.padding-right-17{padding-right:17rem}.padding-right-17_25{padding-right:17.25rem}.padding-right-17_5{padding-right:17.5rem}.padding-right-17_75{padding-right:17.75rem}.padding-right-18{padding-right:18rem}.padding-right-18_25{padding-right:18.25rem}.padding-right-18_5{padding-right:18.5rem}.padding-right-18_75{padding-right:18.75rem}.padding-right-19{padding-right:19rem}.padding-right-19_25{padding-right:19.25rem}.padding-right-19_5{padding-right:19.5rem}.padding-right-19_75{padding-right:19.75rem}.padding-right-20{padding-right:20rem}.padding-right-auto{padding-right:auto}.padding-bottom-1px{padding-bottom:1px}.padding-bottom-2px{padding-bottom:2px}.padding-bottom-3px{padding-bottom:3px}.padding-bottom-4px{padding-bottom:4px}.padding-bottom-5px{padding-bottom:5px}.padding-bottom-6px{padding-bottom:6px}.padding-bottom-7px{padding-bottom:7px}.padding-bottom-8px{padding-bottom:8px}.padding-bottom-9px{padding-bottom:9px}.padding-bottom-10px{padding-bottom:10px}.padding-bottom-0{padding-bottom:0}.padding-bottom-0_25{padding-bottom:.25rem}.padding-bottom-0_5{padding-bottom:.5rem}.padding-bottom-0_75{padding-bottom:.75rem}.padding-bottom-1{padding-bottom:1rem}.padding-bottom-1_25{padding-bottom:1.25rem}.padding-bottom-1_5{padding-bottom:1.5rem}.padding-bottom-1_75{padding-bottom:1.75rem}.padding-bottom-2{padding-bottom:2rem}.padding-bottom-2_25{padding-bottom:2.25rem}.padding-bottom-2_5{padding-bottom:2.5rem}.padding-bottom-2_75{padding-bottom:2.75rem}.padding-bottom-3{padding-bottom:3rem}.padding-bottom-3_25{padding-bottom:3.25rem}.padding-bottom-3_5{padding-bottom:3.5rem}.padding-bottom-3_75{padding-bottom:3.75rem}.padding-bottom-4{padding-bottom:4rem}.padding-bottom-4_25{padding-bottom:4.25rem}.padding-bottom-4_5{padding-bottom:4.5rem}.padding-bottom-4_75{padding-bottom:4.75rem}.padding-bottom-5{padding-bottom:5rem}.padding-bottom-5_25{padding-bottom:5.25rem}.padding-bottom-5_5{padding-bottom:5.5rem}.padding-bottom-5_75{padding-bottom:5.75rem}.padding-bottom-6{padding-bottom:6rem}.padding-bottom-6_25{padding-bottom:6.25rem}.padding-bottom-6_5{padding-bottom:6.5rem}.padding-bottom-6_75{padding-bottom:6.75rem}.padding-bottom-7{padding-bottom:7rem}.padding-bottom-7_25{padding-bottom:7.25rem}.padding-bottom-7_5{padding-bottom:7.5rem}.padding-bottom-7_75{padding-bottom:7.75rem}.padding-bottom-8{padding-bottom:8rem}.padding-bottom-8_25{padding-bottom:8.25rem}.padding-bottom-8_5{padding-bottom:8.5rem}.padding-bottom-8_75{padding-bottom:8.75rem}.padding-bottom-9{padding-bottom:9rem}.padding-bottom-9_25{padding-bottom:9.25rem}.padding-bottom-9_5{padding-bottom:9.5rem}.padding-bottom-9_75{padding-bottom:9.75rem}.padding-bottom-10{padding-bottom:10rem}.padding-bottom-10_25{padding-bottom:10.25rem}.padding-bottom-10_5{padding-bottom:10.5rem}.padding-bottom-10_75{padding-bottom:10.75rem}.padding-bottom-11{padding-bottom:11rem}.padding-bottom-11_25{padding-bottom:11.25rem}.padding-bottom-11_5{padding-bottom:11.5rem}.padding-bottom-11_75{padding-bottom:11.75rem}.padding-bottom-12{padding-bottom:12rem}.padding-bottom-12_25{padding-bottom:12.25rem}.padding-bottom-12_5{padding-bottom:12.5rem}.padding-bottom-12_75{padding-bottom:12.75rem}.padding-bottom-13{padding-bottom:13rem}.padding-bottom-13_25{padding-bottom:13.25rem}.padding-bottom-13_5{padding-bottom:13.5rem}.padding-bottom-13_75{padding-bottom:13.75rem}.padding-bottom-14{padding-bottom:14rem}.padding-bottom-14_25{padding-bottom:14.25rem}.padding-bottom-14_5{padding-bottom:14.5rem}.padding-bottom-14_75{padding-bottom:14.75rem}.padding-bottom-15{padding-bottom:15rem}.padding-bottom-15_25{padding-bottom:15.25rem}.padding-bottom-15_5{padding-bottom:15.5rem}.padding-bottom-15_75{padding-bottom:15.75rem}.padding-bottom-16{padding-bottom:16rem}.padding-bottom-16_25{padding-bottom:16.25rem}.padding-bottom-16_5{padding-bottom:16.5rem}.padding-bottom-16_75{padding-bottom:16.75rem}.padding-bottom-17{padding-bottom:17rem}.padding-bottom-17_25{padding-bottom:17.25rem}.padding-bottom-17_5{padding-bottom:17.5rem}.padding-bottom-17_75{padding-bottom:17.75rem}.padding-bottom-18{padding-bottom:18rem}.padding-bottom-18_25{padding-bottom:18.25rem}.padding-bottom-18_5{padding-bottom:18.5rem}.padding-bottom-18_75{padding-bottom:18.75rem}.padding-bottom-19{padding-bottom:19rem}.padding-bottom-19_25{padding-bottom:19.25rem}.padding-bottom-19_5{padding-bottom:19.5rem}.padding-bottom-19_75{padding-bottom:19.75rem}.padding-bottom-20{padding-bottom:20rem}.padding-bottom-auto{padding-bottom:auto}.padding-left-1px{padding-left:1px}.padding-left-2px{padding-left:2px}.padding-left-3px{padding-left:3px}.padding-left-4px{padding-left:4px}.padding-left-5px{padding-left:5px}.padding-left-6px{padding-left:6px}.padding-left-7px{padding-left:7px}.padding-left-8px{padding-left:8px}.padding-left-9px{padding-left:9px}.padding-left-10px{padding-left:10px}.padding-left-0{padding-left:0}.padding-left-0_25{padding-left:.25rem}.padding-left-0_5{padding-left:.5rem}.padding-left-0_75{padding-left:.75rem}.padding-left-1{padding-left:1rem}.padding-left-1_25{padding-left:1.25rem}.padding-left-1_5{padding-left:1.5rem}.padding-left-1_75{padding-left:1.75rem}.padding-left-2{padding-left:2rem}.padding-left-2_25{padding-left:2.25rem}.padding-left-2_5{padding-left:2.5rem}.padding-left-2_75{padding-left:2.75rem}.padding-left-3{padding-left:3rem}.padding-left-3_25{padding-left:3.25rem}.padding-left-3_5{padding-left:3.5rem}.padding-left-3_75{padding-left:3.75rem}.padding-left-4{padding-left:4rem}.padding-left-4_25{padding-left:4.25rem}.padding-left-4_5{padding-left:4.5rem}.padding-left-4_75{padding-left:4.75rem}.padding-left-5{padding-left:5rem}.padding-left-5_25{padding-left:5.25rem}.padding-left-5_5{padding-left:5.5rem}.padding-left-5_75{padding-left:5.75rem}.padding-left-6{padding-left:6rem}.padding-left-6_25{padding-left:6.25rem}.padding-left-6_5{padding-left:6.5rem}.padding-left-6_75{padding-left:6.75rem}.padding-left-7{padding-left:7rem}.padding-left-7_25{padding-left:7.25rem}.padding-left-7_5{padding-left:7.5rem}.padding-left-7_75{padding-left:7.75rem}.padding-left-8{padding-left:8rem}.padding-left-8_25{padding-left:8.25rem}.padding-left-8_5{padding-left:8.5rem}.padding-left-8_75{padding-left:8.75rem}.padding-left-9{padding-left:9rem}.padding-left-9_25{padding-left:9.25rem}.padding-left-9_5{padding-left:9.5rem}.padding-left-9_75{padding-left:9.75rem}.padding-left-10{padding-left:10rem}.padding-left-10_25{padding-left:10.25rem}.padding-left-10_5{padding-left:10.5rem}.padding-left-10_75{padding-left:10.75rem}.padding-left-11{padding-left:11rem}.padding-left-11_25{padding-left:11.25rem}.padding-left-11_5{padding-left:11.5rem}.padding-left-11_75{padding-left:11.75rem}.padding-left-12{padding-left:12rem}.padding-left-12_25{padding-left:12.25rem}.padding-left-12_5{padding-left:12.5rem}.padding-left-12_75{padding-left:12.75rem}.padding-left-13{padding-left:13rem}.padding-left-13_25{padding-left:13.25rem}.padding-left-13_5{padding-left:13.5rem}.padding-left-13_75{padding-left:13.75rem}.padding-left-14{padding-left:14rem}.padding-left-14_25{padding-left:14.25rem}.padding-left-14_5{padding-left:14.5rem}.padding-left-14_75{padding-left:14.75rem}.padding-left-15{padding-left:15rem}.padding-left-15_25{padding-left:15.25rem}.padding-left-15_5{padding-left:15.5rem}.padding-left-15_75{padding-left:15.75rem}.padding-left-16{padding-left:16rem}.padding-left-16_25{padding-left:16.25rem}.padding-left-16_5{padding-left:16.5rem}.padding-left-16_75{padding-left:16.75rem}.padding-left-17{padding-left:17rem}.padding-left-17_25{padding-left:17.25rem}.padding-left-17_5{padding-left:17.5rem}.padding-left-17_75{padding-left:17.75rem}.padding-left-18{padding-left:18rem}.padding-left-18_25{padding-left:18.25rem}.padding-left-18_5{padding-left:18.5rem}.padding-left-18_75{padding-left:18.75rem}.padding-left-19{padding-left:19rem}.padding-left-19_25{padding-left:19.25rem}.padding-left-19_5{padding-left:19.5rem}.padding-left-19_75{padding-left:19.75rem}.padding-left-20{padding-left:20rem}.padding-left-auto{padding-left:auto}.padding-x-1px{padding-left:1px;padding-right:1px}.padding-x-2px{padding-left:2px;padding-right:2px}.padding-x-3px{padding-left:3px;padding-right:3px}.padding-x-4px{padding-left:4px;padding-right:4px}.padding-x-5px{padding-left:5px;padding-right:5px}.padding-x-6px{padding-left:6px;padding-right:6px}.padding-x-7px{padding-left:7px;padding-right:7px}.padding-x-8px{padding-left:8px;padding-right:8px}.padding-x-9px{padding-left:9px;padding-right:9px}.padding-x-10px{padding-left:10px;padding-right:10px}.padding-x-0{padding-left:0;padding-right:0}.padding-x-0_25{padding-left:.25rem;padding-right:.25rem}.padding-x-0_5{padding-left:.5rem;padding-right:.5rem}.padding-x-0_75{padding-left:.75rem;padding-right:.75rem}.padding-x-1{padding-left:1rem;padding-right:1rem}.padding-x-1_25{padding-left:1.25rem;padding-right:1.25rem}.padding-x-1_5{padding-left:1.5rem;padding-right:1.5rem}.padding-x-1_75{padding-left:1.75rem;padding-right:1.75rem}.padding-x-2{padding-left:2rem;padding-right:2rem}.padding-x-2_25{padding-left:2.25rem;padding-right:2.25rem}.padding-x-2_5{padding-left:2.5rem;padding-right:2.5rem}.padding-x-2_75{padding-left:2.75rem;padding-right:2.75rem}.padding-x-3{padding-left:3rem;padding-right:3rem}.padding-x-3_25{padding-left:3.25rem;padding-right:3.25rem}.padding-x-3_5{padding-left:3.5rem;padding-right:3.5rem}.padding-x-3_75{padding-left:3.75rem;padding-right:3.75rem}.padding-x-4{padding-left:4rem;padding-right:4rem}.padding-x-4_25{padding-left:4.25rem;padding-right:4.25rem}.padding-x-4_5{padding-left:4.5rem;padding-right:4.5rem}.padding-x-4_75{padding-left:4.75rem;padding-right:4.75rem}.padding-x-5{padding-left:5rem;padding-right:5rem}.padding-x-5_25{padding-left:5.25rem;padding-right:5.25rem}.padding-x-5_5{padding-left:5.5rem;padding-right:5.5rem}.padding-x-5_75{padding-left:5.75rem;padding-right:5.75rem}.padding-x-6{padding-left:6rem;padding-right:6rem}.padding-x-6_25{padding-left:6.25rem;padding-right:6.25rem}.padding-x-6_5{padding-left:6.5rem;padding-right:6.5rem}.padding-x-6_75{padding-left:6.75rem;padding-right:6.75rem}.padding-x-7{padding-left:7rem;padding-right:7rem}.padding-x-7_25{padding-left:7.25rem;padding-right:7.25rem}.padding-x-7_5{padding-left:7.5rem;padding-right:7.5rem}.padding-x-7_75{padding-left:7.75rem;padding-right:7.75rem}.padding-x-8{padding-left:8rem;padding-right:8rem}.padding-x-8_25{padding-left:8.25rem;padding-right:8.25rem}.padding-x-8_5{padding-left:8.5rem;padding-right:8.5rem}.padding-x-8_75{padding-left:8.75rem;padding-right:8.75rem}.padding-x-9{padding-left:9rem;padding-right:9rem}.padding-x-9_25{padding-left:9.25rem;padding-right:9.25rem}.padding-x-9_5{padding-left:9.5rem;padding-right:9.5rem}.padding-x-9_75{padding-left:9.75rem;padding-right:9.75rem}.padding-x-10{padding-left:10rem;padding-right:10rem}.padding-x-10_25{padding-left:10.25rem;padding-right:10.25rem}.padding-x-10_5{padding-left:10.5rem;padding-right:10.5rem}.padding-x-10_75{padding-left:10.75rem;padding-right:10.75rem}.padding-x-11{padding-left:11rem;padding-right:11rem}.padding-x-11_25{padding-left:11.25rem;padding-right:11.25rem}.padding-x-11_5{padding-left:11.5rem;padding-right:11.5rem}.padding-x-11_75{padding-left:11.75rem;padding-right:11.75rem}.padding-x-12{padding-left:12rem;padding-right:12rem}.padding-x-12_25{padding-left:12.25rem;padding-right:12.25rem}.padding-x-12_5{padding-left:12.5rem;padding-right:12.5rem}.padding-x-12_75{padding-left:12.75rem;padding-right:12.75rem}.padding-x-13{padding-left:13rem;padding-right:13rem}.padding-x-13_25{padding-left:13.25rem;padding-right:13.25rem}.padding-x-13_5{padding-left:13.5rem;padding-right:13.5rem}.padding-x-13_75{padding-left:13.75rem;padding-right:13.75rem}.padding-x-14{padding-left:14rem;padding-right:14rem}.padding-x-14_25{padding-left:14.25rem;padding-right:14.25rem}.padding-x-14_5{padding-left:14.5rem;padding-right:14.5rem}.padding-x-14_75{padding-left:14.75rem;padding-right:14.75rem}.padding-x-15{padding-left:15rem;padding-right:15rem}.padding-x-15_25{padding-left:15.25rem;padding-right:15.25rem}.padding-x-15_5{padding-left:15.5rem;padding-right:15.5rem}.padding-x-15_75{padding-left:15.75rem;padding-right:15.75rem}.padding-x-16{padding-left:16rem;padding-right:16rem}.padding-x-16_25{padding-left:16.25rem;padding-right:16.25rem}.padding-x-16_5{padding-left:16.5rem;padding-right:16.5rem}.padding-x-16_75{padding-left:16.75rem;padding-right:16.75rem}.padding-x-17{padding-left:17rem;padding-right:17rem}.padding-x-17_25{padding-left:17.25rem;padding-right:17.25rem}.padding-x-17_5{padding-left:17.5rem;padding-right:17.5rem}.padding-x-17_75{padding-left:17.75rem;padding-right:17.75rem}.padding-x-18{padding-left:18rem;padding-right:18rem}.padding-x-18_25{padding-left:18.25rem;padding-right:18.25rem}.padding-x-18_5{padding-left:18.5rem;padding-right:18.5rem}.padding-x-18_75{padding-left:18.75rem;padding-right:18.75rem}.padding-x-19{padding-left:19rem;padding-right:19rem}.padding-x-19_25{padding-left:19.25rem;padding-right:19.25rem}.padding-x-19_5{padding-left:19.5rem;padding-right:19.5rem}.padding-x-19_75{padding-left:19.75rem;padding-right:19.75rem}.padding-x-20{padding-left:20rem;padding-right:20rem}.padding-x-auto{padding-left:auto;padding-right:auto}.padding-y-1px{padding-bottom:1px;padding-top:1px}.padding-y-2px{padding-bottom:2px;padding-top:2px}.padding-y-3px{padding-bottom:3px;padding-top:3px}.padding-y-4px{padding-bottom:4px;padding-top:4px}.padding-y-5px{padding-bottom:5px;padding-top:5px}.padding-y-6px{padding-bottom:6px;padding-top:6px}.padding-y-7px{padding-bottom:7px;padding-top:7px}.padding-y-8px{padding-bottom:8px;padding-top:8px}.padding-y-9px{padding-bottom:9px;padding-top:9px}.padding-y-10px{padding-bottom:10px;padding-top:10px}.padding-y-0{padding-bottom:0;padding-top:0}.padding-y-0_25{padding-bottom:.25rem;padding-top:.25rem}.padding-y-0_5{padding-bottom:.5rem;padding-top:.5rem}.padding-y-0_75{padding-bottom:.75rem;padding-top:.75rem}.padding-y-1{padding-bottom:1rem;padding-top:1rem}.padding-y-1_25{padding-bottom:1.25rem;padding-top:1.25rem}.padding-y-1_5{padding-bottom:1.5rem;padding-top:1.5rem}.padding-y-1_75{padding-bottom:1.75rem;padding-top:1.75rem}.padding-y-2{padding-bottom:2rem;padding-top:2rem}.padding-y-2_25{padding-bottom:2.25rem;padding-top:2.25rem}.padding-y-2_5{padding-bottom:2.5rem;padding-top:2.5rem}.padding-y-2_75{padding-bottom:2.75rem;padding-top:2.75rem}.padding-y-3{padding-bottom:3rem;padding-top:3rem}.padding-y-3_25{padding-bottom:3.25rem;padding-top:3.25rem}.padding-y-3_5{padding-bottom:3.5rem;padding-top:3.5rem}.padding-y-3_75{padding-bottom:3.75rem;padding-top:3.75rem}.padding-y-4{padding-bottom:4rem;padding-top:4rem}.padding-y-4_25{padding-bottom:4.25rem;padding-top:4.25rem}.padding-y-4_5{padding-bottom:4.5rem;padding-top:4.5rem}.padding-y-4_75{padding-bottom:4.75rem;padding-top:4.75rem}.padding-y-5{padding-bottom:5rem;padding-top:5rem}.padding-y-5_25{padding-bottom:5.25rem;padding-top:5.25rem}.padding-y-5_5{padding-bottom:5.5rem;padding-top:5.5rem}.padding-y-5_75{padding-bottom:5.75rem;padding-top:5.75rem}.padding-y-6{padding-bottom:6rem;padding-top:6rem}.padding-y-6_25{padding-bottom:6.25rem;padding-top:6.25rem}.padding-y-6_5{padding-bottom:6.5rem;padding-top:6.5rem}.padding-y-6_75{padding-bottom:6.75rem;padding-top:6.75rem}.padding-y-7{padding-bottom:7rem;padding-top:7rem}.padding-y-7_25{padding-bottom:7.25rem;padding-top:7.25rem}.padding-y-7_5{padding-bottom:7.5rem;padding-top:7.5rem}.padding-y-7_75{padding-bottom:7.75rem;padding-top:7.75rem}.padding-y-8{padding-bottom:8rem;padding-top:8rem}.padding-y-8_25{padding-bottom:8.25rem;padding-top:8.25rem}.padding-y-8_5{padding-bottom:8.5rem;padding-top:8.5rem}.padding-y-8_75{padding-bottom:8.75rem;padding-top:8.75rem}.padding-y-9{padding-bottom:9rem;padding-top:9rem}.padding-y-9_25{padding-bottom:9.25rem;padding-top:9.25rem}.padding-y-9_5{padding-bottom:9.5rem;padding-top:9.5rem}.padding-y-9_75{padding-bottom:9.75rem;padding-top:9.75rem}.padding-y-10{padding-bottom:10rem;padding-top:10rem}.padding-y-10_25{padding-bottom:10.25rem;padding-top:10.25rem}.padding-y-10_5{padding-bottom:10.5rem;padding-top:10.5rem}.padding-y-10_75{padding-bottom:10.75rem;padding-top:10.75rem}.padding-y-11{padding-bottom:11rem;padding-top:11rem}.padding-y-11_25{padding-bottom:11.25rem;padding-top:11.25rem}.padding-y-11_5{padding-bottom:11.5rem;padding-top:11.5rem}.padding-y-11_75{padding-bottom:11.75rem;padding-top:11.75rem}.padding-y-12{padding-bottom:12rem;padding-top:12rem}.padding-y-12_25{padding-bottom:12.25rem;padding-top:12.25rem}.padding-y-12_5{padding-bottom:12.5rem;padding-top:12.5rem}.padding-y-12_75{padding-bottom:12.75rem;padding-top:12.75rem}.padding-y-13{padding-bottom:13rem;padding-top:13rem}.padding-y-13_25{padding-bottom:13.25rem;padding-top:13.25rem}.padding-y-13_5{padding-bottom:13.5rem;padding-top:13.5rem}.padding-y-13_75{padding-bottom:13.75rem;padding-top:13.75rem}.padding-y-14{padding-bottom:14rem;padding-top:14rem}.padding-y-14_25{padding-bottom:14.25rem;padding-top:14.25rem}.padding-y-14_5{padding-bottom:14.5rem;padding-top:14.5rem}.padding-y-14_75{padding-bottom:14.75rem;padding-top:14.75rem}.padding-y-15{padding-bottom:15rem;padding-top:15rem}.padding-y-15_25{padding-bottom:15.25rem;padding-top:15.25rem}.padding-y-15_5{padding-bottom:15.5rem;padding-top:15.5rem}.padding-y-15_75{padding-bottom:15.75rem;padding-top:15.75rem}.padding-y-16{padding-bottom:16rem;padding-top:16rem}.padding-y-16_25{padding-bottom:16.25rem;padding-top:16.25rem}.padding-y-16_5{padding-bottom:16.5rem;padding-top:16.5rem}.padding-y-16_75{padding-bottom:16.75rem;padding-top:16.75rem}.padding-y-17{padding-bottom:17rem;padding-top:17rem}.padding-y-17_25{padding-bottom:17.25rem;padding-top:17.25rem}.padding-y-17_5{padding-bottom:17.5rem;padding-top:17.5rem}.padding-y-17_75{padding-bottom:17.75rem;padding-top:17.75rem}.padding-y-18{padding-bottom:18rem;padding-top:18rem}.padding-y-18_25{padding-bottom:18.25rem;padding-top:18.25rem}.padding-y-18_5{padding-bottom:18.5rem;padding-top:18.5rem}.padding-y-18_75{padding-bottom:18.75rem;padding-top:18.75rem}.padding-y-19{padding-bottom:19rem;padding-top:19rem}.padding-y-19_25{padding-bottom:19.25rem;padding-top:19.25rem}.padding-y-19_5{padding-bottom:19.5rem;padding-top:19.5rem}.padding-y-19_75{padding-bottom:19.75rem;padding-top:19.75rem}.padding-y-20{padding-bottom:20rem;padding-top:20rem}.padding-y-auto{padding-bottom:auto;padding-top:auto}.top-0{top:0}.top-1{top:1rem}.top-2{top:2rem}.top-3{top:3rem}.top-4{top:4rem}.top-5{top:5rem}.top-6{top:6rem}.top-7{top:7rem}.top-8{top:8rem}.top-9{top:9rem}.top-10{top:10rem}.top-11{top:11rem}.top-12{top:12rem}.top-13{top:13rem}.top-14{top:14rem}.top-15{top:15rem}.top-16{top:16rem}.top-17{top:17rem}.top-18{top:18rem}.top-19{top:19rem}.top-20{top:20rem}.top--1{top:-1rem}.top--2{top:-2rem}.top--3{top:-3rem}.top--4{top:-4rem}.top--5{top:-5rem}.top--6{top:-6rem}.top--7{top:-7rem}.top--8{top:-8rem}.top--9{top:-9rem}.top--10{top:-10rem}.top--11{top:-11rem}.top--12{top:-12rem}.top--13{top:-13rem}.top--14{top:-14rem}.top--15{top:-15rem}.top--16{top:-16rem}.top--17{top:-17rem}.top--18{top:-18rem}.top--19{top:-19rem}.top--20{top:-20rem}.right-0{right:0}.right-1{right:1rem}.right-2{right:2rem}.right-3{right:3rem}.right-4{right:4rem}.right-5{right:5rem}.right-6{right:6rem}.right-7{right:7rem}.right-8{right:8rem}.right-9{right:9rem}.right-10{right:10rem}.right-11{right:11rem}.right-12{right:12rem}.right-13{right:13rem}.right-14{right:14rem}.right-15{right:15rem}.right-16{right:16rem}.right-17{right:17rem}.right-18{right:18rem}.right-19{right:19rem}.right-20{right:20rem}.right--1{right:-1rem}.right--2{right:-2rem}.right--3{right:-3rem}.right--4{right:-4rem}.right--5{right:-5rem}.right--6{right:-6rem}.right--7{right:-7rem}.right--8{right:-8rem}.right--9{right:-9rem}.right--10{right:-10rem}.right--11{right:-11rem}.right--12{right:-12rem}.right--13{right:-13rem}.right--14{right:-14rem}.right--15{right:-15rem}.right--16{right:-16rem}.right--17{right:-17rem}.right--18{right:-18rem}.right--19{right:-19rem}.right--20{right:-20rem}.bottom-0{bottom:0}.bottom-1{bottom:1rem}.bottom-2{bottom:2rem}.bottom-3{bottom:3rem}.bottom-4{bottom:4rem}.bottom-5{bottom:5rem}.bottom-6{bottom:6rem}.bottom-7{bottom:7rem}.bottom-8{bottom:8rem}.bottom-9{bottom:9rem}.bottom-10{bottom:10rem}.bottom-11{bottom:11rem}.bottom-12{bottom:12rem}.bottom-13{bottom:13rem}.bottom-14{bottom:14rem}.bottom-15{bottom:15rem}.bottom-16{bottom:16rem}.bottom-17{bottom:17rem}.bottom-18{bottom:18rem}.bottom-19{bottom:19rem}.bottom-20{bottom:20rem}.bottom--1{bottom:-1rem}.bottom--2{bottom:-2rem}.bottom--3{bottom:-3rem}.bottom--4{bottom:-4rem}.bottom--5{bottom:-5rem}.bottom--6{bottom:-6rem}.bottom--7{bottom:-7rem}.bottom--8{bottom:-8rem}.bottom--9{bottom:-9rem}.bottom--10{bottom:-10rem}.bottom--11{bottom:-11rem}.bottom--12{bottom:-12rem}.bottom--13{bottom:-13rem}.bottom--14{bottom:-14rem}.bottom--15{bottom:-15rem}.bottom--16{bottom:-16rem}.bottom--17{bottom:-17rem}.bottom--18{bottom:-18rem}.bottom--19{bottom:-19rem}.bottom--20{bottom:-20rem}.left-0{left:0}.left-1{left:1rem}.left-2{left:2rem}.left-3{left:3rem}.left-4{left:4rem}.left-5{left:5rem}.left-6{left:6rem}.left-7{left:7rem}.left-8{left:8rem}.left-9{left:9rem}.left-10{left:10rem}.left-11{left:11rem}.left-12{left:12rem}.left-13{left:13rem}.left-14{left:14rem}.left-15{left:15rem}.left-16{left:16rem}.left-17{left:17rem}.left-18{left:18rem}.left-19{left:19rem}.left-20{left:20rem}.left--1{left:-1rem}.left--2{left:-2rem}.left--3{left:-3rem}.left--4{left:-4rem}.left--5{left:-5rem}.left--6{left:-6rem}.left--7{left:-7rem}.left--8{left:-8rem}.left--9{left:-9rem}.left--10{left:-10rem}.left--11{left:-11rem}.left--12{left:-12rem}.left--13{left:-13rem}.left--14{left:-14rem}.left--15{left:-15rem}.left--16{left:-16rem}.left--17{left:-17rem}.left--18{left:-18rem}.left--19{left:-19rem}.left--20{left:-20rem}.rotate-45{transform:rotate(45deg)}.rotate-90{transform:rotate(90deg)}.rotate-135{transform:rotate(135deg)}.rotate-180{transform:rotate(180deg)}.rotate-225{transform:rotate(225deg)}.rotate-270{transform:rotate(270deg)}.rotate-315{transform:rotate(315deg)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.color-5{color:light-dark(var( --base-90 ),var( --base-5 ))}.color-10{color:light-dark(var( --base-80 ),var( --base-10 ))}.color-20{color:light-dark(var( --base-70 ),var( --base-20 ))}.color-30{color:light-dark(var( --base-60 ),var( --base-30 ))}.color-40{color:light-dark(var( --base-50 ),var( --base-40 ))}.color-50{color:light-dark(var( --base-40 ),var( --base-50 ))}.color-60{color:light-dark(var( --base-30 ),var( --base-60 ))}.color-70{color:light-dark(var( --base-20 ),var( --base-70 ))}.color-80{color:light-dark(var( --base-10 ),var( --base-80 ))}.color-90{color:light-dark(var( --base-5 ),var( --base-90 ))}.background-color-5{background-color:light-dark(var( --base-90 ),var( --base-5 ))}.background-color-10{background-color:light-dark(var( --base-80 ),var( --base-10 ))}.background-color-20{background-color:light-dark(var( --base-70 ),var( --base-20 ))}.background-color-30{background-color:light-dark(var( --base-60 ),var( --base-30 ))}.background-color-40{background-color:light-dark(var( --base-50 ),var( --base-40 ))}.background-color-50{background-color:light-dark(var( --base-40 ),var( --base-50 ))}.background-color-60{background-color:light-dark(var( --base-30 ),var( --base-60 ))}.background-color-70{background-color:light-dark(var( --base-20 ),var( --base-70 ))}.background-color-80{background-color:light-dark(var( --base-10 ),var( --base-80 ))}.background-color-90{background-color:light-dark(var( --base-5 ),var( --base-90 ))}.measure{max-width:30em}.measure-tight{max-width:20em}.measure-loose{max-width:36em}.text-align-left{text-align:left}.text-align-right{text-align:right}.text-align-center{text-align:center}.text-align-justify{text-align:justify}.text-transform-capitalize{text-transform:capitalize}.text-transform-uppercase{text-transform:uppercase}.text-transform-lowercase{text-transform:lowercase}.text-transform-none{text-transform:none}.text-decoration-underline{text-decoration:underline}.text-decoration-strike{text-decoration:line-through}.text-decoration-none{text-decoration:none}.vertical-align-baseline{vertical-align:baseline}.vertical-align-top{vertical-align:top}.vertical-align-middle{vertical-align:middle}.vertical-align-bottom{vertical-align:bottom}.font-style-italic{font-style:italic}.font-style-normal{font-style:normal}.letter-spacing-0{letter-spacing:0}.letter-spacing-1{letter-spacing:.1em}.letter-spacing-2{letter-spacing:.2em}.letter-spacing-3{letter-spacing:.3em}.letter-spacing--1{letter-spacing:-.1em}.letter-spacing--2{letter-spacing:-.2em}.letter-spacing--3{letter-spacing:-.3em}.font-size-0_75{font-size:.75rem}.font-size-1{font-size:1rem}.font-size-1_25{font-size:1.25rem}.font-size-1_5{font-size:1.5rem}.font-size-1_75{font-size:1.75rem}.font-size-2{font-size:2rem}.font-size-2_25{font-size:2.25rem}.font-size-2_5{font-size:2.5rem}.font-size-2_75{font-size:2.75rem}.f1,.font-size-3{font-size:3rem}.f2{font-size:2.25rem}.f3{font-size:1.5rem}.f4{font-size:1.25rem}.f5{font-size:1rem}.f6{font-size:.875rem}.white-space-nowrap{white-space:nowrap}.white-space-pre{white-space:pre}.white-space-pre-line{white-space:pre-line}.white-space-pre-wrap{white-space:pre-wrap}.white-space-normal{white-space:normal}.width-1{width:1rem}.width-2{width:2rem}.width-3{width:3rem}.width-4{width:4rem}.width-5{width:5rem}.width-6{width:6rem}.width-7{width:7rem}.width-8{width:8rem}.width-9{width:9rem}.width-10{width:10rem}.width-11{width:11rem}.width-12{width:12rem}.width-13{width:13rem}.width-14{width:14rem}.width-15{width:15rem}.width-16{width:16rem}.width-17{width:17rem}.width-18{width:18rem}.width-19{width:19rem}.width-20{width:20rem}.width-21{width:21rem}.width-22{width:22rem}.width-23{width:23rem}.width-24{width:24rem}.width-25{width:25rem}.width-26{width:26rem}.width-27{width:27rem}.width-28{width:28rem}.width-29{width:29rem}.width-30{width:30rem}.width-31{width:31rem}.width-32{width:32rem}.width-33{width:33rem}.width-34{width:34rem}.width-35{width:35rem}.width-36{width:36rem}.width-37{width:37rem}.width-38{width:38rem}.width-39{width:39rem}.width-40{width:40rem}.width-41{width:41rem}.width-42{width:42rem}.width-43{width:43rem}.width-44{width:44rem}.width-45{width:45rem}.width-46{width:46rem}.width-47{width:47rem}.width-48{width:48rem}.width-49{width:49rem}.width-50{width:50rem}.width-51{width:51rem}.width-52{width:52rem}.width-53{width:53rem}.width-54{width:54rem}.width-55{width:55rem}.width-56{width:56rem}.width-57{width:57rem}.width-58{width:58rem}.width-59{width:59rem}.width-60{width:60rem}.width-61{width:61rem}.width-62{width:62rem}.width-63{width:63rem}.width-64{width:64rem}.width-65{width:65rem}.width-66{width:66rem}.width-67{width:67rem}.width-68{width:68rem}.width-69{width:69rem}.width-70{width:70rem}.width-71{width:71rem}.width-72{width:72rem}.width-73{width:73rem}.width-74{width:74rem}.width-75{width:75rem}.width-76{width:76rem}.width-77{width:77rem}.width-78{width:78rem}.width-79{width:79rem}.width-80{width:80rem}.width-81{width:81rem}.width-82{width:82rem}.width-83{width:83rem}.width-84{width:84rem}.width-85{width:85rem}.width-86{width:86rem}.width-87{width:87rem}.width-88{width:88rem}.width-89{width:89rem}.width-90{width:90rem}.width-91{width:91rem}.width-92{width:92rem}.width-93{width:93rem}.width-94{width:94rem}.width-95{width:95rem}.width-96{width:96rem}.width-97{width:97rem}.width-98{width:98rem}.width-99{width:99rem}.width-100{width:100rem}.width-1p{width:1%}.width-2p{width:2%}.width-3p{width:3%}.width-4p{width:4%}.width-5p{width:5%}.width-6p{width:6%}.width-7p{width:7%}.width-8p{width:8%}.width-9p{width:9%}.width-10p{width:10%}.width-11p{width:11%}.width-12p{width:12%}.width-13p{width:13%}.width-14p{width:14%}.width-15p{width:15%}.width-16p{width:16%}.width-17p{width:17%}.width-18p{width:18%}.width-19p{width:19%}.width-20p{width:20%}.width-21p{width:21%}.width-22p{width:22%}.width-23p{width:23%}.width-24p{width:24%}.width-25p{width:25%}.width-26p{width:26%}.width-27p{width:27%}.width-28p{width:28%}.width-29p{width:29%}.width-30p{width:30%}.width-31p{width:31%}.width-32p{width:32%}.width-33p{width:33%}.width-34p{width:34%}.width-35p{width:35%}.width-36p{width:36%}.width-37p{width:37%}.width-38p{width:38%}.width-39p{width:39%}.width-40p{width:40%}.width-41p{width:41%}.width-42p{width:42%}.width-43p{width:43%}.width-44p{width:44%}.width-45p{width:45%}.width-46p{width:46%}.width-47p{width:47%}.width-48p{width:48%}.width-49p{width:49%}.width-50p{width:50%}.width-51p{width:51%}.width-52p{width:52%}.width-53p{width:53%}.width-54p{width:54%}.width-55p{width:55%}.width-56p{width:56%}.width-57p{width:57%}.width-58p{width:58%}.width-59p{width:59%}.width-60p{width:60%}.width-61p{width:61%}.width-62p{width:62%}.width-63p{width:63%}.width-64p{width:64%}.width-65p{width:65%}.width-66p{width:66%}.width-67p{width:67%}.width-68p{width:68%}.width-69p{width:69%}.width-70p{width:70%}.width-71p{width:71%}.width-72p{width:72%}.width-73p{width:73%}.width-74p{width:74%}.width-75p{width:75%}.width-76p{width:76%}.width-77p{width:77%}.width-78p{width:78%}.width-79p{width:79%}.width-80p{width:80%}.width-81p{width:81%}.width-82p{width:82%}.width-83p{width:83%}.width-84p{width:84%}.width-85p{width:85%}.width-86p{width:86%}.width-87p{width:87%}.width-88p{width:88%}.width-89p{width:89%}.width-90p{width:90%}.width-91p{width:91%}.width-92p{width:92%}.width-93p{width:93%}.width-94p{width:94%}.width-95p{width:95%}.width-96p{width:96%}.width-97p{width:97%}.width-98p{width:98%}.width-99p{width:99%}.width-100p,.width-full{width:100%}.width-auto{width:auto}.width-third{width:33.33333%}.width-two-thirds{width:66.66667%}:root{--column-gap:.25rem;--row-gap:.25rem;--base:oklch(.55 .04 240);--light-start:.92;--light-end:.13;--chroma-start:.001;--chroma-end:.01;--accent-5:var( --emerald-5 );--accent-10:var( --emerald-10 );--accent-20:var( --emerald-20 );--accent-30:var( --emerald-30 );--accent-40:var( --emerald-40 );--accent-50:var( --emerald-50 );--accent-60:var( --emerald-60 );--accent-70:var( --emerald-70 );--accent-80:var( --emerald-80 );--accent-90:var( --emerald-90 );--accent-95:var( --emerald-95 );--accent:var( --accent-50 );--light-avg:calc((var( --light-start ) + var( --light-end ))/2);--chroma-avg:calc((var( --chroma-start ) + var( --chroma-end ))/2);--chroma-med:calc((var( --chroma-avg ) + var( --chroma-end ))/1.5);--base-5:oklch(from var( --base ) calc(var( --light-start )*0.97 + var( --light-avg )*0.15) calc(var( --chroma-start )*0.99 + var( --chroma-med )*0.1) h/alpha);--base-10:oklch(from var( --base ) calc(var( --light-start )*0.95 + var( --light-avg )*0.05) calc(var( --chroma-start )*0.86 + var( --chroma-med )*0.14) h/alpha);--base-20:oklch(from var( --base ) calc(var( --light-start )*0.86 + var( --light-avg )*0.14) calc(var( --chroma-start )*0.71 + var( --chroma-med )*0.29) h/alpha);--base-30:oklch(from var( --base ) calc(var( --light-start )*0.73 + var( --light-avg )*0.27) calc(var( --chroma-start )*0.51 + var( --chroma-med )*0.49) h/alpha);--base-40:oklch(from var( --base ) calc(var( --light-start )*0.39 + var( --light-avg )*0.61) calc(var( --chroma-start )*0.29 + var( --chroma-med )*0.71) h/alpha);--base-50:oklch(from var( --base ) var( --light-avg ) var( --chroma-med ) h/alpha);--base-60:oklch(from var( --base ) calc(var( --light-end )*0.28 + var( --light-avg )*0.72) calc(var( --chroma-end )*0.29 + var( --chroma-med )*0.71) h/alpha);--base-70:oklch(from var( --base ) calc(var( --light-end )*0.45 + var( --light-avg )*0.55) calc(var( --chroma-end )*0.51 + var( --chroma-med )*0.49) h/alpha);--base-80:oklch(from var( --base ) calc(var( --light-end )*0.68 + var( --light-avg )*0.32) calc(var( --chroma-end )*0.71 + var( --chroma-med )*0.29) h/alpha);--base-90:oklch(from var( --base ) calc(var( --light-end )*0.83 + var( --light-avg )*0.17) calc(var( --chroma-end )*0.86 + var( --chroma-med )*0.14) h/alpha);--base-95:oklch(from var( --base ) calc(var( --light-end )*0.85 + var( --light-avg )*0.13) calc(var( --chroma-end )*0.95 + var( --chroma-med )*0.15) h/alpha);--background:light-dark(#fff,var( --base-90 ));--foreground:light-dark(var( --base-90 ),var( --base-5 ));--heading-foreground:light-dark(var( --base-90 ),var( --base-20 ));--accent-background:light-dark(var( --accent ),oklch(from var( --accent ) calc(var( --light-avg ) - 0.1) c h/alpha));--accent-foreground:light-dark(var( --base-5 ),var( --base-10 ));--border:1px solid light-dark(var( --base-20 ),var( --base-70 ))}body,html{height:100%;width:100%}*,::backdrop,::file-selector-button,:after,:before{border:0 solid;box-sizing:border-box;caret-color:var( --foreground );font-family:inherit;margin:0;padding:0}::-moz-selection{background-color:var( --accent-background );color:var( --accent-foreground )}::selection{background-color:var( --accent-background );color:var( --accent-foreground )}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}:host,html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;background-color:var( --background );color:var( --foreground );color-scheme:light dark}hr{border-block-start:var( --border );color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{inset-block-end:-.25em}sup{inset-block-start:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0;width:100%;thead{border-block-end:var( --border );th{color:var( --heading-foreground );font-weight:600}}tbody{tr{border-block-end:var( --border );&:last-of-type{border:0}}}tfoot{border-block-start:var( --border )}td,th{padding:var( --size-2 );text-align:start;&:first-of-type{padding-inline-start:0}&:last-of-type{padding-inline-end:0}}}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block}img,video{height:auto;max-width:100%}[hidden]{display:none!important}select[multiple],textarea{resize:vertical}h1,h2,h3,h4,h5,h6{color:var( --heading-foreground );font-weight:500;word-break:break-word;a{color:var( --heading-foreground );text-decoration:none}}h1{text-wrap:balance}grid{display:grid;--grid-tc:repeat(6,1fr);grid-template-columns:var( --grid-tc );--grid-cs:1;--grid-ce:-1;grid-column-gap:var( --column-gap );grid-row-gap:var( --row-gap )}grid>c{-moz-appearance:none;appearance:none;-webkit-appearance:none;display:block}grid[columns="1"]{--grid-tc:repeat(1,1fr)}grid[columns="2"]{--grid-tc:repeat(2,1fr)}grid[columns="3"]{--grid-tc:repeat(3,1fr)}grid[columns="4"]{--grid-tc:repeat(4,1fr)}grid[columns="5"]{--grid-tc:repeat(5,1fr)}grid[columns="6"]{--grid-tc:repeat(6,1fr)}grid[columns="7"]{--grid-tc:repeat(7,1fr)}grid[columns="8"]{--grid-tc:repeat(8,1fr)}grid[columns="9"]{--grid-tc:repeat(9,1fr)}grid[columns="10"]{--grid-tc:repeat(10,1fr)}grid[columns="11"]{--grid-tc:repeat(11,1fr)}grid[columns="12"]{--grid-tc:repeat(12,1fr)}grid>c[span^="1"]{--grid-cs:1}grid>c[span^="2"]{--grid-cs:2}grid>c[span^="3"]{--grid-cs:3}grid>c[span^="4"]{--grid-cs:4}grid>c[span^="5"]{--grid-cs:5}grid>c[span^="6"]{--grid-cs:6}grid>c[span^="7"]{--grid-cs:7}grid>c[span^="8"]{--grid-cs:8}grid>c[span^="9"]{--grid-cs:9}grid>c[span^="10"]{--grid-cs:10}grid>c[span^="11"]{--grid-cs:11}grid>c[span^="12"]{--grid-cs:12}grid>c[span$="+1"],grid>c[span="1"]{--grid-ce:1}grid>c[span$="+2"],grid>c[span$="-1"],grid>c[span="2"]{--grid-ce:2}grid>c[span$="+3"],grid>c[span$="-2"],grid>c[span="3"]{--grid-ce:3}grid>c[span$="+4"],grid>c[span$="-3"],grid>c[span="4"]{--grid-ce:4}grid>c[span$="+5"],grid>c[span$="-4"],grid>c[span="5"]{--grid-ce:5}grid>c[span$="+6"],grid>c[span$="-5"],grid>c[span="6"]{--grid-ce:6}grid>c[span$="+7"],grid>c[span$="-6"],grid>c[span="7"]{--grid-ce:7}grid>c[span$="+8"],grid>c[span$="-7"],grid>c[span="8"]{--grid-ce:8}grid>c[span$="+9"],grid>c[span$="-8"],grid>c[span="9"]{--grid-ce:9}grid>c[span$="+10"],grid>c[span$="-9"],grid>c[span="10"]{--grid-ce:10}grid>c[span$="+11"],grid>c[span$="-10"],grid>c[span="11"]{--grid-ce:11}grid>c[span$="+12"],grid>c[span$="-11"],grid>c[span="12"]{--grid-ce:12}grid>c[span$="-12"]{--grid-ce:13}grid>c[span]{grid-column-end:span var( --grid-ce )}grid>c[span*="+"],grid>c[span*="-"],grid>c[span*=".."]{grid-column-start:var( --grid-cs )}grid>c[span*="-"],grid>c[span*=".."]{grid-column-end:var( --grid-ce )}grid>c[span=row]{grid-column:1/-1}grid.debug>*{--color:hsla(7,92%,66%,.3);background-image:linear-gradient(to bottom,var( --color ) 0,var( --color ) 100%)}grid.debug>:nth-child(6n+2){--color:rgba(103,126,208,.3)}grid.debug>:nth-child(6n+3){--color:rgba(224,174,72,.3)}grid.debug>:nth-child(6n+4){--color:rgba(77,214,115,.3)}grid.debug>:nth-child(6n+5){--color:rgba(217,103,219,.3)}grid.debug>:nth-child(6n+6){--color:rgba(94,204,211,.3)}grid.debug>:nth-child(6n+7){--color:hsla(7,92%,66%,.3)}@media screen and (min-width:30em){.container{padding:0 1.5rem}.line-height-1-ns{line-height:1}.line-height-1_25-ns{line-height:1.25}.line-height-1_5-ns{line-height:1.5}.line-height-1_75-ns{line-height:1.75}.line-height-2-ns{line-height:2}.line-height-2_25-ns{line-height:2.25}.line-height-2_5-ns{line-height:2.5}.line-height-2_75-ns{line-height:2.75}.line-height-3-ns{line-height:3}}@media screen and (min-width:30em) and (max-width:60em){.container{padding:0 2rem}.line-height-1-m{line-height:1}.line-height-1_25-m{line-height:1.25}.line-height-1_5-m{line-height:1.5}.line-height-1_75-m{line-height:1.75}.line-height-2-m{line-height:2}.line-height-2_25-m{line-height:2.25}.line-height-2_5-m{line-height:2.5}.line-height-2_75-m{line-height:2.75}.line-height-3-m{line-height:3}}@media screen and (min-width:60em){.container{padding:0 3rem}.line-height-1-l{line-height:1}.line-height-1_25-l{line-height:1.25}.line-height-1_5-l{line-height:1.5}.line-height-1_75-l{line-height:1.75}.line-height-2-l{line-height:2}.line-height-2_25-l{line-height:2.25}.line-height-2_5-l{line-height:2.5}.line-height-2_75-l{line-height:2.75}.line-height-3-l{line-height:3}}@media (max-width:48.74em){grid[columns-s="1"]{--grid-tc:repeat(1,1fr)}grid[columns-s="2"]{--grid-tc:repeat(2,1fr)}grid[columns-s="3"]{--grid-tc:repeat(3,1fr)}grid[columns-s="4"]{--grid-tc:repeat(4,1fr)}grid[columns-s="5"]{--grid-tc:repeat(5,1fr)}grid[columns-s="6"]{--grid-tc:repeat(6,1fr)}grid[columns-s="7"]{--grid-tc:repeat(7,1fr)}grid[columns-s="8"]{--grid-tc:repeat(8,1fr)}grid[columns-s="9"]{--grid-tc:repeat(9,1fr)}grid[columns-s="10"]{--grid-tc:repeat(10,1fr)}grid[columns-s="11"]{--grid-tc:repeat(11,1fr)}grid[columns-s="12"]{--grid-tc:repeat(12,1fr)}grid>c[span-s^="1"]{--grid-cs:1}grid>c[span-s^="2"]{--grid-cs:2}grid>c[span-s^="3"]{--grid-cs:3}grid>c[span-s^="4"]{--grid-cs:4}grid>c[span-s^="5"]{--grid-cs:5}grid>c[span-s^="6"]{--grid-cs:6}grid>c[span-s^="7"]{--grid-cs:7}grid>c[span-s^="8"]{--grid-cs:8}grid>c[span-s^="9"]{--grid-cs:9}grid>c[span-s^="10"]{--grid-cs:10}grid>c[span-s^="11"]{--grid-cs:11}grid>c[span-s^="12"]{--grid-cs:12}grid>c[span-s$="+1"],grid>c[span-s="1"]{--grid-ce:1}grid>c[span-s$="+2"],grid>c[span-s$="-1"],grid>c[span-s="2"]{--grid-ce:2}grid>c[span-s$="+3"],grid>c[span-s$="-2"],grid>c[span-s="3"]{--grid-ce:3}grid>c[span-s$="+4"],grid>c[span-s$="-3"],grid>c[span-s="4"]{--grid-ce:4}grid>c[span-s$="+5"],grid>c[span-s$="-4"],grid>c[span-s="5"]{--grid-ce:5}grid>c[span-s$="+6"],grid>c[span-s$="-5"],grid>c[span-s="6"]{--grid-ce:6}grid>c[span-s$="+7"],grid>c[span-s$="-6"],grid>c[span-s="7"]{--grid-ce:7}grid>c[span-s$="+8"],grid>c[span-s$="-7"],grid>c[span-s="8"]{--grid-ce:8}grid>c[span-s$="+9"],grid>c[span-s$="-8"],grid>c[span-s="9"]{--grid-ce:9}grid>c[span-s$="+10"],grid>c[span-s$="-9"],grid>c[span-s="10"]{--grid-ce:10}grid>c[span-s$="+11"],grid>c[span-s$="-10"],grid>c[span-s="11"]{--grid-ce:11}grid>c[span-s$="+12"],grid>c[span-s$="-11"],grid>c[span-s="12"]{--grid-ce:12}grid>c[span-s$="-12"]{--grid-ce:13}grid>c[span-s]{grid-column-end:span var( --grid-ce )}grid>c[span-s*="+"],grid>c[span-s*="-"],grid>c[span-s*=".."]{grid-column-start:var( --grid-cs )}grid>c[span-s*="-"],grid>c[span-s*=".."]{grid-column-end:var( --grid-ce )}grid>c[span-s=row]{grid-column:1/-1}}@media (min-width:100em){grid[columns-l="1"]{--grid-tc:repeat(1,1fr)}grid[columns-l="2"]{--grid-tc:repeat(2,1fr)}grid[columns-l="3"]{--grid-tc:repeat(3,1fr)}grid[columns-l="4"]{--grid-tc:repeat(4,1fr)}grid[columns-l="5"]{--grid-tc:repeat(5,1fr)}grid[columns-l="6"]{--grid-tc:repeat(6,1fr)}grid[columns-l="7"]{--grid-tc:repeat(7,1fr)}grid[columns-l="8"]{--grid-tc:repeat(8,1fr)}grid[columns-l="9"]{--grid-tc:repeat(9,1fr)}grid[columns-l="10"]{--grid-tc:repeat(10,1fr)}grid[columns-l="11"]{--grid-tc:repeat(11,1fr)}grid[columns-l="12"]{--grid-tc:repeat(12,1fr)}grid>c[span-l^="1"]{--grid-cs:1}grid>c[span-l^="2"]{--grid-cs:2}grid>c[span-l^="3"]{--grid-cs:3}grid>c[span-l^="4"]{--grid-cs:4}grid>c[span-l^="5"]{--grid-cs:5}grid>c[span-l^="6"]{--grid-cs:6}grid>c[span-l^="7"]{--grid-cs:7}grid>c[span-l^="8"]{--grid-cs:8}grid>c[span-l^="9"]{--grid-cs:9}grid>c[span-l^="10"]{--grid-cs:10}grid>c[span-l^="11"]{--grid-cs:11}grid>c[span-l^="12"]{--grid-cs:12}grid>c[span-l$="+1"],grid>c[span-l="1"]{--grid-ce:1}grid>c[span-l$="+2"],grid>c[span-l$="-1"],grid>c[span-l="2"]{--grid-ce:2}grid>c[span-l$="+3"],grid>c[span-l$="-2"],grid>c[span-l="3"]{--grid-ce:3}grid>c[span-l$="+4"],grid>c[span-l$="-3"],grid>c[span-l="4"]{--grid-ce:4}grid>c[span-l$="+5"],grid>c[span-l$="-4"],grid>c[span-l="5"]{--grid-ce:5}grid>c[span-l$="+6"],grid>c[span-l$="-5"],grid>c[span-l="6"]{--grid-ce:6}grid>c[span-l$="+7"],grid>c[span-l$="-6"],grid>c[span-l="7"]{--grid-ce:7}grid>c[span-l$="+8"],grid>c[span-l$="-7"],grid>c[span-l="8"]{--grid-ce:8}grid>c[span-l$="+9"],grid>c[span-l$="-8"],grid>c[span-l="9"]{--grid-ce:9}grid>c[span-l$="+10"],grid>c[span-l$="-9"],grid>c[span-l="10"]{--grid-ce:10}grid>c[span-l$="+11"],grid>c[span-l$="-10"],grid>c[span-l="11"]{--grid-ce:11}grid>c[span-l$="+12"],grid>c[span-l$="-11"],grid>c[span-l="12"]{--grid-ce:12}grid>c[span-l$="-12"]{--grid-ce:13}grid>c[span-l]{grid-column-end:span var( --grid-ce )}grid>c[span-l*="+"],grid>c[span-l*="-"],grid>c[span-l*=".."]{grid-column-start:var( --grid-cs )}grid>c[span-l*="-"],grid>c[span-l*=".."]{grid-column-end:var( --grid-ce )}grid>c[span-l=row]{grid-column:1/-1}} +:root{--amber-5:oklch(.99 .02 78);--amber-10:oklch(.97 .06 78);--amber-20:oklch(.94 .11 78);--amber-30:oklch(.91 .16 78);--amber-40:oklch(.86 .2 78);--amber-50:oklch(.79 .23 78);--amber-60:oklch(.72 .21 78);--amber-70:oklch(.62 .19 78);--amber-80:oklch(.51 .17 78);--amber-90:oklch(.38 .15 78);--amber-95:oklch(.23 .13 78);--blue-5:oklch(.99 .02 260);--blue-10:oklch(.92 .06 260);--blue-20:oklch(.85 .11 260);--blue-30:oklch(.78 .16 260);--blue-40:oklch(.71 .2 260);--blue-50:oklch(.64 .23 260);--blue-60:oklch(.56 .21 260);--blue-70:oklch(.48 .19 260);--blue-80:oklch(.40 .17 260);--blue-90:oklch(.32 .15 260);--blue-95:oklch(.24 .13 260);--cyan-5:oklch(.99 .02 205);--cyan-10:oklch(.94 .06 205);--cyan-20:oklch(.89 .11 205);--cyan-30:oklch(.83 .16 205);--cyan-40:oklch(.77 .2 205);--cyan-50:oklch(.70 .23 205);--cyan-60:oklch(.62 .21 205);--cyan-70:oklch(.54 .19 205);--cyan-80:oklch(.45 .17 205);--cyan-90:oklch(.34 .15 205);--cyan-95:oklch(.23 .13 205);--emerald-5:oklch(.99 .02 169);--emerald-10:oklch(.95 .06 169);--emerald-20:oklch(.91 .11 169);--emerald-30:oklch(.86 .16 169);--emerald-40:oklch(.81 .2 169);--emerald-50:oklch(.74 .23 169);--emerald-60:oklch(.66 .21 169);--emerald-70:oklch(.57 .19 169);--emerald-80:oklch(.47 .17 169);--emerald-90:oklch(.36 .15 169);--emerald-95:oklch(.23 .13 169);--fuchsia-5:oklch(.99 .02 322);--fuchsia-10:oklch(.93 .06 322);--fuchsia-20:oklch(.87 .11 322);--fuchsia-30:oklch(.80 .16 322);--fuchsia-40:oklch(.73 .2 322);--fuchsia-50:oklch(.66 .23 322);--fuchsia-60:oklch(.59 .21 322);--fuchsia-70:oklch(.51 .19 322);--fuchsia-80:oklch(.42 .17 322);--fuchsia-90:oklch(.33 .15 322);--fuchsia-95:oklch(.24 .13 322);--green-5:oklch(.99 .02 150);--green-10:oklch(.96 .06 150);--green-20:oklch(.93 .11 150);--green-30:oklch(.88 .16 150);--green-40:oklch(.83 .2 150);--green-50:oklch(.76 .23 150);--green-60:oklch(.68 .21 150);--green-70:oklch(.59 .19 150);--green-80:oklch(.49 .17 150);--green-90:oklch(.37 .15 150);--green-95:oklch(.23 .13 150);--indigo-5:oklch(.99 .02 275);--indigo-10:oklch(.92 .06 275);--indigo-20:oklch(.84 .11 275);--indigo-30:oklch(.77 .16 275);--indigo-40:oklch(.69 .2 275);--indigo-50:oklch(.62 .23 275);--indigo-60:oklch(.54 .21 275);--indigo-70:oklch(.47 .19 275);--indigo-80:oklch(.39 .17 275);--indigo-90:oklch(.32 .15 275);--indigo-95:oklch(.24 .13 275);--lavender-5:oklch(.99 .02 285);--lavender-10:oklch(.92 .06 285);--lavender-20:oklch(.84 .11 285);--lavender-30:oklch(.77 .16 285);--lavender-40:oklch(.69 .2 285);--lavender-50:oklch(.62 .23 285);--lavender-60:oklch(.54 .21 285);--lavender-70:oklch(.47 .19 285);--lavender-80:oklch(.39 .17 285);--lavender-90:oklch(.32 .15 285);--lavender-95:oklch(.24 .13 285);--lime-5:oklch(.99 .02 127);--lime-10:oklch(.97 .06 127);--lime-20:oklch(.94 .11 127);--lime-30:oklch(.90 .16 127);--lime-40:oklch(.85 .2 127);--lime-50:oklch(.79 .23 127);--lime-60:oklch(.71 .21 127);--lime-70:oklch(.62 .19 127);--lime-80:oklch(.50 .17 127);--lime-90:oklch(.38 .15 127);--lime-95:oklch(.23 .13 127);--orange-5:oklch(.99 .02 55);--orange-10:oklch(.96 .06 55);--orange-20:oklch(.93 .11 55);--orange-30:oklch(.89 .16 55);--orange-40:oklch(.83 .2 55);--orange-50:oklch(.77 .23 55);--orange-60:oklch(.69 .21 55);--orange-70:oklch(.60 .19 55);--orange-80:oklch(.49 .17 55);--orange-90:oklch(.37 .15 55);--orange-95:oklch(.23 .13 55);--peach-5:oklch(.99 .02 35);--peach-10:oklch(.96 .06 35);--peach-20:oklch(.92 .11 35);--peach-30:oklch(.87 .16 35);--peach-40:oklch(.81 .2 35);--peach-50:oklch(.75 .23 35);--peach-60:oklch(.67 .21 35);--peach-70:oklch(.58 .19 35);--peach-80:oklch(.48 .17 35);--peach-90:oklch(.36 .15 35);--peach-95:oklch(.23 .13 35);--pink-5:oklch(.99 .02 354);--pink-10:oklch(.94 .06 354);--pink-20:oklch(.89 .11 354);--pink-30:oklch(.83 .16 354);--pink-40:oklch(.77 .2 354);--pink-50:oklch(.70 .23 354);--pink-60:oklch(.62 .21 354);--pink-70:oklch(.54 .19 354);--pink-80:oklch(.44 .17 354);--pink-90:oklch(.34 .15 354);--pink-95:oklch(.23 .13 354);--plum-5:oklch(.99 .02 310);--plum-10:oklch(.93 .06 310);--plum-20:oklch(.86 .11 310);--plum-30:oklch(.79 .16 310);--plum-40:oklch(.72 .2 310);--plum-50:oklch(.65 .23 310);--plum-60:oklch(.57 .21 310);--plum-70:oklch(.49 .19 310);--plum-80:oklch(.41 .17 310);--plum-90:oklch(.33 .15 310);--plum-95:oklch(.24 .13 310);--purple-5:oklch(.99 .02 304);--purple-10:oklch(.92 .06 304);--purple-20:oklch(.86 .11 304);--purple-30:oklch(.79 .16 304);--purple-40:oklch(.71 .2 304);--purple-50:oklch(.64 .23 304);--purple-60:oklch(.57 .21 304);--purple-70:oklch(.49 .19 304);--purple-80:oklch(.41 .17 304);--purple-90:oklch(.32 .15 304);--purple-95:oklch(.24 .13 304);--red-5:oklch(.99 .02 25);--red-10:oklch(.95 .06 25);--red-20:oklch(.91 .11 25);--red-30:oklch(.86 .16 25);--red-40:oklch(.80 .2 25);--red-50:oklch(.73 .23 25);--red-60:oklch(.66 .21 25);--red-70:oklch(.57 .19 25);--red-80:oklch(.47 .17 25);--red-90:oklch(.36 .15 25);--red-95:oklch(.23 .13 25);--rose-5:oklch(.99 .02 17);--rose-10:oklch(.95 .06 17);--rose-20:oklch(.90 .11 17);--rose-30:oklch(.85 .16 17);--rose-40:oklch(.79 .2 17);--rose-50:oklch(.72 .23 17);--rose-60:oklch(.65 .21 17);--rose-70:oklch(.56 .19 17);--rose-80:oklch(.46 .17 17);--rose-90:oklch(.35 .15 17);--rose-95:oklch(.23 .13 17);--sky-5:oklch(.99 .02 225);--sky-10:oklch(.93 .06 225);--sky-20:oklch(.88 .11 225);--sky-30:oklch(.81 .16 225);--sky-40:oklch(.75 .2 225);--sky-50:oklch(.68 .23 225);--sky-60:oklch(.60 .21 225);--sky-70:oklch(.52 .19 225);--sky-80:oklch(.43 .17 225);--sky-90:oklch(.34 .15 225);--sky-95:oklch(.24 .13 225);--teal-5:oklch(.99 .02 185);--teal-10:oklch(.95 .06 185);--teal-20:oklch(.90 .11 185);--teal-30:oklch(.85 .16 185);--teal-40:oklch(.79 .2 185);--teal-50:oklch(.72 .23 185);--teal-60:oklch(.65 .21 185);--teal-70:oklch(.56 .19 185);--teal-80:oklch(.46 .17 185);--teal-90:oklch(.35 .15 185);--teal-95:oklch(.23 .13 185);--violet-5:oklch(.99 .02 293);--violet-10:oklch(.92 .06 293);--violet-20:oklch(.85 .11 293);--violet-30:oklch(.78 .16 293);--violet-40:oklch(.70 .2 293);--violet-50:oklch(.63 .23 293);--violet-60:oklch(.55 .21 293);--violet-70:oklch(.48 .19 293);--violet-80:oklch(.40 .17 293);--violet-90:oklch(.32 .15 293);--violet-95:oklch(.24 .13 293);--yellow-5:oklch(.99 .02 98);--yellow-10:oklch(.98 .06 98);--yellow-20:oklch(.96 .11 98);--yellow-30:oklch(.93 .16 98);--yellow-40:oklch(.88 .2 98);--yellow-50:oklch(.82 .23 98);--yellow-60:oklch(.74 .21 98);--yellow-70:oklch(.64 .19 98);--yellow-80:oklch(.52 .17 98);--yellow-90:oklch(.39 .15 98);--yellow-95:oklch(.23 .13 98)}.border-color-5{border-color:light-dark(var( --base-90 ),var( --base-5 ))}.border-color-10{border-color:light-dark(var( --base-80 ),var( --base-10 ))}.border-color-20{border-color:light-dark(var( --base-70 ),var( --base-20 ))}.border-color-30{border-color:light-dark(var( --base-60 ),var( --base-30 ))}.border-color-40{border-color:light-dark(var( --base-50 ),var( --base-40 ))}.border-color-50{border-color:light-dark(var( --base-40 ),var( --base-50 ))}.border-color-60{border-color:light-dark(var( --base-30 ),var( --base-60 ))}.border-color-70{border-color:light-dark(var( --base-20 ),var( --base-70 ))}.border-color-80{border-color:light-dark(var( --base-10 ),var( --base-80 ))}.border-color-90{border-color:light-dark(var( --base-5 ),var( --base-90 ))}.border-1px{border-width:1px}.border-2px{border-width:2px}.border-3px{border-width:3px}.border-4px{border-width:4px}.border-5px{border-width:5px}.border-radius-0{border-radius:0}.border-radius-0_125{border-radius:.125rem}.border-radius-0_25{border-radius:.25rem}.border-radius-0_5{border-radius:.5rem}.border-radius-0_625{border-radius:.625rem}.border-radius-0_75{border-radius:.75rem}.border-radius-1{border-radius:1rem}.border-radius-full{border-radius:100%}.border-top-left-radius-0{border-top-left-radius:0}.border-top-left-radius-0_125{border-top-left-radius:.125rem}.border-top-left-radius-0_25{border-top-left-radius:.25rem}.border-top-left-radius-0_5{border-top-left-radius:.5rem}.border-top-left-radius-0_625{border-top-left-radius:.625rem}.border-top-left-radius-0_75{border-top-left-radius:.75rem}.border-top-left-radius-1{border-top-left-radius:1rem}.border-top-left-radius-full{border-top-left-radius:100%}.border-top-right-radius-0{border-top-right-radius:0}.border-top-right-radius-0_125{border-top-right-radius:.125rem}.border-top-right-radius-0_25{border-top-right-radius:.25rem}.border-top-right-radius-0_5{border-top-right-radius:.5rem}.border-top-right-radius-0_625{border-top-right-radius:.625rem}.border-top-right-radius-0_75{border-top-right-radius:.75rem}.border-top-right-radius-1{border-top-right-radius:1rem}.border-top-right-radius-full{border-top-right-radius:100%}.border-bottom-left-radius-0{border-bottom-left-radius:0}.border-bottom-left-radius-0_125{border-bottom-left-radius:.125rem}.border-bottom-left-radius-0_25{border-bottom-left-radius:.25rem}.border-bottom-left-radius-0_5{border-bottom-left-radius:.5rem}.border-bottom-left-radius-0_625{border-bottom-left-radius:.625rem}.border-bottom-left-radius-0_75{border-bottom-left-radius:.75rem}.border-bottom-left-radius-1{border-bottom-left-radius:1rem}.border-bottom-left-radius-full{border-bottom-left-radius:100%}.border-bottom-right-radius-0{border-bottom-right-radius:0}.border-bottom-right-radius-0_125{border-bottom-right-radius:.125rem}.border-bottom-right-radius-0_25{border-bottom-right-radius:.25rem}.border-bottom-right-radius-0_5{border-bottom-right-radius:.5rem}.border-bottom-right-radius-0_625{border-bottom-right-radius:.625rem}.border-bottom-right-radius-0_75{border-bottom-right-radius:.75rem}.border-bottom-right-radius-1{border-bottom-right-radius:1rem}.border-bottom-right-radius-full{border-bottom-right-radius:100%}.border-top-radius-0{border-top-left-radius:0;border-top-right-radius:0}.border-top-radius-0_125{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.border-top-radius-0_25{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border-top-radius-0_625{border-top-left-radius:.625rem;border-top-right-radius:.625rem}.border-top-radius-0_5{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border-top-radius-0_75{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.border-top-radius-1{border-top-left-radius:1rem;border-top-right-radius:1rem}.border-top-radius-full{border-top-left-radius:100%;border-top-right-radius:100%}.border-right-radius-0{border-bottom-right-radius:0;border-top-right-radius:0}.border-right-radius-0_125{border-bottom-right-radius:.125rem;border-top-right-radius:.125rem}.border-right-radius-0_25{border-bottom-right-radius:.25rem;border-top-right-radius:.25rem}.border-right-radius-0_625{border-bottom-right-radius:.625rem;border-top-right-radius:.625rem}.border-right-radius-0_5{border-bottom-right-radius:.5rem;border-top-right-radius:.5rem}.border-right-radius-0_75{border-bottom-right-radius:.75rem;border-top-right-radius:.75rem}.border-right-radius-1{border-bottom-right-radius:1rem;border-top-right-radius:1rem}.border-right-radius-full{border-bottom-right-radius:100%;border-top-right-radius:100%}.border-bottom-radius-0{border-bottom-left-radius:0;border-bottom-right-radius:0}.border-bottom-radius-0_125{border-bottom-left-radius:.125rem;border-bottom-right-radius:.125rem}.border-bottom-radius-0_25{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.border-bottom-radius-0_5{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.border-bottom-radius-0_625{border-bottom-left-radius:.625rem;border-bottom-right-radius:.625rem}.border-bottom-radius-0_75{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.border-bottom-radius-1{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.border-bottom-radius-full{border-bottom-left-radius:100%;border-bottom-right-radius:100%}.border-left-radius-0{border-bottom-left-radius:0;border-top-left-radius:0}.border-left-radius-0_125{border-bottom-left-radius:.125rem;border-top-left-radius:.125rem}.border-left-radius-0_25{border-bottom-left-radius:.25rem;border-top-left-radius:.25rem}.border-left-radius-0_5{border-bottom-left-radius:.5rem;border-top-left-radius:.5rem}.border-left-radius-0_625{border-bottom-left-radius:.625rem;border-top-left-radius:.625rem}.border-left-radius-0_75{border-bottom-left-radius:.75rem;border-top-left-radius:.75rem}.border-left-radius-1{border-bottom-left-radius:1rem;border-top-left-radius:1rem}.border-left-radius-full{border-bottom-left-radius:100%;border-top-left-radius:100%}.border-radius-1px{border-radius:1px}.border-radius-2px{border-radius:2px}.border-radius-3px{border-radius:3px}.border-radius-4px{border-radius:4px}.border-radius-5px{border-radius:5px}.border-radius-6px{border-radius:6px}.border-radius-7px{border-radius:7px}.border-radius-8px{border-radius:8px}.border-radius-9px{border-radius:9px}.border-radius-10px{border-radius:10px}.border-radius-11px{border-radius:11px}.border-radius-12px{border-radius:12px}.border-radius-13px{border-radius:13px}.border-radius-14px{border-radius:14px}.border-radius-15px{border-radius:15px}.border-radius-16px{border-radius:16px}.border-radius-17px{border-radius:17px}.border-radius-18px{border-radius:18px}.border-radius-19px{border-radius:19px}.border-radius-20px{border-radius:20px}.border-top-left-radius-1px{border-top-left-radius:1px}.border-top-left-radius-2px{border-top-left-radius:2px}.border-top-left-radius-3px{border-top-left-radius:3px}.border-top-left-radius-4px{border-top-left-radius:4px}.border-top-left-radius-5px{border-top-left-radius:5px}.border-top-left-radius-6px{border-top-left-radius:6px}.border-top-left-radius-7px{border-top-left-radius:7px}.border-top-left-radius-8px{border-top-left-radius:8px}.border-top-left-radius-9px{border-top-left-radius:9px}.border-top-left-radius-10px{border-top-left-radius:10px}.border-top-left-radius-11px{border-top-left-radius:11px}.border-top-left-radius-12px{border-top-left-radius:12px}.border-top-left-radius-13px{border-top-left-radius:13px}.border-top-left-radius-14px{border-top-left-radius:14px}.border-top-left-radius-15px{border-top-left-radius:15px}.border-top-left-radius-16px{border-top-left-radius:16px}.border-top-left-radius-17px{border-top-left-radius:17px}.border-top-left-radius-18px{border-top-left-radius:18px}.border-top-left-radius-19px{border-top-left-radius:19px}.border-top-left-radius-20px{border-top-left-radius:20px}.border-top-right-radius-1px{border-top-right-radius:1px}.border-top-right-radius-2px{border-top-right-radius:2px}.border-top-right-radius-3px{border-top-right-radius:3px}.border-top-right-radius-4px{border-top-right-radius:4px}.border-top-right-radius-5px{border-top-right-radius:5px}.border-top-right-radius-6px{border-top-right-radius:6px}.border-top-right-radius-7px{border-top-right-radius:7px}.border-top-right-radius-8px{border-top-right-radius:8px}.border-top-right-radius-9px{border-top-right-radius:9px}.border-top-right-radius-10px{border-top-right-radius:10px}.border-top-right-radius-11px{border-top-right-radius:11px}.border-top-right-radius-12px{border-top-right-radius:12px}.border-top-right-radius-13px{border-top-right-radius:13px}.border-top-right-radius-14px{border-top-right-radius:14px}.border-top-right-radius-15px{border-top-right-radius:15px}.border-top-right-radius-16px{border-top-right-radius:16px}.border-top-right-radius-17px{border-top-right-radius:17px}.border-top-right-radius-18px{border-top-right-radius:18px}.border-top-right-radius-19px{border-top-right-radius:19px}.border-top-right-radius-20px{border-top-right-radius:20px}.border-bottom-left-radius-1px{border-bottom-left-radius:1px}.border-bottom-left-radius-2px{border-bottom-left-radius:2px}.border-bottom-left-radius-3px{border-bottom-left-radius:3px}.border-bottom-left-radius-4px{border-bottom-left-radius:4px}.border-bottom-left-radius-5px{border-bottom-left-radius:5px}.border-bottom-left-radius-6px{border-bottom-left-radius:6px}.border-bottom-left-radius-7px{border-bottom-left-radius:7px}.border-bottom-left-radius-8px{border-bottom-left-radius:8px}.border-bottom-left-radius-9px{border-bottom-left-radius:9px}.border-bottom-left-radius-10px{border-bottom-left-radius:10px}.border-bottom-left-radius-11px{border-bottom-left-radius:11px}.border-bottom-left-radius-12px{border-bottom-left-radius:12px}.border-bottom-left-radius-13px{border-bottom-left-radius:13px}.border-bottom-left-radius-14px{border-bottom-left-radius:14px}.border-bottom-left-radius-15px{border-bottom-left-radius:15px}.border-bottom-left-radius-16px{border-bottom-left-radius:16px}.border-bottom-left-radius-17px{border-bottom-left-radius:17px}.border-bottom-left-radius-18px{border-bottom-left-radius:18px}.border-bottom-left-radius-19px{border-bottom-left-radius:19px}.border-bottom-left-radius-20px{border-bottom-left-radius:20px}.border-bottom-right-radius-1px{border-bottom-right-radius:1px}.border-bottom-right-radius-2px{border-bottom-right-radius:2px}.border-bottom-right-radius-3px{border-bottom-right-radius:3px}.border-bottom-right-radius-4px{border-bottom-right-radius:4px}.border-bottom-right-radius-5px{border-bottom-right-radius:5px}.border-bottom-right-radius-6px{border-bottom-right-radius:6px}.border-bottom-right-radius-7px{border-bottom-right-radius:7px}.border-bottom-right-radius-8px{border-bottom-right-radius:8px}.border-bottom-right-radius-9px{border-bottom-right-radius:9px}.border-bottom-right-radius-10px{border-bottom-right-radius:10px}.border-bottom-right-radius-11px{border-bottom-right-radius:11px}.border-bottom-right-radius-12px{border-bottom-right-radius:12px}.border-bottom-right-radius-13px{border-bottom-right-radius:13px}.border-bottom-right-radius-14px{border-bottom-right-radius:14px}.border-bottom-right-radius-15px{border-bottom-right-radius:15px}.border-bottom-right-radius-16px{border-bottom-right-radius:16px}.border-bottom-right-radius-17px{border-bottom-right-radius:17px}.border-bottom-right-radius-18px{border-bottom-right-radius:18px}.border-bottom-right-radius-19px{border-bottom-right-radius:19px}.border-bottom-right-radius-20px{border-bottom-right-radius:20px}.border-top-radius-1px{border-top-left-radius:1px;border-top-right-radius:1px}.border-top-radius-2px{border-top-left-radius:2px;border-top-right-radius:2px}.border-top-radius-3px{border-top-left-radius:3px;border-top-right-radius:3px}.border-top-radius-4px{border-top-left-radius:4px;border-top-right-radius:4px}.border-top-radius-5px{border-top-left-radius:5px;border-top-right-radius:5px}.border-top-radius-6px{border-top-left-radius:6px;border-top-right-radius:6px}.border-top-radius-7px{border-top-left-radius:7px;border-top-right-radius:7px}.border-top-radius-8px{border-top-left-radius:8px;border-top-right-radius:8px}.border-top-radius-9px{border-top-left-radius:9px;border-top-right-radius:9px}.border-top-radius-10px{border-top-left-radius:10px;border-top-right-radius:10px}.border-top-radius-11px{border-top-left-radius:11px;border-top-right-radius:11px}.border-top-radius-12px{border-top-left-radius:12px;border-top-right-radius:12px}.border-top-radius-13px{border-top-left-radius:13px;border-top-right-radius:13px}.border-top-radius-14px{border-top-left-radius:14px;border-top-right-radius:14px}.border-top-radius-15px{border-top-left-radius:15px;border-top-right-radius:15px}.border-top-radius-16px{border-top-left-radius:16px;border-top-right-radius:16px}.border-top-radius-17px{border-top-left-radius:17px;border-top-right-radius:17px}.border-top-radius-18px{border-top-left-radius:18px;border-top-right-radius:18px}.border-top-radius-19px{border-top-left-radius:19px;border-top-right-radius:19px}.border-top-radius-20px{border-top-left-radius:20px;border-top-right-radius:20px}.border-right-radius-1px{border-bottom-right-radius:1px;border-top-right-radius:1px}.border-right-radius-2px{border-bottom-right-radius:2px;border-top-right-radius:2px}.border-right-radius-3px{border-bottom-right-radius:3px;border-top-right-radius:3px}.border-right-radius-4px{border-bottom-right-radius:4px;border-top-right-radius:4px}.border-right-radius-5px{border-bottom-right-radius:5px;border-top-right-radius:5px}.border-right-radius-6px{border-bottom-right-radius:6px;border-top-right-radius:6px}.border-right-radius-7px{border-bottom-right-radius:7px;border-top-right-radius:7px}.border-right-radius-8px{border-bottom-right-radius:8px;border-top-right-radius:8px}.border-right-radius-9px{border-bottom-right-radius:9px;border-top-right-radius:9px}.border-right-radius-10px{border-bottom-right-radius:10px;border-top-right-radius:10px}.border-right-radius-11px{border-bottom-right-radius:11px;border-top-right-radius:11px}.border-right-radius-12px{border-bottom-right-radius:12px;border-top-right-radius:12px}.border-right-radius-13px{border-bottom-right-radius:13px;border-top-right-radius:13px}.border-right-radius-14px{border-bottom-right-radius:14px;border-top-right-radius:14px}.border-right-radius-15px{border-bottom-right-radius:15px;border-top-right-radius:15px}.border-right-radius-16px{border-bottom-right-radius:16px;border-top-right-radius:16px}.border-right-radius-17px{border-bottom-right-radius:17px;border-top-right-radius:17px}.border-right-radius-18px{border-bottom-right-radius:18px;border-top-right-radius:18px}.border-right-radius-19px{border-bottom-right-radius:19px;border-top-right-radius:19px}.border-right-radius-20px{border-bottom-right-radius:20px;border-top-right-radius:20px}.border-bottom-radius-1px{border-bottom-left-radius:1px;border-bottom-right-radius:1px}.border-bottom-radius-2px{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.border-bottom-radius-3px{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.border-bottom-radius-4px{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.border-bottom-radius-5px{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.border-bottom-radius-6px{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.border-bottom-radius-7px{border-bottom-left-radius:7px;border-bottom-right-radius:7px}.border-bottom-radius-8px{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.border-bottom-radius-9px{border-bottom-left-radius:9px;border-bottom-right-radius:9px}.border-bottom-radius-10px{border-bottom-left-radius:10px;border-bottom-right-radius:10px}.border-bottom-radius-11px{border-bottom-left-radius:11px;border-bottom-right-radius:11px}.border-bottom-radius-12px{border-bottom-left-radius:12px;border-bottom-right-radius:12px}.border-bottom-radius-13px{border-bottom-left-radius:13px;border-bottom-right-radius:13px}.border-bottom-radius-14px{border-bottom-left-radius:14px;border-bottom-right-radius:14px}.border-bottom-radius-15px{border-bottom-left-radius:15px;border-bottom-right-radius:15px}.border-bottom-radius-16px{border-bottom-left-radius:16px;border-bottom-right-radius:16px}.border-bottom-radius-17px{border-bottom-left-radius:17px;border-bottom-right-radius:17px}.border-bottom-radius-18px{border-bottom-left-radius:18px;border-bottom-right-radius:18px}.border-bottom-radius-19px{border-bottom-left-radius:19px;border-bottom-right-radius:19px}.border-bottom-radius-20px{border-bottom-left-radius:20px;border-bottom-right-radius:20px}.border-left-radius-1px{border-bottom-left-radius:1px;border-top-left-radius:1px}.border-left-radius-2px{border-bottom-left-radius:2px;border-top-left-radius:2px}.border-left-radius-3px{border-bottom-left-radius:3px;border-top-left-radius:3px}.border-left-radius-4px{border-bottom-left-radius:4px;border-top-left-radius:4px}.border-left-radius-5px{border-bottom-left-radius:5px;border-top-left-radius:5px}.border-left-radius-6px{border-bottom-left-radius:6px;border-top-left-radius:6px}.border-left-radius-7px{border-bottom-left-radius:7px;border-top-left-radius:7px}.border-left-radius-8px{border-bottom-left-radius:8px;border-top-left-radius:8px}.border-left-radius-9px{border-bottom-left-radius:9px;border-top-left-radius:9px}.border-left-radius-10px{border-bottom-left-radius:10px;border-top-left-radius:10px}.border-left-radius-11px{border-bottom-left-radius:11px;border-top-left-radius:11px}.border-left-radius-12px{border-bottom-left-radius:12px;border-top-left-radius:12px}.border-left-radius-13px{border-bottom-left-radius:13px;border-top-left-radius:13px}.border-left-radius-14px{border-bottom-left-radius:14px;border-top-left-radius:14px}.border-left-radius-15px{border-bottom-left-radius:15px;border-top-left-radius:15px}.border-left-radius-16px{border-bottom-left-radius:16px;border-top-left-radius:16px}.border-left-radius-17px{border-bottom-left-radius:17px;border-top-left-radius:17px}.border-left-radius-18px{border-bottom-left-radius:18px;border-top-left-radius:18px}.border-left-radius-19px{border-bottom-left-radius:19px;border-top-left-radius:19px}.border-left-radius-20px{border-bottom-left-radius:20px;border-top-left-radius:20px}.container{margin:0 auto;max-width:90rem;padding:0 1rem;width:100%}.hero{align-content:center;min-height:100vh;text-align:center}.debug *{outline:1px solid gold}.display-none{display:none}.display-inline{display:inline}.display-block{display:block}.display-inline-block{display:inline-block}.display-inline-table{display:inline-table}.display-table{display:table}.display-table-cell{display:table-cell}.display-table-row{display:table-row}.display-table-row-group{display:table-row-group}.display-table-column{display:table-column}.display-table-column-group{display:table-column-group}.table-layout-fixed{table-layout:fixed;width:100%}.display-flex{display:flex}.display-inline-flex{display:inline-flex}.flex-direction-row{flex-direction:row}.flex-direction-row-reverse{flex-direction:row-reverse}.flex-direction-column{flex-direction:column}.flex-direction-column-reverse{flex-direction:column-reverse}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto;min-height:0;min-width:0}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.flex-wrap-wrap{flex-wrap:wrap}.flex-wrap-nowrap{flex-wrap:nowrap}.flex-wrap-wrap-reverse{flex-wrap:wrap-reverse}.align-items-flex-start{align-items:flex-start}.align-items-flex-end{align-items:flex-end}.align-items-center{align-items:center}.align-items-baseline{align-items:baseline}.align-items-stretch{align-items:stretch}.align-self-flex-start{align-self:flex-start}.align-self-flex-end{align-self:flex-end}.align-self-center{align-self:center}.align-self-baseline{align-self:baseline}.align-self-stretch{align-self:stretch}.justify-content-flex-start{justify-content:flex-start}.justify-content-flex-end{justify-content:flex-end}.justify-content-center{justify-content:center}.justify-content-space-between{justify-content:space-between}.justify-content-space-around{justify-content:space-around}.align-content-flex-start{align-content:flex-start}.align-content-flex-end{align-content:flex-end}.align-content-center{align-content:center}.align-content-space-between{align-content:space-between}.align-content-space-around{align-content:space-around}.align-content-stretch{align-content:stretch}.flex-grow-1{flex-grow:1}.flex-grow-0{flex-grow:0}.sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica neue,helvetica,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.serif{font-family:georgia,times,serif}.font-weight-1{font-weight:100}.font-weight-2{font-weight:200}.font-weight-3{font-weight:300}.font-weight-4{font-weight:400}.font-weight-5{font-weight:500}.font-weight-6{font-weight:600}.font-weight-7{font-weight:700}.font-weight-8{font-weight:800}.font-weight-9{font-weight:900}.font-weight-b{font-weight:700}.line-height-1{line-height:1}.line-height-1_25{line-height:1.25}.line-height-1_5{line-height:1.5}.line-height-1_75{line-height:1.75}.line-height-2{line-height:2}.line-height-2_25{line-height:2.25}.line-height-2_5{line-height:2.5}.line-height-2_75{line-height:2.75}.line-height-3{line-height:3}.copy{line-height:1.5}.list-style-type-none{list-style-type:none}.list-style-type-disc{list-style-type:disc}.list-style-type-decimal{list-style-type:decimal}.list-style-type-lower-roman{list-style-type:lower-roman}.list-style-type-upper-roman{list-style-type:upper-roman}.list-style-type-lower-alpha{list-style-type:lower-alpha}.list-style-type-upper-alpha{list-style-type:upper-alpha}.list-style-type-circle{list-style-type:circle}.margin-1px{margin:1px}.margin-2px{margin:2px}.margin-3px{margin:3px}.margin-4px{margin:4px}.margin-5px{margin:5px}.margin-6px{margin:6px}.margin-7px{margin:7px}.margin-8px{margin:8px}.margin-9px{margin:9px}.margin-10px{margin:10px}.margin-0{margin:0}.margin-0_25{margin:.25rem}.margin-0_5{margin:.5rem}.margin-0_75{margin:.75rem}.margin-1{margin:1rem}.margin-1_25{margin:1.25rem}.margin-1_5{margin:1.5rem}.margin-1_75{margin:1.75rem}.margin-2{margin:2rem}.margin-2_25{margin:2.25rem}.margin-2_5{margin:2.5rem}.margin-2_75{margin:2.75rem}.margin-3{margin:3rem}.margin-3_25{margin:3.25rem}.margin-3_5{margin:3.5rem}.margin-3_75{margin:3.75rem}.margin-4{margin:4rem}.margin-4_25{margin:4.25rem}.margin-4_5{margin:4.5rem}.margin-4_75{margin:4.75rem}.margin-5{margin:5rem}.margin-5_25{margin:5.25rem}.margin-5_5{margin:5.5rem}.margin-5_75{margin:5.75rem}.margin-6{margin:6rem}.margin-6_25{margin:6.25rem}.margin-6_5{margin:6.5rem}.margin-6_75{margin:6.75rem}.margin-7{margin:7rem}.margin-7_25{margin:7.25rem}.margin-7_5{margin:7.5rem}.margin-7_75{margin:7.75rem}.margin-8{margin:8rem}.margin-8_25{margin:8.25rem}.margin-8_5{margin:8.5rem}.margin-8_75{margin:8.75rem}.margin-9{margin:9rem}.margin-9_25{margin:9.25rem}.margin-9_5{margin:9.5rem}.margin-9_75{margin:9.75rem}.margin-10{margin:10rem}.margin-10_25{margin:10.25rem}.margin-10_5{margin:10.5rem}.margin-10_75{margin:10.75rem}.margin-11{margin:11rem}.margin-11_25{margin:11.25rem}.margin-11_5{margin:11.5rem}.margin-11_75{margin:11.75rem}.margin-12{margin:12rem}.margin-12_25{margin:12.25rem}.margin-12_5{margin:12.5rem}.margin-12_75{margin:12.75rem}.margin-13{margin:13rem}.margin-13_25{margin:13.25rem}.margin-13_5{margin:13.5rem}.margin-13_75{margin:13.75rem}.margin-14{margin:14rem}.margin-14_25{margin:14.25rem}.margin-14_5{margin:14.5rem}.margin-14_75{margin:14.75rem}.margin-15{margin:15rem}.margin-15_25{margin:15.25rem}.margin-15_5{margin:15.5rem}.margin-15_75{margin:15.75rem}.margin-16{margin:16rem}.margin-16_25{margin:16.25rem}.margin-16_5{margin:16.5rem}.margin-16_75{margin:16.75rem}.margin-17{margin:17rem}.margin-17_25{margin:17.25rem}.margin-17_5{margin:17.5rem}.margin-17_75{margin:17.75rem}.margin-18{margin:18rem}.margin-18_25{margin:18.25rem}.margin-18_5{margin:18.5rem}.margin-18_75{margin:18.75rem}.margin-19{margin:19rem}.margin-19_25{margin:19.25rem}.margin-19_5{margin:19.5rem}.margin-19_75{margin:19.75rem}.margin-20{margin:20rem}.margin-auto{margin:auto}.margin-top-1px{margin-top:1px}.margin-top-2px{margin-top:2px}.margin-top-3px{margin-top:3px}.margin-top-4px{margin-top:4px}.margin-top-5px{margin-top:5px}.margin-top-6px{margin-top:6px}.margin-top-7px{margin-top:7px}.margin-top-8px{margin-top:8px}.margin-top-9px{margin-top:9px}.margin-top-10px{margin-top:10px}.margin-top-0{margin-top:0}.margin-top-0_25{margin-top:.25rem}.margin-top-0_5{margin-top:.5rem}.margin-top-0_75{margin-top:.75rem}.margin-top-1{margin-top:1rem}.margin-top-1_25{margin-top:1.25rem}.margin-top-1_5{margin-top:1.5rem}.margin-top-1_75{margin-top:1.75rem}.margin-top-2{margin-top:2rem}.margin-top-2_25{margin-top:2.25rem}.margin-top-2_5{margin-top:2.5rem}.margin-top-2_75{margin-top:2.75rem}.margin-top-3{margin-top:3rem}.margin-top-3_25{margin-top:3.25rem}.margin-top-3_5{margin-top:3.5rem}.margin-top-3_75{margin-top:3.75rem}.margin-top-4{margin-top:4rem}.margin-top-4_25{margin-top:4.25rem}.margin-top-4_5{margin-top:4.5rem}.margin-top-4_75{margin-top:4.75rem}.margin-top-5{margin-top:5rem}.margin-top-5_25{margin-top:5.25rem}.margin-top-5_5{margin-top:5.5rem}.margin-top-5_75{margin-top:5.75rem}.margin-top-6{margin-top:6rem}.margin-top-6_25{margin-top:6.25rem}.margin-top-6_5{margin-top:6.5rem}.margin-top-6_75{margin-top:6.75rem}.margin-top-7{margin-top:7rem}.margin-top-7_25{margin-top:7.25rem}.margin-top-7_5{margin-top:7.5rem}.margin-top-7_75{margin-top:7.75rem}.margin-top-8{margin-top:8rem}.margin-top-8_25{margin-top:8.25rem}.margin-top-8_5{margin-top:8.5rem}.margin-top-8_75{margin-top:8.75rem}.margin-top-9{margin-top:9rem}.margin-top-9_25{margin-top:9.25rem}.margin-top-9_5{margin-top:9.5rem}.margin-top-9_75{margin-top:9.75rem}.margin-top-10{margin-top:10rem}.margin-top-10_25{margin-top:10.25rem}.margin-top-10_5{margin-top:10.5rem}.margin-top-10_75{margin-top:10.75rem}.margin-top-11{margin-top:11rem}.margin-top-11_25{margin-top:11.25rem}.margin-top-11_5{margin-top:11.5rem}.margin-top-11_75{margin-top:11.75rem}.margin-top-12{margin-top:12rem}.margin-top-12_25{margin-top:12.25rem}.margin-top-12_5{margin-top:12.5rem}.margin-top-12_75{margin-top:12.75rem}.margin-top-13{margin-top:13rem}.margin-top-13_25{margin-top:13.25rem}.margin-top-13_5{margin-top:13.5rem}.margin-top-13_75{margin-top:13.75rem}.margin-top-14{margin-top:14rem}.margin-top-14_25{margin-top:14.25rem}.margin-top-14_5{margin-top:14.5rem}.margin-top-14_75{margin-top:14.75rem}.margin-top-15{margin-top:15rem}.margin-top-15_25{margin-top:15.25rem}.margin-top-15_5{margin-top:15.5rem}.margin-top-15_75{margin-top:15.75rem}.margin-top-16{margin-top:16rem}.margin-top-16_25{margin-top:16.25rem}.margin-top-16_5{margin-top:16.5rem}.margin-top-16_75{margin-top:16.75rem}.margin-top-17{margin-top:17rem}.margin-top-17_25{margin-top:17.25rem}.margin-top-17_5{margin-top:17.5rem}.margin-top-17_75{margin-top:17.75rem}.margin-top-18{margin-top:18rem}.margin-top-18_25{margin-top:18.25rem}.margin-top-18_5{margin-top:18.5rem}.margin-top-18_75{margin-top:18.75rem}.margin-top-19{margin-top:19rem}.margin-top-19_25{margin-top:19.25rem}.margin-top-19_5{margin-top:19.5rem}.margin-top-19_75{margin-top:19.75rem}.margin-top-20{margin-top:20rem}.margin-top-auto{margin-top:auto}.margin-right-1px{margin-right:1px}.margin-right-2px{margin-right:2px}.margin-right-3px{margin-right:3px}.margin-right-4px{margin-right:4px}.margin-right-5px{margin-right:5px}.margin-right-6px{margin-right:6px}.margin-right-7px{margin-right:7px}.margin-right-8px{margin-right:8px}.margin-right-9px{margin-right:9px}.margin-right-10px{margin-right:10px}.margin-right-0{margin-right:0}.margin-right-0_25{margin-right:.25rem}.margin-right-0_5{margin-right:.5rem}.margin-right-0_75{margin-right:.75rem}.margin-right-1{margin-right:1rem}.margin-right-1_25{margin-right:1.25rem}.margin-right-1_5{margin-right:1.5rem}.margin-right-1_75{margin-right:1.75rem}.margin-right-2{margin-right:2rem}.margin-right-2_25{margin-right:2.25rem}.margin-right-2_5{margin-right:2.5rem}.margin-right-2_75{margin-right:2.75rem}.margin-right-3{margin-right:3rem}.margin-right-3_25{margin-right:3.25rem}.margin-right-3_5{margin-right:3.5rem}.margin-right-3_75{margin-right:3.75rem}.margin-right-4{margin-right:4rem}.margin-right-4_25{margin-right:4.25rem}.margin-right-4_5{margin-right:4.5rem}.margin-right-4_75{margin-right:4.75rem}.margin-right-5{margin-right:5rem}.margin-right-5_25{margin-right:5.25rem}.margin-right-5_5{margin-right:5.5rem}.margin-right-5_75{margin-right:5.75rem}.margin-right-6{margin-right:6rem}.margin-right-6_25{margin-right:6.25rem}.margin-right-6_5{margin-right:6.5rem}.margin-right-6_75{margin-right:6.75rem}.margin-right-7{margin-right:7rem}.margin-right-7_25{margin-right:7.25rem}.margin-right-7_5{margin-right:7.5rem}.margin-right-7_75{margin-right:7.75rem}.margin-right-8{margin-right:8rem}.margin-right-8_25{margin-right:8.25rem}.margin-right-8_5{margin-right:8.5rem}.margin-right-8_75{margin-right:8.75rem}.margin-right-9{margin-right:9rem}.margin-right-9_25{margin-right:9.25rem}.margin-right-9_5{margin-right:9.5rem}.margin-right-9_75{margin-right:9.75rem}.margin-right-10{margin-right:10rem}.margin-right-10_25{margin-right:10.25rem}.margin-right-10_5{margin-right:10.5rem}.margin-right-10_75{margin-right:10.75rem}.margin-right-11{margin-right:11rem}.margin-right-11_25{margin-right:11.25rem}.margin-right-11_5{margin-right:11.5rem}.margin-right-11_75{margin-right:11.75rem}.margin-right-12{margin-right:12rem}.margin-right-12_25{margin-right:12.25rem}.margin-right-12_5{margin-right:12.5rem}.margin-right-12_75{margin-right:12.75rem}.margin-right-13{margin-right:13rem}.margin-right-13_25{margin-right:13.25rem}.margin-right-13_5{margin-right:13.5rem}.margin-right-13_75{margin-right:13.75rem}.margin-right-14{margin-right:14rem}.margin-right-14_25{margin-right:14.25rem}.margin-right-14_5{margin-right:14.5rem}.margin-right-14_75{margin-right:14.75rem}.margin-right-15{margin-right:15rem}.margin-right-15_25{margin-right:15.25rem}.margin-right-15_5{margin-right:15.5rem}.margin-right-15_75{margin-right:15.75rem}.margin-right-16{margin-right:16rem}.margin-right-16_25{margin-right:16.25rem}.margin-right-16_5{margin-right:16.5rem}.margin-right-16_75{margin-right:16.75rem}.margin-right-17{margin-right:17rem}.margin-right-17_25{margin-right:17.25rem}.margin-right-17_5{margin-right:17.5rem}.margin-right-17_75{margin-right:17.75rem}.margin-right-18{margin-right:18rem}.margin-right-18_25{margin-right:18.25rem}.margin-right-18_5{margin-right:18.5rem}.margin-right-18_75{margin-right:18.75rem}.margin-right-19{margin-right:19rem}.margin-right-19_25{margin-right:19.25rem}.margin-right-19_5{margin-right:19.5rem}.margin-right-19_75{margin-right:19.75rem}.margin-right-20{margin-right:20rem}.margin-right-auto{margin-right:auto}.margin-bottom-1px{margin-bottom:1px}.margin-bottom-2px{margin-bottom:2px}.margin-bottom-3px{margin-bottom:3px}.margin-bottom-4px{margin-bottom:4px}.margin-bottom-5px{margin-bottom:5px}.margin-bottom-6px{margin-bottom:6px}.margin-bottom-7px{margin-bottom:7px}.margin-bottom-8px{margin-bottom:8px}.margin-bottom-9px{margin-bottom:9px}.margin-bottom-10px{margin-bottom:10px}.margin-bottom-0{margin-bottom:0}.margin-bottom-0_25{margin-bottom:.25rem}.margin-bottom-0_5{margin-bottom:.5rem}.margin-bottom-0_75{margin-bottom:.75rem}.margin-bottom-1{margin-bottom:1rem}.margin-bottom-1_25{margin-bottom:1.25rem}.margin-bottom-1_5{margin-bottom:1.5rem}.margin-bottom-1_75{margin-bottom:1.75rem}.margin-bottom-2{margin-bottom:2rem}.margin-bottom-2_25{margin-bottom:2.25rem}.margin-bottom-2_5{margin-bottom:2.5rem}.margin-bottom-2_75{margin-bottom:2.75rem}.margin-bottom-3{margin-bottom:3rem}.margin-bottom-3_25{margin-bottom:3.25rem}.margin-bottom-3_5{margin-bottom:3.5rem}.margin-bottom-3_75{margin-bottom:3.75rem}.margin-bottom-4{margin-bottom:4rem}.margin-bottom-4_25{margin-bottom:4.25rem}.margin-bottom-4_5{margin-bottom:4.5rem}.margin-bottom-4_75{margin-bottom:4.75rem}.margin-bottom-5{margin-bottom:5rem}.margin-bottom-5_25{margin-bottom:5.25rem}.margin-bottom-5_5{margin-bottom:5.5rem}.margin-bottom-5_75{margin-bottom:5.75rem}.margin-bottom-6{margin-bottom:6rem}.margin-bottom-6_25{margin-bottom:6.25rem}.margin-bottom-6_5{margin-bottom:6.5rem}.margin-bottom-6_75{margin-bottom:6.75rem}.margin-bottom-7{margin-bottom:7rem}.margin-bottom-7_25{margin-bottom:7.25rem}.margin-bottom-7_5{margin-bottom:7.5rem}.margin-bottom-7_75{margin-bottom:7.75rem}.margin-bottom-8{margin-bottom:8rem}.margin-bottom-8_25{margin-bottom:8.25rem}.margin-bottom-8_5{margin-bottom:8.5rem}.margin-bottom-8_75{margin-bottom:8.75rem}.margin-bottom-9{margin-bottom:9rem}.margin-bottom-9_25{margin-bottom:9.25rem}.margin-bottom-9_5{margin-bottom:9.5rem}.margin-bottom-9_75{margin-bottom:9.75rem}.margin-bottom-10{margin-bottom:10rem}.margin-bottom-10_25{margin-bottom:10.25rem}.margin-bottom-10_5{margin-bottom:10.5rem}.margin-bottom-10_75{margin-bottom:10.75rem}.margin-bottom-11{margin-bottom:11rem}.margin-bottom-11_25{margin-bottom:11.25rem}.margin-bottom-11_5{margin-bottom:11.5rem}.margin-bottom-11_75{margin-bottom:11.75rem}.margin-bottom-12{margin-bottom:12rem}.margin-bottom-12_25{margin-bottom:12.25rem}.margin-bottom-12_5{margin-bottom:12.5rem}.margin-bottom-12_75{margin-bottom:12.75rem}.margin-bottom-13{margin-bottom:13rem}.margin-bottom-13_25{margin-bottom:13.25rem}.margin-bottom-13_5{margin-bottom:13.5rem}.margin-bottom-13_75{margin-bottom:13.75rem}.margin-bottom-14{margin-bottom:14rem}.margin-bottom-14_25{margin-bottom:14.25rem}.margin-bottom-14_5{margin-bottom:14.5rem}.margin-bottom-14_75{margin-bottom:14.75rem}.margin-bottom-15{margin-bottom:15rem}.margin-bottom-15_25{margin-bottom:15.25rem}.margin-bottom-15_5{margin-bottom:15.5rem}.margin-bottom-15_75{margin-bottom:15.75rem}.margin-bottom-16{margin-bottom:16rem}.margin-bottom-16_25{margin-bottom:16.25rem}.margin-bottom-16_5{margin-bottom:16.5rem}.margin-bottom-16_75{margin-bottom:16.75rem}.margin-bottom-17{margin-bottom:17rem}.margin-bottom-17_25{margin-bottom:17.25rem}.margin-bottom-17_5{margin-bottom:17.5rem}.margin-bottom-17_75{margin-bottom:17.75rem}.margin-bottom-18{margin-bottom:18rem}.margin-bottom-18_25{margin-bottom:18.25rem}.margin-bottom-18_5{margin-bottom:18.5rem}.margin-bottom-18_75{margin-bottom:18.75rem}.margin-bottom-19{margin-bottom:19rem}.margin-bottom-19_25{margin-bottom:19.25rem}.margin-bottom-19_5{margin-bottom:19.5rem}.margin-bottom-19_75{margin-bottom:19.75rem}.margin-bottom-20{margin-bottom:20rem}.margin-bottom-auto{margin-bottom:auto}.margin-left-1px{margin-left:1px}.margin-left-2px{margin-left:2px}.margin-left-3px{margin-left:3px}.margin-left-4px{margin-left:4px}.margin-left-5px{margin-left:5px}.margin-left-6px{margin-left:6px}.margin-left-7px{margin-left:7px}.margin-left-8px{margin-left:8px}.margin-left-9px{margin-left:9px}.margin-left-10px{margin-left:10px}.margin-left-0{margin-left:0}.margin-left-0_25{margin-left:.25rem}.margin-left-0_5{margin-left:.5rem}.margin-left-0_75{margin-left:.75rem}.margin-left-1{margin-left:1rem}.margin-left-1_25{margin-left:1.25rem}.margin-left-1_5{margin-left:1.5rem}.margin-left-1_75{margin-left:1.75rem}.margin-left-2{margin-left:2rem}.margin-left-2_25{margin-left:2.25rem}.margin-left-2_5{margin-left:2.5rem}.margin-left-2_75{margin-left:2.75rem}.margin-left-3{margin-left:3rem}.margin-left-3_25{margin-left:3.25rem}.margin-left-3_5{margin-left:3.5rem}.margin-left-3_75{margin-left:3.75rem}.margin-left-4{margin-left:4rem}.margin-left-4_25{margin-left:4.25rem}.margin-left-4_5{margin-left:4.5rem}.margin-left-4_75{margin-left:4.75rem}.margin-left-5{margin-left:5rem}.margin-left-5_25{margin-left:5.25rem}.margin-left-5_5{margin-left:5.5rem}.margin-left-5_75{margin-left:5.75rem}.margin-left-6{margin-left:6rem}.margin-left-6_25{margin-left:6.25rem}.margin-left-6_5{margin-left:6.5rem}.margin-left-6_75{margin-left:6.75rem}.margin-left-7{margin-left:7rem}.margin-left-7_25{margin-left:7.25rem}.margin-left-7_5{margin-left:7.5rem}.margin-left-7_75{margin-left:7.75rem}.margin-left-8{margin-left:8rem}.margin-left-8_25{margin-left:8.25rem}.margin-left-8_5{margin-left:8.5rem}.margin-left-8_75{margin-left:8.75rem}.margin-left-9{margin-left:9rem}.margin-left-9_25{margin-left:9.25rem}.margin-left-9_5{margin-left:9.5rem}.margin-left-9_75{margin-left:9.75rem}.margin-left-10{margin-left:10rem}.margin-left-10_25{margin-left:10.25rem}.margin-left-10_5{margin-left:10.5rem}.margin-left-10_75{margin-left:10.75rem}.margin-left-11{margin-left:11rem}.margin-left-11_25{margin-left:11.25rem}.margin-left-11_5{margin-left:11.5rem}.margin-left-11_75{margin-left:11.75rem}.margin-left-12{margin-left:12rem}.margin-left-12_25{margin-left:12.25rem}.margin-left-12_5{margin-left:12.5rem}.margin-left-12_75{margin-left:12.75rem}.margin-left-13{margin-left:13rem}.margin-left-13_25{margin-left:13.25rem}.margin-left-13_5{margin-left:13.5rem}.margin-left-13_75{margin-left:13.75rem}.margin-left-14{margin-left:14rem}.margin-left-14_25{margin-left:14.25rem}.margin-left-14_5{margin-left:14.5rem}.margin-left-14_75{margin-left:14.75rem}.margin-left-15{margin-left:15rem}.margin-left-15_25{margin-left:15.25rem}.margin-left-15_5{margin-left:15.5rem}.margin-left-15_75{margin-left:15.75rem}.margin-left-16{margin-left:16rem}.margin-left-16_25{margin-left:16.25rem}.margin-left-16_5{margin-left:16.5rem}.margin-left-16_75{margin-left:16.75rem}.margin-left-17{margin-left:17rem}.margin-left-17_25{margin-left:17.25rem}.margin-left-17_5{margin-left:17.5rem}.margin-left-17_75{margin-left:17.75rem}.margin-left-18{margin-left:18rem}.margin-left-18_25{margin-left:18.25rem}.margin-left-18_5{margin-left:18.5rem}.margin-left-18_75{margin-left:18.75rem}.margin-left-19{margin-left:19rem}.margin-left-19_25{margin-left:19.25rem}.margin-left-19_5{margin-left:19.5rem}.margin-left-19_75{margin-left:19.75rem}.margin-left-20{margin-left:20rem}.margin-left-auto{margin-left:auto}.margin-x-1px{margin-left:1px;margin-right:1px}.margin-x-2px{margin-left:2px;margin-right:2px}.margin-x-3px{margin-left:3px;margin-right:3px}.margin-x-4px{margin-left:4px;margin-right:4px}.margin-x-5px{margin-left:5px;margin-right:5px}.margin-x-6px{margin-left:6px;margin-right:6px}.margin-x-7px{margin-left:7px;margin-right:7px}.margin-x-8px{margin-left:8px;margin-right:8px}.margin-x-9px{margin-left:9px;margin-right:9px}.margin-x-10px{margin-left:10px;margin-right:10px}.margin-x-0{margin-left:0;margin-right:0}.margin-x-0_25{margin-left:.25rem;margin-right:.25rem}.margin-x-0_5{margin-left:.5rem;margin-right:.5rem}.margin-x-0_75{margin-left:.75rem;margin-right:.75rem}.margin-x-1{margin-left:1rem;margin-right:1rem}.margin-x-1_25{margin-left:1.25rem;margin-right:1.25rem}.margin-x-1_5{margin-left:1.5rem;margin-right:1.5rem}.margin-x-1_75{margin-left:1.75rem;margin-right:1.75rem}.margin-x-2{margin-left:2rem;margin-right:2rem}.margin-x-2_25{margin-left:2.25rem;margin-right:2.25rem}.margin-x-2_5{margin-left:2.5rem;margin-right:2.5rem}.margin-x-2_75{margin-left:2.75rem;margin-right:2.75rem}.margin-x-3{margin-left:3rem;margin-right:3rem}.margin-x-3_25{margin-left:3.25rem;margin-right:3.25rem}.margin-x-3_5{margin-left:3.5rem;margin-right:3.5rem}.margin-x-3_75{margin-left:3.75rem;margin-right:3.75rem}.margin-x-4{margin-left:4rem;margin-right:4rem}.margin-x-4_25{margin-left:4.25rem;margin-right:4.25rem}.margin-x-4_5{margin-left:4.5rem;margin-right:4.5rem}.margin-x-4_75{margin-left:4.75rem;margin-right:4.75rem}.margin-x-5{margin-left:5rem;margin-right:5rem}.margin-x-5_25{margin-left:5.25rem;margin-right:5.25rem}.margin-x-5_5{margin-left:5.5rem;margin-right:5.5rem}.margin-x-5_75{margin-left:5.75rem;margin-right:5.75rem}.margin-x-6{margin-left:6rem;margin-right:6rem}.margin-x-6_25{margin-left:6.25rem;margin-right:6.25rem}.margin-x-6_5{margin-left:6.5rem;margin-right:6.5rem}.margin-x-6_75{margin-left:6.75rem;margin-right:6.75rem}.margin-x-7{margin-left:7rem;margin-right:7rem}.margin-x-7_25{margin-left:7.25rem;margin-right:7.25rem}.margin-x-7_5{margin-left:7.5rem;margin-right:7.5rem}.margin-x-7_75{margin-left:7.75rem;margin-right:7.75rem}.margin-x-8{margin-left:8rem;margin-right:8rem}.margin-x-8_25{margin-left:8.25rem;margin-right:8.25rem}.margin-x-8_5{margin-left:8.5rem;margin-right:8.5rem}.margin-x-8_75{margin-left:8.75rem;margin-right:8.75rem}.margin-x-9{margin-left:9rem;margin-right:9rem}.margin-x-9_25{margin-left:9.25rem;margin-right:9.25rem}.margin-x-9_5{margin-left:9.5rem;margin-right:9.5rem}.margin-x-9_75{margin-left:9.75rem;margin-right:9.75rem}.margin-x-10{margin-left:10rem;margin-right:10rem}.margin-x-10_25{margin-left:10.25rem;margin-right:10.25rem}.margin-x-10_5{margin-left:10.5rem;margin-right:10.5rem}.margin-x-10_75{margin-left:10.75rem;margin-right:10.75rem}.margin-x-11{margin-left:11rem;margin-right:11rem}.margin-x-11_25{margin-left:11.25rem;margin-right:11.25rem}.margin-x-11_5{margin-left:11.5rem;margin-right:11.5rem}.margin-x-11_75{margin-left:11.75rem;margin-right:11.75rem}.margin-x-12{margin-left:12rem;margin-right:12rem}.margin-x-12_25{margin-left:12.25rem;margin-right:12.25rem}.margin-x-12_5{margin-left:12.5rem;margin-right:12.5rem}.margin-x-12_75{margin-left:12.75rem;margin-right:12.75rem}.margin-x-13{margin-left:13rem;margin-right:13rem}.margin-x-13_25{margin-left:13.25rem;margin-right:13.25rem}.margin-x-13_5{margin-left:13.5rem;margin-right:13.5rem}.margin-x-13_75{margin-left:13.75rem;margin-right:13.75rem}.margin-x-14{margin-left:14rem;margin-right:14rem}.margin-x-14_25{margin-left:14.25rem;margin-right:14.25rem}.margin-x-14_5{margin-left:14.5rem;margin-right:14.5rem}.margin-x-14_75{margin-left:14.75rem;margin-right:14.75rem}.margin-x-15{margin-left:15rem;margin-right:15rem}.margin-x-15_25{margin-left:15.25rem;margin-right:15.25rem}.margin-x-15_5{margin-left:15.5rem;margin-right:15.5rem}.margin-x-15_75{margin-left:15.75rem;margin-right:15.75rem}.margin-x-16{margin-left:16rem;margin-right:16rem}.margin-x-16_25{margin-left:16.25rem;margin-right:16.25rem}.margin-x-16_5{margin-left:16.5rem;margin-right:16.5rem}.margin-x-16_75{margin-left:16.75rem;margin-right:16.75rem}.margin-x-17{margin-left:17rem;margin-right:17rem}.margin-x-17_25{margin-left:17.25rem;margin-right:17.25rem}.margin-x-17_5{margin-left:17.5rem;margin-right:17.5rem}.margin-x-17_75{margin-left:17.75rem;margin-right:17.75rem}.margin-x-18{margin-left:18rem;margin-right:18rem}.margin-x-18_25{margin-left:18.25rem;margin-right:18.25rem}.margin-x-18_5{margin-left:18.5rem;margin-right:18.5rem}.margin-x-18_75{margin-left:18.75rem;margin-right:18.75rem}.margin-x-19{margin-left:19rem;margin-right:19rem}.margin-x-19_25{margin-left:19.25rem;margin-right:19.25rem}.margin-x-19_5{margin-left:19.5rem;margin-right:19.5rem}.margin-x-19_75{margin-left:19.75rem;margin-right:19.75rem}.margin-x-20{margin-left:20rem;margin-right:20rem}.margin-x-auto{margin-left:auto;margin-right:auto}.margin-y-1px{margin-bottom:1px;margin-top:1px}.margin-y-2px{margin-bottom:2px;margin-top:2px}.margin-y-3px{margin-bottom:3px;margin-top:3px}.margin-y-4px{margin-bottom:4px;margin-top:4px}.margin-y-5px{margin-bottom:5px;margin-top:5px}.margin-y-6px{margin-bottom:6px;margin-top:6px}.margin-y-7px{margin-bottom:7px;margin-top:7px}.margin-y-8px{margin-bottom:8px;margin-top:8px}.margin-y-9px{margin-bottom:9px;margin-top:9px}.margin-y-10px{margin-bottom:10px;margin-top:10px}.margin-y-0{margin-bottom:0;margin-top:0}.margin-y-0_25{margin-bottom:.25rem;margin-top:.25rem}.margin-y-0_5{margin-bottom:.5rem;margin-top:.5rem}.margin-y-0_75{margin-bottom:.75rem;margin-top:.75rem}.margin-y-1{margin-bottom:1rem;margin-top:1rem}.margin-y-1_25{margin-bottom:1.25rem;margin-top:1.25rem}.margin-y-1_5{margin-bottom:1.5rem;margin-top:1.5rem}.margin-y-1_75{margin-bottom:1.75rem;margin-top:1.75rem}.margin-y-2{margin-bottom:2rem;margin-top:2rem}.margin-y-2_25{margin-bottom:2.25rem;margin-top:2.25rem}.margin-y-2_5{margin-bottom:2.5rem;margin-top:2.5rem}.margin-y-2_75{margin-bottom:2.75rem;margin-top:2.75rem}.margin-y-3{margin-bottom:3rem;margin-top:3rem}.margin-y-3_25{margin-bottom:3.25rem;margin-top:3.25rem}.margin-y-3_5{margin-bottom:3.5rem;margin-top:3.5rem}.margin-y-3_75{margin-bottom:3.75rem;margin-top:3.75rem}.margin-y-4{margin-bottom:4rem;margin-top:4rem}.margin-y-4_25{margin-bottom:4.25rem;margin-top:4.25rem}.margin-y-4_5{margin-bottom:4.5rem;margin-top:4.5rem}.margin-y-4_75{margin-bottom:4.75rem;margin-top:4.75rem}.margin-y-5{margin-bottom:5rem;margin-top:5rem}.margin-y-5_25{margin-bottom:5.25rem;margin-top:5.25rem}.margin-y-5_5{margin-bottom:5.5rem;margin-top:5.5rem}.margin-y-5_75{margin-bottom:5.75rem;margin-top:5.75rem}.margin-y-6{margin-bottom:6rem;margin-top:6rem}.margin-y-6_25{margin-bottom:6.25rem;margin-top:6.25rem}.margin-y-6_5{margin-bottom:6.5rem;margin-top:6.5rem}.margin-y-6_75{margin-bottom:6.75rem;margin-top:6.75rem}.margin-y-7{margin-bottom:7rem;margin-top:7rem}.margin-y-7_25{margin-bottom:7.25rem;margin-top:7.25rem}.margin-y-7_5{margin-bottom:7.5rem;margin-top:7.5rem}.margin-y-7_75{margin-bottom:7.75rem;margin-top:7.75rem}.margin-y-8{margin-bottom:8rem;margin-top:8rem}.margin-y-8_25{margin-bottom:8.25rem;margin-top:8.25rem}.margin-y-8_5{margin-bottom:8.5rem;margin-top:8.5rem}.margin-y-8_75{margin-bottom:8.75rem;margin-top:8.75rem}.margin-y-9{margin-bottom:9rem;margin-top:9rem}.margin-y-9_25{margin-bottom:9.25rem;margin-top:9.25rem}.margin-y-9_5{margin-bottom:9.5rem;margin-top:9.5rem}.margin-y-9_75{margin-bottom:9.75rem;margin-top:9.75rem}.margin-y-10{margin-bottom:10rem;margin-top:10rem}.margin-y-10_25{margin-bottom:10.25rem;margin-top:10.25rem}.margin-y-10_5{margin-bottom:10.5rem;margin-top:10.5rem}.margin-y-10_75{margin-bottom:10.75rem;margin-top:10.75rem}.margin-y-11{margin-bottom:11rem;margin-top:11rem}.margin-y-11_25{margin-bottom:11.25rem;margin-top:11.25rem}.margin-y-11_5{margin-bottom:11.5rem;margin-top:11.5rem}.margin-y-11_75{margin-bottom:11.75rem;margin-top:11.75rem}.margin-y-12{margin-bottom:12rem;margin-top:12rem}.margin-y-12_25{margin-bottom:12.25rem;margin-top:12.25rem}.margin-y-12_5{margin-bottom:12.5rem;margin-top:12.5rem}.margin-y-12_75{margin-bottom:12.75rem;margin-top:12.75rem}.margin-y-13{margin-bottom:13rem;margin-top:13rem}.margin-y-13_25{margin-bottom:13.25rem;margin-top:13.25rem}.margin-y-13_5{margin-bottom:13.5rem;margin-top:13.5rem}.margin-y-13_75{margin-bottom:13.75rem;margin-top:13.75rem}.margin-y-14{margin-bottom:14rem;margin-top:14rem}.margin-y-14_25{margin-bottom:14.25rem;margin-top:14.25rem}.margin-y-14_5{margin-bottom:14.5rem;margin-top:14.5rem}.margin-y-14_75{margin-bottom:14.75rem;margin-top:14.75rem}.margin-y-15{margin-bottom:15rem;margin-top:15rem}.margin-y-15_25{margin-bottom:15.25rem;margin-top:15.25rem}.margin-y-15_5{margin-bottom:15.5rem;margin-top:15.5rem}.margin-y-15_75{margin-bottom:15.75rem;margin-top:15.75rem}.margin-y-16{margin-bottom:16rem;margin-top:16rem}.margin-y-16_25{margin-bottom:16.25rem;margin-top:16.25rem}.margin-y-16_5{margin-bottom:16.5rem;margin-top:16.5rem}.margin-y-16_75{margin-bottom:16.75rem;margin-top:16.75rem}.margin-y-17{margin-bottom:17rem;margin-top:17rem}.margin-y-17_25{margin-bottom:17.25rem;margin-top:17.25rem}.margin-y-17_5{margin-bottom:17.5rem;margin-top:17.5rem}.margin-y-17_75{margin-bottom:17.75rem;margin-top:17.75rem}.margin-y-18{margin-bottom:18rem;margin-top:18rem}.margin-y-18_25{margin-bottom:18.25rem;margin-top:18.25rem}.margin-y-18_5{margin-bottom:18.5rem;margin-top:18.5rem}.margin-y-18_75{margin-bottom:18.75rem;margin-top:18.75rem}.margin-y-19{margin-bottom:19rem;margin-top:19rem}.margin-y-19_25{margin-bottom:19.25rem;margin-top:19.25rem}.margin-y-19_5{margin-bottom:19.5rem;margin-top:19.5rem}.margin-y-19_75{margin-bottom:19.75rem;margin-top:19.75rem}.margin-y-20{margin-bottom:20rem;margin-top:20rem}.margin-y-auto{margin-bottom:auto;margin-top:auto}.max-width-1{max-width:1rem}.max-width-2{max-width:2rem}.max-width-3{max-width:3rem}.max-width-4{max-width:4rem}.max-width-5{max-width:5rem}.max-width-6{max-width:6rem}.max-width-7{max-width:7rem}.max-width-8{max-width:8rem}.max-width-9{max-width:9rem}.max-width-10{max-width:10rem}.max-width-11{max-width:11rem}.max-width-12{max-width:12rem}.max-width-13{max-width:13rem}.max-width-14{max-width:14rem}.max-width-15{max-width:15rem}.max-width-16{max-width:16rem}.max-width-17{max-width:17rem}.max-width-18{max-width:18rem}.max-width-19{max-width:19rem}.max-width-20{max-width:20rem}.max-width-21{max-width:21rem}.max-width-22{max-width:22rem}.max-width-23{max-width:23rem}.max-width-24{max-width:24rem}.max-width-25{max-width:25rem}.max-width-26{max-width:26rem}.max-width-27{max-width:27rem}.max-width-28{max-width:28rem}.max-width-29{max-width:29rem}.max-width-30{max-width:30rem}.max-width-31{max-width:31rem}.max-width-32{max-width:32rem}.max-width-33{max-width:33rem}.max-width-34{max-width:34rem}.max-width-35{max-width:35rem}.max-width-36{max-width:36rem}.max-width-37{max-width:37rem}.max-width-38{max-width:38rem}.max-width-39{max-width:39rem}.max-width-40{max-width:40rem}.max-width-41{max-width:41rem}.max-width-42{max-width:42rem}.max-width-43{max-width:43rem}.max-width-44{max-width:44rem}.max-width-45{max-width:45rem}.max-width-46{max-width:46rem}.max-width-47{max-width:47rem}.max-width-48{max-width:48rem}.max-width-49{max-width:49rem}.max-width-50{max-width:50rem}.max-width-51{max-width:51rem}.max-width-52{max-width:52rem}.max-width-53{max-width:53rem}.max-width-54{max-width:54rem}.max-width-55{max-width:55rem}.max-width-56{max-width:56rem}.max-width-57{max-width:57rem}.max-width-58{max-width:58rem}.max-width-59{max-width:59rem}.max-width-60{max-width:60rem}.max-width-61{max-width:61rem}.max-width-62{max-width:62rem}.max-width-63{max-width:63rem}.max-width-64{max-width:64rem}.max-width-1p{max-width:1%}.max-width-2p{max-width:2%}.max-width-3p{max-width:3%}.max-width-4p{max-width:4%}.max-width-5p{max-width:5%}.max-width-6p{max-width:6%}.max-width-7p{max-width:7%}.max-width-8p{max-width:8%}.max-width-9p{max-width:9%}.max-width-10p{max-width:10%}.max-width-11p{max-width:11%}.max-width-12p{max-width:12%}.max-width-13p{max-width:13%}.max-width-14p{max-width:14%}.max-width-15p{max-width:15%}.max-width-16p{max-width:16%}.max-width-17p{max-width:17%}.max-width-18p{max-width:18%}.max-width-19p{max-width:19%}.max-width-20p{max-width:20%}.max-width-21p{max-width:21%}.max-width-22p{max-width:22%}.max-width-23p{max-width:23%}.max-width-24p{max-width:24%}.max-width-25p{max-width:25%}.max-width-26p{max-width:26%}.max-width-27p{max-width:27%}.max-width-28p{max-width:28%}.max-width-29p{max-width:29%}.max-width-30p{max-width:30%}.max-width-31p{max-width:31%}.max-width-32p{max-width:32%}.max-width-33p{max-width:33%}.max-width-34p{max-width:34%}.max-width-35p{max-width:35%}.max-width-36p{max-width:36%}.max-width-37p{max-width:37%}.max-width-38p{max-width:38%}.max-width-39p{max-width:39%}.max-width-40p{max-width:40%}.max-width-41p{max-width:41%}.max-width-42p{max-width:42%}.max-width-43p{max-width:43%}.max-width-44p{max-width:44%}.max-width-45p{max-width:45%}.max-width-46p{max-width:46%}.max-width-47p{max-width:47%}.max-width-48p{max-width:48%}.max-width-49p{max-width:49%}.max-width-50p{max-width:50%}.max-width-51p{max-width:51%}.max-width-52p{max-width:52%}.max-width-53p{max-width:53%}.max-width-54p{max-width:54%}.max-width-55p{max-width:55%}.max-width-56p{max-width:56%}.max-width-57p{max-width:57%}.max-width-58p{max-width:58%}.max-width-59p{max-width:59%}.max-width-60p{max-width:60%}.max-width-61p{max-width:61%}.max-width-62p{max-width:62%}.max-width-63p{max-width:63%}.max-width-64p{max-width:64%}.max-width-65p{max-width:65%}.max-width-66p{max-width:66%}.max-width-67p{max-width:67%}.max-width-68p{max-width:68%}.max-width-69p{max-width:69%}.max-width-70p{max-width:70%}.max-width-71p{max-width:71%}.max-width-72p{max-width:72%}.max-width-73p{max-width:73%}.max-width-74p{max-width:74%}.max-width-75p{max-width:75%}.max-width-76p{max-width:76%}.max-width-77p{max-width:77%}.max-width-78p{max-width:78%}.max-width-79p{max-width:79%}.max-width-80p{max-width:80%}.max-width-81p{max-width:81%}.max-width-82p{max-width:82%}.max-width-83p{max-width:83%}.max-width-84p{max-width:84%}.max-width-85p{max-width:85%}.max-width-86p{max-width:86%}.max-width-87p{max-width:87%}.max-width-88p{max-width:88%}.max-width-89p{max-width:89%}.max-width-90p{max-width:90%}.max-width-91p{max-width:91%}.max-width-92p{max-width:92%}.max-width-93p{max-width:93%}.max-width-94p{max-width:94%}.max-width-95p{max-width:95%}.max-width-96p{max-width:96%}.max-width-97p{max-width:97%}.max-width-98p{max-width:98%}.max-width-99p{max-width:99%}.max-width-100p,.max-width-full{max-width:100%}.max-width-auto{max-width:auto}.max-width-third{max-width:33.33333%}.max-width-two-thirds{max-width:66.66667%}.overflow-visible{overflow:visible}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-auto{overflow:auto}.overflow-x-visible{overflow-x:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-visible{overflow-y:visible}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-auto{overflow-y:auto}.padding-1px{padding:1px}.padding-2px{padding:2px}.padding-3px{padding:3px}.padding-4px{padding:4px}.padding-5px{padding:5px}.padding-6px{padding:6px}.padding-7px{padding:7px}.padding-8px{padding:8px}.padding-9px{padding:9px}.padding-10px{padding:10px}.padding-0{padding:0}.padding-0_25{padding:.25rem}.padding-0_5{padding:.5rem}.padding-0_75{padding:.75rem}.padding-1{padding:1rem}.padding-1_25{padding:1.25rem}.padding-1_5{padding:1.5rem}.padding-1_75{padding:1.75rem}.padding-2{padding:2rem}.padding-2_25{padding:2.25rem}.padding-2_5{padding:2.5rem}.padding-2_75{padding:2.75rem}.padding-3{padding:3rem}.padding-3_25{padding:3.25rem}.padding-3_5{padding:3.5rem}.padding-3_75{padding:3.75rem}.padding-4{padding:4rem}.padding-4_25{padding:4.25rem}.padding-4_5{padding:4.5rem}.padding-4_75{padding:4.75rem}.padding-5{padding:5rem}.padding-5_25{padding:5.25rem}.padding-5_5{padding:5.5rem}.padding-5_75{padding:5.75rem}.padding-6{padding:6rem}.padding-6_25{padding:6.25rem}.padding-6_5{padding:6.5rem}.padding-6_75{padding:6.75rem}.padding-7{padding:7rem}.padding-7_25{padding:7.25rem}.padding-7_5{padding:7.5rem}.padding-7_75{padding:7.75rem}.padding-8{padding:8rem}.padding-8_25{padding:8.25rem}.padding-8_5{padding:8.5rem}.padding-8_75{padding:8.75rem}.padding-9{padding:9rem}.padding-9_25{padding:9.25rem}.padding-9_5{padding:9.5rem}.padding-9_75{padding:9.75rem}.padding-10{padding:10rem}.padding-10_25{padding:10.25rem}.padding-10_5{padding:10.5rem}.padding-10_75{padding:10.75rem}.padding-11{padding:11rem}.padding-11_25{padding:11.25rem}.padding-11_5{padding:11.5rem}.padding-11_75{padding:11.75rem}.padding-12{padding:12rem}.padding-12_25{padding:12.25rem}.padding-12_5{padding:12.5rem}.padding-12_75{padding:12.75rem}.padding-13{padding:13rem}.padding-13_25{padding:13.25rem}.padding-13_5{padding:13.5rem}.padding-13_75{padding:13.75rem}.padding-14{padding:14rem}.padding-14_25{padding:14.25rem}.padding-14_5{padding:14.5rem}.padding-14_75{padding:14.75rem}.padding-15{padding:15rem}.padding-15_25{padding:15.25rem}.padding-15_5{padding:15.5rem}.padding-15_75{padding:15.75rem}.padding-16{padding:16rem}.padding-16_25{padding:16.25rem}.padding-16_5{padding:16.5rem}.padding-16_75{padding:16.75rem}.padding-17{padding:17rem}.padding-17_25{padding:17.25rem}.padding-17_5{padding:17.5rem}.padding-17_75{padding:17.75rem}.padding-18{padding:18rem}.padding-18_25{padding:18.25rem}.padding-18_5{padding:18.5rem}.padding-18_75{padding:18.75rem}.padding-19{padding:19rem}.padding-19_25{padding:19.25rem}.padding-19_5{padding:19.5rem}.padding-19_75{padding:19.75rem}.padding-20{padding:20rem}.padding-auto{padding:auto}.padding-top-1px{padding-top:1px}.padding-top-2px{padding-top:2px}.padding-top-3px{padding-top:3px}.padding-top-4px{padding-top:4px}.padding-top-5px{padding-top:5px}.padding-top-6px{padding-top:6px}.padding-top-7px{padding-top:7px}.padding-top-8px{padding-top:8px}.padding-top-9px{padding-top:9px}.padding-top-10px{padding-top:10px}.padding-top-0{padding-top:0}.padding-top-0_25{padding-top:.25rem}.padding-top-0_5{padding-top:.5rem}.padding-top-0_75{padding-top:.75rem}.padding-top-1{padding-top:1rem}.padding-top-1_25{padding-top:1.25rem}.padding-top-1_5{padding-top:1.5rem}.padding-top-1_75{padding-top:1.75rem}.padding-top-2{padding-top:2rem}.padding-top-2_25{padding-top:2.25rem}.padding-top-2_5{padding-top:2.5rem}.padding-top-2_75{padding-top:2.75rem}.padding-top-3{padding-top:3rem}.padding-top-3_25{padding-top:3.25rem}.padding-top-3_5{padding-top:3.5rem}.padding-top-3_75{padding-top:3.75rem}.padding-top-4{padding-top:4rem}.padding-top-4_25{padding-top:4.25rem}.padding-top-4_5{padding-top:4.5rem}.padding-top-4_75{padding-top:4.75rem}.padding-top-5{padding-top:5rem}.padding-top-5_25{padding-top:5.25rem}.padding-top-5_5{padding-top:5.5rem}.padding-top-5_75{padding-top:5.75rem}.padding-top-6{padding-top:6rem}.padding-top-6_25{padding-top:6.25rem}.padding-top-6_5{padding-top:6.5rem}.padding-top-6_75{padding-top:6.75rem}.padding-top-7{padding-top:7rem}.padding-top-7_25{padding-top:7.25rem}.padding-top-7_5{padding-top:7.5rem}.padding-top-7_75{padding-top:7.75rem}.padding-top-8{padding-top:8rem}.padding-top-8_25{padding-top:8.25rem}.padding-top-8_5{padding-top:8.5rem}.padding-top-8_75{padding-top:8.75rem}.padding-top-9{padding-top:9rem}.padding-top-9_25{padding-top:9.25rem}.padding-top-9_5{padding-top:9.5rem}.padding-top-9_75{padding-top:9.75rem}.padding-top-10{padding-top:10rem}.padding-top-10_25{padding-top:10.25rem}.padding-top-10_5{padding-top:10.5rem}.padding-top-10_75{padding-top:10.75rem}.padding-top-11{padding-top:11rem}.padding-top-11_25{padding-top:11.25rem}.padding-top-11_5{padding-top:11.5rem}.padding-top-11_75{padding-top:11.75rem}.padding-top-12{padding-top:12rem}.padding-top-12_25{padding-top:12.25rem}.padding-top-12_5{padding-top:12.5rem}.padding-top-12_75{padding-top:12.75rem}.padding-top-13{padding-top:13rem}.padding-top-13_25{padding-top:13.25rem}.padding-top-13_5{padding-top:13.5rem}.padding-top-13_75{padding-top:13.75rem}.padding-top-14{padding-top:14rem}.padding-top-14_25{padding-top:14.25rem}.padding-top-14_5{padding-top:14.5rem}.padding-top-14_75{padding-top:14.75rem}.padding-top-15{padding-top:15rem}.padding-top-15_25{padding-top:15.25rem}.padding-top-15_5{padding-top:15.5rem}.padding-top-15_75{padding-top:15.75rem}.padding-top-16{padding-top:16rem}.padding-top-16_25{padding-top:16.25rem}.padding-top-16_5{padding-top:16.5rem}.padding-top-16_75{padding-top:16.75rem}.padding-top-17{padding-top:17rem}.padding-top-17_25{padding-top:17.25rem}.padding-top-17_5{padding-top:17.5rem}.padding-top-17_75{padding-top:17.75rem}.padding-top-18{padding-top:18rem}.padding-top-18_25{padding-top:18.25rem}.padding-top-18_5{padding-top:18.5rem}.padding-top-18_75{padding-top:18.75rem}.padding-top-19{padding-top:19rem}.padding-top-19_25{padding-top:19.25rem}.padding-top-19_5{padding-top:19.5rem}.padding-top-19_75{padding-top:19.75rem}.padding-top-20{padding-top:20rem}.padding-top-auto{padding-top:auto}.padding-right-1px{padding-right:1px}.padding-right-2px{padding-right:2px}.padding-right-3px{padding-right:3px}.padding-right-4px{padding-right:4px}.padding-right-5px{padding-right:5px}.padding-right-6px{padding-right:6px}.padding-right-7px{padding-right:7px}.padding-right-8px{padding-right:8px}.padding-right-9px{padding-right:9px}.padding-right-10px{padding-right:10px}.padding-right-0{padding-right:0}.padding-right-0_25{padding-right:.25rem}.padding-right-0_5{padding-right:.5rem}.padding-right-0_75{padding-right:.75rem}.padding-right-1{padding-right:1rem}.padding-right-1_25{padding-right:1.25rem}.padding-right-1_5{padding-right:1.5rem}.padding-right-1_75{padding-right:1.75rem}.padding-right-2{padding-right:2rem}.padding-right-2_25{padding-right:2.25rem}.padding-right-2_5{padding-right:2.5rem}.padding-right-2_75{padding-right:2.75rem}.padding-right-3{padding-right:3rem}.padding-right-3_25{padding-right:3.25rem}.padding-right-3_5{padding-right:3.5rem}.padding-right-3_75{padding-right:3.75rem}.padding-right-4{padding-right:4rem}.padding-right-4_25{padding-right:4.25rem}.padding-right-4_5{padding-right:4.5rem}.padding-right-4_75{padding-right:4.75rem}.padding-right-5{padding-right:5rem}.padding-right-5_25{padding-right:5.25rem}.padding-right-5_5{padding-right:5.5rem}.padding-right-5_75{padding-right:5.75rem}.padding-right-6{padding-right:6rem}.padding-right-6_25{padding-right:6.25rem}.padding-right-6_5{padding-right:6.5rem}.padding-right-6_75{padding-right:6.75rem}.padding-right-7{padding-right:7rem}.padding-right-7_25{padding-right:7.25rem}.padding-right-7_5{padding-right:7.5rem}.padding-right-7_75{padding-right:7.75rem}.padding-right-8{padding-right:8rem}.padding-right-8_25{padding-right:8.25rem}.padding-right-8_5{padding-right:8.5rem}.padding-right-8_75{padding-right:8.75rem}.padding-right-9{padding-right:9rem}.padding-right-9_25{padding-right:9.25rem}.padding-right-9_5{padding-right:9.5rem}.padding-right-9_75{padding-right:9.75rem}.padding-right-10{padding-right:10rem}.padding-right-10_25{padding-right:10.25rem}.padding-right-10_5{padding-right:10.5rem}.padding-right-10_75{padding-right:10.75rem}.padding-right-11{padding-right:11rem}.padding-right-11_25{padding-right:11.25rem}.padding-right-11_5{padding-right:11.5rem}.padding-right-11_75{padding-right:11.75rem}.padding-right-12{padding-right:12rem}.padding-right-12_25{padding-right:12.25rem}.padding-right-12_5{padding-right:12.5rem}.padding-right-12_75{padding-right:12.75rem}.padding-right-13{padding-right:13rem}.padding-right-13_25{padding-right:13.25rem}.padding-right-13_5{padding-right:13.5rem}.padding-right-13_75{padding-right:13.75rem}.padding-right-14{padding-right:14rem}.padding-right-14_25{padding-right:14.25rem}.padding-right-14_5{padding-right:14.5rem}.padding-right-14_75{padding-right:14.75rem}.padding-right-15{padding-right:15rem}.padding-right-15_25{padding-right:15.25rem}.padding-right-15_5{padding-right:15.5rem}.padding-right-15_75{padding-right:15.75rem}.padding-right-16{padding-right:16rem}.padding-right-16_25{padding-right:16.25rem}.padding-right-16_5{padding-right:16.5rem}.padding-right-16_75{padding-right:16.75rem}.padding-right-17{padding-right:17rem}.padding-right-17_25{padding-right:17.25rem}.padding-right-17_5{padding-right:17.5rem}.padding-right-17_75{padding-right:17.75rem}.padding-right-18{padding-right:18rem}.padding-right-18_25{padding-right:18.25rem}.padding-right-18_5{padding-right:18.5rem}.padding-right-18_75{padding-right:18.75rem}.padding-right-19{padding-right:19rem}.padding-right-19_25{padding-right:19.25rem}.padding-right-19_5{padding-right:19.5rem}.padding-right-19_75{padding-right:19.75rem}.padding-right-20{padding-right:20rem}.padding-right-auto{padding-right:auto}.padding-bottom-1px{padding-bottom:1px}.padding-bottom-2px{padding-bottom:2px}.padding-bottom-3px{padding-bottom:3px}.padding-bottom-4px{padding-bottom:4px}.padding-bottom-5px{padding-bottom:5px}.padding-bottom-6px{padding-bottom:6px}.padding-bottom-7px{padding-bottom:7px}.padding-bottom-8px{padding-bottom:8px}.padding-bottom-9px{padding-bottom:9px}.padding-bottom-10px{padding-bottom:10px}.padding-bottom-0{padding-bottom:0}.padding-bottom-0_25{padding-bottom:.25rem}.padding-bottom-0_5{padding-bottom:.5rem}.padding-bottom-0_75{padding-bottom:.75rem}.padding-bottom-1{padding-bottom:1rem}.padding-bottom-1_25{padding-bottom:1.25rem}.padding-bottom-1_5{padding-bottom:1.5rem}.padding-bottom-1_75{padding-bottom:1.75rem}.padding-bottom-2{padding-bottom:2rem}.padding-bottom-2_25{padding-bottom:2.25rem}.padding-bottom-2_5{padding-bottom:2.5rem}.padding-bottom-2_75{padding-bottom:2.75rem}.padding-bottom-3{padding-bottom:3rem}.padding-bottom-3_25{padding-bottom:3.25rem}.padding-bottom-3_5{padding-bottom:3.5rem}.padding-bottom-3_75{padding-bottom:3.75rem}.padding-bottom-4{padding-bottom:4rem}.padding-bottom-4_25{padding-bottom:4.25rem}.padding-bottom-4_5{padding-bottom:4.5rem}.padding-bottom-4_75{padding-bottom:4.75rem}.padding-bottom-5{padding-bottom:5rem}.padding-bottom-5_25{padding-bottom:5.25rem}.padding-bottom-5_5{padding-bottom:5.5rem}.padding-bottom-5_75{padding-bottom:5.75rem}.padding-bottom-6{padding-bottom:6rem}.padding-bottom-6_25{padding-bottom:6.25rem}.padding-bottom-6_5{padding-bottom:6.5rem}.padding-bottom-6_75{padding-bottom:6.75rem}.padding-bottom-7{padding-bottom:7rem}.padding-bottom-7_25{padding-bottom:7.25rem}.padding-bottom-7_5{padding-bottom:7.5rem}.padding-bottom-7_75{padding-bottom:7.75rem}.padding-bottom-8{padding-bottom:8rem}.padding-bottom-8_25{padding-bottom:8.25rem}.padding-bottom-8_5{padding-bottom:8.5rem}.padding-bottom-8_75{padding-bottom:8.75rem}.padding-bottom-9{padding-bottom:9rem}.padding-bottom-9_25{padding-bottom:9.25rem}.padding-bottom-9_5{padding-bottom:9.5rem}.padding-bottom-9_75{padding-bottom:9.75rem}.padding-bottom-10{padding-bottom:10rem}.padding-bottom-10_25{padding-bottom:10.25rem}.padding-bottom-10_5{padding-bottom:10.5rem}.padding-bottom-10_75{padding-bottom:10.75rem}.padding-bottom-11{padding-bottom:11rem}.padding-bottom-11_25{padding-bottom:11.25rem}.padding-bottom-11_5{padding-bottom:11.5rem}.padding-bottom-11_75{padding-bottom:11.75rem}.padding-bottom-12{padding-bottom:12rem}.padding-bottom-12_25{padding-bottom:12.25rem}.padding-bottom-12_5{padding-bottom:12.5rem}.padding-bottom-12_75{padding-bottom:12.75rem}.padding-bottom-13{padding-bottom:13rem}.padding-bottom-13_25{padding-bottom:13.25rem}.padding-bottom-13_5{padding-bottom:13.5rem}.padding-bottom-13_75{padding-bottom:13.75rem}.padding-bottom-14{padding-bottom:14rem}.padding-bottom-14_25{padding-bottom:14.25rem}.padding-bottom-14_5{padding-bottom:14.5rem}.padding-bottom-14_75{padding-bottom:14.75rem}.padding-bottom-15{padding-bottom:15rem}.padding-bottom-15_25{padding-bottom:15.25rem}.padding-bottom-15_5{padding-bottom:15.5rem}.padding-bottom-15_75{padding-bottom:15.75rem}.padding-bottom-16{padding-bottom:16rem}.padding-bottom-16_25{padding-bottom:16.25rem}.padding-bottom-16_5{padding-bottom:16.5rem}.padding-bottom-16_75{padding-bottom:16.75rem}.padding-bottom-17{padding-bottom:17rem}.padding-bottom-17_25{padding-bottom:17.25rem}.padding-bottom-17_5{padding-bottom:17.5rem}.padding-bottom-17_75{padding-bottom:17.75rem}.padding-bottom-18{padding-bottom:18rem}.padding-bottom-18_25{padding-bottom:18.25rem}.padding-bottom-18_5{padding-bottom:18.5rem}.padding-bottom-18_75{padding-bottom:18.75rem}.padding-bottom-19{padding-bottom:19rem}.padding-bottom-19_25{padding-bottom:19.25rem}.padding-bottom-19_5{padding-bottom:19.5rem}.padding-bottom-19_75{padding-bottom:19.75rem}.padding-bottom-20{padding-bottom:20rem}.padding-bottom-auto{padding-bottom:auto}.padding-left-1px{padding-left:1px}.padding-left-2px{padding-left:2px}.padding-left-3px{padding-left:3px}.padding-left-4px{padding-left:4px}.padding-left-5px{padding-left:5px}.padding-left-6px{padding-left:6px}.padding-left-7px{padding-left:7px}.padding-left-8px{padding-left:8px}.padding-left-9px{padding-left:9px}.padding-left-10px{padding-left:10px}.padding-left-0{padding-left:0}.padding-left-0_25{padding-left:.25rem}.padding-left-0_5{padding-left:.5rem}.padding-left-0_75{padding-left:.75rem}.padding-left-1{padding-left:1rem}.padding-left-1_25{padding-left:1.25rem}.padding-left-1_5{padding-left:1.5rem}.padding-left-1_75{padding-left:1.75rem}.padding-left-2{padding-left:2rem}.padding-left-2_25{padding-left:2.25rem}.padding-left-2_5{padding-left:2.5rem}.padding-left-2_75{padding-left:2.75rem}.padding-left-3{padding-left:3rem}.padding-left-3_25{padding-left:3.25rem}.padding-left-3_5{padding-left:3.5rem}.padding-left-3_75{padding-left:3.75rem}.padding-left-4{padding-left:4rem}.padding-left-4_25{padding-left:4.25rem}.padding-left-4_5{padding-left:4.5rem}.padding-left-4_75{padding-left:4.75rem}.padding-left-5{padding-left:5rem}.padding-left-5_25{padding-left:5.25rem}.padding-left-5_5{padding-left:5.5rem}.padding-left-5_75{padding-left:5.75rem}.padding-left-6{padding-left:6rem}.padding-left-6_25{padding-left:6.25rem}.padding-left-6_5{padding-left:6.5rem}.padding-left-6_75{padding-left:6.75rem}.padding-left-7{padding-left:7rem}.padding-left-7_25{padding-left:7.25rem}.padding-left-7_5{padding-left:7.5rem}.padding-left-7_75{padding-left:7.75rem}.padding-left-8{padding-left:8rem}.padding-left-8_25{padding-left:8.25rem}.padding-left-8_5{padding-left:8.5rem}.padding-left-8_75{padding-left:8.75rem}.padding-left-9{padding-left:9rem}.padding-left-9_25{padding-left:9.25rem}.padding-left-9_5{padding-left:9.5rem}.padding-left-9_75{padding-left:9.75rem}.padding-left-10{padding-left:10rem}.padding-left-10_25{padding-left:10.25rem}.padding-left-10_5{padding-left:10.5rem}.padding-left-10_75{padding-left:10.75rem}.padding-left-11{padding-left:11rem}.padding-left-11_25{padding-left:11.25rem}.padding-left-11_5{padding-left:11.5rem}.padding-left-11_75{padding-left:11.75rem}.padding-left-12{padding-left:12rem}.padding-left-12_25{padding-left:12.25rem}.padding-left-12_5{padding-left:12.5rem}.padding-left-12_75{padding-left:12.75rem}.padding-left-13{padding-left:13rem}.padding-left-13_25{padding-left:13.25rem}.padding-left-13_5{padding-left:13.5rem}.padding-left-13_75{padding-left:13.75rem}.padding-left-14{padding-left:14rem}.padding-left-14_25{padding-left:14.25rem}.padding-left-14_5{padding-left:14.5rem}.padding-left-14_75{padding-left:14.75rem}.padding-left-15{padding-left:15rem}.padding-left-15_25{padding-left:15.25rem}.padding-left-15_5{padding-left:15.5rem}.padding-left-15_75{padding-left:15.75rem}.padding-left-16{padding-left:16rem}.padding-left-16_25{padding-left:16.25rem}.padding-left-16_5{padding-left:16.5rem}.padding-left-16_75{padding-left:16.75rem}.padding-left-17{padding-left:17rem}.padding-left-17_25{padding-left:17.25rem}.padding-left-17_5{padding-left:17.5rem}.padding-left-17_75{padding-left:17.75rem}.padding-left-18{padding-left:18rem}.padding-left-18_25{padding-left:18.25rem}.padding-left-18_5{padding-left:18.5rem}.padding-left-18_75{padding-left:18.75rem}.padding-left-19{padding-left:19rem}.padding-left-19_25{padding-left:19.25rem}.padding-left-19_5{padding-left:19.5rem}.padding-left-19_75{padding-left:19.75rem}.padding-left-20{padding-left:20rem}.padding-left-auto{padding-left:auto}.padding-x-1px{padding-left:1px;padding-right:1px}.padding-x-2px{padding-left:2px;padding-right:2px}.padding-x-3px{padding-left:3px;padding-right:3px}.padding-x-4px{padding-left:4px;padding-right:4px}.padding-x-5px{padding-left:5px;padding-right:5px}.padding-x-6px{padding-left:6px;padding-right:6px}.padding-x-7px{padding-left:7px;padding-right:7px}.padding-x-8px{padding-left:8px;padding-right:8px}.padding-x-9px{padding-left:9px;padding-right:9px}.padding-x-10px{padding-left:10px;padding-right:10px}.padding-x-0{padding-left:0;padding-right:0}.padding-x-0_25{padding-left:.25rem;padding-right:.25rem}.padding-x-0_5{padding-left:.5rem;padding-right:.5rem}.padding-x-0_75{padding-left:.75rem;padding-right:.75rem}.padding-x-1{padding-left:1rem;padding-right:1rem}.padding-x-1_25{padding-left:1.25rem;padding-right:1.25rem}.padding-x-1_5{padding-left:1.5rem;padding-right:1.5rem}.padding-x-1_75{padding-left:1.75rem;padding-right:1.75rem}.padding-x-2{padding-left:2rem;padding-right:2rem}.padding-x-2_25{padding-left:2.25rem;padding-right:2.25rem}.padding-x-2_5{padding-left:2.5rem;padding-right:2.5rem}.padding-x-2_75{padding-left:2.75rem;padding-right:2.75rem}.padding-x-3{padding-left:3rem;padding-right:3rem}.padding-x-3_25{padding-left:3.25rem;padding-right:3.25rem}.padding-x-3_5{padding-left:3.5rem;padding-right:3.5rem}.padding-x-3_75{padding-left:3.75rem;padding-right:3.75rem}.padding-x-4{padding-left:4rem;padding-right:4rem}.padding-x-4_25{padding-left:4.25rem;padding-right:4.25rem}.padding-x-4_5{padding-left:4.5rem;padding-right:4.5rem}.padding-x-4_75{padding-left:4.75rem;padding-right:4.75rem}.padding-x-5{padding-left:5rem;padding-right:5rem}.padding-x-5_25{padding-left:5.25rem;padding-right:5.25rem}.padding-x-5_5{padding-left:5.5rem;padding-right:5.5rem}.padding-x-5_75{padding-left:5.75rem;padding-right:5.75rem}.padding-x-6{padding-left:6rem;padding-right:6rem}.padding-x-6_25{padding-left:6.25rem;padding-right:6.25rem}.padding-x-6_5{padding-left:6.5rem;padding-right:6.5rem}.padding-x-6_75{padding-left:6.75rem;padding-right:6.75rem}.padding-x-7{padding-left:7rem;padding-right:7rem}.padding-x-7_25{padding-left:7.25rem;padding-right:7.25rem}.padding-x-7_5{padding-left:7.5rem;padding-right:7.5rem}.padding-x-7_75{padding-left:7.75rem;padding-right:7.75rem}.padding-x-8{padding-left:8rem;padding-right:8rem}.padding-x-8_25{padding-left:8.25rem;padding-right:8.25rem}.padding-x-8_5{padding-left:8.5rem;padding-right:8.5rem}.padding-x-8_75{padding-left:8.75rem;padding-right:8.75rem}.padding-x-9{padding-left:9rem;padding-right:9rem}.padding-x-9_25{padding-left:9.25rem;padding-right:9.25rem}.padding-x-9_5{padding-left:9.5rem;padding-right:9.5rem}.padding-x-9_75{padding-left:9.75rem;padding-right:9.75rem}.padding-x-10{padding-left:10rem;padding-right:10rem}.padding-x-10_25{padding-left:10.25rem;padding-right:10.25rem}.padding-x-10_5{padding-left:10.5rem;padding-right:10.5rem}.padding-x-10_75{padding-left:10.75rem;padding-right:10.75rem}.padding-x-11{padding-left:11rem;padding-right:11rem}.padding-x-11_25{padding-left:11.25rem;padding-right:11.25rem}.padding-x-11_5{padding-left:11.5rem;padding-right:11.5rem}.padding-x-11_75{padding-left:11.75rem;padding-right:11.75rem}.padding-x-12{padding-left:12rem;padding-right:12rem}.padding-x-12_25{padding-left:12.25rem;padding-right:12.25rem}.padding-x-12_5{padding-left:12.5rem;padding-right:12.5rem}.padding-x-12_75{padding-left:12.75rem;padding-right:12.75rem}.padding-x-13{padding-left:13rem;padding-right:13rem}.padding-x-13_25{padding-left:13.25rem;padding-right:13.25rem}.padding-x-13_5{padding-left:13.5rem;padding-right:13.5rem}.padding-x-13_75{padding-left:13.75rem;padding-right:13.75rem}.padding-x-14{padding-left:14rem;padding-right:14rem}.padding-x-14_25{padding-left:14.25rem;padding-right:14.25rem}.padding-x-14_5{padding-left:14.5rem;padding-right:14.5rem}.padding-x-14_75{padding-left:14.75rem;padding-right:14.75rem}.padding-x-15{padding-left:15rem;padding-right:15rem}.padding-x-15_25{padding-left:15.25rem;padding-right:15.25rem}.padding-x-15_5{padding-left:15.5rem;padding-right:15.5rem}.padding-x-15_75{padding-left:15.75rem;padding-right:15.75rem}.padding-x-16{padding-left:16rem;padding-right:16rem}.padding-x-16_25{padding-left:16.25rem;padding-right:16.25rem}.padding-x-16_5{padding-left:16.5rem;padding-right:16.5rem}.padding-x-16_75{padding-left:16.75rem;padding-right:16.75rem}.padding-x-17{padding-left:17rem;padding-right:17rem}.padding-x-17_25{padding-left:17.25rem;padding-right:17.25rem}.padding-x-17_5{padding-left:17.5rem;padding-right:17.5rem}.padding-x-17_75{padding-left:17.75rem;padding-right:17.75rem}.padding-x-18{padding-left:18rem;padding-right:18rem}.padding-x-18_25{padding-left:18.25rem;padding-right:18.25rem}.padding-x-18_5{padding-left:18.5rem;padding-right:18.5rem}.padding-x-18_75{padding-left:18.75rem;padding-right:18.75rem}.padding-x-19{padding-left:19rem;padding-right:19rem}.padding-x-19_25{padding-left:19.25rem;padding-right:19.25rem}.padding-x-19_5{padding-left:19.5rem;padding-right:19.5rem}.padding-x-19_75{padding-left:19.75rem;padding-right:19.75rem}.padding-x-20{padding-left:20rem;padding-right:20rem}.padding-x-auto{padding-left:auto;padding-right:auto}.padding-y-1px{padding-bottom:1px;padding-top:1px}.padding-y-2px{padding-bottom:2px;padding-top:2px}.padding-y-3px{padding-bottom:3px;padding-top:3px}.padding-y-4px{padding-bottom:4px;padding-top:4px}.padding-y-5px{padding-bottom:5px;padding-top:5px}.padding-y-6px{padding-bottom:6px;padding-top:6px}.padding-y-7px{padding-bottom:7px;padding-top:7px}.padding-y-8px{padding-bottom:8px;padding-top:8px}.padding-y-9px{padding-bottom:9px;padding-top:9px}.padding-y-10px{padding-bottom:10px;padding-top:10px}.padding-y-0{padding-bottom:0;padding-top:0}.padding-y-0_25{padding-bottom:.25rem;padding-top:.25rem}.padding-y-0_5{padding-bottom:.5rem;padding-top:.5rem}.padding-y-0_75{padding-bottom:.75rem;padding-top:.75rem}.padding-y-1{padding-bottom:1rem;padding-top:1rem}.padding-y-1_25{padding-bottom:1.25rem;padding-top:1.25rem}.padding-y-1_5{padding-bottom:1.5rem;padding-top:1.5rem}.padding-y-1_75{padding-bottom:1.75rem;padding-top:1.75rem}.padding-y-2{padding-bottom:2rem;padding-top:2rem}.padding-y-2_25{padding-bottom:2.25rem;padding-top:2.25rem}.padding-y-2_5{padding-bottom:2.5rem;padding-top:2.5rem}.padding-y-2_75{padding-bottom:2.75rem;padding-top:2.75rem}.padding-y-3{padding-bottom:3rem;padding-top:3rem}.padding-y-3_25{padding-bottom:3.25rem;padding-top:3.25rem}.padding-y-3_5{padding-bottom:3.5rem;padding-top:3.5rem}.padding-y-3_75{padding-bottom:3.75rem;padding-top:3.75rem}.padding-y-4{padding-bottom:4rem;padding-top:4rem}.padding-y-4_25{padding-bottom:4.25rem;padding-top:4.25rem}.padding-y-4_5{padding-bottom:4.5rem;padding-top:4.5rem}.padding-y-4_75{padding-bottom:4.75rem;padding-top:4.75rem}.padding-y-5{padding-bottom:5rem;padding-top:5rem}.padding-y-5_25{padding-bottom:5.25rem;padding-top:5.25rem}.padding-y-5_5{padding-bottom:5.5rem;padding-top:5.5rem}.padding-y-5_75{padding-bottom:5.75rem;padding-top:5.75rem}.padding-y-6{padding-bottom:6rem;padding-top:6rem}.padding-y-6_25{padding-bottom:6.25rem;padding-top:6.25rem}.padding-y-6_5{padding-bottom:6.5rem;padding-top:6.5rem}.padding-y-6_75{padding-bottom:6.75rem;padding-top:6.75rem}.padding-y-7{padding-bottom:7rem;padding-top:7rem}.padding-y-7_25{padding-bottom:7.25rem;padding-top:7.25rem}.padding-y-7_5{padding-bottom:7.5rem;padding-top:7.5rem}.padding-y-7_75{padding-bottom:7.75rem;padding-top:7.75rem}.padding-y-8{padding-bottom:8rem;padding-top:8rem}.padding-y-8_25{padding-bottom:8.25rem;padding-top:8.25rem}.padding-y-8_5{padding-bottom:8.5rem;padding-top:8.5rem}.padding-y-8_75{padding-bottom:8.75rem;padding-top:8.75rem}.padding-y-9{padding-bottom:9rem;padding-top:9rem}.padding-y-9_25{padding-bottom:9.25rem;padding-top:9.25rem}.padding-y-9_5{padding-bottom:9.5rem;padding-top:9.5rem}.padding-y-9_75{padding-bottom:9.75rem;padding-top:9.75rem}.padding-y-10{padding-bottom:10rem;padding-top:10rem}.padding-y-10_25{padding-bottom:10.25rem;padding-top:10.25rem}.padding-y-10_5{padding-bottom:10.5rem;padding-top:10.5rem}.padding-y-10_75{padding-bottom:10.75rem;padding-top:10.75rem}.padding-y-11{padding-bottom:11rem;padding-top:11rem}.padding-y-11_25{padding-bottom:11.25rem;padding-top:11.25rem}.padding-y-11_5{padding-bottom:11.5rem;padding-top:11.5rem}.padding-y-11_75{padding-bottom:11.75rem;padding-top:11.75rem}.padding-y-12{padding-bottom:12rem;padding-top:12rem}.padding-y-12_25{padding-bottom:12.25rem;padding-top:12.25rem}.padding-y-12_5{padding-bottom:12.5rem;padding-top:12.5rem}.padding-y-12_75{padding-bottom:12.75rem;padding-top:12.75rem}.padding-y-13{padding-bottom:13rem;padding-top:13rem}.padding-y-13_25{padding-bottom:13.25rem;padding-top:13.25rem}.padding-y-13_5{padding-bottom:13.5rem;padding-top:13.5rem}.padding-y-13_75{padding-bottom:13.75rem;padding-top:13.75rem}.padding-y-14{padding-bottom:14rem;padding-top:14rem}.padding-y-14_25{padding-bottom:14.25rem;padding-top:14.25rem}.padding-y-14_5{padding-bottom:14.5rem;padding-top:14.5rem}.padding-y-14_75{padding-bottom:14.75rem;padding-top:14.75rem}.padding-y-15{padding-bottom:15rem;padding-top:15rem}.padding-y-15_25{padding-bottom:15.25rem;padding-top:15.25rem}.padding-y-15_5{padding-bottom:15.5rem;padding-top:15.5rem}.padding-y-15_75{padding-bottom:15.75rem;padding-top:15.75rem}.padding-y-16{padding-bottom:16rem;padding-top:16rem}.padding-y-16_25{padding-bottom:16.25rem;padding-top:16.25rem}.padding-y-16_5{padding-bottom:16.5rem;padding-top:16.5rem}.padding-y-16_75{padding-bottom:16.75rem;padding-top:16.75rem}.padding-y-17{padding-bottom:17rem;padding-top:17rem}.padding-y-17_25{padding-bottom:17.25rem;padding-top:17.25rem}.padding-y-17_5{padding-bottom:17.5rem;padding-top:17.5rem}.padding-y-17_75{padding-bottom:17.75rem;padding-top:17.75rem}.padding-y-18{padding-bottom:18rem;padding-top:18rem}.padding-y-18_25{padding-bottom:18.25rem;padding-top:18.25rem}.padding-y-18_5{padding-bottom:18.5rem;padding-top:18.5rem}.padding-y-18_75{padding-bottom:18.75rem;padding-top:18.75rem}.padding-y-19{padding-bottom:19rem;padding-top:19rem}.padding-y-19_25{padding-bottom:19.25rem;padding-top:19.25rem}.padding-y-19_5{padding-bottom:19.5rem;padding-top:19.5rem}.padding-y-19_75{padding-bottom:19.75rem;padding-top:19.75rem}.padding-y-20{padding-bottom:20rem;padding-top:20rem}.padding-y-auto{padding-bottom:auto;padding-top:auto}.top-0{top:0}.top-1{top:1rem}.top-2{top:2rem}.top-3{top:3rem}.top-4{top:4rem}.top-5{top:5rem}.top-6{top:6rem}.top-7{top:7rem}.top-8{top:8rem}.top-9{top:9rem}.top-10{top:10rem}.top-11{top:11rem}.top-12{top:12rem}.top-13{top:13rem}.top-14{top:14rem}.top-15{top:15rem}.top-16{top:16rem}.top-17{top:17rem}.top-18{top:18rem}.top-19{top:19rem}.top-20{top:20rem}.top--1{top:-1rem}.top--2{top:-2rem}.top--3{top:-3rem}.top--4{top:-4rem}.top--5{top:-5rem}.top--6{top:-6rem}.top--7{top:-7rem}.top--8{top:-8rem}.top--9{top:-9rem}.top--10{top:-10rem}.top--11{top:-11rem}.top--12{top:-12rem}.top--13{top:-13rem}.top--14{top:-14rem}.top--15{top:-15rem}.top--16{top:-16rem}.top--17{top:-17rem}.top--18{top:-18rem}.top--19{top:-19rem}.top--20{top:-20rem}.right-0{right:0}.right-1{right:1rem}.right-2{right:2rem}.right-3{right:3rem}.right-4{right:4rem}.right-5{right:5rem}.right-6{right:6rem}.right-7{right:7rem}.right-8{right:8rem}.right-9{right:9rem}.right-10{right:10rem}.right-11{right:11rem}.right-12{right:12rem}.right-13{right:13rem}.right-14{right:14rem}.right-15{right:15rem}.right-16{right:16rem}.right-17{right:17rem}.right-18{right:18rem}.right-19{right:19rem}.right-20{right:20rem}.right--1{right:-1rem}.right--2{right:-2rem}.right--3{right:-3rem}.right--4{right:-4rem}.right--5{right:-5rem}.right--6{right:-6rem}.right--7{right:-7rem}.right--8{right:-8rem}.right--9{right:-9rem}.right--10{right:-10rem}.right--11{right:-11rem}.right--12{right:-12rem}.right--13{right:-13rem}.right--14{right:-14rem}.right--15{right:-15rem}.right--16{right:-16rem}.right--17{right:-17rem}.right--18{right:-18rem}.right--19{right:-19rem}.right--20{right:-20rem}.bottom-0{bottom:0}.bottom-1{bottom:1rem}.bottom-2{bottom:2rem}.bottom-3{bottom:3rem}.bottom-4{bottom:4rem}.bottom-5{bottom:5rem}.bottom-6{bottom:6rem}.bottom-7{bottom:7rem}.bottom-8{bottom:8rem}.bottom-9{bottom:9rem}.bottom-10{bottom:10rem}.bottom-11{bottom:11rem}.bottom-12{bottom:12rem}.bottom-13{bottom:13rem}.bottom-14{bottom:14rem}.bottom-15{bottom:15rem}.bottom-16{bottom:16rem}.bottom-17{bottom:17rem}.bottom-18{bottom:18rem}.bottom-19{bottom:19rem}.bottom-20{bottom:20rem}.bottom--1{bottom:-1rem}.bottom--2{bottom:-2rem}.bottom--3{bottom:-3rem}.bottom--4{bottom:-4rem}.bottom--5{bottom:-5rem}.bottom--6{bottom:-6rem}.bottom--7{bottom:-7rem}.bottom--8{bottom:-8rem}.bottom--9{bottom:-9rem}.bottom--10{bottom:-10rem}.bottom--11{bottom:-11rem}.bottom--12{bottom:-12rem}.bottom--13{bottom:-13rem}.bottom--14{bottom:-14rem}.bottom--15{bottom:-15rem}.bottom--16{bottom:-16rem}.bottom--17{bottom:-17rem}.bottom--18{bottom:-18rem}.bottom--19{bottom:-19rem}.bottom--20{bottom:-20rem}.left-0{left:0}.left-1{left:1rem}.left-2{left:2rem}.left-3{left:3rem}.left-4{left:4rem}.left-5{left:5rem}.left-6{left:6rem}.left-7{left:7rem}.left-8{left:8rem}.left-9{left:9rem}.left-10{left:10rem}.left-11{left:11rem}.left-12{left:12rem}.left-13{left:13rem}.left-14{left:14rem}.left-15{left:15rem}.left-16{left:16rem}.left-17{left:17rem}.left-18{left:18rem}.left-19{left:19rem}.left-20{left:20rem}.left--1{left:-1rem}.left--2{left:-2rem}.left--3{left:-3rem}.left--4{left:-4rem}.left--5{left:-5rem}.left--6{left:-6rem}.left--7{left:-7rem}.left--8{left:-8rem}.left--9{left:-9rem}.left--10{left:-10rem}.left--11{left:-11rem}.left--12{left:-12rem}.left--13{left:-13rem}.left--14{left:-14rem}.left--15{left:-15rem}.left--16{left:-16rem}.left--17{left:-17rem}.left--18{left:-18rem}.left--19{left:-19rem}.left--20{left:-20rem}.rotate-45{transform:rotate(45deg)}.rotate-90{transform:rotate(90deg)}.rotate-135{transform:rotate(135deg)}.rotate-180{transform:rotate(180deg)}.rotate-225{transform:rotate(225deg)}.rotate-270{transform:rotate(270deg)}.rotate-315{transform:rotate(315deg)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.color-5{color:light-dark(var( --base-90 ),var( --base-5 ))}.color-10{color:light-dark(var( --base-80 ),var( --base-10 ))}.color-20{color:light-dark(var( --base-70 ),var( --base-20 ))}.color-30{color:light-dark(var( --base-60 ),var( --base-30 ))}.color-40{color:light-dark(var( --base-50 ),var( --base-40 ))}.color-50{color:light-dark(var( --base-40 ),var( --base-50 ))}.color-60{color:light-dark(var( --base-30 ),var( --base-60 ))}.color-70{color:light-dark(var( --base-20 ),var( --base-70 ))}.color-80{color:light-dark(var( --base-10 ),var( --base-80 ))}.color-90{color:light-dark(var( --base-5 ),var( --base-90 ))}.color-amber-5{color:light-dark(var( --amber-90 ),var( --amber-5 ))}.color-amber-10{color:light-dark(var( --amber-80 ),var( --amber-10 ))}.color-amber-20{color:light-dark(var( --amber-70 ),var( --amber-20 ))}.color-amber-30{color:light-dark(var( --amber-60 ),var( --amber-30 ))}.color-amber-40{color:light-dark(var( --amber-50 ),var( --amber-40 ))}.color-amber-50{color:light-dark(var( --amber-40 ),var( --amber-50 ))}.color-amber-60{color:light-dark(var( --amber-30 ),var( --amber-60 ))}.color-amber-70{color:light-dark(var( --amber-20 ),var( --amber-70 ))}.color-amber-80{color:light-dark(var( --amber-10 ),var( --amber-80 ))}.color-amber-90{color:light-dark(var( --amber-5 ),var( --amber-90 ))}.color-blue-5{color:light-dark(var( --blue-90 ),var( --blue-5 ))}.color-blue-10{color:light-dark(var( --blue-80 ),var( --blue-10 ))}.color-blue-20{color:light-dark(var( --blue-70 ),var( --blue-20 ))}.color-blue-30{color:light-dark(var( --blue-60 ),var( --blue-30 ))}.color-blue-40{color:light-dark(var( --blue-50 ),var( --blue-40 ))}.color-blue-50{color:light-dark(var( --blue-40 ),var( --blue-50 ))}.color-blue-60{color:light-dark(var( --blue-30 ),var( --blue-60 ))}.color-blue-70{color:light-dark(var( --blue-20 ),var( --blue-70 ))}.color-blue-80{color:light-dark(var( --blue-10 ),var( --blue-80 ))}.color-blue-90{color:light-dark(var( --blue-5 ),var( --blue-90 ))}.color-cyan-5{color:light-dark(var( --cyan-90 ),var( --cyan-5 ))}.color-cyan-10{color:light-dark(var( --cyan-80 ),var( --cyan-10 ))}.color-cyan-20{color:light-dark(var( --cyan-70 ),var( --cyan-20 ))}.color-cyan-30{color:light-dark(var( --cyan-60 ),var( --cyan-30 ))}.color-cyan-40{color:light-dark(var( --cyan-50 ),var( --cyan-40 ))}.color-cyan-50{color:light-dark(var( --cyan-40 ),var( --cyan-50 ))}.color-cyan-60{color:light-dark(var( --cyan-30 ),var( --cyan-60 ))}.color-cyan-70{color:light-dark(var( --cyan-20 ),var( --cyan-70 ))}.color-cyan-80{color:light-dark(var( --cyan-10 ),var( --cyan-80 ))}.color-cyan-90{color:light-dark(var( --cyan-5 ),var( --cyan-90 ))}.color-emerald-5{color:light-dark(var( --emerald-90 ),var( --emerald-5 ))}.color-emerald-10{color:light-dark(var( --emerald-80 ),var( --emerald-10 ))}.color-emerald-20{color:light-dark(var( --emerald-70 ),var( --emerald-20 ))}.color-emerald-30{color:light-dark(var( --emerald-60 ),var( --emerald-30 ))}.color-emerald-40{color:light-dark(var( --emerald-50 ),var( --emerald-40 ))}.color-emerald-50{color:light-dark(var( --emerald-40 ),var( --emerald-50 ))}.color-emerald-60{color:light-dark(var( --emerald-30 ),var( --emerald-60 ))}.color-emerald-70{color:light-dark(var( --emerald-20 ),var( --emerald-70 ))}.color-emerald-80{color:light-dark(var( --emerald-10 ),var( --emerald-80 ))}.color-emerald-90{color:light-dark(var( --emerald-5 ),var( --emerald-90 ))}.color-fuchsia-5{color:light-dark(var( --fuchsia-90 ),var( --fuchsia-5 ))}.color-fuchsia-10{color:light-dark(var( --fuchsia-80 ),var( --fuchsia-10 ))}.color-fuchsia-20{color:light-dark(var( --fuchsia-70 ),var( --fuchsia-20 ))}.color-fuchsia-30{color:light-dark(var( --fuchsia-60 ),var( --fuchsia-30 ))}.color-fuchsia-40{color:light-dark(var( --fuchsia-50 ),var( --fuchsia-40 ))}.color-fuchsia-50{color:light-dark(var( --fuchsia-40 ),var( --fuchsia-50 ))}.color-fuchsia-60{color:light-dark(var( --fuchsia-30 ),var( --fuchsia-60 ))}.color-fuchsia-70{color:light-dark(var( --fuchsia-20 ),var( --fuchsia-70 ))}.color-fuchsia-80{color:light-dark(var( --fuchsia-10 ),var( --fuchsia-80 ))}.color-fuchsia-90{color:light-dark(var( --fuchsia-5 ),var( --fuchsia-90 ))}.color-green-5{color:light-dark(var( --green-90 ),var( --green-5 ))}.color-green-10{color:light-dark(var( --green-80 ),var( --green-10 ))}.color-green-20{color:light-dark(var( --green-70 ),var( --green-20 ))}.color-green-30{color:light-dark(var( --green-60 ),var( --green-30 ))}.color-green-40{color:light-dark(var( --green-50 ),var( --green-40 ))}.color-green-50{color:light-dark(var( --green-40 ),var( --green-50 ))}.color-green-60{color:light-dark(var( --green-30 ),var( --green-60 ))}.color-green-70{color:light-dark(var( --green-20 ),var( --green-70 ))}.color-green-80{color:light-dark(var( --green-10 ),var( --green-80 ))}.color-green-90{color:light-dark(var( --green-5 ),var( --green-90 ))}.color-indigo-5{color:light-dark(var( --indigo-90 ),var( --indigo-5 ))}.color-indigo-10{color:light-dark(var( --indigo-80 ),var( --indigo-10 ))}.color-indigo-20{color:light-dark(var( --indigo-70 ),var( --indigo-20 ))}.color-indigo-30{color:light-dark(var( --indigo-60 ),var( --indigo-30 ))}.color-indigo-40{color:light-dark(var( --indigo-50 ),var( --indigo-40 ))}.color-indigo-50{color:light-dark(var( --indigo-40 ),var( --indigo-50 ))}.color-indigo-60{color:light-dark(var( --indigo-30 ),var( --indigo-60 ))}.color-indigo-70{color:light-dark(var( --indigo-20 ),var( --indigo-70 ))}.color-indigo-80{color:light-dark(var( --indigo-10 ),var( --indigo-80 ))}.color-indigo-90{color:light-dark(var( --indigo-5 ),var( --indigo-90 ))}.color-lavender-5{color:light-dark(var( --lavender-90 ),var( --lavender-5 ))}.color-lavender-10{color:light-dark(var( --lavender-80 ),var( --lavender-10 ))}.color-lavender-20{color:light-dark(var( --lavender-70 ),var( --lavender-20 ))}.color-lavender-30{color:light-dark(var( --lavender-60 ),var( --lavender-30 ))}.color-lavender-40{color:light-dark(var( --lavender-50 ),var( --lavender-40 ))}.color-lavender-50{color:light-dark(var( --lavender-40 ),var( --lavender-50 ))}.color-lavender-60{color:light-dark(var( --lavender-30 ),var( --lavender-60 ))}.color-lavender-70{color:light-dark(var( --lavender-20 ),var( --lavender-70 ))}.color-lavender-80{color:light-dark(var( --lavender-10 ),var( --lavender-80 ))}.color-lavender-90{color:light-dark(var( --lavender-5 ),var( --lavender-90 ))}.color-lime-5{color:light-dark(var( --lime-90 ),var( --lime-5 ))}.color-lime-10{color:light-dark(var( --lime-80 ),var( --lime-10 ))}.color-lime-20{color:light-dark(var( --lime-70 ),var( --lime-20 ))}.color-lime-30{color:light-dark(var( --lime-60 ),var( --lime-30 ))}.color-lime-40{color:light-dark(var( --lime-50 ),var( --lime-40 ))}.color-lime-50{color:light-dark(var( --lime-40 ),var( --lime-50 ))}.color-lime-60{color:light-dark(var( --lime-30 ),var( --lime-60 ))}.color-lime-70{color:light-dark(var( --lime-20 ),var( --lime-70 ))}.color-lime-80{color:light-dark(var( --lime-10 ),var( --lime-80 ))}.color-lime-90{color:light-dark(var( --lime-5 ),var( --lime-90 ))}.color-orange-5{color:light-dark(var( --orange-90 ),var( --orange-5 ))}.color-orange-10{color:light-dark(var( --orange-80 ),var( --orange-10 ))}.color-orange-20{color:light-dark(var( --orange-70 ),var( --orange-20 ))}.color-orange-30{color:light-dark(var( --orange-60 ),var( --orange-30 ))}.color-orange-40{color:light-dark(var( --orange-50 ),var( --orange-40 ))}.color-orange-50{color:light-dark(var( --orange-40 ),var( --orange-50 ))}.color-orange-60{color:light-dark(var( --orange-30 ),var( --orange-60 ))}.color-orange-70{color:light-dark(var( --orange-20 ),var( --orange-70 ))}.color-orange-80{color:light-dark(var( --orange-10 ),var( --orange-80 ))}.color-orange-90{color:light-dark(var( --orange-5 ),var( --orange-90 ))}.color-peach-5{color:light-dark(var( --peach-90 ),var( --peach-5 ))}.color-peach-10{color:light-dark(var( --peach-80 ),var( --peach-10 ))}.color-peach-20{color:light-dark(var( --peach-70 ),var( --peach-20 ))}.color-peach-30{color:light-dark(var( --peach-60 ),var( --peach-30 ))}.color-peach-40{color:light-dark(var( --peach-50 ),var( --peach-40 ))}.color-peach-50{color:light-dark(var( --peach-40 ),var( --peach-50 ))}.color-peach-60{color:light-dark(var( --peach-30 ),var( --peach-60 ))}.color-peach-70{color:light-dark(var( --peach-20 ),var( --peach-70 ))}.color-peach-80{color:light-dark(var( --peach-10 ),var( --peach-80 ))}.color-peach-90{color:light-dark(var( --peach-5 ),var( --peach-90 ))}.color-pink-5{color:light-dark(var( --pink-90 ),var( --pink-5 ))}.color-pink-10{color:light-dark(var( --pink-80 ),var( --pink-10 ))}.color-pink-20{color:light-dark(var( --pink-70 ),var( --pink-20 ))}.color-pink-30{color:light-dark(var( --pink-60 ),var( --pink-30 ))}.color-pink-40{color:light-dark(var( --pink-50 ),var( --pink-40 ))}.color-pink-50{color:light-dark(var( --pink-40 ),var( --pink-50 ))}.color-pink-60{color:light-dark(var( --pink-30 ),var( --pink-60 ))}.color-pink-70{color:light-dark(var( --pink-20 ),var( --pink-70 ))}.color-pink-80{color:light-dark(var( --pink-10 ),var( --pink-80 ))}.color-pink-90{color:light-dark(var( --pink-5 ),var( --pink-90 ))}.color-plum-5{color:light-dark(var( --plum-90 ),var( --plum-5 ))}.color-plum-10{color:light-dark(var( --plum-80 ),var( --plum-10 ))}.color-plum-20{color:light-dark(var( --plum-70 ),var( --plum-20 ))}.color-plum-30{color:light-dark(var( --plum-60 ),var( --plum-30 ))}.color-plum-40{color:light-dark(var( --plum-50 ),var( --plum-40 ))}.color-plum-50{color:light-dark(var( --plum-40 ),var( --plum-50 ))}.color-plum-60{color:light-dark(var( --plum-30 ),var( --plum-60 ))}.color-plum-70{color:light-dark(var( --plum-20 ),var( --plum-70 ))}.color-plum-80{color:light-dark(var( --plum-10 ),var( --plum-80 ))}.color-plum-90{color:light-dark(var( --plum-5 ),var( --plum-90 ))}.color-purple-5{color:light-dark(var( --purple-90 ),var( --purple-5 ))}.color-purple-10{color:light-dark(var( --purple-80 ),var( --purple-10 ))}.color-purple-20{color:light-dark(var( --purple-70 ),var( --purple-20 ))}.color-purple-30{color:light-dark(var( --purple-60 ),var( --purple-30 ))}.color-purple-40{color:light-dark(var( --purple-50 ),var( --purple-40 ))}.color-purple-50{color:light-dark(var( --purple-40 ),var( --purple-50 ))}.color-purple-60{color:light-dark(var( --purple-30 ),var( --purple-60 ))}.color-purple-70{color:light-dark(var( --purple-20 ),var( --purple-70 ))}.color-purple-80{color:light-dark(var( --purple-10 ),var( --purple-80 ))}.color-purple-90{color:light-dark(var( --purple-5 ),var( --purple-90 ))}.color-red-5{color:light-dark(var( --red-90 ),var( --red-5 ))}.color-red-10{color:light-dark(var( --red-80 ),var( --red-10 ))}.color-red-20{color:light-dark(var( --red-70 ),var( --red-20 ))}.color-red-30{color:light-dark(var( --red-60 ),var( --red-30 ))}.color-red-40{color:light-dark(var( --red-50 ),var( --red-40 ))}.color-red-50{color:light-dark(var( --red-40 ),var( --red-50 ))}.color-red-60{color:light-dark(var( --red-30 ),var( --red-60 ))}.color-red-70{color:light-dark(var( --red-20 ),var( --red-70 ))}.color-red-80{color:light-dark(var( --red-10 ),var( --red-80 ))}.color-red-90{color:light-dark(var( --red-5 ),var( --red-90 ))}.color-rose-5{color:light-dark(var( --rose-90 ),var( --rose-5 ))}.color-rose-10{color:light-dark(var( --rose-80 ),var( --rose-10 ))}.color-rose-20{color:light-dark(var( --rose-70 ),var( --rose-20 ))}.color-rose-30{color:light-dark(var( --rose-60 ),var( --rose-30 ))}.color-rose-40{color:light-dark(var( --rose-50 ),var( --rose-40 ))}.color-rose-50{color:light-dark(var( --rose-40 ),var( --rose-50 ))}.color-rose-60{color:light-dark(var( --rose-30 ),var( --rose-60 ))}.color-rose-70{color:light-dark(var( --rose-20 ),var( --rose-70 ))}.color-rose-80{color:light-dark(var( --rose-10 ),var( --rose-80 ))}.color-rose-90{color:light-dark(var( --rose-5 ),var( --rose-90 ))}.color-sky-5{color:light-dark(var( --sky-90 ),var( --sky-5 ))}.color-sky-10{color:light-dark(var( --sky-80 ),var( --sky-10 ))}.color-sky-20{color:light-dark(var( --sky-70 ),var( --sky-20 ))}.color-sky-30{color:light-dark(var( --sky-60 ),var( --sky-30 ))}.color-sky-40{color:light-dark(var( --sky-50 ),var( --sky-40 ))}.color-sky-50{color:light-dark(var( --sky-40 ),var( --sky-50 ))}.color-sky-60{color:light-dark(var( --sky-30 ),var( --sky-60 ))}.color-sky-70{color:light-dark(var( --sky-20 ),var( --sky-70 ))}.color-sky-80{color:light-dark(var( --sky-10 ),var( --sky-80 ))}.color-sky-90{color:light-dark(var( --sky-5 ),var( --sky-90 ))}.color-teal-5{color:light-dark(var( --teal-90 ),var( --teal-5 ))}.color-teal-10{color:light-dark(var( --teal-80 ),var( --teal-10 ))}.color-teal-20{color:light-dark(var( --teal-70 ),var( --teal-20 ))}.color-teal-30{color:light-dark(var( --teal-60 ),var( --teal-30 ))}.color-teal-40{color:light-dark(var( --teal-50 ),var( --teal-40 ))}.color-teal-50{color:light-dark(var( --teal-40 ),var( --teal-50 ))}.color-teal-60{color:light-dark(var( --teal-30 ),var( --teal-60 ))}.color-teal-70{color:light-dark(var( --teal-20 ),var( --teal-70 ))}.color-teal-80{color:light-dark(var( --teal-10 ),var( --teal-80 ))}.color-teal-90{color:light-dark(var( --teal-5 ),var( --teal-90 ))}.color-violet-5{color:light-dark(var( --violet-90 ),var( --violet-5 ))}.color-violet-10{color:light-dark(var( --violet-80 ),var( --violet-10 ))}.color-violet-20{color:light-dark(var( --violet-70 ),var( --violet-20 ))}.color-violet-30{color:light-dark(var( --violet-60 ),var( --violet-30 ))}.color-violet-40{color:light-dark(var( --violet-50 ),var( --violet-40 ))}.color-violet-50{color:light-dark(var( --violet-40 ),var( --violet-50 ))}.color-violet-60{color:light-dark(var( --violet-30 ),var( --violet-60 ))}.color-violet-70{color:light-dark(var( --violet-20 ),var( --violet-70 ))}.color-violet-80{color:light-dark(var( --violet-10 ),var( --violet-80 ))}.color-violet-90{color:light-dark(var( --violet-5 ),var( --violet-90 ))}.color-yellow-5{color:light-dark(var( --yellow-90 ),var( --yellow-5 ))}.color-yellow-10{color:light-dark(var( --yellow-80 ),var( --yellow-10 ))}.color-yellow-20{color:light-dark(var( --yellow-70 ),var( --yellow-20 ))}.color-yellow-30{color:light-dark(var( --yellow-60 ),var( --yellow-30 ))}.color-yellow-40{color:light-dark(var( --yellow-50 ),var( --yellow-40 ))}.color-yellow-50{color:light-dark(var( --yellow-40 ),var( --yellow-50 ))}.color-yellow-60{color:light-dark(var( --yellow-30 ),var( --yellow-60 ))}.color-yellow-70{color:light-dark(var( --yellow-20 ),var( --yellow-70 ))}.color-yellow-80{color:light-dark(var( --yellow-10 ),var( --yellow-80 ))}.color-yellow-90{color:light-dark(var( --yellow-5 ),var( --yellow-90 ))}.background-color-5{background-color:light-dark(var( --base-90 ),var( --base-5 ))}.background-color-10{background-color:light-dark(var( --base-80 ),var( --base-10 ))}.background-color-20{background-color:light-dark(var( --base-70 ),var( --base-20 ))}.background-color-30{background-color:light-dark(var( --base-60 ),var( --base-30 ))}.background-color-40{background-color:light-dark(var( --base-50 ),var( --base-40 ))}.background-color-50{background-color:light-dark(var( --base-40 ),var( --base-50 ))}.background-color-60{background-color:light-dark(var( --base-30 ),var( --base-60 ))}.background-color-70{background-color:light-dark(var( --base-20 ),var( --base-70 ))}.background-color-80{background-color:light-dark(var( --base-10 ),var( --base-80 ))}.background-color-90{background-color:light-dark(var( --base-5 ),var( --base-90 ))}.background-color-amber-5{background-color:light-dark(var( --amber-90 ),var( --amber-5 ))}.background-color-amber-10{background-color:light-dark(var( --amber-80 ),var( --amber-10 ))}.background-color-amber-20{background-color:light-dark(var( --amber-70 ),var( --amber-20 ))}.background-color-amber-30{background-color:light-dark(var( --amber-60 ),var( --amber-30 ))}.background-color-amber-40{background-color:light-dark(var( --amber-50 ),var( --amber-40 ))}.background-color-amber-50{background-color:light-dark(var( --amber-40 ),var( --amber-50 ))}.background-color-amber-60{background-color:light-dark(var( --amber-30 ),var( --amber-60 ))}.background-color-amber-70{background-color:light-dark(var( --amber-20 ),var( --amber-70 ))}.background-color-amber-80{background-color:light-dark(var( --amber-10 ),var( --amber-80 ))}.background-color-amber-90{background-color:light-dark(var( --amber-5 ),var( --amber-90 ))}.background-color-blue-5{background-color:light-dark(var( --blue-90 ),var( --blue-5 ))}.background-color-blue-10{background-color:light-dark(var( --blue-80 ),var( --blue-10 ))}.background-color-blue-20{background-color:light-dark(var( --blue-70 ),var( --blue-20 ))}.background-color-blue-30{background-color:light-dark(var( --blue-60 ),var( --blue-30 ))}.background-color-blue-40{background-color:light-dark(var( --blue-50 ),var( --blue-40 ))}.background-color-blue-50{background-color:light-dark(var( --blue-40 ),var( --blue-50 ))}.background-color-blue-60{background-color:light-dark(var( --blue-30 ),var( --blue-60 ))}.background-color-blue-70{background-color:light-dark(var( --blue-20 ),var( --blue-70 ))}.background-color-blue-80{background-color:light-dark(var( --blue-10 ),var( --blue-80 ))}.background-color-blue-90{background-color:light-dark(var( --blue-5 ),var( --blue-90 ))}.background-color-cyan-5{background-color:light-dark(var( --cyan-90 ),var( --cyan-5 ))}.background-color-cyan-10{background-color:light-dark(var( --cyan-80 ),var( --cyan-10 ))}.background-color-cyan-20{background-color:light-dark(var( --cyan-70 ),var( --cyan-20 ))}.background-color-cyan-30{background-color:light-dark(var( --cyan-60 ),var( --cyan-30 ))}.background-color-cyan-40{background-color:light-dark(var( --cyan-50 ),var( --cyan-40 ))}.background-color-cyan-50{background-color:light-dark(var( --cyan-40 ),var( --cyan-50 ))}.background-color-cyan-60{background-color:light-dark(var( --cyan-30 ),var( --cyan-60 ))}.background-color-cyan-70{background-color:light-dark(var( --cyan-20 ),var( --cyan-70 ))}.background-color-cyan-80{background-color:light-dark(var( --cyan-10 ),var( --cyan-80 ))}.background-color-cyan-90{background-color:light-dark(var( --cyan-5 ),var( --cyan-90 ))}.background-color-emerald-5{background-color:light-dark(var( --emerald-90 ),var( --emerald-5 ))}.background-color-emerald-10{background-color:light-dark(var( --emerald-80 ),var( --emerald-10 ))}.background-color-emerald-20{background-color:light-dark(var( --emerald-70 ),var( --emerald-20 ))}.background-color-emerald-30{background-color:light-dark(var( --emerald-60 ),var( --emerald-30 ))}.background-color-emerald-40{background-color:light-dark(var( --emerald-50 ),var( --emerald-40 ))}.background-color-emerald-50{background-color:light-dark(var( --emerald-40 ),var( --emerald-50 ))}.background-color-emerald-60{background-color:light-dark(var( --emerald-30 ),var( --emerald-60 ))}.background-color-emerald-70{background-color:light-dark(var( --emerald-20 ),var( --emerald-70 ))}.background-color-emerald-80{background-color:light-dark(var( --emerald-10 ),var( --emerald-80 ))}.background-color-emerald-90{background-color:light-dark(var( --emerald-5 ),var( --emerald-90 ))}.background-color-fuchsia-5{background-color:light-dark(var( --fuchsia-90 ),var( --fuchsia-5 ))}.background-color-fuchsia-10{background-color:light-dark(var( --fuchsia-80 ),var( --fuchsia-10 ))}.background-color-fuchsia-20{background-color:light-dark(var( --fuchsia-70 ),var( --fuchsia-20 ))}.background-color-fuchsia-30{background-color:light-dark(var( --fuchsia-60 ),var( --fuchsia-30 ))}.background-color-fuchsia-40{background-color:light-dark(var( --fuchsia-50 ),var( --fuchsia-40 ))}.background-color-fuchsia-50{background-color:light-dark(var( --fuchsia-40 ),var( --fuchsia-50 ))}.background-color-fuchsia-60{background-color:light-dark(var( --fuchsia-30 ),var( --fuchsia-60 ))}.background-color-fuchsia-70{background-color:light-dark(var( --fuchsia-20 ),var( --fuchsia-70 ))}.background-color-fuchsia-80{background-color:light-dark(var( --fuchsia-10 ),var( --fuchsia-80 ))}.background-color-fuchsia-90{background-color:light-dark(var( --fuchsia-5 ),var( --fuchsia-90 ))}.background-color-green-5{background-color:light-dark(var( --green-90 ),var( --green-5 ))}.background-color-green-10{background-color:light-dark(var( --green-80 ),var( --green-10 ))}.background-color-green-20{background-color:light-dark(var( --green-70 ),var( --green-20 ))}.background-color-green-30{background-color:light-dark(var( --green-60 ),var( --green-30 ))}.background-color-green-40{background-color:light-dark(var( --green-50 ),var( --green-40 ))}.background-color-green-50{background-color:light-dark(var( --green-40 ),var( --green-50 ))}.background-color-green-60{background-color:light-dark(var( --green-30 ),var( --green-60 ))}.background-color-green-70{background-color:light-dark(var( --green-20 ),var( --green-70 ))}.background-color-green-80{background-color:light-dark(var( --green-10 ),var( --green-80 ))}.background-color-green-90{background-color:light-dark(var( --green-5 ),var( --green-90 ))}.background-color-indigo-5{background-color:light-dark(var( --indigo-90 ),var( --indigo-5 ))}.background-color-indigo-10{background-color:light-dark(var( --indigo-80 ),var( --indigo-10 ))}.background-color-indigo-20{background-color:light-dark(var( --indigo-70 ),var( --indigo-20 ))}.background-color-indigo-30{background-color:light-dark(var( --indigo-60 ),var( --indigo-30 ))}.background-color-indigo-40{background-color:light-dark(var( --indigo-50 ),var( --indigo-40 ))}.background-color-indigo-50{background-color:light-dark(var( --indigo-40 ),var( --indigo-50 ))}.background-color-indigo-60{background-color:light-dark(var( --indigo-30 ),var( --indigo-60 ))}.background-color-indigo-70{background-color:light-dark(var( --indigo-20 ),var( --indigo-70 ))}.background-color-indigo-80{background-color:light-dark(var( --indigo-10 ),var( --indigo-80 ))}.background-color-indigo-90{background-color:light-dark(var( --indigo-5 ),var( --indigo-90 ))}.background-color-lavender-5{background-color:light-dark(var( --lavender-90 ),var( --lavender-5 ))}.background-color-lavender-10{background-color:light-dark(var( --lavender-80 ),var( --lavender-10 ))}.background-color-lavender-20{background-color:light-dark(var( --lavender-70 ),var( --lavender-20 ))}.background-color-lavender-30{background-color:light-dark(var( --lavender-60 ),var( --lavender-30 ))}.background-color-lavender-40{background-color:light-dark(var( --lavender-50 ),var( --lavender-40 ))}.background-color-lavender-50{background-color:light-dark(var( --lavender-40 ),var( --lavender-50 ))}.background-color-lavender-60{background-color:light-dark(var( --lavender-30 ),var( --lavender-60 ))}.background-color-lavender-70{background-color:light-dark(var( --lavender-20 ),var( --lavender-70 ))}.background-color-lavender-80{background-color:light-dark(var( --lavender-10 ),var( --lavender-80 ))}.background-color-lavender-90{background-color:light-dark(var( --lavender-5 ),var( --lavender-90 ))}.background-color-lime-5{background-color:light-dark(var( --lime-90 ),var( --lime-5 ))}.background-color-lime-10{background-color:light-dark(var( --lime-80 ),var( --lime-10 ))}.background-color-lime-20{background-color:light-dark(var( --lime-70 ),var( --lime-20 ))}.background-color-lime-30{background-color:light-dark(var( --lime-60 ),var( --lime-30 ))}.background-color-lime-40{background-color:light-dark(var( --lime-50 ),var( --lime-40 ))}.background-color-lime-50{background-color:light-dark(var( --lime-40 ),var( --lime-50 ))}.background-color-lime-60{background-color:light-dark(var( --lime-30 ),var( --lime-60 ))}.background-color-lime-70{background-color:light-dark(var( --lime-20 ),var( --lime-70 ))}.background-color-lime-80{background-color:light-dark(var( --lime-10 ),var( --lime-80 ))}.background-color-lime-90{background-color:light-dark(var( --lime-5 ),var( --lime-90 ))}.background-color-orange-5{background-color:light-dark(var( --orange-90 ),var( --orange-5 ))}.background-color-orange-10{background-color:light-dark(var( --orange-80 ),var( --orange-10 ))}.background-color-orange-20{background-color:light-dark(var( --orange-70 ),var( --orange-20 ))}.background-color-orange-30{background-color:light-dark(var( --orange-60 ),var( --orange-30 ))}.background-color-orange-40{background-color:light-dark(var( --orange-50 ),var( --orange-40 ))}.background-color-orange-50{background-color:light-dark(var( --orange-40 ),var( --orange-50 ))}.background-color-orange-60{background-color:light-dark(var( --orange-30 ),var( --orange-60 ))}.background-color-orange-70{background-color:light-dark(var( --orange-20 ),var( --orange-70 ))}.background-color-orange-80{background-color:light-dark(var( --orange-10 ),var( --orange-80 ))}.background-color-orange-90{background-color:light-dark(var( --orange-5 ),var( --orange-90 ))}.background-color-peach-5{background-color:light-dark(var( --peach-90 ),var( --peach-5 ))}.background-color-peach-10{background-color:light-dark(var( --peach-80 ),var( --peach-10 ))}.background-color-peach-20{background-color:light-dark(var( --peach-70 ),var( --peach-20 ))}.background-color-peach-30{background-color:light-dark(var( --peach-60 ),var( --peach-30 ))}.background-color-peach-40{background-color:light-dark(var( --peach-50 ),var( --peach-40 ))}.background-color-peach-50{background-color:light-dark(var( --peach-40 ),var( --peach-50 ))}.background-color-peach-60{background-color:light-dark(var( --peach-30 ),var( --peach-60 ))}.background-color-peach-70{background-color:light-dark(var( --peach-20 ),var( --peach-70 ))}.background-color-peach-80{background-color:light-dark(var( --peach-10 ),var( --peach-80 ))}.background-color-peach-90{background-color:light-dark(var( --peach-5 ),var( --peach-90 ))}.background-color-pink-5{background-color:light-dark(var( --pink-90 ),var( --pink-5 ))}.background-color-pink-10{background-color:light-dark(var( --pink-80 ),var( --pink-10 ))}.background-color-pink-20{background-color:light-dark(var( --pink-70 ),var( --pink-20 ))}.background-color-pink-30{background-color:light-dark(var( --pink-60 ),var( --pink-30 ))}.background-color-pink-40{background-color:light-dark(var( --pink-50 ),var( --pink-40 ))}.background-color-pink-50{background-color:light-dark(var( --pink-40 ),var( --pink-50 ))}.background-color-pink-60{background-color:light-dark(var( --pink-30 ),var( --pink-60 ))}.background-color-pink-70{background-color:light-dark(var( --pink-20 ),var( --pink-70 ))}.background-color-pink-80{background-color:light-dark(var( --pink-10 ),var( --pink-80 ))}.background-color-pink-90{background-color:light-dark(var( --pink-5 ),var( --pink-90 ))}.background-color-plum-5{background-color:light-dark(var( --plum-90 ),var( --plum-5 ))}.background-color-plum-10{background-color:light-dark(var( --plum-80 ),var( --plum-10 ))}.background-color-plum-20{background-color:light-dark(var( --plum-70 ),var( --plum-20 ))}.background-color-plum-30{background-color:light-dark(var( --plum-60 ),var( --plum-30 ))}.background-color-plum-40{background-color:light-dark(var( --plum-50 ),var( --plum-40 ))}.background-color-plum-50{background-color:light-dark(var( --plum-40 ),var( --plum-50 ))}.background-color-plum-60{background-color:light-dark(var( --plum-30 ),var( --plum-60 ))}.background-color-plum-70{background-color:light-dark(var( --plum-20 ),var( --plum-70 ))}.background-color-plum-80{background-color:light-dark(var( --plum-10 ),var( --plum-80 ))}.background-color-plum-90{background-color:light-dark(var( --plum-5 ),var( --plum-90 ))}.background-color-purple-5{background-color:light-dark(var( --purple-90 ),var( --purple-5 ))}.background-color-purple-10{background-color:light-dark(var( --purple-80 ),var( --purple-10 ))}.background-color-purple-20{background-color:light-dark(var( --purple-70 ),var( --purple-20 ))}.background-color-purple-30{background-color:light-dark(var( --purple-60 ),var( --purple-30 ))}.background-color-purple-40{background-color:light-dark(var( --purple-50 ),var( --purple-40 ))}.background-color-purple-50{background-color:light-dark(var( --purple-40 ),var( --purple-50 ))}.background-color-purple-60{background-color:light-dark(var( --purple-30 ),var( --purple-60 ))}.background-color-purple-70{background-color:light-dark(var( --purple-20 ),var( --purple-70 ))}.background-color-purple-80{background-color:light-dark(var( --purple-10 ),var( --purple-80 ))}.background-color-purple-90{background-color:light-dark(var( --purple-5 ),var( --purple-90 ))}.background-color-red-5{background-color:light-dark(var( --red-90 ),var( --red-5 ))}.background-color-red-10{background-color:light-dark(var( --red-80 ),var( --red-10 ))}.background-color-red-20{background-color:light-dark(var( --red-70 ),var( --red-20 ))}.background-color-red-30{background-color:light-dark(var( --red-60 ),var( --red-30 ))}.background-color-red-40{background-color:light-dark(var( --red-50 ),var( --red-40 ))}.background-color-red-50{background-color:light-dark(var( --red-40 ),var( --red-50 ))}.background-color-red-60{background-color:light-dark(var( --red-30 ),var( --red-60 ))}.background-color-red-70{background-color:light-dark(var( --red-20 ),var( --red-70 ))}.background-color-red-80{background-color:light-dark(var( --red-10 ),var( --red-80 ))}.background-color-red-90{background-color:light-dark(var( --red-5 ),var( --red-90 ))}.background-color-rose-5{background-color:light-dark(var( --rose-90 ),var( --rose-5 ))}.background-color-rose-10{background-color:light-dark(var( --rose-80 ),var( --rose-10 ))}.background-color-rose-20{background-color:light-dark(var( --rose-70 ),var( --rose-20 ))}.background-color-rose-30{background-color:light-dark(var( --rose-60 ),var( --rose-30 ))}.background-color-rose-40{background-color:light-dark(var( --rose-50 ),var( --rose-40 ))}.background-color-rose-50{background-color:light-dark(var( --rose-40 ),var( --rose-50 ))}.background-color-rose-60{background-color:light-dark(var( --rose-30 ),var( --rose-60 ))}.background-color-rose-70{background-color:light-dark(var( --rose-20 ),var( --rose-70 ))}.background-color-rose-80{background-color:light-dark(var( --rose-10 ),var( --rose-80 ))}.background-color-rose-90{background-color:light-dark(var( --rose-5 ),var( --rose-90 ))}.background-color-sky-5{background-color:light-dark(var( --sky-90 ),var( --sky-5 ))}.background-color-sky-10{background-color:light-dark(var( --sky-80 ),var( --sky-10 ))}.background-color-sky-20{background-color:light-dark(var( --sky-70 ),var( --sky-20 ))}.background-color-sky-30{background-color:light-dark(var( --sky-60 ),var( --sky-30 ))}.background-color-sky-40{background-color:light-dark(var( --sky-50 ),var( --sky-40 ))}.background-color-sky-50{background-color:light-dark(var( --sky-40 ),var( --sky-50 ))}.background-color-sky-60{background-color:light-dark(var( --sky-30 ),var( --sky-60 ))}.background-color-sky-70{background-color:light-dark(var( --sky-20 ),var( --sky-70 ))}.background-color-sky-80{background-color:light-dark(var( --sky-10 ),var( --sky-80 ))}.background-color-sky-90{background-color:light-dark(var( --sky-5 ),var( --sky-90 ))}.background-color-teal-5{background-color:light-dark(var( --teal-90 ),var( --teal-5 ))}.background-color-teal-10{background-color:light-dark(var( --teal-80 ),var( --teal-10 ))}.background-color-teal-20{background-color:light-dark(var( --teal-70 ),var( --teal-20 ))}.background-color-teal-30{background-color:light-dark(var( --teal-60 ),var( --teal-30 ))}.background-color-teal-40{background-color:light-dark(var( --teal-50 ),var( --teal-40 ))}.background-color-teal-50{background-color:light-dark(var( --teal-40 ),var( --teal-50 ))}.background-color-teal-60{background-color:light-dark(var( --teal-30 ),var( --teal-60 ))}.background-color-teal-70{background-color:light-dark(var( --teal-20 ),var( --teal-70 ))}.background-color-teal-80{background-color:light-dark(var( --teal-10 ),var( --teal-80 ))}.background-color-teal-90{background-color:light-dark(var( --teal-5 ),var( --teal-90 ))}.background-color-violet-5{background-color:light-dark(var( --violet-90 ),var( --violet-5 ))}.background-color-violet-10{background-color:light-dark(var( --violet-80 ),var( --violet-10 ))}.background-color-violet-20{background-color:light-dark(var( --violet-70 ),var( --violet-20 ))}.background-color-violet-30{background-color:light-dark(var( --violet-60 ),var( --violet-30 ))}.background-color-violet-40{background-color:light-dark(var( --violet-50 ),var( --violet-40 ))}.background-color-violet-50{background-color:light-dark(var( --violet-40 ),var( --violet-50 ))}.background-color-violet-60{background-color:light-dark(var( --violet-30 ),var( --violet-60 ))}.background-color-violet-70{background-color:light-dark(var( --violet-20 ),var( --violet-70 ))}.background-color-violet-80{background-color:light-dark(var( --violet-10 ),var( --violet-80 ))}.background-color-violet-90{background-color:light-dark(var( --violet-5 ),var( --violet-90 ))}.background-color-yellow-5{background-color:light-dark(var( --yellow-90 ),var( --yellow-5 ))}.background-color-yellow-10{background-color:light-dark(var( --yellow-80 ),var( --yellow-10 ))}.background-color-yellow-20{background-color:light-dark(var( --yellow-70 ),var( --yellow-20 ))}.background-color-yellow-30{background-color:light-dark(var( --yellow-60 ),var( --yellow-30 ))}.background-color-yellow-40{background-color:light-dark(var( --yellow-50 ),var( --yellow-40 ))}.background-color-yellow-50{background-color:light-dark(var( --yellow-40 ),var( --yellow-50 ))}.background-color-yellow-60{background-color:light-dark(var( --yellow-30 ),var( --yellow-60 ))}.background-color-yellow-70{background-color:light-dark(var( --yellow-20 ),var( --yellow-70 ))}.background-color-yellow-80{background-color:light-dark(var( --yellow-10 ),var( --yellow-80 ))}.background-color-yellow-90{background-color:light-dark(var( --yellow-5 ),var( --yellow-90 ))}.measure{max-width:30em}.measure-tight{max-width:20em}.measure-loose{max-width:36em}.text-align-left{text-align:left}.text-align-right{text-align:right}.text-align-center{text-align:center}.text-align-justify{text-align:justify}.text-transform-capitalize{text-transform:capitalize}.text-transform-uppercase{text-transform:uppercase}.text-transform-lowercase{text-transform:lowercase}.text-transform-none{text-transform:none}.text-decoration-underline{text-decoration:underline}.text-decoration-strike{text-decoration:line-through}.text-decoration-none{text-decoration:none}.vertical-align-baseline{vertical-align:baseline}.vertical-align-top{vertical-align:top}.vertical-align-middle{vertical-align:middle}.vertical-align-bottom{vertical-align:bottom}.font-style-italic{font-style:italic}.font-style-normal{font-style:normal}.letter-spacing-0{letter-spacing:0}.letter-spacing-1{letter-spacing:.1em}.letter-spacing-2{letter-spacing:.2em}.letter-spacing-3{letter-spacing:.3em}.letter-spacing--1{letter-spacing:-.1em}.letter-spacing--2{letter-spacing:-.2em}.letter-spacing--3{letter-spacing:-.3em}.font-size-0_75{font-size:.75rem}.font-size-1{font-size:1rem}.font-size-1_25{font-size:1.25rem}.font-size-1_5{font-size:1.5rem}.font-size-1_75{font-size:1.75rem}.font-size-2{font-size:2rem}.font-size-2_25{font-size:2.25rem}.font-size-2_5{font-size:2.5rem}.font-size-2_75{font-size:2.75rem}.f1,.font-size-3{font-size:3rem}.f2{font-size:2.25rem}.f3{font-size:1.5rem}.f4{font-size:1.25rem}.f5{font-size:1rem}.f6{font-size:.875rem}.white-space-nowrap{white-space:nowrap}.white-space-pre{white-space:pre}.white-space-pre-line{white-space:pre-line}.white-space-pre-wrap{white-space:pre-wrap}.white-space-normal{white-space:normal}.width-1{width:1rem}.width-2{width:2rem}.width-3{width:3rem}.width-4{width:4rem}.width-5{width:5rem}.width-6{width:6rem}.width-7{width:7rem}.width-8{width:8rem}.width-9{width:9rem}.width-10{width:10rem}.width-11{width:11rem}.width-12{width:12rem}.width-13{width:13rem}.width-14{width:14rem}.width-15{width:15rem}.width-16{width:16rem}.width-17{width:17rem}.width-18{width:18rem}.width-19{width:19rem}.width-20{width:20rem}.width-21{width:21rem}.width-22{width:22rem}.width-23{width:23rem}.width-24{width:24rem}.width-25{width:25rem}.width-26{width:26rem}.width-27{width:27rem}.width-28{width:28rem}.width-29{width:29rem}.width-30{width:30rem}.width-31{width:31rem}.width-32{width:32rem}.width-33{width:33rem}.width-34{width:34rem}.width-35{width:35rem}.width-36{width:36rem}.width-37{width:37rem}.width-38{width:38rem}.width-39{width:39rem}.width-40{width:40rem}.width-41{width:41rem}.width-42{width:42rem}.width-43{width:43rem}.width-44{width:44rem}.width-45{width:45rem}.width-46{width:46rem}.width-47{width:47rem}.width-48{width:48rem}.width-49{width:49rem}.width-50{width:50rem}.width-51{width:51rem}.width-52{width:52rem}.width-53{width:53rem}.width-54{width:54rem}.width-55{width:55rem}.width-56{width:56rem}.width-57{width:57rem}.width-58{width:58rem}.width-59{width:59rem}.width-60{width:60rem}.width-61{width:61rem}.width-62{width:62rem}.width-63{width:63rem}.width-64{width:64rem}.width-65{width:65rem}.width-66{width:66rem}.width-67{width:67rem}.width-68{width:68rem}.width-69{width:69rem}.width-70{width:70rem}.width-71{width:71rem}.width-72{width:72rem}.width-73{width:73rem}.width-74{width:74rem}.width-75{width:75rem}.width-76{width:76rem}.width-77{width:77rem}.width-78{width:78rem}.width-79{width:79rem}.width-80{width:80rem}.width-81{width:81rem}.width-82{width:82rem}.width-83{width:83rem}.width-84{width:84rem}.width-85{width:85rem}.width-86{width:86rem}.width-87{width:87rem}.width-88{width:88rem}.width-89{width:89rem}.width-90{width:90rem}.width-91{width:91rem}.width-92{width:92rem}.width-93{width:93rem}.width-94{width:94rem}.width-95{width:95rem}.width-96{width:96rem}.width-97{width:97rem}.width-98{width:98rem}.width-99{width:99rem}.width-100{width:100rem}.width-1p{width:1%}.width-2p{width:2%}.width-3p{width:3%}.width-4p{width:4%}.width-5p{width:5%}.width-6p{width:6%}.width-7p{width:7%}.width-8p{width:8%}.width-9p{width:9%}.width-10p{width:10%}.width-11p{width:11%}.width-12p{width:12%}.width-13p{width:13%}.width-14p{width:14%}.width-15p{width:15%}.width-16p{width:16%}.width-17p{width:17%}.width-18p{width:18%}.width-19p{width:19%}.width-20p{width:20%}.width-21p{width:21%}.width-22p{width:22%}.width-23p{width:23%}.width-24p{width:24%}.width-25p{width:25%}.width-26p{width:26%}.width-27p{width:27%}.width-28p{width:28%}.width-29p{width:29%}.width-30p{width:30%}.width-31p{width:31%}.width-32p{width:32%}.width-33p{width:33%}.width-34p{width:34%}.width-35p{width:35%}.width-36p{width:36%}.width-37p{width:37%}.width-38p{width:38%}.width-39p{width:39%}.width-40p{width:40%}.width-41p{width:41%}.width-42p{width:42%}.width-43p{width:43%}.width-44p{width:44%}.width-45p{width:45%}.width-46p{width:46%}.width-47p{width:47%}.width-48p{width:48%}.width-49p{width:49%}.width-50p{width:50%}.width-51p{width:51%}.width-52p{width:52%}.width-53p{width:53%}.width-54p{width:54%}.width-55p{width:55%}.width-56p{width:56%}.width-57p{width:57%}.width-58p{width:58%}.width-59p{width:59%}.width-60p{width:60%}.width-61p{width:61%}.width-62p{width:62%}.width-63p{width:63%}.width-64p{width:64%}.width-65p{width:65%}.width-66p{width:66%}.width-67p{width:67%}.width-68p{width:68%}.width-69p{width:69%}.width-70p{width:70%}.width-71p{width:71%}.width-72p{width:72%}.width-73p{width:73%}.width-74p{width:74%}.width-75p{width:75%}.width-76p{width:76%}.width-77p{width:77%}.width-78p{width:78%}.width-79p{width:79%}.width-80p{width:80%}.width-81p{width:81%}.width-82p{width:82%}.width-83p{width:83%}.width-84p{width:84%}.width-85p{width:85%}.width-86p{width:86%}.width-87p{width:87%}.width-88p{width:88%}.width-89p{width:89%}.width-90p{width:90%}.width-91p{width:91%}.width-92p{width:92%}.width-93p{width:93%}.width-94p{width:94%}.width-95p{width:95%}.width-96p{width:96%}.width-97p{width:97%}.width-98p{width:98%}.width-99p{width:99%}.width-100p,.width-full{width:100%}.width-auto{width:auto}.width-third{width:33.33333%}.width-two-thirds{width:66.66667%}:root{--column-gap:.25rem;--row-gap:.25rem;--base:oklch(.55 .04 240);--light-start:.92;--light-end:.13;--chroma-start:.001;--chroma-end:.01;--accent-5:var( --emerald-5 );--accent-10:var( --emerald-10 );--accent-20:var( --emerald-20 );--accent-30:var( --emerald-30 );--accent-40:var( --emerald-40 );--accent-50:var( --emerald-50 );--accent-60:var( --emerald-60 );--accent-70:var( --emerald-70 );--accent-80:var( --emerald-80 );--accent-90:var( --emerald-90 );--accent-95:var( --emerald-95 );--accent:var( --accent-50 );--light-avg:calc((var( --light-start ) + var( --light-end ))/2);--chroma-avg:calc((var( --chroma-start ) + var( --chroma-end ))/2);--chroma-med:calc((var( --chroma-avg ) + var( --chroma-end ))/1.5);--base-5:oklch(from var( --base ) calc(var( --light-start )*0.97 + var( --light-avg )*0.15) calc(var( --chroma-start )*0.99 + var( --chroma-med )*0.1) h/alpha);--base-10:oklch(from var( --base ) calc(var( --light-start )*0.95 + var( --light-avg )*0.05) calc(var( --chroma-start )*0.86 + var( --chroma-med )*0.14) h/alpha);--base-20:oklch(from var( --base ) calc(var( --light-start )*0.86 + var( --light-avg )*0.14) calc(var( --chroma-start )*0.71 + var( --chroma-med )*0.29) h/alpha);--base-30:oklch(from var( --base ) calc(var( --light-start )*0.73 + var( --light-avg )*0.27) calc(var( --chroma-start )*0.51 + var( --chroma-med )*0.49) h/alpha);--base-40:oklch(from var( --base ) calc(var( --light-start )*0.39 + var( --light-avg )*0.61) calc(var( --chroma-start )*0.29 + var( --chroma-med )*0.71) h/alpha);--base-50:oklch(from var( --base ) var( --light-avg ) var( --chroma-med ) h/alpha);--base-60:oklch(from var( --base ) calc(var( --light-end )*0.28 + var( --light-avg )*0.72) calc(var( --chroma-end )*0.29 + var( --chroma-med )*0.71) h/alpha);--base-70:oklch(from var( --base ) calc(var( --light-end )*0.45 + var( --light-avg )*0.55) calc(var( --chroma-end )*0.51 + var( --chroma-med )*0.49) h/alpha);--base-80:oklch(from var( --base ) calc(var( --light-end )*0.68 + var( --light-avg )*0.32) calc(var( --chroma-end )*0.71 + var( --chroma-med )*0.29) h/alpha);--base-90:oklch(from var( --base ) calc(var( --light-end )*0.83 + var( --light-avg )*0.17) calc(var( --chroma-end )*0.86 + var( --chroma-med )*0.14) h/alpha);--base-95:oklch(from var( --base ) calc(var( --light-end )*0.85 + var( --light-avg )*0.13) calc(var( --chroma-end )*0.95 + var( --chroma-med )*0.15) h/alpha);--background:light-dark(#fff,var( --base-90 ));--foreground:light-dark(var( --base-90 ),var( --base-5 ));--heading-foreground:light-dark(var( --base-90 ),var( --base-20 ));--accent-background:light-dark(var( --accent ),oklch(from var( --accent ) calc(var( --light-avg ) - 0.1) c h/alpha));--accent-foreground:light-dark(var( --base-5 ),var( --base-10 ));--border:1px solid light-dark(var( --base-20 ),var( --base-70 ))}body,html{height:100%;width:100%}*,::backdrop,::file-selector-button,:after,:before{border:0 solid;box-sizing:border-box;caret-color:var( --foreground );font-family:inherit;margin:0;padding:0}::-moz-selection{background-color:var( --accent-background );color:var( --accent-foreground )}::selection{background-color:var( --accent-background );color:var( --accent-foreground )}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}:host,html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;background-color:var( --background );color:var( --foreground );color-scheme:light dark}hr{border-block-start:var( --border );color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{inset-block-end:-.25em}sup{inset-block-start:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0;width:100%;thead{border-block-end:var( --border );th{color:var( --heading-foreground );font-weight:600}}tbody{tr{border-block-end:var( --border );&:last-of-type{border:0}}}tfoot{border-block-start:var( --border )}td,th{padding:var( --size-2 );text-align:start;&:first-of-type{padding-inline-start:0}&:last-of-type{padding-inline-end:0}}}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block}img,video{height:auto;max-width:100%}[hidden]{display:none!important}select[multiple],textarea{resize:vertical}h1,h2,h3,h4,h5,h6{color:var( --heading-foreground );font-weight:500;word-break:break-word;a{color:var( --heading-foreground );text-decoration:none}}h1{text-wrap:balance}grid{display:grid;--grid-tc:repeat(6,1fr);grid-template-columns:var( --grid-tc );--grid-cs:1;--grid-ce:-1;grid-column-gap:var( --column-gap );grid-row-gap:var( --row-gap )}grid>c{-moz-appearance:none;appearance:none;-webkit-appearance:none;display:block}grid[columns="1"]{--grid-tc:repeat(1,1fr)}grid[columns="2"]{--grid-tc:repeat(2,1fr)}grid[columns="3"]{--grid-tc:repeat(3,1fr)}grid[columns="4"]{--grid-tc:repeat(4,1fr)}grid[columns="5"]{--grid-tc:repeat(5,1fr)}grid[columns="6"]{--grid-tc:repeat(6,1fr)}grid[columns="7"]{--grid-tc:repeat(7,1fr)}grid[columns="8"]{--grid-tc:repeat(8,1fr)}grid[columns="9"]{--grid-tc:repeat(9,1fr)}grid[columns="10"]{--grid-tc:repeat(10,1fr)}grid[columns="11"]{--grid-tc:repeat(11,1fr)}grid[columns="12"]{--grid-tc:repeat(12,1fr)}grid>c[span^="1"]{--grid-cs:1}grid>c[span^="2"]{--grid-cs:2}grid>c[span^="3"]{--grid-cs:3}grid>c[span^="4"]{--grid-cs:4}grid>c[span^="5"]{--grid-cs:5}grid>c[span^="6"]{--grid-cs:6}grid>c[span^="7"]{--grid-cs:7}grid>c[span^="8"]{--grid-cs:8}grid>c[span^="9"]{--grid-cs:9}grid>c[span^="10"]{--grid-cs:10}grid>c[span^="11"]{--grid-cs:11}grid>c[span^="12"]{--grid-cs:12}grid>c[span$="+1"],grid>c[span="1"]{--grid-ce:1}grid>c[span$="+2"],grid>c[span$="-1"],grid>c[span="2"]{--grid-ce:2}grid>c[span$="+3"],grid>c[span$="-2"],grid>c[span="3"]{--grid-ce:3}grid>c[span$="+4"],grid>c[span$="-3"],grid>c[span="4"]{--grid-ce:4}grid>c[span$="+5"],grid>c[span$="-4"],grid>c[span="5"]{--grid-ce:5}grid>c[span$="+6"],grid>c[span$="-5"],grid>c[span="6"]{--grid-ce:6}grid>c[span$="+7"],grid>c[span$="-6"],grid>c[span="7"]{--grid-ce:7}grid>c[span$="+8"],grid>c[span$="-7"],grid>c[span="8"]{--grid-ce:8}grid>c[span$="+9"],grid>c[span$="-8"],grid>c[span="9"]{--grid-ce:9}grid>c[span$="+10"],grid>c[span$="-9"],grid>c[span="10"]{--grid-ce:10}grid>c[span$="+11"],grid>c[span$="-10"],grid>c[span="11"]{--grid-ce:11}grid>c[span$="+12"],grid>c[span$="-11"],grid>c[span="12"]{--grid-ce:12}grid>c[span$="-12"]{--grid-ce:13}grid>c[span]{grid-column-end:span var( --grid-ce )}grid>c[span*="+"],grid>c[span*="-"],grid>c[span*=".."]{grid-column-start:var( --grid-cs )}grid>c[span*="-"],grid>c[span*=".."]{grid-column-end:var( --grid-ce )}grid>c[span=row]{grid-column:1/-1}grid.debug>*{--color:hsla(7,92%,66%,.3);background-image:linear-gradient(to bottom,var( --color ) 0,var( --color ) 100%)}grid.debug>:nth-child(6n+2){--color:rgba(103,126,208,.3)}grid.debug>:nth-child(6n+3){--color:rgba(224,174,72,.3)}grid.debug>:nth-child(6n+4){--color:rgba(77,214,115,.3)}grid.debug>:nth-child(6n+5){--color:rgba(217,103,219,.3)}grid.debug>:nth-child(6n+6){--color:rgba(94,204,211,.3)}grid.debug>:nth-child(6n+7){--color:hsla(7,92%,66%,.3)}@media screen and (min-width:30em){.container{padding:0 1.5rem}.line-height-1-ns{line-height:1}.line-height-1_25-ns{line-height:1.25}.line-height-1_5-ns{line-height:1.5}.line-height-1_75-ns{line-height:1.75}.line-height-2-ns{line-height:2}.line-height-2_25-ns{line-height:2.25}.line-height-2_5-ns{line-height:2.5}.line-height-2_75-ns{line-height:2.75}.line-height-3-ns{line-height:3}}@media screen and (min-width:30em) and (max-width:60em){.container{padding:0 2rem}.line-height-1-m{line-height:1}.line-height-1_25-m{line-height:1.25}.line-height-1_5-m{line-height:1.5}.line-height-1_75-m{line-height:1.75}.line-height-2-m{line-height:2}.line-height-2_25-m{line-height:2.25}.line-height-2_5-m{line-height:2.5}.line-height-2_75-m{line-height:2.75}.line-height-3-m{line-height:3}}@media screen and (min-width:60em){.container{padding:0 3rem}.line-height-1-l{line-height:1}.line-height-1_25-l{line-height:1.25}.line-height-1_5-l{line-height:1.5}.line-height-1_75-l{line-height:1.75}.line-height-2-l{line-height:2}.line-height-2_25-l{line-height:2.25}.line-height-2_5-l{line-height:2.5}.line-height-2_75-l{line-height:2.75}.line-height-3-l{line-height:3}}@media (max-width:48.74em){grid[columns-s="1"]{--grid-tc:repeat(1,1fr)}grid[columns-s="2"]{--grid-tc:repeat(2,1fr)}grid[columns-s="3"]{--grid-tc:repeat(3,1fr)}grid[columns-s="4"]{--grid-tc:repeat(4,1fr)}grid[columns-s="5"]{--grid-tc:repeat(5,1fr)}grid[columns-s="6"]{--grid-tc:repeat(6,1fr)}grid[columns-s="7"]{--grid-tc:repeat(7,1fr)}grid[columns-s="8"]{--grid-tc:repeat(8,1fr)}grid[columns-s="9"]{--grid-tc:repeat(9,1fr)}grid[columns-s="10"]{--grid-tc:repeat(10,1fr)}grid[columns-s="11"]{--grid-tc:repeat(11,1fr)}grid[columns-s="12"]{--grid-tc:repeat(12,1fr)}grid>c[span-s^="1"]{--grid-cs:1}grid>c[span-s^="2"]{--grid-cs:2}grid>c[span-s^="3"]{--grid-cs:3}grid>c[span-s^="4"]{--grid-cs:4}grid>c[span-s^="5"]{--grid-cs:5}grid>c[span-s^="6"]{--grid-cs:6}grid>c[span-s^="7"]{--grid-cs:7}grid>c[span-s^="8"]{--grid-cs:8}grid>c[span-s^="9"]{--grid-cs:9}grid>c[span-s^="10"]{--grid-cs:10}grid>c[span-s^="11"]{--grid-cs:11}grid>c[span-s^="12"]{--grid-cs:12}grid>c[span-s$="+1"],grid>c[span-s="1"]{--grid-ce:1}grid>c[span-s$="+2"],grid>c[span-s$="-1"],grid>c[span-s="2"]{--grid-ce:2}grid>c[span-s$="+3"],grid>c[span-s$="-2"],grid>c[span-s="3"]{--grid-ce:3}grid>c[span-s$="+4"],grid>c[span-s$="-3"],grid>c[span-s="4"]{--grid-ce:4}grid>c[span-s$="+5"],grid>c[span-s$="-4"],grid>c[span-s="5"]{--grid-ce:5}grid>c[span-s$="+6"],grid>c[span-s$="-5"],grid>c[span-s="6"]{--grid-ce:6}grid>c[span-s$="+7"],grid>c[span-s$="-6"],grid>c[span-s="7"]{--grid-ce:7}grid>c[span-s$="+8"],grid>c[span-s$="-7"],grid>c[span-s="8"]{--grid-ce:8}grid>c[span-s$="+9"],grid>c[span-s$="-8"],grid>c[span-s="9"]{--grid-ce:9}grid>c[span-s$="+10"],grid>c[span-s$="-9"],grid>c[span-s="10"]{--grid-ce:10}grid>c[span-s$="+11"],grid>c[span-s$="-10"],grid>c[span-s="11"]{--grid-ce:11}grid>c[span-s$="+12"],grid>c[span-s$="-11"],grid>c[span-s="12"]{--grid-ce:12}grid>c[span-s$="-12"]{--grid-ce:13}grid>c[span-s]{grid-column-end:span var( --grid-ce )}grid>c[span-s*="+"],grid>c[span-s*="-"],grid>c[span-s*=".."]{grid-column-start:var( --grid-cs )}grid>c[span-s*="-"],grid>c[span-s*=".."]{grid-column-end:var( --grid-ce )}grid>c[span-s=row]{grid-column:1/-1}}@media (min-width:100em){grid[columns-l="1"]{--grid-tc:repeat(1,1fr)}grid[columns-l="2"]{--grid-tc:repeat(2,1fr)}grid[columns-l="3"]{--grid-tc:repeat(3,1fr)}grid[columns-l="4"]{--grid-tc:repeat(4,1fr)}grid[columns-l="5"]{--grid-tc:repeat(5,1fr)}grid[columns-l="6"]{--grid-tc:repeat(6,1fr)}grid[columns-l="7"]{--grid-tc:repeat(7,1fr)}grid[columns-l="8"]{--grid-tc:repeat(8,1fr)}grid[columns-l="9"]{--grid-tc:repeat(9,1fr)}grid[columns-l="10"]{--grid-tc:repeat(10,1fr)}grid[columns-l="11"]{--grid-tc:repeat(11,1fr)}grid[columns-l="12"]{--grid-tc:repeat(12,1fr)}grid>c[span-l^="1"]{--grid-cs:1}grid>c[span-l^="2"]{--grid-cs:2}grid>c[span-l^="3"]{--grid-cs:3}grid>c[span-l^="4"]{--grid-cs:4}grid>c[span-l^="5"]{--grid-cs:5}grid>c[span-l^="6"]{--grid-cs:6}grid>c[span-l^="7"]{--grid-cs:7}grid>c[span-l^="8"]{--grid-cs:8}grid>c[span-l^="9"]{--grid-cs:9}grid>c[span-l^="10"]{--grid-cs:10}grid>c[span-l^="11"]{--grid-cs:11}grid>c[span-l^="12"]{--grid-cs:12}grid>c[span-l$="+1"],grid>c[span-l="1"]{--grid-ce:1}grid>c[span-l$="+2"],grid>c[span-l$="-1"],grid>c[span-l="2"]{--grid-ce:2}grid>c[span-l$="+3"],grid>c[span-l$="-2"],grid>c[span-l="3"]{--grid-ce:3}grid>c[span-l$="+4"],grid>c[span-l$="-3"],grid>c[span-l="4"]{--grid-ce:4}grid>c[span-l$="+5"],grid>c[span-l$="-4"],grid>c[span-l="5"]{--grid-ce:5}grid>c[span-l$="+6"],grid>c[span-l$="-5"],grid>c[span-l="6"]{--grid-ce:6}grid>c[span-l$="+7"],grid>c[span-l$="-6"],grid>c[span-l="7"]{--grid-ce:7}grid>c[span-l$="+8"],grid>c[span-l$="-7"],grid>c[span-l="8"]{--grid-ce:8}grid>c[span-l$="+9"],grid>c[span-l$="-8"],grid>c[span-l="9"]{--grid-ce:9}grid>c[span-l$="+10"],grid>c[span-l$="-9"],grid>c[span-l="10"]{--grid-ce:10}grid>c[span-l$="+11"],grid>c[span-l$="-10"],grid>c[span-l="11"]{--grid-ce:11}grid>c[span-l$="+12"],grid>c[span-l$="-11"],grid>c[span-l="12"]{--grid-ce:12}grid>c[span-l$="-12"]{--grid-ce:13}grid>c[span-l]{grid-column-end:span var( --grid-ce )}grid>c[span-l*="+"],grid>c[span-l*="-"],grid>c[span-l*=".."]{grid-column-start:var( --grid-cs )}grid>c[span-l*="-"],grid>c[span-l*=".."]{grid-column-end:var( --grid-ce )}grid>c[span-l=row]{grid-column:1/-1}} diff --git a/src/demo.ts b/src/demo.ts index 84e7e60..3a96e34 100644 --- a/src/demo.ts +++ b/src/demo.ts @@ -251,7 +251,8 @@ import { html } from "./util"; const main = { template: html`
-

Colors

+

phase

+

Colors

diff --git a/src/index.ts b/src/index.ts index d160523..f0a2ae4 100644 --- a/src/index.ts +++ b/src/index.ts @@ -136,7 +136,9 @@ export const createScopedContext = (ctx: Context, data = {}): Context => { const parentScope = ctx.scope; const mergedScope = Object.create(parentScope); Object.defineProperties(mergedScope, Object.getOwnPropertyDescriptors(data)); + let proxy: any; + proxy = reactive( new Proxy(mergedScope, { set(target, key, val, receiver) { @@ -145,6 +147,7 @@ export const createScopedContext = (ctx: Context, data = {}): Context => { if (receiver === proxy && !target.hasOwnProperty(key)) { return Reflect.set(parentScope, key, val); } + return Reflect.set(target, key, val, receiver); }, }),