From d49b322db04152685eae3b5b80d7581e63d64d4d Mon Sep 17 00:00:00 2001 From: Ray Clanan <115944+rclanan@users.noreply.github.com> Date: Mon, 12 Oct 2026 17:10:37 -0400 Subject: [PATCH] fix(marketing): publish discoverable FAQ and support pages --- 404.html | 2 + compare-mockserver.html | 2 + comparisons.html | 2 + contact.html | 2 + engineering-notes.html | 2 + faq.html | 252 ++++++++++++++++++ index.html | 2 + note-announcing-v1.html | 2 + ...drift-detection-and-contract-alerting.html | 2 + note-client-generation-tradeoffs.html | 2 + note-cloud-launch.html | 2 + note-conformance-maturity.html | 2 + note-conformance-testing.html | 2 + note-cost-cap-design.html | 2 + note-fault-injection-patterns.html | 2 + note-grpc-dynamic-routing-release.html | 2 + note-grpc-mocking-in-ci.html | 2 + note-migration-from-static-fixtures.html | 2 + note-mocking-kafka-without-broker.html | 2 + ...rget-conformance-and-real-world-specs.html | 2 + note-our-saas-infrastructure.html | 2 + note-release-cadence-and-risk.html | 2 + note-reliability-update-march-2026.html | 2 + ...ability-updates-conformance-and-admin.html | 2 + note-scenario-switching.html | 2 + note-security-guardrails-v0-2x.html | 2 + note-spec-driven-openapi-conformance.html | 2 + note-testing-failure-paths.html | 2 + note-v0-1-3-protocol-expansion.html | 2 + note-v0-2-0-client-generation.html | 2 + note-v0-2-3-bug-fixes.html | 2 + note-v0-2-4-client-fixes.html | 2 + note-v0-2-5-enterprise-security.html | 2 + note-v0-2-6-security-infrastructure.html | 2 + note-v0-2-7-api-sync-tcp.html | 2 + note-v0-3-227-release.html | 2 + note-v0-3-migration-playbook.html | 2 + note-vs-postman-mock.html | 2 + note-wafbench-security-hardening.html | 2 + note-wafbench-sqli-detection.html | 2 + note-wasm-plugins.html | 2 + note-when-wiremock-isnt-enough.html | 2 + note-why-multi-protocol.html | 2 + pricing.html | 2 + privacy.html | 2 + public/sitemap.xml | 2 + public/styles.css | 2 +- scripts/build-pages.js | 2 + src/pages/faq.html | 46 ++++ src/pages/support.html | 42 +++ support.html | 248 +++++++++++++++++ trust.html | 2 + vs/beeceptor.html | 2 + vs/bruno.html | 2 + vs/microcks.html | 2 + vs/mockoon.html | 2 + vs/postman-mock.html | 2 + vs/wiremock.html | 2 + 58 files changed, 695 insertions(+), 1 deletion(-) create mode 100644 faq.html create mode 100644 src/pages/faq.html create mode 100644 src/pages/support.html create mode 100644 support.html diff --git a/404.html b/404.html index 052fe63..971e8e3 100644 --- a/404.html +++ b/404.html @@ -193,6 +193,8 @@

Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/compare-mockserver.html b/compare-mockserver.html index 71c00d9..77a81a2 100644 --- a/compare-mockserver.html +++ b/compare-mockserver.html @@ -318,6 +318,8 @@

Ne Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/comparisons.html b/comparisons.html index 5df1259..17c4f9a 100644 --- a/comparisons.html +++ b/comparisons.html @@ -154,6 +154,8 @@

Choose a mock workflow

Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/contact.html b/contact.html index cd9d567..d800359 100644 --- a/contact.html +++ b/contact.html @@ -236,6 +236,8 @@

Privacy and legal

Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/engineering-notes.html b/engineering-notes.html index bc3c782..b6c7779 100644 --- a/engineering-notes.html +++ b/engineering-notes.html @@ -538,6 +538,8 @@

Migration Guide: Moving f Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/faq.html b/faq.html new file mode 100644 index 0000000..f33848f --- /dev/null +++ b/faq.html @@ -0,0 +1,252 @@ + + + + + + Frequently asked questions — MockForge + + + + + + + + + + + +
+ + +
+
+
+

Frequently asked questions

+

Start here for local development and testing. For plan details, see pricing.

