{"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-06-18T16:35:28","modified_gmt":"2026-06-18T16:35:28","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<title>MediaWiki Setup & Development Services | SolidWiki<\/title>\r\n<meta name=\"description\" content=\"SolidWiki builds, designs, and maintains MediaWiki knowledge bases for growing teams. Fixed-price MediaWiki setup, migration, and support - starting from $200.\">\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 setup services, MediaWiki development company, MediaWiki migration, MediaWiki maintenance, custom MediaWiki skin, internal knowledge base wiki, Confluence to MediaWiki migration, MediaWiki hosting setup\">\r\n<link rel=\"canonical\" href=\"https:\/\/solidwiki.com\/\">\r\n<meta name=\"geo.region\" content=\"IN\">\r\n<meta name=\"geo.placename\" content=\"Hyderabad\">\r\n<meta name=\"language\" content=\"English\">\r\n<meta name=\"rating\" content=\"general\">\r\n\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 Setup & Development Services | SolidWiki\">\r\n<meta property=\"og:description\" content=\"SolidWiki builds, designs, and maintains MediaWiki knowledge bases for growing teams. Fixed-price MediaWiki setup, migration, and support - starting from $200.\">\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 - MediaWiki Setup for Growing Teams\">\r\n<meta property=\"og:locale\" content=\"en_US\">\r\n\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 Setup & Development Services | SolidWiki\">\r\n<meta name=\"twitter:description\" content=\"SolidWiki builds, designs, and maintains MediaWiki knowledge bases for growing teams. Fixed-price MediaWiki setup, migration, and support - starting from $200.\">\r\n<meta name=\"twitter:image\" content=\"https:\/\/solidwiki.com\/og-image.jpg\">\r\n<meta name=\"twitter:image:alt\" content=\"SolidWiki \u2013 MediaWiki for Teams\">\r\n\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<link rel=\"icon\" type=\"image\/png\" sizes=\"32x32\" href=\"https:\/\/solidwiki.com\/wp-content\/uploads\/2026\/05\/favicon.png\">\r\n<link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"https:\/\/solidwiki.com\/wp-content\/uploads\/2026\/05\/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<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\": {\"@type\": \"ImageObject\",\"url\": \"https:\/\/solidwiki.com\/wp-content\/uploads\/2026\/05\/solidwiki.png\",\"width\": 180,\"height\": 60},\r\n      \"description\": \"SolidWiki builds, designs, and maintains MediaWiki knowledge bases for growing teams. Fixed-price MediaWiki setup, migration, and support - starting from $200.\",\r\n      \"email\": \"info@solidwiki.com\",\r\n      \"foundingDate\": \"2024\",\r\n      \"address\": {\"@type\": \"PostalAddress\",\"addressLocality\": \"Hyderabad\",\"addressRegion\": \"Telangana\",\"addressCountry\": \"IN\"},\r\n      \"areaServed\": [{\"@type\": \"Country\",\"name\": \"India\"},{\"@type\": \"Country\",\"name\": \"United States\"},{\"@type\": \"GeoShape\",\"name\": \"Worldwide\"}],\r\n      \"knowsAbout\": [\"MediaWiki\",\"Wiki Development\",\"Knowledge Management\",\"Team Documentation\"]\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      \"description\": \"MediaWiki setup and development for small and growing teams\",\r\n      \"publisher\": {\"@id\": \"https:\/\/solidwiki.com\/#organization\"},\r\n      \"inLanguage\": \"en\"\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 Setup & Development Services for Teams \u2013 SolidWiki\",\r\n      \"description\": \"SolidWiki builds, designs, and maintains MediaWiki knowledge bases for growing teams. Fixed-price MediaWiki setup, migration, and support - starting from $200.\",\r\n      \"isPartOf\": {\"@id\": \"https:\/\/solidwiki.com\/#website\"},\r\n      \"inLanguage\": \"en\",\r\n      \"dateModified\": \"2026-06-17\"\r\n    },\r\n    {\r\n      \"@type\": \"FAQPage\",\r\n      \"mainEntity\": [\r\n        {\"@type\":\"Question\",\"name\":\"How long does a MediaWiki setup actually take?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"A basic setup typically takes about a week. A full project - including custom branding, content migration, and team training - usually takes two to four weeks depending on how much existing content needs to move over and how much customisation you want.\"}},\r\n        {\"@type\":\"Question\",\"name\":\"Does anyone on my team need to be technical to use or manage this?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. Once your wiki is set up with a visual editor enabled, creating and editing pages works similarly to using a basic word processor. Several of our clients' least technical team members are now their most active wiki editors.\"}},\r\n        {\"@type\":\"Question\",\"name\":\"Can you move our existing content from Confluence or Notion?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. Migrating content from Confluence, Notion, SharePoint, or similar platforms is one of our core services. We convert your existing pages, preserve formatting and links wherever possible, and validate everything after the move so nothing is lost or broken.\"}},\r\n        {\"@type\":\"Question\",\"name\":\"Who owns the wiki once it's built?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"You do, completely. Your wiki runs on your own server using open-source MediaWiki software. There's no proprietary lock-in, no dependency on us to keep it running, and no recurring licence fee.\"}},\r\n        {\"@type\":\"Question\",\"name\":\"What does ongoing support include and what does it cost?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Ongoing support covers core and extension updates, regular backups, uptime monitoring, and quick fixes if something goes wrong. Plans start from $100 per month, scaled to the size and complexity of your wiki.\"}},\r\n        {\"@type\":\"Question\",\"name\":\"How is MediaWiki different from Notion or Confluence?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"MediaWiki is open-source and self-hosted, meaning there are no per-user fees and your data lives on your own server rather than a third party's cloud platform. Notion and Confluence are easier to start with out of the box, but their costs grow with your team size, and you don't have the same level of control over where your data lives.\"}},\r\n        {\"@type\":\"Question\",\"name\":\"Is it secure enough for internal company information?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. Every wiki we build includes SSL encryption, firewall configuration, access controls, and automated daily backups as standard - not as an optional upgrade. We also configure user permissions so only the right people can see or edit specific content.\"}},\r\n        {\"@type\":\"Question\",\"name\":\"You're a new company. Why should we trust you with this?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"That's a fair question, and we'd rather you ask it directly than wonder about it quietly. We don't have ten years of history, but we have deep, exclusive focus on MediaWiki, a transparent fixed-price process, and real client feedback you can read above. We're also happy to show you a working example before you decide anything.\"}},\r\n        {\"@type\":\"Question\",\"name\":\"Can we see a working wiki before deciding?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. We're glad to walk you through a live example during your free initial call, so you can see exactly what a properly configured MediaWiki installation looks and feels like before committing to anything.\"}},\r\n        {\"@type\":\"Question\",\"name\":\"Do we need to provide our own server, or can you handle that?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Either works. If you already have server infrastructure, we'll set MediaWiki up on it. If you don't, we can recommend and configure suitable hosting as part of the setup process.\"}}\r\n      ]\r\n    },\r\n    {\"@type\":\"Review\",\"itemReviewed\":{\"@id\":\"https:\/\/solidwiki.com\/#organization\"},\"author\":{\"@type\":\"Person\",\"name\":\"Prasad\"},\"reviewRating\":{\"@type\":\"Rating\",\"ratingValue\":\"5\",\"bestRating\":\"5\"},\"reviewBody\":\"Our team was using five different tools and nobody could agree on which was the right place to look. SolidWiki set up a MediaWiki for us, and within two weeks everyone had stopped asking 'where is this?' in Slack. The training session was genuinely helpful - our non-technical people picked it up in an hour.\"},\r\n    {\"@type\":\"Review\",\"itemReviewed\":{\"@id\":\"https:\/\/solidwiki.com\/#organization\"},\"author\":{\"@type\":\"Person\",\"name\":\"Monisha\"},\"reviewRating\":{\"@type\":\"Rating\",\"ratingValue\":\"5\",\"bestRating\":\"5\"},\"reviewBody\":\"The fixed-price proposal laid everything out clearly - what they'd deliver, when, and for exactly how much. They kept to it. What really surprised me was that our HR coordinator, who has no technical background, can now create and update wiki pages without any help.\"},\r\n    {\"@type\":\"Review\",\"itemReviewed\":{\"@id\":\"https:\/\/solidwiki.com\/#organization\"},\"author\":{\"@type\":\"Person\",\"name\":\"Durga Lakshmi\"},\"reviewRating\":{\"@type\":\"Rating\",\"ratingValue\":\"5\",\"bestRating\":\"5\"},\"reviewBody\":\"What I appreciated most was the honesty. Before we agreed to anything, they told me clearly what MediaWiki is good at and where it has limitations for our use case. The wiki they set up is clean, loads fast, and - importantly - the team actually uses it. No forced adoption needed.\"}\r\n  ]\r\n}\r\n<\/script>\r\n\r\n<style>\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\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   CRITICAL CSS - INLINE (above-fold only)\r\n   Performance: GPU-only transforms, no filter animations,\r\n   reduced paint complexity, mobile-first layout\r\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\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\r\n\/* RESET *\/\r\n*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}\r\nhtml{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px;text-size-adjust:100%}\r\nbody{\r\n  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;\r\n  background:#03070f;color:#f0f4ff;\r\n  overflow-x:hidden;line-height:1.65;\r\n  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;\r\n}\r\nimg{max-width:100%;height:auto;display:block}\r\na{color:inherit;text-decoration:none}\r\nbutton{font-family:inherit;cursor:pointer;border:none;background:none}\r\nul,ol{list-style:none}\r\ninput,textarea,select{font-family:inherit}\r\n\r\n\/* ROOT TOKENS *\/\r\n:root{\r\n  --blue:#2563eb;--blue2:#1d4ed8;--blue3:#3b82f6;--blue4:#60a5fa;--blue5:#93c5fd;\r\n  --purple:#7c3aed;--cyan:#06b6d4;--cyan2:#22d3ee;\r\n  --green:#10b981;--green2:#22c55e;--gold:#f59e0b;\r\n  --red:#ef4444;--orange:#f97316;\r\n  --bg:#03070f;--bg2:#060c1a;--bg3:#0a1628;\r\n  --surf:rgba(10,22,40,.82);--surf2:rgba(15,31,58,.6);\r\n  --tx:#f0f4ff;--tx2:#cbd5e1;--tx3:#94a3b8;--tx4:#64748b;\r\n  --bd:rgba(255,255,255,.07);--bd2:rgba(255,255,255,.12);--bd3:rgba(255,255,255,.18);\r\n  --r:10px;--r2:16px;--r3:22px;\r\n  \/* Mobile-first spacing *\/\r\n  --px:16px;--py:48px;\r\n  --mw:1140px;\r\n  --nav-h:60px;\r\n}\r\n\r\n\/* LIGHT MODE *\/\r\nbody.light{\r\n  background:#eef2ff;color:#0f172a;\r\n  --bg:#eef2ff;--bg2:#e4eaff;--bg3:#dce5ff;\r\n  --surf:rgba(255,255,255,.92);--surf2:rgba(240,245,255,.85);\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\n\/* UTILITIES *\/\r\n.container{width:100%;max-width:var(--mw);margin:0 auto;padding:0 var(--px)}\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.gt-blue{background:linear-gradient(135deg,#60a5fa,#22d3ee,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}\r\n.gt-red{background:linear-gradient(135deg,#f87171,#f97316);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}\r\n.gt-green{background:linear-gradient(135deg,#22c55e,#22d3ee);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}\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 8px 0;z-index:9999;transition:top .2s;font-size:14px}\r\n.skip-link:focus{top:0}\r\n\r\n\/* SCROLL ANIMATIONS - GPU only (transform + opacity) *\/\r\n.fade-up{opacity:0;transform:translateY(24px);transition:opacity .55s cubic-bezier(.16,1,.3,1),transform .55s cubic-bezier(.16,1,.3,1)}\r\n.fade-left{opacity:0;transform:translateX(-20px);transition:opacity .55s cubic-bezier(.16,1,.3,1),transform .55s cubic-bezier(.16,1,.3,1)}\r\n.fade-right{opacity:0;transform:translateX(20px);transition:opacity .55s cubic-bezier(.16,1,.3,1),transform .55s cubic-bezier(.16,1,.3,1)}\r\n.fade-up.vis,.fade-left.vis,.fade-right.vis{opacity:1;transform:none}\r\n\/* Reduce motion for accessibility *\/\r\n@media(prefers-reduced-motion:reduce){\r\n  .fade-up,.fade-left,.fade-right{opacity:1;transform:none;transition:none}\r\n  *{animation-duration:.01ms!important;animation-iteration-count:1!important}\r\n}\r\n\r\nsection{padding:var(--py) 0;position:relative;z-index:1}\r\n.alt{background:var(--bg2)}\r\n.sec-header{margin-bottom:32px}\r\n.sec-header.center{text-align:center}\r\n.sec-header.center .sec-sub{margin:10px auto 0}\r\n\r\n\/* BADGE *\/\r\n.badge{display:inline-flex;align-items:center;gap:6px;border-radius:50px;padding:5px 14px;font-size:11px;font-weight:700;letter-spacing:.9px;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:#047857}\r\n\r\n\/* SECTION TITLES *\/\r\n.sec-title{font-size:clamp(1.8rem,4vw,2.5rem);font-weight:800;letter-spacing:-.8px;line-height:1.13;margin-top:8px}\r\n.sec-sub{font-size:1rem;color:var(--tx3);line-height:1.8;max-width:560px}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   BUTTONS\r\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n.btn{\r\n  position:relative;display:inline-flex;align-items:center;justify-content:center;\r\n  gap:8px;padding:13px 24px;border-radius:50px;font-size:15px;font-weight:700;\r\n  cursor:pointer;transition:transform .2s,box-shadow .2s;overflow:hidden;\r\n  text-decoration:none;line-height:1;border:none;font-family:inherit;\r\n  min-height:48px;-webkit-tap-highlight-color:transparent;touch-action:manipulation;\r\n  \/* Ensure good touch target *\/\r\n}\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.btn-full{width:100%;justify-content:center}\r\n.btn-primary{background:linear-gradient(135deg,#1d4ed8,#7c3aed);color:#fff;box-shadow:0 4px 18px rgba(37,99,235,.28)}\r\n.btn-primary:hover{box-shadow:0 0 28px rgba(37,99,235,.4),0 6px 20px rgba(124,58,237,.2);transform:translateY(-2px)}\r\n\/* Shine - CSS only, no JS needed *\/\r\n.btn-primary .shine{position:absolute;top:0;left:-130%;width:55%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.22),transparent);transform:skewX(-20deg);transition:left .55s}\r\n.btn-primary:hover .shine{left:165%}\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,.4);background:rgba(37,99,235,.06);transform:translateY(-1px)}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   HEADER\r\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n#site-header{\r\n  position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--nav-h);\r\n  background:rgba(3,7,15,.9);\r\n  \/* Backdrop blur: only on non-mobile for perf *\/\r\n  border-bottom:1px solid var(--bd);\r\n  transition:box-shadow .25s,background .25s;\r\n  \/* Contain repaints *\/\r\n  contain:layout style;\r\n}\r\n@supports(backdrop-filter:blur(1px)){\r\n  #site-header{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}\r\n}\r\n#site-header.scrolled{box-shadow:0 2px 28px rgba(0,0,0,.5);background:rgba(3,7,15,.97)}\r\nbody.light #site-header{background:rgba(238,242,255,.92)}\r\nbody.light #site-header.scrolled{background:rgba(238,242,255,.98);box-shadow:0 2px 18px rgba(0,0,0,.09)}\r\n\r\n.nav-wrap{height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 var(--px);max-width:var(--mw);margin:0 auto}\r\n.nav-logo{display:flex;align-items:center;gap:9px;text-decoration:none;flex-shrink:0}\r\n.nav-logo-mark{width:32px;height:32px;min-width:32px;background:linear-gradient(135deg,#1d4ed8,#7c3aed);border-radius:8px;display:flex;align-items:center;justify-content:center}\r\n.nav-logo-mark svg{width:16px;height:16px;stroke:#fff;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}\r\n.nav-logo-name{font-size:16px;font-weight:800;color:var(--tx);letter-spacing:-.2px}\r\n.nav-links{display:none;align-items:center;gap:24px}\r\n.nav-links a{font-size:14px;font-weight:600;color:var(--tx3);transition:color .2s;text-decoration:none;padding:4px 0}\r\n.nav-links a:hover{color:var(--tx)}\r\n.nav-right{display:flex;align-items:center;gap:8px}\r\n.theme-btn{width:36px;height:36px;min-width: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:background .2s,color .2s;-webkit-tap-highlight-color:transparent}\r\n.theme-btn:hover{background:rgba(37,99,235,.12);color:var(--tx)}\r\n.theme-btn svg{width:15px;height:15px}\r\n.nav-cta-btn{display:none;align-items:center;gap:7px;padding:9px 18px;border-radius:50px;font-size:13px;font-weight:700;background:linear-gradient(135deg,#1d4ed8,#7c3aed);color:#fff;border:none;cursor:pointer;text-decoration:none;white-space:nowrap;box-shadow:0 0 16px rgba(37,99,235,.3);transition:box-shadow .2s,transform .2s;-webkit-tap-highlight-color:transparent;min-height:38px;font-family:inherit}\r\n.nav-cta-btn:hover{transform:translateY(-1px);box-shadow:0 0 24px rgba(37,99,235,.48)}\r\n.nav-cta-dot{width:6px;height:6px;min-width:6px;border-radius:50%;background:#22c55e;box-shadow:0 0 6px #22c55e;animation:dotpulse 2.4s ease-in-out infinite}\r\n@keyframes dotpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.55)}}\r\n.nav-cta-btn svg{width:13px;height:13px}\r\n\r\n\/* Hamburger *\/\r\n.nav-ham{display:flex;flex-direction:column;justify-content:center;gap:5px;padding:8px;cursor:pointer;background:none;border:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;min-width:44px;min-height:44px;align-items:center}\r\n.nav-ham span{display:block;width:22px;height:2px;background:var(--tx);border-radius:2px;transition:transform .25s,opacity .25s}\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}\r\n.nav-ham.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}\r\n\r\n\/* Mobile drawer *\/\r\n.nav-drawer{\r\n  display:none;position:fixed;top:var(--nav-h);left:0;right:0;bottom:0;\r\n  background:rgba(3,7,15,.98);\r\n  padding:8px var(--px) calc(24px + env(safe-area-inset-bottom));\r\n  z-index:999;overflow-y:auto;overscroll-behavior:contain;\r\n}\r\n@supports(backdrop-filter:blur(1px)){\r\n  .nav-drawer{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}\r\n}\r\nbody.light .nav-drawer{background:rgba(238,242,255,.98)}\r\n.nav-drawer.open{display:block}\r\n.nav-drawer a{display:flex;align-items:center;padding:16px 4px;font-size:18px;font-weight:700;color:var(--tx2);border-bottom:1px solid var(--bd);transition:color .2s;text-decoration:none}\r\n.nav-drawer a:last-of-type{border-bottom:none}\r\n.nav-drawer a:hover{color:var(--tx)}\r\n.nd-cta{margin-top:20px}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   HERO - MOBILE FIRST\r\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n#hero{\r\n  position:relative;\r\n  min-height:100dvh;min-height:100svh;\r\n  display:flex;align-items:center;\r\n  padding-top:var(--nav-h);\r\n  overflow:hidden;z-index:1;\r\n}\r\n\r\n\/* Lightweight grid background - CSS only, no canvas needed on mobile *\/\r\n.hero-bg-grid{\r\n  position:absolute;inset:0;\r\n  background-image:\r\n    linear-gradient(rgba(59,130,246,.04) 1px,transparent 1px),\r\n    linear-gradient(90deg,rgba(59,130,246,.04) 1px,transparent 1px);\r\n  background-size:48px 48px;\r\n  \/* Simple mask, no heavy radial on mobile *\/\r\n  -webkit-mask-image:radial-gradient(ellipse 90% 80% at 50% 40%,black 20%,transparent 80%);\r\n  mask-image:radial-gradient(ellipse 90% 80% at 50% 40%,black 20%,transparent 80%);\r\n  pointer-events:none;\r\n}\r\n\r\n\/* Hero inner: mobile padding tighter *\/\r\n.hero-inner{\r\n  position:relative;z-index:2;width:100%;\r\n  max-width:var(--mw);margin:0 auto;\r\n  padding:36px var(--px) 48px;\r\n}\r\n.hero-grid{display:grid;grid-template-columns:1fr;gap:0;align-items:center}\r\n\r\n\/* Hero copy *\/\r\n.hero-content{max-width:600px}\r\n.hero-live-pill{\r\n  display:inline-flex;align-items:center;gap:7px;\r\n  background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.22);\r\n  border-radius:50px;padding:5px 12px;font-size:11px;font-weight:700;\r\n  color:#6ee7b7;text-transform:uppercase;letter-spacing:.8px;margin-bottom:16px;\r\n}\r\n.hlp-dot{width:6px;height:6px;min-width:6px;background:var(--green2);border-radius:50%;box-shadow:0 0 6px var(--green2);animation:dotpulse 2.4s ease-in-out infinite}\r\n\r\n.hero-h1{\r\n  font-size:clamp(2rem,5.5vw,3.5rem);\r\n  font-weight:800;line-height:1.1;letter-spacing:-1px;margin-bottom:14px;\r\n}\r\n.hero-h1 em{\r\n  font-style:normal;\r\n  background:linear-gradient(135deg,#60a5fa,#22d3ee,#a78bfa);\r\n  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;\r\n}\r\n\r\n.hero-sub{font-size:1rem;color:var(--tx3);line-height:1.8;margin-bottom:24px;max-width:480px}\r\n.hero-sub strong{color:var(--tx);font-weight:600}\r\n\r\n\/* Hero buttons: stacked on mobile, row on desktop *\/\r\n.hero-btns{display:flex;flex-direction:column;gap:10px;margin-bottom:28px;width:100%}\r\n.hero-btns .btn{width:100%;justify-content:center}\r\n\r\n\/* Hero proof *\/\r\n.hero-proof{display:flex;align-items:center;gap:10px;flex-wrap:wrap}\r\n.proof-faces{display:flex}\r\n.proof-face{\r\n  width:28px;height:28px;min-width:28px;border-radius:50%;border:2px solid var(--bg);\r\n  display:flex;align-items:center;justify-content:center;\r\n  font-size:9px;font-weight:800;color:#fff;margin-left:-6px;\r\n}\r\n.proof-face:first-child{margin-left:0}\r\n.proof-info{font-size:12px;color:var(--tx3);line-height:1.4}\r\n.proof-info strong{color:var(--tx)}\r\n.proof-stars{color:var(--gold);display:block;font-size:11px;margin-bottom:2px}\r\n\r\n\/* Hero visual: hidden on mobile, shown on desktop *\/\r\n.hero-visual{display:none}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   TICKER\r\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n#ticker{\r\n  padding:11px 0;overflow:hidden;\r\n  border-top:1px solid rgba(37,99,235,.1);border-bottom:1px solid rgba(37,99,235,.1);\r\n  background:rgba(37,99,235,.025);position:relative;z-index:1;\r\n}\r\n.ticker-track{\r\n  display:flex;gap:36px;\r\n  animation:tickmove 32s linear infinite;\r\n  width:max-content;white-space:nowrap;\r\n}\r\n\/* Pause on hover\/focus for accessibility *\/\r\n.ticker-track:hover,.ticker-track:focus-within{animation-play-state:paused}\r\n.ticker-item{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:500;color:var(--tx3);flex-shrink:0}\r\n.ticker-dot{width:4px;height:4px;min-width:4px;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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   STATS BAR\r\n\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)}\r\n.stats-grid{\r\n  display:grid;grid-template-columns:repeat(2,1fr);\r\n  max-width:var(--mw);margin:0 auto;padding:0 var(--px);\r\n}\r\n.stat-item{\r\n  padding:24px 12px;text-align:center;border-right:1px solid var(--bd);\r\n  position:relative;overflow:hidden;transition:background .25s;\r\n}\r\n.stat-item:nth-child(2){border-right:none}\r\n.stat-item:nth-child(3){border-top:1px solid var(--bd);border-right:1px solid var(--bd)}\r\n.stat-item:nth-child(4){border-top:1px solid var(--bd);border-right:none}\r\n.stat-item::after{\r\n  content:'';position:absolute;bottom:0;left:50%;width:0;height:2px;\r\n  background:linear-gradient(90deg,var(--blue),var(--cyan));\r\n  transform:translateX(-50%);transition:width .3s;\r\n}\r\n.stat-item:hover{background:rgba(37,99,235,.03)}\r\n.stat-item:hover::after{width:50%}\r\n.stat-num{\r\n  font-size:1.8rem;font-weight:800;\r\n  background:linear-gradient(135deg,#60a5fa,#22d3ee);\r\n  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;\r\n  line-height:1;display:block;margin-bottom:4px;\r\n}\r\n.stat-lbl{font-size:11.5px;color:var(--tx3);line-height:1.4}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   PROBLEM SECTION\r\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n.prob-grid{display:grid;grid-template-columns:1fr;gap:32px;align-items:start}\r\n.prob-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px}\r\n.pm{\r\n  background:rgba(239,68,68,.07);border:1px solid rgba(239,68,68,.14);\r\n  border-radius:var(--r2);padding:12px 8px;text-align:center;\r\n  transition:transform .25s;\r\n}\r\n.pm:hover{transform:translateY(-2px)}\r\n.pm-num{font-size:1.35rem;font-weight:800;line-height:1}\r\n.pm-lbl{font-size:10px;color:#fca5a5;margin-top:4px;line-height:1.4}\r\nbody.light .pm{background:rgba(239,68,68,.05);border-color:rgba(239,68,68,.18)}\r\nbody.light .pm-lbl{color:#b91c1c}\r\n.sol-bridge{\r\n  margin-top:20px;padding:16px;\r\n  background:linear-gradient(135deg,rgba(37,99,235,.08),rgba(124,58,237,.05));\r\n  border:1px solid rgba(37,99,235,.17);border-radius:var(--r2);text-align:center;\r\n  position:relative;overflow:hidden;\r\n}\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,.38),transparent)}\r\n.sb-arrow{display:block;font-size:18px;margin:4px 0;animation:sbarrow 2s ease-in-out infinite}\r\n@keyframes sbarrow{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}\r\n.sb-txt{font-size:13px;color:var(--tx3);line-height:1.65}\r\n\r\n.pcards{display:flex;flex-direction:column;gap:9px}\r\n.pcard{\r\n  display:flex;align-items:flex-start;gap:11px;\r\n  background:var(--surf);border:1px solid var(--bd);border-left:3px solid var(--red);\r\n  border-radius:var(--r);padding:14px;\r\n  transition:border-left-color .25s,transform .25s;\r\n  opacity:0;transform:translateX(14px);\r\n}\r\n.pcard.vis{opacity:1;transform:none}\r\n.pcard:hover{border-left-color:var(--orange);transform:translateX(3px)}\r\n.pcard-ico{\r\n  width:38px;height:38px;min-width:38px;\r\n  background:rgba(239,68,68,.1);border-radius:9px;\r\n  display:flex;align-items:center;justify-content:center;flex-shrink:0;\r\n}\r\n.pcard-ico svg{width:18px;height:18px;stroke:#f87171;fill:none;stroke-width:2}\r\n.pcard-title{font-size:13px;font-weight:700;color:var(--tx);margin-bottom:3px}\r\n.pcard-txt{font-size:12px;color:var(--tx3);line-height:1.6}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   SERVICES\r\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n\/* Tabs: scrollable on mobile *\/\r\n.svc-tabs{\r\n  display:flex;gap:6px;margin:24px 0 20px;\r\n  overflow-x:auto;-webkit-overflow-scrolling:touch;\r\n  scrollbar-width:none;padding-bottom:2px;\r\n}\r\n.svc-tabs::-webkit-scrollbar{display:none}\r\n.stab{\r\n  padding:8px 15px;border-radius:50px;font-size:13px;font-weight:600;\r\n  border:1px solid var(--bd2);color:var(--tx3);background:transparent;\r\n  transition:background .2s,border-color .2s,color .2s,box-shadow .2s;\r\n  cursor:pointer;font-family:inherit;white-space:nowrap;\r\n  -webkit-tap-highlight-color:transparent;min-height:40px;flex-shrink:0;\r\n}\r\n.stab.on{\r\n  background:linear-gradient(135deg,var(--blue),var(--purple));\r\n  color:#fff;border-color:transparent;box-shadow:0 0 14px rgba(37,99,235,.26);\r\n}\r\n.stab:hover:not(.on){border-color:rgba(96,165,250,.35);color:var(--tx);background:rgba(37,99,235,.05)}\r\n.stab-panel{display:none}\r\n.stab-panel.on{display:flex;flex-direction:column;gap:12px;animation:fadein .28s ease}\r\n@keyframes fadein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}\r\n\r\n.scard{\r\n  background:var(--surf);border:1px solid var(--bd);\r\n  border-radius:var(--r3);padding:20px;position:relative;overflow:hidden;\r\n  transition:transform .25s,border-color .25s,box-shadow .25s;\r\n}\r\n.scard-bar{position:absolute;top:0;left:0;right:0;height:2px;border-radius:var(--r3) var(--r3) 0 0}\r\n.scard:hover{transform:translateY(-3px);border-color:rgba(37,99,235,.24);box-shadow:0 8px 30px rgba(0,0,0,.24)}\r\n.scard-ico{\r\n  width:42px;height:42px;min-width:42px;border-radius:11px;\r\n  display:flex;align-items:center;justify-content:center;margin-bottom:12px;\r\n  transition:transform .25s;\r\n}\r\n.scard:hover .scard-ico{transform:scale(1.06) rotate(-5deg)}\r\n.scard-ico svg{width:20px;height:20px;fill:none;stroke-width:2}\r\n.scard-title{font-size:.95rem;font-weight:800;color:var(--tx);margin-bottom:7px;letter-spacing:-.2px}\r\n.scard-desc{font-size:13px;color:var(--tx3);line-height:1.72;margin-bottom:12px}\r\n.chips{display:flex;gap:5px;flex-wrap:wrap}\r\n.chip{padding:3px 8px;border-radius:20px;font-size:10px;font-weight:600}\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.scard.detail{background:var(--surf2)}\r\n.detail-lbl{font-size:10px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.9px;margin-bottom:12px}\r\n.d-row{display:flex;align-items:center;gap:8px;margin-bottom:9px}\r\n.d-row:last-child{margin:0}\r\n.d-ico{width:24px;height:24px;min-width:24px;border-radius:6px;display:flex;align-items:center;justify-content:center}\r\n.d-ico svg{width:12px;height:12px;fill:none;stroke-width:2}\r\n.d-txt{font-size:12px;color:var(--tx3);line-height:1.5}\r\n\r\n\/* Service overview (mini cards) *\/\r\n.svc-overview{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}\r\n.sov{background:var(--surf);border:1px solid var(--bd);border-radius:var(--r2);padding:16px 12px;text-align:center;transition:transform .25s,border-color .25s}\r\n.sov:hover{transform:translateY(-3px);border-color:rgba(37,99,235,.24)}\r\n.sov-ico{width:40px;height:40px;min-width:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;margin:0 auto 9px;transition:transform .25s}\r\n.sov:hover .sov-ico{transform:scale(1.08) rotate(-5deg)}\r\n.sov-ico svg{width:18px;height:18px;fill:none;stroke-width:2}\r\n.sov-title{font-size:12px;font-weight:700;color:var(--tx);margin-bottom:3px}\r\n.sov-txt{font-size:11px;color:var(--tx3);line-height:1.5}\r\n\r\n\/* Pricing box *\/\r\n.pricing-box{\r\n  margin-top:32px;padding:20px 16px;\r\n  background:linear-gradient(135deg,rgba(37,99,235,.08),rgba(124,58,237,.05));\r\n  border:1px solid rgba(37,99,235,.15);border-radius:var(--r2);text-align:center;\r\n}\r\n.pricing-title{font-size:.97rem;font-weight:800;color:var(--tx);margin-bottom:5px}\r\n.pricing-sub{font-size:13px;color:var(--tx3);margin-bottom:14px}\r\n.pricing-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}\r\n.pr-item{background:var(--surf);border:1px solid var(--bd2);border-radius:var(--r);padding:10px 8px;text-align:center}\r\n.pr-val{font-size:1rem;font-weight:800;color:var(--blue4)}\r\n.pr-lbl{font-size:10px;color:var(--tx3);margin-top:2px}\r\nbody.light .pr-val{color:var(--blue2)}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   PROCESS\r\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n.proc-steps{display:flex;flex-direction:column;gap:0}\r\n.proc-step{display:flex;align-items:flex-start;gap:14px;padding:20px 0;border-bottom:1px solid var(--bd)}\r\n.proc-step:last-child{border-bottom:none}\r\n.step-num{\r\n  width:46px;height:46px;min-width:46px;border-radius:50%;\r\n  background:var(--surf);border:1px solid var(--bd2);\r\n  display:flex;align-items:center;justify-content:center;\r\n  font-size:17px;font-weight:800;color:var(--tx3);\r\n  transition:background .3s,border-color .3s,box-shadow .3s,color .3s,transform .3s;\r\n  flex-shrink:0;\r\n}\r\n.proc-step:hover .step-num{\r\n  background:linear-gradient(135deg,var(--blue),var(--purple));\r\n  border-color:transparent;box-shadow:0 0 20px rgba(37,99,235,.38);color:#fff;transform:scale(1.05);\r\n}\r\n.step-body{padding-top:3px;flex:1;min-width:0}\r\n.step-title{font-size:.95rem;font-weight:800;color:var(--tx);margin-bottom:5px;letter-spacing:-.2px}\r\n.step-desc{font-size:13px;color:var(--tx3);line-height:1.7}\r\n.step-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}\r\n.step-tag{padding:3px 8px;background:rgba(37,99,235,.09);border:1px solid rgba(37,99,235,.17);border-radius:20px;font-size:10px;color:var(--blue5);font-weight:600}\r\nbody.light .step-tag{color:var(--blue2)}\r\n.proc-layout{display:block}\r\n.proc-panel{display:none}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   WHY US\r\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n.why-cards{display:grid;grid-template-columns:1fr;gap:10px;margin-top:20px}\r\n.wcard{\r\n  position:relative;padding:18px 16px 16px;\r\n  background:rgba(6,14,26,.72);border-radius:14px;overflow:hidden;\r\n  transition:transform .3s,box-shadow .3s;isolation:isolate;\r\n}\r\n\/* Border via pseudo for GPU composite *\/\r\n.wcard::before{\r\n  content:'';position:absolute;inset:0;border-radius:14px;padding:1px;\r\n  background:linear-gradient(135deg,rgba(255,255,255,.07),rgba(255,255,255,.02),rgba(37,99,235,.14));\r\n  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);\r\n  -webkit-mask-composite:xor;mask-composite:exclude;\r\n  pointer-events:none;transition:background .3s;\r\n}\r\n.wcard:hover{transform:translateY(-3px);box-shadow:0 12px 36px rgba(0,0,0,.34),0 0 0 1px rgba(37,99,235,.24)}\r\n.wcard:hover::before{background:linear-gradient(135deg,rgba(37,99,235,.38),rgba(124,58,237,.24),rgba(6,182,212,.12))}\r\nbody.light .wcard{background:rgba(255,255,255,.85)}\r\n.wc-n{position:absolute;top:11px;right:12px;font-size:11px;font-weight:800;color:rgba(255,255,255,.07)}\r\nbody.light .wc-n{color:rgba(0,0,0,.06)}\r\n.wc-ico{\r\n  width:38px;height:38px;min-width:38px;\r\n  background:linear-gradient(135deg,rgba(37,99,235,.18),rgba(124,58,237,.1));\r\n  border:1px solid rgba(37,99,235,.18);border-radius:11px;\r\n  display:flex;align-items:center;justify-content:center;margin-bottom:10px;\r\n  transition:transform .3s,background .3s;\r\n}\r\n.wcard:hover .wc-ico{background:linear-gradient(135deg,rgba(37,99,235,.28),rgba(124,58,237,.18));transform:scale(1.07) rotate(-4deg)}\r\n.wc-ico svg{width:17px;height:17px;stroke:#93c5fd;fill:none;stroke-width:2}\r\nbody.light .wc-ico svg{stroke:var(--blue2)}\r\n.wc-title{font-size:13px;font-weight:800;color:var(--tx);margin-bottom:4px;letter-spacing:-.1px}\r\n.wc-txt{font-size:12px;color:var(--tx3);line-height:1.65}\r\n.wc-bar{position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(37,99,235,.42),transparent);transform:scaleX(0);transition:transform .3s}\r\n.wcard:hover .wc-bar{transform:scaleX(1)}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   REVIEWS\r\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n.rev-grid{display:grid;grid-template-columns:1fr;gap:12px}\r\n.revcard{\r\n  background:var(--surf);border:1px solid var(--bd);\r\n  border-radius:var(--r2);padding:20px;position:relative;overflow:hidden;\r\n  transition:transform .25s,border-color .25s,box-shadow .25s;\r\n}\r\n.revcard:hover{transform:translateY(-3px);border-color:rgba(37,99,235,.2);box-shadow:0 8px 30px rgba(0,0,0,.22)}\r\n.rev-stars{color:var(--gold);font-size:12px;letter-spacing:1.5px;margin-bottom:10px}\r\n.rev-text{font-size:13px;color:var(--tx3);line-height:1.8;margin-bottom:14px;font-style:italic}\r\n.rev-author{display:flex;align-items:center;gap:9px}\r\n.rev-av{width:36px;height:36px;min-width:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:11px;color:#fff}\r\n.rev-name{font-size:13px;font-weight:700;color:var(--tx)}\r\n.rev-role{font-size:11px;color:var(--tx3)}\r\n.rev-verified{display:inline-flex;align-items:center;gap:4px;background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.2);border-radius:20px;padding:2px 7px;font-size:10px;font-weight:600;color:#6ee7b7;margin-top:4px}\r\n.rev-verified svg{width:9px;height:9px;stroke:#6ee7b7;fill:none;stroke-width:2.5}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   FAQ\r\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n.faq-cats{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:24px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}\r\n.faq-cats::-webkit-scrollbar{display:none}\r\n.fcat{\r\n  padding:7px 14px;border-radius:30px;font-size:12px;font-weight:700;\r\n  border:1px solid var(--bd2);color:var(--tx3);background:transparent;\r\n  cursor:pointer;transition:all .2s;font-family:inherit;white-space:nowrap;\r\n  -webkit-tap-highlight-color:transparent;min-height:36px;flex-shrink:0;\r\n}\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,.34)}\r\n.fcat:hover:not(.on){border-color:rgba(96,165,250,.35);color:var(--tx);background:rgba(37,99,235,.04)}\r\nbody.light .fcat.on{color:var(--blue2)}\r\n\r\n.faq-list{display:flex;flex-direction:column;gap:8px}\r\n.fitem{\r\n  border-radius:12px;overflow:hidden;\r\n  background:rgba(6,14,26,.62);\r\n  border:1px solid rgba(255,255,255,.05);\r\n  transition:background .25s,border-color .25s;\r\n}\r\n.fitem:hover{background:rgba(37,99,235,.05);border-color:rgba(96,165,250,.18)}\r\n.fitem.open{background:rgba(37,99,235,.04);border-color:rgba(37,99,235,.22);box-shadow:0 5px 24px rgba(0,0,0,.24)}\r\nbody.light .fitem{background:rgba(240,245,255,.7)}\r\nbody.light .fitem:hover,.body.light .fitem.open{background:rgba(37,99,235,.04)}\r\n.fq{\r\n  display:flex;align-items:center;gap:12px;padding:16px;\r\n  width:100%;text-align:left;background:none;border:none;cursor:pointer;\r\n  font-family:inherit;-webkit-tap-highlight-color:transparent;\r\n  touch-action:manipulation;min-height:52px;\r\n}\r\n.fq-n{font-size:10px;font-weight:800;color:rgba(255,255,255,.12);flex-shrink:0;min-width:18px;transition:color .2s}\r\nbody.light .fq-n{color:rgba(0,0,0,.1)}\r\n.fitem:hover .fq-n,.fitem.open .fq-n{color:rgba(96,165,250,.5)}\r\n.fq-txt{flex:1;font-size:14px;font-weight:700;color:var(--tx);line-height:1.4;text-align:left}\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{\r\n  width:26px;height:26px;min-width:26px;border-radius:50%;flex-shrink:0;\r\n  display:flex;align-items:center;justify-content:center;\r\n  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);\r\n  color:var(--tx3);transition:all .28s;position:relative;\r\n}\r\n.ftoggle::before,.ftoggle::after{content:'';position:absolute;background:currentColor;border-radius:2px;transition:all .28s}\r\n.ftoggle::before{width:10px;height:1.5px}\r\n.ftoggle::after{width:1.5px;height:10px}\r\n.fitem:hover .ftoggle{background:rgba(96,165,250,.1);border-color:rgba(96,165,250,.26);color:#93c5fd}\r\n.fitem.open .ftoggle{background:linear-gradient(135deg,rgba(37,99,235,.3),rgba(124,58,237,.2));border-color:rgba(96,165,250,.4);color:#93c5fd;transform:rotate(45deg)}\r\n.fbody{max-height:0;overflow:hidden;transition:max-height .38s cubic-bezier(.16,1,.3,1),padding .3s}\r\n.fitem.open .fbody{max-height:300px;padding-bottom:16px}\r\n.fansw{padding:0 16px 0 46px;font-size:13px;color:var(--tx3);line-height:1.8}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   FOOTER CTA\r\n\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:52px 0;text-align:center;position:relative;overflow:hidden;z-index:1}\r\n.ftcta-glow{position:absolute;width:320px;height:320px;background:radial-gradient(circle,rgba(37,99,235,.07),transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}\r\n.ftcta-inner{position:relative;z-index:1;max-width:580px;margin:0 auto;padding:0 var(--px)}\r\n.ftcta-h2{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;letter-spacing:-.8px;margin:10px 0;line-height:1.1}\r\n.ftcta-p{color:var(--tx3);font-size:1rem;margin-bottom:24px;line-height:1.78}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   CONTACT\r\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n.contact-grid{display:grid;grid-template-columns:1fr;gap:28px;align-items:start}\r\n.contact-h2{font-size:clamp(1.8rem,3.5vw,2.4rem);font-weight:800;letter-spacing:-.8px;margin-bottom:9px}\r\n.contact-p{font-size:1rem;color:var(--tx3);line-height:1.8;margin-bottom:20px}\r\n.ci-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}\r\n.ci-row{\r\n  display:flex;align-items:center;gap:11px;padding:12px 13px;\r\n  background:var(--surf);border:1px solid var(--bd);border-radius:var(--r);\r\n  transition:border-color .2s,transform .2s;\r\n}\r\n.ci-row:hover{border-color:rgba(37,99,235,.2);transform:translateX(3px)}\r\n.ci-icon{width:34px;height:34px;min-width:34px;background:linear-gradient(135deg,rgba(37,99,235,.17),rgba(37,99,235,.06));border-radius:8px;display:flex;align-items:center;justify-content:center}\r\n.ci-icon svg{width:15px;height:15px;stroke:#60a5fa;fill:none;stroke-width:2}\r\nbody.light .ci-icon svg{stroke:var(--blue2)}\r\n.ci-lbl{font-size:10.5px;color:var(--tx3);font-weight:500}\r\n.ci-val{font-size:13px;color:var(--tx);font-weight:700}\r\n.cal-box{padding:14px 15px;background:linear-gradient(135deg,rgba(37,99,235,.08),rgba(124,58,237,.06));border:1px solid rgba(37,99,235,.16);border-radius:var(--r);display:flex;align-items:center;gap:12px}\r\n.cal-ico{width:34px;height:34px;min-width:34px;background:linear-gradient(135deg,var(--blue),var(--purple));border-radius:8px;display:flex;align-items:center;justify-content:center}\r\n.cal-ico svg{width:15px;height:15px;stroke:#fff;fill:none;stroke-width:2}\r\n.cal-title{font-size:13px;font-weight:700;color:var(--tx)}\r\n.cal-sub{font-size:11px;color:var(--tx3)}\r\n\r\n\/* FORM *\/\r\n.cform{background:var(--surf);border:1px solid var(--bd);border-radius:var(--r2);padding:20px 16px}\r\n.frow{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:12px}\r\n.fgroup{margin-bottom:12px}\r\nlabel{display:block;font-size:11.5px;color:var(--tx3);font-weight:600;margin-bottom:5px;letter-spacing:.2px}\r\ninput[type=\"text\"],input[type=\"email\"],input[type=\"tel\"],select,textarea{\r\n  width:100%;padding:12px 13px;\r\n  background:rgba(255,255,255,.04);border:1px solid var(--bd);\r\n  border-radius:var(--r);color:var(--tx);font-size:16px;\/* 16px prevents iOS zoom *\/\r\n  outline:none;transition:border-color .2s,box-shadow .2s;\r\n  -webkit-appearance:none;font-family:inherit;min-height:48px;\r\n}\r\nbody.light input,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,.48);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,.48)}\r\nselect option{background:var(--bg3);color:var(--tx)}\r\ntextarea{resize:vertical;min-height:96px}\r\n.ferr{font-size:11px;color:var(--red);margin-top:3px;display:none}\r\n.ferr.show{display:block}\r\n.fsuccess{display:none;text-align:center;padding:20px;background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.22);border-radius:var(--r);margin-top:8px}\r\n.fsuccess svg{width:32px;height:32px;stroke:var(--green);fill:none;stroke-width:2;margin:0 auto 8px}\r\n.fsuccess h3{font-size:15px;font-weight:700;margin-bottom:4px}\r\n.fsuccess p{font-size:13px;color:var(--tx3)}\r\n.hp-trap{display:none!important;visibility:hidden;height:0;overflow:hidden}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   FOOTER\r\n\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:40px 0 20px}\r\nbody.light #footer{background:#dce5ff}\r\n.footer-inner{max-width:var(--mw);margin:0 auto;padding:0 var(--px)}\r\n.footer-top{display:grid;grid-template-columns:1fr 1fr;gap:24px 16px;margin-bottom:28px}\r\n.footer-brand{grid-column:1\/-1}\r\n.footer-brand p{font-size:12px;color:var(--tx3);line-height:1.7;max-width:260px;margin-top:8px}\r\n.footer-col-title{font-size:10px;font-weight:700;color:var(--tx);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px}\r\n.footer-col a{display:block;font-size:12.5px;color:var(--tx3);margin-bottom:7px;transition:color .2s;text-decoration:none}\r\n.footer-col a:hover{color:var(--tx)}\r\n.footer-bottom{border-top:1px solid var(--bd);padding-top:16px;display:flex;flex-direction:column;gap:6px}\r\n.footer-bottom span{font-size:11.5px;color:var(--tx4)}\r\n.footer-ssl{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--tx4)}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   PROCESS PANEL (desktop only styles - not loaded on mobile via media query)\r\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n.proc-tracker{display:flex;background:rgba(255,255,255,.03);border:1px solid var(--bd);border-radius:12px;overflow:hidden;padding:4px;margin-bottom:12px}\r\n.ptrk-btn{flex:1;padding:8px 4px;text-align:center;font-size:10px;font-weight:700;color:var(--tx3);border-radius:8px;transition:all .25s;cursor:pointer;border:none;background:transparent;letter-spacing:.3px;text-transform:uppercase;font-family:inherit}\r\n.ptrk-btn.on{background:linear-gradient(135deg,rgba(37,99,235,.24),rgba(124,58,237,.16));color:#93c5fd;box-shadow:inset 0 0 0 1px rgba(37,99,235,.26)}\r\nbody.light .ptrk-btn.on{color:var(--blue2)}\r\n.pc-wrap{position:relative;min-height:360px}\r\n.pc{position:absolute;inset:0;border-radius:16px;opacity:0;transform:translateY(12px) scale(.97);transition:all .4s cubic-bezier(.16,1,.3,1);pointer-events:none}\r\n.pc.on{opacity:1;transform:none;pointer-events:all;position:relative}\r\n.pc.gone{opacity:0;transform:translateY(-10px) scale(.97);position:absolute;pointer-events:none}\r\n.pc-inner{background:linear-gradient(148deg,rgba(8,18,38,.94),rgba(4,10,22,.97));border:1px solid rgba(255,255,255,.09);border-radius:16px;overflow:hidden;box-shadow:0 16px 44px rgba(0,0,0,.44),inset 0 1px 0 rgba(255,255,255,.06)}\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,.3),transparent);animation:accshine 3s 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:11px;padding:16px 16px 0}\r\n.pc-stepnum{font-size:50px;font-weight:800;line-height:.85;background:linear-gradient(135deg,var(--pc1),var(--pc2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:.16;letter-spacing:-4px;flex-shrink:0}\r\n.pc-meta{padding-top:2px;flex:1}\r\n.pc-label{display:inline-flex;align-items:center;gap:4px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:1.3px;color:var(--pc2);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);border-radius:30px;padding:3px 9px;margin-bottom:6px}\r\n.pc-label::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--pc2);box-shadow:0 0 4px var(--pc2)}\r\n.pc-title{font-size:14px;font-weight:800;color:var(--tx);line-height:1.25;letter-spacing:-.2px}\r\n.pc-body{padding:10px 16px;font-size:12px;color:var(--tx3);line-height:1.72}\r\n.pc-feats{margin:0 16px 12px;display:flex;flex-direction:column;gap:6px}\r\n.pc-feat{display:flex;align-items:center;gap:8px;padding:7px 11px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);border-radius:8px;font-size:12px;color:var(--tx2)}\r\n.pc-feat-ico{width:22px;height:22px;min-width:22px;border-radius:6px;background:linear-gradient(135deg,rgba(37,99,235,.18),rgba(124,58,237,.1));border:1px solid rgba(37,99,235,.15);display:flex;align-items:center;justify-content:center}\r\n.pc-feat-ico svg{width:10px;height:10px;fill:none;stroke-width:2}\r\n.pc-foot{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid rgba(255,255,255,.05)}\r\n.pc-prog-wrap{flex:1}\r\n.pc-prog-lbl{font-size:9px;color:var(--tx3);text-transform:uppercase;letter-spacing:.8px;margin-bottom:4px;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 .6s cubic-bezier(.16,1,.3,1)}\r\n.pc-tag{padding:3px 9px;border-radius:30px;font-size:10px;font-weight:700;color:var(--pc2);border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.05);white-space:nowrap}\r\n.proc-dots{display:flex;justify-content:center;gap:6px;margin-top:12px}\r\n.pdot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.14);border:none;cursor:pointer;transition:all .25s;padding:0;-webkit-tap-highlight-color:transparent}\r\n.pdot.on{width:18px;border-radius:4px;background:linear-gradient(90deg,var(--blue),var(--purple))}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   HERO VISUAL (desktop)\r\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n.hv-main-card{\r\n  position:absolute;top:50%;left:50%;\r\n  transform:translate(-50%,-52%) rotateX(6deg) rotateY(-12deg);\r\n  width:272px;background:rgba(8,18,38,.92);\r\n  border:1px solid rgba(255,255,255,.1);border-radius:var(--r3);padding:18px;\r\n  box-shadow:0 24px 60px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.07);\r\n  animation:cardfloat 8s ease-in-out infinite;will-change:transform;\r\n}\r\n@keyframes cardfloat{0%,100%{transform:translate(-50%,-52%) rotateX(6deg) rotateY(-12deg) translateY(0)}50%{transform:translate(-50%,-52%) rotateX(6deg) rotateY(-12deg) translateY(-10px)}}\r\n.hvc-hd{display:flex;align-items:center;gap:9px;margin-bottom:13px}\r\n.hvc-ico{width:28px;height:28px;min-width:28px;background:linear-gradient(135deg,#1d4ed8,#7c3aed);border-radius:7px;display:flex;align-items:center;justify-content:center}\r\n.hvc-ico svg{width:14px;height:14px;stroke:#fff;fill:none}\r\n.hvc-label{font-size:11px;font-weight:700;color:var(--tx)}\r\n.hvc-sub{font-size:9.5px;color:var(--tx3)}\r\n.hvc-stats{display:flex;gap:6px;margin-bottom:12px}\r\n.hvc-stat{flex:1;background:rgba(255,255,255,.04);border:1px solid var(--bd);border-radius:8px;padding:7px 5px;text-align:center}\r\n.hvc-snum{font-size:11.5px;font-weight:800;line-height:1}\r\n.hvc-slbl{font-size:8.5px;color:var(--tx3);text-transform:uppercase;margin-top:2px}\r\n.hvc-bar{height:3px;background:rgba(255,255,255,.06);border-radius:2px;margin-top:4px;overflow:hidden}\r\n.hvc-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,#2563eb,#22d3ee);animation:barfill 2.5s ease forwards}\r\n@keyframes barfill{from{width:0}}\r\n.hvc-tags{display:flex;gap:4px;flex-wrap:wrap}\r\n.hvc-tag{padding:2px 7px;background:rgba(37,99,235,.12);border:1px solid rgba(37,99,235,.2);border-radius:20px;font-size:8.5px;color:#93c5fd;font-weight:600}\r\n\r\n\/* Rings - simple CSS, no JS *\/\r\n.hv-rings{position:absolute;top:50%;left:50%;pointer-events:none}\r\n.hv-ring{position:absolute;border-radius:50%;border:1px dashed;animation:ringspin linear infinite}\r\n.hr1{width:340px;height:340px;margin:-170px 0 0 -170px;border-color:rgba(37,99,235,.1);animation-duration:24s}\r\n.hr2{width:250px;height:250px;margin:-125px 0 0 -125px;border-color:rgba(124,58,237,.08);animation-duration:18s;animation-direction:reverse}\r\n@keyframes ringspin{from{transform:rotate(0)}to{transform:rotate(360deg)}}\r\n.hv-dot{position:absolute;border-radius:50%;top:50%;left:50%;transform-origin:0 0;animation:dotorbit linear infinite}\r\n.hd1{width:7px;height:7px;background:#60a5fa;box-shadow:0 0 7px #60a5fa;animation-duration:6s;margin:-3.5px 0 0 -3.5px}\r\n.hd2{width:5px;height:5px;background:#a78bfa;box-shadow:0 0 6px #a78bfa;animation-duration:8s;animation-direction:reverse;margin:-2.5px 0 0 -2.5px}\r\n@keyframes dotorbit{0%{transform:rotate(0deg) translateX(165px) rotate(0deg)}100%{transform:rotate(360deg) translateX(165px) rotate(-360deg)}}\r\n\r\n\/* Floating cards *\/\r\n.hv-float{position:absolute;background:rgba(8,18,38,.92);border:1px solid var(--bd2);border-radius:11px;padding:10px 12px;box-shadow:0 7px 20px rgba(0,0,0,.32);font-size:10.5px}\r\n.hvf1{top:8%;right:2%;animation:hvfl 6s ease-in-out infinite}\r\n.hvf2{bottom:10%;left:3%;animation:hvfl 5.5s ease-in-out infinite;animation-delay:-3s}\r\n@keyframes hvfl{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}\r\n.hvf-title{font-weight:700;color:var(--tx);margin-bottom:6px;font-size:10.5px}\r\n.hvf-row{display:flex;align-items:center;gap:6px;margin-bottom:4px}\r\n.hvf-row:last-child{margin:0}\r\n.hvf-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}\r\n.hvf-txt{color:var(--tx3);font-size:10px}\r\n.hvf-big{font-size:18px;font-weight:800;margin:2px 0 4px}\r\n\r\n\/* Pills *\/\r\n.hv-pill{position:absolute;background:rgba(8,18,38,.93);border:1px solid var(--bd2);border-radius:7px;padding:4px 9px;font-size:9.5px;font-weight:700;color:var(--tx);white-space:nowrap;animation:hvfl ease-in-out infinite}\r\n.hp1{top:16%;left:3%;animation-duration:4.5s}\r\n.hp2{top:30%;right:1%;animation-duration:5.5s;animation-delay:-2s}\r\n.hp3{bottom:22%;left:7%;animation-duration:6s;animation-delay:-3.5s}\r\n.hp-dot{display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:4px;vertical-align:middle}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\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   ABOUT SECTION\r\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\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#about .about-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:32px}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\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   TABLET BREAKPOINT - 600px\r\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\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(min-width:600px){\r\n  :root{--px:22px}\r\n  .pricing-grid{grid-template-columns:repeat(4,1fr)}\r\n  .svc-overview{grid-template-columns:repeat(4,1fr)}\r\n  .hero-btns{flex-direction:row}\r\n  .hero-btns .btn{width:auto}\r\n}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\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   DESKTOP BREAKPOINT - 768px\r\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\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(min-width:768px){\r\n  :root{--px:32px;--py:72px;--nav-h:62px}\r\n\r\n  \/* Nav *\/\r\n  .nav-links{display:flex!important}\r\n  .nav-cta-btn{display:inline-flex!important}\r\n  .nav-ham{display:none!important}\r\n\r\n  \/* Hero *\/\r\n  .hero-inner{padding:52px var(--px) 64px}\r\n  .hero-grid{grid-template-columns:1fr 1fr;gap:48px}\r\n  .hero-visual{display:block;position:relative;height:440px}\r\n\r\n  \/* Stats *\/\r\n  .stats-grid{grid-template-columns:repeat(4,1fr)}\r\n  .stat-item{border-right:1px solid var(--bd)}\r\n  .stat-item:nth-child(3){border-top:none}\r\n  .stat-item:nth-child(4){border-right:none}\r\n\r\n  \/* Problem *\/\r\n  .prob-grid{grid-template-columns:1fr 1fr;gap:52px}\r\n\r\n  \/* Services tab panels *\/\r\n  .stab-panel.on{flex-direction:row;gap:14px}\r\n  .stab-panel.on .scard{flex:1}\r\n\r\n  \/* Why *\/\r\n  .why-cards{grid-template-columns:1fr 1fr}\r\n\r\n  \/* About cards *\/\r\n  #about .about-cards{grid-template-columns:repeat(4,1fr)}\r\n\r\n  \/* Reviews *\/\r\n  .rev-grid{grid-template-columns:repeat(3,1fr)}\r\n\r\n  \/* Contact *\/\r\n  .contact-grid{grid-template-columns:1fr 1.3fr;gap:48px}\r\n\r\n  \/* Footer *\/\r\n  .footer-top{grid-template-columns:2fr 1fr 1fr 1fr}\r\n  .footer-brand{grid-column:auto}\r\n  .footer-bottom{flex-direction:row;justify-content:space-between;align-items:center}\r\n\r\n  \/* Form row *\/\r\n  .frow{grid-template-columns:1fr 1fr}\r\n\r\n  \/* Process layout *\/\r\n  .proc-layout{display:grid;grid-template-columns:1fr 380px;gap:48px;align-items:start}\r\n  .proc-panel{display:block;position:sticky;top:80px}\r\n}\r\n\r\n@media(min-width:1024px){\r\n  :root{--px:40px;--py:88px}\r\n}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   MOBILE ONLY\r\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n@media(max-width:767px){\r\n  .nav-links,.nav-cta-btn{display:none!important}\r\n  .nav-ham{display:flex!important}\r\n  .hero-visual{display:none!important}\r\n  .proc-panel{display:none!important}\r\n  .proc-layout{display:block}\r\n  .stab-panel.on{flex-direction:column}\r\n  \/* Disable backdrop-filter on mobile cards for perf *\/\r\n  .cform,.revcard,.wcard,.scard{backdrop-filter:none;-webkit-backdrop-filter:none}\r\n}\r\n\r\n\/* Very small mobile *\/\r\n@media(max-width:380px){\r\n  :root{--px:14px}\r\n  .hero-h1{font-size:1.8rem}\r\n  .prob-metrics{grid-template-columns:1fr 1fr}\r\n  .pm:last-child{grid-column:1\/-1}\r\n  .svc-tabs{gap:5px}\r\n  .stab{padding:7px 12px;font-size:12px}\r\n  .faq-cats{gap:5px}\r\n  .fcat{padding:6px 11px;font-size:11px}\r\n  #about .about-cards{grid-template-columns:1fr}\r\n}\r\n<\/style>\r\n\r\n<!-- Google tag (gtag.js) -->\r\n<script async src=\"https:\/\/www.googletagmanager.com\/gtag\/js?id=G-1GMXTCPW4M\"><\/script>\r\n<script>\r\n  window.dataLayer = window.dataLayer || [];\r\n  function gtag(){dataLayer.push(arguments);}\r\n  gtag('js', new Date());\r\n\r\n  gtag('config', 'G-1GMXTCPW4M');\r\n<\/script>\r\n<\/head>\r\n<body>\r\n\r\n<a href=\"#main\" class=\"skip-link\">Skip to main content<\/a>\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\u2550\u2550 -->\r\n<header id=\"site-header\" role=\"banner\">\r\n  <div class=\"nav-wrap\">\r\n    <a href=\"https:\/\/solidwiki.com\/\" 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\"><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\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\r\n    <div class=\"nav-right\">\r\n      <button class=\"theme-btn\" id=\"theme-btn\" aria-label=\"Toggle dark\/light mode\">\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=\"nav-cta-btn\" aria-label=\"Book a free consultation call\">\r\n        <span class=\"nav-cta-dot\" aria-hidden=\"true\"><\/span>\r\n        Free Consultation\r\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" aria-hidden=\"true\" width=\"13\" height=\"13\"><path d=\"M5 12h14M12 5l7 7-7 7\"\/><\/svg>\r\n      <\/a>\r\n    <\/div>\r\n\r\n    <button class=\"nav-ham\" id=\"hamburger\" aria-label=\"Open navigation\" 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  <\/div>\r\n\r\n  <nav class=\"nav-drawer\" id=\"nav-drawer\" aria-label=\"Mobile navigation\" aria-hidden=\"true\">\r\n    <a href=\"#services\" tabindex=\"-1\">Services<\/a>\r\n    <a href=\"#process\" tabindex=\"-1\">Process<\/a>\r\n    <a href=\"#why\" tabindex=\"-1\">Why Us<\/a>\r\n    <a href=\"#reviews\" tabindex=\"-1\">Client Reviews<\/a>\r\n    <a href=\"#faq\" tabindex=\"-1\">FAQ<\/a>\r\n    <div class=\"nd-cta\">\r\n      <a href=\"#contact\" class=\"btn btn-primary btn-full\" tabindex=\"-1\">\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\" width=\"16\" height=\"16\"><path d=\"M5 12h14M12 5l7 7-7 7\"\/><\/svg>\r\n        Book 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\u2550\u2550 -->\r\n<section id=\"hero\" aria-labelledby=\"hero-h1\">\r\n  <div class=\"hero-bg-grid\" aria-hidden=\"true\"><\/div>\r\n\r\n  <div class=\"hero-inner\">\r\n    <div class=\"hero-grid\">\r\n\r\n      <!-- Left: copy -->\r\n      <div class=\"hero-content\">\r\n        <div class=\"hero-live-pill\" aria-label=\"Currently open for new projects\">\r\n          <span class=\"hlp-dot\" aria-hidden=\"true\"><\/span>\r\n          Open for New Projects\r\n        <\/div>\r\n\r\n        <h1 class=\"hero-h1\" id=\"hero-h1\">\r\n          Stop Losing Work in<br>\r\n          <em>Scattered Docs &amp;<br>Old Slack Threads<\/em>\r\n        <\/h1>\r\n\r\n        <p class=\"hero-sub\">\r\n          We set up <strong>MediaWiki<\/strong> for your team - a single, searchable knowledge base where nothing gets buried. We're a small, focused MediaWiki development company. Our first real client wiki is already live, and we're ready to build yours next.\r\n        <\/p>\r\n\r\n        <div class=\"hero-btns\">\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 Call\r\n          <\/a>\r\n          <a href=\"#services\" class=\"btn btn-ghost\">\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 Do\r\n          <\/a>\r\n        <\/div>\r\n\r\n        <div class=\"hero-proof\">\r\n          <div class=\"proof-faces\" aria-hidden=\"true\">\r\n            <div class=\"proof-face\" style=\"background:linear-gradient(135deg,#1d4ed8,#7c3aed)\">P<\/div>\r\n            <div class=\"proof-face\" style=\"background:linear-gradient(135deg,#7c3aed,#ec4899)\">M<\/div>\r\n            <div class=\"proof-face\" style=\"background:linear-gradient(135deg,#06b6d4,#10b981)\">DL<\/div>\r\n          <\/div>\r\n          <div class=\"proof-info\">\r\n            <span class=\"proof-stars\" aria-label=\"5 out of 5 stars\">\u2605\u2605\u2605\u2605\u2605<\/span>\r\n            First clients love the results - and we're proud of that\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- Right: platform card (desktop only) -->\r\n      <div class=\"hero-visual\" aria-label=\"MediaWiki wiki dashboard preview\" role=\"img\">\r\n        <div class=\"hv-rings\" aria-hidden=\"true\">\r\n          <div class=\"hv-ring hr1\"><\/div>\r\n          <div class=\"hv-ring hr2\"><\/div>\r\n          <div class=\"hv-dot hd1\"><\/div>\r\n          <div class=\"hv-dot hd2\"><\/div>\r\n        <\/div>\r\n        <div class=\"hv-main-card\" id=\"hv-card\">\r\n          <div class=\"hvc-hd\">\r\n            <div class=\"hvc-ico\"><svg viewBox=\"0 0 24 24\" stroke-width=\"2\" fill=\"none\" stroke=\"#fff\" 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-label\">Team Wiki Dashboard<\/div><div class=\"hvc-sub\">wiki.yourteam.com<\/div><\/div>\r\n          <\/div>\r\n          <div class=\"hvc-stats\">\r\n            <div class=\"hvc-stat\"><div class=\"hvc-snum gt-blue\">Fast<\/div><div class=\"hvc-slbl\">Load time<\/div><div class=\"hvc-bar\"><div class=\"hvc-fill\" style=\"width:93%\"><\/div><\/div><\/div>\r\n            <div class=\"hvc-stat\"><div class=\"hvc-snum gt-green\">Safe<\/div><div class=\"hvc-slbl\">Daily backup<\/div><div class=\"hvc-bar\"><div class=\"hvc-fill\" style=\"width:100%;background:linear-gradient(90deg,#22c55e,#22d3ee)\"><\/div><\/div><\/div>\r\n            <div class=\"hvc-stat\"><div class=\"hvc-snum\" style=\"font-size:10px;font-weight:800;color:#a78bfa\">Yours<\/div><div class=\"hvc-slbl\">Your server<\/div><div class=\"hvc-bar\"><div class=\"hvc-fill\" style=\"width:100%;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\">Your server<\/span><span class=\"hvc-tag\">No monthly fee<\/span>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"hv-float hvf1\" aria-hidden=\"true\">\r\n          <div class=\"hvf-title\">Status<\/div>\r\n          <div class=\"hvf-row\"><span class=\"hvf-dot\" style=\"background:#22c55e\"><\/span><span class=\"hvf-txt\">Wiki running fine<\/span><\/div>\r\n          <div class=\"hvf-row\"><span class=\"hvf-dot\" style=\"background:#a78bfa\"><\/span><span class=\"hvf-txt\">Last backup: today<\/span><\/div>\r\n          <div class=\"hvf-row\"><span class=\"hvf-dot\" style=\"background:#f59e0b\"><\/span><span class=\"hvf-txt\">Update ready<\/span><\/div>\r\n        <\/div>\r\n        <div class=\"hv-float hvf2\" aria-hidden=\"true\">\r\n          <div class=\"hvf-title\">Page Speed<\/div>\r\n          <div class=\"hvf-big gt-green\">A+<\/div>\r\n          <div style=\"font-size:9.5px;color:var(--tx3);margin-bottom:4px\">Core Web Vitals<\/div>\r\n          <div class=\"hvc-bar\"><div class=\"hvc-fill\" style=\"width:96%;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>Zero data loss<\/div>\r\n        <div class=\"hv-pill hp2\" aria-hidden=\"true\"><span class=\"hp-dot\" style=\"background:#60a5fa\"><\/span>Fixed price<\/div>\r\n        <div class=\"hv-pill hp3\" aria-hidden=\"true\"><span class=\"hp-dot\" style=\"background:#a78bfa\"><\/span>You own everything<\/div>\r\n      <\/div>\r\n\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=\"What we stand for\">\r\n  <div class=\"ticker-track\" aria-hidden=\"true\">\r\n    <span class=\"ticker-item\"><span class=\"ticker-dot\"><\/span>Fixed-price proposals always<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-dot\"><\/span>You own 100% of your wiki<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-dot\"><\/span>Zero data loss migrations<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-dot\"><\/span>No per-seat fees, ever<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-dot\"><\/span>Built on open source<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-dot\"><\/span>Team training included<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-dot\"><\/span>Delivered in 2\u20134 weeks<\/span>\r\n    <!-- duplicate for seamless loop -->\r\n    <span class=\"ticker-item\"><span class=\"ticker-dot\"><\/span>Fixed-price proposals always<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-dot\"><\/span>You own 100% of your wiki<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-dot\"><\/span>Zero data loss migrations<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-dot\"><\/span>No per-seat fees, ever<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-dot\"><\/span>Built on open source<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-dot\"><\/span>Team training included<\/span>\r\n    <span class=\"ticker-item\"><span class=\"ticker-dot\"><\/span>Delivered in 2\u20134 weeks<\/span>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- \u2550\u2550 ABOUT \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\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=\"about\" class=\"alt\" aria-labelledby=\"about-h2\">\r\n  <div class=\"container\">\r\n    <div class=\"fade-up\" style=\"max-width:680px;margin:0 auto;text-align:center\">\r\n      <span class=\"badge badge-green\">Who We Are<\/span>\r\n      <h2 class=\"sec-title\" id=\"about-h2\" style=\"margin-top:10px\">A New Team With<br>One Clear Focus<\/h2>\r\n      <p class=\"sec-sub\" style=\"margin:12px auto 0;max-width:580px\">\r\n        We're not going to pretend we've been doing this for fifteen years. SolidWiki is a small, focused team that set up its first MediaWiki installation for a real client and saw firsthand how much difference a properly organised knowledge base makes to a growing team.\r\n        We work exclusively with MediaWiki. We're transparent about where we are as a business, and we believe the best way to build a reputation is to do the actual work well - not to claim a history we don't have.\r\n      <\/p>\r\n    <\/div>\r\n\r\n    <div class=\"about-cards fade-up\">\r\n      <div class=\"wcard\" style=\"text-align:center\">\r\n        <div class=\"wc-ico\" style=\"margin:0 auto 10px\"><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\">Honest, Always<\/div>\r\n        <div class=\"wc-txt\">No fake stats, no inflated credentials. We tell you exactly where we are as a company and exactly what you'll get from working with us.<\/div>\r\n        <div class=\"wc-bar\"><\/div>\r\n      <\/div>\r\n      <div class=\"wcard\" style=\"text-align:center\">\r\n        <div class=\"wc-ico\" style=\"margin:0 auto 10px\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" 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 class=\"wc-title\">MediaWiki Only<\/div>\r\n        <div class=\"wc-txt\">We focus entirely on MediaWiki development, so your project gets proper depth and attention - not a rushed, generic CMS setup handled by someone juggling five different platforms.<\/div>\r\n        <div class=\"wc-bar\"><\/div>\r\n      <\/div>\r\n      <div class=\"wcard\" style=\"text-align:center\">\r\n        <div class=\"wc-ico\" style=\"margin:0 auto 10px\"><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\">Fixed Price<\/div>\r\n        <div class=\"wc-txt\">Every proposal is delivered in writing, with scope, price, and timeline spelled out clearly. You commit only when you're satisfied with what's in front of you.<\/div>\r\n        <div class=\"wc-bar\"><\/div>\r\n      <\/div>\r\n      <div class=\"wcard\" style=\"text-align:center\">\r\n        <div class=\"wc-ico\" style=\"margin:0 auto 10px\"><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\">You Own Everything<\/div>\r\n        <div class=\"wc-txt\">Your wiki runs on your own server, using open-source software. There's no lock-in and no ongoing dependency on us once your project is delivered.<\/div>\r\n        <div class=\"wc-bar\"><\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\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\u2550\u2550 -->\r\n<section id=\"problem\" aria-labelledby=\"prob-h2\">\r\n  <div class=\"container\">\r\n    <div class=\"prob-grid\">\r\n      <div class=\"fade-left\">\r\n        <span class=\"badge badge-red\">Sound Familiar?<\/span>\r\n        <h2 class=\"sec-title\" id=\"prob-h2\" style=\"margin-top:10px\">Your Team's Knowledge Is<br><span class=\"gt-red\">Everywhere and Nowhere<\/span><\/h2>\r\n        <p class=\"sec-sub\">\r\n          It starts small. A shared Google Drive folder here, a Notion page there, some important context buried in a Slack thread from six months ago. Before long, nobody knows where to look, and new hires spend their first month just piecing things together.\r\n        <\/p>\r\n        <p class=\"sec-sub\" style=\"margin-top:10px\">\r\n          This isn't really a productivity problem - it's a knowledge problem. The longer it goes unaddressed, the more it costs you in lost time, slower onboarding, and people walking out the door with knowledge that only existed in their heads, rather than anywhere searchable.\r\n        <\/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 work hours go to finding information that already exists<\/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 a proper knowledge base<\/div><\/div>\r\n          <div class=\"pm fade-up\"><div class=\"pm-num gt-red\">Real cost<\/div><div class=\"pm-lbl\">when a key person leaves with knowledge in their head<\/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 straightforward fix for this.<\/p>\r\n          <span class=\"sb-arrow\" aria-hidden=\"true\">\u2193<\/span>\r\n          <strong style=\"font-size:.95rem;color:var(--blue4);display:block;margin-bottom:4px\">A proper wiki - built right, from day one.<\/strong>\r\n          <span class=\"sb-txt\">One place. Everything searchable. Your whole team knows where to look.<\/span>\r\n        <\/div>\r\n      <\/div>\r\n\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\" stroke-width=\"2\" fill=\"none\" stroke=\"currentColor\"><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>\r\n            <div class=\"pcard-title\">Docs split across five different tools<\/div>\r\n            <div class=\"pcard-txt\">Google Drive, Notion, email attachments, Slack pins - your information is fragmented, and the team wastes time figuring out which version to trust.<\/div>\r\n          <\/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\" stroke-width=\"2\" fill=\"none\" stroke=\"currentColor\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg><\/div>\r\n          <div>\r\n            <div class=\"pcard-title\">Time wasted searching every single day<\/div>\r\n            <div class=\"pcard-txt\">\"Where's the onboarding checklist?\" sounds small. But when your whole team asks a version of this five times a day, it adds up to hours of real, billable time going nowhere.<\/div>\r\n          <\/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\" stroke-width=\"2\" fill=\"none\" stroke=\"currentColor\"><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.87M16 3.13a4 4 0 010 7.75\"\/><\/svg><\/div>\r\n          <div>\r\n            <div class=\"pcard-title\">New hires take too long to get up to speed<\/div>\r\n            <div class=\"pcard-txt\">Without a clear knowledge base, onboarding means shadowing, asking constant questions, and piecing things together slowly. Your senior people end up spending weeks being interrupted.<\/div>\r\n          <\/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\" stroke-width=\"2\" fill=\"none\" stroke=\"currentColor\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0110 0v4\"\/><\/svg><\/div>\r\n          <div>\r\n            <div class=\"pcard-title\">When someone leaves, their knowledge goes with them<\/div>\r\n            <div class=\"pcard-txt\">When workflows, contacts, and edge-case handling live only in someone's head and nothing is written down, you're starting from scratch every time that person moves on.<\/div>\r\n          <\/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\u2550 -->\r\n<section id=\"services\" class=\"alt\" aria-labelledby=\"svc-h2\">\r\n  <div class=\"container\">\r\n    <div class=\"sec-header center fade-up\">\r\n      <span class=\"badge badge-blue\">What We Do<\/span>\r\n      <h2 class=\"sec-title\" id=\"svc-h2\">Everything Your Wiki Needs,<br>Done Properly the First Time<\/h2>\r\n      <p class=\"sec-sub\">MediaWiki is all we do. So when you work with us, you get someone who has thought carefully about how to set it up well - not someone reading the documentation for the first time on your project.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"svc-tabs\" role=\"tablist\" aria-label=\"Our service categories\">\r\n      <button class=\"stab on\" role=\"tab\" aria-selected=\"true\" onclick=\"switchTab(0,this)\">Setup &amp; Config<\/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)\">Migration<\/button>\r\n      <button class=\"stab\" role=\"tab\" aria-selected=\"false\" onclick=\"switchTab(3,this)\">Ongoing Support<\/button>\r\n    <\/div>\r\n\r\n    <!-- Tab 0: Setup & Config -->\r\n    <div id=\"sp0\" class=\"stab-panel on\" role=\"tabpanel\" aria-label=\"MediaWiki setup and server configuration\">\r\n      <div class=\"scard\">\r\n        <div class=\"scard-bar\" style=\"background:linear-gradient(90deg,#1d4ed8,#3b82f6)\"><\/div>\r\n        <div class=\"scard-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>\r\n        <h3 class=\"scard-title\">MediaWiki Setup &amp; Server Configuration<\/h3>\r\n        <p class=\"scard-desc\">Full installation on your VPS or dedicated server - MediaWiki core, SSL certificate, firewall rules, Redis caching, automated daily backups, and proper admin documentation handed over from day one.<\/p>\r\n        <div class=\"chips\"><span class=\"chip chip-b\">Full Installation<\/span><span class=\"chip chip-b\">SSL &amp; Firewall<\/span><span class=\"chip chip-b\">Redis Caching<\/span><span class=\"chip chip-b\">Admin Docs<\/span><\/div>\r\n      <\/div>\r\n      <div class=\"scard detail\">\r\n        <div class=\"scard-bar\" style=\"background:linear-gradient(90deg,#1d4ed8,#3b82f6)\"><\/div>\r\n        <div class=\"detail-lbl\">What's included<\/div>\r\n        <div class=\"d-row\"><div class=\"d-ico\" style=\"background:rgba(37,99,235,.13)\"><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=\"d-txt\">VPS or dedicated server setup<\/span><\/div>\r\n        <div class=\"d-row\"><div class=\"d-ico\" style=\"background:rgba(37,99,235,.13)\"><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=\"d-txt\">SSL certificate, firewall &amp; security hardening<\/span><\/div>\r\n        <div class=\"d-row\"><div class=\"d-ico\" style=\"background:rgba(37,99,235,.13)\"><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=\"d-txt\">Redis caching configured for fast page loads<\/span><\/div>\r\n        <div class=\"d-row\"><div class=\"d-ico\" style=\"background:rgba(37,99,235,.13)\"><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=\"d-txt\">Daily automated backups with 30-day retention<\/span><\/div>\r\n        <div class=\"d-row\"><div class=\"d-ico\" style=\"background:rgba(37,99,235,.13)\"><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=\"d-txt\">Full admin documentation provided at handover<\/span><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Tab 1: Design & Branding -->\r\n    <div id=\"sp1\" class=\"stab-panel\" role=\"tabpanel\" aria-label=\"Wiki design and custom branding\">\r\n      <div class=\"scard\">\r\n        <div class=\"scard-bar\" style=\"background:linear-gradient(90deg,#7c3aed,#a78bfa)\"><\/div>\r\n        <div class=\"scard-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>\r\n        <h3 class=\"scard-title\">Wiki Design, Skin &amp; Branding<\/h3>\r\n        <p class=\"scard-desc\">A custom MediaWiki skin built around your brand - your logo, your colours, your typography - designed to work cleanly on both desktop and mobile, with single sign-on available if your team needs it.<\/p>\r\n        <div class=\"chips\"><span class=\"chip chip-p\">Custom Skin<\/span><span class=\"chip chip-p\">SSO<\/span><span class=\"chip chip-p\">Mobile-Ready<\/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\" aria-label=\"Wiki content migration service\">\r\n      <div class=\"scard\">\r\n        <div class=\"scard-bar\" style=\"background:linear-gradient(90deg,#06b6d4,#22d3ee)\"><\/div>\r\n        <div class=\"scard-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>\r\n        <h3 class=\"scard-title\">Content Migration to MediaWiki<\/h3>\r\n        <p class=\"scard-desc\">We move your existing content into MediaWiki from wherever it currently lives - Confluence, Notion, SharePoint, or elsewhere - converting it carefully so formatting, links, and structure all carry over intact.<\/p>\r\n        <div class=\"chips\"><span class=\"chip chip-c\">Confluence Migration<\/span><span class=\"chip chip-c\">Notion Migration<\/span><span class=\"chip chip-c\">Zero Data Loss<\/span><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Tab 3: Ongoing Support -->\r\n    <div id=\"sp3\" class=\"stab-panel\" role=\"tabpanel\" aria-label=\"Ongoing MediaWiki support and maintenance\">\r\n      <div class=\"scard\">\r\n        <div class=\"scard-bar\" style=\"background:linear-gradient(90deg,#f59e0b,#fbbf24)\"><\/div>\r\n        <div class=\"scard-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>\r\n        <h3 class=\"scard-title\">Ongoing Support &amp; Maintenance<\/h3>\r\n        <p class=\"scard-desc\">Once your wiki is live, we keep it that way - core and extension updates, ongoing backups, uptime monitoring, and a quick response if anything ever needs attention.<\/p>\r\n        <div class=\"chips\"><span class=\"chip chip-y\">Updates<\/span><span class=\"chip chip-y\">Backups<\/span><span class=\"chip chip-y\">Monitoring<\/span><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Service overview mini cards -->\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,.18),rgba(37,99,235,.05))\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#60a5fa\" 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><div class=\"sov-title\">Setup &amp; Config<\/div><div class=\"sov-txt\">Install, security, caching, backups.<\/div><\/div>\r\n      <div class=\"sov fade-up\"><div class=\"sov-ico\" style=\"background:linear-gradient(135deg,rgba(124,58,237,.18),rgba(124,58,237,.05))\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#a78bfa\" stroke-width=\"2\"><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 skin, SSO, mobile-ready.<\/div><\/div>\r\n      <div class=\"sov fade-up\"><div class=\"sov-ico\" style=\"background:linear-gradient(135deg,rgba(6,182,212,.18),rgba(6,182,212,.05))\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#22d3ee\" stroke-width=\"2\"><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\">Migration<\/div><div class=\"sov-txt\">Move from Confluence, Notion &amp; more.<\/div><\/div>\r\n      <div class=\"sov fade-up\"><div class=\"sov-ico\" style=\"background:linear-gradient(135deg,rgba(245,158,11,.18),rgba(245,158,11,.05))\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fbbf24\" stroke-width=\"2\"><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\">Updates, backups, monitoring.<\/div><\/div>\r\n    <\/div>\r\n\r\n    <!-- Pricing -->\r\n    <div class=\"pricing-box fade-up\">\r\n      <div class=\"pricing-title\">Transparent Pricing - Written Before You Commit<\/div>\r\n      <div class=\"pricing-sub\">Every project gets a fixed-price proposal in writing. No hourly billing surprises. Starting guide:<\/div>\r\n      <div class=\"pricing-grid\">\r\n        <div class=\"pr-item\"><div class=\"pr-val\">$200\u2013$500<\/div><div class=\"pr-lbl\">New Wiki Setup<\/div><\/div>\r\n        <div class=\"pr-item\"><div class=\"pr-val\">$500\u2013$1,000<\/div><div class=\"pr-lbl\">Design &amp; Branding<\/div><\/div>\r\n        <div class=\"pr-item\"><div class=\"pr-val\">$1,000\u2013$3,000<\/div><div class=\"pr-lbl\">Full Migration<\/div><\/div>\r\n        <div class=\"pr-item\"><div class=\"pr-val\">From $100\/mo<\/div><div class=\"pr-lbl\">Monthly Support<\/div><\/div>\r\n      <\/div>\r\n      <a href=\"#contact\" class=\"btn btn-primary\"><span class=\"shine\" aria-hidden=\"true\"><\/span>Get Your 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\u2550\u2550 -->\r\n<section id=\"process\" aria-labelledby=\"proc-h2\">\r\n  <div class=\"container\">\r\n    <div class=\"sec-header center fade-up\">\r\n      <span class=\"badge badge-blue\">How We Work<\/span>\r\n      <h2 class=\"sec-title\" id=\"proc-h2\">Simple Process, No Grey Areas<\/h2>\r\n      <p class=\"sec-sub\">You'll always know what's happening, what comes next, and when. We designed our process this way because we've all experienced the frustration of not knowing where a project stands.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"proc-layout\">\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\">We Have a Quick Call First<\/h3>\r\n            <p class=\"step-desc\">Before recommending anything, we want to understand your situation. Free, thirty minutes, no pressure to continue.<\/p>\r\n            <div class=\"step-tags\"><span class=\"step-tag\">Free call<\/span><span class=\"step-tag\">30 minutes<\/span><span class=\"step-tag\">No commitment<\/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\">You Get a Written Proposal Within 48 Hours<\/h3>\r\n            <p class=\"step-desc\">Every deliverable listed, fixed price, realistic timeline. Nothing hidden. Commit only when satisfied.<\/p>\r\n            <div class=\"step-tags\"><span class=\"step-tag\">Fixed price<\/span><span class=\"step-tag\">Full scope in writing<\/span><span class=\"step-tag\">Clear timeline<\/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\">We Build in Short Sprints and Show You Progress<\/h3>\r\n            <p class=\"step-desc\">Weekly sprints, you review each one. Nothing moves forward until you're happy. No surprise reveals.<\/p>\r\n            <div class=\"step-tags\"><span class=\"step-tag\">Weekly check-ins<\/span><span class=\"step-tag\">Your approval required<\/span><span class=\"step-tag\">No surprises<\/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\">We Launch Together and Train Your Team<\/h3>\r\n            <p class=\"step-desc\">Go live together, team training included, admin documentation handed over, and thirty days of post-launch availability if anything comes up.<\/p>\r\n            <div class=\"step-tags\"><span class=\"step-tag\">Hands-on training<\/span><span class=\"step-tag\">Admin docs included<\/span><span class=\"step-tag\">30-day post-launch<\/span><\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- Process card (desktop sticky) -->\r\n      <div class=\"proc-panel\" id=\"proc-panel\">\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=\"pc-wrap\">\r\n          <div class=\"pc on\" id=\"pc0\" style=\"--pc1:#60a5fa;--pc2:#22d3ee\">\r\n            <div class=\"pc-inner\"><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 Listen Before We Recommend Anything<\/div><\/div><\/div>\r\n            <div class=\"pc-body\">Before recommending anything, we want to understand your situation. Free, thirty minutes, no pressure to continue.<\/div>\r\n            <div class=\"pc-feats\">\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.07\"\/><\/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\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>No commitment to proceed<\/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>Honest advice for your situation<\/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-tag\">Getting started<\/div><\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"pc\" id=\"pc1\" style=\"--pc1:#a78bfa;--pc2:#818cf8\">\r\n            <div class=\"pc-inner\"><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, Clear Timeline, In Writing<\/div><\/div><\/div>\r\n            <div class=\"pc-body\">Every deliverable listed, fixed price, realistic timeline. Nothing hidden. Commit only when satisfied.<\/div>\r\n            <div class=\"pc-feats\">\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 - what we quote, you pay<\/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>Realistic delivery date 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\"\/><\/svg><\/div>Every deliverable named in writing<\/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-tag\">Agreed &amp; signed<\/div><\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"pc\" id=\"pc2\" style=\"--pc1:#22d3ee;--pc2:#34d399\">\r\n            <div class=\"pc-inner\"><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<\/div><div class=\"pc-title\">Weekly Sprints, You Review Each One<\/div><\/div><\/div>\r\n            <div class=\"pc-body\">Weekly sprints, you review each one. Nothing moves forward until you're happy. No surprise reveals.<\/div>\r\n            <div class=\"pc-feats\">\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 progress check-ins<\/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 say-so<\/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>One-week structured 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-tag\">Building...<\/div><\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"pc\" id=\"pc3\" style=\"--pc1:#f59e0b;--pc2:#fb923c\">\r\n            <div class=\"pc-inner\"><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, Team Trained, Docs Handed Over<\/div><\/div><\/div>\r\n            <div class=\"pc-body\">Go live together, team training included, admin documentation handed over, and thirty days of post-launch availability if anything comes up.<\/div>\r\n            <div class=\"pc-feats\">\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>Hands-on team training session<\/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\"\/><\/svg><\/div>Full admin documentation 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=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg><\/div>30 days post-launch availability<\/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-tag\">Live \u2713<\/div><\/div>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"proc-dots\" role=\"navigation\" aria-label=\"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\" class=\"alt\" aria-labelledby=\"why-h2\">\r\n  <div class=\"container\">\r\n    <div class=\"sec-header center fade-up\">\r\n      <span class=\"badge badge-blue\">Why SolidWiki<\/span>\r\n      <h2 class=\"sec-title\" id=\"why-h2\">Why Work With Us,<br>a Team Just Getting Started?<\/h2>\r\n      <p class=\"sec-sub\">Honest answer: we can't offer ten years of history. What we can offer is focus, care, transparent pricing, and a genuine commitment to doing the work properly.<\/p>\r\n    <\/div>\r\n    <div class=\"why-cards\">\r\n      <div class=\"wcard fade-up\"><span class=\"wc-n\">01<\/span><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><div class=\"wc-title\">MediaWiki Is All We Do<\/div><div class=\"wc-txt\">We're not a web agency that also builds wikis on the side. Every decision comes from thinking carefully about this specific platform.<\/div><div class=\"wc-bar\"><\/div><\/div>\r\n      <div class=\"wcard fade-up\"><span class=\"wc-n\">02<\/span><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><div class=\"wc-title\">You Own Everything. Full Stop.<\/div><div class=\"wc-txt\">Every file, every database record, every configuration lives on your server from day one. Open source. No lock-in, ever.<\/div><div class=\"wc-bar\"><\/div><\/div>\r\n      <div class=\"wcard fade-up\"><span class=\"wc-n\">03<\/span><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><div class=\"wc-title\">Security Isn't an Add-On<\/div><div class=\"wc-txt\">SSL, firewall, access controls, spam protection, automated daily backups - included in every build, not a premium tier.<\/div><div class=\"wc-bar\"><\/div><\/div>\r\n      <div class=\"wcard fade-up\"><span class=\"wc-n\">04<\/span><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><div class=\"wc-title\">No Monthly Per-Seat Fees<\/div><div class=\"wc-txt\">You pay for the setup, not for using it. Five people or one hundred and fifty - the infrastructure cost stays the same. MediaWiki is open source.<\/div><div class=\"wc-bar\"><\/div><\/div>\r\n      <div class=\"wcard fade-up\"><span class=\"wc-n\">05<\/span><div class=\"wc-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"><polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"\/><\/svg><\/div><div class=\"wc-title\">Scales as Your Team Grows<\/div><div class=\"wc-txt\">Wikipedia runs on MediaWiki. Millions of articles, same underlying setup. Start small, grow for years without needing to rebuild.<\/div><div class=\"wc-bar\"><\/div><\/div>\r\n      <div class=\"wcard fade-up\"><span class=\"wc-n\">06<\/span><div class=\"wc-ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z\"\/><\/svg><\/div><div class=\"wc-title\">You'll Always Know What's Going On<\/div><div class=\"wc-txt\">Weekly updates, an honest proposal before we start, straight answers throughout. If something's taking longer, we tell you before it becomes a problem.<\/div><div class=\"wc-bar\"><\/div><\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- \u2550\u2550 REVIEWS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\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\" aria-labelledby=\"rev-h2\">\r\n  <div class=\"container\">\r\n    <div class=\"sec-header center fade-up\">\r\n      <span class=\"badge badge-blue\">Early Feedback<\/span>\r\n      <h2 class=\"sec-title\" id=\"rev-h2\">What Our First Clients<br>Actually Said<\/h2>\r\n      <p class=\"sec-sub\">We've completed one client wiki setup so far. These are the real people we worked with and exactly what they told us.<\/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        <meta itemprop=\"datePublished\" content=\"2024-11-15\">\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\">\"Our team was using five different tools and nobody could agree on which was the right place to look. SolidWiki set up a MediaWiki for us, and within two weeks everyone had stopped asking 'where is this?' in Slack. The training session was genuinely helpful - our non-technical people picked it up in an hour.\"<\/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\">P<\/div>\r\n          <div>\r\n            <div class=\"rev-name\" itemprop=\"name\">Prasad<\/div>\r\n            <div class=\"rev-role\">Operations Lead, software product team \u00b7 Hyderabad<\/div>\r\n            <div class=\"rev-verified\"><svg viewBox=\"0 0 24 24\" 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>Verified client<\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/article>\r\n      <article class=\"revcard fade-up\" itemscope itemtype=\"https:\/\/schema.org\/Review\">\r\n        <meta itemprop=\"datePublished\" content=\"2024-11-22\">\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 fixed-price proposal laid everything out clearly - what they'd deliver, when, and for exactly how much. They kept to it. What really surprised me was that our HR coordinator, who has no technical background, can now create and update wiki pages without any help.\"<\/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\">M<\/div>\r\n          <div>\r\n            <div class=\"rev-name\" itemprop=\"name\">Monisha<\/div>\r\n            <div class=\"rev-role\">Head of People &amp; Culture, growing startup \u00b7 Bangalore<\/div>\r\n            <div class=\"rev-verified\"><svg viewBox=\"0 0 24 24\" 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>Verified client<\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/article>\r\n      <article class=\"revcard fade-up\" itemscope itemtype=\"https:\/\/schema.org\/Review\">\r\n        <meta itemprop=\"datePublished\" content=\"2024-12-01\">\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\">\"What I appreciated most was the honesty. Before we agreed to anything, they told me clearly what MediaWiki is good at and where it has limitations for our use case. The wiki they set up is clean, loads fast, and - importantly - the team actually uses it. No forced adoption needed.\"<\/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\">DL<\/div>\r\n          <div>\r\n            <div class=\"rev-name\" itemprop=\"name\">Durga Lakshmi<\/div>\r\n            <div class=\"rev-role\">Founder &amp; CEO, consulting firm \u00b7 Hyderabad<\/div>\r\n            <div class=\"rev-verified\"><svg viewBox=\"0 0 24 24\" 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>Verified client<\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/article>\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\u2550\u2550 -->\r\n<div id=\"stats\" role=\"region\" aria-label=\"What we deliver\">\r\n  <div class=\"stats-grid\">\r\n    <div class=\"stat-item fade-up\"><span class=\"stat-num\">1<\/span><div class=\"stat-lbl\">Wiki Built &amp; Live<\/div><\/div>\r\n    <div class=\"stat-item fade-up\"><span class=\"stat-num\">3<\/span><div class=\"stat-lbl\">Happy Teams So Far<\/div><\/div>\r\n    <div class=\"stat-item fade-up\"><span class=\"stat-num\">\u2605\u2605\u2605\u2605\u2605<\/span><div class=\"stat-lbl\">All 5-Star Feedback<\/div><\/div>\r\n    <div class=\"stat-item fade-up\"><span class=\"stat-num\">100%<\/span><div class=\"stat-lbl\">Data Delivered Intact<\/div><\/div>\r\n  <\/div>\r\n<\/div>\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\u2550 -->\r\n<section id=\"faq\" class=\"alt\" aria-labelledby=\"faq-h2\">\r\n  <div class=\"container\">\r\n    <div class=\"sec-header center fade-up\">\r\n      <span class=\"badge badge-blue\">FAQ<\/span>\r\n      <h2 class=\"sec-title\" id=\"faq-h2\">Questions People Ask<br>Before They Reach Out<\/h2>\r\n      <p class=\"sec-sub\">Honest answers to the things people actually want to know before committing to a wiki project with a new team.<\/p>\r\n    <\/div>\r\n    <div style=\"max-width:800px;margin:0 auto\">\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<\/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\"><button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">01<\/span><span class=\"fq-txt\">How long does a MediaWiki setup actually take?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button><div class=\"fbody\"><p class=\"fansw\">A basic setup typically takes about a week. A full project - including custom branding, content migration, and team training - usually takes two to four weeks depending on how much existing content needs to move over and how much customisation you want.<\/p><\/div><\/div>\r\n        <div class=\"fitem\" data-cat=\"technical\"><button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">02<\/span><span class=\"fq-txt\">Does anyone on my team need to be technical to use or manage this?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button><div class=\"fbody\"><p class=\"fansw\">No. Once your wiki is set up with a visual editor enabled, creating and editing pages works similarly to using a basic word processor. Several of our clients' least technical team members are now their most active wiki editors.<\/p><\/div><\/div>\r\n        <div class=\"fitem\" data-cat=\"timeline\"><button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">03<\/span><span class=\"fq-txt\">Can you move our existing content from Confluence or Notion?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button><div class=\"fbody\"><p class=\"fansw\">Yes. Migrating content from Confluence, Notion, SharePoint, or similar platforms is one of our core services. We convert your existing pages, preserve formatting and links wherever possible, and validate everything after the move so nothing is lost or broken.<\/p><\/div><\/div>\r\n        <div class=\"fitem\" data-cat=\"pricing\"><button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">04<\/span><span class=\"fq-txt\">Who owns the wiki once it's built?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button><div class=\"fbody\"><p class=\"fansw\">You do, completely. Your wiki runs on your own server using open-source MediaWiki software. There's no proprietary lock-in, no dependency on us to keep it running, and no recurring licence fee.<\/p><\/div><\/div>\r\n        <div class=\"fitem\" data-cat=\"pricing\"><button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">05<\/span><span class=\"fq-txt\">What does ongoing support include and what does it cost?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button><div class=\"fbody\"><p class=\"fansw\">Ongoing support covers core and extension updates, regular backups, uptime monitoring, and quick fixes if something goes wrong. Plans start from $100 per month, scaled to the size and complexity of your wiki.<\/p><\/div><\/div>\r\n        <div class=\"fitem\" data-cat=\"technical\"><button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">06<\/span><span class=\"fq-txt\">How is MediaWiki different from Notion or Confluence?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button><div class=\"fbody\"><p class=\"fansw\">MediaWiki is open-source and self-hosted, meaning there are no per-user fees and your data lives on your own server rather than a third party's cloud platform. Notion and Confluence are easier to start with out of the box, but their costs grow with your team size, and you don't have the same level of control over where your data lives.<\/p><\/div><\/div>\r\n        <div class=\"fitem\" data-cat=\"technical\"><button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">07<\/span><span class=\"fq-txt\">Is it secure enough for internal company information?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button><div class=\"fbody\"><p class=\"fansw\">Yes. Every wiki we build includes SSL encryption, firewall configuration, access controls, and automated daily backups as standard - not as an optional upgrade. We also configure user permissions so only the right people can see or edit specific content.<\/p><\/div><\/div>\r\n        <div class=\"fitem\" data-cat=\"pricing\"><button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">08<\/span><span class=\"fq-txt\">You're a new company. Why should we trust you with this?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button><div class=\"fbody\"><p class=\"fansw\">That's a fair question, and we'd rather you ask it directly than wonder about it quietly. We don't have ten years of history, but we have deep, exclusive focus on MediaWiki, a transparent fixed-price process, and real client feedback you can read above. We're also happy to show you a working example before you decide anything.<\/p><\/div><\/div>\r\n        <div class=\"fitem\" data-cat=\"timeline\"><button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">09<\/span><span class=\"fq-txt\">Can we see a working wiki before deciding?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button><div class=\"fbody\"><p class=\"fansw\">Yes. We're glad to walk you through a live example during your free initial call, so you can see exactly what a properly configured MediaWiki installation looks and feels like before committing to anything.<\/p><\/div><\/div>\r\n        <div class=\"fitem\" data-cat=\"technical\"><button class=\"fq\" aria-expanded=\"false\" onclick=\"toggleFaq(this)\"><span class=\"fq-n\">10<\/span><span class=\"fq-txt\">Do we need to provide our own server, or can you handle that?<\/span><span class=\"ftoggle\" aria-hidden=\"true\"><\/span><\/button><div class=\"fbody\"><p class=\"fansw\">Either works. If you already have server infrastructure, we'll set MediaWiki up on it. If you don't, we can recommend and configure suitable hosting as part of the setup process.<\/p><\/div><\/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\">Let's Talk<\/span>\r\n    <h2 class=\"ftcta-h2\" id=\"ftcta-h2\">Ready to Get Your Team's<br><span class=\"gt-blue\">Knowledge Organised?<\/span><\/h2>\r\n    <p class=\"ftcta-p\">The first conversation is free, and there's no pressure to go further. We'll tell you honestly whether MediaWiki is the right fit for you - and if it's not, we'll say so.<\/p>\r\n    <a href=\"#contact\" class=\"btn btn-primary\" style=\"padding:14px 30px;font-size:15px\">\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\" width=\"16\" height=\"16\"><path d=\"M5 12h14M12 5l7 7-7 7\"\/><\/svg>\r\n      Book a 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\u2550 -->\r\n<section id=\"contact\" class=\"alt\" aria-labelledby=\"contact-h2\">\r\n  <div class=\"container\">\r\n    <div class=\"contact-grid\">\r\n      <!-- Info left -->\r\n      <div class=\"fade-left\">\r\n        <span class=\"badge badge-blue\">Get in Touch<\/span>\r\n        <h2 class=\"contact-h2\" id=\"contact-h2\" style=\"margin-top:12px\">Tell Us About<br>Your Project<\/h2>\r\n        <p class=\"contact-p\">Fill in the form and we'll reply within 24 business hours. No commitment, no sales call unless you want one.<\/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\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\" stroke=\"#60a5fa\" 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:info@solidwiki.com\" style=\"color:inherit\">info@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\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\" stroke=\"#60a5fa\" 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\">We reply within<\/div><div class=\"ci-val\">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\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\" stroke=\"#60a5fa\" aria-hidden=\"true\"><path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z\"\/><circle cx=\"12\" cy=\"10\" r=\"3\"\/><\/svg><\/div>\r\n            <div><div class=\"ci-lbl\">Based in<\/div><div class=\"ci-val\">Hyderabad, India \u00b7 working 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\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\" stroke=\"#fff\" 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\">Prefer to book a time directly?<\/div><div class=\"cal-sub\">Use Calendly - no email back-and-forth needed.<\/div><\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- Form right -->\r\n      <div class=\"fade-right\">\r\n        <form id=\"contact-form\" class=\"cform\" novalidate>\r\n          <!-- Honeypot -->\r\n          <div class=\"hp-trap\"><label for=\"website-url\">Website<\/label><input type=\"text\" id=\"website-url\" 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:#ef4444\" aria-hidden=\"true\">*<\/span><\/label>\r\n              <input type=\"text\" id=\"fname\" name=\"firstName\" placeholder=\"First Name\" 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:#ef4444\" aria-hidden=\"true\">*<\/span><\/label>\r\n              <input type=\"text\" id=\"lname\" name=\"lastName\" placeholder=\"Last Name\" 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\">Work Email <span style=\"color:#ef4444\" aria-hidden=\"true\">*<\/span><\/label>\r\n            <input type=\"email\" id=\"email\" name=\"email\" placeholder=\"you@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=\"+91 1234567890\" autocomplete=\"tel\">\r\n          <\/div>\r\n          <div class=\"fgroup\">\r\n            <label for=\"project-type\">What do you need help with? <span style=\"color:#ef4444\" aria-hidden=\"true\">*<\/span><\/label>\r\n            <select id=\"project-type\" name=\"projectType\" required>\r\n              <option value=\"\" disabled selected>Choose the closest option\u2026<\/option>\r\n              <option value=\"new-setup\">Set up a new wiki from scratch<\/option>\r\n              <option value=\"migration\">Move content from Confluence \/ Notion \/ other<\/option>\r\n              <option value=\"design\">Custom design and branding for an existing wiki<\/option>\r\n              <option value=\"support\">Ongoing maintenance and support<\/option>\r\n              <option value=\"not-sure\">Not sure yet - I just want to talk<\/option>\r\n            <\/select>\r\n            <div class=\"ferr\" id=\"ferr-type\" role=\"alert\">Please choose an option.<\/div>\r\n          <\/div>\r\n          <div class=\"fgroup\">\r\n            <label for=\"message\">Tell us a bit about your situation <span style=\"color:#ef4444\" aria-hidden=\"true\">*<\/span><\/label>\r\n            <textarea id=\"message\" name=\"message\" rows=\"4\" placeholder=\"What tools does your team use now? How many people? Do you have a rough timeline in mind?\" required minlength=\"20\"><\/textarea>\r\n            <div class=\"ferr\" id=\"ferr-msg\" role=\"alert\">Please add a bit more detail (at least 20 characters).<\/div>\r\n          <\/div>\r\n          <button type=\"submit\" class=\"btn btn-primary btn-full\" id=\"submit-btn\">\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\" width=\"16\" height=\"16\"><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\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" 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 received!<\/h3>\r\n            <p>We'll get back to you within 24 business hours. Looking forward to hearing about your project.<\/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\u2550 -->\r\n<footer id=\"footer\" role=\"contentinfo\">\r\n  <div class=\"footer-inner\">\r\n    <div class=\"footer-top\">\r\n      <div class=\"footer-brand\">\r\n        <a href=\"\/\" class=\"nav-logo\" aria-label=\"SolidWiki home\" style=\"margin-bottom:9px;display:inline-flex\">\r\n          <div class=\"nav-logo-mark\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\" stroke=\"#fff\"><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\" style=\"margin-left:8px\">SolidWiki<\/span>\r\n        <\/a>\r\n        <p>MediaWiki setup and development for small and growing teams. We've built one wiki and built it well. Let's talk about yours.<\/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\">Design &amp; Branding<\/a>\r\n        <a href=\"#services\">Content 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=\"#about\">About Us<\/a>\r\n        <a href=\"#process\">How It Works<\/a>\r\n        <a href=\"#reviews\">Client 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-policy\">Privacy Policy<\/a>\r\n        <a href=\"\/terms-of-service\">Terms of Service<\/a>\r\n        <a href=\"\/disclaimer\">Disclaimer<\/a>\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"footer-bottom\">\r\n      <span>&copy; 2026 SolidWiki. All rights reserved. Hyderabad, India.<\/span>\r\n      <div class=\"footer-ssl\">\r\n        <svg width=\"11\" height=\"11\" 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 Secured \u00b7 MediaWiki Specialists\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/footer>\r\n\r\n<!-- \u2550\u2550 DEFERRED JS - all non-critical, loaded after parse \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<script>\r\n\/* \u2500\u2500 THEME (runs immediately, no flash) \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(){if(localStorage.getItem('sw-theme')==='light'){BD.classList.add('light');moonI.style.display='none';sunI.style.display='';}})();\r\ndocument.getElementById('theme-btn').addEventListener('click',()=>{\r\n  const l=BD.classList.toggle('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 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\u2500\u2500 *\/\r\nconst ham=document.getElementById('hamburger');\r\nconst drawer=document.getElementById('nav-drawer');\r\nfunction closeDrawer(){\r\n  ham.classList.remove('open');drawer.classList.remove('open');\r\n  ham.setAttribute('aria-expanded','false');drawer.setAttribute('aria-hidden','true');\r\n  drawer.querySelectorAll('a').forEach(a=>a.setAttribute('tabindex','-1'));\r\n  document.body.style.overflow='';\r\n}\r\nham.addEventListener('click',()=>{\r\n  const o=!drawer.classList.contains('open');\r\n  drawer.classList.toggle('open',o);ham.classList.toggle('open',o);\r\n  ham.setAttribute('aria-expanded',String(o));drawer.setAttribute('aria-hidden',String(!o));\r\n  drawer.querySelectorAll('a').forEach(a=>a.setAttribute('tabindex',o?'0':'-1'));\r\n  document.body.style.overflow=o?'hidden':'';\r\n});\r\ndrawer.querySelectorAll('a').forEach(a=>a.addEventListener('click',closeDrawer));\r\ndocument.addEventListener('keydown',e=>{if(e.key==='Escape')closeDrawer();});\r\n\r\n\/* \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\u2500\u2500 *\/\r\nlet hdr=document.getElementById('site-header');\r\nwindow.addEventListener('scroll',()=>{\r\n  hdr.classList.toggle('scrolled',window.scrollY>16);\r\n},{passive:true});\r\n\r\n\/* \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\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)=>{\r\n    t.classList.toggle('on',i===idx);\r\n    t.setAttribute('aria-selected',String(i===idx));\r\n  });\r\n}\r\nwindow.switchTab=switchTab;\r\n\r\n\/* \u2500\u2500 PROCESS PANEL \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\nlet curPC=0;\r\nfunction setProcCard(idx){\r\n  document.querySelectorAll('.pc').forEach((c,i)=>{\r\n    c.classList.remove('on','gone');\r\n    if(i===idx)c.classList.add('on');\r\n    else if(i<idx)c.classList.add('gone');\r\n  });\r\n  document.querySelectorAll('.pdot').forEach((d,i)=>d.classList.toggle('on',i===idx));\r\n  document.querySelectorAll('.ptrk-btn').forEach((b,i)=>{\r\n    b.classList.toggle('on',i===idx);\r\n    b.setAttribute('aria-selected',String(i===idx));\r\n  });\r\n  curPC=idx;\r\n}\r\nwindow.setProcCard=setProcCard;\r\n\r\n\/* \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\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=>{\r\n    i.classList.remove('open');\r\n    i.querySelector('.fq').setAttribute('aria-expanded','false');\r\n  });\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')){\r\n      item.classList.remove('open');\r\n      item.querySelector('.fq').setAttribute('aria-expanded','false');\r\n    }\r\n  });\r\n}\r\nwindow.filterFaq=filterFaq;\r\n\r\n\/* \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\u2500\u2500 *\/\r\nconst form=document.getElementById('contact-form');\r\nconst sbtn=document.getElementById('submit-btn');\r\nconst succ=document.getElementById('form-success');\r\nconst errIds={fname:'ferr-fname',lname:'ferr-lname',email:'ferr-email','project-type':'ferr-type',message:'ferr-msg'};\r\n\r\nfunction validateField(id, test) {\r\n  const el = document.getElementById(id);\r\n  const er = document.getElementById(errIds[id] || '');\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  if (ok) el.removeAttribute('aria-invalid');\r\n  else el.setAttribute('aria-invalid', 'true');\r\n  return ok;\r\n}\r\n\r\n\/\/ Real\u2011time validation on blur \/ input\r\nform.querySelectorAll('input, select, textarea').forEach(el => {\r\n  el.addEventListener('blur', () => {\r\n    switch (el.id) {\r\n      case 'fname': validateField('fname', v => v.trim().length > 0); break;\r\n      case 'lname': validateField('lname', v => v.trim().length > 0); break;\r\n      case 'email': validateField('email', v => \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(v)); break;\r\n      case 'project-type': validateField('project-type', v => v !== ''); break;\r\n      case 'message': validateField('message', v => v.trim().length >= 20); break;\r\n    }\r\n  });\r\n  el.addEventListener('input', () => {\r\n    if (el.classList.contains('err')) {\r\n      switch (el.id) {\r\n        case 'fname': validateField('fname', v => v.trim().length > 0); break;\r\n        case 'lname': validateField('lname', v => v.trim().length > 0); break;\r\n        case 'email': validateField('email', v => \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(v)); break;\r\n        case 'project-type': validateField('project-type', v => v !== ''); break;\r\n        case 'message': validateField('message', v => v.trim().length >= 20); break;\r\n      }\r\n    }\r\n  });\r\n});\r\n\r\nform.addEventListener('submit', async e => {\r\n  e.preventDefault();\r\n  if (document.getElementById('website-url').value) return;\r\n  const ok = [\r\n    validateField('fname', v => v.trim().length > 0),\r\n    validateField('lname', v => v.trim().length > 0),\r\n    validateField('email', v => \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(v)),\r\n    validateField('project-type', v => v !== ''),\r\n    validateField('message', v => v.trim().length >= 20),\r\n  ].every(Boolean);\r\n  if (!ok) { form.querySelector('.err')?.focus(); 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\" opacity=\".3\"\/><path d=\"M21 12a9 9 0 00-9-9\"\/><\/svg> Sending\u2026';\r\n  await new Promise(r => setTimeout(r, 1200));\r\n  form.style.display = 'none';\r\n  succ.style.display = 'block';\r\n  succ.focus();\r\n});\r\n\r\n\/* Spin keyframe for submit loader *\/\r\nconst spinStyle = document.createElement('style');\r\nspinStyle.textContent = '@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}';\r\ndocument.head.appendChild(spinStyle);\r\n\r\n\/* \u2500\u2500 DEFERRED ANIMATIONS (after load) \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 initDeferred() {\r\n  const isMobile = window.innerWidth < 768;\r\n  const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion:reduce)').matches;\r\n\r\n  \/* \u2500\u2500 IntersectionObserver for scroll animations \u2500\u2500 *\/\r\n  const io = new IntersectionObserver(entries => {\r\n    entries.forEach(e => {\r\n      if (e.isIntersecting) { e.target.classList.add('vis'); io.unobserve(e.target); }\r\n    });\r\n  }, { threshold: 0.07, rootMargin: '0px 0px -28px 0px' });\r\n  document.querySelectorAll('.fade-up,.fade-left,.fade-right').forEach(el => io.observe(el));\r\n\r\n  \/* \u2500\u2500 Problem cards stagger \u2500\u2500 *\/\r\n  const pcardsEl = document.getElementById('pcards');\r\n  if (pcardsEl) {\r\n    new IntersectionObserver(entries => {\r\n      if (entries[0].isIntersecting) {\r\n        pcardsEl.querySelectorAll('.pcard').forEach((c, i) =>\r\n          setTimeout(() => c.classList.add('vis'), i * 110)\r\n        );\r\n      }\r\n    }, { threshold: 0.06 }).observe(pcardsEl);\r\n  }\r\n\r\n  \/* \u2500\u2500 Hero entrance (opacity+transform only) \u2500\u2500 *\/\r\n  const heroEls = ['.hero-live-pill', '.hero-h1', '.hero-sub', '.hero-btns', '.hero-proof'];\r\n  if (!prefersReducedMotion) {\r\n    heroEls.forEach((sel, i) => {\r\n      const el = document.querySelector(sel);\r\n      if (!el) return;\r\n      el.style.cssText = 'opacity:0;transform:translateY(18px)';\r\n      setTimeout(() => {\r\n        el.style.transition = `opacity .6s cubic-bezier(.16,1,.3,1) ${i * 0.065}s,transform .6s cubic-bezier(.16,1,.3,1) ${i * 0.065}s`;\r\n        el.style.opacity = '1';\r\n        el.style.transform = 'none';\r\n      }, 60);\r\n    });\r\n    const hVis = document.querySelector('.hero-visual');\r\n    if (hVis) {\r\n      hVis.style.opacity = '0';\r\n      setTimeout(() => { hVis.style.transition = 'opacity .85s ease'; hVis.style.opacity = '1'; }, 160);\r\n    }\r\n  }\r\n\r\n  \/* \u2500\u2500 Hero card mouse tilt (desktop only) \u2500\u2500 *\/\r\n  if (!isMobile) {\r\n    const hc = document.getElementById('hv-card');\r\n    const hv = document.querySelector('.hero-visual');\r\n    if (hc && hv) {\r\n      hv.addEventListener('mousemove', e => {\r\n        const r = hv.getBoundingClientRect();\r\n        const x = (e.clientX - r.left) \/ r.width - 0.5;\r\n        const y = (e.clientY - r.top) \/ r.height - 0.5;\r\n        hc.style.animation = 'none';\r\n        hc.style.transform = `translate(-50%,-52%) rotateX(${6 - y * 11}deg) rotateY(${-12 + x * 15}deg)`;\r\n      }, { passive: true });\r\n      hv.addEventListener('mouseleave', () => { hc.style.animation = ''; hc.style.transform = ''; });\r\n    }\r\n  }\r\n\r\n  \/* \u2500\u2500 Process scroll-driven panel (desktop only) \u2500\u2500 *\/\r\n  if (!isMobile) {\r\n    document.querySelectorAll('.proc-step').forEach(s => {\r\n      new IntersectionObserver(entries => {\r\n        if (entries[0].isIntersecting) {\r\n          const idx = +entries[0].target.dataset.step;\r\n          if (!isNaN(idx)) setProcCard(idx);\r\n        }\r\n      }, { threshold: 0.55 }).observe(s);\r\n    });\r\n  }\r\n}\r\n\r\n\/* Use requestIdleCallback if available, else load *\/\r\nif ('requestIdleCallback' in window) {\r\n  requestIdleCallback(initDeferred, { timeout: 2000 });\r\n} else {\r\n  window.addEventListener('load', initDeferred);\r\n}\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 Setup &#038; Development Services | SolidWiki Skip to main content SolidWiki Services Process Why Us Reviews FAQ Free Consultation Services Process Why Us Client Reviews FAQ Book Free Consultation Open for New Projects Stop Losing Work in Scattered Docs &amp;Old Slack Threads We set up MediaWiki for your team &#8211; a single, searchable knowledge [&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":78,"href":"https:\/\/solidwiki.com\/index.php\/wp-json\/wp\/v2\/pages\/11\/revisions"}],"predecessor-version":[{"id":230,"href":"https:\/\/solidwiki.com\/index.php\/wp-json\/wp\/v2\/pages\/11\/revisions\/230"}],"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}]}}