:root{--ink:#1c1230;--sandley:#3b2273;--violet:#6b4fc8;--lilac:#d9cff5;--limestone:#f2f1ed;--line:#dcd9e2;--muted:#5f5b6b;--body:#3e3a4a;--soft:#e4dff0;--accent:#a58cf5;--hatch:#e4e0ec;--white:#fff;--mono:"IBM Plex Mono", ui-monospace, monospace;--sans:Archivo, system-ui, sans-serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ink);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--sandley)}a:hover{color:var(--ink)}img{max-width:100%;display:block}.site{background:var(--limestone);min-width:0}.wrap{max-width:1280px;margin:0 auto;padding-left:32px;padding-right:32px}.mono{font-family:var(--mono)}.eyebrow{font-family:var(--mono);letter-spacing:.14em;color:var(--violet);text-transform:uppercase;font-size:13px}.eyebrow--light{color:var(--lilac)}.display{text-transform:uppercase;white-space:pre-line;margin:0;font-weight:800;font-stretch:125%;line-height:1}.display--xl{letter-spacing:-.01em;font-size:clamp(44px,6vw,84px);line-height:.95}.display--lg{font-size:clamp(32px,4vw,52px)}.display--md{font-size:clamp(30px,3.4vw,44px)}.lede{color:var(--soft);margin:0;font-size:20px;line-height:1.55}.copy{color:var(--muted);white-space:pre-line;max-width:52ch;margin:0;font-size:17px;line-height:1.6}.btn{min-height:48px;font-family:var(--sans);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;border:0;justify-content:center;align-items:center;gap:10px;padding:0 24px;font-size:15px;font-weight:700;text-decoration:none;display:inline-flex}.btn--primary{background:var(--sandley);color:var(--white)}.btn--primary:hover{background:var(--ink);color:var(--white)}.btn--light{background:var(--white);color:var(--sandley)}.btn--light:hover{background:var(--lilac);color:var(--ink)}.btn--ghost{color:var(--white);box-shadow:inset 0 0 0 2px var(--violet);background:0 0}.btn--ghost:hover{background:var(--violet);color:var(--white)}.btn--outline{background:var(--white);color:var(--sandley);box-shadow:inset 0 0 0 2px var(--sandley)}.btn:disabled{opacity:.6;cursor:wait}.photo{background-color:var(--hatch);background-image:repeating-linear-gradient(135deg,#3b22731a 0 2px,#0000 2px 14px);align-items:flex-end;padding:18px;display:flex;position:relative;overflow:hidden}.photo--dark{background-color:#2a1c47;background-image:repeating-linear-gradient(135deg,#d9cff514 0 2px,#0000 2px 14px)}.photo img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.photo__label{font-family:var(--mono);background:var(--white);color:var(--sandley);text-transform:uppercase;padding:6px 10px;font-size:12px;position:relative}.label{font-family:var(--mono);text-transform:uppercase;padding:6px 10px;font-size:12px}.topbar{background:var(--ink);color:var(--lilac);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.topbar .wrap{flex-wrap:wrap;justify-content:space-between;gap:8px 28px;padding-top:10px;padding-bottom:10px;display:flex}.topbar a{color:var(--white)}.header{background:var(--white);border-bottom:1px solid var(--line);z-index:20;position:relative}.header .wrap{justify-content:space-between;align-items:center;gap:16px;padding-top:14px;padding-bottom:14px;display:flex}.brand{color:var(--ink);align-items:center;gap:14px;text-decoration:none;display:flex}.brand:hover{color:var(--ink)}.brand__mark{color:var(--sandley);flex-shrink:0}.brand__words{flex-direction:column;gap:3px;display:flex}.brand__name{letter-spacing:.02em;font-size:22px;font-weight:800;font-stretch:125%;line-height:1}.brand__sub{letter-spacing:.36em;color:var(--sandley);font-size:9.5px;font-weight:600;font-stretch:125%}.nav{flex-wrap:wrap;align-items:center;gap:4px 28px;display:flex}.navlink{color:var(--ink);padding:12px 4px;font-size:15px;font-weight:600;text-decoration:none}.navlink:hover,.navlink.is-active{color:var(--violet)}.navlink.is-active{box-shadow:inset 0 -3px 0 var(--violet)}.header__mobile{gap:4px;display:none}.icon-btn{width:48px;height:48px;color:var(--sandley);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:flex}.icon-btn--solid{background:var(--sandley);color:var(--white)}.mobile-menu{display:none}.hero{background:var(--ink);color:var(--white)}.hero--grid{background-image:linear-gradient(#d9cff50f 1px,#0000 1px),linear-gradient(90deg,#d9cff50f 1px,#0000 1px);background-size:40px 40px}.hero__inner{flex-wrap:wrap;align-items:center;gap:56px;padding-top:88px;padding-bottom:72px;display:flex}.hero__copy{flex-direction:column;flex:440px;gap:28px;min-width:0;display:flex}.hero__copy .display{font-size:clamp(44px,6vw,80px)}.hero__copy .lede{max-width:34ch}.hero__figure{flex-direction:column;flex:520px;gap:16px;min-width:0;margin:0;display:flex}.hero__figure svg{width:100%;height:auto;display:block}.hero__caption{font-family:var(--mono);letter-spacing:.06em;color:var(--lilac);text-transform:uppercase;flex-wrap:wrap;gap:8px 22px;font-size:12px;display:flex}.actions{flex-wrap:wrap;gap:14px;display:flex}.page-hero__inner{flex-direction:column;gap:24px;padding-top:80px;padding-bottom:64px;display:flex}.page-hero .lede{max-width:52ch}.crumbs{font-family:var(--mono);letter-spacing:.14em;color:var(--lilac);text-transform:uppercase;font-size:13px}.crumbs a{color:var(--lilac)}.creds{background:var(--sandley);color:var(--white)}.creds__grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.cred{border-right:1px solid #d9cff540;flex-direction:column;gap:4px;padding:26px 24px;display:flex}.cred:first-child{padding-left:0}.cred:last-child{border-right:0}.cred__value{font-size:34px;font-weight:800;font-stretch:125%}.cred__label{font-family:var(--mono);letter-spacing:.1em;color:var(--lilac);text-transform:uppercase;font-size:12px}.section{flex-direction:column;gap:48px;padding-top:104px;padding-bottom:96px;display:flex}.section--white{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.section-head__title{flex-direction:column;gap:14px;display:flex}.section-head p{max-width:40ch;color:var(--muted);margin:0;font-size:18px;line-height:1.55}.more-link{letter-spacing:.04em;text-transform:uppercase;padding:12px 0;font-size:15px;font-weight:700}.service-grid{background:var(--line);border:2px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:2px;display:grid}.service-card{background:var(--white);color:var(--ink);flex-direction:column;gap:18px;min-height:220px;padding:32px;text-decoration:none;display:flex}.service-card:hover{color:var(--ink);background:#faf9fc}.service-card__top{justify-content:space-between;align-items:flex-start;display:flex}.service-card__num{font-family:var(--mono);color:var(--violet);font-size:13px}.service-card__title{text-transform:uppercase;font-size:24px;font-weight:800;font-stretch:125%}.service-card__text{color:var(--muted);font-size:16px;line-height:1.55}.service-card--feature{background:var(--sandley);color:var(--white)}.service-card--feature:hover{background:var(--ink);color:var(--white)}.service-card--feature .service-card__num{color:var(--lilac)}.service-card--feature .service-card__text{color:var(--soft)}.service-rows{display:none}.job-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;display:grid}.job-grid__lead{grid-column:1/-2}.job-grid__stack{flex-direction:column;gap:24px;min-width:0;display:flex}.job-card{color:var(--ink);flex-direction:column;gap:12px;min-width:0;text-decoration:none;display:flex}.job-card:hover{color:var(--violet)}.job-card__title{text-transform:uppercase;font-size:18px;font-weight:800;font-stretch:125%}.job-card__meta{font-family:var(--mono);color:var(--muted);text-transform:uppercase;font-size:12px}.job-card--lead{gap:16px}.job-card--lead .job-card__title{font-size:22px}.job-card--lead .job-card__row{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.job-card--lead .job-card__meta{font-size:13px}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:40px 24px;display:grid}.filters{flex-wrap:wrap;gap:10px;display:flex}.chip{border:2px solid var(--sandley);min-height:44px;color:var(--sandley);font-family:var(--sans);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;background:0 0;align-items:center;padding:0 18px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.chip:hover,.chip.is-active{background:var(--sandley);color:var(--white)}.empty{color:var(--muted);padding:48px 0;font-size:18px}.steps{border-top:4px solid var(--sandley);grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin:0;padding:0;list-style:none;display:grid}.step{flex-direction:column;gap:12px;padding:28px 28px 0 0;display:flex}.step__num{font-family:var(--mono);color:var(--violet);font-size:14px}.step__title{text-transform:uppercase;font-size:22px;font-weight:800;font-stretch:125%}.step__text{color:var(--muted);font-size:16px;line-height:1.55}.quote{background:var(--lilac)}.quote .wrap{flex-wrap:wrap;align-items:center;gap:40px;padding-top:80px;padding-bottom:80px;display:flex}.quote figure{flex-direction:column;flex:520px;gap:18px;min-width:0;margin:0;display:flex}.quote blockquote{color:var(--ink);margin:0;font-size:clamp(22px,2.6vw,32px);font-weight:600;line-height:1.3}.quote figcaption{font-family:var(--mono);color:var(--sandley);text-transform:uppercase;font-size:13px}.estimate{background:var(--sandley);color:var(--white);scroll-margin-top:24px}.estimate .wrap{flex-wrap:wrap;gap:56px;padding-top:96px;padding-bottom:96px;display:flex}.estimate__intro{flex-direction:column;flex:380px;gap:22px;min-width:0;display:flex}.estimate__intro .display{font-size:clamp(36px,4.4vw,60px);line-height:.98}.estimate__intro p{color:var(--soft);max-width:38ch;margin:0;font-size:18px;line-height:1.55}.estimate__contact{font-family:var(--mono);flex-direction:column;gap:10px;margin-top:8px;font-size:14px;display:flex}.estimate__contact a{color:var(--white)}.estimate-form{flex:520px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-content:start;gap:18px;min-width:0;display:grid}.field{letter-spacing:.04em;text-transform:uppercase;color:var(--lilac);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.field--full{grid-column:1/-1}.field input,.field select,.field textarea{font-family:var(--sans);color:var(--ink);background:var(--white);text-transform:none;letter-spacing:0;border:0;border-radius:0;min-height:48px;padding:0 14px;font-size:16px;font-weight:400}.field textarea{resize:vertical;min-height:96px;padding:12px 14px}.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid var(--accent);outline-offset:0}.field__error{color:var(--white);text-transform:none;letter-spacing:0;background:#8a1c3a;padding:4px 8px;font-weight:500}.estimate-form__foot{color:var(--lilac);flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;align-items:center;gap:16px;font-size:14px;display:flex}.estimate-form__done{background:var(--white);color:var(--ink);flex-direction:column;grid-column:1/-1;gap:8px;padding:24px;display:flex}.estimate-form__done strong{text-transform:uppercase;color:var(--sandley);font-size:22px;font-weight:800;font-stretch:125%}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.cta{background:var(--sandley);color:var(--white)}.cta .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:32px;padding-top:72px;padding-bottom:72px;display:flex}.cta__copy{flex-direction:column;gap:12px;display:flex}.cta .display{font-size:clamp(30px,3.6vw,48px)}.footer{background:var(--ink);color:var(--lilac)}.footer .wrap{flex-direction:column;gap:48px;padding-top:64px;padding-bottom:40px;display:flex}.footer__top{flex-wrap:wrap;justify-content:space-between;gap:40px;display:flex}.footer .brand,.footer .brand:hover,.footer .brand__mark{color:var(--white)}.footer .brand__sub{color:var(--lilac)}.footer__cols{flex:0 560px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:32px;font-size:15px;line-height:2;display:grid}.footer__col{flex-direction:column;display:flex}.footer__col span:first-child{font-family:var(--mono);letter-spacing:.1em;color:var(--accent);font-size:12px}.footer__col a,.footer__col span{color:var(--white);text-decoration:none}.footer__col a:hover{color:var(--lilac)}.footer__bottom{font-family:var(--mono);border-top:1px solid #d9cff533;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:24px;font-size:12px;display:flex}.callbar{display:none}.service-nav{background:var(--white);border-bottom:1px solid var(--line)}.service-nav .wrap{flex-wrap:wrap;gap:10px;padding-top:18px;padding-bottom:18px;display:flex}.service-list{flex-direction:column;padding-top:32px;padding-bottom:96px;display:flex}.service-block{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:48px;padding:64px 0;scroll-margin-top:24px;display:flex}.service-block:last-child{border-bottom:0}.service-block--flip{flex-flow:row-reverse wrap-reverse}.service-block__copy{flex-direction:column;flex:420px;gap:20px;min-width:0;display:flex}.service-block__num{font-family:var(--mono);color:var(--violet);text-transform:uppercase;font-size:14px}.service-block .photo{flex:480px;min-width:0;height:380px}.plus-list{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 24px;margin:0;padding:0;font-size:16px;list-style:none;display:grid}.plus-list li{gap:10px;display:flex}.plus-list li:before{content:"+";color:var(--violet);font-weight:800}.tags{flex-wrap:wrap;gap:8px;display:flex}.tag{font-family:var(--mono);background:var(--white);border:1px solid var(--line);color:var(--ink);text-transform:uppercase;padding:6px 10px;font-size:12px}.project-hero__inner{flex-direction:column;gap:24px;padding-top:56px;display:flex}.project-hero__meta{font-family:var(--mono);letter-spacing:.12em;color:var(--lilac);text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:13px;display:flex}.project-hero__meta a{color:var(--lilac)}.project-hero .display{font-size:clamp(40px,5.4vw,76px);line-height:.95}.project-hero .photo{height:520px;margin-top:16px;padding:20px}.project-body{flex-wrap:wrap;gap:64px;padding-top:80px;padding-bottom:80px;display:flex}.specs{flex-direction:column;flex:340px;gap:12px;min-width:0;display:flex}.specs dl{border-top:4px solid var(--sandley);margin:0}.spec{border-bottom:1px solid var(--line);grid-template-columns:minmax(110px,160px) 1fr;gap:16px;padding:14px 0;font-size:16px;display:grid}.spec dt{font-family:var(--mono);letter-spacing:.1em;color:var(--muted);text-transform:uppercase;padding-top:3px;font-size:12px}.spec dd{margin:0}.story{flex-direction:column;flex:999 560px;gap:40px;min-width:0;display:flex}.story__part{flex-direction:column;gap:14px;display:flex}.story__part p{color:var(--body);white-space:pre-line;margin:0;font-size:18px;line-height:1.65}.story__part:first-child p{color:var(--ink);font-size:22px;font-weight:500;line-height:1.5}.gallery{flex-direction:column;gap:32px;padding-top:80px;padding-bottom:80px;display:flex}.gallery h2{font-size:clamp(28px,3.2vw,40px)}.before-after{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:4px;display:grid}.before-after .photo{align-items:flex-start;height:420px}.before-after .photo--before{filter:grayscale()}.details{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.detail{flex-direction:column;gap:10px;display:flex}.detail .photo{height:200px}.detail span{font-family:var(--mono);color:var(--muted);text-transform:uppercase;font-size:12px}.pager{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding-top:64px;padding-bottom:64px;display:flex}.pager a{color:var(--ink);flex-direction:column;gap:6px;padding:8px 0;text-decoration:none;display:flex}.pager a:hover{color:var(--violet)}.pager a:last-child{text-align:right;margin-left:auto}.pager span:first-child{font-family:var(--mono);color:var(--muted);font-size:12px}.pager span:last-child{text-transform:uppercase;font-size:22px;font-weight:800;font-stretch:125%}.about-body{flex-wrap:wrap;gap:64px;padding-top:96px;padding-bottom:96px;display:flex}.about-body .story{flex:999 560px}.about-body .photo{flex:380px;min-height:420px}@media (width<=860px){.wrap{padding-left:20px;padding-right:20px}.topbar,.header .nav{display:none}.header .wrap{padding:10px 12px 10px 20px}.brand{gap:10px}.brand__mark{width:34px;height:34px}.brand__name{font-size:17px}.brand__sub{font-size:7.5px}.header__mobile{display:flex}.mobile-menu{background:var(--white);border-bottom:1px solid var(--line);flex-direction:column;display:flex}.mobile-menu[hidden]{display:none}.mobile-menu a{border-top:1px solid var(--line);min-height:56px;color:var(--ink);text-transform:uppercase;align-items:center;padding:0 20px;font-size:18px;font-weight:800;font-stretch:125%;text-decoration:none;display:flex}.mobile-menu a.is-active{color:var(--violet)}.hero__inner{gap:20px;padding-top:40px;padding-bottom:32px}.hero__copy{gap:20px}.hero__copy .lede{font-size:17px}.hero__caption{display:none}.hero .actions .btn{width:100%;min-height:52px}.hero .actions .btn--ghost{display:none}.page-hero__inner{padding-top:48px;padding-bottom:40px}.creds .wrap{padding:0}.creds__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cred,.cred:first-child{border-bottom:1px solid #d9cff540;border-right:1px solid #d9cff540;padding:18px 20px}.cred:nth-child(2n){border-right:0}.cred:nth-last-child(-n+2){border-bottom:0}.cred__value{font-size:26px}.cred__label{letter-spacing:.08em;font-size:10.5px}.section{gap:20px;padding-top:48px;padding-bottom:48px}.section-head p{display:none}.display--lg{font-size:30px}.service-grid{display:none}.service-rows{border-top:1px solid var(--line);margin:0 -20px;display:block}.service-row{border-bottom:1px solid var(--line);min-height:64px;color:var(--ink);background:var(--white);justify-content:space-between;align-items:center;gap:12px;padding:0 20px;text-decoration:none;display:flex}.service-row__name{text-transform:uppercase;align-items:baseline;gap:14px;font-size:18px;font-weight:800;font-stretch:125%;display:flex}.service-row__name span:first-child{font-family:var(--mono);color:var(--violet);font-size:12px;font-weight:400}.service-row--feature{background:var(--sandley);color:var(--white);border-bottom:0}.service-row--feature:hover{color:var(--white)}.job-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.job-grid__lead{grid-column:1/-1}.job-grid__lead .photo{height:240px!important}.job-grid__stack{display:contents}.job-grid__stack .photo{height:120px!important}.job-grid__stack .job-card__title{font-size:14px}.job-grid__stack .job-card__meta{display:none}.steps{border-top:0;border-left:4px solid var(--sandley);grid-template-columns:1fr;gap:22px;padding-left:24px}.step{gap:4px;padding:0}.step__num{font-size:12px}.step__title{font-size:18px}.step__text{font-size:15px}.quote .wrap{gap:20px;padding-top:48px;padding-bottom:48px}.estimate .wrap{gap:28px;padding-top:48px;padding-bottom:48px}.estimate__intro .display{font-size:34px}.estimate-form .btn{width:100%;min-height:52px}.footer .wrap{gap:28px;padding-top:32px;padding-bottom:32px}.footer{padding-bottom:84px}.callbar{z-index:30;padding:12px 12px calc(12px + env(safe-area-inset-bottom));background:var(--white);border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid;position:fixed;bottom:0;left:0;right:0}.callbar .btn{min-height:52px}.service-block{gap:28px;padding:48px 0}.service-block .photo{flex-basis:100%;height:240px}.project-hero .photo{height:300px}.project-body,.gallery,.about-body{gap:40px;padding-top:48px;padding-bottom:48px}.before-after .photo{height:260px}.pager a:last-child{text-align:left;margin-left:0}.cta .wrap{padding-top:48px;padding-bottom:48px}}