+
+
+
Is MockForge open source?
+
Yes. MockForge is available under MIT or Apache-2.0. See the source repository and licenses.
+
+
+
Do I need a Cloud account to run it?
+
You can run the CLI on your own machine without a Cloud account. Follow the installation guide to get started.
+
+
+
Which API protocols can I mock?
+
MockForge supports HTTP APIs, gRPC, GraphQL, WebSocket, and messaging protocols. Available commands depend on the features enabled in your build. Check the protocol documentation for setup and configuration.
+
+
+
Can I use it in CI?
+
Yes. Run MockForge alongside your tests and point your application at its local endpoints. Keep your specification and configuration in version control so the same setup can run locally and in CI.
+
+
+
Where can I get help?
+
The Support page explains how to report a bug, ask about a Cloud account, or contact the team privately.
+
+
+
+
+ + + + diff --git a/index.html b/index.html index e99880a..1b9861a 100644 --- a/index.html +++ b/index.html @@ -485,6 +485,8 @@

Re Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-announcing-v1.html b/note-announcing-v1.html index 85225cb..3ff5a35 100644 --- a/note-announcing-v1.html +++ b/note-announcing-v1.html @@ -189,6 +189,8 @@

Getting Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-api-drift-detection-and-contract-alerting.html b/note-api-drift-detection-and-contract-alerting.html index ddaa3bb..d8a7e92 100644 --- a/note-api-drift-detection-and-contract-alerting.html +++ b/note-api-drift-detection-and-contract-alerting.html @@ -171,6 +171,8 @@

Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-client-generation-tradeoffs.html b/note-client-generation-tradeoffs.html index 1cf6482..17827f9 100644 --- a/note-client-generation-tradeoffs.html +++ b/note-client-generation-tradeoffs.html @@ -175,6 +175,8 @@

Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-cloud-launch.html b/note-cloud-launch.html index 7b23f8e..36dfc89 100644 --- a/note-cloud-launch.html +++ b/note-cloud-launch.html @@ -198,6 +198,8 @@

What's n Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-conformance-maturity.html b/note-conformance-maturity.html index 86e7470..7b5b91c 100644 --- a/note-conformance-maturity.html +++ b/note-conformance-maturity.html @@ -211,6 +211,8 @@

Lessons Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-conformance-testing.html b/note-conformance-testing.html index 5aa8db6..7818141 100644 --- a/note-conformance-testing.html +++ b/note-conformance-testing.html @@ -182,6 +182,8 @@

Strategi Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-cost-cap-design.html b/note-cost-cap-design.html index f0eb2c9..803c8a9 100644 --- a/note-cost-cap-design.html +++ b/note-cost-cap-design.html @@ -215,6 +215,8 @@

What we' Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-fault-injection-patterns.html b/note-fault-injection-patterns.html index 9838b79..4d1b680 100644 --- a/note-fault-injection-patterns.html +++ b/note-fault-injection-patterns.html @@ -255,6 +255,8 @@

What thi Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-grpc-dynamic-routing-release.html b/note-grpc-dynamic-routing-release.html index dde60d0..1731dce 100644 --- a/note-grpc-dynamic-routing-release.html +++ b/note-grpc-dynamic-routing-release.html @@ -191,6 +191,8 @@

Schema-A Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-grpc-mocking-in-ci.html b/note-grpc-mocking-in-ci.html index 02a3afb..0dbe9dd 100644 --- a/note-grpc-mocking-in-ci.html +++ b/note-grpc-mocking-in-ci.html @@ -241,6 +241,8 @@

When to Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-migration-from-static-fixtures.html b/note-migration-from-static-fixtures.html index 6dfe4f0..1d4cb20 100644 --- a/note-migration-from-static-fixtures.html +++ b/note-migration-from-static-fixtures.html @@ -176,6 +176,8 @@

Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-mocking-kafka-without-broker.html b/note-mocking-kafka-without-broker.html index 03e6a4e..9990535 100644 --- a/note-mocking-kafka-without-broker.html +++ b/note-mocking-kafka-without-broker.html @@ -248,6 +248,8 @@

When thi Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-multi-target-conformance-and-real-world-specs.html b/note-multi-target-conformance-and-real-world-specs.html index 70016ef..c9f03a3 100644 --- a/note-multi-target-conformance-and-real-world-specs.html +++ b/note-multi-target-conformance-and-real-world-specs.html @@ -202,6 +202,8 @@

What We Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-our-saas-infrastructure.html b/note-our-saas-infrastructure.html index 621a4f7..a3e3870 100644 --- a/note-our-saas-infrastructure.html +++ b/note-our-saas-infrastructure.html @@ -208,6 +208,8 @@

Would we Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-release-cadence-and-risk.html b/note-release-cadence-and-risk.html index 331d86e..80c8150 100644 --- a/note-release-cadence-and-risk.html +++ b/note-release-cadence-and-risk.html @@ -171,6 +171,8 @@

Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-reliability-update-march-2026.html b/note-reliability-update-march-2026.html index 8431345..75db1a5 100644 --- a/note-reliability-update-march-2026.html +++ b/note-reliability-update-march-2026.html @@ -182,6 +182,8 @@

