@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{--bg:#050908;--ink:#f0f2ed;--accent:#cdfd75;--muted:#94a299;--line:#ffffff24}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--ink);font:16px 'DM Sans',sans-serif;overflow-x:clip}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}img{width:100%;height:100%;object-fit:cover;display:block}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Manrope,sans-serif;font-weight:500}em{font-style:normal;color:var(--accent)}.skip{position:fixed;z-index:100;top:10px;left:10px;padding:15px;background:var(--accent);color:var(--bg);transform:translateY(-200%)}.skip:focus{transform:none}header{position:fixed;inset:0 0 auto;height:90px;z-index:30;display:flex;align-items:center;gap:35px;padding:0 4%;border-bottom:1px solid transparent;transition:background .3s,border .3s}header.scrolled{background:#050908d9;backdrop-filter:blur(18px);border-color:var(--line)}.wordmark{font-size:34px;font-weight:600;letter-spacing:-2px;line-height:.85;margin-right:auto}.wordmark>span{font-size:11px;vertical-align:top;letter-spacing:0;margin-left:4px}.wordmark small{display:block;font-size:8px;letter-spacing:2.1px;line-height:1.6;font-weight:400;margin-top:9px}nav{display:flex;gap:30px;font-size:14px}nav a{color:#c7ccc7}nav a:hover{color:var(--accent)}.nav-contact{border:1px solid #ffffff38;border-radius:30px;padding:14px 20px;font-size:13px;display:flex;gap:30px;align-items:center}.nav-contact:hover{background:var(--accent);color:var(--bg)}.menu{display:none}.eyebrow{font-size:11px;letter-spacing:2.4px;line-height:1.7;font-weight:500}.hero{height:150svh;position:relative}.hero-stage{height:100svh;min-height:650px;position:sticky;top:0;overflow:hidden}.ambient{position:absolute;inset:0;background:radial-gradient(ellipse at 72% 50%,#18554470,transparent 48%),#050908}#light-field{position:absolute;inset:0;width:100%;height:100%;display:block}.grain{position:absolute;inset:0;pointer-events:none;opacity:.12;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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='white' filter='url(%23n)' opacity='.25' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.hero-top{position:absolute;top:125px;left:4%;right:4%;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px;color:#96a498}.hero-copy{position:absolute;left:9%;top:24%;z-index:2}.hero-copy .eyebrow{color:var(--accent);margin-bottom:28px}h1{font-size:clamp(80px,9.2vw,154px);letter-spacing:-.075em;line-height:.96}h1>span{display:block}h1 em{color:#f0f2ed;font-weight:400}.hero-description{font-size:16px;line-height:1.8;color:#b1beb4;margin:30px 0}.pill{display:inline-flex;gap:32px;align-items:center;background:var(--accent);color:#102012;padding:16px 23px;border-radius:30px;font-size:14px;font-weight:500}.pill>span{font-size:20px}.hero-caption{position:absolute;right:7%;bottom:20%;text-align:right;font-size:10px;letter-spacing:1.5px;color:#a6b7a6}.hero-caption p{color:#e8eee6;font-size:14px;letter-spacing:0;margin-top:12px}.hero-bottom{position:absolute;bottom:36px;left:4%;right:4%;display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1.5px;color:#8c9a90}.scroll-cue{display:flex;align-items:center;gap:15px}.scroll-cue i{height:33px;width:1px;background:var(--accent);transform-origin:top;animation:scrollLine 2s ease-in-out infinite}.hero-copy .intro{animation:rise 1.2s both}.hero-copy h1 span:first-child{animation-delay:.1s}.hero-copy h1 span:last-child{animation-delay:.22s}.hero-description.intro{animation-delay:.4s}.pill.intro{animation-delay:.55s}.vision{height:270svh;position:relative}.vision-stage{position:sticky;top:0;height:100svh;min-height:600px;overflow:hidden;background:var(--bg)}.vision-image{position:absolute;inset:0;clip-path:inset(23% 31% round 200px);will-change:clip-path}.vision-image img{transform:scale(1.15);will-change:transform}.scene-shade{position:absolute;inset:0;background:linear-gradient(0deg,#06130fd6,transparent 80%)}.vision-intro{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;pointer-events:none}.vision-intro .eyebrow{color:var(--accent);margin-bottom:25px}.vision-intro h2{font-size:clamp(42px,6.5vw,105px);letter-spacing:-.065em;line-height:1.12;text-shadow:0 3px 50px #000a}.vision-outro{position:absolute;left:9%;bottom:18%;opacity:0;transform:translateY(35px)}.vision-outro .eyebrow{margin-bottom:25px}.vision-outro h2{font-size:clamp(46px,6.8vw,108px);line-height:1.06;letter-spacing:-.06em}.vision-outro>p:last-child{line-height:1.8;color:#d3e0d7;margin-top:30px;font-size:16px}.vision-line{position:absolute;bottom:50px;left:5%;right:5%;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px}.statement{padding:140px 9% 150px;background:#eff2e9;color:#0d1812}.statement>.eyebrow{color:#507042;margin-bottom:50px}.word-reveal{font-size:clamp(38px,5.4vw,86px);letter-spacing:-.055em;line-height:1.22;max-width:1200px}.word-reveal span{transition:color .15s;color:#c0c8ba}.word-reveal span.lit{color:#102018}.statement-bottom{display:flex;align-items:center;justify-content:space-between;gap:35px;margin-top:80px}.asterisk{font-size:90px;font-weight:400;line-height:1;color:#346230}.statement-bottom p{font-size:16px;line-height:1.85;color:#55614e}.line-link{display:flex;gap:45px;align-items:center;font-size:14px;padding-bottom:13px;border-bottom:1px solid #899c80}.line-link span{font-size:23px}.showcase{height:340svh;position:relative}.showcase-stage{height:100svh;min-height:730px;position:sticky;top:0;padding:120px 0 25px;overflow:hidden}.showcase-heading{display:flex;justify-content:space-between;align-items:flex-end;padding:0 5%;gap:25px;margin-bottom:30px}.showcase-heading .eyebrow{color:var(--muted);margin-bottom:15px}.showcase-heading h2{font-size:clamp(30px,3.5vw,58px);letter-spacing:-.05em;line-height:1.1}.gallery-controls{display:flex;align-items:center;gap:20px;font-size:12px;letter-spacing:1px}.gallery-controls button{width:42px;height:42px;border:1px solid var(--line);background:transparent;border-radius:50%;font-size:19px}.gallery-controls button:hover{background:var(--accent);color:var(--bg)}.gallery-controls button:disabled{opacity:.3;cursor:default}.gallery-window{overflow:hidden;padding-left:5%}.gallery-track{display:flex;gap:25px;will-change:transform}.project{flex:0 0 72vw;height:clamp(350px,53svh,640px);position:relative;overflow:hidden;background:#1a231c}.project>img{transform:scale(1.02);transition:transform 1.2s}.project:hover>img{transform:scale(1.07)}.project-shade{position:absolute;inset:0;background:linear-gradient(0deg,#021109e6,transparent 80%)}.project-index{position:absolute;top:30px;left:35px;letter-spacing:2px;font-size:10px}.project-copy{position:absolute;bottom:35px;left:35px;right:115px}.project-copy h3{font-size:clamp(30px,3.9vw,64px);letter-spacing:-.05em;line-height:1.1}.project-copy p{font-size:14px;color:#d2dace;margin-top:17px}.project-link{position:absolute;right:35px;bottom:35px;border:1px solid #ffffff55;width:58px;height:58px;display:grid;place-items:center;border-radius:50%;font-size:26px;transition:background .3s}.project-link:hover{background:var(--accent);color:var(--bg)}.gallery-bottom{padding:25px 5% 0;display:flex;justify-content:space-between;align-items:center;gap:40px;color:var(--muted);font-size:9px;letter-spacing:1.5px}.gallery-progress{height:1px;background:#ffffff26;flex:1;max-width:35%}.gallery-progress i{display:block;height:1px;transform-origin:left;background:var(--accent);transform:scaleX(.25)}.other-services{padding:70px 5%;border-bottom:1px solid var(--line);border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:30px}.other-services>p{font-size:18px;max-width:250px;line-height:1.5}.other-services>div{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}.other-services span{border:1px solid var(--line);border-radius:30px;padding:13px 18px;font-size:13px;color:#aab6aa}.contact{position:relative;overflow:hidden;padding:150px 5% 0;text-align:center}.contact-glow{position:absolute;width:90%;height:65%;top:5%;left:5%;background:radial-gradient(ellipse,#234b1e55,transparent 67%);pointer-events:none}.contact>.eyebrow{position:relative;color:var(--muted);margin-bottom:35px}.contact h2{position:relative;font-size:clamp(45px,7vw,114px);letter-spacing:-.065em;line-height:1.1}.contact-button{position:relative;display:inline-flex;align-items:center;gap:55px;background:var(--accent);color:#14200f;padding:20px 30px;border-radius:50px;margin-top:45px;font-size:16px}.contact-button span{font-size:24px;transition:transform .3s}.contact-button:hover span{transform:translate(4px,-4px)}.contact-details{position:relative;display:flex;justify-content:center;gap:40px;flex-wrap:wrap;margin-top:80px;font-size:14px;color:#acb6a9}.contact-details a:hover{color:var(--accent)}.end-word{font-size:26vw;letter-spacing:-.08em;line-height:.9;font-family:Manrope,sans-serif;font-weight:600;color:#1a2a1c;margin:70px 0 -1.5vw;user-select:none;transform:translateY(0);will-change:transform}footer{padding:25px 5% 80px;display:flex;align-items:center;justify-content:space-between;gap:30px;background:#080d09;color:#8a9889;font-size:12px;position:relative}footer img{width:120px;height:45px;object-fit:cover}footer>a:last-child{font-size:14px}.utility{position:fixed;bottom:18px;left:20px;right:20px;z-index:40;display:flex;justify-content:space-between;pointer-events:none}.utility>*{pointer-events:auto;border:1px solid #ffffff28;background:#0a160fca;backdrop-filter:blur(12px);border-radius:30px;padding:12px 17px;color:#d7e2d2;display:flex;align-items:center;gap:10px;font-size:12px}.utility a{background:#cafd78;color:#15230d;border:none}.utility a span{font-size:17px}.page-progress{position:fixed;left:0;top:0;height:2px;width:100%;z-index:50;pointer-events:none}.page-progress i{display:block;width:100%;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}.reveal{opacity:1;transform:none}.motion .reveal{opacity:0;transform:translateY(35px);transition:opacity .9s,transform .9s}.motion .reveal.visible{opacity:1;transform:none}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.statement a:focus-visible{outline-color:#315322}@keyframes rise{from{opacity:0;filter:blur(12px);transform:translateY(35px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}@keyframes scrollLine{0%,100%{transform:scaleY(.4);opacity:.4}50%{transform:scaleY(1);opacity:1}}
@media(max-width:1050px){nav{gap:20px}.hero-copy{left:6%}.hero-caption{right:5%;bottom:17%}.statement-bottom{flex-wrap:wrap}.statement-bottom .line-link{margin-left:auto}.other-services{align-items:flex-start;flex-direction:column}.other-services>div{justify-content:flex-start}.other-services>p{max-width:none}.showcase-stage{min-height:700px}.gallery-controls{gap:12px}}
@media(max-width:640px){html{scroll-padding-top:80px}header{height:80px;padding:0 6%;gap:20px}.wordmark{font-size:30px}.nav-contact{display:none}.menu{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);background:transparent;padding:14px 12px;border-radius:50%;width:43px;height:43px}.menu span{display:block;width:18px;height:1px;background:#fff}nav{display:none;position:absolute;top:80px;left:0;right:0;background:#071009;padding:25px 6%;border-bottom:1px solid var(--line);font-size:16px}nav.open{display:flex;flex-direction:column;gap:25px}.hero{height:130svh}.hero-stage{min-height:680px}.hero-top{top:110px;left:6%;right:6%;font-size:8px}.hero-copy{left:7%;top:24%}.hero-copy .eyebrow{font-size:9px;margin-bottom:25px}h1{font-size:clamp(70px,20vw,112px);letter-spacing:-.075em}.hero-description{font-size:14px;margin:25px 0;max-width:290px}.pill{font-size:13px;padding:14px 18px;gap:25px}.hero-caption{bottom:17%;right:7%;font-size:8px}.hero-caption p{font-size:12px}.hero-bottom{left:7%;right:7%;bottom:33px;font-size:8px}.hero-bottom>span:first-child{display:none}.hero-bottom>span:last-child{font-size:8px}.scroll-cue{font-size:8px}.vision{height:240svh}.vision-stage{min-height:600px}.vision-image{clip-path:inset(25% 17% round 160px)}.vision-intro h2{font-size:44px;line-height:1.13}.vision-intro .eyebrow{font-size:9px}.vision-outro{left:7%;bottom:20%}.vision-outro h2{font-size:49px}.vision-outro>p:last-child{font-size:14px}.vision-line{bottom:75px;left:7%;right:7%;font-size:8px}.statement{padding:85px 7%}.statement>.eyebrow{font-size:10px;margin-bottom:30px}.word-reveal{font-size:39px;line-height:1.25}.statement-bottom{margin-top:40px;gap:25px}.statement-bottom p{font-size:14px}.asterisk{font-size:58px}.statement-bottom .line-link{margin:0;gap:40px}.desktop{display:none}.showcase{height:auto}.showcase-stage{height:auto;min-height:0;position:relative;padding:85px 0 40px}.showcase-heading{padding:0 7%;margin-bottom:30px;align-items:flex-end}.showcase-heading .eyebrow{font-size:8px;letter-spacing:1.2px}.showcase-heading h2{font-size:30px}.gallery-controls{gap:8px;flex-wrap:wrap;justify-content:center;max-width:85px}.gallery-controls>span{font-size:9px;order:3;width:100%;text-align:center}.gallery-controls button{width:32px;height:32px;font-size:17px}.gallery-window{overflow-x:auto;padding-left:7%;scroll-snap-type:x mandatory;scrollbar-width:none}.gallery-track{gap:15px;transform:none!important;padding-right:7%}.project{flex-basis:86vw;height:500px;scroll-snap-align:center}.project-index{left:23px;top:25px;font-size:9px}.project-copy{left:23px;bottom:28px;right:65px}.project-copy h3{font-size:36px}.project-copy p{font-size:13px;line-height:1.5}.project-link{width:43px;height:43px;right:18px;bottom:28px;font-size:21px}.gallery-bottom{padding:25px 7% 0;gap:20px;font-size:8px}.gallery-bottom>span:last-child{display:none}.gallery-progress{max-width:45%;flex:1}.other-services{padding:45px 7%;gap:20px}.other-services p{font-size:17px}.other-services span{font-size:12px;padding:10px 13px}.contact{padding:90px 7% 0}.contact>.eyebrow{font-size:9px;letter-spacing:1.5px;max-width:250px;margin:0 auto 28px}.contact h2{font-size:44px}.contact-button{font-size:14px;padding:16px 23px;gap:25px;margin-top:35px}.contact-details{flex-direction:column;gap:20px;margin-top:55px;font-size:13px}.end-word{margin-top:70px}.utility{left:12px;right:12px;bottom:12px}.utility>*{font-size:11px;padding:11px 14px}.motion-label{display:none}footer{padding:25px 7% 80px;gap:20px;flex-wrap:wrap}footer>span{display:none}footer img{width:100px;height:40px}}
/* An accessible alternative keeps every scene and action available without motion. */
.static-mode{scroll-behavior:auto}.static-mode *{animation:none!important;transition:none!important}.static-mode .hero{height:100svh;min-height:680px}.static-mode .hero-stage{position:relative}.static-mode .hero-copy{opacity:1!important;transform:none!important}.static-mode .vision{height:auto}.static-mode .vision-stage{position:relative;height:100svh}.static-mode .vision-image{clip-path:none!important}.static-mode .vision-image img{transform:none!important}.static-mode .vision-intro{display:none}.static-mode .vision-outro{opacity:1!important;transform:none!important}.static-mode .showcase{height:auto}.static-mode .showcase-stage{position:relative;height:auto;min-height:0;padding-bottom:45px}.static-mode .gallery-window{overflow-x:auto;scroll-snap-type:x mandatory}.static-mode .gallery-track{transform:none!important;padding-right:5%}.static-mode .project{scroll-snap-align:center}.static-mode .reveal{opacity:1!important;transform:none!important}.static-mode .word-reveal span{color:#102018}.static-mode .end-word{transform:none!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion .reveal{opacity:1;transform:none}}
.no-webgl #light-field{display:none}.no-webgl .ambient{background:linear-gradient(90deg,#050908ed,#05090850),url('assets/hero.jpg') center/cover}.hero-stage:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#05090855,transparent 60%);z-index:1}.hero-top,.hero-bottom,.hero-caption{z-index:2}@media(max-width:640px){#light-field{opacity:.8}.hero-stage:after{background:linear-gradient(90deg,#05090870,transparent 80%)}}
@media(min-width:641px) and (max-height:750px){.showcase-stage{min-height:0;padding-top:95px}.showcase-heading{margin-bottom:22px}.showcase-heading h2{font-size:34px}.showcase-heading .eyebrow{margin-bottom:8px}.project{height:45svh;min-height:240px}.gallery-bottom{padding-top:18px}.hero-copy{top:23%}h1{font-size:clamp(70px,8.3vw,112px)}.hero-description{margin:20px 0}.hero-stage{min-height:580px}}
/* Original supplied artwork, unchanged. The frame excludes its empty margins. */
.brand-original{position:relative;display:block;width:180px;aspect-ratio:1030 / 470;flex-shrink:0;overflow:hidden}
.brand-original img{position:absolute;width:149.126214%;height:auto;max-width:none;left:-22.330097%;top:-48.93617%;object-fit:initial}
.header-logo{margin-right:auto}
.end-word.brand-original{width:min(760px,84vw);height:auto;margin:75px auto 45px;font-size:initial;letter-spacing:normal;line-height:normal}
.footer-logo{width:170px}
@media(max-width:640px){.header-logo{width:155px}.footer-logo{width:145px}.end-word.brand-original{width:86vw;margin:55px auto 30px}}
/* Roll Door product stage. All visible product parts use the generated artwork. */
.hero{height:265svh}.hero-copy{left:7%;top:25%;max-width:42%}.hero-copy h1{font-size:clamp(74px,7.6vw,124px)}.hero-copy .eyebrow{font-size:10px}.hero-caption{display:none}
.door-presentation{position:absolute;z-index:2;width:64vw;right:-3%;top:21%;perspective:1500px;pointer-events:none;isolation:isolate}
.door-rig{position:relative;width:100%;aspect-ratio:3 / 2;transform-style:preserve-3d;will-change:transform;transform-origin:center}
.door-flat{width:100%;height:auto;display:block}.door-ready .door-flat{visibility:hidden}
.door-part{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform;pointer-events:none;display:none}
.door-ready .door-part{display:block}.door-part img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;user-select:none}
.door-view{position:absolute;left:6.9%;top:14.3%;width:86.5%;height:68.9%;opacity:0;overflow:hidden;transform:translateZ(-1px)}.door-view img{object-fit:cover}
.door-visual-label{position:absolute;top:3%;left:11%;right:10%;display:flex;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:2px;color:#bac9b3}.door-visual-label span:first-child{color:var(--accent)}
.door-caption{position:absolute;bottom:0;left:10%;right:10%;text-align:center}.door-caption p{font-size:15px;color:#d9e6d3;margin-bottom:7px}.door-caption>span{font-size:11px;color:#8c9a88}
.door-steps{display:flex;align-items:center;justify-content:center;gap:15px;margin:22px auto 0;max-width:70%;font-size:9px;letter-spacing:1px;white-space:nowrap;color:#62745f}.door-steps i{height:1px;background:#ffffff20;width:35px}.door-steps span.active{color:var(--accent)}
.hero-stage:after{z-index:0}.hero-copy{z-index:3}.hero .ambient{background:radial-gradient(ellipse at 70% 50%,#24422030,transparent 55%),#050908}
.static-mode .door-rig{transform:none!important}.static-mode .door-part{transform:none!important}.static-mode .door-view{opacity:0!important}
@media(min-width:641px) and (max-height:750px){.door-presentation{top:20%;width:58vw;right:0}.hero-copy{top:25%}.hero-copy h1{font-size:clamp(65px,7vw,102px)}.door-steps{margin-top:12px}.door-caption p{font-size:13px}}
@media(max-width:1050px) and (min-width:641px){.hero-copy{left:5%;max-width:43%}.hero-copy h1{font-size:8vw}.hero-description{font-size:14px}.door-presentation{width:66vw;right:-5%;top:28%}.door-visual-label{font-size:8px}.door-steps{font-size:8px;gap:10px}}
@media(max-width:640px){.hero{height:240svh}.hero-stage{min-height:740px}.hero-copy{left:7%;top:17%;max-width:90%}.hero-copy .eyebrow{margin-bottom:14px}.hero-copy h1{font-size:54px;line-height:1}.hero-description{font-size:13px;line-height:1.6;margin:13px 0}.hero-copy .pill{font-size:12px;padding:11px 17px}.door-presentation{width:106vw;left:-3vw;right:auto;top:50%;perspective:1000px}.door-visual-label{font-size:8px;letter-spacing:1.3px;left:9%;right:9%;top:1%}.door-caption{bottom:-1%;left:8%;right:8%}.door-caption p{font-size:12px;margin-bottom:4px}.door-caption>span{font-size:10px}.door-steps{margin-top:24px;max-width:82%;gap:9px;font-size:8px}.door-steps i{width:18px}.hero-bottom{bottom:28px}.static-mode .hero{min-height:740px}.static-mode .hero-stage{min-height:740px}}
/* A single burst reveals the next environment directly beneath the product. */
.hero{height:195svh}.hero-next{position:absolute;inset:0;z-index:1;opacity:0;pointer-events:none;overflow:hidden}.hero-next-photo{width:100%;height:100%;object-fit:cover;transform:scale(1.12);will-change:transform}.hero-next .scene-shade{background:linear-gradient(90deg,#05110ae0,#05110a30),linear-gradient(0deg,#05110a88,transparent)}.hero-next-copy{position:absolute;left:9%;bottom:18%;opacity:0;transform:translateY(40px)}.hero-next-copy .eyebrow{margin-bottom:25px}.hero-next-copy h2{font-size:clamp(46px,6.8vw,108px);line-height:1.06;letter-spacing:-.06em}.hero-next-copy>p:last-child{line-height:1.8;color:#d3e0d7;margin-top:30px;font-size:16px}.door-shard{backface-visibility:visible;will-change:transform,opacity}.motion .vision{display:block;margin-top:-100svh}.static-mode .hero-next{display:none}.static-mode .door-part{opacity:1!important}.static-mode .hero-bottom,.static-mode .door-caption,.static-mode .door-visual-label{opacity:1!important}.door-steps{display:none}
@media(max-width:640px){.hero{height:180svh}.hero-next-copy{left:7%;bottom:18%}.hero-next-copy h2{font-size:49px}.hero-next-copy>p:last-child{font-size:14px}.hero-next-copy .eyebrow{font-size:10px}.hero-next-photo{object-position:60% center}}

/* Restore the separate expanding-photo chapter beneath the outgoing fragments. */
.hero{height:180svh;z-index:2}.vision{z-index:1}.hero-stage{will-change:opacity}.static-mode .hero-stage{opacity:1!important}.static-mode .vision{margin-top:0}
@media(max-width:640px){.hero{height:175svh}}

/* Window-shaped image aperture, with a slim frame and a central division. */
.vision-stage{--window-side:25%;--window-top:23%;--window-opacity:1}
.vision-image{clip-path:inset(23% 25% round 2px)}
.vision-window-frame{position:absolute;inset:var(--window-top) var(--window-side);border:7px solid #7c8580;border-radius:2px;box-shadow:0 0 0 2px #121914,inset 0 0 0 2px #171e18,0 10px 35px #0006;opacity:var(--window-opacity);pointer-events:none;z-index:1}
.vision-window-frame span{position:absolute;left:50%;top:0;bottom:0;width:7px;transform:translateX(-50%);background:linear-gradient(90deg,#131c17,#a1a9a1 42%,#4e5a52 65%,#101a14);box-shadow:1px 0 3px #0005}
.vision-intro,.vision-outro,.vision-line{z-index:2}
.static-mode .vision-window-frame{display:none}
@media(max-width:640px){.vision-stage{--window-side:10%;--window-top:29%}.vision-image{clip-path:inset(29% 10% round 2px)}.vision-window-frame{border-width:5px}.vision-window-frame span{width:5px}}
/* More scroll distance gives each cinematic movement time to be seen. */
.hero{height:260svh}
.vision{height:355svh}
.showcase{height:460svh}
.motion .reveal{transition-duration:1.3s,1.3s}
.hero-copy .intro{animation-duration:1.6s}
@media(max-width:640px){.hero{height:250svh}.vision{height:310svh}.showcase{height:auto}}
.static-mode .hero{height:100svh}
.static-mode .vision,.static-mode .showcase{height:auto}

/* A dedicated reading chapter for the company, with a hold after text reveal. */
.statement{padding:0;height:230svh;position:relative}
.statement-stage{position:sticky;top:0;height:100svh;padding:120px 9% 65px;display:flex;flex-direction:column;justify-content:center}
.statement-stage>.eyebrow{color:#507042;margin-bottom:25px}
.statement .word-reveal{font-size:clamp(40px,4.6vw,70px);line-height:1.15;letter-spacing:-.05em;max-width:1120px}
.company-story{display:grid;grid-template-columns:1fr 2fr;gap:70px;margin-top:40px}
.company-origin{border-left:2px solid #8baa77;padding-left:22px;align-self:start}
.company-origin>span{font-size:10px;letter-spacing:2px;color:#526648}.company-origin strong{display:block;font-size:38px;letter-spacing:-1.5px;font-weight:500;margin:9px 0}.company-origin p{color:#526648;font-size:14px}
.company-description>p{font-size:16px;line-height:1.75;color:#43503e;max-width:700px;margin-bottom:14px}
.company-description .line-link{margin-top:20px;width:fit-content;gap:35px;color:#16341a}
.company-solutions{margin-top:35px;padding-top:22px;border-top:1px solid #bdcbb5;display:flex;justify-content:space-between;gap:20px;font-size:14px;color:#43543c}
.static-mode .statement{height:auto}.static-mode .statement-stage{position:relative;height:auto;min-height:100svh}
@media(min-width:641px) and (max-height:760px){.statement-stage{padding:110px 7% 40px}.statement .word-reveal{font-size:48px}.company-story{margin-top:25px;gap:40px}.company-description>p{font-size:15px;line-height:1.6}.company-solutions{margin-top:22px;padding-top:18px}}
@media(max-width:640px){.statement{height:auto}.statement-stage{position:relative;height:auto;padding:85px 7%;min-height:100svh}.statement .word-reveal{font-size:39px}.statement-stage>.eyebrow{font-size:10px}.company-story{grid-template-columns:1fr;gap:30px;margin-top:35px}.company-origin strong{font-size:32px}.company-description>p{font-size:16px;line-height:1.8}.company-solutions{flex-direction:column;gap:16px;font-size:14px;margin-top:30px}}
@media(max-height:650px){.statement{height:auto}.statement-stage{position:relative;height:auto;min-height:100svh}}

/* Original editorial composition, retaining the longer reading interval. */
.statement .word-reveal{font-size:clamp(38px,5.4vw,86px);letter-spacing:-.055em;line-height:1.22;max-width:1200px}
.statement-stage>.eyebrow{margin-bottom:50px}
.statement-stage .statement-bottom{margin-top:70px}
@media(max-width:1050px){.statement-stage .statement-bottom{margin-top:45px}}
@media(max-width:640px){.statement-stage>.eyebrow{margin-bottom:30px}.statement .word-reveal{font-size:39px;line-height:1.25}.statement-stage .statement-bottom{margin-top:40px}}
@media(min-width:641px) and (max-height:760px){.statement .word-reveal{font-size:clamp(38px,4.6vw,64px)}.statement-stage>.eyebrow{margin-bottom:25px}.statement-stage .statement-bottom{margin-top:40px}}

/* A practical four-column footer, integrated with the cinematic visual direction. */
.contact{padding-bottom:100px}
.site-footer{display:block;position:relative;padding:80px 6% 85px;background:radial-gradient(ellipse at 95% 100%,#24432255,transparent 65%),#0d1c12;color:#b6c5b0;font-size:15px}
.footer-accent{position:absolute;top:0;left:6%;right:6%;height:1px;background:linear-gradient(90deg,#cdfd7590,#cdfd7510);transform-origin:left}
.motion .footer-accent{transform:scaleX(.1);opacity:0;transition:transform 1.6s,opacity 1.6s}.motion .footer-accent.visible{transform:scaleX(1);opacity:1}
.footer-grid{display:grid;grid-template-columns:1.05fr .65fr 1fr 1.3fr;gap:clamp(25px,4vw,70px);align-items:start}
.site-footer .footer-logo{width:215px;margin-bottom:25px;max-width:100%}
.footer-brand-column>p{font-size:15px;line-height:1.9;margin:0 0 25px;max-width:300px}
.site-footer .footer-talk{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;border:1px solid #a5c99155;border-radius:30px;padding:14px 20px;color:#e6f2dd;font-size:14px;transition:background .3s,color .3s,transform .3s}
.footer-talk:hover{background:var(--accent);color:#183011!important;transform:translateY(-3px)}
.footer-column>h2{font-family:'DM Sans',sans-serif;font-size:18px;letter-spacing:0;font-weight:500;color:#f1f6eb;margin:13px 0 27px}
.footer-column ul{padding:0;margin:0;list-style:none;display:flex;flex-direction:column;gap:17px}
.footer-column li{line-height:1.5}.footer-column li a{font-size:14px;display:inline-block;transition:transform .3s,color .3s}.footer-column li a:hover{transform:translateX(4px);color:var(--accent)}
.footer-contact address{font-style:normal;display:flex;flex-direction:column;gap:21px}.footer-contact address>a,.footer-contact address>div{display:flex;align-items:center;gap:13px;font-size:14px;line-height:1.7;min-width:0}.footer-contact address>a:hover{color:var(--accent)}.footer-contact address>*>span:last-child{overflow-wrap:anywhere;min-width:0}
.footer-icon{display:grid;place-items:center;width:39px;height:39px;flex-shrink:0;border:1px solid #a6c58c22;border-radius:12px;color:#c3d7af;background:#b5d5950a;transition:background .3s}.footer-contact a:hover .footer-icon{background:#c6f37518}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:25px;border-top:1px solid #c4dbad20;padding-top:25px;margin-top:65px;font-size:12px;color:#8ca17e}.footer-bottom p{line-height:1.7}.footer-bottom>a{display:flex;align-items:center;gap:22px;font-size:14px;color:#c2d7b0}.footer-bottom>a:hover{color:var(--accent)}
.footer-grid>.reveal:nth-child(2){transition-delay:.12s}.footer-grid>.reveal:nth-child(3){transition-delay:.24s}.footer-grid>.reveal:nth-child(4){transition-delay:.36s}
@media(max-width:1050px){.footer-grid{grid-template-columns:1fr 1fr;gap:50px 60px}.site-footer .footer-logo{width:200px}.footer-column>h2{margin-top:0}}
@media(max-width:640px){.contact{padding-bottom:75px}.site-footer{padding:55px 7% 90px}.footer-grid{grid-template-columns:1fr 1fr;gap:40px 25px}.footer-brand-column,.footer-contact{grid-column:1/-1}.site-footer .footer-logo{width:200px;margin-bottom:20px}.footer-brand-column>p{max-width:380px}.footer-column>h2{font-size:17px;margin-bottom:22px}.footer-column ul{gap:15px}.footer-column li a{font-size:14px}.footer-bottom{flex-direction:column;align-items:flex-start;margin-top:40px;gap:18px}.footer-grid>.reveal{transition-delay:0s!important}}

/* Expanded service gallery: visitor-controlled, with readable imagery. */
.showcase{height:auto}.showcase-stage{position:relative;height:auto;min-height:0;padding:130px 0 55px;overflow:hidden}.showcase-heading{margin-bottom:25px}.service-choices{display:flex;flex-wrap:wrap;gap:8px;padding:0 5%;margin-bottom:28px}.service-choice{border:1px solid #ffffff30;border-radius:25px;background:transparent;color:#d5ddd5;font:inherit;font-size:13px;padding:11px 17px;cursor:pointer;transition:background .35s,color .35s,border-color .35s}.service-choice:hover{border-color:#cbff79}.service-choice[aria-pressed=true]{background:#cbff79;border-color:#cbff79;color:#102015}.service-choice:focus-visible,.gallery-window:focus-visible{outline:2px solid #cbff79;outline-offset:4px}.gallery-window{overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:5vw;padding-right:5%;scrollbar-width:none}.gallery-window::-webkit-scrollbar{display:none}.gallery-track{transform:none!important;gap:24px;width:max-content}.project{flex:0 0 80vw;width:80vw;height:clamp(380px,57svh,680px);scroll-snap-align:start}.project-shade{background:linear-gradient(0deg,rgba(2,14,8,.88),rgba(2,14,8,.12) 48%,transparent 72%)}.project-index{padding:8px 12px;background:#07100d70;border-radius:30px}.project-copy h3{font-size:clamp(32px,4.2vw,64px);max-width:800px}.project-copy p{font-size:clamp(14px,1.3vw,19px);max-width:600px}.project img{transition:transform 1.8s cubic-bezier(.2,.65,.3,1)}#service-4 img{object-fit:contain;background:#080e0b}.gallery-bottom{margin-top:22px}.gallery-progress i{transition:transform .8s ease}.static-mode .project img{transition:none}@media(max-width:640px){.showcase-stage{padding:90px 0 40px}.service-choices{gap:7px;margin-bottom:20px}.service-choice{font-size:12px;padding:9px 12px}.project{flex-basis:88vw;width:88vw;height:480px}.project-copy{left:22px;right:65px;bottom:28px}.project-copy h3{font-size:32px}.project-link{right:15px;bottom:25px;width:44px;height:44px}.gallery-bottom span{font-size:8px}}

/* Interaction cues: slow WhatsApp halo, deliberate hover and touch feedback. */
.utility a{position:relative;isolation:isolate;transition:transform .45s ease,box-shadow .45s ease}
.utility a::after{content:"";position:absolute;inset:0;border:1px solid var(--accent);border-radius:inherit;pointer-events:none;opacity:0;animation:whatsapp-halo 8s ease-out infinite}
@keyframes whatsapp-halo{0%,68%,100%{opacity:0;transform:scale(1)}72%{opacity:.55;transform:scale(1)}90%{opacity:0;transform:scale(1.17,1.4)}}
.nav-contact{background-image:linear-gradient(var(--accent),var(--accent));background-size:0% 100%;background-position:left center;background-repeat:no-repeat;transition:background-size .55s ease,color .4s ease,border-color .4s ease,transform .3s ease}
.utility a span,.nav-contact span,.project-link span{display:inline-block;transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.project-link{transition:background .45s ease,color .45s ease,border-color .45s ease,transform .3s ease}
.service-choice{transition:transform .35s ease,background .35s ease,color .35s ease,border-color .35s ease}
@media(hover:hover) and (pointer:fine){
.utility a:hover{transform:translateY(-3px) scale(1.025);box-shadow:0 6px 25px #cafd7828}
.utility a:hover span,.nav-contact:hover span,.project-link:hover span{transform:translate(3px,-3px)}
.nav-contact:hover{background-color:transparent;background-size:100% 100%;color:var(--bg);border-color:var(--accent)}
.project-link:hover{background:var(--accent);color:var(--bg);border-color:var(--accent)}
.service-choice:hover{transform:translateY(-2px)}
}
.utility a:focus-visible,.nav-contact:focus-visible,.project-link:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.utility a:active,.nav-contact:active,.project-link:active,.service-choice:active{transform:scale(.96)}
.static-mode .utility a::after{animation:none}
.static-mode .utility a,.static-mode .nav-contact,.static-mode .project-link,.static-mode .service-choice,.static-mode .utility a span,.static-mode .nav-contact span,.static-mode .project-link span{transition:none;transform:none}
@media(prefers-reduced-motion:reduce){.utility a::after{animation:none}.utility a,.nav-contact,.project-link,.service-choice,.utility a span,.nav-contact span,.project-link span{transition:none!important;transform:none!important}}

/* Customer reviews supplied from the existing Brasilis website. */
.reviews{padding:110px 5% 100px;background:#080f0b;border-top:1px solid #cafd781c;scroll-margin-top:110px}
.reviews-heading{max-width:1000px;margin-bottom:46px}.reviews-heading .eyebrow{color:#a5b99d}.reviews-heading h2{font-size:clamp(32px,4.7vw,70px);line-height:1.08;font-weight:400;letter-spacing:-.045em}.reviews-heading h2 em{font-style:normal;color:var(--accent)}
.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch}.review-card{margin:0;min-width:0;padding:32px;border:1px solid #cafd7826;border-radius:18px;background:linear-gradient(140deg,#152019,#0c140f);transition:border-color .5s ease,background .5s ease}.review-card figcaption{display:flex;align-items:center;gap:15px;margin-bottom:25px}.review-avatar{flex-shrink:0;width:47px;height:47px;display:grid;place-items:center;border-radius:50%;background:#cafd781a;color:var(--accent);font-size:19px}.review-name{display:block;font-size:17px;color:#f1f5ef;line-height:1.4}.review-stars{display:block;color:var(--accent);font-size:17px;letter-spacing:3px;margin-top:5px}.review-card blockquote{margin:0}.review-card blockquote p{margin:0;font-size:16px;line-height:1.8;color:#bcc8bd}.review-card:nth-child(3n+2){transition-delay:.1s}.review-card:nth-child(3n+3){transition-delay:.2s}
@media(hover:hover){.review-card:hover{border-color:#cafd785e}}
@media(max-width:1000px){.reviews-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.review-card{padding:25px}}
@media(max-width:640px){.reviews{padding:70px 0 65px}.reviews-heading{padding:0 6%;margin-bottom:30px}.reviews-grid{display:flex;gap:15px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:6vw;padding:0 6vw 20px;scrollbar-width:thin;scrollbar-color:#cafd7866 #142019}.review-card{flex:0 0 86vw;scroll-snap-align:start;padding:25px;transition-delay:0s!important}.review-card blockquote p{line-height:1.7}.motion .reviews-grid .review-card{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.review-card{transition:none!important}}

/* Shorter native scroll distances; retain the expanding window's reading beat. */
.hero{height:164svh}.vision{height:266svh}
@media(max-width:640px){.hero{height:160svh}.vision{height:237svh}}
.static-mode .hero{height:100svh}.static-mode .vision{height:auto}
.utility a,.nav-contact,.project-link,.service-choice,.contact-button,.pill{transition-timing-function:cubic-bezier(.22,.65,.3,1);transition-duration:.45s}
.contact-button,.pill{transition-property:transform,background-color,color,box-shadow}
.contact-button:active,.pill:active{transform:scale(.98)}

@media(prefers-reduced-motion:reduce){.contact-button,.pill{transition:none!important;transform:none!important}}

/* Window-shaped aperture: the current page remains visible through the opening. */
.contact-aperture{position:fixed;inset:0;z-index:1000;overflow:hidden;pointer-events:auto;touch-action:none;overscroll-behavior:contain}
.aperture-window{position:absolute;transform:translate(-50%,-50%);border:3px solid var(--accent);border-radius:3px;background:transparent;box-sizing:border-box;overflow:hidden;min-width:0;min-height:0}
.aperture-divider{position:absolute;left:50%;top:0;bottom:0;width:3px;transform:translateX(-50%);background:var(--accent)}
.aperture-handle{position:absolute;left:calc(50% + 7px);top:46%;width:3px;height:18px;background:var(--accent);border-radius:2px}
.static-mode .contact-aperture{display:none}
@media(prefers-reduced-motion:reduce){.contact-aperture{display:none}}

.contact-handoff{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#edf3ee;color:#163e28;opacity:0}.contact-handoff strong{font-size:clamp(32px,6vw,64px);font-weight:500;letter-spacing:-.04em}.contact-handoff span{font-size:16px;color:#44634e}

html.door-sequence{scroll-behavior:auto!important;overflow:hidden}
html.company-sequence{scroll-behavior:auto!important;overflow:hidden}
html.company-sequence body{overscroll-behavior:none}
.statement-sparkle{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4}
.static-mode .statement-sparkle{display:none}
@media(prefers-reduced-motion:reduce){.statement-sparkle{display:none}}
/* Gently vary the existing photographic highlight without adding a second beam. */
.door-part[data-part^="leaf-"] img{animation:existing-glass-light 7s ease-in-out infinite;animation-play-state:paused}
.light-visible .door-part[data-part^="leaf-"] img{animation-play-state:running}
@keyframes existing-glass-light{0%,100%{filter:brightness(.65)}50%{filter:brightness(1.65)}}
.static-mode .door-part img{animation:none!important;filter:none!important}
@media(prefers-reduced-motion:reduce){.door-part img{animation:none!important;filter:none!important}}
