1<!DOCTYPE html><!-- Last Published: Tue Sep 08 2026 15:16:13 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="story-renovations-staging.webflow.io" data-wf-page="6551928ab449be393fa957de" data-wf-site="65511c14a69010c6ced966df" data-wf-intellimize-customer-id="117787524" lang="en"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Your Luxury Home Building and Remodeling Contractor | Story</title><meta content="Contact Story today about a luxury home remodel, addition or custom home build in Denver or Arizona. Our proven process makes design and construction easier and less stressful." name="description"/><meta content="Your Luxury Home Building and Remodeling Contractor | Story" property="og:title"/><meta content="Contact Story today about a luxury home remodel, addition or custom home build in Denver or Arizona. Our proven process makes design and construction easier and less stressful." property="og:description"/><meta content="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677d93509634124c8c7030d5_open-graph.png" property="og:image"/><meta content="Your Luxury Home Building and Remodeling Contractor | Story" name="twitter:title"/><meta content="Contact Story today about a luxury home remodel, addition or custom home build in Denver or Arizona. Our proven process makes design and construction easier and less stressful." name="twitter:description"/><meta content="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677d93509634124c8c7030d5_open-graph.png" name="twitter:image"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><link href="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/css/story-renovations-staging.webflow.shared.4224b8282.min.css" rel="stylesheet" type="text/css" integrity="sha384-QiS4KCbUHVdZ9QOS05IjPb9O3Tz22WcMfrnixT15HJFh/uqxhAJRVos1ZM+w2rtz" crossorigin="anonymous"/><link href="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/css/story-renovations-staging.webflow.6551928ab449be393fa957de.995c4f467.opt.min.css" rel="stylesheet" type="text/css" integrity="sha384-mVxPRnVNJOdY+Gdh9ROn7NTz2a9s2kqRuj+kvpsvHfHFekUOb76WcS08W5VdpFZc" crossorigin="anonymous"/>
1<script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script>
1<link href="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677dcaa2f72c547f5d7e6a3d_675c9e9133257bb4c6821cf4_Favicon-32.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677dcaa8c278782b3a64dd87_675c9e94a9f03434dd431dd3_Favicon-256.png" rel="apple-touch-icon"/><link href="https://www.storyrenovations.com/process" rel="canonical"/><style>.anti-flicker, .anti-flicker * {visibility: hidden !important; opacity: 0 !important;}</style><style>[data-wf-hidden-variation], [data-wf-hidden-variation] * { 2 display: none !important; 3 }</style>
3<script>!function(w,d,s,u){if(w.oaiq)return;var q=function(){q.q.push(arguments)};q.q=[];w.oaiq=q;var j=d.createElement(s);j.async=1;j.src=u;var f=d.getElementsByTagName(s)[0];f.parentNode.insertBefore(j,f)}(window,document,"script","https://bzrcdn.openai.com/sdk/oaiq.min.js");oaiq("init",{pixelId:"Ptpms9oDvqnGCKjUZN93SQ",debug:true});</script>
3 4 5<!-- Critical preloads --> 6<link rel="preload" href="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/css/story-renovations-staging.webflow.shared.c247b3eb5.min.css" as="style"> 7<link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js" as="script"> 8 9<!-- Critical CSS (inlined for faster rendering) --> 10<style> 11 * { 12 -webkit-font-smoothing: antialiased; 13 -moz-osx-font-smoothing: grayscale; 14 -o-font-smoothing: antialiased; 15 -webkit-appearance: none; 16 } 17 18 .animate-on-scroll { 19 opacity: 0; 20 transform: translateY(20px); 21 transition: opacity 0.6s ease-out, transform 0.6s ease-out; 22 } 23 24 .animate-on-scroll.fade-up { 25 opacity: 1; 26 transform: translateY(0); 27 } 28 29 .cta37_link-image-wrapper { 30 position: absolute; 31 top: 0; 32 left: 0; 33 transform: translate(0, 0) scale(0.95); 34 opacity: 0; 35 pointer-events: none; 36 transition: opacity 0.3s ease, transform 0.3s ease; 37 } 38 39 .cta37_link-text { 40 transition: font-family 0.4s ease, font-style 0.4s ease; 41 } 42 43 .form_input.is-text-area { 44 resize: none; 45 } 46 47 .visually-hidden { 48 position: absolute; 49 width: 1px; 50 height: 1px; 51 padding: 0; 52 margin: -1px; 53 overflow: hidden; 54 clip: rect(0, 0, 0, 0); 55 white-space: nowrap; 56 border: 0; 57 } 58</style> 59 60<style> 61.instagram-embed-container { 62 width: 100%; 63 max-width: 540px; 64 margin: 0 auto; 65 min-height: 700px; 66 background: #fafafa; 67 border-radius: 8px; 68 overflow: hidden; 69} 70 71.instagram-embed-container iframe { 72 display: block; 73 margin: 0 auto; 74} 75</style> 76 77<!-- Google Tag Manager -->
78<script>
vendor: 328 bytes, lines 78-83
78 79(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 80new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 81j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 82'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 83})(window,document,'script','dataLayer','
83GTM-W3349D68
vendor: 4 bytes, line 83
83');
84</script>
84 85 86 87 88<meta name="p:domain_verify" content="66eb4f5f13cab5e1aedd015a85e03d4a"/> 89 90
91<script> 92// Only apply to content subdomain 93if (window.location.hostname === 'content.storyrenovations.com') { 94 document.write('<meta name="robots" content="noindex, nofollow, noarchive, nosnippet" />'); 95 document.write('<link rel="canonical" href="https://www.storyrenovations.com' + window.location.pathname + '" />'); 96} 97</script>
97 98 99<!-- Checkbox fix -->
100<script> 101document.addEventListener('DOMContentLoaded', function() { 102 const checkboxes = document.querySelectorAll('.checkbox-field input[type="checkbox"]'); 103 104 checkboxes.forEach(function(checkbox) { 105 checkbox.addEventListener('change', function() { 106 const label = this.closest('.checkbox-field'); 107 if (this.checked) { 108 label.style.backgroundColor = '#CAD6E8'; 109 } else { 110 label.style.backgroundColor = ''; 111 } 112 }); 113 }); 114}); 115</script>
115<!-- 116========================== 117TABLE OF CONTENTS (HEAD) 118========================== 1191. Image Scale (CSS) 120--> 121 122 123<!-- 1. Image Scale (CSS) --> 124 125<style> 126.img-wrapper-full { 127 width: 100%; 128 height: 100%; 129 max-height: 50rem; 130 overflow: hidden; 131 position: relative; 132} 133 134.img-wrapper-full img { 135 width: 100%; 136 height: 100%; 137 object-fit: cover; 138 display: block; 139} 140</style><style> 141 .w-webflow-badge, 142 .webflow-badge, 143 .w-webflow-badge * { 144 display: none!important; 145 visibility: hidden!important; 146 opacity: 0!important; 147 pointer-events: none!important; 148 width: 0!important; 149 height: 0!important; 150 } 151 </style></head><body><div class="page-wrapper"><div class="global-styles w-embed"><style> 152 153/* Ensure all elements inherit the color from its parent */ 154body * { 155 color: inherit; 156} 157 158a, 159.w-input, 160.w-select, 161.w-tab-link, 162.w-nav-link, 163.w-slider-arrow-left, 164.w-slider-arrow-right, 165.w-dropdown-btn, 166.w-dropdown-toggle, 167.w-dropdown-link { 168 color: inherit; 169 text-decoration: inherit; 170 font-size: inherit; 171} 172
173/* Focus state style for keyboard navigation for the focusable elements */ 174*[tabindex]:focus-visible, 175 input[type="file"]:focus-visible { 176 outline: 0.125rem solid #4d65ff; 177 outline-offset: 0.125rem; 178} 179 180/* Get rid of top margin on first element in any rich text element */ 181.w-richtext > :not(div):first-child, .w-richtext > div:first-child > :first-child { 182 margin-top: 0 !important; 183} 184 185/* Get rid of bottom margin on last element in any rich text element */ 186.w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child { 187 margin-bottom: 0 !important; 188} 189 190/* Prevent all click and hover interaction with an element */ 191.pointer-events-off { 192 pointer-events: none; 193} 194 195/* Enables all click and hover interaction with an element */ 196.pointer-events-on { 197 pointer-events: auto; 198} 199 200/* Create a class of .div-square which maintains a 1:1 dimension of a div */ 201.div-square::after { 202 content: ""; 203 display: block; 204 padding-bottom: 100%; 205} 206 207/* Make sure containers never lose their center alignment */ 208.container-medium,.container-small, .container-large { 209 margin-right: auto !important; 210 margin-left: auto !important; 211} 212 213 214/* Apply "..." after 3 lines of text */ 215.text-style-3lines { 216 display: -webkit-box; 217 overflow: hidden; 218 -webkit-line-clamp: 3; 219 -webkit-box-orient: vertical; 220} 221 222/* Apply "..." after 2 lines of text */ 223.text-style-2lines { 224 display: -webkit-box; 225 overflow: hidden; 226 -webkit-line-clamp: 2; 227 -webkit-box-orient: vertical; 228} 229 230/* Adds inline flex display */ 231.display-inlineflex { 232 display: inline-flex; 233} 234 235/* These classes are never overwritten */ 236.hide { 237 display: none !important; 238} 239 240@media screen and (max-width: 991px) { 241 .hide, .hide-tablet { 242 display: none !important; 243 } 244} 245 @media screen and (max-width: 767px) { 246 .hide-mobile-landscape{ 247 display: none !important; 248 } 249} 250 @media screen and (max-width: 479px) { 251 .hide-mobile{ 252 display: none !important; 253 } 254} 255 256.margin-0 { 257 margin: 0rem !important; 258} 259 260.padding-0 { 261 padding: 0rem !important; 262} 263 264.spacing-clean { 265padding: 0rem !important; 266margin: 0rem !important; 267} 268 269.margin-top { 270 margin-right: 0rem !important; 271 margin-bottom: 0rem !important; 272 margin-left: 0rem !important; 273} 274 275.padding-top { 276 padding-right: 0rem !important; 277 padding-bottom: 0rem !important; 278 padding-left: 0rem !important; 279} 280 281.margin-right { 282 margin-top: 0rem !important; 283 margin-bottom: 0rem !important; 284 margin-left: 0rem !important; 285} 286 287.padding-right { 288 padding-top: 0rem !important; 289 padding-bottom: 0rem !important; 290 padding-left: 0rem !important; 291} 292 293.margin-bottom { 294 margin-top: 0rem !important; 295 margin-right: 0rem !important; 296 margin-left: 0rem !important; 297} 298 299.padding-bottom { 300 padding-top: 0rem !important; 301 padding-right: 0rem !important; 302 padding-left: 0rem !important; 303} 304 305.margin-left { 306 margin-top: 0rem !important; 307 margin-right: 0rem !important; 308 margin-bottom: 0rem !important; 309} 310 311.padding-left { 312 padding-top: 0rem !important; 313 padding-right: 0rem !important; 314 padding-bottom: 0rem !important; 315} 316 317.margin-horizontal { 318 margin-top: 0rem !important; 319 margin-bottom: 0rem !important; 320} 321 322.padding-horizontal { 323 padding-top: 0rem !important; 324 padding-bottom: 0rem !important; 325} 326 327.margin-vertical { 328 margin-right: 0rem !important; 329 margin-left: 0rem !important; 330} 331 332.padding-vertical { 333 padding-right: 0rem !important; 334 padding-left: 0rem !important; 335} 336 337/* Apply "..." at 100% width */ 338.truncate-width { 339 width: 100%; 340 white-space: nowrap; 341 overflow: hidden; 342 text-overflow: ellipsis; 343} 344/* Removes native scrollbar */ 345.no-scrollbar { 346 -ms-overflow-style: none; 347 overflow: -moz-scrollbars-none; 348} 349 350.no-scrollbar::-webkit-scrollbar {
351 display: none; 352} 353 354</style> 355 356<!-- Fluid Responsive --> 357<style> 358html { font-size: 16px;} 359@media (min-width: 240px) { 360 html {font-size: calc(8px + 8 * ((100vw - 240px) / 239));} 361} 362@media (min-width: 768px) { 363 html {font-size: calc(12px + 4 * ((100vw - 768px) / 223));} 364} 365@media (min-width: 992px) { 366 html {font-size: calc(11.71px + 4.29 * ((100vw - 992px) / 448));} 367} 368@media (min-width: 1440px) { 369 html {font-size: 16px;} 370} 371 372.container-large { 373 max-width: 120rem; 374} 375 376.animate-h1 { 377 text-wrap: balance; 378 white-space: normal; 379 opacity: 0; 380} 381 382.animate-h1 .word { 383 display: inline; 384 white-space: normal; 385} 386</style></div><div data-animation="default" class="navigation filled w-nav" data-easing2="ease" fs-scrolldisable-element="smart-nav" data-easing="ease" data-collapse="medium" data-w-id="82ec9e33-a395-4490-b23b-e3a18efe29c9" role="banner" data-duration="400"><div class="navbar2_container"><a href="/" id="w-node-f2bb327d-39e4-bab5-8dba-b94cdd413993-8efe29c9" class="nav-link-logo w-nav-brand"><div class="w-embed"><svg xmlns="http://www.w3.org/2000/svg" style="display: block;" width="100%" height="100%" viewBox="0 0 139 40" fill="none" preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img"> 387 <path d="M55.7761 11.649H45.7921C44.8042 11.649 44.0281 12.456 44.0281 13.4034C44.0281 13.9297 44.2045 14.3508 44.4867 14.5964C45.2629 15.3332 46.9915 15.228 48.3674 15.1578C49.0377 15.1578 49.6375 15.0876 50.1667 15.1578C55.141 15.2981 57.3989 19.0174 57.3989 22.456C57.3989 25.8946 55.141 29.6139 50.1667 29.7543H38.4893V24.2104H50.1314C51.1192 24.2104 51.8954 23.4034 51.8954 22.456C51.8954 21.5087 51.0839 20.7016 50.1314 20.7016C49.1789 20.7016 49.2141 20.7016 48.6849 20.7016C46.039 20.7367 42.758 20.8069 40.8177 18.7367C38.5951 16.8069 37.8895 13.649 39.0537 10.7367C40.1827 7.89463 42.758 6.07007 45.6157 6.07007H55.7761V11.6139V11.649Z" fill="currentColor"/> 388 <path d="M84.952 29.9999C78.3195 29.9999 72.957 24.5613 72.957 17.8596C72.957 11.1578 78.3195 5.71924 84.952 5.71924C91.5844 5.71924 96.9469 11.1578 96.9469 17.8596C96.9469 24.5613 91.5844 29.9999 84.952 29.9999ZM91.3022 17.9298C91.3022 14.3859 88.4446 11.5087 84.952 11.5087C81.4593 11.5087 78.6017 14.3859 78.6017 17.9298C78.6017 21.4736 81.4593 24.3508 84.952 24.3508C88.4446 24.3508 91.3022 21.4736 91.3022 17.9298Z" fill="currentColor"/> 389 <path d="M124.465 29.158L121.113 37.9299H127.181L138.682 5.92993H132.861L127.463 22.0352L121.536 5.92993H115.574L124.5 29.158H124.465Z" fill="currentColor"/> 390 <path d="M71.37 11.7192V6.14026H65.9017V0.70166H60.6098V6.14026H58.2461V11.7192H60.6098V24.5262C60.6098 27.3683 62.8324 29.649 65.5842 29.649H71.37V24.0701H65.9017V11.7192H71.37Z" fill="currentColor"/> 391 <path d="M104.673 8.66657V5.92973H99.3105V29.7543H104.673V17.5789C104.673 14.3508 107.107 11.5789 110.353 11.3332C111.059 11.2982 111.764 11.3332 112.505 11.5438L114.022 5.92973C110.741 5.05254 106.719 6.31569 104.708 8.70166L104.673 8.66657Z" fill="currentColor"/> 392 <path d="M15.0289 23.5789L8.71396 29.8596H21.3792L15.0642 23.5789H15.0289ZM16.0168 0.982456L15.0289 0L0 14.807V22.9123L19.0155 4L16.0168 1.01754V0.982456ZM17.0751 21.8246L25.1541 29.8596H30.0226V26.5614L21.1675 17.7544L17.0751 21.8246ZM20.8147 6L0 26.7017V29.8596H4.97437L20.9558 13.9649L30.0579 23.0175V14.9123L20.9911 5.89474L20.85 6.03509L20.8147 6Z" fill="currentColor"/> 393</svg></div></a><nav role="navigation" id="w-node-f2bb327d-39e4-bab5-8dba-b94cdd413995-8efe29c9" class="navbar2_menu is-page-height-tablet w-nav-menu"><a href="/process" aria-current="page" class="navbar2_link light alt w-nav-link w--current">How It Works</a><div data-delay="200" data-hover="true" data-w-id="6651d933-3522-4452-febc-322a6a4c3dc8" class="dropdown-3 w-dropdown"><div class="navbar3_dropdown-toggle w-dropdown-toggle"><div class="text-block-37">Services</div><div class="dropdown-chevron w-embed"><svg width=" 100%" height=" 100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 394<path fill-rule="evenodd" clip-rule="evenodd" d="M2.55806 6.29544C2.46043 6.19781 2.46043 6.03952 2.55806 5.94189L3.44195 5.058C3.53958 4.96037 3.69787 4.96037 3.7955 5.058L8.00001 9.26251L12.2045 5.058C12.3021 4.96037 12.4604 4.96037 12.5581 5.058L13.4419 5.94189C13.5396 6.03952 13.5396 6.19781 13.4419 6.29544L8.17678 11.5606C8.07915 11.6582 7.92086 11.6582 7.82323 11.5606L2.55806 6.29544Z" fill="currentColor"/> 395</svg></div></div><nav class="navbar3_dropdown-list w-dropdown-list"><a href="/services" class="navbar2_link light alt w-dropdown-link">All Services</a><a href="/landing/residential-architecture" class="navbar2_link light alt w-dropdown-link">Architecture</a><a href="/services/interior-design" class="navbar2_link light alt w-dropdown-link">Interior Design</a><a href="/services/renovations-and-additions" class="navbar2_link light alt w-dropdown-link">
395Renovations & Additions</a><a href="/services/custom-homes" class="navbar2_link light alt w-dropdown-link">Custom Homes</a><a href="/furnishing" class="navbar2_link light alt w-dropdown-link">Furnishing</a></nav></div><a href="/our-projects" class="navbar2_link light alt w-nav-link">Projects</a><a href="/design-studio" class="navbar2_link light alt hidden w-nav-link">AI Design Studio</a><a href="/design-studio" class="navbar2_link light w-nav-link">AIÂ Design Studio</a><a href="/team" class="navbar2_link light alt w-nav-link">About</a><a href="/blog" class="navbar2_link light alt w-nav-link">Blog</a><a href="/contact-us" class="navbar2_link light alt w-nav-link">Contact</a><a href="https://app.storyrenovations.com/" target="_blank" class="navbar2_link light alt">Client Login</a><link rel="noopener" href="https://app.storyrenovations.com/"/><a href="/start-my-project" class="button is-icon nav dropdown w-inline-block"><div class="text-block-34">Start My Project</div><div class="white-arrow w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 16 16" fill="none" preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img"> 396<g clip-path="url(#clip0_5204_438)"> 397<path d="M0 8C0 10.1217 0.842855 12.1566 2.34315 13.6569C3.84344 15.1571 5.87827 16 8 16C10.1217 16 12.1566 15.1571 13.6569 13.6569C15.1571 12.1566 16 10.1217 16 8C16 5.87827 15.1571 3.84344 13.6569 2.34315C12.1566 0.842855 10.1217 0 8 0C5.87827 0 3.84344 0.842855 2.34315 2.34315C0.842855 3.84344 0 5.87827 0 8ZM9.28125 12.0312C8.9875 12.325 8.5125 12.325 8.22188 12.0312C7.93125 11.7375 7.92813 11.2625 8.22188 10.9719L10.4406 8.75313L3.75 8.75C3.33437 8.75 3 8.41563 3 8C3 7.58437 3.33437 7.25 3.75 7.25H10.4406L8.22188 5.03125C7.92813 4.7375 7.92813 4.2625 8.22188 3.97187C8.51563 3.68125 8.99062 3.67812 9.28125 3.97187L12.7812 7.46875C13.075 7.7625 13.075 8.2375 12.7812 8.52812L9.28125 12.0312Z" fill="currentColor"/> 398</g> 399<defs> 400<clipPath id="clip0_5204_438"> 401<rect width="16" height="16" fill="currentColor"/> 402</clipPath> 403</defs> 404</svg></div></a></nav><div id="w-node-f2bb327d-39e4-bab5-8dba-b94cdd4139a6-8efe29c9" class="navbar2_button-wrapper"><a href="/start-my-project" class="button is-icon nav w-inline-block"><div class="text-block-34">Start My Project</div><div class="white-arrow w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 16 16" fill="none" preserveAspectRatio="xMidYMid meet" overflow="visible"> 405 <path d="M0 8C0 10.1217 0.842855 12.1566 2.34315 13.6569C3.84344 15.1571 5.87827 16 8 16C10.1217 16 12.1566 15.1571 13.6569 13.6569C15.1571 12.1566 16 10.1217 16 8C16 5.87827 15.1571 3.84344 13.6569 2.34315C12.1566 0.842855 10.1217 0 8 0C5.87827 0 3.84344 0.842855 2.34315 2.34315C0.842855 3.84344 0 5.87827 0 8ZM9.28125 12.0312C8.9875 12.325 8.5125 12.325 8.22188 12.0312C7.93125 11.7375 7.92813 11.2625 8.22188 10.9719L10.4406 8.75313L3.75 8.75C3.33437 8.75 3 8.41563 3 8C3 7.58437 3.33437 7.25 3.75 7.25H10.4406L8.22188 5.03125C7.92813 4.7375 7.92813 4.2625 8.22188 3.97187C8.51563 3.68125 8.99062 3.67812 9.28125 3.97187L12.7812 7.46875C13.075 7.7625 13.075 8.2375 12.7812 8.52812L9.28125 12.0312Z" fill="currentColor"/> 406</svg></div></a><div class="navbar2_menu-button w-nav-button"><div class="menu-icon2"><div class="menu-icon2_line-top"></div><div class="menu-icon2_line-middle"><div class="menu-icon2_line-middle-inner"></div></div><div class="menu-icon2_line-bottom"></div></div></div></div></div></div><main class="main-wrapper"><header class="section_header44"><div class="padding-global"><div class="container-large"><div class="padding-section-large"><div class="header44_component"><div class="max-width-lg"><div class="text-style-tagline">Building Together</div><div class="spacer-xsmall"></div><h1 class="heading-style-h1 animate-h1">Design & Construction are hard. <span class="text-span-4">We're here to change that.</span></h1></div></div></div></div></div></header><header class="section_header11 animate-on-scroll"><div class="header11_component"><div class="header11_video-wrapper"><div class="img-wrapper-full"><img loading="eager" height="Auto" alt="Photo of a kitchen with white countertop, white cabinets, and black stools with gold legs" src="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677d757225ea
4067dc9df2d29c8_processhero%20(1).webp" class="image-3"/></div></div><div class="div-block-3"><div class="padding-global"><div class="container-large"><div class="padding-vertical padding-custom1"><div class="w-layout-grid header11_content"><div class="header11_content-left"><h1 class="heading-12">A Seamless Process from<br/>Start to Finish.</h1></div><div class="header11_content-right"><p class="sub-copy-lg">Our trusted in-house team of experts in design, materials, and construction combine for a truly seamless renovation experience â all enabled by our proprietary design and project management software.</p><div class="spacer-medium"></div></div></div></div></div></div></div></div></header><section class="section_layout1 animate-on-scroll"><div class="padding-global"><div class="container-large is-smaller"><div class="padding-section-large bottom-none"><div class="layout1_component"><div class="w-layout-grid layout1_content"><div class="layout1_content-left"><div class="text-style-tagline">How we work</div><div class="spacer-xsmall"></div><h2 class="point-heading-lg">Easy, Thorough Planning</h2><div class="spacer-small"></div><p class="paragraph-5">Through a guided step-by-step process, we learn about your dream space, personal style, and unique needs. Your dedicated design team will help you at every step of the process.</p></div><div class="layout1_image-13"><img width="Auto" sizes="100vw" alt="" src="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677d6c407dee7ccadbce7a09_image-1.avif" loading="lazy" srcset="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677d6c407dee7ccadbce7a09_image-1-p-500.avif 500w, https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677d6c407dee7ccadbce7a09_image-1.avif 1144w" class="image-5"/></div></div></div></div></div></div></section><section class="section_layout234 animate-on-scroll"><div class="padding-global"><div class="container-large"><div class="padding-section-large bottom-border"><div class="layout234_component"><div class="w-layout-grid layout234_list"><div id="w-node-c4d9abc8-188c-4510-e86c-c96c1640f500-3fa957de" class="layout234_item"><div class="layout234_item-icon-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677d757225ea7dc9df2d29cf_image%201.svg" alt="" class="icon-1x1-xsmall"/></div><div class="layout234_item-text-wrapper"><h3 class="point-heading">Planning Expertise</h3><div class="spacer-small"></div><p class="point-para">Our project planners are experts. They have a deep understanding of the building process and costs, and are up to speed on the latest remodel trends.</p></div></div><div id="w-node-c4d9abc8-188c-4510-e86c-c96c1640f509-3fa957de" class="layout234_item"><div class="layout234_item-icon-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677d757225ea7dc9df2d29c0_image%202.svg" alt="" class="icon-1x1-xsmall"/></div><div class="layout234_item-text-wrapper"><h3 class="point-heading">Defined Project Scope</h3><div class="spacer-small"></div><p class="point-para">Weâll start by providing insight into a handful of possible scenarios â with budget options â so you can choose the route thatâs best for you.</p></div></div><div id="w-node-c4d9abc8-188c-4510-e86c-c96c1640f512-3fa957de" class="layout234_item"><div class="layout234_item-icon-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677d757225ea7dc9df2d29c1_image%203.svg" alt="" class="icon-1x1-xsmall"/></div><div class="layout234_item-text-wrapper"><h3 class="point-heading">Realistic Timelines</h3><div class="spacer-small"></div><p class="point-para">Our planning process is transparent and pragmatic. Weâll set design and construction schedules that are achievable and realistic.</p></div></div></div></div></div></div></div></section><section class="section_layout1 animate-on-scroll"><div class="padding-global"><div class="container-large"><div class="padding-section-large bottom-none"><div class="layout1_component"><div class="w-layout-grid layout1_content"><div class="layout1_image-13"><img sizes="100vw" srcset="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677d6c407dee7ccadbce7a11_image-3-p-500.avif 500w, https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677d6c407dee7ccadbce7a11_image-3.avif 1196w" alt="" src="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677d6c407dee7ccadbce7a11_image-3.avif" loading="lazy" class="image-6"/></div><div class="layout1_content-left"><div class="spacer-xsmall"></div><h2 class="point-heading-lg">A Better Way to Build</h2><div class="spacer-small"></div><p class="text-size-medium">Our in-house construction team guarantees a high-quality custom home or renovation. Our highly skilled craftsmen work side-by-side with designers to plan every detail of your project. No more last-minute, mid-project fire drills.<br/></p></div></div></div></div></div></div></section><section class="section_layout234 animate-on-scroll"><div class="padding-global"><div class="container-large"><div class="padding-section-large bottom-border"><div class="layout234_component"><div class="w-layout-grid layout234_list"><div id="w-node-c4d9abc8-188c-4510-e86c-c96c1640f531-3fa957de" class="layout234_item"><div class="layout234_item-icon-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/678020cbeb1990ab11eed053_%EF%A0%AC.svg" alt="" class="icon-1x1-xsmall"/></div><div class="layout234_item-text-wrapper"><h3 class="point-heading">In-House Build Team</h3><div class="spacer-small"></div><p class="point-para">Our team is fully responsible for your project from start to finish and will be your one point of contact throughout your renovation.</p></div></div><div id="w-node-c4d9abc8-188c-4510-e86c-c96c1640f53a-3fa957de" class="layout234_item"><div class="layout234_item-icon-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/678020d8bf0e6c8e4c84511e_%EE%97%A3.svg" alt="" class="icon-1x1-xsmall"/></div><div class="layout234_item-text-wrapper"><h3 class="point-heading">Online Project Tracking</h3><div class="spacer-small"></div><p class="point-para">Use the Story's project dashboard to receive real-time updates on progress and budget. Review updates, invoices, and progress photos with our team.</p></div></div><div id="w-node-c4d9abc8-188c-4510-e86c-c96c1640f543-3fa957de" class="layout234_item"><div class="layout234_item-icon-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/678020e03d774bdc4b2d9c3c_%EF%9B%A3.svg" alt="" class="icon-1x1-xsmall"/></div><div class="layout234_item-text-wrapper"><h3 class="point-heading">High-Quality Construction</h3><div class="spacer-small"></div><p class="point-para">Weâre dedicated to our craft, following a step-by-step process to ensure each phase of your project is completed successfully.</p></div></div></div></div></div></div></div></section><section class="section_layout1 animate-on-scroll"><div class="padding-global"><div class="container-large is-smaller"><div class="padding-section-large bottom-none"><div class="layout1_component"><div class="w-layout-grid layout1_content"><div class="layout1_content-left"><h2 class="point-heading-lg">Integrated Interior Design</h2><div class="spacer-small"></div><p class="text-size-medium">Our architects and interior designers work side by side with you to define your goals and create a beautiful and functional space that lives up to your lifestyle while staying within your budget.</p></div><div class="layout1_image-13"><img sizes="100vw" srcset="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677d6c407dee7ccadbce7a19_image-2-p-500.avif 500w, https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677d6c407dee7ccadbce7a19_image-2.avif 1162w" alt="" src="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677d6c407dee7ccadbce7a19_image-2.avif" loading="lazy" class="image-35"/></div></div></div></div></div></div></section><section class="section_layout234 animate-on-scroll"><div class="padding-global"><div class="container-large"><div class="padding-section-large"><div class="layout234_component"><div class="w-layout-grid layout234_list"><div id="w-node-c4d9abc8-188c-4510-e86c-c96c1640f560-3fa957de" class="layout234_item"><div class="layout234_item-icon-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677f1961cc19e8b1e7dc98da_%EF%81%AB.svg" alt="" class="icon-1x1-xsmall"/></div><div class="layout234_item-text-wrapper"><h3 class="point-heading">Design Packages</h3><div class="spacer-small"></div><p class="point-para">Every project is unique, so we offer a range of architectural and design recommendations that fit the specifics of your project.</p><div class="global-styles w-embed"><style> 407 408/* Ensure all elements inherit the color from its parent */ 409body * { 410 color: inherit; 411} 412 413a, 414.w-input, 415.w-select, 416.w-tab-link, 417.w-nav-link, 418.w-slider-arrow-left, 419.w-slider-arrow-right, 420.w-dropdown-btn, 421.w-dropdown-toggle, 422.w-dropdown-link { 423 color: inherit; 424 text-decoration: inherit; 425 font-size: inherit; 426} 427
428/* Focus state style for keyboard navigation for the focusable elements */ 429*[tabindex]:focus-visible, 430 input[type="file"]:focus-visible { 431 outline: 0.125rem solid #4d65ff; 432 outline-offset: 0.125rem; 433} 434 435/* Get rid of top margin on first element in any rich text element */ 436.w-richtext > :not(div):first-child, .w-richtext > div:first-child > :first-child { 437 margin-top: 0 !important; 438} 439 440/* Get rid of bottom margin on last element in any rich text element */ 441.w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child { 442 margin-bottom: 0 !important; 443} 444 445/* Prevent all click and hover interaction with an element */ 446.pointer-events-off { 447 pointer-events: none; 448} 449 450/* Enables all click and hover interaction with an element */ 451.pointer-events-on { 452 pointer-events: auto; 453} 454 455/* Create a class of .div-square which maintains a 1:1 dimension of a div */ 456.div-square::after { 457 content: ""; 458 display: block; 459 padding-bottom: 100%; 460} 461 462/* Make sure containers never lose their center alignment */ 463.container-medium,.container-small, .container-large { 464 margin-right: auto !important; 465 margin-left: auto !important; 466} 467 468 469/* Apply "..." after 3 lines of text */ 470.text-style-3lines { 471 display: -webkit-box; 472 overflow: hidden; 473 -webkit-line-clamp: 3; 474 -webkit-box-orient: vertical; 475} 476 477/* Apply "..." after 2 lines of text */ 478.text-style-2lines { 479 display: -webkit-box; 480 overflow: hidden; 481 -webkit-line-clamp: 2; 482 -webkit-box-orient: vertical; 483} 484 485/* Adds inline flex display */ 486.display-inlineflex { 487 display: inline-flex; 488} 489 490/* These classes are never overwritten */ 491.hide { 492 display: none !important; 493} 494 495@media screen and (max-width: 991px) { 496 .hide, .hide-tablet { 497 display: none !important; 498 } 499} 500 @media screen and (max-width: 767px) { 501 .hide-mobile-landscape{ 502 display: none !important; 503 } 504} 505 @media screen and (max-width: 479px) { 506 .hide-mobile{ 507 display: none !important; 508 } 509} 510 511.margin-0 { 512 margin: 0rem !important; 513} 514 515.padding-0 { 516 padding: 0rem !important; 517} 518 519.spacing-clean { 520padding: 0rem !important; 521margin: 0rem !important; 522} 523 524.margin-top { 525 margin-right: 0rem !important; 526 margin-bottom: 0rem !important; 527 margin-left: 0rem !important; 528} 529 530.padding-top { 531 padding-right: 0rem !important; 532 padding-bottom: 0rem !important; 533 padding-left: 0rem !important; 534} 535 536.margin-right { 537 margin-top: 0rem !important; 538 margin-bottom: 0rem !important; 539 margin-left: 0rem !important; 540} 541 542.padding-right { 543 padding-top: 0rem !important; 544 padding-bottom: 0rem !important; 545 padding-left: 0rem !important; 546} 547 548.margin-bottom { 549 margin-top: 0rem !important; 550 margin-right: 0rem !important; 551 margin-left: 0rem !important; 552} 553 554.padding-bottom { 555 padding-top: 0rem !important; 556 padding-right: 0rem !important; 557 padding-left: 0rem !important; 558} 559 560.margin-left { 561 margin-top: 0rem !important; 562 margin-right: 0rem !important; 563 margin-bottom: 0rem !important; 564} 565 566.padding-left { 567 padding-top: 0rem !important; 568 padding-right: 0rem !important; 569 padding-bottom: 0rem !important; 570} 571 572.margin-horizontal { 573 margin-top: 0rem !important; 574 margin-bottom: 0rem !important; 575} 576 577.padding-horizontal { 578 padding-top: 0rem !important; 579 padding-bottom: 0rem !important; 580} 581 582.margin-vertical { 583 margin-right: 0rem !important; 584 margin-left: 0rem !important; 585} 586 587.padding-vertical { 588 padding-right: 0rem !important; 589 padding-left: 0rem !important; 590} 591 592/* Apply "..." at 100% width */ 593.truncate-width { 594 width: 100%; 595 white-space: nowrap; 596 overflow: hidden; 597 text-overflow: ellipsis; 598} 599/* Removes native scrollbar */ 600.no-scrollbar { 601 -ms-overflow-style: none; 602 overflow: -moz-scrollbars-none; 603} 604 605.no-scrollbar::-webkit-scrollbar {
606 display: none; 607} 608 609</style> 610 611<!-- Fluid Responsive --> 612<style> 613html { font-size: 16px;} 614@media (min-width: 240px) { 615 html {font-size: calc(8px + 8 * ((100vw - 240px) / 239));} 616} 617@media (min-width: 768px) { 618 html {font-size: calc(12px + 4 * ((100vw - 768px) / 223));} 619} 620@media (min-width: 992px) { 621 html {font-size: calc(11.71px + 4.29 * ((100vw - 992px) / 448));} 622} 623@media (min-width: 1440px) { 624 html {font-size: 16px;} 625} 626 627.container-large { 628 max-width: 120rem; 629} 630 631.animate-h1 { 632 text-wrap: balance; 633 white-space: normal; 634 opacity: 0; 635} 636 637.animate-h1 .word { 638 display: inline; 639 white-space: normal; 640} 641</style></div></div></div><div id="w-node-c4d9abc8-188c-4510-e86c-c96c1640f569-3fa957de" class="layout234_item"><div class="layout234_item-icon-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677f19743c974f0aaa58e31c_%EF%97%83.svg" alt="" class="icon-1x1-xsmall"/></div><div class="layout234_item-text-wrapper"><h3 class="point-heading">Material Showroom</h3><div class="spacer-small"></div><p class="point-para">We partner with top brands to create a highly curated selection of finishing products, cabinetry, flooring, tile, and hardware  at a range of aesthetics and price points.</p></div></div><div id="w-node-c4d9abc8-188c-4510-e86c-c96c1640f572-3fa957de" class="layout234_item"><div class="layout234_item-icon-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/677f19801dc07c579f5d0e62_%EF%96%AE.svg" alt="" class="icon-1x1-xsmall"/></div><div class="layout234_item-text-wrapper"><h3 class="point-heading">Experienced Designers</h3><div class="spacer-small"></div><p class="point-para">Our in-house designers have extensive experience. Youâre dedicated designer is chosen to best match your aesthetic goals. They will partner with you from start to finish.</p></div></div></div></div></div></div></div></section><section class="section_faq3 animate-on-scroll"><div class="padding-global"><div class="container-large"><div class="padding-section-large"><div class="faq3_component"><div class="w-layout-grid faq3_content"><div class="faq3_content-left"><h2 class="heading-style-h2">FAQs</h2><div class="spacer-small"></div><p class="text-size-medium">Have any further questions? Reach out and our team will be happy to answer them.</p><div class="spacer-medium"></div><div class="button-group"><a href="/contact-us" class="button w-button">Contact Us</a></div></div><div class="faq3_list"><div class="w-dyn-list"><div role="list" class="w-dyn-items"><div role="listitem" class="w-dyn-item"><div class="faq3_accordion"><div data-w-id="948d4047-3b6a-a57e-ead8-ea954529168d" class="faq3_question"><div class="text-size-medium text-weight-bold">How long will construction take?</div><div class="faq3_icon-wrapper"><div class="icon-embed-small w-embed"><svg width="100%" height="100%" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 642<path fill-rule="evenodd" clip-rule="evenodd" d="M16.5303 20.8839C16.2374 21.1768 15.7626 21.1768 15.4697 20.8839L7.82318 13.2374C7.53029 12.9445 7.53029 12.4697 7.82318 12.1768L8.17674 11.8232C8.46963 11.5303 8.9445 11.5303 9.2374 11.8232L16 18.5858L22.7626 11.8232C23.0555 11.5303 23.5303 11.5303 23.8232 11.8232L24.1768 12.1768C24.4697 12.4697 24.4697 12.9445 24.1768 13.2374L16.5303 20.8839Z" fill="currentColor"/> 643</svg></div></div></div><div style="width:100%;height:0px" class="faq3_answer"><div class="rich-text-block w-richtext"><p>Construction timelines will depend on your specific project scope, and can take anywhere from a month to a full year to complete. Our team will create a realistic schedule before we get started, so you can plan ahead for the construction phase of your project.</p></div><div class="spacer-small"></div></div></div></div><div role="listitem" class="w-dyn-item"><div class="faq3_accordion"><div data-w-id="948d4047-3b6a-a57e-ead8-ea954529168d" class="faq3_question"><div class="text-size-medium text-weight-bold">Who can I call with project specific questions?</div><div class="faq3_icon-wrapper"><div class="icon-embed-small w-embed">
643<svg width="100%" height="100%" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 644<path fill-rule="evenodd" clip-rule="evenodd" d="M16.5303 20.8839C16.2374 21.1768 15.7626 21.1768 15.4697 20.8839L7.82318 13.2374C7.53029 12.9445 7.53029 12.4697 7.82318 12.1768L8.17674 11.8232C8.46963 11.5303 8.9445 11.5303 9.2374 11.8232L16 18.5858L22.7626 11.8232C23.0555 11.5303 23.5303 11.5303 23.8232 11.8232L24.1768 12.1768C24.4697 12.4697 24.4697 12.9445 24.1768 13.2374L16.5303 20.8839Z" fill="currentColor"/> 645</svg></div></div></div><div style="width:100%;height:0px" class="faq3_answer"><div class="rich-text-block w-richtext"><p>You will work closely with our designers and site managers throughout your renovation and custom home. Â We pride ourselves on open quick communication.</p></div><div class="spacer-small"></div></div></div></div><div role="listitem" class="w-dyn-item"><div class="faq3_accordion"><div data-w-id="948d4047-3b6a-a57e-ead8-ea954529168d" class="faq3_question"><div class="text-size-medium text-weight-bold">How does permitting work?</div><div class="faq3_icon-wrapper"><div class="icon-embed-small w-embed"><svg width="100%" height="100%" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 646<path fill-rule="evenodd" clip-rule="evenodd" d="M16.5303 20.8839C16.2374 21.1768 15.7626 21.1768 15.4697 20.8839L7.82318 13.2374C7.53029 12.9445 7.53029 12.4697 7.82318 12.1768L8.17674 11.8232C8.46963 11.5303 8.9445 11.5303 9.2374 11.8232L16 18.5858L22.7626 11.8232C23.0555 11.5303 23.5303 11.5303 23.8232 11.8232L24.1768 12.1768C24.4697 12.4697 24.4697 12.9445 24.1768 13.2374L16.5303 20.8839Z" fill="currentColor"/> 647</svg></div></div></div><div style="width:100%;height:0px" class="faq3_answer"><div class="rich-text-block w-richtext"><p>Our team will obtain any permits required to complete your project. No extra work needed on your part!</p></div><div class="spacer-small"></div></div></div></div><div role="listitem" class="w-dyn-item"><div class="faq3_accordion"><div data-w-id="948d4047-3b6a-a57e-ead8-ea954529168d" class="faq3_question"><div class="text-size-medium text-weight-bold">Does Story do custom homes and renovations?</div><div class="faq3_icon-wrapper"><div class="icon-embed-small w-embed"><svg width="100%" height="100%" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 648<path fill-rule="evenodd" clip-rule="evenodd" d="M16.5303 20.8839C16.2374 21.1768 15.7626 21.1768 15.4697 20.8839L7.82318 13.2374C7.53029 12.9445 7.53029 12.4697 7.82318 12.1768L8.17674 11.8232C8.46963 11.5303 8.9445 11.5303 9.2374 11.8232L16 18.5858L22.7626 11.8232C23.0555 11.5303 23.5303 11.5303 23.8232 11.8232L24.1768 12.1768C24.4697 12.4697 24.4697 12.9445 24.1768 13.2374L16.5303 20.8839Z" fill="currentColor"/> 649</svg></div></div></div><div style="width:100%;height:0px" class="faq3_answer"><div class="rich-text-block w-richtext"><p>Yes, we do â and weâre really good at it! Letâs get the <a href="/contact-us">conversation started here.</a></p></div><div class="spacer-small"></div></div></div></div></div></div></div></div></div></div></div></div></section><section class="section_home-blogs animate-on-scroll"><div class="padding-global"><div class="container-large"><div class="padding-section-large"><div class="blog58_component"><div class="blog58_heading-wrapper"><div class="blog58_heading"><div class="max-width-large"><div class="text-style-tagline">Blog</div><div class="spacer-xsmall"></div><h2 class="heading-22">The latest design insights</h2></div></div><div class="button-group is-right hide-mobile-landscape"><a href="/blog" class="button w-button">View all</a></div></div><div class="spacer-large"></div><div class="blog58_list-wrapper"><div class="w-dyn-list"><div role="list" class="collection-list-6 w-dyn-items"><div role="listitem" class="w-dyn-item"><div class="blog58_item"><a href="/post/how-to-find-your-real-style-not-the-one-pinterest-picked-for-you" class="blog58_item-link scale w-inline-block"><div class="blog58_image-wrapper"><img width="Auto" loading="lazy" alt="" src="https://cdn.prod.website-files.com/655161dc9af0d6e6f9bec5b5/6a46d68cdbb6d3ada80ea35f_IL.Net0-1000939-min.webp" class="image-38"/></div><div class="spacer-small"></div><h3 class="blog-heading">How to Find Your Real Style (Not the One Pinterest Picked for You)</h3><div class="spacer-small"></div><div class="spacer-small"></div><div class="button-group absolute"><div class="button is-link is-icon"><div class="text-block-16">Read more</div><img src="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/6842230e035144c5c3901c64_blue-arrow.svg" loading="lazy" alt="Blue arrow" class="image-49"/></div></div></a></div></div><div role="listitem" class="w-dyn-item"><div class="blog58_item"><a href="/post/renovate-or-move" class="blog58_item-link scale w-inline-block"><div class="blog58_image-wrapper"><img width="Auto" loading="lazy" alt="" src="https://cdn.prod.website-files.com/655161dc9af0d6e6f9bec5b5/69f51eb678a89547c07c1240_SSP_9392_result.webp" class="image-38"/></div><div class="spacer-small"></div><h3 class="blog-heading">Your House Doesn't Work Anymore. So Do You Renovate, or Move? </h3><div class="spacer-small"></div><div class="spacer-small"></div><div class="button-group absolute"><div class="button is-link is-icon"><div class="text-block-16">Read more</div><img src="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/6842230e035144c5c3901c64_blue-arrow.svg" loading="lazy" alt="Blue arrow" class="image-49"/></div></div></a></div></div></div></div></div><div class="show-mobile-landscape"><div class="spacer-xxlarge"></div><div class="button-group is-right"><a href="#" class="button is-secondary w-button">View all</a></div></div></div></div></div></div></section></main><section class="footer-light"><div class="container-7"><div class="footer-wrapper-two"><a href="#" class="footer-brand w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/683dd57d177d94c034aaad73_Story_logo_black%201.svg" alt="" class="footer2_logo"/><div class="text-block-33">An integrated design build studio<br/>serving greater Denver, Phoenix and Dallas. </div></a><div class="footer-block-two"><div class="text-weight-semibold">Info</div><div class="div-block-69"><div class="footer2_link-list is-grid"><a href="/process" aria-current="page" class="footer2_link w--current">How it Works</a><link rel="prefetch" href="/process"/><a href="/services" class="footer2_link">Services</a><link rel="prefetch" href="/services"/><a href="/our-projects" class="footer2_link">Projects</a><link rel="prefetch" href="/our-projects"/></div><div class="footer2_link-list is-grid"><a href="/team" class="footer2_link">About Us</a><link rel="prefetch" href="/team"/><a href="/blog" class="footer2_link">Blog</a><link rel="prefetch" href="/blog"/><a href="/contact-us" class="footer2_link">Contact</a><link rel="prefetch" href="/contact-us"/></div></div></div><div class="footer-block-two"><div class="text-weight-semibold">Questions</div><a href="tel:833-671-9713" class="link-3">Call us at 833-671-9713<br/>Email us at [email protected]</a><div class="text-size-small">2650 W. Belleview Ave, Suite 300<br/>Littleton, CO 80123</div></div><div class="footer-block-two"><div class="text-weight-semibold">Follow Us</div><div class="footer2_link-list is-flex"><div class="w-layout-grid social-icons1_list"><a aria-label="instagram" href="https://www.instagram.com/storyrenovations/" target="_blank" class="social-icons1_link
649w-inline-block"><div class="icon-embed-xsmall w-embed"><svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 650<path fill-rule="evenodd" clip-rule="evenodd" d="M16 3H8C5.23858 3 3 5.23858 3 8V16C3 18.7614 5.23858 21 8 21H16C18.7614 21 21 18.7614 21 16V8C21 5.23858 18.7614 3 16 3ZM19.25 16C19.2445 17.7926 17.7926 19.2445 16 19.25H8C6.20735 19.2445 4.75549 17.7926 4.75 16V8C4.75549 6.20735 6.20735 4.75549 8 4.75H16C17.7926 4.75549 19.2445 6.20735 19.25 8V16ZM16.75 8.25C17.3023 8.25 17.75 7.80228 17.75 7.25C17.75 6.69772 17.3023 6.25 16.75 6.25C16.1977 6.25 15.75 6.69772 15.75 7.25C15.75 7.80228 16.1977 8.25 16.75 8.25ZM12 7.5C9.51472 7.5 7.5 9.51472 7.5 12C7.5 14.4853 9.51472 16.5 12 16.5C14.4853 16.5 16.5 14.4853 16.5 12C16.5027 10.8057 16.0294 9.65957 15.1849 8.81508C14.3404 7.97059 13.1943 7.49734 12 7.5ZM9.25 12C9.25 13.5188 10.4812 14.75 12 14.75C13.5188 14.75 14.75 13.5188 14.75 12C14.75 10.4812 13.5188 9.25 12 9.25C10.4812 9.25 9.25 10.4812 9.25 12Z" fill="CurrentColor"/> 651</svg></div></a><a aria-label="facebook" href="https://www.facebook.com/storyrenovations/" target="_blank" class="social-icons1_link w-inline-block"><div class="icon-embed-xsmall w-embed"><svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 652<path d="M22 12.0611C22 6.50451 17.5229 2 12 2C6.47715 2 2 6.50451 2 12.0611C2 17.0828 5.65684 21.2452 10.4375 22V14.9694H7.89844V12.0611H10.4375V9.84452C10.4375 7.32296 11.9305 5.93012 14.2146 5.93012C15.3088 5.93012 16.4531 6.12663 16.4531 6.12663V8.60261H15.1922C13.95 8.60261 13.5625 9.37822 13.5625 10.1739V12.0611H16.3359L15.8926 14.9694H13.5625V22C18.3432 21.2452 22 17.083 22 12.0611Z" fill="CurrentColor"/> 653</svg></div></a><a aria-label="houzz" href="https://www.houzz.com/professionals/design-build-firms/story-renovations-pfvwus-pf~1103201291?" target="_blank" class="social-icons1_link w-inline-block"><div class="icon-embed-xsmall-copy w-embed"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--simple-icons" width="100%" height="100%" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" d="M1.27 0v24h8.05v-7.56h5.36V24h8.05V10.37L6.61 5.75V0z"></path></svg></div></a><a aria-label="pinterest" href="https://www.pinterest.com/StoryRenovations/" target="_blank" class="social-icons1_link w-inline-block"><div class="icon-embed-xsmall w-embed"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--carbon" width="100%" height="100%" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path fill="currentColor" d="M16 2a14 14 0 0 0-5.1 27a13.2 13.2 0 0 1 0-4l1.65-7a5.05 5.05 0 0 1-.38-2c0-1.94 1.13-3.4 2.53-3.4a1.76 1.76 0 0 1 1.77 2c0 1.2-.76 3-1.16 4.66a2 2 0 0 0 2.08 2.53c2.48 0 4.4-2.63 4.4-6.41a5.53 5.53 0 0 0-5.85-5.7a6.06 6.06 0 0 0-6.32 6.08a5.42 5.42 0 0 0 1 3.19a.44.44 0 0 1 .1.4c-.11.44-.35 1.4-.39 1.59s-.21.31-.47.19c-1.75-.82-2.84-3.37-2.84-5.43c0-4.41 3.21-8.47 9.25-8.47c4.85 0 8.63 3.46 8.63 8.09c0 4.82-3 8.7-7.27 8.7a3.76 3.76 0 0 1-3.21-1.6l-.87 3.33a15.6 15.6 0 0 1-1.74 3.67A14.2 14.2 0 0 0 16 30a14 14 0 0 0 0-28"></path></svg></div></a><a aria-label="linkedin" href="https://www.linkedin.com/company/story-renovations/" target="_blank" class="social-icons1_link w-inline-block"><div class="icon-embed-xsmall w-embed"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--carbon" width="100%" height="100%" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path fill="currentColor" d="M26.2 4H5.8C4.8 4 4 4.8 4 5.7v20.5c0 .9.8 1.7 1.8 1.7h20.4c1 0 1.8-.8 1.8-1.7V5.7c0-.9-.8-1.7-1.8-1.7M11.1 24.4H7.6V13h3.5zm-1.7-13c-1.1 0-2.1-.9-2.1-2.1s.9-2.1 2.1-2.1c1.1 0 2.1.9 2.1 2.1s-1 2.1-2.1 2.1m15.1 12.9H21v-5.6c0-1.3 0-3.1-1.9-3.1S17 17.1 17 18.5v5.7h-3.5V13h3.3v1.5h.1c.5-.9 1.7-1.9 3.4-1.9c3.6 0 4.3 2.4 4.3 5.5v6.2z"></path></svg></div></a></div></div></div><div class="footer2_right-wrapper"><div class="text-weight-semibold">Get our Newsletter</div><div class="spacer-xsmall"></div><div class="footer2_form-block w-form"><form id="email-form" name="email-form" data-name="Email Form" method="get" class="footer2_form" data-wf-page-id="6551928ab449be393fa957de" data-wf-element-id="a7c87823-d3b0-d4ea-6596-8f03ed9c037d"><input class="form_input white w-input" maxlength="256" name="email-2" data-name="Email 2" placeholder="Email Address" type="email" id="email-2" required=""/><input type="submit" data-wait="" aria-label="Subscribe to our Newsletter" class="button is-secondary is-small cc-arrow w-button" value=""/></form><div class="text-size-small is-sm">By subscribing you agree to our<a href="/privacy-policy"> Privacy Policy</a></div><div class="form_message-success-wrapper w-form-done"><div class="form_message-success"><div>Thank you! Your submission has been received!</div></div></div><div class="form_message-error-wrapper w-form-fail"><div class="form_message-error"><div>Oops! Something went wrong while submitting the form.</div></div></div></div></div></div><div class="footer-divider-two"></div><div class="footer-bottom"><div class="w-layout-grid footer2_legal-list"><div class="text-size-small">© <span class="footer-year">2025</span> Story. All rights reserved.</div><a href="/privacy-policy" class="footer2_legal-link">Privacy Policy</a><link rel="prefetch" href="/privacy-policy"/><div class="w-embed w-script"><!-- Change Footer Year -->
654<script> 655// when the DOM is ready 656document.addEventListener("DOMContentLoaded", function() { 657 // get the the span element 658 const yrSpan = document.querySelector('.footer-year'); 659 // get the current year 660 const currentYr = new Date().getFullYear(); 661 // set the year span element's text to the current year 662 yrSpan.textContent = currentYr; 663}); 664</script>
664</div></div></div></div></section></div>
664<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=65511c14a69010c6ced966df" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
664<script src="https://cdn.prod.website-files.com/65511c14a69010c6ced966df/js/webflow.f79619a3.d9a477e64c96f785.js" type="text/javascript" integrity="sha384-ZiZTbdhl2C87Inhb+JUJvLGlf+gqsrosRlqswupMPp/DG700v3QFWCrUN894PBAL" crossorigin="anonymous"></script>
664<!-- Performance Core -->
665<script> 666// Mobile performance optimization toolkit 667(function () { 668 let startTime = performance.now(); 669 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 670 671 function loadScripts() { 672 const scriptsToLoad = [ 673 { src: "https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js", priority: "high" }, 674 { src: "https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/ScrollTrigger.min.js", priority: "high" }, 675 { src: "https://cdn.jsdelivr.net/gh/timothydesign/script/split-type.js", priority: "high" }, 676 { src: "https://cdn.jsdelivr.net/npm/@finsweet/attributes-scrolldisable@1/scrolldisable.js", priority: "low", attributes: { defer: true } }, 677 { src: "https://cdn.jsdelivr.net/npm/visualdx@1/dist/vdx.min.js", priority: "low" } 678 ]; 679 680 const priorityOrder = { "high": 0, "medium": 1, "low": 2 }; 681 scriptsToLoad.sort((a, b) => priorityOrder[a.priority] - priorityOrder[b.priority]); 682 683 let highPriorityLoaded = Promise.resolve(); 684 685 scriptsToLoad.forEach(script => { 686 const loadScript = () => { 687 return new Promise((resolve) => { 688 const scriptEl = document.createElement('script'); 689 scriptEl.src = script.src; 690 if (script.attributes) { 691 Object.entries(script.attributes).forEach(([key, value]) => { 692 scriptEl.setAttribute(key, value); 693 }); 694 } 695 scriptEl.onload = () => resolve(); 696 document.body.appendChild(scriptEl); 697 }); 698 }; 699 700 if (script.priority === "high") { 701 highPriorityLoaded = highPriorityLoaded.then(loadScript); 702 } else { 703 loadScript(); 704 } 705 }); 706 707 return highPriorityLoaded; 708 } 709 710 document.addEventListener('DOMContentLoaded', function () { 711 loadScripts().then(() => { 712 initAnimations(); 713 }); 714 715 optimizeImages(); 716 initFormValidations(); 717 718 console.log(`Page fully initialized in ${(performance.now() - startTime).toFixed(0)}ms`); 719 }); 720 721 function initAnimations() { 722 if (typeof gsap === 'undefined') return; 723 if (typeof ScrollTrigger === 'undefined') { 724 setTimeout(initAnimations, 100); 725 return; 726 } 727 728 gsap.registerPlugin(ScrollTrigger); 729 initNavHover(); 730 initH1Animations(); 731 initFadeUpAnimations(); 732 initScaleOnHover(); 733 } 734 735 function initNavHover() { 736 const navLinks = document.querySelectorAll('[class*="nav-link"]'); 737 const mediaQuery = window.matchMedia('(min-width: 992px)'); 738 let isDesktop = mediaQuery.matches; 739 740 navLinks.forEach((link, index) => { 741 const img = document.querySelector(`.img-${index + 1}`); 742 if (!img) return; 743 744 const textElement = link.querySelector('.cta37_link-text'); 745 if (!textElement) return; 746 747 gsap.set(img, { 748 display: 'none', 749 opacity: 0, 750 y: 20, 751 scale: 0.95 752 }); 753 754 gsap.set(textElement, { 755 fontFamily: '"Instrument Sans", sans-serif', 756 fontWeight: 400 757 }); 758 759 const tl = gsap.timeline({ paused: true }); 760 tl.set(img, { display: isDesktop ? 'block' : 'none' }) 761 .to(textElement, { 762 fontFamily: '"Instrument Serif", serif', 763 fontWeight: 400 764 }) 765 .to(img, { 766 opacity: 1, 767 y: 0, 768 scale: 1 769 }, '<'); 770 771 const tlReverse = gsap.timeline({ paused: true }); 772 tlReverse.to(img, { 773 opacity: 0, 774 y: 10, 775 scale: 0.98, 776 onComplete: () => gsap.set(img, { display: 'none' }) 777 }).to(textElement, { 778 fontFamily: '"Instrument Sans", sans-serif', 779 fontWeight: 400 780 }, '<'); 781 782 link.addEventListener('mouseenter', () => isDesktop && tl.restart()); 783 link.addEventListener('mouseleave', () => isDesktop && tlReverse.restart()); 784 }); 785 } 786 787 function initH1Animations() { 788 if (typeof SplitType === 'undefined' || typeof gsap === 'undefined') return; 789 790 function runAnimation() { 791 const headers = document.querySelectorAll('.animate-h1'); 792 793 headers.forEach(el => { 794 el.setAttribute("data-text-split", ""); 795 el.style.opacity = "0"; 796 }); 797 798 new SplitType('.animate-h1', { 799 types: 'words', 800 tagName: 'span', 801 preserveWhitespace: true 802 }); 803 804 gsap.utils.toArray('.animate-h1').forEach(el => { 805 const timeline = gsap.timeline(); 806 timeline 807 .to(el, { 808 opacity: 1, 809 duration: 0.2, 810 ease: 'power1.out' 811 }) 812 .from(el.querySelectorAll('.word'), { 813 opacity: 0, 814 yPercent: 20, 815 duration: 0.5, 816 ease: 'power2.out', 817 stagger: { amount: 0.6 } 818 }, '<+0.1'); 819 }); 820 821 ScrollTrigger?.refresh(); 822 } 823 824 Promise.all([ 825 document.fonts.ready, 826 new Promise(resolve => requestAnimationFrame(() => setTimeout(resolve, 100))) 827 ]).then(runAnimation); 828 829 window.addEventListener('load', () => { 830 setTimeout(() => { 831 if (window.ScrollTrigger) ScrollTrigger.refresh(); 832 }, 1500); 833 }); 834 } 835 836 function initFadeUpAnimations() { 837 const elements = document.querySelectorAll(".animate-on-scroll");
838 elements.forEach(el => { 839 gsap.set(el, { opacity: 0, y: 30 }); 840 gsap.to(el, { 841 scrollTrigger: { 842 trigger: el, 843 start: "top 85%", 844 end: "top 50%", 845 toggleActions: "play none none none" 846 }, 847 opacity: 1, 848 y: 0, 849 duration: isMobile ? 0.8 : 1.2, 850 ease: "power2.out" 851 }); 852 }); 853 } 854 855 function initScaleOnHover() { 856 const elements = document.querySelectorAll('.scale'); 857 elements.forEach(el => { 858 el.addEventListener('mouseenter', () => { 859 gsap.to(el, { scale: 1.02, duration: 0.3, ease: "power2.out" }); 860 }); 861 el.addEventListener('mouseleave', () => { 862 gsap.to(el, { scale: 1, duration: 0.3, ease: "power2.out" }); 863 }); 864 }); 865 } 866 867 function optimizeImages() { 868 const images = document.querySelectorAll('img:not([data-pin-processed])'); 869 images.forEach(img => { 870 // Mark as processed to avoid re-checking 871 img.setAttribute('data-pin-processed', 'true'); 872 873 // Existing lazy loading logic 874 if (!img.hasAttribute('loading') && !img.hasAttribute('fetchpriority')) { 875 const rect = img.getBoundingClientRect(); 876 if (rect.top > window.innerHeight) { 877 img.setAttribute('loading', 'lazy'); 878 img.setAttribute('fetchpriority', 'low'); 879 } 880 } 881 882 // Exclude UI/navigation/hero/lightbox thumbnail images from Pinterest 883 if (img.closest('.navigation') || 884 img.closest('.footer') || 885 img.classList.contains('logo') || 886 img.closest('[class*="nav"]') || 887 img.closest('[class*="icon"]') || 888 img.closest('.portfolio4-header_image-wrapper') || 889 img.classList.contains('portfolio4-header_image') || 890 img.closest('.lightbox-link') || 891 img.closest('.w-lightbox-thumbnail') || 892 img.closest('[class*="lightbox"]') || 893 img.closest('[class*="thumbnail"]')) { 894 img.setAttribute('data-pin-nopin', 'true'); 895 } 896 }); 897} 898 899// Initial run 900document.addEventListener('DOMContentLoaded', optimizeImages); 901 902// Targeted fix: Only watch for Webflow lightbox opening 903document.addEventListener('click', (e) => { 904 if (e.target.closest('.lightbox-link, .w-lightbox-control')) { 905 // Small delay for lightbox to render 906 setTimeout(optimizeImages, 100); 907 } 908}); 909 function initFormValidations() { 910 // Your form validation logic 911 } 912})(); 913</script>
913 914 915<!-- Homepage Project Link Handling -->
916<script> 917// Homepage Script - Add to the page with project type links 918document.addEventListener('DOMContentLoaded', function() { 919 // Find all project type link blocks 920 const projectLinks = document.querySelectorAll('.project-type.scale'); 921 922 // Add click handlers to each project link 923 projectLinks.forEach(link => { 924 link.addEventListener('click', function(e) { 925 e.preventDefault(); 926 927 // Get the project type from the data attribute 928 const projectType = this.getAttribute('data-project'); 929 930 // Store the selection in localStorage 931 localStorage.setItem('selectedProject', projectType); 932 933 // Navigate to the form page 934 window.location.href = '/start-my-project'; 935 }); 936 }); 937}); 938</script>
938 939 940<!-- Nav dropshadow -->
941<script> 942// Robust Navbar Drop Shadow Script (No GSAP Required) 943// Add this script to your Webflow site's custom code section 944 945(function() { 946 'use strict'; 947 948 console.log('Shadow script starting...'); 949 950 function initShadowEffect() { 951 // Try multiple ways to find the navbar 952 let navbar = document.querySelector('.navigation.filled') || 953 document.querySelector('.navigation') || 954 document.querySelector('[data-w-id="82ec9e33-a395-4490-b23b-e3a18efe29c9"]') || 955 document.querySelector('.w-nav'); 956 957 if (!navbar) { 958 console.error('Could not find navbar. Available nav elements:', 959 Array.from(document.querySelectorAll('[class*="nav"]')).map(el => el.className) 960 ); 961 return; 962 } 963 964 console.log('Found navbar:', navbar.className); 965 966 // Add CSS transition and initial styles with smoother easing 967 navbar.style.transition = 'box-shadow 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)'; 968 navbar.style.boxShadow = 'none'; 969 970 // Force higher specificity by using !important in a style tag 971 const styleTag = document.createElement('style'); 972 styleTag.innerHTML = ` 973 .navigation.shadow-active { 974 box-shadow: 0 2px 20px rgba(0, 0, 0, 0.1) !important; 975 } 976 .navigation { 977 transition: box-shadow 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important; 978 } 979 `; 980 document.head.appendChild(styleTag); 981 982 console.log('Styles applied'); 983 984 let isScrolled = false; 985 let ticking = false; 986 987 function updateShadow() { 988 const scrollY = window.pageYOffset || document.documentElement.scrollTop; 989 990 if (scrollY > 10 && !isScrolled) { 991 isScrolled = true; 992 navbar.classList.add('shadow-active'); 993 console.log('Shadow added at scroll:', scrollY); 994 995 // Fallback direct style application 996 navbar.style.boxShadow = '0 2px 20px rgba(0, 0, 0, 0.1)'; 997 998 } else if (scrollY <= 10 && isScrolled) { 999 isScrolled = false; 1000 navbar.classList.remove('shadow-active'); 1001 console.log('Shadow removed at scroll:', scrollY); 1002 1003 // Fallback direct style application 1004 navbar.style.boxShadow = 'none'; 1005 } 1006 1007 ticking = false; 1008 } 1009 1010 function onScroll() { 1011 if (!ticking) { 1012 requestAnimationFrame(updateShadow); 1013 ticking = true; 1014 } 1015 } 1016 1017 // Attach scroll listener 1018 window.addEventListener('scroll', onScroll, { passive: true }); 1019 1020 // Initial check 1021 updateShadow(); 1022 1023 console.log('Shadow effect initialized successfully'); 1024 } 1025 1026 // Wait for DOM to be ready 1027 if (document.readyState === 'loading') { 1028 document.addEventListener('DOMContentLoaded', initShadowEffect); 1029 } else { 1030 initShadowEffect(); 1031 } 1032 1033 // Also try after a short delay in case of timing issues 1034 setTimeout(initShadowEffect, 100); 1035 1036})(); 1037</script>
1037 1038 1039<!-- Save UTMs to Local Storage (FIXED VERSION) -->
1040<script> 1041(function () { 1042 const utmKeys = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content']; 1043 const params = new URLSearchParams(window.location.search); 1044 1045 // Store UTM parameters directly in localStorage (no sessionStorage needed) 1046 utmKeys.forEach(key => { 1047 const value = params.get(key); 1048 if (value) { 1049 localStorage.setItem(key, value); 1050 console.log(`UTM ${key} saved to localStorage:`, value); 1051 } 1052 }); 1053 1054 // Populate form fields after they're loaded 1055 function fillFormUTMs() { 1056 let filledCount = 0; 1057 utmKeys.forEach(key => { 1058 const input = document.querySelector(`input[name="${key}"]`); 1059 const value = localStorage.getItem(key); 1060 if (input && value) { 1061 input.value = value; 1062 filledCount++; 1063 console.log(`Filled form field ${key} with:`, value); 1064 } 1065 }); 1066 console.log(`Filled ${filledCount} UTM form fields`); 1067 return filledCount > 0; // Return true if any fields were filled 1068 } 1069 1070 // Try immediately on DOM ready, then retry every 200ms until successful or max retries 1071 document.addEventListener('DOMContentLoaded', function () { 1072 console.log('UTM script: DOM loaded, attempting to fill form fields'); 1073 let attempts = 0; 1074 const maxAttempts = 20; 1075 1076 const interval = setInterval(() => { 1077 const anyFilled = fillFormUTMs(); 1078 attempts++; 1079 1080 if (anyFilled || attempts >= maxAttempts) { 1081 clearInterval(interval); 1082 if (anyFilled) { 1083 console.log('UTM script: Successfully filled form fields'); 1084 } else { 1085 console.log('UTM script: No UTM form fields found after', attempts, 'attempts'); 1086 } 1087 } 1088 }, 200); 1089 }); 1090})(); 1091</script>
1091 1092 1093<!-- INSTAGRAM EMBED SCRIPT --><!-- 1094=========================== 1095TABLE OF CONTENTS (BODY) 1096=========================== 10971. GSAP Scroll - Here Image Scale to 100%. 1098--> 1099 1100<!-- Google Pagespeed Fixes -->
1101<script> 1102document.addEventListener('DOMContentLoaded', function() { 1103 // Get all images that need optimization 1104 const images = document.querySelectorAll('img'); 1105 1106 images.forEach(img => { 1107 const originalSrc = img.src; 1108 1109 // Skip if src is not a Webflow CDN URL 1110 if (!originalSrc.includes('website-files.com')) { 1111 return; 1112 } 1113 1114 // Set dimensions to prevent layout shift 1115 if (!img.hasAttribute('width') || !img.hasAttribute('height')) { 1116 // Get the natural dimensions of the image 1117 const tempImg = new Image(); 1118 tempImg.src = originalSrc; 1119 1120 tempImg.onload = function() { 1121 const aspectRatio = this.naturalWidth / this.naturalHeight; 1122 img.setAttribute('width', this.naturalWidth); 1123 img.setAttribute('height', this.naturalHeight); 1124 img.style.aspectRatio = aspectRatio; 1125 }; 1126 } 1127 1128 // Add loading="lazy" for below-fold images 1129 if (!img.hasAttribute('loading')) { 1130 img.setAttribute('loading', 'lazy'); 1131 } 1132 }); 1133}); 1134</script>
1134 1135 1136 1137<!-- 1. GSAP Scroll - Here Image Scale to 100%. --> 1138
1139<script> 1140gsap.set(".img-wrapper-full", { 1141 scale: 0.65, // Changed initial scale to 65% 1142 transformOrigin: "center center" 1143}); 1144 1145gsap.to(".img-wrapper-full", { 1146 scrollTrigger: { 1147 trigger: ".img-wrapper-full", 1148 start: "top bottom", 1149 end: "80% 100%", 1150 scrub: 1, 1151 markers: false, 1152 onUpdate: (self) => { 1153 const progress = self.progress; 1154 const scale = 0.65 + (progress * 0.35); // Adjusted scale range from 0.65 to 1 1155 gsap.set(".img-wrapper-full", { 1156 scale: scale, 1157 force3D: true 1158 }); 1159 } 1160 }, 1161 scale: 1, 1162 ease: "none" 1163}); 1164</script>
1164<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"689cb5f2042a429d90d8222df848b51f","r":1,"spa":2}' crossorigin="anonymous"></script>
1164 1165</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.