Why This Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-reliability-updates-conformance-and-admin.html b/note-reliability-updates-conformance-and-admin.html index d0002da..04dfe2d 100644 --- a/note-reliability-updates-conformance-and-admin.html +++ b/note-reliability-updates-conformance-and-admin.html @@ -184,6 +184,8 @@

Why this Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-scenario-switching.html b/note-scenario-switching.html index e2c20bc..c57d091 100644 --- a/note-scenario-switching.html +++ b/note-scenario-switching.html @@ -181,6 +181,8 @@

ResultDocs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-security-guardrails-v0-2x.html b/note-security-guardrails-v0-2x.html index 5251cc3..6e0fa93 100644 --- a/note-security-guardrails-v0-2x.html +++ b/note-security-guardrails-v0-2x.html @@ -182,6 +182,8 @@

Migratio Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-spec-driven-openapi-conformance.html b/note-spec-driven-openapi-conformance.html index e96b4f4..dcd94e2 100644 --- a/note-spec-driven-openapi-conformance.html +++ b/note-spec-driven-openapi-conformance.html @@ -183,6 +183,8 @@

Why this Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-testing-failure-paths.html b/note-testing-failure-paths.html index 373498e..e9d49c6 100644 --- a/note-testing-failure-paths.html +++ b/note-testing-failure-paths.html @@ -175,6 +175,8 @@

Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-v0-1-3-protocol-expansion.html b/note-v0-1-3-protocol-expansion.html index ae0d9cf..f860a45 100644 --- a/note-v0-1-3-protocol-expansion.html +++ b/note-v0-1-3-protocol-expansion.html @@ -188,6 +188,8 @@

Testing Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-v0-2-0-client-generation.html b/note-v0-2-0-client-generation.html index 700802e..bb5f4cc 100644 --- a/note-v0-2-0-client-generation.html +++ b/note-v0-2-0-client-generation.html @@ -185,6 +185,8 @@

CLI Enha Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-v0-2-3-bug-fixes.html b/note-v0-2-3-bug-fixes.html index c226b55..5c8b1fb 100644 --- a/note-v0-2-3-bug-fixes.html +++ b/note-v0-2-3-bug-fixes.html @@ -182,6 +182,8 @@

Test Cov Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-v0-2-4-client-fixes.html b/note-v0-2-4-client-fixes.html index da81708..94bf6c4 100644 --- a/note-v0-2-4-client-fixes.html +++ b/note-v0-2-4-client-fixes.html @@ -182,6 +182,8 @@

Test Cov Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-v0-2-5-enterprise-security.html b/note-v0-2-5-enterprise-security.html index cc16938..1ae9344 100644 --- a/note-v0-2-5-enterprise-security.html +++ b/note-v0-2-5-enterprise-security.html @@ -188,6 +188,8 @@

Addition Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-v0-2-6-security-infrastructure.html b/note-v0-2-6-security-infrastructure.html index 960fbfa..c22be52 100644 --- a/note-v0-2-6-security-infrastructure.html +++ b/note-v0-2-6-security-infrastructure.html @@ -182,6 +182,8 @@

Infrastr Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-v0-2-7-api-sync-tcp.html b/note-v0-2-7-api-sync-tcp.html index 17d6582..86c1fc9 100644 --- a/note-v0-2-7-api-sync-tcp.html +++ b/note-v0-2-7-api-sync-tcp.html @@ -185,6 +185,8 @@

Enhanced Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-v0-3-227-release.html b/note-v0-3-227-release.html index 51f6581..3b1c4ed 100644 --- a/note-v0-3-227-release.html +++ b/note-v0-3-227-release.html @@ -191,6 +191,8 @@

Security Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-v0-3-migration-playbook.html b/note-v0-3-migration-playbook.html index e87cfcd..355ec76 100644 --- a/note-v0-3-migration-playbook.html +++ b/note-v0-3-migration-playbook.html @@ -171,6 +171,8 @@

Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-vs-postman-mock.html b/note-vs-postman-mock.html index 92e7d2c..04d48f2 100644 --- a/note-vs-postman-mock.html +++ b/note-vs-postman-mock.html @@ -202,6 +202,8 @@

The hone Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-wafbench-security-hardening.html b/note-wafbench-security-hardening.html index e46d8f1..6f63edd 100644 --- a/note-wafbench-security-hardening.html +++ b/note-wafbench-security-hardening.html @@ -182,6 +182,8 @@

Practica Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-wafbench-sqli-detection.html b/note-wafbench-sqli-detection.html index 6da0c95..5b206f6 100644 --- a/note-wafbench-sqli-detection.html +++ b/note-wafbench-sqli-detection.html @@ -184,6 +184,8 @@

