1<!DOCTYPE html> 2<!-- saved from url=(0126) --> 3<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4 5<meta name="viewport" content="width=device-width, initial-scale=1.0"> 6<title>City Innovations â Gain Traction Firstâ¢</title> 7<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Space+Grotesk:wght@400;500;600;700&display=swap" rel="stylesheet"> 8<style> 9@font-face { 10 font-family: 'Axiforma'; 11 src: local('Axiforma'), local('DM Sans'); 12 font-weight: 400; 13} 14@font-face { 15 font-family: 'Axiforma'; 16 src: local('Axiforma Bold'), local('DM Sans'); 17 font-weight: 700; 18} 19 20:root { 21 --yellow: #f4b80d; 22 --yellow-light: #f7ca42; 23 --yellow-dark: #d4a00b; 24 --black: #000000; 25 --dark: #111111; 26 --dark-surface: #1a1a1a; 27 --white: #ffffff; 28 --light-gray: #ece8d7; 29 --text-primary: #ffffff; 30 --text-secondary: rgba(255,255,255,0.6); 31 --text-dark: #1a1a1a; 32 --text-dark-secondary: #666; 33 --blue: #008194; 34 --border-dark: rgba(255,255,255,0.08); 35 --border-light: rgba(0,0,0,0.08); 36 --font-heading: 'Axiforma', 'DM Sans', 'Inter', sans-serif; 37 --font-body: 'Inter', sans-serif; 38} 39 40*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; } 41::selection { background: var(--yellow); color: var(--black); } 42html { scroll-behavior: smooth; overflow-x: hidden; } 43body { background: var(--white); color: var(--text-dark); font-family: var(--font-body); line-height: 1.6; overflow-x: hidden; } 44 45/* ââ Nav ââ */ 46nav { 47 position: fixed; top: 0; left: 0; right: 0; padding: 18px 48px; 48 display: flex; align-items: center; justify-content: space-between; 49 z-index: 100; background: rgba(0,0,0,0.92); 50 backdrop-filter: saturate(180%) blur(24px); 51 box-shadow: 0 1px 0 rgba(255,255,255,0.04); 52} 53nav .logo { height: 56px; } 54.nav-links { display: flex; gap: 28px; align-items: center; } 55.nav-links a { color: rgba(255,255,255,0.65); text-decoration: none; font-size: 14px; font-weight: 500; transition: color 0.3s; } 56.nav-links a:hover { color: #fff; } 57.nav-cta { 58 background: rgba(255,255,255,0.08); color: #fff !important; padding: 9px 22px; 59 border-radius: 9999px; border: 1px solid rgba(255,255,255,0.2); transition: all 0.3s; 60} 61.nav-cta:hover { border-color: rgba(255,255,255,0.5); } 62 63/* ââ Utility ââ */ 64.container { max-width: 1140px; margin: 0 auto; } 65.section-pad { padding: 100px 32px; } 66.btn { 67 display: inline-flex; align-items: center; gap: 8px; 68 padding: 14px 28px; border-radius: 9999px; font-weight: 600; font-size: 15px; 69 text-decoration: none; transition: all 0.3s; border: none; cursor: pointer; 70} 71.btn-dark { background: var(--black); color: var(--white); box-shadow: 0 4px 16px rgba(0,0,0,0.15); } 72.btn-dark:hover { background: #1a1a1a; box-shadow: 0 6px 24px rgba(0,0,0,0.2); transform: translateY(-1px); } 73.btn-yellow { background: var(--yellow); color: var(--black); box-shadow: 0 4px 16px rgba(244,184,13,0.3); } 74.btn-yellow:hover { background: var(--yellow-light); box-shadow: 0 6px 24px rgba(244,184,13,0.35); transform: translateY(-1px); } 75.btn-outline-light { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.25); } 76.btn-outline-light:hover { border-color: rgba(255,255,255,0.6); } 77.btn-outline-dark { background: transparent; color: var(--text-dark); border: 1px solid rgba(0,0,0,0.15); } 78.btn-outline-dark:hover { border-color: rgba(0,0,0,0.4); } 79.btn svg { width: 16px; height: 16px; } 80.arrow-icon { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; } 81 82.label { 83 font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; 84 color: var(--yellow); margin-bottom: 12px; 85} 86.light-label { color: var(--yellow); } 87.dark-label { color: var(--blue); } 88 89h2 { font-family: var(--font-heading); font-size: clamp(30px,3.5vw,48px); font-weight: 700; letter-spacing: -0.02em; line-height: 1.12; margin-bottom: 16px; } 90h3 { font-family: var(--font-heading); font-weight: 700; } 91 92/* ââ HERO ââ dark bg */ 93.hero { 94 background: var(--black); color: var(--text-primary); 95 padding: 160px 32px 110px; text-align: center; position: relative; overflow: hidden; 96} 97.hero::before { 98 content: ''; position: absolute; top: 0; right: -10%; width: 700px; height: 700px; 99 background: radial-gradient(circle, rgba(244,184,13,0.06) 0%, transparent 70%); 100 pointer-events: none; 101} 102.hero::after {
103 content: ''; position: absolute; bottom: 0; left: -10%; width: 500px; height: 500px; 104 background: radial-gradient(circle, rgba(0,129,148,0.05) 0%, transparent 70%); 105 pointer-events: none; 106} 107 108.hero .label { color: var(--yellow); margin-bottom: 20px; } 109.hero h1 { 110 font-family: var(--font-heading); font-size: clamp(42px,5.8vw,76px); 111 font-weight: 700; line-height: 1.06; letter-spacing: -0.035em; max-width: 880px; margin: 0 auto; 112 text-shadow: 0 2px 40px rgba(0,0,0,0.3); 113} 114.hero h1 em { font-style: normal; color: var(--yellow); } 115.hero p { font-size: clamp(16px,1.4vw,19px); color: var(--text-secondary); max-width: 620px; margin: 20px auto 0; line-height: 1.7; } 116.hero-btns { display: flex; gap: 12px; justify-content: center; margin-top: 40px; flex-wrap: wrap; } 117 118/* ââ TRACTION LABS ââ white bg */ 119.tl-section { background: var(--white); } 120.tl-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; } 121.tl-content .label { color: var(--blue); } 122.tl-content h2 { color: var(--text-dark); } 123.tl-content h2 em { font-style: normal; color: var(--blue); } 124.tl-content p { color: var(--text-dark-secondary); font-size: 16px; line-height: 1.75; margin-bottom: 28px; } 125.tl-features { display: flex; flex-direction: column; gap: 14px; margin-bottom: 32px; } 126.tl-feature { display: flex; align-items: flex-start; gap: 10px; font-size: 15px; color: var(--text-dark-secondary); } 127.tl-feature strong { color: var(--text-dark); } 128.tl-check { color: var(--blue); flex-shrink: 0; margin-top: 3px; font-weight: 700; } 129.tl-visual { display: flex; justify-content: center; } 130.tl-visual img { width: 100%; max-width: 480px; filter: drop-shadow(0 8px 24px rgba(0,0,0,0.08)); transition: transform 0.4s; } 131.tl-visual img:hover { transform: scale(1.02); } 132 133/* ââ Stats ââ */ 134.stats-bar { 135 display: grid; grid-template-columns: repeat(4,1fr); 136 background: var(--black); border-radius: 16px; overflow: hidden; margin-top: 56px; 137 box-shadow: 0 16px 48px rgba(0,0,0,0.12); 138} 139.stat { padding: 36px 24px; text-align: center; border-right: 1px solid rgba(255,255,255,0.06); } 140.stat:last-child { border-right: none; } 141.stat-num { font-family: var(--font-heading); font-size: clamp(28px,3vw,40px); font-weight: 700; color: var(--yellow); line-height: 1; } 142.stat-text { font-size: 13px; color: rgba(255,255,255,0.5); margin-top: 8px; line-height: 1.4; } 143 144/* ââ DIFFERENTIATOR ââ light gray bg */ 145.diff-section { background: var(--light-gray); } 146.diff-section h2 { color: var(--text-dark); text-align: center; } 147.diff-section h2 em { font-style: normal; color: var(--blue); } 148.diff-section .label { text-align: center; display: block; color: var(--blue); } 149.diff-subtitle { text-align: center; color: var(--text-dark-secondary); font-size: 17px; max-width: 600px; margin: 0 auto 48px; line-height: 1.7; } 150.diff-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; } 151.diff-card { border-radius: 16px; padding: 36px 32px; transition: all 0.3s; } 152.diff-old { background: var(--white); border: 1px solid rgba(0,0,0,0.06); box-shadow: 0 2px 8px rgba(0,0,0,0.03); } 153.diff-new { background: var(--black); color: var(--text-primary); box-shadow: 0 8px 32px rgba(0,0,0,0.2); } 154.diff-header { font-family: var(--font-heading); font-size: 17px; font-weight: 700; margin-bottom: 24px; padding-bottom: 14px; } 155.diff-old .diff-header { color: var(--text-dark-secondary); border-bottom: 1px solid rgba(0,0,0,0.06); } 156.diff-new .diff-header { color: var(--yellow); border-bottom: 1px solid rgba(255,255,255,0.08); } 157.diff-items { display: flex; flex-direction: column; gap: 14px; } 158.diff-item { font-size: 14px; line-height: 1.6; padding-left: 24px; position: relative; } 159.diff-old .diff-item { color: #999; } 160.diff-old .diff-item::before { content: 'â'; position: absolute; left: 0; color: #ccc; font-size: 12px; font-weight: 700; } 161.diff-new .diff-item { color: rgba(255,255,255,0.7); } 162.diff-new .diff-item::before { content: 'â'; position: absolute; left: 0; color: var(--yellow); font-size: 13px; font-weight: 700; } 163.diff-cta { text-align: center; margin-top: 40px; } 164 165/* ââ HOW IT WORKS ââ white bg */ 166.process-section { background: var(--white); } 167.process-section h2 { text-align: center; } 168.process-section .label { text-align: center; display: block; } 169.process-subtitle { text-align: center; color: var(--text-dark-secondary); font-size: 17px; max-width: 640px; margin: 0 auto 48px; line-height: 1.7; } 170.process-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; } 171.process-step { padding: 32px 24px; background: var(--light-gray); border-radius: 14px; text-align: center; position: relative; transition: all 0.3s; box-shadow: 0 1px 3px rgba(0,0,0,0.03); } 172.process-step:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,0.06); } 173.process-step::after { content: 'â'; position: absolute; right: -14px; top: 50%; transform: translateY(-50%); color: var(--yellow-dark); font-size: 18px; z-index: 2; } 174.process-step:last-child::after { display: none; } 175.step-num { font-family: var(--font-heading); font-size: 40px; font-weight: 700; color: var(--blue); opacity: 0.55; margin-bottom: 8px; } 176.step-title { font-family: var(--font-heading); font-size: 17px; font-weight: 700; color: var(--text-dark); margin-bottom: 8px; } 177.step-desc { font-size: 13px; color: var(--text-dark-secondary); line-height: 1.6; } 178 179/* ââ ORIGIN STORY ââ dark bg */ 180.story-section { background: var(--black); color: var(--text-primary); } 181.story-layout { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 72px; align-items: start; } 182.story-section .label { color: var(--yellow); } 183.story-section h2 { color: #fff; } 184.story-section h2 em { font-style: normal;
184 color: var(--yellow); } 185.story-body p { font-size: 16px; color: var(--text-secondary); line-height: 1.8; margin-bottom: 14px; } 186.story-body strong { color: #fff; } 187.story-body i { color: var(--yellow); font-style: italic; } 188 189.timeline { display: flex; flex-direction: column; } 190.tl-item { display: flex; gap: 18px; align-items: flex-start; } 191.tl-dot { width: 12px; height: 12px; border-radius: 50%; border: 2px solid; flex-shrink: 0; margin-top: 5px; } 192.tl-dot.old { border-color: #555; } 193.tl-dot.mid { border-color: var(--yellow-dark); background: rgba(244,184,13,0.15); } 194.tl-dot.now { border-color: var(--yellow); background: var(--yellow); } 195.tl-line { width: 2px; height: 28px; background: rgba(255,255,255,0.08); margin-left: 5px; } 196.tl-phase { font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.4); margin-bottom: 3px; } 197.tl-quote { font-family: var(--font-heading); font-size: 16px; font-weight: 700; color: #fff; margin-bottom: 4px; } 198.tl-desc { font-size: 13px; color: var(--text-secondary); line-height: 1.5; } 199 200/* ââ METHODOLOGY / BOOK ââ light gray bg */ 201.method-section { background: var(--light-gray); } 202.method-grid { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 72px; align-items: center; } 203.book-img { width: 100%; max-width: 320px; border-radius: 8px; box-shadow: 0 24px 56px rgba(0,0,0,0.18), 0 0 0 1px rgba(0,0,0,0.04); transition: transform 0.4s; } 204.book-img:hover { transform: scale(1.02) rotate(-1deg); } 205.book-avail { margin-top: 20px; font-size: 13px; color: var(--text-dark-secondary); } 206.book-avail strong { color: var(--text-dark); } 207.method-content .label { color: var(--yellow-dark); } 208.method-content h2 em { font-style: normal; color: var(--yellow-dark); } 209.laws-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 28px 0; } 210.law-item { 211 display: flex; align-items: flex-start; gap: 8px; padding: 12px 14px; 212 background: var(--white); border-radius: 8px; font-size: 13px; color: var(--text-dark-secondary); line-height: 1.4; 213} 214.law-num { font-family: var(--font-heading); font-weight: 700; font-size: 11px; color: var(--yellow-dark); flex-shrink: 0; width: 18px; text-align: right; } 215.book-quote { 216 margin-top: 28px; padding: 20px 24px; 217 border-left: 3px solid var(--yellow); background: var(--white); border-radius: 0 10px 10px 0; 218} 219.book-quote p { font-size: 15px; font-style: italic; color: var(--text-dark); line-height: 1.6; margin-bottom: 6px; } 220.book-quote cite { font-style: normal; font-size: 12px; color: var(--text-dark-secondary); } 221.stars { color: var(--yellow); letter-spacing: 2px; } 222 223/* ââ TRACTION STACK ââ white bg */ 224.stack-section { background: var(--white); } 225.stack-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 48px; } 226.stack-card { 227 background: var(--light-gray); border-radius: 16px; padding: 36px 32px; 228 transition: all 0.4s cubic-bezier(0.16,1,0.3,1); position: relative; overflow: hidden; 229 box-shadow: 0 1px 3px rgba(0,0,0,0.04); 230} 231.stack-card:hover { transform: translateY(-3px); box-shadow: 0 12px 36px rgba(0,0,0,0.08); } 232.stack-card.featured { grid-column: 1/-1; } 233.card-number { font-family: var(--font-heading); font-size: 56px; font-weight: 700; color: rgba(0,0,0,0.04); position: absolute; top: 12px; right: 24px; line-height: 1; } 234.card-status { display: inline-block; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; padding: 3px 10px; border-radius: 9999px; margin-bottom: 14px; } 235.status-spun { background: rgba(0,129,148,0.1); color: var(--blue); } 236.status-incubating { background: rgba(244,184,13,0.12); color: var(--yellow-dark); } 237.card-name { font-family: var(--font-heading); font-size: 24px; font-weight: 700; color: var(--text-dark); margin-bottom: 4px; } 238.card-tagline { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--blue); margin-bottom: 12px; } 239.card-desc { font-size: 14px; color: var(--text-dark-secondary); line-height: 1.7; margin-bottom: 20px; } 240.card-link { display: inline-flex; align-items: center; gap: 6px; color: var(--blue); font-weight: 600; font-size: 13px; text-decoration: none; transition: all 0.3s; } 241.card-link:hover { gap: 10px; color: var(--yellow-dark); } 242 243/* ââ TESTIMONIALS ââ dark bg */ 244.proof-section { background: var(--light-gray); color: var(--text-dark); } 245.logo-bar { 246 display: flex; align-items: center; justify-content: center; gap: 56px; 247 margin: 36px auto 48px; padding: 32px 0; 248 border-top: 1px solid rgba(0,0,0,0.06); border-bottom: 1px solid rgba(0,0,0,0.06); 249 flex-wrap: wrap; 250} 251.logo-text { 252 font-family: var(--font-heading); font-size: 18px; font-weight: 700; 253 opacity: 0.5; transition: opacity 0.3s; white-space: nowrap; 254} 255.logo-text:hover { opacity: 0.85; } 256@media(max-width:600px) { 257 .logo-bar { gap: 20px 28px; padding: 24px 0; justify-content: center; } 258 .logo-text { font-size: 13px; white-space: normal; text-align: center; } 259} 260.test-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; margin-top: 40px; } 261.test-card { background: var(--white); border-radius: 14px; padding: 28px; border: 1px solid rgba(0,0,0,0.04); box-shadow: 0 1px 3px rgba(0,0,0,0.03); transition: all 0.3s; } 262.test-card:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,0.06); } 263.test-card p { font-size: 14px; font-style: italic; color: var(--text-dark); line-height: 1.7; margin-bottom: 16px; } 264.test-card cite { font-style: normal; font-size: 12px; color: var(--text-dark-secondary); display: block; border-top: 1px solid rgba(0,0,0,0.06); padding-top: 12px; } 265.test-card cite strong { color: var(--text-dark); display: block; margin-bottom: 2px; } 266 267/* ââ BLOG ââ light gray bg */ 268.blog-section { background: var(--light-gray); } 269.blog-section .label { text-align: center; display: block; color: var(--blue); } 270.blog-section h2 { text-align: center; } 271.blog-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; margin-top: 40px; } 272.blog-card { 273 background: var(--white); border-radius: 14px; padding: 28px; text-decoration: none; 274 transition: all 0.4s cubic-bezier(0.16,1,0.3,1); display: flex; flex-direction: column; gap: 14px; 275 box-shadow: 0 1px 3px rgba(0,0,0,0.03); 276} 277.blog-card:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(0,0,0,0.08); } 278.blog-tag { display: inline-block; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--blue); background: rgba(0,129,148,0.08); padding: 3px 8px; border-radius: 4px; width: fit-content; } 279.blog-card h3 { font-size: 16px; color: var(--text-dark); line-height: 1.35; } 280.blog-read { font-size: 13px; color: var(--blue); font-weight: 600; margin-top: auto; } 281.blog-cta { text-align: center; margin-top: 32px; } 282 283/* ââ CTA + FORM ââ white bg */ 284.cta-section { background: var(--white); text-align: center; padding: 100px 32px; } 285.cta-section h2 { max-width: 600px; margin: 0 auto 16px; } 286.cta-subtitle { color: var(--text-dark-secondary); font-size: 17px; max-width: 580px; margin: 0 auto 40px; line-height: 1.7; } 287.contact-form { 288 max-width: 580px; margin: 0 auto; text-align: left; 289 background: var(--light-gray); border-radius: 16px; padding: 44px 40px; 290 box-shadow: 0 8px 32px rgba(0,0,0,0.04); 291} 292.form-title { font-family: var(--font-heading); font-size: 20px; font-weight: 700; text-align: center; margin-bottom: 28px; color: var(--text-dark); } 293.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; } 294.form-group { display: flex; flex-direction: column; gap: 5px; margin-bottom: 14px; } 295.form-row .form-group { margin-bottom: 0; } 296.form-group label { font-size: 12px; font-weight: 600; color: var(--text-dark-secondary); } 297.form-group input, .form-group textarea { 298 background: var(--white); border: 1px solid rgba(0,0,0,0.1); border-radius: 8px; 299 padding: 12px 14px; color: var(--text-dark); font-family: var(--font-body); font-size: 14px; 300 transition: border-color 0.3s; outline: none; width: 100%; 301} 302.form-group input::placeholder, .form-group textarea::placeholder { color: #bbb; } 303.form-group input:focus, .form-group textarea:focus { border-color: var(--blue); } 304.form-group textarea { resize: vertical; min-height: 90px; } 305 306/* ââ Footer ââ */ 307footer { background: var(--black); padding: 44px 32px; border-top: 1px solid rgba(255,255,255,0.04); } 308.footer-inner { max-width: 1140px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; } 309.footer-inner .logo { height: 48px; opacity: 0.5; } 310.footer-links { display: flex; gap: 20px; } 311.footer-links a { color: rgba(255,255,255,0.4); text-decoration: none; font-size: 13px; transition: color 0.3s; } 312.footer-links a:hover { color: #fff; } 313.footer-inner span { font-size: 12px; color: rgba(255,255,255,0.3); } 314 315/* ââ Animations ââ */ 316@keyframes fadeUp { from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)} } 317.reveal { opacity: 1; transform: translateY(0); transition: all 0.6s cubic-bezier(0.16,1,0.3,1); } 318 319/* ââ Responsive ââ */ 320/* Hamburger */ 321.hamburger { display: none; background: none; border: none; cursor: pointer; padding: 8px; z-index: 101; } 322.hamburger span { display: block; width: 22px; height: 2px; background: #fff; margin: 5px 0; transition: all 0.3s; border-radius: 2px; } 323
324@media(max-width:900px) { 325 .hamburger { display: block; } 326 .nav-links { 327 position: fixed; top: 0; right: -100%; width: 280px; height: 100vh; 328 background: rgba(0,0,0,0.97); backdrop-filter: blur(20px); 329 flex-direction: column; padding: 100px 32px 32px; gap: 24px; 330 transition: right 0.35s cubic-bezier(0.16,1,0.3,1); 331 box-shadow: -8px 0 32px rgba(0,0,0,0.3); 332 } 333 .nav-links.open { right: 0; } 334 .nav-links a { font-size: 18px; color: rgba(255,255,255,0.8); } 335 .nav-cta { text-align: center; margin-top: 12px; } 336} 337 338@media(max-width:900px) { 339 .tl-grid, .story-layout, .method-grid { grid-template-columns: 1fr; } 340 .tl-visual { order: -1; } 341 .stack-grid, .diff-grid { grid-template-columns: 1fr; } 342 .stack-card.featured { grid-column: auto; } 343 .stats-bar, .process-grid { grid-template-columns: 1fr 1fr; } 344 .process-step::after { display: none; } 345 .test-grid, .blog-grid { grid-template-columns: 1fr; } 346 nav { padding: 14px 20px; } 347 .nav-links { gap: 14px; } 348} 349@media(max-width:600px) { 350 .stats-bar, .process-grid { grid-template-columns: 1fr; } 351 .form-row { grid-template-columns: 1fr; } 352} 353</style> 354</head> 355<body> 356 357<!-- Nav --> 358<nav> 359 <img class="logo" src="./files/city-innovations-logo-with-tagline.png" alt="City Innovations"> 360 <button class="hamburger" onclick="document.querySelector('.nav-links').classList.toggle('open')" aria-label="Menu"> 361 <span></span><span></span><span></span> 362 </button> 363 <div class="nav-links"> 364 <a href="#traction-labs" onclick="this.parentElement.classList.remove('open')">Traction Labs</a> 365 <a href="#methodology" onclick="this.parentElement.classList.remove('open')">Methodology</a> 366 <a href="#stack" onclick="this.parentElement.classList.remove('open')">Ecosystem</a> 367 <a href="https://tractionfirst.substack.com/">Insights</a> 368 <a href="#contact" class="nav-cta" onclick="this.parentElement.classList.remove('open')">Work With Us</a> 369 </div> 370</nav> 371 372<!-- HERO --> 373<section class="hero"> 374 <div class="container"> 375 <div class="label">The Market Traction Gap Is the #1 Reason Businesses Stall</div> 376 <h1 style="font-size:4em;">Traction Changes <u>Everything.</u><br/><em>We help companies find it faster.</em></h1> 377 <p>City Innovations is a venture studio unified by one methodology â <strong><a style="color:var(--yellow);" href="#methodology">Traction Firstâ¢</a></strong> â and one mission: helping businesses and ventures find market traction faster than anyone. Whether you're stuck or just starting, we built an entire ecosystem around finding it.</p> 378 <div class="hero-btns"> 379 <a href="#traction-labs" class="btn btn-yellow">Get Traction <svg class="arrow-icon" viewBox="0 0 16 16"><path d="M3 8h10M9 4l4 4-4 4"></path></svg></a> 380 <a href="#stack" class="btn btn-outline-light">Explore the Ecosystem</a> 381 </div> 382 </div> 383</section> 384 385<!-- TRACTION LABS --> 386<section id="traction-labs" class="tl-section section-pad"> 387 <div class="container"> 388 <div class="tl-grid"> 389 <div class="tl-content"> 390 <div class="label dark-label">Flagship Company</div> 391 <h2>Traction Labs â The First-Ever <em>Traction Studio</em></h2> 392 <p>Revenue plateaued. Growth stalled. A new product can't find its market. An existing business can't break through. Traction Labs was built for exactly these moments. We're not an agency, not a consultancy â we're the team that finds your fastest path to real customers, real revenue, real momentum.</p> 393 <div class="tl-features"> 394 <div class="tl-feature"><span class="tl-check">â</span><span><strong>Sell First, Build Later</strong> â we prove demand before you invest in building</span></div> 395 <div class="tl-feature"><span class="tl-check">â</span><span><strong>520 learnings/year</strong> â vs. the industry average of 12. We learn 43à faster.</span></div> 396 <div class="tl-feature"><span class="tl-check">â</span><span><strong>2-week sprint cycles</strong> â rapid experiments that reveal what works and what doesn't</span></div> 397 </div> 398 <a href="https://tractionlabs.city/" class="btn btn-dark">
398Visit Traction Labs <svg class="arrow-icon" viewBox="0 0 16 16"><path d="M3 8h10M9 4l4 4-4 4"></path></svg></a> 399 </div> 400 <div class="tl-visual"> 401 <img src="./files/3afcfe8c-2c44-46f6-8486-d6d61ce256d9.png" alt="Traction Flywheel"> 402 </div> 403 </div> 404 <!-- Stats --> 405 <div class="stats-bar"> 406 <div class="stat"><div class="stat-num">43Ã</div><div class="stat-text">Faster to Market<br>Traction Than Typical</div></div> 407 <div class="stat"><div class="stat-num">520</div><div class="stat-text">Learnings Per Year<br>vs. Industry's 12</div></div> 408 409 <div class="stat"><div class="stat-num">2 wk</div><div class="stat-text">Sprint Cycles for<br>Rapid Experiments</div></div> 410 411 <div class="stat"><div class="stat-num">$1â$10</div><div class="stat-text">In/Out Repeatable<br>Traction Engine</div></div> 412 </div> 413 </div> 414</section> 415 416<!-- DIFFERENTIATOR --> 417<section class="diff-section section-pad"> 418 <div class="container"> 419 <div class="label">Why This Is Different</div> 420 <h2>Not an Agency. Not a Consultancy.<br>A <em>Traction Studio</em>.</h2> 421 <p class="diff-subtitle">You've probably hired marketing firms or sales consultants before. Maybe it worked for a while. Maybe it didn't. Here's why Traction Labs exists in a category of its own.</p> 422 <div class="diff-grid"> 423 <div class="diff-card diff-old"> 424 <div class="diff-header">Traditional Approach</div> 425 <div class="diff-items"> 426 <div class="diff-item">Build the product first, then find customers</div> 427 <div class="diff-item">Campaigns based on assumptions and "best practices"</div> 428 <div class="diff-item">Quarterly plans, monthly reports, slow iteration</div> 429 <div class="diff-item">Success measured in impressions, clicks, leads</div> 430 <div class="diff-item">Engagement ends with a deliverable</div> 431 </div> 432 </div> 433 <div class="diff-card diff-new"> 434 <div class="diff-header">The Traction Labs Way</div> 435 <div class="diff-items"> 436 <div class="diff-item">Prove demand first â whether it's a new product or a stuck one</div> 437 <div class="diff-item">Experiments driven by real market signal, not guesses</div> 438 <div class="diff-item">2-week sprints, 520 learnings/year, constant pivots</div> 439 <div class="diff-item">Success measured in revenue, retention, and repeatability</div> 440 <div class="diff-item">We install a traction engine inside your organization</div> 441 </div> 442 </div> 443 </div> 444 <div class="diff-cta"><a href="#contact" class="btn btn-dark">Talk to Traction Labs <svg class="arrow-icon" viewBox="0 0 16 16"><path d="M3 8h10M9 4l4 4-4 4"></path></svg></a></div> 445 </div> 446</section> 447 448<!-- HOW IT WORKS --> 449<section class="process-section section-pad"> 450 <div class="container"> 451 <div class="label">How It Works</div> 452 <h2>Sell First. Build Later.</h2> 453 <p class="process-subtitle">The Traction First⢠methodology flips the script â whether you're going to market for the first time or finding new growth in an existing business. Stop guessing. Start proving what the market will pay for.</p> 454 <div class="process-grid"> 455 <div class="process-step"><div class="step-num">01</div><div class="step-title">Signal</div><div class="step-desc">Capture real market signal. Whether it's a new idea or a business that's plateaued â find out what your market actually wants.</div></div> 456 <div class="process-step"><div class="step-num">02</div><div class="step-title">Sell</div><div class="step-desc">Sell before you build. Early sales aren't revenue â they're the fastest learning mechanism that exists.</div></div> 457 <div class="process-step"><div class="step-num">03</div><div class="step-title">Prove</div><div class="step-desc">Run rapid 2-week experiments. Validate what works, kill what doesn't. Build a repeatable traction engine with proof.</div></div> 458 <div class="process-step"><div class="step-num">04</div><div class="step-title">Scale</div><div class="step-desc">Once traction is proven and repeatable â then and only then â pour fuel on the fire.</div></div> 459 </div> 460 </div> 461</section> 462 463 464 465<!-- METHODOLOGY / BOOK --> 466<section id="methodology" class="method-section section-pad">
467 <div class="container"> 468 <div class="method-grid"> 469 <div class="book-visual" style="text-align:center;"> 470 <img class="book-img" src="./files/696e72b5bdf29aa9e80be4cf_IMG_0231-22.jpg" alt="Traction First⢠by Josh Barker"> 471 <div class="book-avail"><strong>Available on</strong> Amazon · Audible · Kindle</div> 472 </div> 473 <div class="method-content"> 474 <div class="label">The Methodology</div> 475 <h2>Traction Firstâ¢: <em>The 12 Laws of Market Traction</em></h2> 476 <p style="font-size:16px;color:var(--text-dark-secondary);line-height:1.75;margin-bottom:8px;">This isn't another business book â it's a wake-up call. Written by founder <strong style="color:var(--text-dark)">Josh Barker</strong> from hard-earned Silicon Valley lessons, Traction First⢠lays out the battle-tested principles behind every company in our portfolio.</p> 477 <p style="font-size:16px;color:var(--text-dark-secondary);line-height:1.75;">The core idea: <strong style="color:var(--blue)">sell before you build.</strong></p> 478 <div class="laws-grid"> 479 <div class="law-item"><span class="law-num">01</span> Sell before you build</div> 480 <div class="law-item"><span class="law-num">02</span> Learn from early sales</div> 481 <div class="law-item"><span class="law-num">03</span> Solve urgent pain, not vitamins</div> 482 <div class="law-item"><span class="law-num">04</span> Build momentum in weeks</div> 483 <div class="law-item"><span class="law-num">05</span> Traction beats perfection</div> 484 <div class="law-item"><span class="law-num">06</span> Engineer a growth engine</div> 485 </div> 486 <div style="display:flex;gap:10px;flex-wrap:wrap;"> 487 <a href="https://a.co/d/1DYbNOz" class="btn btn-yellow">Get the Book <svg class="arrow-icon" viewBox="0 0 16 16"><path d="M3 8h10M9 4l4 4-4 4"></path></svg></a> 488 <a href="https://tractionfirst.com/" class="btn btn-outline-dark">Learn More</a> 489 </div> 490 </div> 491 </div> 492 </div> 493</section> 494 495<!-- TRACTION STACK --> 496<section id="stack" class="stack-section section-pad"> 497 <div class="container"> 498 <div class="label">Our Portfolio</div> 499 <h2>The Traction Ecosystem</h2> 500 <p style="color:var(--text-dark-secondary);font-size:17px;max-width:600px;line-height:1.7;">Four interconnected companies powered by the Traction First⢠methodology. Each solves a different part of the market traction problem â for startups finding their footing and established businesses reigniting growth.</p> 501 <div class="stack-grid"> 502 <div class="stack-card"> 503 <div class="card-number">01</div> 504 <span class="card-status status-spun">Spun Out · Flagship</span> 505 <div class="card-name">Traction Labs</div> 506 <div class="card-tagline">Traction Studio</div> 507 <p class="card-desc" style="max-width:660px;">The first Traction Studio â devoted to getting your organization market traction as fast as possible. We find the fastest path to growth â turning ideas into traction, reviving what's stuck, and scaling what works.</p> 508 <a href="https://tractionlabs.city/" class="card-link">Visit tractionlabs.city <svg class="arrow-icon" viewBox="0 0 16 16"><path d="M3 8h10M9 4l4 4-4 4"></path></svg></a> 509 </div> 510 <div class="stack-card"> 511 <div class="card-number">
51102</div> 512 <span class="card-status status-spun">Spun Out</span> 513 <div class="card-name">ThinkTank</div> 514 <div class="card-tagline">AI-Powered Trust Engine</div> 515 <p class="card-desc">Trust comes before revenue. ThinkTank builds trust at scale â using AI-powered content built from your voice, your expertise, and your point of view. From podcast studios to the Belief Engine⢠to On-The-Road conference pipeline â we turn one conversation into months of traction.</p> 516 <a href="https://thinktank.city/" class="card-link">Visit thinktank.city <svg class="arrow-icon" viewBox="0 0 16 16"><path d="M3 8h10M9 4l4 4-4 4"></path></svg></a> 517 </div> 518 <div class="stack-card"> 519 <div class="card-number">03</div> 520 <span class="card-status status-incubating">Incubating</span> 521 <div class="card-name">Hivemind</div> 522 <div class="card-tagline">Traction First⢠AI</div> 523 <p class="card-desc">Your team learns. Hivemind compounds it. Patent-pending autonomous knowledge reinforcement technology that auto-learns from every customer interaction â compounding 520 learnings/year into organizational intelligence that gets exponentially smarter. The AI backbone of the Traction First⢠system.</p> 524 <a href="https://hivemind.city/" class="card-link">Visit hivemind.city <svg class="arrow-icon" viewBox="0 0 16 16"><path d="M3 8h10M9 4l4 4-4 4"></path></svg></a> 525 </div> 526 527 <!-- Traction First --> 528 <div class="stack-card"> 529 <div class="card-number">04</div> 530 <span class="card-status status-spun">Spun Out</span> 531 <div class="card-name">Traction Firstâ¢</div> 532 <div class="card-tagline">Education & Methodology</div> 533 <p class="card-desc">The brand behind the methodology. Traction First⢠houses the education of the system â the book series, certification programs, courses, and the accelerator â giving leaders and practitioners the tools to build repeatable growth engines themselves.</p> 534 <a href="https://tractionfirst.com" class="card-link">Visit tractionfirst.com <svg class="arrow-icon" viewBox="0 0 16 16"><path d="M3 8h10M9 4l4 4-4 4"></path></svg></a> 535 </div> 536 </div> 537 </div> 538</section> 539 540<!-- SOCIAL PROOF --> 541<section class="proof-section section-pad"> 542 <div class="container"> 543 <div class="label" style="text-align:center;display:block;color:var(--blue);">Trusted By</div> 544 <h2 style="text-align:center;">Traction First⢠Changes Everything</h2> 545 <div class="logo-bar"> 546 <div class="logo-text" style="color:#0072CE;"><span style="font-weight:800;">Consumers</span> Energy</div> 547 <div class="logo-text" style="color:#CC0000;font-weight:800;">Gordon<span style="color:#666;font-weight:400;"> Food Service</span></div> 548 <div class="logo-text" style="color:#1a237e;"><span style="font-weight:800;">WOLVERINE</span> <span style="font-weight:400;">BUILDING GROUP</span></div> 549 <div class="logo-text" style="color:#1a1a1a;font-weight:800;letter-spacing:0.12em;">CAVALLO<sup style="font-size:8px;">®</sup></div> 550 </div> 551 <div class="test-grid"> 552 <div class="test-card"><p>"The Market Traction Funnel gave our team a clear, no-nonsense roadmap to move fast without wasting millions."</p><cite><strong>Isaiah Mclaughlin</strong>CEO</cite></div> 553 <div class="test-card"><p>"City Innovations led us from a basic idea to a fully operational product and a successful launch. I'd highly recommend their services."</p><cite><strong>Tracy</strong>Nell</cite></div> 554 <div class="test-card"><p>"When I see founders applying these principles, I know they're serious. This book should be on every pitch deck prep list."</p><cite><strong>Cam VanHouten</strong>Investor / VC</cite></div> 555 </div> 556 </div> 557</section> 558 559<!-- BLOG (hidden) --> 560<section class="blog-section section-pad" style="display:none;"> 561 <div class="container"> 562 <div class="label">Insights</div> 563 <h2>Tips, Ideas & Stories for Innovators</h2> 564 <div class="blog-grid"> 565 <a href="https://cityinnovations.com/why-early-traction-feels-flat-and-why-thats-exactly-what-should-happen/" class="blog-card"> 566 <div class="blog-tag">Market Traction</div> 567 <h3>Why Early Traction Feels Flat â And Why That's Exactly What Should Happen</h3>
568 <span class="blog-read">Read article â</span> 569 </a> 570 <a href="https://cityinnovations.com/product-launch-strategy-benefits/" class="blog-card"> 571 <div class="blog-tag">Strategy</div> 572 <h3>Creating a Product Launch Strategy: 6 Advantages for Corporate Intrapreneurs</h3> 573 <span class="blog-read">Read article â</span> 574 </a> 575 <a href="https://cityinnovations.com/product-market-fit-stages-and-questions/" class="blog-card"> 576 <div class="blog-tag">Product-Market Fit</div> 577 <h3>Establishing Product-Market Fit: Stages, Questions to Ask, & More</h3> 578 <span class="blog-read">Read article â</span> 579 </a> 580 </div> 581 <div class="blog-cta"><a href="https://tractionfirst.substack.com/" class="btn btn-outline-dark">View All Insights</a></div> 582 </div> 583</section> 584 585<!-- ORIGIN STORY --> 586<section class="story-section section-pad"> 587 <div class="container"> 588 <div class="story-layout"> 589 <div class="story-content"> 590 <div class="label">Our Story</div> 591 <h2>From Big 4 to Silicon Valley to <em>This</em>.</h2> 592 <div class="story-body"> 593 <p>We came from Big 4 consulting. Went to Silicon Valley. Built a startup that missed the mark. That failure taught us everything â and became the foundation for <strong>Traction Firstâ¢</strong>.</p> 594 <p>Our first iteration was a software company. Our mantra: <strong>"build the right thing."</strong> We preached <i>"validate before you build."</i> Almost nobody listened. Everyone had their Field of Dreams moment â <i>"just build it and they'll come."</i></p> 595 <p>So we started catching people after. Founders who built something great but couldn't grow it. Established businesses that had never cracked a repeatable growth engine. Companies doing fine â but stuck at the same revenue year after year.</p> 596 <p>The problem was always the same: <strong>no system for market traction.</strong> That's why we pivoted everything to Traction First⢠â and built Traction Labs to solve it.</p> 597 </div> 598 </div> 599 <div class="story-sidebar" style="position:sticky;top:120px;"> 600 <div class="timeline"> 601 <div class="tl-item"><div class="tl-dot old"></div><div><div class="tl-phase">Big 4 â Silicon Valley</div><div class="tl-quote">Built a startup. It failed.</div><div class="tl-desc">Hard-earned lessons became the Traction First⢠methodology.</div></div></div> 602 <div class="tl-line"></div> 603 <div class="tl-item"><div class="tl-dot mid"></div><div><div class="tl-phase">Software Company</div><div class="tl-quote">"Build the right thing"</div><div class="tl-desc">We preached validate-first. Nobody listened. They built anyway.</div></div></div> 604 <div class="tl-line"></div> 605 <div class="tl-item"><div class="tl-dot mid"></div><div><div class="tl-phase">The Pattern</div><div class="tl-quote">"We built it. Why isn't it working?"</div><div class="tl-desc">Same story. Hundreds of times. Great products. No traction.</div></div></div> 606 <div class="tl-line"></div> 607 <div class="tl-item"><div class="tl-dot now"></div><div><div class="tl-phase">Now</div><div class="tl-quote">Traction Labs</div><div class="tl-desc">A repeatable system for market traction â whether you're launching, stuck, or scaling.</div></div></div> 608 </div> 609 </div> 610 </div> 611 </div> 612</section> 613 614<!-- CTA + FORM --> 615<section id="contact" class="cta-section"> 616 <div class="container"> 617 <div class="label" style="text-align:center;display:block;color:var(--blue);">Ready?</div> 618 <h2>Traction First⢠isn't luck â<br>it's a system.</h2> 619 <p class="cta-subtitle">Whether you're an established business looking to break through, or a startup finding its footing â Traction Labs is the fastest path to market traction. Real customers, real revenue, real momentum.</p> 620 621 <div class="opcrm-webform contact-form" id="opcrm-webform-6a04e7aa6281fc038e356cb2" data-form-url="https://forms.onepagecrm.com/6a04e7aa6281fc038e356cb2/"></div> 622
622<script type="text/javascript" src="https://forms.onepagecrm.com/embed.js"></script>
622 623 </div> 624</section> 625 626<!-- Footer --> 627<footer> 628 <div class="footer-inner"> 629 <img class="logo" src="./files/city-innovations-logo-with-tagline.png" alt="City Innovations"> 630 <div class="footer-links"> 631 <a href="https://cityinnovations.com/about/">About</a> 632 <a href="https://tractionfirst.substack.com/">Insights</a> 633 <a href="https://tractionfirst.com/">Traction Firstâ¢</a> 634 <a href="https://cityinnovations.com/privacy-policy/">Privacy</a> 635 </div> 636 <span>© 2026 City Innovations</span> 637 </div> 638</footer> 639 640 641</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.