{"id":11,"date":"2026-04-19T10:02:05","date_gmt":"2026-04-19T10:02:05","guid":{"rendered":"https:\/\/solidwiki.com\/?page_id=11"},"modified":"2026-05-08T15:56:27","modified_gmt":"2026-05-08T15:56:27","slug":"professional-mediawiki-development-enterprise-wiki-solutions","status":"publish","type":"page","link":"https:\/\/solidwiki.com\/","title":{"rendered":"Professional MediaWiki Development &#038; Enterprise Wiki Solutions"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"11\" class=\"elementor elementor-11\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a33c177 e-con-full e-flex e-con e-parent\" data-id=\"a33c177\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9eb3b12 elementor-widget elementor-widget-html\" data-id=\"9eb3b12\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, viewport-fit=cover\">\r\n\r\n<!-- \u2550\u2550 PRIMARY SEO \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<title>MediaWiki Development Services | Corporate Wiki Solutions \u2013 SolidWiki<\/title>\r\n<meta name=\"description\" content=\"SolidWiki builds, customizes and maintains MediaWiki platforms for growing teams. Fixed-price proposals. Zero data loss migrations. Free consultation \u2014 no commitment.\">\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\">\r\n<meta name=\"author\" content=\"SolidWiki\">\r\n<meta name=\"keywords\" content=\"MediaWiki development, corporate wiki, wiki migration, Confluence alternative, MediaWiki setup, MediaWiki customization, MediaWiki support, wiki solutions for teams\">\r\n<link rel=\"canonical\" href=\"https:\/\/solidwiki.com\/\">\r\n\r\n<!-- \u2550\u2550 OPEN GRAPH \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<meta property=\"og:type\" content=\"website\">\r\n<meta property=\"og:site_name\" content=\"SolidWiki\">\r\n<meta property=\"og:title\" content=\"MediaWiki Development Services | Corporate Wiki Solutions \u2013 SolidWiki\">\r\n<meta property=\"og:description\" content=\"We build, customize and maintain MediaWiki platforms for growing teams. Fixed-price proposals. Zero data loss. Free consultation.\">\r\n<meta property=\"og:url\" content=\"https:\/\/solidwiki.com\/\">\r\n<meta property=\"og:image\" content=\"https:\/\/solidwiki.com\/og-image.jpg\">\r\n<meta property=\"og:image:width\" content=\"1200\">\r\n<meta property=\"og:image:height\" content=\"630\">\r\n<meta property=\"og:image:alt\" content=\"SolidWiki \u2013 Professional MediaWiki Development\">\r\n<meta property=\"og:locale\" content=\"en_US\">\r\n\r\n<!-- \u2550\u2550 TWITTER \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<meta name=\"twitter:card\" content=\"summary_large_image\">\r\n<meta name=\"twitter:site\" content=\"@solidwiki\">\r\n<meta name=\"twitter:title\" content=\"MediaWiki Development Services \u2013 SolidWiki\">\r\n<meta name=\"twitter:description\" content=\"We build, customize and maintain MediaWiki platforms for growing teams. Fixed-price proposals. Zero data loss.\">\r\n<meta name=\"twitter:image\" content=\"https:\/\/solidwiki.com\/og-image.jpg\">\r\n<meta name=\"twitter:image:alt\" content=\"SolidWiki \u2013 Professional MediaWiki Development\">\r\n\r\n<!-- \u2550\u2550 HREFLANG \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<link rel=\"alternate\" hreflang=\"en\" href=\"https:\/\/solidwiki.com\/\">\r\n<link rel=\"alternate\" hreflang=\"x-default\" href=\"https:\/\/solidwiki.com\/\">\r\n\r\n<!-- \u2550\u2550 FAVICONS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<link rel=\"icon\" type=\"image\/png\" sizes=\"32x32\" href=\"\/favicon-32x32.png\">\r\n<link rel=\"icon\" type=\"image\/png\" sizes=\"16x16\" href=\"\/favicon-16x16.png\">\r\n<link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"\/apple-touch-icon.png\">\r\n<link rel=\"manifest\" href=\"\/site.webmanifest\">\r\n<meta name=\"theme-color\" content=\"#03070f\">\r\n<meta name=\"mobile-web-app-capable\" content=\"yes\">\r\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\r\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\">\r\n\r\n<!-- \u2550\u2550 PERFORMANCE \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link rel=\"preload\" as=\"style\" href=\"https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;0,9..40,800;1,9..40,400&family=DM+Serif+Display:ital@0;1&display=swap\" onload=\"this.onload=null;this.rel='stylesheet'\">\r\n<noscript><link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;0,9..40,800;1,9..40,400&family=DM+Serif+Display:ital@0;1&display=swap\"><\/noscript>\r\n\r\n<!-- \u2550\u2550 JSON-LD STRUCTURED DATA \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<script type=\"application\/ld+json\">\r\n{\r\n  \"@context\": \"https:\/\/schema.org\",\r\n  \"@graph\": [\r\n    {\r\n      \"@type\": \"Organization\",\r\n      \"@id\": \"https:\/\/solidwiki.com\/#organization\",\r\n      \"name\": \"SolidWiki\",\r\n      \"url\": \"https:\/\/solidwiki.com\/\",\r\n      \"logo\": {\r\n        \"@type\": \"ImageObject\",\r\n        \"url\": \"https:\/\/solidwiki.com\/logo.png\",\r\n        \"width\": 180,\r\n        \"height\": 60\r\n      },\r\n      \"description\": \"SolidWiki builds, customizes and maintains MediaWiki platforms for growing teams. Fixed-price proposals, zero data loss migrations, and ongoing technical support.\",\r\n      \"email\": \"hello@solidwiki.com\",\r\n      \"sameAs\": []\r\n    },\r\n    {\r\n      \"@type\": \"WebSite\",\r\n      \"@id\": \"https:\/\/solidwiki.com\/#website\",\r\n      \"url\": \"https:\/\/solidwiki.com\/\",\r\n      \"name\": \"SolidWiki\",\r\n      \"publisher\": {\"@id\": \"https:\/\/solidwiki.com\/#organization\"},\r\n      \"potentialAction\": {\r\n        \"@type\": \"SearchAction\",\r\n        \"target\": {\"@type\": \"EntryPoint\",\"urlTemplate\": \"https:\/\/solidwiki.com\/?s={search_term_string}\"},\r\n        \"query-input\": \"required name=search_term_string\"\r\n      }\r\n    },\r\n    {\r\n      \"@type\": \"WebPage\",\r\n      \"@id\": \"https:\/\/solidwiki.com\/#webpage\",\r\n      \"url\": \"https:\/\/solidwiki.com\/\",\r\n      \"name\": \"MediaWiki Development Services | Corporate Wiki Solutions \u2013 SolidWiki\",\r\n      \"description\": \"SolidWiki builds, customizes and maintains MediaWiki platforms for growing teams. Fixed-price proposals, zero data loss.\",\r\n      \"isPartOf\": {\"@id\": \"https:\/\/solidwiki.com\/#website\"},\r\n      \"about\": {\"@id\": \"https:\/\/solidwiki.com\/#organization\"},\r\n      \"breadcrumb\": {\r\n        \"@type\": \"BreadcrumbList\",\r\n        \"itemListElement\": [{\"@type\": \"ListItem\",\"position\": 1,\"name\": \"Home\",\"item\": \"https:\/\/solidwiki.com\/\"}]\r\n      }\r\n    },\r\n    {\r\n      \"@type\": \"ProfessionalService\",\r\n      \"@id\": \"https:\/\/solidwiki.com\/#service\",\r\n      \"name\": \"SolidWiki MediaWiki Development\",\r\n      \"url\": \"https:\/\/solidwiki.com\/\",\r\n      \"description\": \"Custom MediaWiki setup, branding, migration from Confluence\/Notion, and ongoing support for teams worldwide.\",\r\n      \"provider\": {\"@id\": \"https:\/\/solidwiki.com\/#organization\"},\r\n      \"areaServed\": {\"@type\": \"GeoShape\",\"name\": \"Worldwide\"},\r\n      \"hasOfferCatalog\": {\r\n        \"@type\": \"OfferCatalog\",\r\n        \"name\": \"MediaWiki Services\",\r\n        \"itemListElement\": [\r\n          {\"@type\": \"Offer\",\"itemOffered\": {\"@type\": \"Service\",\"name\": \"MediaWiki Setup & Server Configuration\",\"description\": \"Full end-to-end MediaWiki installation with SSL, firewall, Redis caching, and admin documentation.\"},\"priceRange\": \"$3000-$6000\"},\r\n          {\"@type\": \"Offer\",\"itemOffered\": {\"@type\": \"Service\",\"name\": \"Wiki Design & Branding\",\"description\": \"Custom skins, SSO, Slack integrations, extensions, and mobile-responsive design.\"},\"priceRange\": \"$2000-$5000\"},\r\n          {\"@type\": \"Offer\",\"itemOffered\": {\"@type\": \"Service\",\"name\": \"Wiki Migration\",\"description\": \"Zero data loss migration from Confluence, Notion, WordPress, Google Docs, and SharePoint.\"},\"priceRange\": \"$4000-$12000\"},\r\n          {\"@type\": \"Offer\",\"itemOffered\": {\"@type\": \"Service\",\"name\": \"Ongoing Support & Maintenance\",\"description\": \"Daily backups, MediaWiki updates, 24\/7 monitoring with 99.95% SLA.\"},\"priceRange\": \"From $500\/month\"}\r\n        ]\r\n      }\r\n    },\r\n    {\r\n      \"@type\": \"FAQPage\",\r\n      \"mainEntity\": [\r\n        {\"@type\": \"Question\",\"name\": \"How long does a wiki project take?\",\"acceptedAnswer\": {\"@type\": \"Answer\",\"text\": \"Most projects are live within 2\u20134 weeks from the start date. Complex migrations or large custom builds can take 4\u20138 weeks. We provide a clear, fixed timeline in the proposal before anything begins.\"}},\r\n        {\"@type\": \"Question\",\"name\": \"Do I need technical knowledge to use MediaWiki?\",\"acceptedAnswer\": {\"@type\": \"Answer\",\"text\": \"No. We include full team training in every project. Your team can create, edit, and manage content without any technical background.\"}},\r\n        {\"@type\": \"Question\",\"name\": \"Can you migrate our existing content from Confluence or Notion?\",\"acceptedAnswer\": {\"@type\": \"Answer\",\"text\": \"Yes. We migrate from Confluence, Notion, WordPress, Google Docs, SharePoint, and most other platforms. Zero data loss is our standard on every migration.\"}},\r\n        {\"@type\": \"Question\",\"name\": \"What ongoing support do you offer after launch?\",\"acceptedAnswer\": {\"@type\": \"Answer\",\"text\": \"Monthly support plans from $500\/mo cover daily backups, MediaWiki core and extension updates, security patches, 24\/7 uptime monitoring with 99.95% SLA, and priority same-day response.\"}},\r\n        {\"@type\": \"Question\",\"name\": \"Who owns the wiki after it's built?\",\"acceptedAnswer\": {\"@type\": \"Answer\",\"text\": \"You do \u2014 completely. Every file, database, and configuration belongs to you from day one. MediaWiki is open source, hosted on your own infrastructure. No lock-in.\"}},\r\n        {\"@type\": \"Question\",\"name\": \"What is the difference between MediaWiki and Notion or Confluence?\",\"acceptedAnswer\": {\"@type\": \"Answer\",\"text\": \"MediaWiki is open-source, self-hosted, and fully owned by you. No per-user subscription fees, no vendor lock-in, no price increases. It scales from 10 articles to 10 million \u2014 the same engine that powers Wikipedia.\"}}\r\n      ]\r\n    }\r\n  ]\r\n}\r\n<\/script>\r\n\r\n<style>\r\n\/* \u2550\u2550\u2550 RESET & BASE \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}\r\n:root{\r\n  \/* Brand *\/\r\n  --blue:#2563eb;--blue2:#1d4ed8;--blue3:#3b82f6;--blue4:#60a5fa;--blue5:#93c5fd;\r\n  --purple:#7c3aed;--purple2:#6d28d9;--cyan:#06b6d4;--cyan2:#22d3ee;\r\n  --green:#10b981;--green2:#22c55e;--gold:#f59e0b;--red:#ef4444;--orange:#f97316;\r\n  \/* Backgrounds *\/\r\n  --bg:#03070f;--bg2:#060c1a;--bg3:#0a1628;--bg4:#0f1f38;--bg5:#07101f;\r\n  \/* Surfaces *\/\r\n  --surf:rgba(10,22,40,.8);--surf2:rgba(15,31,58,.65);--surf3:rgba(20,40,72,.5);\r\n  \/* Text *\/\r\n  --tx:#f0f4ff;--tx2:#cbd5e1;--tx3:#94a3b8;--tx4:#64748b;\r\n  \/* Borders *\/\r\n  --bd:rgba(255,255,255,.07);--bd2:rgba(255,255,255,.12);--bd3:rgba(255,255,255,.18);\r\n  \/* Fonts *\/\r\n  --sans:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;\r\n  --serif:'DM Serif Display',Georgia,serif;\r\n  \/* Radius *\/\r\n  --r:10px;--r2:16px;--r3:22px;--r4:32px;\r\n  \/* Shadows *\/\r\n  --sh:0 24px 72px rgba(0,0,0,.55);--sh2:0 8px 24px rgba(0,0,0,.35);\r\n  \/* Layout *\/\r\n  --mw:1200px;--px:6%;--py:88px;\r\n  \/* Transitions *\/\r\n  --ease:cubic-bezier(.16,1,.3,1);\r\n}\r\n\r\n\/* LIGHT MODE *\/\r\nbody.light{\r\n  --bg:#eef2ff;--bg2:#e4eaff;--bg3:#dce5ff;--bg4:#c7d4ff;--bg5:#f0f4ff;\r\n  --surf:rgba(255,255,255,.9);--surf2:rgba(240,245,255,.85);--surf3:rgba(228,234,255,.7);\r\n  --tx:#0f172a;--tx2:#1e293b;--tx3:#475569;--tx4:#94a3b8;\r\n  --bd:rgba(0,0,0,.07);--bd2:rgba(0,0,0,.11);--bd3:rgba(0,0,0,.16);\r\n}\r\n\r\nhtml{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%}\r\nbody{font-family:var(--sans);background:var(--bg);color:var(--tx);overflow-x:hidden;line-height:1.65;-webkit-font-smoothing:antialiased}\r\nimg{max-width:100%;height:auto;display:block}\r\na{color:inherit;text-decoration:none}\r\nbutton{font-family:var(--sans);cursor:pointer;border:none;background:none}\r\ninput,textarea,select{font-family:var(--sans)}\r\nul,ol{list-style:none}\r\n\r\n.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\r\n.container{width:100%;max-width:var(--mw);margin:0 auto;padding:0 var(--px)}\r\n\r\n\/* Gradient text utilities *\/\r\n.gt-blue{background:linear-gradient(135deg,var(--blue4) 0%,var(--cyan2) 55%,#a78bfa 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}\r\n.gt-purple{background:linear-gradient(135deg,#a78bfa,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}\r\n.gt-red{background:linear-gradient(135deg,#f87171,var(--orange));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}\r\n.gt-green{background:linear-gradient(135deg,var(--green2),var(--cyan2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}\r\n\r\n\/* \u2550\u2550\u2550 SKIP LINK \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n.skip-link{position:absolute;top:-60px;left:0;background:var(--blue);color:#fff;padding:10px 18px;font-weight:700;border-radius:0 0 var(--r) 0;z-index:9999;transition:top .2s;font-size:14px}\r\n.skip-link:focus{top:0}\r\n\r\n\/* \u2550\u2550\u2550 STAR CANVAS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n#star-bg{position:fixed;inset:0;pointer-events:none;z-index:0;opacity:1;transition:opacity .4s}\r\nbody.light #star-bg{opacity:.25}\r\n\r\n\/* \u2550\u2550\u2550 NOISE TEXTURE \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n.noise{position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.025;background-image:url(\"data:image\/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'\/%3E%3C\/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'\/%3E%3C\/svg%3E\");background-repeat:repeat;background-size:200px 200px}\r\nbody.light .noise{opacity:.04}\r\n\r\n\/* \u2550\u2550\u2550 BADGE \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n.badge{display:inline-flex;align-items:center;gap:6px;border-radius:50px;padding:5px 15px;font-size:11.5px;font-weight:600;letter-spacing:.8px;text-transform:uppercase}\r\n.badge-blue{background:rgba(37,99,235,.12);border:1px solid rgba(37,99,235,.22);color:#93c5fd}\r\n.badge-red{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.2);color:#fca5a5}\r\n.badge-green{background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.22);color:#6ee7b7}\r\nbody.light .badge-blue{color:var(--blue2)}\r\nbody.light .badge-red{color:#b91c1c}\r\nbody.light .badge-green{color:#059669}\r\n\r\n\/* \u2550\u2550\u2550 TYPOGRAPHY SYSTEM \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n.eyebrow{font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--blue4)}\r\nbody.light .eyebrow{color:var(--blue2)}\r\n\r\nh1,h2,h3,h4{line-height:1.1;letter-spacing:-1px}\r\n.display-title{font-family:var(--serif);font-size:clamp(2.6rem,5.5vw,4.4rem);font-weight:400;letter-spacing:-2px;line-height:1.05}\r\n.section-title{font-size:clamp(1.9rem,3.2vw,2.8rem);font-weight:800;letter-spacing:-1.2px;line-height:1.12}\r\n.section-sub{font-size:1.0rem;color:var(--tx3);line-height:1.82;max-width:560px}\r\n.section-header{margin-bottom:60px}\r\n.section-header.centered{text-align:center}\r\n.section-header.centered .section-sub{margin:14px auto 0}\r\n\r\n\/* \u2550\u2550\u2550 BUTTONS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 30px;border-radius:50px;font-size:15px;font-weight:700;letter-spacing:-.1px;cursor:pointer;transition:all .28s var(--ease);overflow:hidden;text-decoration:none;line-height:1;border:none;font-family:var(--sans)}\r\n.btn svg{width:16px;height:16px;flex-shrink:0;transition:transform .2s}\r\n.btn:hover svg{transform:translateX(2px)}\r\n.btn:active{transform:scale(.97)}\r\n\r\n.btn-primary{background:linear-gradient(135deg,var(--blue),var(--purple));color:#fff;box-shadow:0 4px 24px rgba(37,99,235,.28)}\r\n.btn-primary:hover{box-shadow:0 0 40px rgba(37,99,235,.45),0 8px 32px rgba(124,58,237,.2);transform:translateY(-2px)}\r\n.btn-primary .shine{position:absolute;top:0;left:-130%;width:55%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-20deg);transition:left .65s}\r\n.btn-primary:hover .shine{left:160%}\r\n\r\n.btn-ghost{background:transparent;color:var(--tx);border:1.5px solid var(--bd3)}\r\n.btn-ghost:hover{border-color:rgba(96,165,250,.5);background:rgba(37,99,235,.07);transform:translateY(-1px)}\r\n.btn-lg{padding:16px 36px;font-size:16px}\r\n.btn-sm{padding:10px 22px;font-size:13.5px}\r\n.btn-full{width:100%;justify-content:center}\r\n\r\n\/* Pulsing CTA *\/\r\n.btn-cta-pulse{\r\n  position:relative;display:inline-flex;align-items:center;gap:10px;padding:11px 24px;\r\n  border-radius:50px;font-size:13.5px;font-weight:700;letter-spacing:-.1px;\r\n  background:linear-gradient(135deg,#1d4ed8 0%,#7c3aed 55%,#1d4ed8 100%);\r\n  background-size:200% 200%;animation:ctaGrad 5s ease infinite;\r\n  color:#fff;border:none;cursor:pointer;overflow:hidden;text-decoration:none;\r\n  box-shadow:0 0 0 1px rgba(96,165,250,.3),0 0 24px rgba(37,99,235,.4),0 4px 16px rgba(37,99,235,.25),inset 0 1px 0 rgba(255,255,255,.14);\r\n  transition:box-shadow .3s,transform .2s;font-family:var(--sans);\r\n}\r\n@keyframes ctaGrad{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}\r\n.btn-cta-pulse::before{content:'';position:absolute;inset:-1px;border-radius:50px;background:linear-gradient(135deg,rgba(96,165,250,.5),rgba(167,139,250,.45),rgba(96,165,250,.5));background-size:200% 200%;animation:ctaGrad 5s ease infinite;z-index:-1;filter:blur(7px);opacity:0;transition:opacity .3s}\r\n.btn-cta-pulse:hover::before{opacity:1}\r\n.btn-cta-pulse:hover{box-shadow:0 0 0 1px rgba(96,165,250,.55),0 0 40px rgba(37,99,235,.65),0 6px 24px rgba(124,58,237,.35),inset 0 1px 0 rgba(255,255,255,.2);transform:translateY(-2px) scale(1.02)}\r\n.btn-cta-pulse .ctap-shine{position:absolute;top:0;left:-130%;width:50%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.32),transparent);transform:skewX(-20deg);animation:ctaShine 4s ease-in-out infinite}\r\n@keyframes ctaShine{0%,55%{left:-130%}78%,100%{left:165%}}\r\n.ctap-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 8px #22c55e,0 0 18px rgba(34,197,94,.4);animation:dpulse 2.2s ease-in-out infinite;flex-shrink:0}\r\n@keyframes dpulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.6);opacity:.5}}\r\n.ctap-text,.ctap-arrow{position:relative;z-index:1}\r\n.ctap-arrow{width:14px;height:14px}\r\n\r\n\/* \u2550\u2550\u2550 HEADER \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n#site-header{position:fixed;top:0;left:0;right:0;z-index:1000;height:66px;background:rgba(3,7,15,.85);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--bd);transition:box-shadow .3s,background .3s}\r\n#site-header.scrolled{box-shadow:0 2px 40px rgba(0,0,0,.6);background:rgba(3,7,15,.94)}\r\nbody.light #site-header{background:rgba(238,242,255,.9)}\r\nbody.light #site-header.scrolled{background:rgba(238,242,255,.97);box-shadow:0 2px 24px rgba(0,0,0,.1)}\r\n\r\n.nav-inner{height:66px;display:flex;align-items:center;justify-content:space-between;gap:24px}\r\n.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}\r\n.nav-logo-mark{width:35px;height:35px;background:linear-gradient(135deg,var(--blue),var(--purple));border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 0 20px rgba(37,99,235,.3)}\r\n.nav-logo-mark svg{width:19px;height:19px}\r\n.nav-logo-name{font-size:18px;font-weight:800;color:var(--tx);letter-spacing:-.4px}\r\n\r\n.nav-links{display:flex;align-items:center;gap:30px}\r\n.nav-links a{font-size:14px;font-weight:500;color:var(--tx3);transition:color .2s;position:relative}\r\n.nav-links a::after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:1px;background:var(--blue4);transform:scaleX(0);transition:transform .2s;transform-origin:left}\r\n.nav-links a:hover{color:var(--tx)}\r\n.nav-links a:hover::after{transform:scaleX(1)}\r\n\r\n.nav-right{display:flex;align-items:center;gap:10px}\r\n#theme-toggle{width:36px;height:36px;border-radius:50%;background:var(--surf);border:1px solid var(--bd2);display:flex;align-items:center;justify-content:center;color:var(--tx3);cursor:pointer;transition:all .2s;flex-shrink:0}\r\n#theme-toggle:hover{background:rgba(37,99,235,.12);color:var(--tx);border-color:rgba(96,165,250,.3)}\r\n#theme-toggle svg{width:15px;height:15px}\r\n\r\n.nav-ham{display:none;flex-direction:column;gap:5px;padding:5px;cursor:pointer;background:none;border:none}\r\n.nav-ham span{display:block;width:22px;height:2px;background:var(--tx);border-radius:2px;transition:all .3s}\r\n.nav-ham.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}\r\n.nav-ham.open span:nth-child(2){opacity:0;transform:scaleX(0)}\r\n.nav-ham.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}\r\n\r\n.nav-drawer{display:none;position:fixed;top:66px;left:0;right:0;background:rgba(3,7,15,.97);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border-bottom:1px solid var(--bd);padding:20px var(--px) 28px;z-index:999}\r\nbody.light .nav-drawer{background:rgba(238,242,255,.98)}\r\n.nav-drawer.open{display:block}\r\n.nav-drawer a{display:block;padding:14px 0;font-size:16px;font-weight:600;color:var(--tx3);border-bottom:1px solid var(--bd);transition:color .2s}\r\n.nav-drawer a:hover{color:var(--tx)}\r\n.nav-drawer a:last-of-type{border-bottom:none}\r\n.nd-cta{margin-top:18px}\r\n\r\n\/* \u2550\u2550\u2550 HERO \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n#hero{position:relative;min-height:100vh;display:flex;align-items:center;padding-top:66px;overflow:hidden;z-index:1}\r\n.hero-bg-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(59,130,246,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(59,130,246,.04) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(ellipse 75% 65% at 50% 40%,black 15%,transparent 80%);pointer-events:none}\r\n.hero-blob{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none;will-change:transform}\r\n.hb1{width:640px;height:640px;background:radial-gradient(circle,rgba(37,99,235,.16),transparent 70%);top:-180px;right:-80px;animation:bfloat 16s ease-in-out infinite}\r\n.hb2{width:520px;height:520px;background:radial-gradient(circle,rgba(124,58,237,.12),transparent 70%);bottom:-100px;left:-80px;animation:bfloat 12s ease-in-out infinite reverse;animation-delay:-5s}\r\n.hb3{width:360px;height:360px;background:radial-gradient(circle,rgba(6,182,212,.08),transparent 70%);top:40%;right:20%;animation:bfloat 9s ease-in-out infinite;animation-delay:-3s}\r\n@keyframes bfloat{0%,100%{transform:translate(0,0)}40%{transform:translate(28px,-38px)}70%{transform:translate(-18px,22px)}}\r\n\r\n.hero-wrap{position:relative;z-index:2;width:100%;max-width:var(--mw);margin:0 auto;padding:72px var(--px);display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}\r\n\r\n\/* Hero left *\/\r\n.hero-live-pill{display:inline-flex;align-items:center;gap:8px;background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.22);border-radius:50px;padding:6px 16px;font-size:11.5px;font-weight:700;color:#6ee7b7;text-transform:uppercase;letter-spacing:1px;margin-bottom:22px}\r\n.hlp-dot{width:7px;height:7px;background:var(--green2);border-radius:50%;box-shadow:0 0 8px var(--green2);animation:dpulse 2.2s ease-in-out infinite}\r\n\r\n.hero-h1{font-family:var(--serif);font-size:clamp(2.4rem,5vw,4rem);font-weight:400;line-height:1.06;letter-spacing:-2px;margin-bottom:10px}\r\n.hero-h1 em{font-style:italic;color:var(--blue4)}\r\nbody.light .hero-h1 em{color:var(--blue2)}\r\n\r\n.hero-sub{font-size:1.05rem;color:var(--tx3);line-height:1.85;margin-bottom:32px;max-width:490px}\r\n.hero-sub strong{color:var(--tx);font-weight:600}\r\n\r\n.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:40px}\r\n\r\n.hero-social-proof{display:flex;align-items:center;gap:14px}\r\n.hsp-faces{display:flex}\r\n.hsp-face{width:32px;height:32px;border-radius:50%;border:2px solid var(--bg);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#fff;margin-left:-7px;flex-shrink:0}\r\n.hsp-face:first-child{margin-left:0}\r\n.hsp-info{font-size:13px;color:var(--tx3)}\r\n.hsp-info strong{color:var(--tx)}\r\n.hsp-stars{color:var(--gold);display:block;font-size:11px;letter-spacing:1.5px;margin-bottom:1px}\r\n\r\n\/* Hero right \u2013 platform card *\/\r\n.hero-visual{position:relative;height:490px}\r\n.hv-card-main{\r\n  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotateX(7deg) rotateY(-13deg);\r\n  width:310px;background:rgba(8,18,38,.92);border:1px solid rgba(255,255,255,.1);\r\n  border-radius:var(--r3);padding:22px;backdrop-filter:blur(24px);\r\n  box-shadow:0 32px 80px rgba(0,0,0,.65),inset 0 1px 0 rgba(255,255,255,.08);\r\n  animation:hvcfloat 7.5s ease-in-out infinite;will-change:transform\r\n}\r\n@keyframes hvcfloat{0%,100%{transform:translate(-50%,-50%) rotateX(7deg) rotateY(-13deg) translateY(0)}50%{transform:translate(-50%,-50%) rotateX(7deg) rotateY(-13deg) translateY(-12px)}}\r\n.hvc-hd{display:flex;align-items:center;gap:10px;margin-bottom:16px}\r\n.hvc-ico{width:32px;height:32px;background:linear-gradient(135deg,var(--blue),var(--purple));border-radius:8px;display:flex;align-items:center;justify-content:center}\r\n.hvc-ico svg{width:16px;height:16px;stroke:#fff}\r\n.hvc-title{font-size:12.5px;font-weight:700;color:var(--tx)}\r\n.hvc-sub{font-size:10px;color:var(--tx3)}\r\n.hvc-stats{display:flex;gap:8px;margin-bottom:14px}\r\n.hvc-stat{flex:1;background:rgba(255,255,255,.04);border:1px solid var(--bd);border-radius:10px;padding:9px 7px;text-align:center}\r\n.hvc-num{font-size:15px;font-weight:900;line-height:1}\r\n.hvc-lbl{font-size:9px;color:var(--tx3);text-transform:uppercase;letter-spacing:.4px;margin-top:2px}\r\n.hvc-bar{height:3px;background:rgba(255,255,255,.06);border-radius:2px;margin-top:5px;overflow:hidden}\r\n.hvc-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--blue),var(--cyan));animation:barload 2.8s ease forwards}\r\n@keyframes barload{from{width:0}}\r\n.hvc-tags{display:flex;gap:5px;flex-wrap:wrap}\r\n.hvc-tag{padding:3px 9px;background:rgba(37,99,235,.12);border:1px solid rgba(37,99,235,.2);border-radius:20px;font-size:9px;color:var(--blue5);font-weight:600}\r\n\r\n\/* Orbit *\/\r\n.hv-orbit{position:absolute;top:50%;left:50%;pointer-events:none}\r\n.hv-ring{position:absolute;border-radius:50%;border:1px dashed;animation:rspin linear infinite}\r\n.r1{width:400px;height:400px;margin:-200px 0 0 -200px;border-color:rgba(37,99,235,.13);animation-duration:24s}\r\n.r2{width:300px;height:300px;margin:-150px 0 0 -150px;border-color:rgba(124,58,237,.1);animation-duration:17s;animation-direction:reverse}\r\n@keyframes rspin{from{transform:rotate(0)}to{transform:rotate(360deg)}}\r\n.hv-orb{position:absolute;border-radius:50%;top:50%;left:50%;transform-origin:0 0;animation:orb linear infinite}\r\n.orb1{width:9px;height:9px;background:var(--blue4);box-shadow:0 0 10px var(--blue4);animation-duration:5.5s;margin:-4.5px 0 0 -4.5px}\r\n.orb2{width:7px;height:7px;background:#a78bfa;box-shadow:0 0 8px #a78bfa;animation-duration:7.8s;animation-direction:reverse;margin:-3.5px 0 0 -3.5px}\r\n.orb3{width:6px;height:6px;background:var(--cyan2);box-shadow:0 0 8px var(--cyan2);animation-duration:10s;margin:-3px 0 0 -3px}\r\n@keyframes orb{0%{transform:rotate(0deg) translateX(190px) rotate(0deg)}100%{transform:rotate(360deg) translateX(190px) rotate(-360deg)}}\r\n\r\n\/* Float cards *\/\r\n.hv-float{position:absolute;background:rgba(8,18,38,.92);border:1px solid var(--bd2);border-radius:12px;padding:12px 14px;backdrop-filter:blur(14px);box-shadow:var(--sh2);font-size:11px}\r\n.hvf1{top:8%;right:1%;animation:hvfloat 5.5s ease-in-out infinite}\r\n.hvf2{bottom:10%;left:2%;animation:hvfloat 5.2s ease-in-out infinite;animation-delay:-2.8s}\r\n@keyframes hvfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}\r\n.hvf-title{font-weight:700;color:var(--tx);margin-bottom:8px;font-size:11px}\r\n.hvf-row{display:flex;align-items:center;gap:7px;margin-bottom:5px}\r\n.hvf-row:last-child{margin:0}\r\n.hvf-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}\r\n.hvf-txt{color:var(--tx3);font-size:10.5px}\r\n.hvf-big{font-size:22px;font-weight:900;margin:2px 0 4px}\r\n\r\n\/* Floating pills *\/\r\n.hv-pill{position:absolute;background:rgba(8,18,38,.93);border:1px solid var(--bd2);border-radius:8px;padding:5px 11px;font-size:10px;font-weight:700;color:var(--tx);white-space:nowrap;animation:hvfloat ease-in-out infinite}\r\n.hp1{top:15%;left:2%;animation-duration:4.2s}\r\n.hp2{top:28%;right:1%;animation-duration:4.8s;animation-delay:-1.8s}\r\n.hp3{bottom:20%;left:7%;animation-duration:5.5s;animation-delay:-3.2s}\r\n.hp-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px;vertical-align:middle}\r\n\r\n\/* \u2550\u2550\u2550 TICKER \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n#ticker{padding:13px 0;overflow:hidden;border-top:1px solid rgba(37,99,235,.12);border-bottom:1px solid rgba(37,99,235,.12);background:rgba(37,99,235,.035);position:relative;z-index:1}\r\n.ticker-track{display:flex;gap:48px;animation:tickmove 34s linear infinite;width:max-content;white-space:nowrap}\r\n.ticker-item{display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:500;color:var(--tx3);flex-shrink:0}\r\n.ticker-sep{width:5px;height:5px;border-radius:50%;background:var(--blue4);flex-shrink:0}\r\n@keyframes tickmove{from{transform:translateX(0)}to{transform:translateX(-50%)}}\r\n\r\n\/* \u2550\u2550\u2550 COMMON SECTION \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\nsection{padding:var(--py) var(--px);position:relative;z-index:1}\r\n.alt{background:var(--bg2)}\r\n\r\n\/* Scroll animation classes *\/\r\n.fade-up{opacity:0;transform:translateY(36px);transition:opacity .72s var(--ease),transform .72s var(--ease)}\r\n.fade-left{opacity:0;transform:translateX(-36px);transition:opacity .72s var(--ease),transform .72s var(--ease)}\r\n.fade-right{opacity:0;transform:translateX(36px);transition:opacity .72s var(--ease),transform .72s var(--ease)}\r\n.fade-up.vis,.fade-left.vis,.fade-right.vis{opacity:1;transform:none}\r\n\r\n\/* \u2550\u2550\u2550 PROBLEM SECTION \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n#problem .prob-wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}\r\n\r\n.prob-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px}\r\n.pm{background:rgba(239,68,68,.07);border:1px solid rgba(239,68,68,.14);border-radius:var(--r2);padding:18px 14px;text-align:center;transition:transform .3s}\r\n.pm:hover{transform:translateY(-4px)}\r\n.pm-num{font-size:1.9rem;font-weight:900;line-height:1}\r\n.pm-lbl{font-size:11.5px;color:#fca5a5;margin-top:5px;line-height:1.4}\r\nbody.light .pm{background:rgba(239,68,68,.06);border-color:rgba(239,68,68,.2)}\r\nbody.light .pm-lbl{color:#b91c1c}\r\n\r\n.sol-bridge{margin-top:26px;padding:22px 24px;background:linear-gradient(135deg,rgba(37,99,235,.09),rgba(124,58,237,.06));border:1px solid rgba(37,99,235,.18);border-radius:var(--r2);text-align:center;position:relative;overflow:hidden}\r\n.sol-bridge::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(37,99,235,.45),transparent)}\r\n.sb-arrow{display:block;font-size:20px;margin:8px 0;animation:sbarrow 1.7s ease-in-out infinite}\r\n@keyframes sbarrow{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}\r\n.sb-txt{font-size:13px;color:var(--tx3);line-height:1.7}\r\n\r\n.pcards{display:flex;flex-direction:column;gap:11px}\r\n.pcard{display:grid;grid-template-columns:46px 1fr;gap:14px;align-items:start;background:var(--surf);border:1px solid var(--bd);border-left:3px solid var(--red);border-radius:var(--r);padding:16px 18px;transition:all .35s;opacity:0;transform:translateX(28px)}\r\n.pcard.vis{opacity:1;transform:translateX(0)}\r\n.pcard:hover{border-left-color:var(--orange);transform:translateX(5px)}\r\n.pcard-ico{width:46px;height:46px;background:rgba(239,68,68,.1);border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .3s}\r\n.pcard:hover .pcard-ico{transform:scale(1.08) rotate(-6deg)}\r\n.pcard-ico svg{width:21px;height:21px;color:#f87171}\r\n.pcard-title{font-size:14px;font-weight:700;color:var(--tx);margin-bottom:3px}\r\n.pcard-txt{font-size:12.5px;color:var(--tx3);line-height:1.62}\r\n\r\n\/* \u2550\u2550\u2550 SERVICES \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n.svc-tabs{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:36px 0 30px}\r\n.stab{padding:9px 22px;border-radius:50px;font-size:13px;font-weight:600;border:1px solid var(--bd2);color:var(--tx3);background:transparent;transition:all .25s;cursor:pointer;font-family:var(--sans)}\r\n.stab.on{background:linear-gradient(135deg,var(--blue),var(--purple));color:#fff;border-color:transparent;box-shadow:0 0 22px rgba(37,99,235,.3)}\r\n.stab:hover:not(.on){border-color:rgba(96,165,250,.4);color:var(--tx);background:rgba(37,99,235,.06)}\r\n.stab-panel{display:none}\r\n.stab-panel.on{display:grid;grid-template-columns:1fr 1fr;gap:18px;animation:fadein .32s ease}\r\n@keyframes fadein{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}\r\n\r\n.scard{background:var(--surf);border:1px solid var(--bd);border-radius:var(--r3);padding:28px;position:relative;overflow:hidden;transition:all .35s;isolation:isolate}\r\n.scard-top{position:absolute;top:0;left:0;right:0;height:2px;border-radius:var(--r3) var(--r3) 0 0}\r\n.scard::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(37,99,235,.1),transparent 55%);opacity:0;transition:opacity .4s}\r\n.scard:hover::before{opacity:1}\r\n.scard:hover{transform:translateY(-5px);border-color:rgba(37,99,235,.3);box-shadow:var(--sh)}\r\n.scard-ico{width:50px;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:18px;transition:transform .35s}\r\n.scard:hover .scard-ico{transform:scale(1.08) rotate(-7deg)}\r\n.scard-ico svg{width:23px;height:23px}\r\n.scard-title{font-size:1rem;font-weight:800;color:var(--tx);margin-bottom:9px;letter-spacing:-.2px}\r\n.scard-desc{font-size:13.5px;color:var(--tx3);line-height:1.74;margin-bottom:14px}\r\n.chips{display:flex;gap:6px;flex-wrap:wrap}\r\n.chip{padding:3px 10px;border-radius:20px;font-size:10.5px;font-weight:600;line-height:1.4}\r\n.chip-b{background:rgba(37,99,235,.12);border:1px solid rgba(37,99,235,.2);color:#93c5fd}\r\n.chip-p{background:rgba(124,58,237,.12);border:1px solid rgba(124,58,237,.2);color:#c4b5fd}\r\n.chip-c{background:rgba(6,182,212,.12);border:1px solid rgba(6,182,212,.2);color:#67e8f9}\r\n.chip-y{background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.2);color:#fcd34d}\r\n\r\n.scard.detail{padding:24px}\r\n.detail-label{font-size:11px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.9px;margin-bottom:16px}\r\n.detail-row{display:flex;align-items:center;gap:10px;margin-bottom:11px}\r\n.detail-row:last-child{margin:0}\r\n.detail-ico{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}\r\n.detail-ico svg{width:14px;height:14px}\r\n.detail-txt{font-size:12.5px;color:var(--tx3)}\r\n\r\n.svc-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:20px}\r\n.sov{background:var(--surf);border:1px solid var(--bd);border-radius:var(--r2);padding:22px;text-align:center;transition:all .3s}\r\n.sov:hover{transform:translateY(-5px);border-color:rgba(37,99,235,.3)}\r\n.sov-ico{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin:0 auto 12px;transition:transform .3s}\r\n.sov:hover .sov-ico{transform:scale(1.12) rotate(-8deg)}\r\n.sov-ico svg{width:22px;height:22px}\r\n.sov-title{font-size:13px;font-weight:700;color:var(--tx);margin-bottom:5px}\r\n.sov-txt{font-size:11.5px;color:var(--tx3);line-height:1.6}\r\n\r\n\/* Pricing block *\/\r\n.pricing-row{margin-top:44px;padding:28px;background:linear-gradient(135deg,rgba(37,99,235,.08),rgba(124,58,237,.06));border:1px solid rgba(37,99,235,.18);border-radius:var(--r2);text-align:center}\r\n.pr-title{font-size:1.1rem;font-weight:800;color:var(--tx);margin-bottom:6px}\r\n.pr-sub{font-size:14px;color:var(--tx3);margin-bottom:20px}\r\n.pr-grid{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:20px}\r\n.pr-item{background:var(--surf);border:1px solid var(--bd2);border-radius:var(--r);padding:10px 22px;text-align:center}\r\n.pr-val{font-size:1.2rem;font-weight:900;color:var(--blue4)}\r\n.pr-lbl{font-size:11px;color:var(--tx3);margin-top:2px}\r\nbody.light .pr-val{color:var(--blue2)}\r\n\r\n\/* \u2550\u2550\u2550 PROCESS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n#process .proc-wrap{display:grid;grid-template-columns:1fr 420px;gap:60px;align-items:start}\r\n.proc-steps{position:relative}\r\n.proc-steps::before{content:'';position:absolute;left:37px;top:60px;bottom:60px;width:1px;background:linear-gradient(180deg,transparent,rgba(37,99,235,.35) 20%,rgba(124,58,237,.35) 80%,transparent)}\r\n.proc-step{display:grid;grid-template-columns:76px 1fr;gap:22px;align-items:start;padding:22px 0;border-bottom:1px solid var(--bd)}\r\n.proc-step:last-child{border:none}\r\n.step-num{width:76px;height:76px;border-radius:50%;background:var(--surf);border:1px solid var(--bd2);display:flex;align-items:center;justify-content:center;font-size:21px;font-weight:900;flex-shrink:0;color:var(--tx3);transition:all .4s;position:relative;z-index:1}\r\n.proc-step:hover .step-num{background:linear-gradient(135deg,var(--blue),var(--purple));border-color:transparent;box-shadow:0 0 36px rgba(37,99,235,.4);transform:scale(1.07);color:#fff}\r\n.step-body{padding-top:9px}\r\n.step-title{font-size:1rem;font-weight:800;color:var(--tx);margin-bottom:6px;letter-spacing:-.2px}\r\n.step-desc{font-size:13.5px;color:var(--tx3);line-height:1.74;max-width:480px}\r\n.step-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}\r\n.step-tag{padding:3px 10px;background:rgba(37,99,235,.1);border:1px solid rgba(37,99,235,.18);border-radius:20px;font-size:10.5px;color:var(--blue5);font-weight:600;transition:all .25s}\r\n.proc-step:hover .step-tag{background:rgba(37,99,235,.16)}\r\nbody.light .step-tag{color:var(--blue2)}\r\n\r\n\/* Process panel *\/\r\n.proc-panel{position:sticky;top:96px}\r\n.proc-tracker{display:flex;background:rgba(255,255,255,.03);border:1px solid var(--bd);border-radius:14px;overflow:hidden;padding:4px;margin-bottom:18px;gap:0}\r\n.ptrk-btn{flex:1;padding:9px 6px;text-align:center;font-size:10.5px;font-weight:700;color:var(--tx3);border-radius:10px;transition:all .3s;cursor:pointer;border:none;background:transparent;letter-spacing:.3px;text-transform:uppercase;font-family:var(--sans)}\r\n.ptrk-btn.on{background:linear-gradient(135deg,rgba(37,99,235,.28),rgba(124,58,237,.2));color:#93c5fd;box-shadow:inset 0 0 0 1px rgba(37,99,235,.32)}\r\nbody.light .ptrk-btn.on{color:var(--blue2)}\r\n\r\n.pcard-outer{position:relative;min-height:410px}\r\n.pc{position:absolute;inset:0;border-radius:20px;opacity:0;transform:translateY(18px) scale(.97);transition:all .5s var(--ease);pointer-events:none}\r\n.pc.on{opacity:1;transform:none;pointer-events:all;position:relative}\r\n.pc.gone{opacity:0;transform:translateY(-14px) scale(.96);position:absolute;pointer-events:none}\r\n.pc-inner{background:linear-gradient(148deg,rgba(8,18,38,.92),rgba(4,10,22,.96));border:1px solid rgba(255,255,255,.1);border-radius:20px;overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.08);backdrop-filter:blur(20px)}\r\n.pc-accent{height:3px;background:linear-gradient(90deg,var(--pc1),var(--pc2));position:relative;overflow:hidden}\r\n.pc-accent::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:accshine 2.8s ease-in-out infinite}\r\n@keyframes accshine{0%{transform:translateX(-100%)}100%{transform:translateX(200%)}}\r\n.pc-head{display:flex;align-items:flex-start;gap:18px;padding:24px 24px 0}\r\n.pc-stepnum{font-size:70px;font-weight:900;line-height:.85;background:linear-gradient(135deg,var(--pc1),var(--pc2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:.18;letter-spacing:-4px;flex-shrink:0;font-family:var(--serif)}\r\n.pc-meta{padding-top:4px;flex:1}\r\n.pc-label{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--pc2);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:30px;padding:3px 12px;margin-bottom:10px}\r\n.pc-label::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--pc2);box-shadow:0 0 6px var(--pc2)}\r\n.pc-title{font-size:17px;font-weight:800;color:var(--tx);line-height:1.25;letter-spacing:-.4px}\r\n.pc-body{padding:14px 24px;font-size:13px;color:var(--tx3);line-height:1.78}\r\n.pc-features{margin:0 24px 18px;display:flex;flex-direction:column;gap:8px}\r\n.pc-feat{display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:10px;font-size:12.5px;color:var(--tx2);transition:all .25s}\r\n.pc-feat:hover{background:rgba(255,255,255,.05)}\r\n.pc-feat-ico{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,rgba(37,99,235,.22),rgba(124,58,237,.14));border:1px solid rgba(37,99,235,.2);display:flex;align-items:center;justify-content:center;flex-shrink:0}\r\n.pc-feat-ico svg{width:13px;height:13px}\r\n.pc-foot{display:flex;align-items:center;gap:12px;padding:16px 24px;border-top:1px solid rgba(255,255,255,.05)}\r\n.pc-prog-wrap{flex:1}\r\n.pc-prog-lbl{font-size:9.5px;color:var(--tx3);text-transform:uppercase;letter-spacing:.9px;margin-bottom:6px;font-weight:600}\r\n.pc-prog-bar{height:3px;background:rgba(255,255,255,.07);border-radius:3px;overflow:hidden}\r\n.pc-prog-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--pc1),var(--pc2));transition:width .7s var(--ease)}\r\n.pc-step-tag{padding:5px 12px;border-radius:30px;font-size:11px;font-weight:700;color:var(--pc2);border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);white-space:nowrap}\r\n.proc-dots{display:flex;justify-content:center;gap:8px;margin-top:16px}\r\n.pdot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.15);border:none;cursor:pointer;transition:all .3s;padding:0}\r\n.pdot.on{width:24px;border-radius:4px;background:linear-gradient(90deg,var(--blue),var(--purple))}\r\n\r\n\/* \u2550\u2550\u2550 WHY US \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n#why .why-wrap{display:grid;grid-template-columns:1fr 1fr;gap:76px;align-items:center}\r\n.why-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:28px}\r\n.wcard{position:relative;padding:22px 20px 20px;background:rgba(6,14,26,.72);border-radius:16px;overflow:hidden;transition:all .4s var(--ease);isolation:isolate}\r\n.wcard::before{content:'';position:absolute;inset:0;border-radius:16px;padding:1px;background:linear-gradient(135deg,rgba(255,255,255,.06),rgba(255,255,255,.02),rgba(37,99,235,.18));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;transition:background .4s}\r\n.wcard:hover{transform:translateY(-6px) scale(1.01);box-shadow:0 20px 50px rgba(0,0,0,.5),0 0 0 1px rgba(37,99,235,.3)}\r\n.wcard:hover::before{background:linear-gradient(135deg,rgba(37,99,235,.45),rgba(124,58,237,.3),rgba(6,182,212,.18))}\r\nbody.light .wcard{background:rgba(255,255,255,.85)}\r\n.wc-n{position:absolute;top:13px;right:14px;font-size:11px;font-weight:900;color:rgba(255,255,255,.1);font-variant-numeric:tabular-nums;letter-spacing:-1px}\r\nbody.light .wc-n{color:rgba(0,0,0,.08)}\r\n.wc-ico{width:44px;height:44px;background:linear-gradient(135deg,rgba(37,99,235,.22),rgba(124,58,237,.14));border:1px solid rgba(37,99,235,.25);border-radius:13px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;transition:all .4s}\r\n.wcard:hover .wc-ico{background:linear-gradient(135deg,rgba(37,99,235,.32),rgba(124,58,237,.22));transform:scale(1.1) rotate(-5deg);box-shadow:0 0 28px rgba(37,99,235,.2)}\r\n.wc-ico svg{width:20px;height:20px;color:#93c5fd}\r\nbody.light .wc-ico svg{color:var(--blue2)}\r\n.wc-title{font-size:13px;font-weight:800;color:var(--tx);margin-bottom:6px;letter-spacing:-.2px;line-height:1.3}\r\n.wc-txt{font-size:11.5px;color:var(--tx3);line-height:1.65}\r\n.wcard.wide{grid-column:1\/-1;display:flex;align-items:center;gap:20px}\r\n.wcard.wide .wc-ico{margin-bottom:0;flex-shrink:0}\r\n.wc-bar{position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(37,99,235,.5),transparent);transform:scaleX(0);transition:transform .4s}\r\n.wcard:hover .wc-bar{transform:scaleX(1)}\r\n\r\n\/* Ring visual *\/\r\n.ring-scene{position:relative;height:440px;display:flex;align-items:center;justify-content:center}\r\n.rring{position:absolute;border-radius:50%;border-style:solid;border-color:transparent;animation:rrspin linear infinite}\r\n.rr1{width:380px;height:380px;border-width:1px;border-top-color:rgba(37,99,235,.3);border-right-color:rgba(37,99,235,.12);animation-duration:25s}\r\n.rr2{width:290px;height:290px;border-width:1px;border-top-color:rgba(124,58,237,.4);border-left-color:rgba(124,58,237,.16);animation-duration:18s;animation-direction:reverse}\r\n.rr3{width:200px;height:200px;border-width:1px;border-top-color:rgba(6,182,212,.48);animation-duration:12s}\r\n.rr4{width:120px;height:120px;border-width:1px;border-top-color:rgba(245,158,11,.42);animation-duration:7.5s;animation-direction:reverse}\r\n@keyframes rrspin{from{transform:rotate(0)}to{transform:rotate(360deg)}}\r\n.ring-core{position:absolute;width:72px;height:72px;background:linear-gradient(135deg,var(--blue),var(--purple));border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 0 50px rgba(37,99,235,.45);animation:corepulse 3.2s ease-in-out infinite}\r\n@keyframes corepulse{0%,100%{box-shadow:0 0 50px rgba(37,99,235,.45)}50%{box-shadow:0 0 80px rgba(37,99,235,.65),0 0 120px rgba(124,58,237,.2)}}\r\n.ring-core svg{width:28px;height:28px;stroke:#fff}\r\n.ring-node{position:absolute;width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid var(--bd2);backdrop-filter:blur(8px);cursor:default;transition:transform .25s}\r\n.ring-node:hover{transform:scale(1.32)!important;z-index:10}\r\n.rn1{background:rgba(37,99,235,.22);top:8%;left:50%;margin-left:105px}\r\n.rn2{background:rgba(124,58,237,.22);bottom:12%;left:50%;margin-left:95px}\r\n.rn3{background:rgba(6,182,212,.22);top:50%;left:7%;margin-top:-21px}\r\n.rn4{background:rgba(245,158,11,.22);top:16%;right:9%}\r\n.rn5{background:rgba(16,185,129,.22);bottom:16%;right:11%}\r\n.rn6{background:rgba(236,72,153,.22);top:70%;left:13%}\r\n.rn7{background:rgba(239,68,68,.22);top:28%;right:4%}\r\n.rn8{background:rgba(96,165,250,.22);bottom:30%;right:5%}\r\n.rn-tip{position:absolute;background:rgba(8,18,38,.95);border:1px solid var(--bd2);border-radius:7px;padding:4px 10px;font-size:10px;font-weight:600;color:var(--tx);white-space:nowrap;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);opacity:0;pointer-events:none;transition:opacity .2s;z-index:20}\r\n.ring-node:hover .rn-tip{opacity:1}\r\n.ring-node svg{width:16px;height:16px;stroke:currentColor;color:var(--tx3)}\r\n\r\n\/* \u2550\u2550\u2550 TESTIMONIALS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n#reviews .rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}\r\n.revcard{background:var(--surf);border:1px solid var(--bd);border-radius:var(--r2);padding:28px;position:relative;overflow:hidden;transition:all .35s;isolation:isolate}\r\n.revcard::before{content:'\"';position:absolute;top:-14px;right:16px;font-size:96px;color:rgba(37,99,235,.06);font-family:var(--serif);line-height:1;pointer-events:none}\r\n.revcard:hover{transform:translateY(-6px);border-color:rgba(37,99,235,.26);box-shadow:var(--sh)}\r\n.rev-stars{color:var(--gold);font-size:13px;letter-spacing:1.5px;margin-bottom:12px}\r\n.rev-text{font-size:13.5px;color:var(--tx3);line-height:1.8;margin-bottom:18px;font-style:italic}\r\n.rev-author{display:flex;align-items:center;gap:11px}\r\n.rev-av{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;color:#fff;flex-shrink:0}\r\n.rev-name{font-size:13.5px;font-weight:700;color:var(--tx)}\r\n.rev-role{font-size:11.5px;color:var(--tx3)}\r\n\r\n\/* \u2550\u2550\u2550 FAQ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n#faq .faq-wrap{max-width:860px;margin:0 auto}\r\n.faq-cats{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:40px}\r\n.fcat{padding:7px 18px;border-radius:30px;font-size:12px;font-weight:700;border:1px solid var(--bd2);color:var(--tx3);background:transparent;cursor:pointer;transition:all .25s;font-family:var(--sans);letter-spacing:.3px}\r\n.fcat.on{background:linear-gradient(135deg,rgba(37,99,235,.2),rgba(124,58,237,.14));color:#93c5fd;border-color:rgba(37,99,235,.38);box-shadow:0 0 16px rgba(37,99,235,.18)}\r\n.fcat:hover:not(.on){border-color:rgba(96,165,250,.4);color:var(--tx);background:rgba(37,99,235,.05)}\r\nbody.light .fcat.on{color:var(--blue2)}\r\n\r\n.faq-list{display:flex;flex-direction:column;gap:10px}\r\n.fitem{position:relative;border-radius:16px;overflow:hidden;background:rgba(6,14,26,.62);cursor:pointer;transition:all .32s}\r\n.fitem::before{content:'';position:absolute;inset:0;border-radius:16px;padding:1px;background:linear-gradient(135deg,rgba(255,255,255,.07),rgba(255,255,255,.02));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;transition:background .35s}\r\n.fitem:hover::before{background:linear-gradient(135deg,rgba(96,165,250,.42),rgba(124,58,237,.28),rgba(6,182,212,.18))}\r\n.fitem.open::before{background:linear-gradient(135deg,rgba(37,99,235,.5),rgba(124,58,237,.32),rgba(6,182,212,.18))}\r\n.fitem:hover{background:rgba(37,99,235,.06);box-shadow:0 4px 20px rgba(0,0,0,.25),0 0 0 1px rgba(96,165,250,.12)}\r\n.fitem.open{background:rgba(37,99,235,.04);box-shadow:0 12px 40px rgba(0,0,0,.38),0 0 0 1px rgba(37,99,235,.28)}\r\nbody.light .fitem{background:rgba(240,245,255,.7)}\r\nbody.light .fitem:hover{background:rgba(37,99,235,.05)}\r\nbody.light .fitem.open{background:rgba(37,99,235,.04)}\r\n\r\n.fq{display:flex;align-items:center;gap:16px;padding:20px 22px;width:100%;text-align:left;background:none;border:none;cursor:pointer;font-family:var(--sans)}\r\n.fq-n{font-size:13px;font-weight:900;color:rgba(255,255,255,.14);flex-shrink:0;min-width:22px;font-variant-numeric:tabular-nums;transition:color .3s}\r\nbody.light .fq-n{color:rgba(0,0,0,.14)}\r\n.fitem:hover .fq-n{color:rgba(96,165,250,.58)}\r\n.fitem.open .fq-n{color:rgba(96,165,250,.65)}\r\n.fq-txt{flex:1;font-size:14.5px;font-weight:700;color:var(--tx);line-height:1.4;transition:color .2s}\r\n.fitem:hover .fq-txt,.fitem.open .fq-txt{color:#fff}\r\nbody.light .fitem:hover .fq-txt,body.light .fitem.open .fq-txt{color:var(--tx)}\r\n.ftoggle{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:var(--tx3);transition:all .35s;position:relative}\r\n.ftoggle::before,.ftoggle::after{content:'';position:absolute;background:currentColor;border-radius:2px;transition:all .35s}\r\n.ftoggle::before{width:11px;height:1.5px}\r\n.ftoggle::after{width:1.5px;height:11px}\r\n.fitem:hover .ftoggle{background:rgba(96,165,250,.1);border-color:rgba(96,165,250,.32);color:#93c5fd}\r\n.fitem.open .ftoggle{background:linear-gradient(135deg,rgba(37,99,235,.32),rgba(124,58,237,.22));border-color:rgba(96,165,250,.48);color:#93c5fd;transform:rotate(45deg)}\r\n.fbody{max-height:0;overflow:hidden;transition:max-height .4s var(--ease),padding .4s}\r\n.fitem.open .fbody{max-height:260px;padding-bottom:20px}\r\n.fansw{padding:0 22px 0 60px;font-size:13.5px;color:var(--tx3);line-height:1.8}\r\n.fitem.open .fansw{position:relative}\r\n.fitem.open .fansw::before{content:'';position:absolute;left:40px;top:4px;bottom:4px;width:2px;background:linear-gradient(180deg,#60a5fa,rgba(124,58,237,.55));border-radius:2px}\r\n\r\n\/* \u2550\u2550\u2550 FOOTER CTA \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n#footer-cta{background:var(--bg2);padding:80px var(--px);text-align:center;position:relative;overflow:hidden;z-index:1}\r\n.ftcta-glow{position:absolute;width:520px;height:520px;background:radial-gradient(circle,rgba(37,99,235,.09),transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}\r\n.ftcta-inner{position:relative;z-index:1;max-width:640px;margin:0 auto}\r\n.ftcta-h2{font-family:var(--serif);font-size:clamp(2rem,4vw,3.4rem);font-weight:400;letter-spacing:-1.5px;margin:14px 0 12px;line-height:1.08}\r\n.ftcta-p{color:var(--tx3);font-size:1rem;margin-bottom:32px;line-height:1.8}\r\n\r\n\/* \u2550\u2550\u2550 CONTACT \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n#contact .contact-wrap{display:grid;grid-template-columns:1fr 1.25fr;gap:60px;align-items:start}\r\n.contact-h2{font-family:var(--serif);font-size:clamp(1.9rem,3.2vw,2.8rem);font-weight:400;letter-spacing:-1.2px;margin-bottom:10px}\r\n.contact-p{font-size:1rem;color:var(--tx3);line-height:1.82;margin-bottom:28px}\r\n.ci-list{display:flex;flex-direction:column;gap:11px;margin-bottom:22px}\r\n.ci-row{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--surf);border:1px solid var(--bd);border-radius:var(--r);transition:all .28s}\r\n.ci-row:hover{border-color:rgba(37,99,235,.24);transform:translateX(5px)}\r\n.ci-icon{width:40px;height:40px;background:linear-gradient(135deg,rgba(37,99,235,.2),rgba(37,99,235,.06));border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}\r\n.ci-icon svg{width:18px;height:18px;stroke:#60a5fa}\r\nbody.light .ci-icon svg{stroke:var(--blue2)}\r\n.ci-lbl{font-size:11px;color:var(--tx3);font-weight:500}\r\n.ci-val{font-size:14px;color:var(--tx);font-weight:700}\r\n.cal-box{padding:18px 20px;background:linear-gradient(135deg,rgba(37,99,235,.09),rgba(124,58,237,.07));border:1px solid rgba(37,99,235,.18);border-radius:var(--r);display:flex;align-items:center;gap:14px}\r\n.cal-ico{width:40px;height:40px;background:linear-gradient(135deg,var(--blue),var(--purple));border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}\r\n.cal-ico svg{width:18px;height:18px;stroke:#fff}\r\n.cal-title{font-size:14px;font-weight:700;color:var(--tx)}\r\n.cal-sub{font-size:12px;color:var(--tx3)}\r\n\r\n\/* Form *\/\r\n.cform{background:var(--surf);border:1px solid var(--bd);border-radius:var(--r2);padding:32px}\r\n.frow{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}\r\n.fgroup{margin-bottom:14px}\r\nlabel{display:block;font-size:12px;color:var(--tx3);font-weight:600;margin-bottom:5px;letter-spacing:.3px}\r\ninput[type=\"text\"],input[type=\"email\"],input[type=\"tel\"],select,textarea{\r\n  width:100%;padding:12px 14px;background:rgba(255,255,255,.04);border:1px solid var(--bd);\r\n  border-radius:var(--r);color:var(--tx);font-size:14px;outline:none;\r\n  transition:border-color .22s,box-shadow .22s;-webkit-appearance:none;font-family:var(--sans);\r\n}\r\nbody.light input[type=\"text\"],body.light input[type=\"email\"],body.light input[type=\"tel\"],body.light select,body.light textarea{background:rgba(0,0,0,.04);color:var(--tx)}\r\ninput:focus,select:focus,textarea:focus{border-color:rgba(37,99,235,.5);box-shadow:0 0 0 3px rgba(37,99,235,.1)}\r\ninput::placeholder,textarea::placeholder{color:var(--tx4)}\r\ninput.err,select.err,textarea.err{border-color:rgba(239,68,68,.5)}\r\nselect option{background:var(--bg3);color:var(--tx)}\r\ntextarea{resize:vertical;min-height:110px}\r\n.ferr{font-size:11px;color:var(--red);margin-top:4px;display:none}\r\n.ferr.show{display:block}\r\n.fsuccess{display:none;text-align:center;padding:26px;background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.24);border-radius:var(--r);margin-top:8px}\r\n.fsuccess svg{width:40px;height:40px;stroke:var(--green);margin:0 auto 10px}\r\n.fsuccess h3{font-size:16px;font-weight:700;margin-bottom:4px}\r\n.fsuccess p{font-size:13px;color:var(--tx3)}\r\n.hp{display:none!important;visibility:hidden;height:0;overflow:hidden}\r\n\r\n\/* \u2550\u2550\u2550 STATS BAR \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n#stats{position:relative;z-index:2;border-top:1px solid var(--bd);border-bottom:1px solid var(--bd);background:rgba(255,255,255,.013)}\r\n.stats-grid{max-width:var(--mw);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);padding:0 var(--px)}\r\n.stat-item{padding:42px 20px;text-align:center;border-right:1px solid var(--bd);position:relative;overflow:hidden;transition:background .3s}\r\n.stat-item:last-child{border-right:none}\r\n.stat-item::after{content:'';position:absolute;bottom:0;left:50%;width:0;height:2px;background:linear-gradient(90deg,var(--blue),var(--cyan));transform:translateX(-50%);transition:width .4s}\r\n.stat-item:hover{background:rgba(37,99,235,.035)}\r\n.stat-item:hover::after{width:60%}\r\n.stat-num{font-size:2.9rem;font-weight:900;background:linear-gradient(135deg,var(--blue4),var(--cyan2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;display:block;font-family:var(--serif)}\r\n.stat-lbl{font-size:13px;color:var(--tx3);margin-top:6px}\r\n\r\n\/* \u2550\u2550\u2550 FOOTER \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n#footer{background:#020509;border-top:1px solid var(--bd);padding:56px var(--px) 28px}\r\nbody.light #footer{background:#e4eaff}\r\n.footer-grid{max-width:var(--mw);margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}\r\n.footer-logo-area p{font-size:13px;color:var(--tx3);line-height:1.78;max-width:260px;margin-top:10px}\r\n.footer-col-title{font-size:12px;font-weight:700;color:var(--tx);text-transform:uppercase;letter-spacing:1px;margin-bottom:14px}\r\n.footer-col a{display:block;font-size:13px;color:var(--tx3);margin-bottom:9px;transition:color .2s}\r\n.footer-col a:hover{color:var(--tx)}\r\n.footer-bottom{max-width:var(--mw);margin:0 auto;border-top:1px solid var(--bd);padding-top:22px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}\r\n.footer-bottom span{font-size:12px;color:var(--tx4)}\r\n.footer-bottom-r{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--tx4)}\r\n\r\n\/* \u2550\u2550\u2550 STICKY MOBILE CTA \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n#sticky-cta{display:none;position:fixed;bottom:0;left:0;right:0;z-index:900;padding:12px 16px 20px;background:linear-gradient(0deg,rgba(3,7,15,.98) 0%,rgba(3,7,15,.9) 80%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--bd)}\r\nbody.light #sticky-cta{background:linear-gradient(0deg,rgba(238,242,255,.98) 0%,rgba(238,242,255,.9) 80%,transparent)}\r\n#sticky-cta-close{position:absolute;top:14px;right:16px;width:28px;height:28px;border-radius:50%;background:var(--surf);border:1px solid var(--bd2);display:flex;align-items:center;justify-content:center;color:var(--tx3);cursor:pointer;font-size:14px}\r\n#sticky-cta .btn{width:100%;font-size:15px;padding:14px}\r\n\r\n\/* \u2550\u2550\u2550 ANIMATIONS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}\r\n\r\n\/* \u2550\u2550\u2550 RESPONSIVE \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n@media(max-width:1100px){\r\n  .hero-wrap,.contact-wrap{grid-template-columns:1fr}\r\n  #process .proc-wrap{grid-template-columns:1fr}\r\n  .proc-panel,.hero-visual,.ring-scene{display:none}\r\n  #why .why-wrap{grid-template-columns:1fr}\r\n  .rev-grid{grid-template-columns:repeat(2,1fr)}\r\n  .svc-overview{grid-template-columns:repeat(2,1fr)}\r\n  .stab-panel.on{grid-template-columns:1fr}\r\n  .prob-wrap{grid-template-columns:1fr}\r\n}\r\n@media(max-width:768px){\r\n  :root{--px:5%;--py:68px}\r\n  .nav-links,.nav-right .btn-cta-pulse{display:none}\r\n  .nav-ham{display:flex}\r\n  #sticky-cta{display:block}\r\n  .hero-wrap{padding:50px var(--px)}\r\n  .hero-h1{letter-spacing:-1.5px}\r\n  .hero-actions{flex-direction:column;align-items:stretch}\r\n  .hero-actions .btn,.hero-actions .btn-ghost{justify-content:center}\r\n  .stats-grid{grid-template-columns:repeat(2,1fr)}\r\n  .stat-item:nth-child(2){border-right:none}\r\n  .stat-item:nth-child(3){border-right:1px solid var(--bd)}\r\n  .rev-grid{grid-template-columns:1fr}\r\n  .svc-overview{grid-template-columns:1fr 1fr}\r\n  .frow{grid-template-columns:1fr}\r\n  .why-cards{grid-template-columns:1fr}\r\n  .wcard.wide{flex-direction:column}\r\n  .prob-metrics{grid-template-columns:1fr 1fr}\r\n  .footer-grid{grid-template-columns:1fr 1fr}\r\n  .footer-grid>div:first-child{grid-column:1\/-1}\r\n}\r\n@media(max-width:480px){\r\n  :root{--py:56px}\r\n  .stats-grid{grid-template-columns:1fr 1fr}\r\n  .stat-item:nth-child(odd){border-right:1px solid var(--bd)}\r\n  .stat-item:nth-child(even){border-right:none}\r\n  .svc-overview{grid-template-columns:1fr}\r\n  .footer-grid{grid-template-columns:1fr}\r\n  .section-title{font-size:1.75rem}\r\n}\r\n@media(max-width:768px){\r\n  .cform,.revcard,.wcard,.scard{backdrop-filter:none;-webkit-backdrop-filter:none}\r\n}\r\n\r\n\/* Light mode nav *\/\r\nbody.light .nav-logo-name{color:var(--tx)}\r\nbody.light .fitem{background:rgba(240,245,255,.72)}\r\nbody.light .pc-inner{background:linear-gradient(148deg,rgba(235,242,255,.95),rgba(220,230,255,.98))}\r\nbody.light .hv-card-main,.body.light .hvf1,.body.light .hvf2{background:rgba(240,244,255,.9)}\r\n<\/style>\r\n<\/head>\r\n<body>\r\n\r\n<a href=\"#main\" class=\"skip-link\">Skip to main content<\/a>\r\n<div class=\"noise\" aria-hidden=\"true\"><\/div>\r\n<canvas id=\"star-bg\" aria-hidden=\"true\"><\/canvas>\r\n\r\n<!-- \u2550\u2550 HEADER \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<header id=\"site-header\" role=\"banner\">\r\n  <nav class=\"container nav-inner\" aria-label=\"Main navigation\">\r\n    <a href=\"\/\" class=\"nav-logo\" aria-label=\"SolidWiki home\">\r\n      <div class=\"nav-logo-mark\" aria-hidden=\"true\">\r\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5\"\/><\/svg>\r\n      <\/div>\r\n      <span class=\"nav-logo-name\">SolidWiki<\/span>\r\n    <\/a>\r\n    <ul class=\"nav-links\" role=\"list\">\r\n      <li><a href=\"#services\">Services<\/a><\/li>\r\n      <li><a href=\"#process\">Process<\/a><\/li>\r\n      <li><a href=\"#why\">Why Us<\/a><\/li>\r\n      <li><a href=\"#reviews\">Reviews<\/a><\/li>\r\n      <li><a href=\"#faq\">FAQ<\/a><\/li>\r\n    <\/ul>\r\n    <div class=\"nav-right\">\r\n      <button id=\"theme-toggle\" aria-label=\"Toggle colour theme\" title=\"Toggle theme\">\r\n        <svg id=\"moon-i\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z\"\/><\/svg>\r\n        <svg id=\"sun-i\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" style=\"display:none\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"5\"\/><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"3\"\/><line x1=\"12\" y1=\"21\" x2=\"12\" y2=\"23\"\/><line x1=\"4.22\" y1=\"4.22\" x2=\"5.64\" y2=\"5.64\"\/><line x1=\"18.36\" y1=\"18.36\" x2=\"19.78\" y2=\"19.78\"\/><line x1=\"1\" y1=\"12\" x2=\"3\" y2=\"12\"\/><line x1=\"21\" y1=\"12\" x2=\"23\" y2=\"12\"\/><line x1=\"4.22\" y1=\"19.78\" x2=\"5.64\" y2=\"18.36\"\/><line x1=\"18.36\" y1=\"5.64\" x2=\"19.78\" y2=\"4.22\"\/><\/svg>\r\n      <\/button>\r\n      <a href=\"#contact\" class=\"btn-cta-pulse\" aria-label=\"Get a free consultation\">\r\n        <span class=\"ctap-shine\" aria-hidden=\"true\"><\/span>\r\n        <span class=\"ctap-dot\" aria-hidden=\"true\"><\/span>\r\n        <span class=\"ctap-text\">Free Consultation<\/span>\r\n        <svg class=\"ctap-arrow\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" aria-hidden=\"true\"><path d=\"M5 12h14M12 5l7 7-7 7\"\/><\/svg>\r\n      <\/a>\r\n    <\/div>\r\n    <button class=\"nav-ham\" id=\"hamburger\" aria-label=\"Open menu\" aria-expanded=\"false\" aria-controls=\"nav-drawer\">\r\n      <span aria-hidden=\"true\"><\/span><span aria-hidden=\"true\"><\/span><span aria-hidden=\"true\"><\/span>\r\n    <\/button>\r\n  <\/nav>\r\n  <nav class=\"nav-drawer\" id=\"nav-drawer\" aria-label=\"Mobile navigation\" aria-hidden=\"true\">\r\n    <a href=\"#services\">Services<\/a>\r\n    <a href=\"#process\">Process<\/a>\r\n    <a href=\"#why\">Why Us<\/a>\r\n    <a href=\"#reviews\">Reviews<\/a>\r\n    <a href=\"#faq\">FAQ<\/a>\r\n    <div class=\"nd-cta\">\r\n      <a href=\"#contact\" class=\"btn btn-primary btn-full\">\r\n        <span class=\"shine\" aria-hidden=\"true\"><\/span>\r\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" aria-hidden=\"true\"><path d=\"M5 12h14M12 5l7 7-7 7\"\/><\/svg>\r\n        Get Free Consultation\r\n      <\/a>\r\n    <\/div>\r\n  <\/nav>\r\n<\/header>\r\n\r\n<main id=\"main\">\r\n\r\n<!-- \u2550\u2550 HERO \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<section id=\"hero\" aria-labelledby=\"hero-h1\">\r\n  <div class=\"hero-bg-grid\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"hero-blob hb1\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"hero-blob hb2\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"hero-blob hb3\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"hero-wrap\">\r\n    <div class=\"hero-content\">\r\n      <div class=\"hero-live-pill\" aria-label=\"Accepting new clients\">\r\n        <span class=\"hlp-dot\" aria-hidden=\"true\"><\/span>\r\n        Now Accepting New Projects\r\n      <\/div>\r\n      <h1 class=\"hero-h1\" id=\"hero-h1\">\r\n        Your Team Deserves a<br>\r\n        <em class=\"gt-blue\">Smarter Knowledge<\/em><br>\r\n        Platform\r\n      <\/h1>\r\n      <p class=\"hero-sub\">We design, build, and maintain <strong>MediaWiki systems<\/strong> that put the right information in front of the right people \u2014 every time. One source of truth. No chaos. No per-seat pricing.<\/p>\r\n      <div class=\"hero-actions\">\r\n        <a href=\"#contact\" class=\"btn btn-primary btn-lg\">\r\n          <span class=\"shine\" aria-hidden=\"true\"><\/span>\r\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" aria-hidden=\"true\"><path d=\"M5 12h14M12 5l7 7-7 7\"\/><\/svg>\r\n          Get Your Free Consultation\r\n        <\/a>\r\n        <a href=\"#services\" class=\"btn btn-ghost btn-lg\">\r\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><path d=\"M10 8l4 4-4 4\"\/><\/svg>\r\n          See What We Build\r\n        <\/a>\r\n      <\/div>\r\n      <div class=\"hero-social-proof\">\r\n        <div class=\"hsp-faces\" aria-hidden=\"true\">\r\n          <div class=\"hsp-face\" style=\"background:linear-gradient(135deg,#1d4ed8,#7c3aed)\">JM<\/div>\r\n          <div class=\"hsp-face\" style=\"background:linear-gradient(135deg,#7c3aed,#ec4899)\">SR<\/div>\r\n          <div class=\"hsp-face\" style=\"background:linear-gradient(135deg,#06b6d4,#10b981)\">AK<\/div>\r\n          <div class=\"hsp-face\" style=\"background:linear-gradient(135deg,#f59e0b,#ef4444)\">TL<\/div>\r\n        <\/div>\r\n        <div class=\"hsp-info\">\r\n          <span class=\"hsp-stars\" aria-label=\"5 out of 5 stars\">\u2605\u2605\u2605\u2605\u2605<\/span>\r\n          <strong>4.9<\/strong> avg \u00b7 <strong>200+<\/strong> wikis \u00b7 <strong>30+<\/strong> countries\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Hero Visual (desktop) -->\r\n    <div class=\"hero-visual\" aria-label=\"SolidWiki platform preview\" role=\"img\">\r\n      <div class=\"hv-orbit\" aria-hidden=\"true\">\r\n        <div class=\"hv-ring r1\"><\/div>\r\n        <div class=\"hv-ring r2\"><\/div>\r\n        <div class=\"hv-orb orb1\"><\/div>\r\n        <div class=\"hv-orb orb2\"><\/div>\r\n        <div class=\"hv-orb orb3\"><\/div>\r\n      <\/div>\r\n      <div class=\"hv-card-main\" id=\"hv-card\">\r\n        <div class=\"hvc-hd\">\r\n          <div class=\"hvc-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"3\" width=\"7\" height=\"7\"\/><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\"\/><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\"\/><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\"\/><\/svg><\/div>\r\n          <div><div class=\"hvc-title\">Wiki Dashboard<\/div><div class=\"hvc-sub\">solidwiki.com<\/div><\/div>\r\n        <\/div>\r\n        <div class=\"hvc-stats\">\r\n          <div class=\"hvc-stat\"><div class=\"hvc-num gt-blue\">14k<\/div><div class=\"hvc-lbl\">Articles<\/div><div class=\"hvc-bar\"><div class=\"hvc-fill\" style=\"width:82%\"><\/div><\/div><\/div>\r\n          <div class=\"hvc-stat\"><div class=\"hvc-num gt-green\">99%<\/div><div class=\"hvc-lbl\">Uptime<\/div><div class=\"hvc-bar\"><div class=\"hvc-fill\" style=\"width:99%;background:linear-gradient(90deg,#22c55e,#22d3ee)\"><\/div><\/div><\/div>\r\n          <div class=\"hvc-stat\"><div class=\"hvc-num gt-purple\">340<\/div><div class=\"hvc-lbl\">Users<\/div><div class=\"hvc-bar\"><div class=\"hvc-fill\" style=\"width:60%;background:linear-gradient(90deg,#a78bfa,#ec4899)\"><\/div><\/div><\/div>\r\n        <\/div>\r\n        <div class=\"hvc-tags\">\r\n          <span class=\"hvc-tag\">MediaWiki<\/span><span class=\"hvc-tag\">Custom Skin<\/span><span class=\"hvc-tag\">Extensions<\/span><span class=\"hvc-tag\">SEO-Ready<\/span>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"hv-float hvf1\" aria-hidden=\"true\">\r\n        <div class=\"hvf-title\">Platform Status<\/div>\r\n        <div class=\"hvf-row\"><span class=\"hvf-dot\" style=\"background:#22c55e\"><\/span><span class=\"hvf-txt\">All systems operational<\/span><\/div>\r\n        <div class=\"hvf-row\"><span class=\"hvf-dot\" style=\"background:#a78bfa\"><\/span><span class=\"hvf-txt\">Last backup: 2 hrs ago<\/span><\/div>\r\n        <div class=\"hvf-row\"><span class=\"hvf-dot\" style=\"background:#f59e0b\"><\/span><span class=\"hvf-txt\">Update available<\/span><\/div>\r\n      <\/div>\r\n      <div class=\"hv-float hvf2\" aria-hidden=\"true\">\r\n        <div class=\"hvf-title\">Performance<\/div>\r\n        <div class=\"hvf-big gt-green\">99<\/div>\r\n        <div style=\"font-size:10px;color:var(--tx3);margin-bottom:6px\">Speed score<\/div>\r\n        <div class=\"hvc-bar\"><div class=\"hvc-fill\" style=\"width:99%;background:linear-gradient(90deg,#22c55e,#22d3ee)\"><\/div><\/div>\r\n      <\/div>\r\n      <div class=\"hv-pill hp1\" aria-hidden=\"true\"><span class=\"hp-dot\" style=\"background:#22c55e\"><\/span>99.95% uptime SLA<\/div>\r\n      <div class=\"hv-pill hp2\" aria-hidden=\"true\"><span class=\"hp-dot\" style=\"background:#60a5fa\"><\/span>Zero data loss<\/div>\r\n      <div class=\"hv-pill hp3\" aria-hidden=\"true\"><span class=\"hp-dot\" style=\"background:#a78bfa\"><\/span>Fixed-price proposals<\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- \u2550\u2550 STATS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<div id=\"stats\" role=\"region\" aria-label=\"Key statistics\">\r\n  <div class=\"stats-grid\">\r\n    <div class=\"stat-item fade-up\"><span class=\"stat-num\" data-count=\"200\">0<\/span><div class=\"stat-lbl\">Wiki Platforms Delivered<\/div><\/div>\r\n    <div class=\"stat-item fade-up\"><span class=\"stat-num\" data-count=\"30\">0<\/span><div class=\"stat-lbl\">Countries Served<\/div><\/div>\r\n    <div class=\"stat-item fade-up\"><span class=\"stat-num\" aria-label=\"4.9 star rating\">4.9\u2605<\/span><div class=\"stat-lbl\">Average Client Rating<\/div><\/div>\r\n    <div class=\"stat-item fade-up\"><span class=\"stat-num\" aria-label=\"98 percent client retention\">98%<\/span><div class=\"stat-lbl\">Client Retention Rate<\/div><\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- \u2550\u2550 PROBLEM \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<section id=\"problem\" class=\"alt\" aria-labelledby=\"prob-h2\">\r\n  <div class=\"container\">\r\n    <div class=\"prob-wrap\">\r\n      <div class=\"fade-left\">\r\n        <span class=\"badge badge-red\">The Problem<\/span>\r\n        <h2 class=\"section-title\" id=\"prob-h2\" style=\"margin-top:12px\">Knowledge Is Scattered.<br>Your Team Is <span class=\"gt-red\">Suffering.<\/span><\/h2>\r\n        <p class=\"section-sub\">Every team hits a wall. Growth stops feeling exciting and starts feeling chaotic. Information lives in five tools. The people who built everything remember it all \u2014 until they leave.<\/p>\r\n        <p class=\"section-sub\" style=\"margin-top:12px;max-width:520px\">Most teams quietly lose <strong style=\"color:var(--tx)\">20% of their working hours<\/strong> every week hunting for things that already exist somewhere.<\/p>\r\n        <div class=\"prob-metrics\">\r\n          <div class=\"pm fade-up\"><div class=\"pm-num gt-red\">20%<\/div><div class=\"pm-lbl\">of hours lost searching<\/div><\/div>\r\n          <div class=\"pm fade-up\"><div class=\"pm-num gt-red\">3\u00d7<\/div><div class=\"pm-lbl\">longer onboarding without docs<\/div><\/div>\r\n          <div class=\"pm fade-up\"><div class=\"pm-num gt-red\">$25k<\/div><div class=\"pm-lbl\">avg loss per 10 employees\/yr<\/div><\/div>\r\n        <\/div>\r\n        <div class=\"sol-bridge fade-up\">\r\n          <p style=\"font-size:13px;color:var(--tx3);margin-bottom:2px\">There is a better way.<\/p>\r\n          <span class=\"sb-arrow\" aria-hidden=\"true\">\u2193<\/span>\r\n          <strong style=\"font-size:1rem;color:var(--blue4);display:block;margin-bottom:6px\">SolidWiki fixes this.<\/strong>\r\n          <span class=\"sb-txt\">We build a single, organised, searchable wiki your whole team actually uses \u2014 not another tool collecting digital dust.<\/span>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"pcards\" id=\"pcards\" role=\"list\">\r\n        <div class=\"pcard\" role=\"listitem\">\r\n          <div class=\"pcard-ico\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"\/><line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"\/><\/svg><\/div>\r\n          <div><div class=\"pcard-title\">Docs scattered everywhere<\/div><div class=\"pcard-txt\">Google Drive, Notion, email threads, Slack \u2014 your knowledge is nowhere and everywhere at once. Nobody knows where the source of truth actually is.<\/div><\/div>\r\n        <\/div>\r\n        <div class=\"pcard\" role=\"listitem\">\r\n          <div class=\"pcard-ico\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg><\/div>\r\n          <div><div class=\"pcard-title\">Hours wasted every single week<\/div><div class=\"pcard-txt\">Your engineers, marketers, and support team spend 20% of their working hours searching for information that should take 10 seconds to find.<\/div><\/div>\r\n        <\/div>\r\n        <div class=\"pcard\" role=\"listitem\">\r\n          <div class=\"pcard-ico\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 00-3-3.87\"\/><path d=\"M16 3.13a4 4 0 010 7.75\"\/><\/svg><\/div>\r\n          <div><div class=\"pcard-title\">Onboarding new hires takes forever<\/div><div class=\"pcard-txt\">New team members spend weeks getting up to speed because nothing is documented consistently. Your senior people become full-time tour guides.<\/div><\/div>\r\n        <\/div>\r\n        <div class=\"pcard\" role=\"listitem\">\r\n          <div class=\"pcard-ico\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"\/><path d=\"M7 11V7a5 5 0 0110 0v4\"\/><\/svg><\/div>\r\n          <div><div class=\"pcard-title\">Critical knowledge walks out the door<\/div><div class=\"pcard-txt\">When a key person leaves, everything they knew leaves with them. No docs means starting from scratch and hoping someone remembers something.<\/div><\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- \u2550\u2550 SERVICES \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<section id=\"services\" aria-labelledby=\"svc-h2\">\r\n  <div class=\"container\">\r\n    <div class=\"section-header centered fade-up\">\r\n      <span class=\"badge badge-blue\">Our Services<\/span>\r\n      <h2 class=\"section-title\" id=\"svc-h2\" style=\"margin-top:12px\">Everything Your Wiki Needs,<br>Under One Roof<\/h2>\r\n      <p class=\"section-sub\">We do one thing exceptionally well: MediaWiki. Every edge case covered. Every project handled with care.<\/p>\r\n    <\/div>\r\n    <div class=\"svc-tabs\" role=\"tablist\" aria-label=\"Service categories\">\r\n      <button class=\"stab on\" role=\"tab\" aria-selected=\"true\" onclick=\"switchTab(0,this)\">Setup &amp; Configuration<\/button>\r\n      <button class=\"stab\" role=\"tab\" aria-selected=\"false\" onclick=\"switchTab(1,this)\">Design &amp; Branding<\/button>\r\n      <button class=\"stab\" role=\"tab\" aria-selected=\"false\" onclick=\"switchTab(2,this)\">Wiki Migration<\/button>\r\n      <button class=\"stab\" role=\"tab\" aria-selected=\"false\" onclick=\"switchTab(3,this)\">Support &amp; Maintenance<\/button>\r\n    <\/div>\r\n\r\n    <!-- Tab 0: Setup -->\r\n    <div id=\"sp0\" class=\"stab-panel on\" role=\"tabpanel\">\r\n      <div class=\"scard\" style=\"--mx:50%;--my:50%\">\r\n        <div class=\"scard-top\" style=\"background:linear-gradient(90deg,#1d4ed8,#3b82f6)\"><\/div>\r\n        <div class=\"scard-ico\" style=\"background:linear-gradient(135deg,rgba(37,99,235,.26),rgba(37,99,235,.07));box-shadow:0 0 20px rgba(37,99,235,.18)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#60a5fa\" stroke-width=\"2\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"3\"\/><path d=\"M19.07 4.93a10 10 0 010 14.14M4.93 4.93a10 10 0 000 14.14\"\/><\/svg><\/div>\r\n        <div class=\"scard-title\">Custom MediaWiki Setup &amp; Server Configuration<\/div>\r\n        <div class=\"scard-desc\">Full end-to-end MediaWiki installation on your VPS or dedicated server. SSL, firewall hardening, Redis caching, and complete admin documentation handed over at launch.<\/div>\r\n        <div class=\"chips\"><span class=\"chip chip-b\">MediaWiki Install<\/span><span class=\"chip chip-b\">SSL &amp; Firewall<\/span><span class=\"chip chip-b\">Redis Cache<\/span><span class=\"chip chip-b\">Admin Docs<\/span><\/div>\r\n      <\/div>\r\n      <div class=\"scard detail\" style=\"--mx:50%;--my:50%\">\r\n        <div class=\"scard-top\" style=\"background:linear-gradient(90deg,#1d4ed8,#3b82f6)\"><\/div>\r\n        <div class=\"detail-label\">What's included<\/div>\r\n        <div class=\"detail-row\"><div class=\"detail-ico\" style=\"background:rgba(37,99,235,.14)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#60a5fa\" stroke-width=\"2\" aria-hidden=\"true\"><rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\"\/><line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"\/><line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"\/><\/svg><\/div><span class=\"detail-txt\">VPS or dedicated server configuration<\/span><\/div>\r\n        <div class=\"detail-row\"><div class=\"detail-ico\" style=\"background:rgba(37,99,235,.14)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#60a5fa\" stroke-width=\"2\" aria-hidden=\"true\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0110 0v4\"\/><\/svg><\/div><span class=\"detail-txt\">SSL certificates, firewall &amp; security hardening<\/span><\/div>\r\n        <div class=\"detail-row\"><div class=\"detail-ico\" style=\"background:rgba(37,99,235,.14)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#60a5fa\" stroke-width=\"2\" aria-hidden=\"true\"><polyline points=\"13 2 13 9 20 9\"\/><polygon points=\"2 12 5 22 12 17 19 22 22 12 12 2\"\/><\/svg><\/div><span class=\"detail-txt\">Redis caching &amp; CDN for fast page loads<\/span><\/div>\r\n        <div class=\"detail-row\"><div class=\"detail-ico\" style=\"background:rgba(37,99,235,.14)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#60a5fa\" stroke-width=\"2\" aria-hidden=\"true\"><polyline points=\"20 7 4 7\"\/><polyline points=\"20 12 4 12\"\/><polyline points=\"20 17 4 17\"\/><\/svg><\/div><span class=\"detail-txt\">Automated daily backups \u2014 30-day retention<\/span><\/div>\r\n        <div class=\"detail-row\"><div class=\"detail-ico\" style=\"background:rgba(37,99,235,.14)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#60a5fa\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><\/svg><\/div><span class=\"detail-txt\">Complete admin documentation at handover<\/span><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Tab 1: Design -->\r\n    <div id=\"sp1\" class=\"stab-panel\" role=\"tabpanel\">\r\n      <div class=\"scard\" style=\"--mx:50%;--my:50%\">\r\n        <div class=\"scard-top\" style=\"background:linear-gradient(90deg,#7c3aed,#a78bfa)\"><\/div>\r\n        <div class=\"scard-ico\" style=\"background:linear-gradient(135deg,rgba(124,58,237,.26),rgba(124,58,237,.07));box-shadow:0 0 20px rgba(124,58,237,.18)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#a78bfa\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"M12 20h9\"\/><path d=\"M16.5 3.5a2.121 2.121 0 013 3L7 19l-4 1 1-4L16.5 3.5z\"\/><\/svg><\/div>\r\n        <div class=\"scard-title\">Wiki Design, Branding &amp; Extension Customization<\/div>\r\n        <div class=\"scard-desc\">Custom skins matched to your brand identity, extension configuration, SSO and Slack integrations, user roles, and mobile-responsive design baked in from day one.<\/div>\r\n        <div class=\"chips\"><span class=\"chip chip-p\">Custom Skins<\/span><span class=\"chip chip-p\">SSO &amp; Slack<\/span><span class=\"chip chip-p\">Extensions<\/span><span class=\"chip chip-p\">Mobile-Ready<\/span><\/div>\r\n      <\/div>\r\n      <div class=\"scard detail\" style=\"--mx:50%;--my:50%\">\r\n        <div class=\"scard-top\" style=\"background:linear-gradient(90deg,#7c3aed,#a78bfa)\"><\/div>\r\n        <div class=\"detail-label\">What's included<\/div>\r\n        <div class=\"detail-row\"><div class=\"detail-ico\" style=\"background:rgba(124,58,237,.14)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#a78bfa\" stroke-width=\"2\" aria-hidden=\"true\"><circle cx=\"13.5\" cy=\"6.5\" r=\"2.5\"\/><circle cx=\"17.5\" cy=\"10.5\" r=\"2.5\"\/><circle cx=\"8.5\" cy=\"7.5\" r=\"2.5\"\/><circle cx=\"6.5\" cy=\"12.5\" r=\"2.5\"\/><\/svg><\/div><span class=\"detail-txt\">Brand-matched custom skin &amp; theme<\/span><\/div>\r\n        <div class=\"detail-row\"><div class=\"detail-ico\" style=\"background:rgba(124,58,237,.14)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#a78bfa\" stroke-width=\"2\" aria-hidden=\"true\"><polyline points=\"16 18 22 12 16 6\"\/><polyline points=\"8 6 2 12 8 18\"\/><\/svg><\/div><span class=\"detail-txt\">Extension installation &amp; configuration<\/span><\/div>\r\n        <div class=\"detail-row\"><div class=\"detail-ico\" style=\"background:rgba(124,58,237,.14)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#a78bfa\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"M10 13a5 5 0 007.54.54l3-3a5 5 0 00-7.07-7.07l-1.72 1.71\"\/><path d=\"M14 11a5 5 0 00-7.54-.54l-3 3a5 5 0 007.07 7.07l1.71-1.71\"\/><\/svg><\/div><span class=\"detail-txt\">Slack, SSO &amp; third-party integrations<\/span><\/div>\r\n        <div class=\"detail-row\"><div class=\"detail-ico\" style=\"background:rgba(124,58,237,.14)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#a78bfa\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><\/svg><\/div><span class=\"detail-txt\">User roles &amp; permissions setup<\/span><\/div>\r\n        <div class=\"detail-row\"><div class=\"detail-ico\" style=\"background:rgba(124,58,237,.14)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#a78bfa\" stroke-width=\"2\" aria-hidden=\"true\"><rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\" ry=\"2\"\/><line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\"\/><\/svg><\/div><span class=\"detail-txt\">Mobile-responsive design across all devices<\/span><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Tab 2: Migration -->\r\n    <div id=\"sp2\" class=\"stab-panel\" role=\"tabpanel\">\r\n      <div class=\"scard\" style=\"--mx:50%;--my:50%\">\r\n        <div class=\"scard-top\" style=\"background:linear-gradient(90deg,#06b6d4,#22d3ee)\"><\/div>\r\n        <div class=\"scard-ico\" style=\"background:linear-gradient(135deg,rgba(6,182,212,.26),rgba(6,182,212,.07));box-shadow:0 0 20px rgba(6,182,212,.18)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#22d3ee\" stroke-width=\"2\" aria-hidden=\"true\"><polyline points=\"1 4 1 10 7 10\"\/><path d=\"M3.51 15a9 9 0 102.13-9.36L1 10\"\/><\/svg><\/div>\r\n        <div class=\"scard-title\">Confluence, Notion &amp; WordPress Wiki Migration<\/div>\r\n        <div class=\"scard-desc\">We migrate structured content from Confluence, Notion, WordPress, Google Docs, and SharePoint. Zero data loss isn't a marketing phrase \u2014 it's our technical standard on every single migration we do.<\/div>\r\n        <div class=\"chips\"><span class=\"chip chip-c\">Confluence<\/span><span class=\"chip chip-c\">Notion<\/span><span class=\"chip chip-c\">WordPress<\/span><span class=\"chip chip-c\">Zero Data Loss<\/span><\/div>\r\n      <\/div>\r\n      <div class=\"scard detail\" style=\"--mx:50%;--my:50%\">\r\n        <div class=\"scard-top\" style=\"background:linear-gradient(90deg,#06b6d4,#22d3ee)\"><\/div>\r\n        <div class=\"detail-label\">Migration sources we support<\/div>\r\n        <div style=\"display:grid;grid-template-columns:1fr 1fr;gap:8px\">\r\n          <div class=\"detail-row\" style=\"background:rgba(255,255,255,.03);border:1px solid var(--bd);border-radius:9px;padding:8px 10px;margin:0\"><div class=\"detail-ico\" style=\"background:rgba(6,182,212,.12)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#22d3ee\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z\"\/><\/svg><\/div><span class=\"detail-txt\">Confluence<\/span><\/div>\r\n          <div class=\"detail-row\" style=\"background:rgba(255,255,255,.03);border:1px solid var(--bd);border-radius:9px;padding:8px 10px;margin:0\"><div class=\"detail-ico\" style=\"background:rgba(6,182,212,.12)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#22d3ee\" stroke-width=\"2\" aria-hidden=\"true\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\/><\/svg><\/div><span class=\"detail-txt\">Notion<\/span><\/div>\r\n          <div class=\"detail-row\" style=\"background:rgba(255,255,255,.03);border:1px solid var(--bd);border-radius:9px;padding:8px 10px;margin:0\"><div class=\"detail-ico\" style=\"background:rgba(6,182,212,.12)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#22d3ee\" stroke-width=\"2\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><\/svg><\/div><span class=\"detail-txt\">WordPress<\/span><\/div>\r\n          <div class=\"detail-row\" style=\"background:rgba(255,255,255,.03);border:1px solid var(--bd);border-radius:9px;padding:8px 10px;margin:0\"><div class=\"detail-ico\" style=\"background:rgba(6,182,212,.12)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#22d3ee\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"M22 19a2 2 0 01-2 2H4a2 2 0 01-2-2V5a2 2 0 012-2h5l2 3h9a2 2 0 012 2z\"\/><\/svg><\/div><span class=\"detail-txt\">Google Docs<\/span><\/div>\r\n          <div class=\"detail-row\" style=\"background:rgba(255,255,255,.03);border:1px solid var(--bd);border-radius:9px;padding:8px 10px;margin:0\"><div class=\"detail-ico\" style=\"background:rgba(6,182,212,.12)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#22d3ee\" stroke-width=\"2\" aria-hidden=\"true\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\/><path d=\"M3 9h18M9 21V9\"\/><\/svg><\/div><span class=\"detail-txt\">SharePoint<\/span><\/div>\r\n          <div class=\"detail-row\" style=\"background:rgba(255,255,255,.03);border:1px solid var(--bd);border-radius:9px;padding:8px 10px;margin:0\"><div class=\"detail-ico\" style=\"background:rgba(6,182,212,.12)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#22d3ee\" stroke-width=\"2\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"2\"\/><circle cx=\"12\" cy=\"2\" r=\"1\"\/><circle cx=\"12\" cy=\"22\" r=\"1\"\/><\/svg><\/div><span class=\"detail-txt\">Any Platform<\/span><\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Tab 3: Support -->\r\n    <div id=\"sp3\" class=\"stab-panel\" role=\"tabpanel\">\r\n      <div class=\"scard\" style=\"--mx:50%;--my:50%\">\r\n        <div class=\"scard-top\" style=\"background:linear-gradient(90deg,#f59e0b,#fbbf24)\"><\/div>\r\n        <div class=\"scard-ico\" style=\"background:linear-gradient(135deg,rgba(245,158,11,.26),rgba(245,158,11,.07));box-shadow:0 0 20px rgba(245,158,11,.18)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fbbf24\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg><\/div>\r\n        <div class=\"scard-title\">Ongoing MediaWiki Support &amp; Maintenance Plans<\/div>\r\n        <div class=\"scard-desc\">Daily backups, MediaWiki core and extension updates, 24\/7 uptime monitoring, and priority same-day response. Think of us as a long-term partner, not a one-time contractor.<\/div>\r\n        <div class=\"chips\"><span class=\"chip chip-y\">Daily Backups<\/span><span class=\"chip chip-y\">Core Updates<\/span><span class=\"chip chip-y\">99.95% SLA<\/span><span class=\"chip chip-y\">Same-Day Response<\/span><\/div>\r\n      <\/div>\r\n      <div class=\"scard detail\" style=\"--mx:50%;--my:50%\">\r\n        <div class=\"scard-top\" style=\"background:linear-gradient(90deg,#f59e0b,#fbbf24)\"><\/div>\r\n        <div class=\"detail-label\">Support plan includes<\/div>\r\n        <div class=\"detail-row\"><div class=\"detail-ico\" style=\"background:rgba(245,158,11,.14)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fbbf24\" stroke-width=\"2\" aria-hidden=\"true\"><polyline points=\"20 7 4 7\"\/><polyline points=\"20 12 4 12\"\/><polyline points=\"20 17 4 17\"\/><\/svg><\/div><span class=\"detail-txt\">Daily automated backups \u2014 30-day retention<\/span><\/div>\r\n        <div class=\"detail-row\"><div class=\"detail-ico\" style=\"background:rgba(245,158,11,.14)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fbbf24\" stroke-width=\"2\" aria-hidden=\"true\"><polyline points=\"1 4 1 10 7 10\"\/><path d=\"M3.51 15a9 9 0 102.13-9.36L1 10\"\/><\/svg><\/div><span class=\"detail-txt\">MediaWiki core &amp; extension updates<\/span><\/div>\r\n        <div class=\"detail-row\"><div class=\"detail-ico\" style=\"background:rgba(245,158,11,.14)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fbbf24\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"M22 12h-4l-3 9L9 3l-3 9H2\"\/><\/svg><\/div><span class=\"detail-txt\">24\/7 uptime monitoring \u2014 99.95% SLA<\/span><\/div>\r\n        <div class=\"detail-row\"><div class=\"detail-ico\" style=\"background:rgba(245,158,11,.14)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fbbf24\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg><\/div><span class=\"detail-txt\">Priority same-day response time<\/span><\/div>\r\n        <div class=\"detail-row\"><div class=\"detail-ico\" style=\"background:rgba(245,158,11,.14)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fbbf24\" stroke-width=\"2\" aria-hidden=\"true\"><rect x=\"1\" y=\"4\" width=\"22\" height=\"16\" rx=\"2\" ry=\"2\"\/><line x1=\"1\" y1=\"10\" x2=\"23\" y2=\"10\"\/><\/svg><\/div><span class=\"detail-txt\">Monthly performance &amp; security reports<\/span><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Services Overview -->\r\n    <div class=\"svc-overview\" aria-label=\"All services at a glance\">\r\n      <div class=\"sov fade-up\"><div class=\"sov-ico\" style=\"background:linear-gradient(135deg,rgba(37,99,235,.22),rgba(37,99,235,.06))\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#60a5fa\" stroke-width=\"2\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"3\"\/><path d=\"M19.07 4.93a10 10 0 010 14.14M4.93 4.93a10 10 0 000 14.14\"\/><\/svg><\/div><div class=\"sov-title\">Setup &amp; Config<\/div><div class=\"sov-txt\">Full install, Redis cache &amp; security.<\/div><\/div>\r\n      <div class=\"sov fade-up\"><div class=\"sov-ico\" style=\"background:linear-gradient(135deg,rgba(124,58,237,.22),rgba(124,58,237,.06))\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#a78bfa\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"M12 20h9\"\/><path d=\"M16.5 3.5a2.121 2.121 0 013 3L7 19l-4 1 1-4L16.5 3.5z\"\/><\/svg><\/div><div class=\"sov-title\">Design &amp; Branding<\/div><div class=\"sov-txt\">Custom skins, SSO &amp; mobile-ready.<\/div><\/div>\r\n      <div class=\"sov fade-up\"><div class=\"sov-ico\" style=\"background:linear-gradient(135deg,rgba(6,182,212,.22),rgba(6,182,212,.06))\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#22d3ee\" stroke-width=\"2\" aria-hidden=\"true\"><polyline points=\"1 4 1 10 7 10\"\/><path d=\"M3.51 15a9 9 0 102.13-9.36L1 10\"\/><\/svg><\/div><div class=\"sov-title\">Wiki Migration<\/div><div class=\"sov-txt\">Confluence, Notion \u2014 zero data loss.<\/div><\/div>\r\n      <div class=\"sov fade-up\"><div class=\"sov-ico\" style=\"background:linear-gradient(135deg,rgba(245,158,11,.22),rgba(245,158,11,.06))\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fbbf24\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg><\/div><div class=\"sov-title\">Ongoing Support<\/div><div class=\"sov-txt\">Daily backups &amp; 99.95% uptime SLA.<\/div><\/div>\r\n    <\/div>\r\n\r\n    <!-- Pricing -->\r\n    <div class=\"pricing-row fade-up\">\r\n      <div class=\"pr-title\">Transparent Pricing \u2014 No Surprises<\/div>\r\n      <div class=\"pr-sub\">Fixed one-time project costs. No hidden fees. Here's a realistic guide:<\/div>\r\n      <div class=\"pr-grid\">\r\n        <div class=\"pr-item\"><div class=\"pr-val\">$3k \u2013 $6k<\/div><div class=\"pr-lbl\">New Wiki Setup<\/div><\/div>\r\n        <div class=\"pr-item\"><div class=\"pr-val\">$2k \u2013 $5k<\/div><div class=\"pr-lbl\">Customisation<\/div><\/div>\r\n        <div class=\"pr-item\"><div class=\"pr-val\">$4k \u2013 $12k<\/div><div class=\"pr-lbl\">Full Migration<\/div><\/div>\r\n        <div class=\"pr-item\"><div class=\"pr-val\">From $500\/mo<\/div><div class=\"pr-lbl\">Ongoing Support<\/div><\/div>\r\n      <\/div>\r\n      <a href=\"#contact\" class=\"btn btn-primary\"><span class=\"shine\" aria-hidden=\"true\"><\/span>Get a Fixed-Price Proposal<\/a>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- \u2550\u2550 PROCESS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<section id=\"process\" class=\"alt\" aria-labelledby=\"proc-h2\">\r\n  <div class=\"container\">\r\n    <div class=\"section-header centered fade-up\">\r\n      <span class=\"badge badge-blue\">The Process<\/span>\r\n      <h2 class=\"section-title\" id=\"proc-h2\" style=\"margin-top:12px\">From Chaos to Clarity \u2014<br>Here's Exactly How We Do It<\/h2>\r\n      <p class=\"section-sub\">Predictable process. You always know what's happening, what comes next, and how long it takes. No surprises, ever.<\/p>\r\n    <\/div>\r\n    <div class=\"proc-wrap\">\r\n      <div class=\"proc-steps\" id=\"proc-steps\">\r\n        <div class=\"proc-step fade-left\" data-step=\"0\">\r\n          <div class=\"step-num\" aria-hidden=\"true\">1<\/div>\r\n          <div class=\"step-body\">\r\n            <h3 class=\"step-title\">Discovery Call \u2014 We Learn Your Team's Needs First<\/h3>\r\n            <p class=\"step-desc\">Before we recommend anything, we listen. A 30-minute call to understand your goals, team size, existing content, and what a successful wiki actually looks like for your organisation.<\/p>\r\n            <div class=\"step-tags\"><span class=\"step-tag\">Free call<\/span><span class=\"step-tag\">No commitment<\/span><span class=\"step-tag\">30 minutes<\/span><\/div>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"proc-step fade-left\" data-step=\"1\">\r\n          <div class=\"step-num\" aria-hidden=\"true\">2<\/div>\r\n          <div class=\"step-body\">\r\n            <h3 class=\"step-title\">Clear Proposal with Fixed Price &amp; Timeline<\/h3>\r\n            <p class=\"step-desc\">Within two business days you receive a detailed written proposal. Full scope, fixed price, realistic timeline, every deliverable listed by name. You know exactly what you're getting before anything starts.<\/p>\r\n            <div class=\"step-tags\"><span class=\"step-tag\">Fixed price<\/span><span class=\"step-tag\">Clear timeline<\/span><span class=\"step-tag\">Every deliverable named<\/span><\/div>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"proc-step fade-left\" data-step=\"2\">\r\n          <div class=\"step-num\" aria-hidden=\"true\">3<\/div>\r\n          <div class=\"step-body\">\r\n            <h3 class=\"step-title\">Build Phase \u2014 Weekly Demos, Your Feedback<\/h3>\r\n            <p class=\"step-desc\">We build in structured sprints with weekly demo sessions. You review real progress, give direct feedback, and we refine until every detail is right. Nothing ships until you approve it.<\/p>\r\n            <div class=\"step-tags\"><span class=\"step-tag\">Weekly demos<\/span><span class=\"step-tag\">Your approval<\/span><span class=\"step-tag\">Structured sprints<\/span><\/div>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"proc-step fade-left\" data-step=\"3\">\r\n          <div class=\"step-num\" aria-hidden=\"true\">4<\/div>\r\n          <div class=\"step-body\">\r\n            <h3 class=\"step-title\">Launch, Team Training &amp; 30-Day Support Window<\/h3>\r\n            <p class=\"step-desc\">On launch day, we go live together. Full team training so your people can manage content from day one. Admin docs handed over in full. We stay available for 30 days post-launch.<\/p>\r\n            <div class=\"step-tags\"><span class=\"step-tag\">Team training<\/span><span class=\"step-tag\">Docs handover<\/span><span class=\"step-tag\">30-day window<\/span><\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"proc-panel\" aria-hidden=\"true\">\r\n        <div class=\"proc-tracker\" id=\"proc-tracker\" role=\"tablist\">\r\n          <button class=\"ptrk-btn on\" onclick=\"setProcCard(0)\" role=\"tab\" aria-selected=\"true\">Step 1<\/button>\r\n          <button class=\"ptrk-btn\" onclick=\"setProcCard(1)\" role=\"tab\" aria-selected=\"false\">Step 2<\/button>\r\n          <button class=\"ptrk-btn\" onclick=\"setProcCard(2)\" role=\"tab\" aria-selected=\"false\">Step 3<\/button>\r\n          <button class=\"ptrk-btn\" onclick=\"setProcCard(3)\" role=\"tab\" aria-selected=\"false\">Step 4<\/button>\r\n        <\/div>\r\n        <div class=\"pcard-outer\">\r\n          <!-- Process Card 1 -->\r\n          <div class=\"pc on\" id=\"pc0\" style=\"--pc1:#60a5fa;--pc2:#22d3ee\">\r\n            <div class=\"pc-inner\">\r\n              <div class=\"pc-accent\"><\/div>\r\n              <div class=\"pc-head\"><div class=\"pc-stepnum\">01<\/div><div class=\"pc-meta\"><div class=\"pc-label\">Discovery<\/div><div class=\"pc-title\">We Learn Your Team's Needs First<\/div><\/div><\/div>\r\n              <div class=\"pc-body\">A focused 30-minute call \u2014 no agenda other than understanding your goals, team size, existing content, and what success looks like for you specifically.<\/div>\r\n              <div class=\"pc-features\">\r\n                <div class=\"pc-feat\"><div class=\"pc-feat-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#60a5fa\" stroke-width=\"2\"><path d=\"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07A19.5 19.5 0 013.07 9.8 19.79 19.79 0 010 1.18 2 2 0 012 0h3a2 2 0 012 1.72c.127.96.361 1.903.7 2.81a2 2 0 01-.45 2.11L6.09 7.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0122 14.92z\"\/><\/svg><\/div>Free 30-minute discovery call<\/div>\r\n                <div class=\"pc-feat\"><div class=\"pc-feat-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#60a5fa\" stroke-width=\"2\"><path d=\"M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><\/svg><\/div>No commitment required<\/div>\r\n                <div class=\"pc-feat\"><div class=\"pc-feat-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#60a5fa\" stroke-width=\"2\"><polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"\/><\/svg><\/div>Tailored recommendation for your org<\/div>\r\n              <\/div>\r\n              <div class=\"pc-foot\"><div class=\"pc-prog-wrap\"><div class=\"pc-prog-lbl\">Project progress<\/div><div class=\"pc-prog-bar\"><div class=\"pc-prog-fill\" style=\"width:25%\"><\/div><\/div><\/div><div class=\"pc-step-tag\">25% Complete<\/div><\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <!-- Process Card 2 -->\r\n          <div class=\"pc\" id=\"pc1\" style=\"--pc1:#a78bfa;--pc2:#818cf8\">\r\n            <div class=\"pc-inner\">\r\n              <div class=\"pc-accent\"><\/div>\r\n              <div class=\"pc-head\"><div class=\"pc-stepnum\">02<\/div><div class=\"pc-meta\"><div class=\"pc-label\">Proposal<\/div><div class=\"pc-title\">Fixed Price &amp; Timeline in 48 Hours<\/div><\/div><\/div>\r\n              <div class=\"pc-body\">Within two business days you receive a detailed written proposal. Full scope, fixed price, realistic timeline \u2014 every deliverable listed by name. No guesswork, no surprises.<\/div>\r\n              <div class=\"pc-features\">\r\n                <div class=\"pc-feat\"><div class=\"pc-feat-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#a78bfa\" stroke-width=\"2\"><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"23\"\/><path d=\"M17 5H9.5a3.5 3.5 0 000 7h5a3.5 3.5 0 010 7H6\"\/><\/svg><\/div>Fixed price \u2014 no hidden fees<\/div>\r\n                <div class=\"pc-feat\"><div class=\"pc-feat-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#a78bfa\" stroke-width=\"2\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"\/><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"\/><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"\/><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"\/><\/svg><\/div>Clear delivery timeline included<\/div>\r\n                <div class=\"pc-feat\"><div class=\"pc-feat-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#a78bfa\" stroke-width=\"2\"><path d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><\/svg><\/div>Every deliverable named explicitly<\/div>\r\n              <\/div>\r\n              <div class=\"pc-foot\"><div class=\"pc-prog-wrap\"><div class=\"pc-prog-lbl\">Project progress<\/div><div class=\"pc-prog-bar\"><div class=\"pc-prog-fill\" style=\"width:50%\"><\/div><\/div><\/div><div class=\"pc-step-tag\">50% Complete<\/div><\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <!-- Process Card 3 -->\r\n          <div class=\"pc\" id=\"pc2\" style=\"--pc1:#22d3ee;--pc2:#34d399\">\r\n            <div class=\"pc-inner\">\r\n              <div class=\"pc-accent\"><\/div>\r\n              <div class=\"pc-head\"><div class=\"pc-stepnum\">03<\/div><div class=\"pc-meta\"><div class=\"pc-label\">Build Phase<\/div><div class=\"pc-title\">Weekly Demos, Real Progress<\/div><\/div><\/div>\r\n              <div class=\"pc-body\">Structured sprints with weekly live demo sessions. You review real progress, give direct feedback, and we refine. Nothing ships until you personally approve it.<\/div>\r\n              <div class=\"pc-features\">\r\n                <div class=\"pc-feat\"><div class=\"pc-feat-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#22d3ee\" stroke-width=\"2\"><rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\"\/><line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"\/><line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"\/><\/svg><\/div>Weekly live demo sessions<\/div>\r\n                <div class=\"pc-feat\"><div class=\"pc-feat-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#22d3ee\" stroke-width=\"2\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>Nothing ships without your approval<\/div>\r\n                <div class=\"pc-feat\"><div class=\"pc-feat-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#22d3ee\" stroke-width=\"2\"><polyline points=\"16 18 22 12 16 6\"\/><polyline points=\"8 6 2 12 8 18\"\/><\/svg><\/div>Structured 1-week sprints<\/div>\r\n              <\/div>\r\n              <div class=\"pc-foot\"><div class=\"pc-prog-wrap\"><div class=\"pc-prog-lbl\">Project progress<\/div><div class=\"pc-prog-bar\"><div class=\"pc-prog-fill\" style=\"width:75%\"><\/div><\/div><\/div><div class=\"pc-step-tag\">75% Complete<\/div><\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <!-- Process Card 4 -->\r\n          <div class=\"pc\" id=\"pc3\" style=\"--pc1:#f59e0b;--pc2:#fb923c\">\r\n            <div class=\"pc-inner\">\r\n              <div class=\"pc-accent\"><\/div>\r\n              <div class=\"pc-head\"><div class=\"pc-stepnum\">04<\/div><div class=\"pc-meta\"><div class=\"pc-label\">Launch<\/div><div class=\"pc-title\">Go Live with Full Team Training<\/div><\/div><\/div>\r\n              <div class=\"pc-body\">On launch day, we go live together. Full team training so your people can manage content from day one. Complete admin docs handed over. Available for 30 days post-launch.<\/div>\r\n              <div class=\"pc-features\">\r\n                <div class=\"pc-feat\"><div class=\"pc-feat-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#f59e0b\" stroke-width=\"2\"><path d=\"M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><\/svg><\/div>Full team training included<\/div>\r\n                <div class=\"pc-feat\"><div class=\"pc-feat-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#f59e0b\" stroke-width=\"2\"><path d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><\/svg><\/div>Complete admin docs handed over<\/div>\r\n                <div class=\"pc-feat\"><div class=\"pc-feat-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#f59e0b\" stroke-width=\"2\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg><\/div>30-day post-launch support window<\/div>\r\n              <\/div>\r\n              <div class=\"pc-foot\"><div class=\"pc-prog-wrap\"><div class=\"pc-prog-lbl\">Project progress<\/div><div class=\"pc-prog-bar\"><div class=\"pc-prog-fill\" style=\"width:100%\"><\/div><\/div><\/div><div class=\"pc-step-tag\">Live! \ud83d\ude80<\/div><\/div>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"proc-dots\" role=\"navigation\" aria-label=\"Process step navigation\">\r\n          <button class=\"pdot on\" onclick=\"setProcCard(0)\" aria-label=\"Step 1\"><\/button>\r\n          <button class=\"pdot\" onclick=\"setProcCard(1)\" aria-label=\"Step 2\"><\/button>\r\n          <button class=\"pdot\" onclick=\"setProcCard(2)\" aria-label=\"Step 3\"><\/button>\r\n          <button class=\"pdot\" onclick=\"setProcCard(3)\" aria-label=\"Step 4\"><\/button>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- \u2550\u2550 WHY US \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<section id=\"why\" aria-labelledby=\"why-h2\">\r\n  <div class=\"container\">\r\n    <div class=\"why-wrap\">\r\n      <div>\r\n        <span class=\"badge badge-blue fade-up\">Why SolidWiki<\/span>\r\n        <h2 class=\"section-title fade-up\" id=\"why-h2\" style=\"margin-top:12px\">Built on Depth,<br>Not Just Promises<\/h2>\r\n        <p class=\"section-sub fade-up\">Plenty of agencies touch MediaWiki. Very few focus on it exclusively, bring genuine depth to every build, and maintain the kind of relationships that last years \u2014 not projects.<\/p>\r\n        <div class=\"why-cards\">\r\n          <div class=\"wcard fade-left\">\r\n            <span class=\"wc-n\">01<\/span>\r\n            <div class=\"wc-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"M22 11.08V12a10 10 0 11-5.93-9.14\"\/><polyline points=\"22 4 12 14.01 9 11.01\"\/><\/svg><\/div>\r\n            <div class=\"wc-title\">Deep MediaWiki Expertise \u2014 Nothing Else<\/div>\r\n            <div class=\"wc-txt\">We focus exclusively on MediaWiki. Your project benefits from the deepest possible experience \u2014 not a generalist who learned it last month.<\/div>\r\n            <div class=\"wc-bar\"><\/div>\r\n          <\/div>\r\n          <div class=\"wcard fade-left\">\r\n            <span class=\"wc-n\">02<\/span>\r\n            <div class=\"wc-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0110 0v4\"\/><\/svg><\/div>\r\n            <div class=\"wc-title\">Full Ownership \u2014 No Vendor Lock-in<\/div>\r\n            <div class=\"wc-txt\">Your data, your server, your rules. MediaWiki is open source \u2014 you own everything and can walk away at any time. We have nothing to hide.<\/div>\r\n            <div class=\"wc-bar\"><\/div>\r\n          <\/div>\r\n          <div class=\"wcard fade-left\">\r\n            <span class=\"wc-n\">03<\/span>\r\n            <div class=\"wc-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg><\/div>\r\n            <div class=\"wc-title\">Security-First, 99.95% Uptime SLA<\/div>\r\n            <div class=\"wc-txt\">Every build is hardened from the start. Our plans include a formal 99.95% SLA with a 4-hour recovery time objective on every restore.<\/div>\r\n            <div class=\"wc-bar\"><\/div>\r\n          <\/div>\r\n          <div class=\"wcard fade-left\">\r\n            <span class=\"wc-n\">04<\/span>\r\n            <div class=\"wc-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"23\"\/><path d=\"M17 5H9.5a3.5 3.5 0 000 7h5a3.5 3.5 0 010 7H6\"\/><\/svg><\/div>\r\n            <div class=\"wc-title\">Lower Long-Term Cost<\/div>\r\n            <div class=\"wc-txt\">No per-seat pricing. No surprise fee increases year after year. MediaWiki is open source \u2014 your costs stay predictable no matter how much you grow.<\/div>\r\n            <div class=\"wc-bar\"><\/div>\r\n          <\/div>\r\n          <div class=\"wcard wide fade-up\">\r\n            <div class=\"wc-ico\" style=\"flex-shrink:0\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 00-3-3.87\"\/><path d=\"M16 3.13a4 4 0 010 7.75\"\/><\/svg><\/div>\r\n            <div>\r\n              <div class=\"wc-title\">98% Client Retention \u00b7 Wikipedia-Grade Scalability<\/div>\r\n              <div class=\"wc-txt\">We stay. 98% of clients continue beyond their first project because outcomes matter more than sales targets to us. MediaWiki scales from 10 articles to 10 million without a rebuild \u2014 the same engine that powers Wikipedia.<\/div>\r\n            <\/div>\r\n            <div class=\"wc-bar\"><\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"ring-scene fade-right\" aria-hidden=\"true\">\r\n        <div class=\"rring rr1\"><\/div><div class=\"rring rr2\"><\/div><div class=\"rring rr3\"><\/div><div class=\"rring rr4\"><\/div>\r\n        <div class=\"ring-core\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"\/><path d=\"M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10 15.3 15.3 0 014-10z\"\/><\/svg><\/div>\r\n        <div class=\"ring-node rn1\"><svg viewBox=\"0 0 24 24\" stroke-width=\"2\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0110 0v4\"\/><\/svg><div class=\"rn-tip\">Ownership<\/div><\/div>\r\n        <div class=\"ring-node rn2\"><svg viewBox=\"0 0 24 24\" stroke-width=\"2\"><polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"\/><\/svg><div class=\"rn-tip\">Scalable<\/div><\/div>\r\n        <div class=\"ring-node rn3\"><svg viewBox=\"0 0 24 24\" stroke-width=\"2\"><polyline points=\"16 18 22 12 16 6\"\/><polyline points=\"8 6 2 12 8 18\"\/><\/svg><div class=\"rn-tip\">Extensible<\/div><\/div>\r\n        <div class=\"ring-node rn4\"><svg viewBox=\"0 0 24 24\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"3\"\/><path d=\"M19.07 4.93a10 10 0 010 14.14M4.93 4.93a10 10 0 000 14.14\"\/><\/svg><div class=\"rn-tip\">Customizable<\/div><\/div>\r\n        <div class=\"ring-node rn5\"><svg viewBox=\"0 0 24 24\" stroke-width=\"2\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg><div class=\"rn-tip\">Secure<\/div><\/div>\r\n        <div class=\"ring-node rn6\"><svg viewBox=\"0 0 24 24\" stroke-width=\"2\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><\/svg><div class=\"rn-tip\">Full-text search<\/div><\/div>\r\n        <div class=\"ring-node rn7\"><svg viewBox=\"0 0 24 24\" stroke-width=\"2\"><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"23\"\/><path d=\"M17 5H9.5a3.5 3.5 0 000 7h5a3.5 3.5 0 010 7H6\"\/><\/svg><div class=\"rn-tip\">Cost-effective<\/div><\/div>\r\n        <div class=\"ring-node rn8\"><svg viewBox=\"0 0 24 24\" stroke-width=\"2\"><rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\"\/><line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\"\/><\/svg><div class=\"rn-tip\">Mobile-ready<\/div><\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- \u2550\u2550 TICKER \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<div id=\"ticker\" role=\"marquee\" aria-label=\"Trust signals\">\r\n  <div class=\"ticker-track\" aria-hidden=\"true\">\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>200+ wikis delivered<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>MediaWiki specialists<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>98% client retention<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>30+ countries served<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>4.9\u2605 average rating<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>Zero data loss migrations<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>2\u20134 week delivery<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>99.95% uptime SLA<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>Fixed-price proposals<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>Confluence alternative<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>Wikipedia-grade scalability<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>Security-first builds<\/span>\r\n    <!-- duplicate for seamless scroll -->\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>200+ wikis delivered<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>MediaWiki specialists<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>98% client retention<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>30+ countries served<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>4.9\u2605 average rating<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>Zero data loss migrations<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>2\u20134 week delivery<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>99.95% uptime SLA<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>Fixed-price proposals<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>Confluence alternative<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>Wikipedia-grade scalability<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-sep\"><\/span>Security-first builds<\/span>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- \u2550\u2550 TESTIMONIALS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<section id=\"reviews\" class=\"alt\" aria-labelledby=\"rev-h2\">\r\n  <div class=\"container\">\r\n    <div class=\"section-header centered fade-up\">\r\n      <span class=\"badge badge-blue\">Client Reviews<\/span>\r\n      <h2 class=\"section-title\" id=\"rev-h2\" style=\"margin-top:12px\">What Our Clients Say<\/h2>\r\n      <p class=\"section-sub\">Teams across 30+ countries, from early-stage startups to established enterprises, trust SolidWiki year after year.<\/p>\r\n    <\/div>\r\n    <div class=\"rev-grid\">\r\n      <article class=\"revcard fade-up\" itemscope itemtype=\"https:\/\/schema.org\/Review\">\r\n        <div class=\"rev-stars\" aria-label=\"5 out of 5 stars\">\u2605\u2605\u2605\u2605\u2605<\/div>\r\n        <blockquote class=\"rev-text\" itemprop=\"reviewBody\">\"SolidWiki transformed how our team manages documentation. The migration from Confluence was seamless \u2014 zero data loss and the wiki loads three times faster than our old setup.\"<\/blockquote>\r\n        <div class=\"rev-author\" itemprop=\"author\" itemscope itemtype=\"https:\/\/schema.org\/Person\">\r\n          <div class=\"rev-av\" style=\"background:linear-gradient(135deg,#1d4ed8,#7c3aed)\" aria-hidden=\"true\">JM<\/div>\r\n          <div><div class=\"rev-name\" itemprop=\"name\">James Mitchell<\/div><div class=\"rev-role\">CTO, TechBridge Solutions<\/div><\/div>\r\n        <\/div>\r\n      <\/article>\r\n      <article class=\"revcard fade-up\" itemscope itemtype=\"https:\/\/schema.org\/Review\">\r\n        <div class=\"rev-stars\" aria-label=\"5 out of 5 stars\">\u2605\u2605\u2605\u2605\u2605<\/div>\r\n        <blockquote class=\"rev-text\" itemprop=\"reviewBody\">\"The level of customisation is remarkable. Our brand, our extensions, our structure \u2014 delivered exactly as described, on time and on budget. An absolute pleasure to work with.\"<\/blockquote>\r\n        <div class=\"rev-author\" itemprop=\"author\" itemscope itemtype=\"https:\/\/schema.org\/Person\">\r\n          <div class=\"rev-av\" style=\"background:linear-gradient(135deg,#7c3aed,#ec4899)\" aria-hidden=\"true\">SR<\/div>\r\n          <div><div class=\"rev-name\" itemprop=\"name\">Sophia Reynolds<\/div><div class=\"rev-role\">Head of Operations, Veloq Inc.<\/div><\/div>\r\n        <\/div>\r\n      <\/article>\r\n      <article class=\"revcard fade-up\" itemscope itemtype=\"https:\/\/schema.org\/Review\">\r\n        <div class=\"rev-stars\" aria-label=\"5 out of 5 stars\">\u2605\u2605\u2605\u2605\u2605<\/div>\r\n        <blockquote class=\"rev-text\" itemprop=\"reviewBody\">\"We tried building our wiki in-house and wasted three months. SolidWiki had us live in three weeks with full team training. The ongoing support plan has been invaluable.\"<\/blockquote>\r\n        <div class=\"rev-author\" itemprop=\"author\" itemscope itemtype=\"https:\/\/schema.org\/Person\">\r\n          <div class=\"rev-av\" style=\"background:linear-gradient(135deg,#06b6d4,#10b981)\" aria-hidden=\"true\">AK<\/div>\r\n          <div><div class=\"rev-name\" itemprop=\"name\">Arjun Kapoor<\/div><div class=\"rev-role\">Founder, Documenify<\/div><\/div>\r\n        <\/div>\r\n      <\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- \u2550\u2550 FAQ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<section id=\"faq\" aria-labelledby=\"faq-h2\">\r\n  <div class=\"container\">\r\n    <div class=\"section-header centered fade-up\">\r\n      <span class=\"badge badge-blue\">FAQ<\/span>\r\n      <h2 class=\"section-title\" id=\"faq-h2\" style=\"margin-top:12px\">Common Questions About<br>MediaWiki Development<\/h2>\r\n      <p class=\"section-sub\">Everything you need to know before starting your wiki project \u2014 answered honestly.<\/p>\r\n    <\/div>\r\n    <div class=\"faq-wrap\">\r\n      <div class=\"faq-cats fade-up\">\r\n        <button class=\"fcat on\" onclick=\"filterFaq('all',this)\">All Questions<\/button>\r\n        <button class=\"fcat\" onclick=\"filterFaq('timeline',this)\">Timeline &amp; Process<\/button>\r\n        <button class=\"fcat\" onclick=\"filterFaq('technical',this)\">Technical<\/button>\r\n        <button class=\"fcat\" onclick=\"filterFaq('pricing',this)\">Pricing &amp; Ownership<\/button>\r\n      <\/div>\r\n      <div class=\"faq-list fade-up\" id=\"faq-list\">\r\n        <div class=\"fitem\" data-cat=\"timeline\">\r\n          <button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">01<\/span><span class=\"fq-txt\">How long does a wiki project take?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button>\r\n          <div class=\"fbody\"><p class=\"fansw\">Most projects are live within 2\u20134 weeks from the start date. Complex migrations or large custom builds can take 4\u20138 weeks. We provide a clear, fixed timeline in the proposal before anything begins \u2014 no surprises on delivery.<\/p><\/div>\r\n        <\/div>\r\n        <div class=\"fitem\" data-cat=\"technical\">\r\n          <button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">02<\/span><span class=\"fq-txt\">Do I need technical knowledge to use MediaWiki?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button>\r\n          <div class=\"fbody\"><p class=\"fansw\">No. We include full team training in every project. Your team can create, edit, and manage content without any technical background. For maintenance, our support plans handle updates and security patches automatically \u2014 you never need to touch the server.<\/p><\/div>\r\n        <\/div>\r\n        <div class=\"fitem\" data-cat=\"timeline\">\r\n          <button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">03<\/span><span class=\"fq-txt\">Can you migrate our content from Confluence or Notion?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button>\r\n          <div class=\"fbody\"><p class=\"fansw\">Yes. We migrate from Confluence, Notion, WordPress, Google Docs, SharePoint, and most other platforms. Structure, formatting, and version history are preserved wherever the source allows. Zero data loss is our technical standard on every migration, not a marketing claim.<\/p><\/div>\r\n        <\/div>\r\n        <div class=\"fitem\" data-cat=\"pricing\">\r\n          <button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">04<\/span><span class=\"fq-txt\">What ongoing support do you offer after launch?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button>\r\n          <div class=\"fbody\"><p class=\"fansw\">Monthly support plans from $500\/mo cover daily backups with 30-day retention, MediaWiki core and extension updates, security patches, 24\/7 uptime monitoring with a 99.95% SLA, and priority same-day response for anything urgent.<\/p><\/div>\r\n        <\/div>\r\n        <div class=\"fitem\" data-cat=\"pricing\">\r\n          <button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">05<\/span><span class=\"fq-txt\">Who owns the wiki after it's built?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button>\r\n          <div class=\"fbody\"><p class=\"fansw\">You do \u2014 completely and permanently. Every file, database, and configuration belongs to you from day one. MediaWiki is open source, hosted on your own infrastructure. There is no dependency on SolidWiki to keep your wiki running.<\/p><\/div>\r\n        <\/div>\r\n        <div class=\"fitem\" data-cat=\"technical\">\r\n          <button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">06<\/span><span class=\"fq-txt\">How do you handle security on every build?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button>\r\n          <div class=\"fbody\"><p class=\"fansw\">Security is built in from the start, not bolted on later. Every install includes hardened server configuration, access controls, spam protection, SSL certificates, firewall rules, and automated backups retained for 30 days minimum.<\/p><\/div>\r\n        <\/div>\r\n        <div class=\"fitem\" data-cat=\"technical\">\r\n          <button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">07<\/span><span class=\"fq-txt\">What is your uptime commitment?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button>\r\n          <div class=\"fbody\"><p class=\"fansw\">Our support plans include a 99.95% uptime SLA with a 4-hour Recovery Time Objective (RTO) for restores. Backups run daily and are retained for 30 days \u2014 zero data loss on every restore we perform.<\/p><\/div>\r\n        <\/div>\r\n        <div class=\"fitem\" data-cat=\"pricing\">\r\n          <button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">08<\/span><span class=\"fq-txt\">What's the difference between MediaWiki and Notion or Confluence?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button>\r\n          <div class=\"fbody\"><p class=\"fansw\">MediaWiki is open-source, self-hosted, and fully owned by you. No per-user subscription fees, no vendor lock-in, no price increases you can't control. It scales from 10 articles to 10 million \u2014 the same engine that powers Wikipedia at global scale.<\/p><\/div>\r\n        <\/div>\r\n        <div class=\"fitem\" data-cat=\"technical\">\r\n          <button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">09<\/span><span class=\"fq-txt\">Is MediaWiki secure enough for corporate and enterprise use?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button>\r\n          <div class=\"fbody\"><p class=\"fansw\">Absolutely. Every SolidWiki build includes hardened server configuration, access controls, spam protection, SSL certificates, firewall rules, and automated security audits. Security is a foundation requirement \u2014 not an optional add-on.<\/p><\/div>\r\n        <\/div>\r\n        <div class=\"fitem\" data-cat=\"timeline\">\r\n          <button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">10<\/span><span class=\"fq-txt\">Do you offer a demo or sample wiki before committing?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button>\r\n          <div class=\"fbody\"><p class=\"fansw\">Yes \u2014 we can provide a read-only demo wiki during your consultation call and walk you through real client setups. Contact us to request access before you commit to anything.<\/p><\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- \u2550\u2550 FOOTER CTA \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<section id=\"footer-cta\" aria-labelledby=\"ftcta-h2\">\r\n  <div class=\"ftcta-glow\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"ftcta-inner fade-up\">\r\n    <span class=\"badge badge-blue\">Get Started<\/span>\r\n    <h2 class=\"ftcta-h2\" id=\"ftcta-h2\">Ready to Build a Wiki<br>Your <span class=\"gt-blue\">Whole Team Uses?<\/span><\/h2>\r\n    <p class=\"ftcta-p\">First consultation is completely free. We'll give you a straight answer about whether MediaWiki is right for your team \u2014 no pressure, no upsell.<\/p>\r\n    <a href=\"#contact\" class=\"btn btn-primary btn-lg\">\r\n      <span class=\"shine\" aria-hidden=\"true\"><\/span>\r\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" aria-hidden=\"true\"><path d=\"M5 12h14M12 5l7 7-7 7\"\/><\/svg>\r\n      Book Free Consultation\r\n    <\/a>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- \u2550\u2550 CONTACT \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<section id=\"contact\" class=\"alt\" aria-labelledby=\"contact-h2\">\r\n  <div class=\"container\">\r\n    <div class=\"contact-wrap\">\r\n      <div class=\"fade-left\">\r\n        <span class=\"badge badge-blue\">Contact Us<\/span>\r\n        <h2 class=\"contact-h2\" id=\"contact-h2\" style=\"margin-top:14px\">Have an Idea?<br>Let's Talk.<\/h2>\r\n        <p class=\"contact-p\">Fill in the form and we'll get back to you within 24 hours. No commitment required \u2014 just an honest conversation.<\/p>\r\n        <div class=\"ci-list\">\r\n          <div class=\"ci-row\">\r\n            <div class=\"ci-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"\/><polyline points=\"22,6 12,13 2,6\"\/><\/svg><\/div>\r\n            <div><div class=\"ci-lbl\">Email us<\/div><div class=\"ci-val\"><a href=\"mailto:hello@solidwiki.com\" style=\"color:inherit\">hello@solidwiki.com<\/a><\/div><\/div>\r\n          <\/div>\r\n          <div class=\"ci-row\">\r\n            <div class=\"ci-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg><\/div>\r\n            <div><div class=\"ci-lbl\">Response time<\/div><div class=\"ci-val\">Within 24 business hours<\/div><\/div>\r\n          <\/div>\r\n          <div class=\"ci-row\">\r\n            <div class=\"ci-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"\/><path d=\"M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10 15.3 15.3 0 014-10z\"\/><\/svg><\/div>\r\n            <div><div class=\"ci-lbl\">Clients served<\/div><div class=\"ci-val\">30+ countries worldwide<\/div><\/div>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"cal-box\">\r\n          <div class=\"cal-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"\/><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"\/><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"\/><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"\/><\/svg><\/div>\r\n          <div><div class=\"cal-title\">Book directly in your calendar<\/div><div class=\"cal-sub\">Use Calendly for instant scheduling \u2014 no back-and-forth email.<\/div><\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"fade-right\">\r\n        <form id=\"contact-form\" class=\"cform\" novalidate>\r\n          <div class=\"hp\"><label for=\"website\">Website<\/label><input type=\"text\" id=\"website\" name=\"website\" tabindex=\"-1\" autocomplete=\"off\"><\/div>\r\n          <div class=\"frow\">\r\n            <div>\r\n              <label for=\"fname\">First Name <span style=\"color:var(--red)\" aria-hidden=\"true\">*<\/span><\/label>\r\n              <input type=\"text\" id=\"fname\" name=\"firstName\" placeholder=\"John\" required autocomplete=\"given-name\">\r\n              <div class=\"ferr\" id=\"ferr-fname\" role=\"alert\">Please enter your first name.<\/div>\r\n            <\/div>\r\n            <div>\r\n              <label for=\"lname\">Last Name <span style=\"color:var(--red)\" aria-hidden=\"true\">*<\/span><\/label>\r\n              <input type=\"text\" id=\"lname\" name=\"lastName\" placeholder=\"Smith\" required autocomplete=\"family-name\">\r\n              <div class=\"ferr\" id=\"ferr-lname\" role=\"alert\">Please enter your last name.<\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"fgroup\">\r\n            <label for=\"email\">Email Address <span style=\"color:var(--red)\" aria-hidden=\"true\">*<\/span><\/label>\r\n            <input type=\"email\" id=\"email\" name=\"email\" placeholder=\"john@company.com\" required autocomplete=\"email\">\r\n            <div class=\"ferr\" id=\"ferr-email\" role=\"alert\">Please enter a valid email address.<\/div>\r\n          <\/div>\r\n          <div class=\"fgroup\">\r\n            <label for=\"phone\">Phone Number <span style=\"color:var(--tx4)\">(optional)<\/span><\/label>\r\n            <input type=\"tel\" id=\"phone\" name=\"phone\" placeholder=\"+1 (555) 000-0000\" autocomplete=\"tel\">\r\n          <\/div>\r\n          <div class=\"fgroup\">\r\n            <label for=\"project-type\">Project Type <span style=\"color:var(--red)\" aria-hidden=\"true\">*<\/span><\/label>\r\n            <select id=\"project-type\" name=\"projectType\" required>\r\n              <option value=\"\" disabled selected>Select your project type\u2026<\/option>\r\n              <option value=\"new-wiki\">New Wiki Setup<\/option>\r\n              <option value=\"migration\">Content Migration<\/option>\r\n              <option value=\"customisation\">Wiki Customisation &amp; Theming<\/option>\r\n              <option value=\"support\">Ongoing Support Plan<\/option>\r\n              <option value=\"audit\">Wiki Audit &amp; Optimisation<\/option>\r\n              <option value=\"other\">Other \/ Not Sure Yet<\/option>\r\n            <\/select>\r\n            <div class=\"ferr\" id=\"ferr-type\" role=\"alert\">Please select a project type.<\/div>\r\n          <\/div>\r\n          <div class=\"fgroup\">\r\n            <label for=\"message\">Tell Us About Your Project <span style=\"color:var(--red)\" aria-hidden=\"true\">*<\/span><\/label>\r\n            <textarea id=\"message\" name=\"message\" placeholder=\"What platform are you on now? How many articles do you have? Any specific requirements or deadline?\" required minlength=\"20\"><\/textarea>\r\n            <div class=\"ferr\" id=\"ferr-msg\" role=\"alert\">Please describe your project (at least 20 characters).<\/div>\r\n          <\/div>\r\n          <button type=\"submit\" class=\"btn btn-primary btn-full\" id=\"submit-btn\" style=\"font-size:15px;padding:15px 28px\">\r\n            <span class=\"shine\" aria-hidden=\"true\"><\/span>\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" aria-hidden=\"true\"><line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\"\/><polygon points=\"22 2 15 22 11 13 2 9 22 2\"\/><\/svg>\r\n            Send Message\r\n          <\/button>\r\n          <div class=\"fsuccess\" id=\"form-success\" role=\"alert\" aria-live=\"polite\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"M22 11.08V12a10 10 0 11-5.93-9.14\"\/><polyline points=\"22 4 12 14.01 9 11.01\"\/><\/svg>\r\n            <h3>Message sent!<\/h3>\r\n            <p>We'll reply within 24 business hours.<\/p>\r\n          <\/div>\r\n        <\/form>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<\/main>\r\n\r\n<!-- \u2550\u2550 FOOTER \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<footer id=\"footer\" role=\"contentinfo\">\r\n  <div class=\"footer-grid container\">\r\n    <div class=\"footer-logo-area\">\r\n      <a href=\"\/\" class=\"nav-logo\" aria-label=\"SolidWiki home\">\r\n        <div class=\"nav-logo-mark\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5\"\/><\/svg><\/div>\r\n        <span class=\"nav-logo-name\">SolidWiki<\/span>\r\n      <\/a>\r\n      <p>Professional MediaWiki development and corporate wiki solutions for growing teams worldwide.<\/p>\r\n    <\/div>\r\n    <div class=\"footer-col\">\r\n      <div class=\"footer-col-title\">Services<\/div>\r\n      <a href=\"#services\">Wiki Setup<\/a>\r\n      <a href=\"#services\">Customisation<\/a>\r\n      <a href=\"#services\">Migration<\/a>\r\n      <a href=\"#services\">Ongoing Support<\/a>\r\n    <\/div>\r\n    <div class=\"footer-col\">\r\n      <div class=\"footer-col-title\">Company<\/div>\r\n      <a href=\"#why\">About Us<\/a>\r\n      <a href=\"#process\">How It Works<\/a>\r\n      <a href=\"#reviews\">Reviews<\/a>\r\n      <a href=\"#contact\">Contact<\/a>\r\n    <\/div>\r\n    <div class=\"footer-col\">\r\n      <div class=\"footer-col-title\">Legal<\/div>\r\n      <a href=\"\/privacy\">Privacy Policy<\/a>\r\n      <a href=\"\/terms\">Terms &amp; Conditions<\/a>\r\n      <a href=\"\/disclaimer\">Disclaimer<\/a>\r\n    <\/div>\r\n  <\/div>\r\n  <div class=\"footer-bottom container\">\r\n    <span>&copy; <span id=\"footer-year\"><\/span> SolidWiki. All rights reserved.<\/span>\r\n    <div class=\"footer-bottom-r\">\r\n      <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#22c55e\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg>\r\n      SSL Encrypted \u00b7 MediaWiki Specialists\r\n    <\/div>\r\n  <\/div>\r\n<\/footer>\r\n\r\n<!-- \u2550\u2550 STICKY MOBILE CTA \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<div id=\"sticky-cta\" role=\"region\" aria-label=\"Mobile call to action\">\r\n  <button id=\"sticky-cta-close\" aria-label=\"Dismiss\" onclick=\"document.getElementById('sticky-cta').style.display='none'\">\u00d7<\/button>\r\n  <a href=\"#contact\" class=\"btn btn-primary\">\r\n    <span class=\"shine\" aria-hidden=\"true\"><\/span>\r\n    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" aria-hidden=\"true\"><path d=\"M5 12h14M12 5l7 7-7 7\"\/><\/svg>\r\n    Book Free Consultation\r\n  <\/a>\r\n<\/div>\r\n\r\n<script>\r\n\/* \u2500\u2500\u2500\u2500 INITIALISE THEME \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\nconst BD=document.body;\r\nconst moonI=document.getElementById('moon-i');\r\nconst sunI=document.getElementById('sun-i');\r\n(function(){const t=localStorage.getItem('sw-theme');if(t==='light'){BD.classList.add('light');moonI.style.display='none';sunI.style.display=''}})();\r\ndocument.getElementById('theme-toggle').addEventListener('click',()=>{\r\n  BD.classList.toggle('light');\r\n  const l=BD.classList.contains('light');\r\n  moonI.style.display=l?'none':'';sunI.style.display=l?'':'none';\r\n  localStorage.setItem('sw-theme',l?'light':'dark');\r\n});\r\n\r\n\/* \u2500\u2500\u2500\u2500 MOBILE NAV \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\nconst ham=document.getElementById('hamburger');\r\nconst drawer=document.getElementById('nav-drawer');\r\nham.addEventListener('click',()=>{\r\n  const o=ham.classList.toggle('open');\r\n  drawer.classList.toggle('open',o);\r\n  ham.setAttribute('aria-expanded',o);\r\n  drawer.setAttribute('aria-hidden',!o);\r\n});\r\ndrawer.querySelectorAll('a').forEach(a=>a.addEventListener('click',()=>{\r\n  ham.classList.remove('open');drawer.classList.remove('open');\r\n  ham.setAttribute('aria-expanded','false');drawer.setAttribute('aria-hidden','true');\r\n}));\r\n\r\n\/* \u2500\u2500\u2500\u2500 STICKY HEADER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\nwindow.addEventListener('scroll',()=>{\r\n  document.getElementById('site-header').classList.toggle('scrolled',window.scrollY>20);\r\n},{passive:true});\r\n\r\n\/* \u2500\u2500\u2500\u2500 SERVICE TABS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\nfunction switchTab(idx,btn){\r\n  document.querySelectorAll('.stab-panel').forEach((p,i)=>p.classList.toggle('on',i===idx));\r\n  document.querySelectorAll('.stab').forEach((t,i)=>{t.classList.toggle('on',i===idx);t.setAttribute('aria-selected',i===idx);});\r\n}\r\nwindow.switchTab=switchTab;\r\n\r\n\/* \u2500\u2500\u2500\u2500 PROCESS CARDS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\nlet curPC=0;\r\nfunction setProcCard(idx){\r\n  const cards=document.querySelectorAll('.pc');\r\n  const dots=document.querySelectorAll('.pdot');\r\n  const tbtns=document.querySelectorAll('.ptrk-btn');\r\n  cards.forEach((c,i)=>{c.classList.remove('on','gone');if(i===idx)c.classList.add('on');else if(i<idx)c.classList.add('gone');});\r\n  dots.forEach((d,i)=>d.classList.toggle('on',i===idx));\r\n  tbtns.forEach((b,i)=>{b.classList.toggle('on',i===idx);b.setAttribute('aria-selected',i===idx);});\r\n  curPC=idx;\r\n}\r\nwindow.setProcCard=setProcCard;\r\n\r\n\/* \u2500\u2500\u2500\u2500 FAQ \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\nfunction toggleFaq(btn){\r\n  const item=btn.closest('.fitem');\r\n  const isOpen=item.classList.contains('open');\r\n  document.querySelectorAll('.fitem.open').forEach(i=>{i.classList.remove('open');i.querySelector('.fq').setAttribute('aria-expanded','false');});\r\n  if(!isOpen){item.classList.add('open');btn.setAttribute('aria-expanded','true');}\r\n}\r\nwindow.toggleFaq=toggleFaq;\r\n\r\nfunction filterFaq(cat,btn){\r\n  document.querySelectorAll('.fcat').forEach(b=>b.classList.remove('on'));\r\n  btn.classList.add('on');\r\n  document.querySelectorAll('.fitem').forEach(item=>{\r\n    const show=cat==='all'||item.dataset.cat===cat;\r\n    item.style.display=show?'':'none';\r\n    if(!show&&item.classList.contains('open')){item.classList.remove('open');item.querySelector('.fq').setAttribute('aria-expanded','false');}\r\n  });\r\n}\r\nwindow.filterFaq=filterFaq;\r\n\r\n\/* \u2500\u2500\u2500\u2500 CONTACT FORM \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\nconst form=document.getElementById('contact-form');\r\nconst sbtn=document.getElementById('submit-btn');\r\nconst succ=document.getElementById('form-success');\r\n\r\nfunction vf(id,errId,test){\r\n  const el=document.getElementById(id),er=document.getElementById(errId);\r\n  const ok=test(el.value);\r\n  el.classList.toggle('err',!ok);\r\n  if(er)er.classList.toggle('show',!ok);\r\n  ok?el.removeAttribute('aria-invalid'):el.setAttribute('aria-invalid','true');\r\n  return ok;\r\n}\r\n\r\nform.addEventListener('submit',async e=>{\r\n  e.preventDefault();\r\n  if(document.getElementById('website').value)return;\r\n  const ok=[\r\n    vf('fname','ferr-fname',v=>v.trim().length>0),\r\n    vf('lname','ferr-lname',v=>v.trim().length>0),\r\n    vf('email','ferr-email',v=>\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(v)),\r\n    vf('project-type','ferr-type',v=>v!==''),\r\n    vf('message','ferr-msg',v=>v.trim().length>=20),\r\n  ].every(Boolean);\r\n  if(!ok)return;\r\n  sbtn.disabled=true;\r\n  sbtn.innerHTML='<svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" style=\"animation:spin 1s linear infinite\" aria-hidden=\"true\"><path d=\"M21 12a9 9 0 11-18 0 9 9 0 0118 0z\" opacity=\".25\"\/><path d=\"M21 12a9 9 0 00-9-9\"\/><\/svg>Sending\u2026';\r\n  await new Promise(r=>setTimeout(r,1400));\r\n  form.style.display='none';\r\n  succ.style.display='block';\r\n  succ.focus();\r\n});\r\nform.querySelectorAll('input,select,textarea').forEach(el=>{\r\n  el.addEventListener('input',()=>{\r\n    el.classList.remove('err');el.removeAttribute('aria-invalid');\r\n    const er=document.getElementById('ferr-'+el.id.replace('project-type','type').replace('message','msg').replace('fname','fname').replace('lname','lname').replace('email','email'));\r\n    if(er)er.classList.remove('show');\r\n  });\r\n});\r\n\r\n\/* \u2500\u2500\u2500\u2500 FOOTER YEAR \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\ndocument.getElementById('footer-year').textContent=new Date().getFullYear();\r\n\r\n\/* \u2500\u2500\u2500\u2500 DEFERRED: canvas + animations \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\nwindow.addEventListener('load',()=>{\r\n\r\n\/* Star canvas *\/\r\nconst cv=document.getElementById('star-bg');\r\nconst ctx=cv.getContext('2d');\r\nlet sw=window.innerWidth,sh=window.innerHeight;\r\ncv.width=sw;cv.height=sh;\r\nconst isMob=sw<768;\r\nconst stars=[];\r\nfor(let i=0;i<(isMob?55:130);i++)stars.push({x:Math.random()*sw,y:Math.random()*sh,r:Math.random()*.8+.2,op:Math.random()*.35+.1,sp:Math.random()*.08+.015,tw:Math.random()*Math.PI*2});\r\nwindow.addEventListener('resize',()=>{sw=cv.width=window.innerWidth;sh=cv.height=window.innerHeight;},{passive:true});\r\n(function draw(){\r\n  ctx.clearRect(0,0,sw,sh);\r\n  const light=BD.classList.contains('light');\r\n  stars.forEach(s=>{\r\n    s.tw+=.009;s.y+=s.sp;if(s.y>sh){s.y=0;s.x=Math.random()*sw;}\r\n    const op=s.op*(0.5+0.5*Math.sin(s.tw))*(light?.18:.9);\r\n    ctx.beginPath();ctx.arc(s.x,s.y,s.r,0,Math.PI*2);\r\n    ctx.fillStyle=`rgba(${light?'37,99,235':'255,255,255'},${op})`;ctx.fill();\r\n  });\r\n  requestAnimationFrame(draw);\r\n})();\r\n\r\n\/* Scroll fade-in *\/\r\nconst io=new IntersectionObserver(entries=>{\r\n  entries.forEach(e=>{if(e.isIntersecting){e.target.classList.add('vis');io.unobserve(e.target);}});\r\n},{threshold:.1});\r\ndocument.querySelectorAll('.fade-up,.fade-left,.fade-right').forEach(el=>io.observe(el));\r\n\r\n\/* Problem cards stagger *\/\r\nconst pcards=document.getElementById('pcards');\r\nif(pcards){\r\n  new IntersectionObserver(entries=>{\r\n    if(entries[0].isIntersecting){pcards.querySelectorAll('.pcard').forEach((c,i)=>setTimeout(()=>c.classList.add('vis'),i*150));}\r\n  },{threshold:.1}).observe(pcards);\r\n}\r\n\r\n\/* Stats counter *\/\r\nconst coIO=new IntersectionObserver(entries=>{\r\n  entries.forEach(e=>{\r\n    if(!e.isIntersecting)return;\r\n    const el=e.target.querySelector('[data-count]');\r\n    if(!el||el.dataset.done)return;el.dataset.done=1;\r\n    const t=+el.dataset.count,t0=performance.now();\r\n    (function tick(now){const p=Math.min((now-t0)\/1900,1),ease=1-Math.pow(1-p,3);el.textContent=Math.floor(ease*t)+(p===1?'+':'');if(p<1)requestAnimationFrame(tick);})(t0);\r\n  });\r\n},{threshold:.4});\r\ndocument.querySelectorAll('.stat-item').forEach(e=>coIO.observe(e));\r\n\r\n\/* Process panel scroll-driven *\/\r\nconst psteps=document.querySelectorAll('.proc-step');\r\nconst psIO=new IntersectionObserver(entries=>{\r\n  entries.forEach(e=>{if(!e.isIntersecting)return;const idx=+e.target.dataset.step;if(!isNaN(idx))setProcCard(idx);});\r\n},{threshold:.5,rootMargin:'0px 0px -5% 0px'});\r\npsteps.forEach(s=>psIO.observe(s));\r\n\r\n\/* Hero entrance *\/\r\nconst hLines=document.querySelectorAll('.hero-h1 *');\r\nconst hSub=document.querySelector('.hero-sub');\r\nconst hActs=document.querySelector('.hero-actions');\r\nconst hProof=document.querySelector('.hero-social-proof');\r\nconst hVis=document.querySelector('.hero-visual');\r\nhLines.forEach((el,i)=>{el.style.opacity='0';el.style.transform='translateY(30px)';setTimeout(()=>{el.style.transition=`opacity .8s cubic-bezier(.16,1,.3,1) ${i*.08}s, transform .8s cubic-bezier(.16,1,.3,1) ${i*.08}s`;el.style.opacity='1';el.style.transform='none';},80);});\r\n[hSub,hActs,hProof].forEach((el,i)=>{if(!el)return;el.style.opacity='0';el.style.transform='translateY(18px)';setTimeout(()=>{el.style.transition='opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1)';el.style.opacity='1';el.style.transform='none';},480+i*80);});\r\nif(hVis){hVis.style.opacity='0';setTimeout(()=>{hVis.style.transition='opacity .9s cubic-bezier(.16,1,.3,1)';hVis.style.opacity='1';},180);}\r\n\r\n\/* Hero card tilt *\/\r\nif(!isMob){\r\n  const hCard=document.getElementById('hv-card');\r\n  const hVisEl=document.querySelector('.hero-visual');\r\n  if(hCard&&hVisEl){\r\n    hVisEl.addEventListener('mousemove',e=>{\r\n      const r=hVisEl.getBoundingClientRect();\r\n      const x=(e.clientX-r.left)\/r.width-.5,y=(e.clientY-r.top)\/r.height-.5;\r\n      hCard.style.animation='none';\r\n      hCard.style.transform=`translate(-50%,-50%) rotateX(${7-y*16}deg) rotateY(${-13+x*20}deg) translateZ(${Math.abs(x+y)*14}px)`;\r\n    },{passive:true});\r\n    hVisEl.addEventListener('mouseleave',()=>{hCard.style.animation='';hCard.style.transform='';});\r\n  }\r\n}\r\n\r\n\/* Card glow for svc cards *\/\r\nif(!isMob){\r\n  document.querySelectorAll('.scard,.revcard').forEach(c=>{\r\n    c.addEventListener('mousemove',e=>{\r\n      const r=c.getBoundingClientRect();\r\n      c.style.setProperty('--mx',((e.clientX-r.left)\/r.width*100)+'%');\r\n      c.style.setProperty('--my',((e.clientY-r.top)\/r.height*100)+'%');\r\n    },{passive:true});\r\n  });\r\n}\r\n\r\n});\/* end load *\/\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>MediaWiki Development Services | Corporate Wiki Solutions \u2013 SolidWiki Skip to main content SolidWiki Services Process Why Us Reviews FAQ Free Consultation Services Process Why Us Reviews FAQ Get Free Consultation Now Accepting New Projects Your Team Deserves a Smarter Knowledge Platform We design, build, and maintain MediaWiki systems that put the right information in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-11","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/solidwiki.com\/index.php\/wp-json\/wp\/v2\/pages\/11","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/solidwiki.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/solidwiki.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/solidwiki.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/solidwiki.com\/index.php\/wp-json\/wp\/v2\/comments?post=11"}],"version-history":[{"count":54,"href":"https:\/\/solidwiki.com\/index.php\/wp-json\/wp\/v2\/pages\/11\/revisions"}],"predecessor-version":[{"id":171,"href":"https:\/\/solidwiki.com\/index.php\/wp-json\/wp\/v2\/pages\/11\/revisions\/171"}],"wp:attachment":[{"href":"https:\/\/solidwiki.com\/index.php\/wp-json\/wp\/v2\/media?parent=11"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}