Why this Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-wasm-plugins.html b/note-wasm-plugins.html index 0ca1b5c..b2056a9 100644 --- a/note-wasm-plugins.html +++ b/note-wasm-plugins.html @@ -232,6 +232,8 @@

Growing Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-when-wiremock-isnt-enough.html b/note-when-wiremock-isnt-enough.html index 4f035cc..f262c94 100644 --- a/note-when-wiremock-isnt-enough.html +++ b/note-when-wiremock-isnt-enough.html @@ -202,6 +202,8 @@

How to k Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/note-why-multi-protocol.html b/note-why-multi-protocol.html index a6c1e55..1354ff6 100644 --- a/note-why-multi-protocol.html +++ b/note-why-multi-protocol.html @@ -197,6 +197,8 @@

What thi Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/pricing.html b/pricing.html index 284968a..1f943a6 100644 --- a/pricing.html +++ b/pricing.html @@ -392,6 +392,8 @@

Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/privacy.html b/privacy.html index f26d499..97e0c49 100644 --- a/privacy.html +++ b/privacy.html @@ -232,6 +232,8 @@

Questions

Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/public/sitemap.xml b/public/sitemap.xml index e167b01..d16b6eb 100644 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -4,6 +4,7 @@ https://mockforge.dev/compare-mockserver.html https://mockforge.dev/comparisons.html https://mockforge.dev/engineering-notes.html + https://mockforge.dev/faq.html https://mockforge.dev/note-announcing-v1.html https://mockforge.dev/note-api-drift-detection-and-contract-alerting.html https://mockforge.dev/note-client-generation-tradeoffs.html @@ -41,6 +42,7 @@ https://mockforge.dev/note-when-wiremock-isnt-enough.html https://mockforge.dev/note-why-multi-protocol.html https://mockforge.dev/pricing.html + https://mockforge.dev/support.html https://mockforge.dev/trust.html https://mockforge.dev/vs/beeceptor.html https://mockforge.dev/vs/bruno.html diff --git a/public/styles.css b/public/styles.css index 857600a..6ce7b2c 100644 --- a/public/styles.css +++ b/public/styles.css @@ -1 +1 @@ -*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Geist,Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-bottom-5{bottom:-1.25rem}.-right-24{right:-6rem}.-top-3{top:-.75rem}.-top-32{top:-8rem}.left-1\/2{left:50%}.left-5{left:1.25rem}.top-0{top:0}.z-40{z-index:40}.mx-auto{margin-left:auto;margin-right:auto}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-14{margin-top:3.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-16{height:4rem}.h-3{height:.75rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[28rem\]{height:28rem}.h-auto{height:auto}.h-full{height:100%}.min-h-\[200px\]{min-height:200px}.w-3{width:.75rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[28rem\]{width:28rem}.w-full{width:100%}.min-w-0{min-width:0}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-7xl{max-width:80rem}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-2{row-gap:.5rem}.gap-y-5{row-gap:1.25rem}.gap-y-7{row-gap:1.75rem}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.625rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-black\/5>:not([hidden])~:not([hidden]){border-color:rgba(0,0,0,.05)}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.scroll-smooth{scroll-behavior:smooth}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-y{border-top-width:1px}.border-b,.border-y{border-bottom-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-black{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity,1))}.border-black\/10{border-color:rgba(0,0,0,.1)}.border-black\/5{border-color:rgba(0,0,0,.05)}.border-brand-orange\/30{border-color:rgba(211,84,0,.3)}.border-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}.border-white\/15{border-color:hsla(0,0%,100%,.15)}.bg-amber-400\/80{background-color:rgba(251,191,36,.8)}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/5{background-color:rgba(0,0,0,.05)}.bg-brand-dark{--tw-bg-opacity:1;background-color:rgb(44 62 80/var(--tw-bg-opacity,1))}.bg-brand-orange{--tw-bg-opacity:1;background-color:rgb(211 84 0/var(--tw-bg-opacity,1))}.bg-brand-orange\/10{background-color:rgba(211,84,0,.1)}.bg-emerald-400\/80{background-color:rgba(52,211,153,.8)}.bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.bg-red-400\/80{background-color:hsla(0,91%,71%,.8)}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.bg-slate-950{--tw-bg-opacity:1;background-color:rgb(2 6 23/var(--tw-bg-opacity,1))}.bg-stone-100{--tw-bg-opacity:1;background-color:rgb(245 245 244/var(--tw-bg-opacity,1))}.bg-surface-subtle{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/10{background-color:hsla(0,0%,100%,.1)}.bg-white\/90{background-color:hsla(0,0%,100%,.9)}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-brand-dark{--tw-gradient-from:#2c3e50 var(--tw-gradient-from-position);--tw-gradient-to:rgba(44,62,80,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-slate-950{--tw-gradient-from:#020617 var(--tw-gradient-from-position);--tw-gradient-to:rgba(2,6,23,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-slate-900{--tw-gradient-to:rgba(15,23,42,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#0f172a var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-slate-800{--tw-gradient-to:#1e293b var(--tw-gradient-to-position)}.object-cover{-o-object-fit:cover;object-fit:cover}.object-left-top{-o-object-position:left top;object-position:left top}.p-0{padding:0}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:1.75rem}.p-8{padding:2rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-20{padding-bottom:5rem}.pl-6{padding-left:1.5rem}.pr-4{padding-right:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.font-sans{font-family:Geist,Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-\[1\.05\]{line-height:1.05}.leading-\[1\.1\]{line-height:1.1}.leading-relaxed{line-height:1.625}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-\[0\.24em\]{letter-spacing:.24em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-brand-dark,.text-brand-ink{--tw-text-opacity:1;color:rgb(44 62 80/var(--tw-text-opacity,1))}.text-brand-orange{--tw-text-opacity:1;color:rgb(211 84 0/var(--tw-text-opacity,1))}.text-emerald-400{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.text-emerald-500{--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity,1))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-orange-200{--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.text-slate-100{--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}.text-slate-200{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.text-text-primary{--tw-text-opacity:1;color:rgb(46 46 46/var(--tw-text-opacity,1))}.text-text-secondary{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.shadow-note{--tw-shadow:0 14px 40px rgba(15,23,42,.08);--tw-shadow-colored:0 14px 40px var(--tw-shadow-color)}.shadow-note,.shadow-soft{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-soft{--tw-shadow:0 2px 10px rgba(0,0,0,.06);--tw-shadow-colored:0 2px 10px var(--tw-shadow-color)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-1,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-black{--tw-ring-opacity:1;--tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity,1))}.ring-black\/10{--tw-ring-color:rgba(0,0,0,.1)}.ring-black\/5{--tw-ring-color:rgba(0,0,0,.05)}.ring-brand-orange{--tw-ring-opacity:1;--tw-ring-color:rgb(211 84 0/var(--tw-ring-opacity,1))}.blur-3xl{--tw-blur:blur(64px)}.blur-3xl,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.selection\:bg-brand-orange\/20 ::-moz-selection{background-color:rgba(211,84,0,.2)}.selection\:bg-brand-orange\/20 ::selection{background-color:rgba(211,84,0,.2)}.selection\:bg-brand-orange\/20::-moz-selection{background-color:rgba(211,84,0,.2)}.selection\:bg-brand-orange\/20::selection{background-color:rgba(211,84,0,.2)}.hover\:-translate-y-0\.5:hover{--tw-translate-y:-0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:gap-3:hover{gap:.75rem}.hover\:bg-black\/5:hover{background-color:rgba(0,0,0,.05)}.hover\:bg-white\/10:hover{background-color:hsla(0,0%,100%,.1)}.hover\:px-2:hover{padding-left:.5rem;padding-right:.5rem}.hover\:text-text-primary:hover{--tw-text-opacity:1;color:rgb(46 46 46/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-note:hover{--tw-shadow:0 14px 40px rgba(15,23,42,.08);--tw-shadow-colored:0 14px 40px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-brand-orange:focus-visible{outline-color:#d35400}.active\:scale-\[\.98\]:active{--tw-scale-x:.98;--tw-scale-y:.98;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:text-brand-orange{--tw-text-opacity:1;color:rgb(211 84 0/var(--tw-text-opacity,1))}.dark\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}.dark\:border-white\/10:is(.dark *){border-color:hsla(0,0%,100%,.1)}.dark\:border-white\/20:is(.dark *){border-color:hsla(0,0%,100%,.2)}.dark\:bg-brand-dark:is(.dark *){--tw-bg-opacity:1;background-color:rgb(44 62 80/var(--tw-bg-opacity,1))}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.dark\:bg-orange-500\/10:is(.dark *){background-color:rgba(249,115,22,.1)}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\:bg-slate-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:hover\:bg-white\/10:hover:is(.dark *){background-color:hsla(0,0%,100%,.1)}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:flex{display:flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:p-10{padding:2.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-20{padding-top:5rem;padding-bottom:5rem}.sm\:py-28{padding-top:7rem;padding-bottom:7rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}}@media (min-width:768px){.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}}@media (min-width:1024px){.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-\[0\.6fr_1\.4fr\]{grid-template-columns:.6fr 1.4fr}.lg\:grid-cols-\[0\.8fr_1\.2fr\]{grid-template-columns:.8fr 1.2fr}.lg\:grid-cols-\[1\.05fr_0\.95fr\]{grid-template-columns:1.05fr .95fr}.lg\:gap-12{gap:3rem}.lg\:gap-16{gap:4rem}.lg\:gap-4{gap:1rem}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-16{padding-top:4rem;padding-bottom:4rem}.lg\:py-2{padding-top:.5rem;padding-bottom:.5rem}.lg\:py-20{padding-top:5rem;padding-bottom:5rem}.lg\:py-24{padding-top:6rem;padding-bottom:6rem}.lg\:text-\[3\.25rem\]{font-size:3.25rem}.lg\:text-base{font-size:1rem;line-height:1.5rem}} \ No newline at end of file +*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Geist,Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-bottom-5{bottom:-1.25rem}.-right-24{right:-6rem}.-top-3{top:-.75rem}.-top-32{top:-8rem}.left-1\/2{left:50%}.left-5{left:1.25rem}.top-0{top:0}.z-40{z-index:40}.mx-auto{margin-left:auto;margin-right:auto}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-14{margin-top:3.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-16{height:4rem}.h-3{height:.75rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[28rem\]{height:28rem}.h-auto{height:auto}.h-full{height:100%}.min-h-\[200px\]{min-height:200px}.w-3{width:.75rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[28rem\]{width:28rem}.w-full{width:100%}.min-w-0{min-width:0}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-7xl{max-width:80rem}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-2{row-gap:.5rem}.gap-y-5{row-gap:1.25rem}.gap-y-7{row-gap:1.75rem}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.625rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-black\/5>:not([hidden])~:not([hidden]){border-color:rgba(0,0,0,.05)}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.scroll-smooth{scroll-behavior:smooth}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-y{border-top-width:1px}.border-b,.border-y{border-bottom-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-black{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity,1))}.border-black\/10{border-color:rgba(0,0,0,.1)}.border-black\/5{border-color:rgba(0,0,0,.05)}.border-brand-orange\/30{border-color:rgba(211,84,0,.3)}.border-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}.border-white\/15{border-color:hsla(0,0%,100%,.15)}.bg-amber-400\/80{background-color:rgba(251,191,36,.8)}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/5{background-color:rgba(0,0,0,.05)}.bg-brand-dark{--tw-bg-opacity:1;background-color:rgb(44 62 80/var(--tw-bg-opacity,1))}.bg-brand-orange{--tw-bg-opacity:1;background-color:rgb(211 84 0/var(--tw-bg-opacity,1))}.bg-brand-orange\/10{background-color:rgba(211,84,0,.1)}.bg-emerald-400\/80{background-color:rgba(52,211,153,.8)}.bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.bg-red-400\/80{background-color:hsla(0,91%,71%,.8)}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.bg-slate-950{--tw-bg-opacity:1;background-color:rgb(2 6 23/var(--tw-bg-opacity,1))}.bg-stone-100{--tw-bg-opacity:1;background-color:rgb(245 245 244/var(--tw-bg-opacity,1))}.bg-surface-subtle{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/10{background-color:hsla(0,0%,100%,.1)}.bg-white\/90{background-color:hsla(0,0%,100%,.9)}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-brand-dark{--tw-gradient-from:#2c3e50 var(--tw-gradient-from-position);--tw-gradient-to:rgba(44,62,80,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-slate-950{--tw-gradient-from:#020617 var(--tw-gradient-from-position);--tw-gradient-to:rgba(2,6,23,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-slate-900{--tw-gradient-to:rgba(15,23,42,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#0f172a var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-slate-800{--tw-gradient-to:#1e293b var(--tw-gradient-to-position)}.object-cover{-o-object-fit:cover;object-fit:cover}.object-left-top{-o-object-position:left top;object-position:left top}.p-0{padding:0}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:1.75rem}.p-8{padding:2rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-20{padding-bottom:5rem}.pl-6{padding-left:1.5rem}.pr-4{padding-right:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.font-sans{font-family:Geist,Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-\[1\.05\]{line-height:1.05}.leading-\[1\.1\]{line-height:1.1}.leading-relaxed{line-height:1.625}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-\[0\.24em\]{letter-spacing:.24em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-brand-dark,.text-brand-ink{--tw-text-opacity:1;color:rgb(44 62 80/var(--tw-text-opacity,1))}.text-brand-orange{--tw-text-opacity:1;color:rgb(211 84 0/var(--tw-text-opacity,1))}.text-emerald-400{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.text-emerald-500{--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity,1))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-orange-200{--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.text-slate-100{--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}.text-slate-200{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.text-text-primary{--tw-text-opacity:1;color:rgb(46 46 46/var(--tw-text-opacity,1))}.text-text-secondary{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.shadow-note{--tw-shadow:0 14px 40px rgba(15,23,42,.08);--tw-shadow-colored:0 14px 40px var(--tw-shadow-color)}.shadow-note,.shadow-soft{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-soft{--tw-shadow:0 2px 10px rgba(0,0,0,.06);--tw-shadow-colored:0 2px 10px var(--tw-shadow-color)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-1,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-black{--tw-ring-opacity:1;--tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity,1))}.ring-black\/10{--tw-ring-color:rgba(0,0,0,.1)}.ring-black\/5{--tw-ring-color:rgba(0,0,0,.05)}.ring-brand-orange{--tw-ring-opacity:1;--tw-ring-color:rgb(211 84 0/var(--tw-ring-opacity,1))}.blur-3xl{--tw-blur:blur(64px)}.blur-3xl,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.selection\:bg-brand-orange\/20 ::-moz-selection{background-color:rgba(211,84,0,.2)}.selection\:bg-brand-orange\/20 ::selection{background-color:rgba(211,84,0,.2)}.selection\:bg-brand-orange\/20::-moz-selection{background-color:rgba(211,84,0,.2)}.selection\:bg-brand-orange\/20::selection{background-color:rgba(211,84,0,.2)}.hover\:-translate-y-0\.5:hover{--tw-translate-y:-0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:gap-3:hover{gap:.75rem}.hover\:bg-black\/5:hover{background-color:rgba(0,0,0,.05)}.hover\:bg-white\/10:hover{background-color:hsla(0,0%,100%,.1)}.hover\:px-2:hover{padding-left:.5rem;padding-right:.5rem}.hover\:text-text-primary:hover{--tw-text-opacity:1;color:rgb(46 46 46/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-note:hover{--tw-shadow:0 14px 40px rgba(15,23,42,.08);--tw-shadow-colored:0 14px 40px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-brand-orange:focus-visible{outline-color:#d35400}.active\:scale-\[\.98\]:active{--tw-scale-x:.98;--tw-scale-y:.98;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:text-brand-orange{--tw-text-opacity:1;color:rgb(211 84 0/var(--tw-text-opacity,1))}.dark\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}.dark\:border-white\/10:is(.dark *){border-color:hsla(0,0%,100%,.1)}.dark\:border-white\/20:is(.dark *){border-color:hsla(0,0%,100%,.2)}.dark\:bg-brand-dark:is(.dark *){--tw-bg-opacity:1;background-color:rgb(44 62 80/var(--tw-bg-opacity,1))}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.dark\:bg-orange-500\/10:is(.dark *){background-color:rgba(249,115,22,.1)}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\:bg-slate-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:hover\:bg-white\/10:hover:is(.dark *){background-color:hsla(0,0%,100%,.1)}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:flex{display:flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:p-10{padding:2.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-20{padding-top:5rem;padding-bottom:5rem}.sm\:py-28{padding-top:7rem;padding-bottom:7rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}}@media (min-width:768px){.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}}@media (min-width:1024px){.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-\[0\.6fr_1\.4fr\]{grid-template-columns:.6fr 1.4fr}.lg\:grid-cols-\[0\.8fr_1\.2fr\]{grid-template-columns:.8fr 1.2fr}.lg\:grid-cols-\[1\.05fr_0\.95fr\]{grid-template-columns:1.05fr .95fr}.lg\:gap-12{gap:3rem}.lg\:gap-16{gap:4rem}.lg\:gap-4{gap:1rem}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-16{padding-top:4rem;padding-bottom:4rem}.lg\:py-2{padding-top:.5rem;padding-bottom:.5rem}.lg\:py-20{padding-top:5rem;padding-bottom:5rem}.lg\:py-24{padding-top:6rem;padding-bottom:6rem}.lg\:text-\[3\.25rem\]{font-size:3.25rem}.lg\:text-base{font-size:1rem;line-height:1.5rem}} \ No newline at end of file diff --git a/scripts/build-pages.js b/scripts/build-pages.js index ee8b6f4..192b2e3 100644 --- a/scripts/build-pages.js +++ b/scripts/build-pages.js @@ -182,6 +182,8 @@ function renderFooter() { Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/src/pages/faq.html b/src/pages/faq.html new file mode 100644 index 0000000..0c26e2d --- /dev/null +++ b/src/pages/faq.html @@ -0,0 +1,46 @@ + + + + + + Frequently asked questions — MockForge + + + + + {{SHARED_HEAD_BLOCK}} + + + {{HEADER}} +
+
+

