:root{--f2-black:#090909;--f2-graphite:#171717;--f2-gold:#c8953e;--f2-gold-light:#e6b75b;--f2-silver:#b7b7b7;--f2-concrete:#f4f1ea;--f2-white:#fff;--shell:min(1240px,calc(100vw - 48px));--display:"Montserrat",sans-serif;--body:"Inter",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--f2-white);color:var(--f2-black);font-family:var(--body);font-size:16px;line-height:1.65}body.is-locked{overflow:hidden}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}.shell{width:var(--shell);margin-inline:auto}.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link:focus{position:fixed;z-index:1000}.eyebrow{margin:0 0 22px;color:var(--f2-gold-light);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.eyebrow--dark{color:#8e641f}.button{display:inline-flex;min-height:52px;align-items:center;justify-content:center;padding:13px 24px;border:1px solid var(--f2-gold);background:var(--f2-gold);color:var(--f2-black);font-weight:600;transition:.25s ease}.button:hover,.button:focus-visible{background:var(--f2-gold-light);border-color:var(--f2-gold-light);transform:translateY(-2px)}.button--small{min-height:42px;padding:9px 18px}.text-link{display:inline-flex;align-items:center;gap:12px;border-bottom:1px solid currentColor;font-size:.85rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.text-link span{color:var(--f2-gold)}.text-link--light{color:#fff}.section{padding:130px 0}.section-heading{max-width:760px;margin-bottom:68px}.section-heading h2,.commercial h2,.estimate h2{margin:0;font-family:var(--display);font-size:clamp(2.2rem,5vw,4.7rem);font-weight:600;letter-spacing:-.045em;line-height:1.02}.section-heading--split{display:flex;max-width:none;align-items:end;justify-content:space-between;gap:40px}.section-heading--light{color:#fff}
.site-header{position:fixed;z-index:50;top:0;left:0;display:flex;width:100%;height:92px;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1240px)/2));color:#fff;transition:.35s ease}.site-header.is-solid{height:76px;background:rgba(9,9,9,.96);box-shadow:0 1px rgba(255,255,255,.08)}.site-brand img{width:168px;max-height:58px;object-fit:contain}.site-nav{display:flex;align-items:center;gap:28px}.site-nav ul{display:flex;align-items:center;gap:25px;margin:0;padding:0;list-style:none}.site-nav a:not(.button){font-size:.78rem;font-weight:500;letter-spacing:.05em}.site-nav a:not(.button):hover,.site-nav .current-menu-item>a{color:var(--f2-gold-light)}.menu-toggle{display:none;border:0;background:transparent}.menu-toggle span:not(.screen-reader-text){display:block;width:26px;height:1px;margin:6px;background:#fff}
.hero{position:relative;display:flex;min-height:max(720px,100svh);align-items:center;overflow:hidden;background:#111 var(--hero-image) center/cover no-repeat;color:#fff}.hero__media{position:absolute;inset:0;overflow:hidden}.hero__media video,.hero__media iframe{width:100%;height:100%;border:0;object-fit:cover}.hero__media--embed iframe{position:absolute;top:50%;left:50%;width:max(100%,177.78vh);height:max(100%,56.25vw);transform:translate(-50%,-50%);pointer-events:none}.hero__overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,9,9,.91) 0%,rgba(9,9,9,.67) 42%,rgba(9,9,9,.14) 76%),linear-gradient(0deg,rgba(9,9,9,.5),transparent 46%)}.hero__content{position:relative;padding-top:84px}.hero h1{max-width:890px;margin:0;font-family:var(--display);font-size:clamp(3.2rem,8vw,7.4rem);font-weight:600;letter-spacing:-.058em;line-height:.93}.hero__lede{max-width:650px;margin:30px 0 38px;color:#e4e4e4;font-size:clamp(1.03rem,1.8vw,1.25rem)}.hero__actions{display:flex;align-items:center;gap:30px}.scroll-cue{position:absolute;right:max(24px,calc((100vw - 1240px)/2));bottom:34px;display:flex;align-items:center;gap:14px;color:#ddd;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}.scroll-cue i{display:block;width:1px;height:44px;background:linear-gradient(var(--f2-gold),transparent)}
.trust-strip{border-bottom:1px solid #dedbd3;background:var(--f2-concrete)}.trust-strip__inner{display:grid;grid-template-columns:repeat(4,1fr);padding-block:27px}.trust-strip span{padding:0 22px;border-left:1px solid #cfcbc1;text-align:center;font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.trust-strip span:first-child{border-left:0}
.services{background:var(--f2-concrete)}.service-list{display:grid;gap:110px}.service-row{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(290px,.65fr);align-items:center;gap:8vw}.service-row:nth-child(even){grid-template-columns:minmax(290px,.65fr) minmax(0,1.35fr)}.service-row:nth-child(even) .service-row__image{order:2}.service-row__image{position:relative;overflow:hidden}.service-row__image img{width:100%;aspect-ratio:1.35/1;object-fit:cover;transition:transform .7s ease}.service-row:hover img{transform:scale(1.025)}.service-row__image>span{position:absolute;right:0;bottom:0;padding:10px 16px;background:var(--f2-black);color:var(--f2-gold-light);font-family:var(--display)}.service-row__copy h3{margin:0 0 22px;font-family:var(--display);font-size:clamp(1.8rem,3vw,3.1rem);font-weight:600;letter-spacing:-.035em;line-height:1.08}.service-row__copy .prose{color:#4b4b48}.service-row__copy .text-link{margin-top:20px}
.projects{background:#fff}.filters{display:flex;flex-wrap:wrap;gap:20px}.filters button{padding:4px 0;border:0;border-bottom:1px solid transparent;background:none;color:#777;font-size:.76rem;text-transform:uppercase}.filters button.is-active{border-color:var(--f2-gold);color:var(--f2-black)}.project-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:24px}.project-card{min-height:380px}.project-card:nth-child(4n+1){grid-row:span 2;min-height:760px}.project-card a{position:relative;display:block;width:100%;height:100%;overflow:hidden;background:#222}.project-card img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}.project-card:hover img{transform:scale(1.03)}.project-card__overlay{position:absolute;inset:auto 0 0;padding:60px 28px 26px;background:linear-gradient(transparent,rgba(9,9,9,.88));color:#fff}.project-card__overlay small,.project-card__overlay strong,.project-card__overlay>span{display:block}.project-card__overlay small{color:var(--f2-gold-light);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase}.project-card__overlay strong{margin:5px 0;font-family:var(--display);font-size:1.5rem}.project-card__overlay>span{color:#d1d1d1;font-size:.84rem}
.why{background:var(--f2-black);color:#fff}.why-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #3a3a3a}.why-grid article{padding:38px 26px 12px;border-left:1px solid #3a3a3a}.why-grid article:first-child{border-left:0}.why-grid article>span{color:var(--f2-gold);font-size:.75rem}.why-grid h3{min-height:66px;margin:28px 0 18px;font-family:var(--display);font-size:1.32rem;line-height:1.2}.why-grid p{margin:0;color:#aaa;font-size:.91rem}
.process{background:var(--f2-concrete)}.process-list{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin:0;padding:0;list-style:none}.process-list:before{position:absolute;top:20px;right:0;left:0;height:1px;background:#c8c3b8;content:""}.process-list li{position:relative;padding:0 24px 0 0}.process-list li>span{position:relative;z-index:1;display:grid;width:40px;height:40px;place-items:center;border:1px solid var(--f2-gold);border-radius:50%;background:var(--f2-concrete);color:#7e5719;font-size:.7rem}.process-list h3{margin:32px 0 12px;font-family:var(--display);font-size:1.1rem}.process-list p{margin:0;color:#555;font-size:.87rem}
.commercial{display:grid;grid-template-columns:1.15fr .85fr;min-height:720px;background:var(--f2-graphite);color:#fff}.commercial__image img{width:100%;height:100%;object-fit:cover}.commercial__copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:9vw}.commercial__copy h2{font-size:clamp(2.4rem,4.8vw,5rem)}.commercial__copy>p:not(.eyebrow){margin:30px 0 36px;color:#bbb}
.testimonials{background:#fff}.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.testimonial-grid blockquote{margin:0;padding:32px;border-top:2px solid var(--f2-gold);background:var(--f2-concrete)}.testimonial-grid blockquote>div{font-family:var(--display);font-size:1.08rem}.testimonial-grid footer{display:flex;flex-direction:column;margin-top:28px}.testimonial-grid footer span{color:#777;font-size:.76rem}.areas{background:#fff}.area-list{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #d9d6cf}.area-list article{padding:28px 24px 22px 0;border-bottom:1px solid #d9d6cf}.area-list h3{margin:0 0 8px;font-family:var(--display);font-size:1.25rem}.area-list p{margin:0;color:#666}
.estimate{padding:130px 0;background:var(--f2-black);color:#fff}.estimate__layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw}.estimate__intro>p:not(.eyebrow){color:#aaa}.estimate__contact{display:flex;flex-direction:column;margin-top:40px}.estimate__contact a{color:var(--f2-gold-light)}.estimate-form{display:grid;grid-template-columns:1fr 1fr;gap:24px}.estimate-form label{display:flex;flex-direction:column;gap:7px}.estimate-form label>span{color:#bdbdbd;font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.estimate-form input,.estimate-form textarea,.estimate-form select{width:100%;padding:13px 0;border:0;border-bottom:1px solid #555;border-radius:0;outline:0;background:transparent;color:#fff}.estimate-form select option{color:#111}.estimate-form input:focus,.estimate-form textarea:focus,.estimate-form select:focus{border-color:var(--f2-gold)}.estimate-form .wide{grid-column:1/-1}.estimate-form .consent{display:grid;grid-template-columns:22px 1fr;align-items:start}.estimate-form .consent input{margin-top:5px}.hp{position:absolute;left:-10000px}
.site-footer{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:60px;padding:80px max(24px,calc((100vw - 1240px)/2)) 30px;border-top:1px solid #2b2b2b;background:var(--f2-black);color:#aaa}.site-footer__brand img{width:180px}.site-footer__brand p{max-width:360px}.site-footer ul{margin:0;padding:0;list-style:none}.site-footer nav a,.site-footer address a,.site-footer address span{display:block;margin-bottom:8px}.site-footer address{font-style:normal}.site-footer__social{margin-top:18px}.site-footer a:hover{color:var(--f2-gold-light)}.site-footer__legal{grid-column:1/-1;display:flex;justify-content:space-between;padding-top:25px;border-top:1px solid #2b2b2b;font-size:.74rem}.basic-page{min-height:70vh;padding-block:160px 100px}.basic-page h1{font-family:var(--display);font-size:clamp(2.5rem,6vw,5rem)}.project-detail__hero{position:relative;min-height:72svh;background:#111;color:#fff}.project-detail__hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.project-detail__hero:after{position:absolute;inset:0;background:linear-gradient(0deg,rgba(9,9,9,.85),rgba(9,9,9,.06));content:""}.project-detail__overlay{position:absolute;z-index:1;right:0;bottom:70px;left:0}.project-detail__overlay h1{max-width:900px;margin:0;font-family:var(--display);font-size:clamp(3rem,8vw,7rem);line-height:.95}.project-detail__content{padding-block:90px;font-size:1.08rem}.project-detail__gallery{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-bottom:100px}.project-detail__gallery img{width:100%;height:100%;min-height:420px;object-fit:cover}.project-detail__videos{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-bottom:100px}.project-detail__videos iframe,.project-detail__videos video{width:100%;min-height:420px;background:#000}.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s ease}.reveal.is-visible{opacity:1;transform:none}
.f2-intro{position:fixed;z-index:100;inset:0;display:grid;place-items:center;overflow:hidden;background:rgba(9,9,9,.96);opacity:.84;isolation:isolate;transition:opacity .7s cubic-bezier(.65,0,.35,1),visibility .7s ease;animation:f2-intro-background .15s ease-out forwards}.f2-intro:before{position:absolute;z-index:-2;inset:-20%;background:radial-gradient(circle at 50% 44%,rgba(200,149,62,.065),transparent 34%),radial-gradient(circle at 42% 58%,rgba(255,255,255,.025),transparent 30%),#090909;content:""}.f2-intro__grain{position:absolute;z-index:-1;inset:-40%;opacity:.065;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.34'/%3E%3C/svg%3E");animation:f2-grain 6s linear infinite}.f2-intro.is-exiting,.f2-intro.is-skipped{opacity:0}.f2-intro.is-done{opacity:0;visibility:hidden;pointer-events:none}.f2-intro__mark{position:relative;width:min(52vw,560px);aspect-ratio:960/880;transform-origin:50% 48%;will-change:transform}.f2-intro__svg{display:block;width:100%;height:100%;overflow:visible}.f2-draw{fill:none;stroke:#c5c7c9;stroke-dasharray:1;stroke-dashoffset:1;stroke-linecap:round;stroke-linejoin:round;path-length:1;vector-effect:non-scaling-stroke}.f2-draw--base-left,.f2-draw--base-right{stroke-width:2.6}.f2-draw--f-vertical,.f2-draw--f-top,.f2-draw--f-middle{stroke-width:2.2}.f2-draw--two{stroke:#d69a3d;stroke-width:2.4}.f2-draw--roof-left,.f2-draw--roof-right{stroke-width:2.2}.f2-intro__base-light{fill:none;stroke:#f6d18d;stroke-width:4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:0;filter:url(#f2-soft-glow);path-length:1}.f2-intro__windows rect{fill:#d69a3d;opacity:0;transform-box:fill-box;transform-origin:center;filter:url(#f2-soft-glow)}.f2-intro__metal{opacity:0}.f2-intro__sweep{opacity:0;mix-blend-mode:screen}.f2-intro__building text{opacity:0;transform:translateY(9px);transform-box:fill-box;transform-origin:center;filter:url(#f2-letter-blur)}.f2-intro__group text{opacity:0;transform:translateY(5px)}.f2-intro__group-line{fill:none;stroke-width:2.2;stroke-dasharray:1;stroke-dashoffset:1;path-length:1}.f2-intro__descriptor{opacity:0;letter-spacing:18px}.f2-intro__skip{position:absolute;right:clamp(16px,3vw,34px);bottom:clamp(15px,3vw,30px);padding:7px 3px;border:0;border-bottom:1px solid rgba(255,255,255,.25);background:none;color:rgba(255,255,255,.55);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;transition:color .2s,border-color .2s}.f2-intro__skip:hover,.f2-intro__skip:focus-visible{border-color:var(--f2-gold);color:#fff}.f2-intro__skip:focus-visible{outline:2px solid var(--f2-gold);outline-offset:5px}
.f2-intro.is-playing .f2-draw--base-left,.f2-intro.is-playing .f2-draw--base-right{animation:f2-draw .5s .15s cubic-bezier(.22,1,.36,1) forwards}.f2-intro.is-playing .f2-intro__base-light{animation:f2-draw .5s .15s cubic-bezier(.22,1,.36,1) forwards,f2-base-light .65s .15s ease-out forwards}.f2-intro.is-playing .f2-draw--f-vertical{animation:f2-draw .7s .45s cubic-bezier(.22,1,.36,1) forwards}.f2-intro.is-playing .f2-draw--f-top{animation:f2-draw .58s .57s cubic-bezier(.22,1,.36,1) forwards}.f2-intro.is-playing .f2-draw--f-middle{animation:f2-draw .5s .76s cubic-bezier(.22,1,.36,1) forwards}.f2-intro.is-playing .f2-draw--two{animation:f2-draw .9s .45s cubic-bezier(.22,1,.36,1) forwards}.f2-intro.is-playing .f2-draw--roof-left{animation:f2-draw .72s 1.15s cubic-bezier(.65,0,.35,1) forwards}.f2-intro.is-playing .f2-draw--roof-right{animation:f2-draw .72s 1.18s cubic-bezier(.65,0,.35,1) forwards}.f2-intro.is-playing .f2-intro__windows rect:nth-child(1){animation:f2-window .25s 1.46s ease-out forwards}.f2-intro.is-playing .f2-intro__windows rect:nth-child(2){animation:f2-window .25s 1.57s ease-out forwards}.f2-intro.is-playing .f2-intro__windows rect:nth-child(3){animation:f2-window .25s 1.68s ease-out forwards}.f2-intro.is-playing .f2-intro__windows rect:nth-child(4){animation:f2-window .25s 1.79s ease-out forwards}.f2-intro.is-playing .f2-intro__metal{animation:f2-metal .6s 1.65s cubic-bezier(.22,1,.36,1) forwards}.f2-intro.is-playing .f2-intro__sweep{animation:f2-sweep .6s 1.72s cubic-bezier(.65,0,.35,1) forwards}.f2-intro.is-playing .f2-intro__building text{animation:f2-letter .46s cubic-bezier(.22,1,.36,1) forwards}.f2-intro.is-playing .f2-intro__building text:nth-child(1){animation-delay:2.10s}.f2-intro.is-playing .f2-intro__building text:nth-child(2){animation-delay:2.19s}.f2-intro.is-playing .f2-intro__building text:nth-child(3){animation-delay:2.28s}.f2-intro.is-playing .f2-intro__building text:nth-child(4){animation-delay:2.37s}.f2-intro.is-playing .f2-intro__building text:nth-child(5){animation-delay:2.46s}.f2-intro.is-playing .f2-intro__building text:nth-child(6){animation-delay:2.55s}.f2-intro.is-playing .f2-intro__building text:nth-child(7){animation-delay:2.64s}.f2-intro.is-playing .f2-intro__building text:nth-child(8){animation-delay:2.73s}.f2-intro.is-playing .f2-intro__group text{animation:f2-group .45s 2.65s cubic-bezier(.22,1,.36,1) forwards}.f2-intro.is-playing .f2-intro__group-line{animation:f2-draw .5s 2.7s cubic-bezier(.22,1,.36,1) forwards}.f2-intro.is-playing .f2-intro__descriptor{animation:f2-descriptor .45s 3s cubic-bezier(.22,1,.36,1) forwards}.f2-intro.is-playing .f2-intro__mark{animation:f2-breathe .55s 3.45s cubic-bezier(.65,0,.35,1) forwards}
.f2-intro.is-reduced{opacity:1}.f2-intro.is-reduced .f2-draw{stroke-dashoffset:0}.f2-intro.is-reduced .f2-intro__metal,.f2-intro.is-reduced .f2-intro__building text,.f2-intro.is-reduced .f2-intro__group text,.f2-intro.is-reduced .f2-intro__descriptor,.f2-intro.is-reduced .f2-intro__windows rect{opacity:1;transform:none;filter:none;letter-spacing:9px}.f2-intro.is-reduced .f2-intro__group-line{stroke-dashoffset:0}
@keyframes f2-intro-background{to{opacity:1}}@keyframes f2-grain{0%,100%{transform:translate3d(0,0,0)}25%{transform:translate3d(2%,-1%,0)}50%{transform:translate3d(-1%,2%,0)}75%{transform:translate3d(1%,1%,0)}}@keyframes f2-draw{to{stroke-dashoffset:0}}@keyframes f2-base-light{0%{opacity:0}30%{opacity:.9}100%{opacity:.2}}@keyframes f2-window{0%{opacity:0;transform:scale(.7)}55%{opacity:1}100%{opacity:1;transform:scale(1)}}@keyframes f2-metal{from{opacity:0}to{opacity:1}}@keyframes f2-sweep{0%{opacity:0;transform:translateX(0)}18%{opacity:.6}100%{opacity:0;transform:translateX(1920px)}}@keyframes f2-letter{0%{opacity:0;transform:translateY(9px);filter:url(#f2-letter-blur)}100%{opacity:1;transform:translateY(0);filter:none}}@keyframes f2-group{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes f2-descriptor{from{opacity:0;letter-spacing:18px}to{opacity:1;letter-spacing:9px}}@keyframes f2-breathe{0%{transform:scale(1)}55%{transform:scale(1.018)}100%{transform:scale(1.035)}}
@media(max-width:980px){:root{--shell:min(100% - 36px,760px)}.section{padding:90px 0}.site-header{height:76px;padding-inline:20px}.site-brand img{width:142px}.menu-toggle{display:block}.site-nav{position:absolute;top:76px;right:0;left:0;display:none;align-items:stretch;padding:28px 20px;background:var(--f2-black)}.site-nav.is-open{display:flex}.site-nav,.site-nav ul{flex-direction:column}.site-nav ul{align-items:stretch;gap:0}.site-nav li a{display:block;padding:11px 0}.hero__overlay{background:linear-gradient(90deg,rgba(9,9,9,.88),rgba(9,9,9,.42)),linear-gradient(0deg,rgba(9,9,9,.64),transparent)}.trust-strip__inner{grid-template-columns:1fr 1fr;gap:0}.trust-strip span{padding:14px;border-bottom:1px solid #cfcbc1}.service-row,.service-row:nth-child(even){grid-template-columns:1fr;gap:32px}.service-row:nth-child(even) .service-row__image{order:0}.project-grid{grid-template-columns:1fr 1fr}.project-card,.project-card:nth-child(4n+1){grid-row:auto;min-height:420px}.why-grid{grid-template-columns:1fr 1fr}.why-grid article:nth-child(3){border-left:0}.process-list{grid-template-columns:1fr}.process-list:before{top:0;bottom:0;left:20px;width:1px;height:auto}.process-list li{display:grid;grid-template-columns:40px 1fr;column-gap:24px;padding:0 0 30px}.process-list h3{margin:7px 0}.process-list p{grid-column:2}.commercial{grid-template-columns:1fr}.commercial__image{height:56vw;min-height:420px}.commercial__copy{padding:80px max(24px,calc((100vw - 760px)/2))}.estimate__layout{grid-template-columns:1fr}.site-footer{grid-template-columns:1fr 1fr}}
@media(max-width:640px){:root{--shell:calc(100% - 32px)}.section{padding:72px 0}.section-heading{margin-bottom:42px}.section-heading--split{display:block}.filters{margin-top:24px}.hero{min-height:680px;background-position:62% center}.hero__content{padding-top:50px}.hero h1{font-size:clamp(3rem,14vw,4.4rem)}.hero__actions{align-items:flex-start;flex-direction:column}.scroll-cue{display:none}.trust-strip__inner{grid-template-columns:1fr}.trust-strip span{border-left:0}.service-list{gap:70px}.project-grid,.why-grid,.testimonial-grid,.area-list{grid-template-columns:1fr}.project-card,.project-card:nth-child(4n+1){min-height:440px}.why-grid article{border-left:0;border-bottom:1px solid #3a3a3a}.why-grid h3{min-height:auto}.commercial__image{height:72vw;min-height:320px}.commercial__copy{padding:64px 20px}.estimate{padding:80px 0}.estimate-form{grid-template-columns:1fr}.estimate-form label{grid-column:1}.site-footer{grid-template-columns:1fr;gap:34px}.site-footer__legal{grid-column:1;gap:20px;align-items:flex-start;flex-direction:column}.project-detail__gallery,.project-detail__videos{grid-template-columns:1fr}.f2-intro__mark{width:78vw}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
@media(max-width:640px){.f2-intro__mark{width:min(82vw,420px)}}
.f2-intro__mark{aspect-ratio:640/750}
.f2-intro__ignition{fill:#f4c66e;opacity:0;filter:url(#f2-soft-glow)}
.f2-intro__group-line{stroke:#c8953e}
.f2-intro{background:transparent;opacity:1;animation:none}
.f2-intro:before{opacity:.78;animation:f2-intro-surface .15s ease-out forwards}
.f2-intro.is-exiting,.f2-intro.is-skipped,.f2-intro.is-done{animation:none}
.f2-intro.is-skipped{transition-duration:.25s}
.f2-intro.is-playing .f2-intro__ignition{animation:f2-ignition .3s .02s ease-out forwards}
@keyframes f2-intro-surface{to{opacity:1}}
@keyframes f2-ignition{0%{opacity:0;transform:scale(.45);transform-origin:center}45%{opacity:1}100%{opacity:.15;transform:scale(3.5);transform-origin:center}}

/* Hero carousel v0.3 */
.hero{background:#111;color:#fff}
.hero-carousel{position:absolute;inset:0;overflow:hidden;background:#111}
.hero-carousel__layer,.hero-carousel__layer picture{position:absolute;inset:0;display:block}
.hero-carousel__layer{opacity:0;transition:opacity 1.4s cubic-bezier(.65,0,.35,1);will-change:opacity}
.hero-carousel__layer.is-active{opacity:1}
.hero-carousel__asset{width:100%;height:100%;object-fit:cover;transform:scale(1.035);will-change:transform}
.hero-carousel__layer.is-active .hero-carousel__asset{animation:f2-hero-camera 6.9s linear forwards}
.hero__content,.site-header,.hero-carousel__controls{transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1)}
body.is-locked .hero__content,body.is-locked .site-header,body.is-locked .hero-carousel__controls{opacity:0;transform:translateY(10px)}
body.is-locked.is-intro-exiting .hero__content,body.is-locked.is-intro-exiting .site-header,body.is-locked.is-intro-exiting .hero-carousel__controls{opacity:1;transform:translateY(0)}
.hero-carousel__controls{position:absolute;z-index:3;right:max(24px,calc((100vw - 1240px)/2));bottom:104px;display:flex;align-items:center;gap:11px;color:rgba(255,255,255,.72);font-size:.66rem;letter-spacing:.11em;text-transform:uppercase}
.hero-carousel__controls[hidden]{display:none}
.hero-carousel__controls button{display:grid;width:26px;height:26px;place-items:center;padding:0;border:0;background:transparent;color:rgba(255,255,255,.7);font-size:.78rem;transition:color .2s,transform .2s}
.hero-carousel__controls button:hover,.hero-carousel__controls button:focus-visible{color:#fff;transform:scale(1.08)}
.hero-carousel__controls button:focus-visible{outline:1px solid var(--f2-gold);outline-offset:2px}
.hero-carousel__count{min-width:49px;color:#fff;font-variant-numeric:tabular-nums}
.hero-carousel__progress{position:relative;display:block;width:126px;height:1px;overflow:hidden;background:rgba(255,255,255,.24)}
.hero-carousel__progress i{position:absolute;inset:0;background:linear-gradient(90deg,var(--f2-gold),var(--f2-gold-light));transform:scaleX(var(--f2-progress,0));transform-origin:left center;will-change:transform}
@keyframes f2-hero-camera{from{transform:scale(1)}to{transform:scale(1.035)}}

/* Intro timing iteration v0.3 */
.f2-intro{background:#090909}
.f2-intro:before{opacity:1;animation:none}
.f2-intro__mark{width:min(36vw,440px);transition:opacity .65s cubic-bezier(.65,0,.35,1),transform .65s cubic-bezier(.65,0,.35,1)}
.f2-intro.is-playing .f2-draw--base-left,.f2-intro.is-playing .f2-draw--base-right{animation:f2-draw .6s .2s cubic-bezier(.22,1,.36,1) forwards}
.f2-intro.is-playing .f2-intro__base-light{animation:f2-draw .6s .2s cubic-bezier(.22,1,.36,1) forwards,f2-base-light .7s .2s ease-out forwards}
.f2-intro.is-playing .f2-draw--f-vertical{animation:f2-draw 1.05s .55s cubic-bezier(.22,1,.36,1) forwards}
.f2-intro.is-playing .f2-draw--f-top{animation:f2-draw .9s .7s cubic-bezier(.22,1,.36,1) forwards}
.f2-intro.is-playing .f2-draw--f-middle{animation:f2-draw .72s .95s cubic-bezier(.22,1,.36,1) forwards}
.f2-intro.is-playing .f2-draw--two{animation:f2-draw 1.2s .55s cubic-bezier(.22,1,.36,1) forwards}
.f2-intro.is-playing .f2-draw--roof-left{animation:f2-draw .75s 1.35s cubic-bezier(.65,0,.35,1) forwards}
.f2-intro.is-playing .f2-draw--roof-right{animation:f2-draw .72s 1.38s cubic-bezier(.65,0,.35,1) forwards}
.f2-intro.is-playing .f2-intro__windows rect:nth-child(1){animation:f2-window .25s 1.55s ease-out forwards}
.f2-intro.is-playing .f2-intro__windows rect:nth-child(2){animation:f2-window .25s 1.66s ease-out forwards}
.f2-intro.is-playing .f2-intro__windows rect:nth-child(3){animation:f2-window .25s 1.77s ease-out forwards}
.f2-intro.is-playing .f2-intro__windows rect:nth-child(4){animation:f2-window .25s 1.88s ease-out forwards}
.f2-intro.is-playing .f2-intro__metal{animation:f2-metal .55s 1.9s cubic-bezier(.22,1,.36,1) forwards}
.f2-intro.is-playing .f2-intro__sweep{animation:f2-sweep .5s 1.95s cubic-bezier(.65,0,.35,1) forwards}
.f2-intro.is-playing .f2-intro__building text{animation:f2-letter .36s cubic-bezier(.22,1,.36,1) forwards}
.f2-intro.is-playing .f2-intro__building text:nth-child(1){animation-delay:2.30s}.f2-intro.is-playing .f2-intro__building text:nth-child(2){animation-delay:2.355s}.f2-intro.is-playing .f2-intro__building text:nth-child(3){animation-delay:2.41s}.f2-intro.is-playing .f2-intro__building text:nth-child(4){animation-delay:2.465s}.f2-intro.is-playing .f2-intro__building text:nth-child(5){animation-delay:2.52s}.f2-intro.is-playing .f2-intro__building text:nth-child(6){animation-delay:2.575s}.f2-intro.is-playing .f2-intro__building text:nth-child(7){animation-delay:2.63s}.f2-intro.is-playing .f2-intro__building text:nth-child(8){animation-delay:2.685s}
.f2-intro.is-playing .f2-intro__group text{animation:f2-group .35s 2.85s cubic-bezier(.22,1,.36,1) forwards}
.f2-intro.is-playing .f2-intro__group-line{animation:f2-draw .45s 2.85s cubic-bezier(.22,1,.36,1) forwards}
.f2-intro.is-playing .f2-intro__descriptor{animation:f2-descriptor .35s 3.2s cubic-bezier(.22,1,.36,1) forwards}
.f2-intro.is-playing .f2-intro__mark{animation:f2-breathe .35s 3.55s cubic-bezier(.65,0,.35,1) forwards}
.f2-intro.is-exiting .f2-intro__mark{animation:f2-exit-mark .65s cubic-bezier(.65,0,.35,1) forwards}
@keyframes f2-exit-mark{from{opacity:1;transform:scale(1.015)}to{opacity:0;transform:scale(.97)}}

@media(max-width:768px){.f2-intro__mark{width:min(78vw,350px)}.hero-carousel__controls{right:18px;bottom:76px}.hero-carousel__progress{width:82px}.hero-carousel__controls{gap:7px}.hero-carousel__controls button{width:24px;height:24px}}
@media(prefers-reduced-motion:reduce){.hero-carousel__asset,.hero-carousel__layer.is-active .hero-carousel__asset{animation:none;transform:scale(1)}.hero-carousel__layer{transition-duration:.01ms}}

/* Motion direction v0.4: one requestAnimationFrame timeline */
.f2-intro.is-playing .f2-intro__ignition,
.f2-intro.is-playing .f2-draw,
.f2-intro.is-playing .f2-intro__base-light,
.f2-intro.is-playing .f2-intro__windows rect,
.f2-intro.is-playing .f2-intro__metal,
.f2-intro.is-playing .f2-intro__sweep,
.f2-intro.is-playing .f2-intro__building text,
.f2-intro.is-playing .f2-intro__group text,
.f2-intro.is-playing .f2-intro__group-line,
.f2-intro.is-playing .f2-intro__descriptor,
.f2-intro.is-playing .f2-intro__mark{animation:none!important}
.f2-intro,.f2-intro__mark{transition:none}
.f2-intro__metal-reveal{transform:scaleX(0);transform-box:fill-box;transform-origin:left center}
.f2-intro.is-playing .f2-intro__grain{animation:f2-grain-smooth 7s linear infinite!important}
.hero{transform-origin:center;will-change:opacity,transform}
@keyframes f2-grain-smooth{0%{transform:translate3d(-1%,-1%,0) rotate(.01deg)}50%{transform:translate3d(1%,1%,0) rotate(.01deg)}100%{transform:translate3d(-1%,-1%,0) rotate(.01deg)}}

/* Mobile performance path v0.4.2 */
.f2-intro.is-mobile-motion .f2-intro__grain,
.f2-intro.is-mobile-motion .f2-intro__sweep,
.f2-intro.is-mobile-motion .f2-intro__ignition,
.f2-intro.is-mobile-motion .f2-intro__base-light{display:none!important;animation:none!important}
.f2-intro.is-mobile-motion .f2-intro__windows rect,
.f2-intro.is-mobile-motion .f2-intro__building text,
.f2-intro.is-mobile-motion .f2-intro__metal,
.f2-intro.is-mobile-motion .f2-draw{filter:none!important;mix-blend-mode:normal!important}
.f2-intro.is-mobile-motion .f2-intro__building text{transform:translate3d(0,6px,0)}
.f2-intro.is-mobile-motion .f2-intro__group text{transform:translate3d(0,4px,0)}
.f2-intro.is-mobile-motion .f2-intro__windows{transform-box:fill-box;transform-origin:center;will-change:opacity,transform}
.f2-intro.is-mobile-motion .f2-intro__metal-reveal{transform:scaleX(1)}
.f2-intro.is-simplified-motion .f2-intro__grain,
.f2-intro.is-simplified-motion .f2-intro__sweep{display:none!important}
@media(max-width:768px){
  .f2-intro__grain,.f2-intro__sweep,.f2-intro__ignition,.f2-intro__base-light{display:none!important;animation:none!important}
  .f2-intro__windows rect,.f2-intro__building text,.f2-intro__metal,.f2-draw{filter:none!important;mix-blend-mode:normal!important}
}
