@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#181a1b;--paper:#fff;--soft:#f1f2f3;--muted:#545a60;--line:#d9dcdf;--accent:#d52e20;--font:'DM Sans',Arial,sans-serif;--display:'Manrope',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;color:var(--ink);background:var(--paper);font:1rem/1.65 var(--font)}[hidden]{display:none!important}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px}p,h1,h2,h3,h4{margin:0}p+p{margin-top:1.2rem}button{cursor:pointer}h1,h2,h3{font-family:var(--display)}.wrap{width:min(1440px,calc(100% - clamp(40px,6.25vw,120px)));margin-inline:auto}.skip{position:absolute;left:1rem;top:-8rem;padding:1rem;background:#fff;z-index:10}.skip:focus{top:1rem}.masthead{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:1.7rem;border-bottom:1px solid var(--line)}.wordmark{font:800 1.7rem/1.2 var(--display);letter-spacing:-.045em}.wordmark span{display:block;font:400 .8125rem/1.5 var(--font);letter-spacing:0;color:var(--muted);margin-top:.35rem}nav{display:flex;gap:2rem;align-items:center;font-size:.9375rem}nav a{padding-block:.6rem}nav a:hover,.text-link:hover,.quiet-link:hover{color:var(--accent)}.nav-contact{font-weight:700}.nav-contact span{margin-left:.65rem}.menu-toggle{display:none;border:1px solid var(--line);border-radius:3px;padding:.5rem .8rem;background:#fff;min-height:44px;color:var(--ink)}
.hero{padding-top:4rem}.eyebrow{text-transform:uppercase;font-size:.8125rem;letter-spacing:.11em;font-weight:600;line-height:1.5}.hero h1{font:600 clamp(3.25rem,7.6vw,7.4rem)/1.08 var(--display);letter-spacing:-.065em;margin-top:1.8rem}.hero h1 span{color:var(--accent)}.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:4rem;padding:2.5rem 0 3rem}.hero-bottom>p{max-width:660px;font-size:1.2rem;line-height:1.7;color:var(--muted)}.hero-actions{flex-shrink:0;display:flex;flex-direction:column;align-items:stretch;gap:.85rem}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:2rem;padding:1.05rem 1.35rem;background:var(--accent);color:#fff;font-weight:600;border:1px solid transparent;border-radius:3px;min-height:52px;transition:background .2s;text-align:left}.button:hover{background:#ad2116}.button span{font-size:1.4rem}.quiet-link{font-size:.875rem;text-align:center;padding:.35rem;min-height:40px}.quiet-link span{margin-left:.75rem}.hero-foot{display:flex;justify-content:space-between;gap:1rem;padding:1.1rem 0;border-top:1px solid var(--line);font-size:.8125rem;color:var(--muted)}.section-heading{display:flex;justify-content:space-between;align-items:start;gap:3rem;margin-bottom:2.8rem}.section-heading h2{width:57%}h2{font:600 clamp(2.2rem,4vw,3.8rem)/1.15 var(--display);letter-spacing:-.055em}h3{font:600 1.3rem/1.35 var(--display);letter-spacing:-.025em}.section-note{max-width:290px;color:var(--muted);margin-top:1rem;font-size:.9375rem}.starting-points,.process-section,.faq-section{padding-block:5.5rem}.path-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.path{padding:2.6rem;background:var(--soft);border-radius:4px;display:flex;flex-direction:column;align-items:start}.path h3{font-size:clamp(1.9rem,3vw,2.9rem);line-height:1.2;margin:1.3rem 0;letter-spacing:-.045em}.path>p:not(.eyebrow){color:var(--muted);max-width:530px}.path ul{padding-left:1.1rem;margin-block:1.25rem 1.6rem;color:var(--muted);font-size:.9375rem}.path li+li{margin-top:.4rem}.path .text-link{margin-top:auto}.path-dark{background:var(--ink);color:#fff}.path-dark>p:not(.eyebrow),.path-dark ul{color:#ced0d2}.path-dark .text-link:hover{color:#ff9387}.text-link{display:inline-flex;align-items:center;gap:1.2rem;margin-top:1.6rem;font-weight:700;border-bottom:1px solid;padding-block:.25rem .4rem;min-height:44px}.service-section{padding-block:5.5rem;border-top:1px solid var(--line)}.services-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:4rem}.service-item{display:flex;gap:1.4rem;border-top:1px solid var(--line);padding-block:1.7rem 2rem}.service-number{font-size:.8125rem;color:var(--accent);padding-top:.2rem}.service-item p{color:var(--muted);margin-top:.7rem;max-width:560px}.cost-note{border-top:1px solid var(--line);margin-top:1.5rem;padding-top:1.5rem;display:grid;grid-template-columns:1fr 1.35fr;gap:5rem}.cost-note p{color:var(--muted);font-size:.9375rem;max-width:680px}
.work-section{background:var(--soft);padding-block:5.5rem}.demo-note{max-width:800px;margin:-.6rem 0 2.5rem;color:var(--muted)}.project{display:block}.project+.project{margin-top:4rem}.project-image{position:relative;overflow:hidden;background:#e5e7e9;border-radius:4px;aspect-ratio:16/10}.project-image img{width:100%;height:100%;object-fit:contain;display:block}.project-cleaning .project-image{background:#f0f5ea}.project-link{position:absolute;right:1.25rem;bottom:1.25rem;background:white;padding:.8rem 1rem;font-weight:600;border-radius:3px;font-size:.9rem;box-shadow:0 2px 16px #181a1b12}.project-link span{margin-left:1.5rem}.project:hover .project-link{background:var(--ink);color:white}.project-info{padding-top:1.5rem;display:grid;gap:1.2rem;grid-template-columns:1fr 1fr}.project-info .eyebrow{color:var(--muted);font-size:.75rem}.project-info h3{font-size:clamp(1.6rem,2.4vw,2.6rem);margin-top:.7rem}.project-info>p{color:var(--muted);max-width:430px}.project-detail{font-size:.8125rem;color:var(--muted)}.portfolio-carousel.is-ready .portfolio-slides{display:grid}.portfolio-carousel.is-ready .project{grid-area:1/1;margin:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s;align-content:start}.portfolio-carousel.is-ready .project.is-active{opacity:1;visibility:visible;pointer-events:auto}.carousel-controls{display:flex;align-items:center;gap:.65rem;margin-top:1.7rem;flex-wrap:wrap}.carousel-controls button{font:600 .875rem var(--font);min-width:44px;min-height:44px;padding:.65rem .9rem;border:1px solid var(--line);background:white;border-radius:3px;color:var(--ink)}.carousel-controls button:hover{border-color:var(--accent)}.carousel-controls button[aria-current=true]{background:var(--accent);color:white;border-color:var(--accent)}.carousel-controls button:disabled{cursor:default;color:var(--muted)}.carousel-dots{display:flex;gap:.4rem}.carousel-status{font-size:.8125rem;color:var(--muted);margin-left:auto}.demo-directory{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.5rem;border-top:1px solid var(--line);padding-top:1.2rem}.demo-directory a{display:flex;justify-content:space-between;align-items:center;gap:1rem;font-weight:600;min-height:44px}.demo-directory span{font-size:.75rem;color:var(--muted);white-space:nowrap}.demo-directory a:hover{color:var(--accent)}
.process-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}.process-grid li{border-top:1px solid var(--line);padding-top:1.2rem}.step-number{font-size:.8125rem;color:var(--accent)}.process-grid h3{margin:1rem 0 .7rem;font-size:1.2rem}.process-grid p{color:var(--muted);font-size:.9375rem}.about-section{background:var(--soft)}.about{display:grid;grid-template-columns:.85fr 1.15fr;gap:6rem;padding-block:5.5rem}.about h2{margin-top:1.3rem}.portrait{display:block;width:min(100%,350px);height:auto;margin-top:2rem;border-radius:4px}.about-copy{align-self:center;max-width:650px}.large-copy{font-size:clamp(1.6rem,2.6vw,2.4rem);line-height:1.4;letter-spacing:-.03em}.about-copy>p:not(.large-copy){color:var(--muted)}.questions{margin-left:43%;max-width:820px}.questions details{border-top:1px solid var(--line)}.questions details:last-child{border-bottom:1px solid var(--line)}.questions summary{position:relative;cursor:pointer;font-weight:600;padding:1.35rem 2rem 1.35rem 0;list-style:none;min-height:44px}.questions summary::-webkit-details-marker{display:none}.questions summary:after{content:'+';position:absolute;right:.2rem;font-size:1.3rem;font-weight:400}.questions details[open] summary:after{content:'−'}.questions details p{color:var(--muted);padding:0 1.5rem 1.5rem 0}
.contact-section{background:var(--accent);color:white;padding-block:5.5rem}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start}.contact-copy h2{font-size:clamp(3rem,5vw,5.5rem);margin-block:1.4rem}.contact-copy>p:not(.eyebrow){max-width:500px}.contact-links{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}.contact-links a{border:1px solid #ffffffb3;padding:.8rem 1.1rem;font-weight:600;border-radius:3px;overflow-wrap:anywhere;font-size:.9375rem}.contact-links a:first-child{width:100%;display:flex;justify-content:space-between}.contact-links a:hover{background:#fff;color:var(--accent)}.contact-note{font-size:.8125rem;margin-top:1.5rem}.contact-section a:focus-visible{outline-color:white}.brief-form{color:var(--ink);background:white;padding:2.2rem;border-radius:4px;min-width:0}.brief-form h3{font-size:1.4rem}.form-intro{color:var(--muted);font-size:.8125rem;margin:.8rem 0 1.3rem}.brief-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.875rem;font-weight:600;margin-bottom:1rem;min-width:0}.brief-form label span{color:var(--muted);font-weight:400;display:contents}.brief-form input,.brief-form select,.brief-form textarea{display:block;width:100%;max-width:100%;min-width:0;padding:.7rem .8rem;border:1px solid #b5bbc0;border-radius:2px;background:#fff;color:var(--ink);font-size:1rem;line-height:1.5}.brief-form textarea{resize:vertical}.brief-form input:focus,.brief-form select:focus,.brief-form textarea:focus{outline:2px solid var(--ink);outline-offset:2px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.brief-form>.button{width:100%}.email-result{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--line)}.email-result h4{font-size:1.1rem}.email-result p{font-size:.8125rem;margin-top:.6rem}.email-result pre{font:400 .8125rem/1.6 var(--font);white-space:pre-wrap;overflow-wrap:anywhere;background:var(--soft);padding:1rem}.email-result .button{width:100%;font-size:.9rem}.brief-form a:focus-visible{outline-color:var(--accent)}.copy-button{border:1px solid var(--line);border-radius:3px;background:#fff;color:var(--ink);padding:.65rem 1rem;min-height:44px;margin-top:.7rem;font-size:.875rem}.email-result:focus{outline:2px solid var(--ink);outline-offset:6px}footer{padding-block:2rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}footer p,footer>a:last-child{font-size:.8125rem;color:var(--muted)}
@media(min-width:1000px){.portfolio-carousel.is-ready .project{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:3rem;align-items:center}.portfolio-carousel.is-ready .project-info{display:flex;flex-direction:column;align-items:start;gap:1.5rem;padding:0}}
@media(max-width:1050px){nav{gap:1.2rem}.hero-bottom{gap:2rem}.hero-bottom>p{font-size:1.1rem}.hero-actions{max-width:320px}.path{padding:2rem}.services-grid{column-gap:2.5rem}.process-grid{grid-template-columns:1fr 1fr;gap:2rem}.about{gap:3rem}.contact-grid{gap:2.5rem}.brief-form{padding:1.7rem}.contact-links a{font-size:.875rem}.cost-note{gap:3rem}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.masthead{position:relative;flex-wrap:wrap;gap:0;padding-block:1.3rem}.wordmark{font-size:1.4rem}.wordmark span{font-size:.75rem}.menu-toggle{display:block;margin-left:auto}nav{width:100%;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;padding-top:1rem}nav.is-enhanced{display:none}nav.is-enhanced.is-open{display:flex}.hero{padding-top:3rem}.hero h1{font-size:clamp(2.6rem,8.6vw,4.5rem);letter-spacing:-.06em}.hero-bottom{align-items:start;flex-direction:column;gap:1.8rem;padding-block:1.8rem 2.2rem}.hero-bottom>p{font-size:1.0625rem;max-width:600px}.hero-actions{max-width:none;width:100%}.hero-foot{flex-direction:column;gap:.3rem}.section-heading{display:block;margin-bottom:2rem}.section-heading h2{width:auto;margin-top:1.2rem}.section-note{max-width:100%;margin-top:.7rem}.starting-points,.process-section,.faq-section,.service-section,.work-section,.about,.contact-section{padding-block:3.5rem}.path-grid,.contact-grid,.about{grid-template-columns:1fr;gap:1.5rem}.path{padding:1.8rem}.path h3{font-size:2rem}.path .text-link{margin-top:.2rem}.services-grid{grid-template-columns:1fr}.service-item{padding-block:1.4rem 1.7rem;gap:1rem}.service-item h3{font-size:1.2rem}.service-item p{font-size:.9375rem}.cost-note{grid-template-columns:1fr;gap:.7rem}.demo-note{font-size:.9375rem;margin-bottom:2rem}.project-info{display:block;padding-top:1.2rem}.project-info>p{margin-top:.8rem;max-width:none}.project-detail{display:block;margin-top:.8rem}.project-link{position:static;display:flex;justify-content:space-between;box-shadow:none;padding:.8rem 1rem}.project-image{aspect-ratio:auto}.project-image img{aspect-ratio:16/10;height:auto}.carousel-controls{gap:.45rem}.carousel-controls button{padding:.6rem .75rem}.carousel-dots{gap:.3rem}.carousel-status{width:100%;margin-left:0}.demo-directory{grid-template-columns:1fr;gap:0;margin-top:1.5rem;padding-top:.4rem}.demo-directory a{border-bottom:1px solid var(--line);padding-block:.6rem}.process-grid{gap:1.5rem}.process-grid h3{font-size:1.1rem}.process-grid p{font-size:.875rem}.about{gap:2.5rem}.portrait{width:min(75%,310px)}.questions{margin-left:0}.questions summary{font-size:.9375rem}.questions details p{font-size:.9375rem}.contact-grid{gap:2.5rem}.contact-copy h2{font-size:3.3rem}.contact-copy>p{font-size:.9375rem}.contact-copy .contact-note{font-size:.8125rem}.brief-form{padding:1.5rem}footer{flex-direction:column;align-items:start;gap:1rem}footer .wordmark span{max-width:280px}}
@media(max-width:390px){.wrap{width:calc(100% - 32px)}.hero h1{font-size:2.45rem}.eyebrow{font-size:.73rem}.button{gap:1rem;font-size:.9rem;padding:.9rem 1rem}.path,.brief-form{padding:1.25rem}.process-grid,.form-row{grid-template-columns:1fr}.form-row{gap:0}.contact-links a{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