Frequently asked questions

+

Start here for local development and testing. For plan details, see pricing.

+
+
+
Is MockForge open source?
+
Yes. MockForge is available under MIT or Apache-2.0. See the source repository and licenses.
+
+
+
Do I need a Cloud account to run it?
+
You can run the CLI on your own machine without a Cloud account. Follow the installation guide to get started.
+
+
+
Which API protocols can I mock?
+
MockForge supports HTTP APIs, gRPC, GraphQL, WebSocket, and messaging protocols. Available commands depend on the features enabled in your build. Check the protocol documentation for setup and configuration.
+
+
+
Can I use it in CI?
+
Yes. Run MockForge alongside your tests and point your application at its local endpoints. Keep your specification and configuration in version control so the same setup can run locally and in CI.
+
+
+
Where can I get help?
+
The Support page explains how to report a bug, ask about a Cloud account, or contact the team privately.
+
+
+
+
+ {{FOOTER}} + {{SHELL_SCRIPT}} + + diff --git a/src/pages/support.html b/src/pages/support.html new file mode 100644 index 0000000..adfc11d --- /dev/null +++ b/src/pages/support.html @@ -0,0 +1,42 @@ + + + + + + Support — MockForge + + + + + {{SHARED_HEAD_BLOCK}} + + + {{HEADER}} +
+
+

