:root{--navy:#092e4b;--orange:#ee641f;--cream:#f8f2e4;--muted:#526370;--line:#d5cebd}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--cream);color:var(--navy);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}a:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:5px}.skip{position:fixed;top:-80px;left:15px;background:var(--navy);color:white;padding:15px;z-index:9}.skip:focus{top:10px}.wrap,header{max-width:1200px;padding-inline:44px;margin-inline:auto}.topbar{text-align:center;color:var(--cream);background:var(--navy);font-size:10px;font-weight:bold;letter-spacing:1.6px;padding:12px 15px}.topbar span{color:var(--orange);padding:0 14px}header{display:flex;align-items:center;justify-content:space-between;min-height:112px;border-bottom:1px solid var(--line)}.brand{display:block}.logo-crop{display:flex;align-items:center;width:170px;height:145px;overflow:visible}.logo-crop img{display:block;width:100%;height:100%;object-fit:contain;transform:none}nav{display:flex;gap:28px;align-items:center;font-size:12px;font-weight:bold}nav a{text-decoration:none;padding-block:12px}.navcall{border:1px solid var(--navy);padding:13px 17px;border-radius:4px}.hero{display:grid;grid-template-columns:1.08fr 1fr;gap:48px;align-items:center;padding-block:57px 65px}.eyebrow{font-size:10px;font-weight:bold;letter-spacing:1.8px;line-height:1.7;margin:0 0 18px}.eyebrow>span{display:inline-block;width:7px;height:7px;background:var(--orange);border-radius:50%;margin-right:7px}h1{font-size:clamp(45px,5.4vw,72px);line-height:1.02;letter-spacing:-3px;margin:0 0 25px;font-weight:850}h1 em{font-style:normal;color:var(--orange)}.lead{font-size:16px;line-height:1.8;color:var(--muted);max-width:450px;margin-bottom:28px}.actions{display:flex;flex-wrap:wrap;gap:10px}.button{display:inline-flex;justify-content:center;align-items:center;gap:24px;min-height:48px;padding:15px 18px;border-radius:4px;font-size:12px;font-weight:bold;text-decoration:none;transition:transform .2s}.button:hover{transform:translateY(-2px)}.orange{background:var(--orange);color:var(--cream)}.outline{border:1px solid var(--navy)}.little{font-size:10px;margin-top:20px;color:var(--muted)}.heroart{position:relative}.heroart svg{display:block;width:100%;height:auto}.artcaption{font-size:9px;letter-spacing:2px;text-align:center;margin-top:16px}.wrench{transform-origin:400px 300px;animation:wiggle 6s ease-in-out infinite}@keyframes wiggle{0%,75%,100%{transform:rotate(0)}82%{transform:rotate(-7deg)}90%{transform:rotate(6deg)}}.ticker{background:var(--orange);color:var(--cream);padding:19px 20px;text-align:center;overflow:hidden}.ticker div{font-size:15px;font-weight:850;letter-spacing:2px;white-space:nowrap}.ticker span{margin:0 35px;color:var(--navy)}.services{padding-top:70px;padding-bottom:65px}.sectionhead{display:flex;justify-content:space-between;gap:35px;align-items:end;margin-bottom:30px}h2{font-size:clamp(30px,3.6vw,44px);line-height:1.12;letter-spacing:-1.5px;margin:0}.sectionhead>p{font-size:13px;line-height:1.8;color:var(--muted);margin:0}.servicegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.service{border:1px solid var(--line);border-radius:7px;padding:0 25px 24px;overflow:hidden}.serviceart{height:155px;background:#ede7d8;margin:0 -25px 24px;display:flex;justify-content:center;align-items:center;border-bottom:1px solid var(--line)}.serviceart svg{width:190px;height:130px}.number{font-size:10px;letter-spacing:1.5px;font-weight:bold;color:#b44d1c}.service h3{font-size:28px;letter-spacing:-1px;line-height:1.15;margin:14px 0}.service p{font-size:12px;line-height:1.8;color:var(--muted);min-height:44px}.service ul{list-style:none;margin:22px 0 0;padding:0;font-size:12px;line-height:1.55}.service li{padding:8px 0 8px 15px;position:relative;border-top:1px solid #e6dfcf}.service li:before{content:'•';position:absolute;left:0;color:var(--orange)}.more{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:50px;border-top:1px solid var(--line);padding-top:35px}.more h3{font-size:23px;letter-spacing:-.5px;margin:0 0 15px}.more p{font-size:13px;color:var(--muted);line-height:1.8;margin:10px 0}.more .eyebrow{font-size:9px}.extras details{border-bottom:1px solid var(--line);padding:3px 0}.extras summary{cursor:pointer;list-style:none;min-height:52px;display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:bold;gap:15px}.extras summary::-webkit-details-marker{display:none}.extras summary span{font-size:20px;color:var(--orange)}.extras details[open] summary span{transform:rotate(45deg)}.about{background:var(--navy);color:var(--cream);padding:65px 0}.aboutinner{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.about .eyebrow{color:#efb080}.about h2{font-size:49px;line-height:1.08}.about h2 em{font-style:normal;color:#f2935b}.aboutcopy p{font-size:15px;line-height:1.9;color:#dfdfd7;margin:0 0 20px}.textlink{font-size:12px;text-underline-offset:6px;display:inline-block;padding:10px 0}.how{padding-block:65px 70px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:55px;margin-top:40px}.steps span{display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:#e9dfcc;border-radius:50%;font-size:15px;font-weight:bold}.steps h3{font-size:20px;letter-spacing:-.4px;margin:20px 0 10px}.steps p{font-size:13px;color:var(--muted);line-height:1.8;margin:0}.contact{background:var(--orange);padding:55px 0;color:var(--cream)}.contactinner{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.contact h2{font-size:42px}.contact .eyebrow{color:#fff1df}.contact p{font-size:13px;line-height:1.8;margin:20px 0 0}.phonepanel{background:var(--navy);border-radius:7px;padding:33px 30px;display:flex;flex-direction:column;align-items:start}.phonepanel>span{font-size:10px;letter-spacing:2px}.bigphone{font-size:clamp(28px,3.6vw,43px);font-weight:850;text-decoration:none;letter-spacing:-1.5px;padding:12px 0 20px;white-space:nowrap}.cream{background:var(--cream);color:var(--navy)}.phonepanel small{font-size:9px;color:#d8dedc;margin-top:18px;line-height:1.6}footer{padding-block:30px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:15px;align-items:center}.footerbrand{font-weight:900;letter-spacing:-1px;text-decoration:none;font-size:23px}.footerbrand span{color:var(--orange)}footer p{font-size:9px;letter-spacing:1px}footer small{font-size:9px;color:var(--muted)}.mobilecontact{display:none}@media(max-width:900px){.wrap,header{padding-inline:25px}.hero{gap:25px}.hero .actions{flex-direction:column;align-items:start}nav{gap:18px}.service{padding-inline:18px}.serviceart{margin-inline:-18px}.service h3{font-size:25px}.more{gap:30px}.aboutinner{gap:40px}.steps{gap:28px}.phonepanel{padding:26px 20px}.ticker span{margin-inline:20px}}@media(max-width:620px){html{scroll-padding-top:15px}.topbar{font-size:8px;letter-spacing:1px;padding:12px 8px}.topbar span{padding-inline:6px}.wrap,header{padding-inline:21px}header{min-height:100px}.logo-crop{width:145px;height:125px}.logo-crop img{width:100%;height:100%;object-fit:contain;transform:none}nav{gap:15px;font-size:11px}nav>a:not(:first-child):not(:last-child){display:none}.navcall{font-size:0;padding:12px}.navcall:after{content:'Call ↗';font-size:12px}.hero{grid-template-columns:1fr;padding-block:33px 36px;gap:28px}h1{font-size:56px;letter-spacing:-2.5px}.eyebrow{font-size:8px;letter-spacing:1.2px}.lead{font-size:14px;line-height:1.8}.hero .actions{flex-direction:row;gap:9px}.button{font-size:11px;padding:14px;gap:12px;min-height:48px}.heroart{max-width:420px;margin:auto;width:100%}.artcaption{font-size:8px}.ticker{padding:15px 0}.ticker div{font-size:10px;letter-spacing:1px}.ticker span{margin-inline:9px}.services{padding-block:42px}.sectionhead{display:block}.sectionhead>p{margin-top:18px;font-size:12px}.servicegrid{grid-template-columns:1fr;gap:23px}.service{padding:0 23px 25px}.serviceart{margin-inline:-23px;height:140px}.service h3{font-size:29px}.service p{min-height:0;font-size:13px}.service ul{font-size:13px}.service li{padding-block:10px}.more{grid-template-columns:1fr;gap:16px;margin-top:32px}.about{padding:42px 0}.aboutinner{grid-template-columns:1fr;gap:28px}.about h2{font-size:43px}.aboutcopy p{font-size:14px}.how{padding-block:43px}.steps{grid-template-columns:1fr;gap:25px;margin-top:30px}.steps>div{position:relative;padding-left:57px}.steps span{position:absolute;left:0;top:0}.steps h3{margin:4px 0 10px}.contact{padding-block:40px}.contactinner{grid-template-columns:1fr;gap:25px}.contact h2{font-size:36px}.bigphone{font-size:37px}.phonepanel{padding:27px 24px}footer{padding-bottom:100px}footer p{width:100%;order:3;font-size:8px}.mobilecontact{position:fixed;bottom:0;left:0;right:0;z-index:5;display:grid;grid-template-columns:1fr 1fr;background:var(--navy);border-top:2px solid var(--cream);padding-bottom:env(safe-area-inset-bottom)}.mobilecontact a{text-align:center;display:flex;align-items:center;justify-content:center;color:var(--cream);min-height:55px;text-decoration:none;font-size:12px;font-weight:bold}.mobilecontact a:last-child{background:var(--orange)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.wrench{animation:none}.button{transition:none}}
/* A consistent, readable type scale across the site. */
body{font-size:16px;line-height:1.5}
nav{font-size:17px;gap:30px;line-height:1.4}
nav a{min-height:48px;display:flex;align-items:center}
.navcall{font-size:18px;white-space:nowrap}
.topbar{font-size:12px;letter-spacing:1.1px}
.eyebrow,.more .eyebrow{font-size:12px;letter-spacing:1.3px}
.lead{font-size:18px;line-height:1.75}
.button{font-size:16px;line-height:1.4}
.little{font-size:14px;line-height:1.65}
.artcaption{font-size:12px;letter-spacing:1.3px;line-height:1.5}
.sectionhead>p,.service p,.service ul,.more p,.steps p,.contact p{font-size:16px;line-height:1.75}
.service p{min-height:0}
.service li{padding-block:10px}
.number{font-size:13px;letter-spacing:1px}
.extras summary{font-size:16px;line-height:1.5;min-height:60px;padding-block:12px}
.aboutcopy p{font-size:17px;line-height:1.8}
.textlink{font-size:16px;line-height:1.6}
.steps h3{font-size:23px;line-height:1.3}
.phonepanel>span{font-size:13px;letter-spacing:1.6px}
.phonepanel small{font-size:13px;line-height:1.65}
footer p{font-size:12px;line-height:1.7;letter-spacing:.8px}
footer small{font-size:12px;line-height:1.5}
h2{font-size:clamp(34px,3.8vw,46px)}
@media(max-width:900px){nav{gap:20px;font-size:16px}.navcall{font-size:17px}.button{gap:12px;padding-inline:16px}.sectionhead{align-items:start}.sectionhead>p{max-width:270px}}
@media(max-width:760px){header{flex-wrap:wrap;gap:0;padding-bottom:20px}header nav{width:100%;justify-content:space-between}.logo-crop{height:132px}header nav a{justify-content:center}.sectionhead{flex-direction:column;gap:20px}.sectionhead>p{max-width:none}}
@media(max-width:620px){header{display:flex;flex-direction:column;align-items:flex-start;padding-top:3px;padding-bottom:18px;gap:0}header nav{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:6px 10px;font-size:15px;align-items:stretch}nav>a:not(:first-child):not(:last-child){display:flex}nav a{min-height:44px;text-align:center;padding:9px 0}.navcall{font-size:17px;grid-column:1/-1;justify-content:center;padding:12px;margin-top:4px}.navcall:after{display:none}.logo-crop{height:125px}.topbar{font-size:10px;letter-spacing:.7px;line-height:1.7}.topbar span{padding-inline:4px}.eyebrow,.more .eyebrow{font-size:11px;letter-spacing:1px}.lead{font-size:17px}.button{font-size:15px;min-height:50px;line-height:1.5}.hero .actions{flex-direction:column;align-items:stretch}.little{font-size:14px}.artcaption{font-size:11px;letter-spacing:.9px}.sectionhead>p,.service p,.service ul,.more p,.steps p,.contact p{font-size:16px;line-height:1.75}.number{font-size:12px}.extras summary{font-size:16px}.aboutcopy p{font-size:16px;line-height:1.8}.textlink{font-size:16px}.steps h3{font-size:22px}.phonepanel small{font-size:13px}.phonepanel>span{font-size:12px}footer p{font-size:11px}footer small{font-size:12px}.mobilecontact a{font-size:14px;padding-inline:8px;min-height:60px}.contact h2{font-size:36px}.about h2{font-size:43px}.ticker div{font-size:11px}.ticker span{margin-inline:8px}}
/* A short stop-motion vignette inspired by the reference film. */
.wrench{animation:none}
.animation-control{display:block;margin:14px auto 0;border:1px solid #bcb9ab;border-radius:5px;background:transparent;color:var(--navy);padding:10px 16px;min-height:44px;font:inherit;font-size:13px;cursor:pointer}
.animation-control:hover{background:#e8e2d0}.animation-control:focus-visible{outline:3px solid var(--orange);outline-offset:4px}.animation-control:disabled{cursor:default;opacity:.7}
.rolling-toolbox{transform-origin:235px 405px;transform:translateY(-8.5px)}.window-left{transform-origin:239px 165px}.window-right{transform-origin:292px 165px}.house-heart{opacity:0;transform-origin:265px 166px}
.is-playing .rolling-toolbox{animation:toolbox-arrives 6.4s steps(1,end) both}
.is-playing .window-left{animation:left-reveal 6.4s steps(12,end) both}
.is-playing .window-right{animation:right-reveal 6.4s steps(12,end) both}
.is-playing .house-heart{animation:heart-reveal 6.4s steps(18,end) both}
.is-playing .wrench{transform-origin:420px 280px;animation:wrench-rolls-in 6.4s steps(1,end) both}
@keyframes toolbox-arrives{0%{transform:translate(245.00px,-8.50px) rotate(360.00deg);opacity:0}1%{transform:translate(231.99px,-20.26px) rotate(347.14deg);opacity:1}2%{transform:translate(219.22px,-30.48px) rotate(334.29deg);opacity:1}3%{transform:translate(206.70px,-38.65px) rotate(321.43deg);opacity:1}4%{transform:translate(194.42px,-44.35px) rotate(308.57deg);opacity:1}5%{transform:translate(182.40px,-47.30px) rotate(295.71deg);opacity:1}6%{transform:translate(170.63px,-47.35px) rotate(282.86deg);opacity:1}7%{transform:translate(159.13px,-44.50px) rotate(270.00deg);opacity:1}8%{transform:translate(147.90px,-50.02px) rotate(257.14deg);opacity:1}9%{transform:translate(136.95px,-52.50px) rotate(244.29deg);opacity:1}10%{transform:translate(126.28px,-51.83px) rotate(231.43deg);opacity:1}11%{transform:translate(115.91px,-48.03px) rotate(218.57deg);opacity:1}12%{transform:translate(105.83px,-41.29px) rotate(205.71deg);opacity:1}13%{transform:translate(96.07px,-31.96px) rotate(192.86deg);opacity:1}14%{transform:translate(86.62px,-20.50px) rotate(180.00deg);opacity:1}15%{transform:translate(77.51px,-31.74px) rotate(167.14deg);opacity:1}16%{transform:translate(68.74px,-40.86px) rotate(154.29deg);opacity:1}17%{transform:translate(60.33px,-47.41px) rotate(141.43deg);opacity:1}18%{transform:translate(52.29px,-51.05px) rotate(128.57deg);opacity:1}19%{transform:translate(44.65px,-51.60px) rotate(115.71deg);opacity:1}20%{transform:translate(37.42px,-49.04px) rotate(102.86deg);opacity:1}21%{transform:translate(30.62px,-43.50px) rotate(90.00deg);opacity:1}22%{transform:translate(24.30px,-46.37px) rotate(77.14deg);opacity:1}23%{transform:translate(18.49px,-46.40px) rotate(64.29deg);opacity:1}24%{transform:translate(13.23px,-43.57px) rotate(51.43deg);opacity:1}25%{transform:translate(8.59px,-38.02px) rotate(38.57deg);opacity:1}26%{transform:translate(4.68px,-30.05px) rotate(25.71deg);opacity:1}27%{transform:translate(1.65px,-20.04px) rotate(12.86deg);opacity:1}28%{transform:translate(0.00px,-8.50px) rotate(0.00deg);opacity:1}31%{transform:translateY(-14px);opacity:1}34%,100%{transform:translateY(-8.5px);opacity:1}}
@keyframes left-reveal{0%,35%{transform:translateX(0) scaleX(1)}46%,78%{transform:translateX(-10px) scaleX(.18)}90%,100%{transform:none}}
@keyframes right-reveal{0%,35%{transform:translateX(0) scaleX(1)}46%,78%{transform:translateX(10px) scaleX(.18)}90%,100%{transform:none}}
@keyframes heart-reveal{0%,37%{opacity:0;transform:scale(.75)}45%{opacity:1;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}55%{opacity:1;transform:scale(1)}60%{opacity:1;transform:scale(1.15)}65%{opacity:1;transform:scale(1)}70%{opacity:1;transform:scale(1.15)}76%{opacity:1;transform:scale(1)}86%,100%{opacity:0;transform:scale(.75)}}
@keyframes wrench-rolls-in{0%,11%{transform:translate(122.00px,0) rotate(360deg);opacity:0}12%{transform:translate(122.00px,84.50px) rotate(360.00deg);opacity:1}13%{transform:translate(115.33px,77.96px) rotate(345.00deg);opacity:1}14%{transform:translate(108.67px,75.33px) rotate(330.00deg);opacity:1}15%{transform:translate(102.00px,76.81px) rotate(315.00deg);opacity:1}16%{transform:translate(95.33px,82.29px) rotate(300.00deg);opacity:1}17%{transform:translate(88.67px,91.39px) rotate(285.00deg);opacity:1}18%{transform:translate(82.00px,103.50px) rotate(270.00deg);opacity:1}19%{transform:translate(75.33px,93.72px) rotate(255.00deg);opacity:1}20%{transform:translate(68.67px,86.79px) rotate(240.00deg);opacity:1}21%{transform:translate(62.00px,83.17px) rotate(225.00deg);opacity:1}22%{transform:translate(55.33px,83.13px) rotate(210.00deg);opacity:1}23%{transform:translate(48.67px,86.65px) rotate(195.00deg);opacity:1}24%{transform:translate(42.00px,93.50px) rotate(180.00deg);opacity:1}25%{transform:translate(35.33px,85.87px) rotate(165.00deg);opacity:1}26%{transform:translate(28.67px,81.63px) rotate(150.00deg);opacity:1}27%{transform:translate(22.00px,81.05px) rotate(135.00deg);opacity:1}28%{transform:translate(15.33px,84.19px) rotate(120.00deg);opacity:1}29%{transform:translate(8.67px,90.82px) rotate(105.00deg);opacity:1}30%{transform:translate(2.00px,100.50px) rotate(90.00deg);opacity:1}31%{transform:translate(-4.67px,88.49px) rotate(75.00deg);opacity:1}32%{transform:translate(-11.33px,79.69px) rotate(60.00deg);opacity:1}33%{transform:translate(-18.00px,74.69px) rotate(45.00deg);opacity:1}34%{transform:translate(-24.67px,73.83px) rotate(30.00deg);opacity:1}35%{transform:translate(-31.33px,77.18px) rotate(15.00deg);opacity:1}36%{transform:translate(-38.00px,84.50px) rotate(0.00deg);opacity:1}37%,100%{transform:translate(-38.00px,84.50px) rotate(0.00deg);opacity:1}}
@media(prefers-reduced-motion:reduce){.is-playing .rolling-toolbox,.is-playing .window-left,.is-playing .window-right,.is-playing .house-heart,.is-playing .wrench{animation:none}.house-heart{opacity:0}}

.heroart>svg[role="button"]{cursor:pointer;touch-action:manipulation}.heroart>svg[role="button"]:focus-visible{outline:3px solid var(--orange);outline-offset:5px;border-radius:20px}.heroart>svg[aria-disabled="true"]{cursor:default}

.wrench{transform:translate(-38px,84.50px);transform-origin:420px 280px}

.faucet-water{opacity:1}.is-playing .faucet-water{animation:water-starts 6.4s steps(1,end) both}.is-playing .water-dashes{animation:water-travels 6.4s linear both}
@keyframes water-starts{0%,55%{opacity:0}56%,100%{opacity:1}}
@keyframes water-travels{0%,56%{stroke-dashoffset:0}100%{stroke-dashoffset:-90}}
@media(prefers-reduced-motion:reduce){.is-playing .faucet-water,.is-playing .water-dashes{animation:none}.faucet-water{opacity:1}}

.lamp-glow,.lamp-bulb{opacity:1}.lampshade{fill:#f6ac4b}.is-playing .lamp-glow,.is-playing .lamp-bulb{animation:lamp-switches-on 6.4s steps(1,end) both}.is-playing .lampshade{animation:shade-warms 6.4s steps(1,end) both}
@keyframes lamp-switches-on{0%,39%{opacity:0}40%,100%{opacity:1}}
@keyframes shade-warms{0%,39%{fill:#bd7a53}40%,100%{fill:#f6ac4b}}
@media(prefers-reduced-motion:reduce){.is-playing .lamp-glow,.is-playing .lamp-bulb,.is-playing .lampshade{animation:none}}

.number{display:block;font-size:20px;font-weight:800;letter-spacing:1px;color:#bf4b14;line-height:1.4}@media(max-width:620px){.number{font-size:20px}}

.serviceart{height:175px}.serviceart svg{width:235px;height:145px;max-width:95%}@media(max-width:620px){.serviceart{height:170px}.serviceart svg{width:250px;height:151px}}

.hero-services{font-size:clamp(28px,3.2vw,42px);line-height:1.22;letter-spacing:-1px;margin-bottom:24px}.hero-services span{color:var(--orange);font-size:.7em}@media(max-width:620px){.hero-services{font-size:30px;line-height:1.25;letter-spacing:-.8px}}