Get help with MockForge

+

Choose the channel that fits your question. The FAQ and documentation cover installation and configuration.

+
+
+

Usage questions, bugs, and feature requests

+

Use the public GitHub issue tracker. For a bug, include your MockForge version, protocol, expected behavior, and a small specification or configuration that reproduces it. Remove credentials and personal data before posting.

+
+
+

Cloud accounts and billing

+

Email support@mockforge.dev for account, billing, or hosted mock questions. Include the affected workspace and what you were trying to do.

+
+
+

Security reports

+

Report suspected vulnerabilities privately to security@mockforge.dev. See the Trust page for security information.

+
+
+

Other inquiries

+

For enterprise, privacy, and legal contacts, visit Contact.

+
+
+
+
+ {{FOOTER}} + {{SHELL_SCRIPT}} + + diff --git a/support.html b/support.html new file mode 100644 index 0000000..1c5fcfb --- /dev/null +++ b/support.html @@ -0,0 +1,248 @@ + + + + + + Support — MockForge + + + + + + + + + + + +
+
+ +
+ +
+
+
+

Get help with MockForge

+

Choose the channel that fits your question. The FAQ and documentation cover installation and configuration.

+
+
+

Usage questions, bugs, and feature requests

+

Use the public GitHub issue tracker. For a bug, include your MockForge version, protocol, expected behavior, and a small specification or configuration that reproduces it. Remove credentials and personal data before posting.

+
+
+

Cloud accounts and billing

+

Email support@mockforge.dev for account, billing, or hosted mock questions. Include the affected workspace and what you were trying to do.

+
+
+

Security reports

+

Report suspected vulnerabilities privately to security@mockforge.dev. See the Trust page for security information.

+
+
+

Other inquiries

+

For enterprise, privacy, and legal contacts, visit Contact.

+
+
+
+
+ + + + diff --git a/trust.html b/trust.html index 1d84a1b..dc78a60 100644 --- a/trust.html +++ b/trust.html @@ -387,6 +387,8 @@

Start with the free, local tier

Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/vs/beeceptor.html b/vs/beeceptor.html index 3b698f9..9d04dae 100644 --- a/vs/beeceptor.html +++ b/vs/beeceptor.html @@ -167,6 +167,8 @@

Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/vs/bruno.html b/vs/bruno.html index 12a8d3a..a927e6a 100644 --- a/vs/bruno.html +++ b/vs/bruno.html @@ -167,6 +167,8 @@

Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/vs/microcks.html b/vs/microcks.html index 486e514..1bce0c9 100644 --- a/vs/microcks.html +++ b/vs/microcks.html @@ -167,6 +167,8 @@

Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/vs/mockoon.html b/vs/mockoon.html index 27a2956..7529087 100644 --- a/vs/mockoon.html +++ b/vs/mockoon.html @@ -167,6 +167,8 @@

Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/vs/postman-mock.html b/vs/postman-mock.html index d9a4098..769cf0e 100644 --- a/vs/postman-mock.html +++ b/vs/postman-mock.html @@ -167,6 +167,8 @@

Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub diff --git a/vs/wiremock.html b/vs/wiremock.html index 830a555..763c339 100644 --- a/vs/wiremock.html +++ b/vs/wiremock.html @@ -167,6 +167,8 @@

Docs Notes Pricing + FAQ + Support Compare tools Compare: MockServer GitHub