:root{--ink:#f3f0e8;--paper:#e9e4d8;--dark:#07110f;--dark-2:#0d1714;--teal:#4ec7bd;--copper:#c8794d;--line:rgba(243,240,232,.18);--pad:clamp(20px,4vw,64px)}
*{box-sizing:border-box}html{scrollbar-width:none;scroll-behavior:smooth}html::-webkit-scrollbar{display:none}body{margin:0;background:var(--dark);color:var(--ink);font-family:"DM Sans",sans-serif;overflow-x:hidden}button,input,select{font:inherit}a{color:inherit;text-decoration:none}svg{width:1.1em;height:1.1em}.skip-link{position:fixed;left:16px;top:-80px;z-index:999;background:var(--ink);color:var(--dark);padding:12px 16px}.skip-link:focus{top:16px}
.site-header{position:fixed;z-index:100;top:0;left:0;right:0;height:76px;padding:0 var(--pad);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid transparent;transition:.35s;background:linear-gradient(180deg,rgba(4,10,9,.72),transparent)}.site-header.scrolled{height:64px;background:rgba(7,17,15,.88);backdrop-filter:blur(16px);border-color:var(--line)}.brand{display:flex;align-items:center;gap:12px;font:600 12px/1 "Manrope";letter-spacing:.12em;white-space:nowrap}.brand b{display:block;color:rgba(243,240,232,.55);font-weight:500;font-size:8px;margin-top:4px}.brand-mark{display:grid;place-items:center;width:31px;height:31px;border:1px solid rgba(243,240,232,.55);font:600 15px/1 "Manrope"}.desktop-nav{display:flex;align-items:center;gap:30px;font-size:13px}.desktop-nav>a,.nav-trigger{opacity:.78;transition:.2s}.desktop-nav>a:hover,.nav-trigger:hover{opacity:1}.nav-menu{position:relative}.nav-trigger{border:0;background:none;color:inherit;padding:12px 0;display:flex;align-items:center;gap:5px;cursor:pointer}.nav-trigger svg{width:14px;transition:.25s}.nav-trigger[aria-expanded=true] svg{transform:rotate(180deg)}.nav-dropdown{position:absolute;top:46px;left:50%;width:260px;padding:10px;background:#edf0e9;color:#0b1412;box-shadow:0 18px 50px rgba(0,0,0,.3);opacity:0;visibility:hidden;transform:translate(-50%,-8px);transition:.25s}.nav-dropdown.open{opacity:1;visibility:visible;transform:translate(-50%,0)}.nav-dropdown a{display:flex;gap:15px;padding:14px;border-bottom:1px solid rgba(7,17,15,.1);font-weight:600}.nav-dropdown a:last-child{border:0}.nav-dropdown span{color:#71817d;font-weight:400}.header-cta{justify-self:end;display:flex;align-items:center;gap:9px;border-bottom:1px solid rgba(243,240,232,.7);padding:9px 0;font-size:13px}.menu-toggle{display:none;justify-self:end;border:0;background:none;color:inherit;padding:8px}.mobile-panel{display:none}
.scrub-section{height:520vh;position:relative}.scrub-sticky{height:100vh;position:sticky;top:0;overflow:hidden;background:var(--dark)}.scrub-sticky canvas,.frame-fallback{position:absolute;inset:0;width:100%;height:100%}.scrub-sticky canvas{z-index:2;opacity:0;transition:opacity .5s}.frames-ready canvas{opacity:1}.frame-fallback{z-index:1;background-size:cover;background-position:center}.hero-fallback{background-image:linear-gradient(125deg,rgba(7,17,15,.34),rgba(7,17,15,.12)),url("assets/real-villa-night.webp")}.materials-fallback{background-image:linear-gradient(110deg,rgba(7,17,15,.18),rgba(7,17,15,.38)),url("assets/real-outdoor-kitchen.webp");background-position:center 58%}.film-shade{position:absolute;z-index:3;inset:0;background:linear-gradient(90deg,rgba(3,10,8,.76) 0%,rgba(3,10,8,.2) 48%,rgba(3,10,8,.18)),linear-gradient(180deg,rgba(3,8,7,.42),transparent 30%,rgba(3,8,7,.72));pointer-events:none}.hero-copy{position:absolute;z-index:5;left:var(--pad);bottom:14vh;max-width:900px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:600;margin:0 0 24px}.hero h1,.material-title h2,.contact h2{font:500 clamp(3.25rem,8.2vw,8.8rem)/.88 "Manrope",sans-serif;letter-spacing:0;margin:0}.hero h1 em,.display em,.material-title em,.contact h2 em{font-style:normal;color:var(--teal)}.hero-note{max-width:430px;font-size:clamp(15px,1.5vw,19px);line-height:1.6;margin-top:28px;color:rgba(243,240,232,.78)}.reveal-line{opacity:0;transform:translateY(30px);will-change:opacity,transform}.scene-copy{position:absolute;z-index:5;max-width:370px}.scene-copy span,.material-note span{display:block;color:var(--teal);letter-spacing:.16em;font-size:10px;margin-bottom:12px}.scene-copy strong{font:500 clamp(1.7rem,3.5vw,3.8rem)/1.02 "Manrope"}.scene-right{right:var(--pad);top:28%}.scene-left{left:var(--pad);bottom:20%}.scroll-cue{position:absolute;z-index:6;right:var(--pad);bottom:35px;display:flex;align-items:center;gap:12px;text-transform:uppercase;letter-spacing:.14em;font-size:10px}.scroll-cue svg{animation:float 1.8s ease-in-out infinite}.chapter-progress{position:absolute;z-index:6;left:var(--pad);right:var(--pad);bottom:22px;height:1px;background:var(--line)}.chapter-progress span{display:block;height:100%;width:0;background:var(--teal)}@keyframes float{50%{transform:translateY(5px)}}
.orbit-camera-video{position:absolute;z-index:2;inset:0;width:100%;height:100%;object-fit:cover;background:#07110f;filter:saturate(.96) contrast(1.03);pointer-events:none}.materials.orbit-video-ready .frame-fallback{opacity:0;transition:opacity .7s}
.band{padding:clamp(90px,12vw,170px) var(--pad)}.section-index{text-transform:uppercase;letter-spacing:.15em;font-size:10px;color:#778781;margin-bottom:42px}.intro{background:var(--paper);color:#0b1714}.intro-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.7fr);gap:8vw;align-items:end}.display{font:500 clamp(2.7rem,6.2vw,6.7rem)/.98 "Manrope";letter-spacing:0;margin:0}.intro .display em,.process .display em,.faq .display em{color:#227f77}.intro-body{font-size:clamp(16px,1.6vw,21px);line-height:1.6;color:#43514d}.text-link{display:inline-flex;align-items:center;gap:12px;margin-top:28px;color:#0b1714;font-weight:600;border-bottom:1px solid;padding-bottom:7px}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);margin-top:120px;border-top:1px solid rgba(7,17,15,.2)}.stats-row>div{padding:34px 0 0;border-right:1px solid rgba(7,17,15,.2)}.stats-row>div+div{padding-left:32px}.stats-row>div:last-child{border:0}.stats-row strong{font:500 clamp(3rem,6vw,6rem)/1 "Manrope";display:block}.stats-row span{display:block;margin-top:12px;color:#65736f;font-size:13px}
.services{background:#101a17}.section-head{display:grid;grid-template-columns:.65fr 1.35fr;gap:40px;margin-bottom:80px}.section-head .display{font-size:clamp(2.8rem,5.7vw,6.2rem)}.service-list{border-top:1px solid var(--line)}.service-item{display:grid;grid-template-columns:70px 1fr auto;gap:35px;align-items:center;padding:42px 0;border-bottom:1px solid var(--line);transition:.25s}.service-item:hover{padding-left:18px;background:rgba(255,255,255,.025)}.service-item>span{font-size:11px;color:var(--teal)}.service-item h3{font:500 clamp(1.8rem,3.4vw,3.6rem)/1 "Manrope";margin:0 0 10px}.service-item p{max-width:610px;color:rgba(243,240,232,.62);margin:0;line-height:1.6}.service-item>svg{width:34px;height:34px;color:var(--copper)}
.materials{height:480vh}.material-shade{background:linear-gradient(90deg,rgba(4,9,7,.78),transparent 55%),linear-gradient(180deg,rgba(2,7,6,.3),transparent 50%,rgba(2,7,6,.72))}.material-title{position:absolute;z-index:5;left:var(--pad);top:20%;max-width:900px}.material-title h2{font-size:clamp(3.2rem,7vw,7.8rem)}.material-note{position:absolute;z-index:5;right:var(--pad);top:28%;max-width:330px;color:#07110f;text-shadow:0 1px 22px rgba(255,255,255,.42)}.material-note span{color:#0a5d58}.material-note p{font:500 clamp(1.7rem,3vw,3.2rem)/1.08 "Manrope";margin:0}.material-note.lower{top:auto;bottom:22%;left:var(--pad);right:auto;color:var(--ink);text-shadow:0 2px 18px rgba(0,0,0,.72)}.material-note.lower span{color:var(--teal)}
.process{background:var(--paper);color:#0b1714}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(7,17,15,.25)}.process-grid article{padding:32px 30px 0 0;min-height:260px;border-right:1px solid rgba(7,17,15,.2)}.process-grid article+article{padding-left:30px}.process-grid article:last-child{border:0}.process-grid span{font-size:10px;color:#697a74}.process-grid h3{font:600 clamp(1.4rem,2vw,2rem) "Manrope";margin:54px 0 16px}.process-grid p{color:#5e6a66;line-height:1.6;font-size:14px}
.testimonial{text-align:center;background:var(--copper);color:#160f0b}.testimonial>svg{width:40px;height:40px;margin-bottom:45px;opacity:.7}.testimonial blockquote{font:500 clamp(2.5rem,5.2vw,5.8rem)/1.08 "Manrope";max-width:1200px;margin:0 auto}.testimonial p{text-transform:uppercase;letter-spacing:.13em;font-size:10px;margin-top:42px}.faq{background:#0a1411;display:grid;grid-template-columns:.75fr 1.25fr;gap:8vw}.faq-intro{position:sticky;top:110px;align-self:start}.faq .display{font-size:clamp(2.7rem,5vw,5.2rem)}.faq-list{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{list-style:none;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:18px;padding:30px 0;cursor:pointer;font:500 clamp(1.05rem,1.5vw,1.35rem) "Manrope"}summary::-webkit-details-marker{display:none}summary span{color:var(--teal);font:500 10px "DM Sans"}summary svg{transition:.25s}details[open] summary svg{transform:rotate(45deg)}details p{margin:0;padding:0 0 32px 60px;color:rgba(243,240,232,.62);line-height:1.7;max-width:690px}
.contact{padding:clamp(90px,11vw,160px) var(--pad);background:#dce2da;color:#0a1713;display:grid;grid-template-columns:1.1fr .9fr;gap:10vw}.contact h2{font-size:clamp(3rem,6vw,6.5rem)}.contact h2 em{color:#227f77}.contact-copy>p:last-child{max-width:520px;line-height:1.7;color:#53615d}.project-form{display:grid;gap:20px;align-self:center}.project-form label{display:grid;gap:8px;text-transform:uppercase;letter-spacing:.12em;font-size:9px;font-weight:600}.project-form input,.project-form select{width:100%;border:0;border-bottom:1px solid rgba(7,17,15,.35);background:transparent;color:#0a1713;padding:10px 0 14px;border-radius:0;outline:0}.project-form input:focus,.project-form select:focus{border-color:#227f77}.project-form button{margin-top:12px;border:0;background:#0a1713;color:var(--ink);height:56px;display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer}.form-status{min-height:20px;margin:0;color:#227f77;font-size:13px}footer{padding:38px var(--pad);display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);font-size:11px;color:rgba(243,240,232,.58)}footer>a:last-child{display:flex;align-items:center;gap:8px}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:none}
@media(max-width:900px){.site-header{grid-template-columns:1fr auto}.desktop-nav,.header-cta{display:none}.menu-toggle{display:block}.mobile-panel{display:flex;position:fixed;z-index:90;inset:0;background:#07110f;padding:110px var(--pad) 40px;flex-direction:column;gap:0;transform:translateY(-105%);transition:.35s}.mobile-panel.open{transform:none}.mobile-panel a{font:500 clamp(2rem,10vw,4rem) "Manrope";padding:18px 0;border-bottom:1px solid var(--line)}.intro-grid,.section-head,.faq,.contact{grid-template-columns:1fr}.intro-body{max-width:600px}.process-grid{grid-template-columns:repeat(2,1fr)}.faq-intro{position:static}.hero-copy{bottom:18vh}.scene-copy{max-width:280px}.scene-right{top:25%}.material-note{top:auto;bottom:17%}.material-note.lower{bottom:17%}.stats-row{margin-top:75px}}
@media(max-width:600px){.site-header{height:64px}.brand{font-size:10px}.brand-mark{width:28px;height:28px}.scrub-section{height:430vh}.hero h1,.material-title h2{font-size:clamp(3rem,15vw,5.2rem);line-height:.92}.hero-copy{bottom:22vh}.hero-note{font-size:14px;max-width:85vw}.scene-copy strong{font-size:1.8rem}.scene-right{top:24%;left:var(--pad);right:auto}.scene-left{bottom:18%}.scroll-cue{display:none}.intro-grid{gap:40px}.stats-row{grid-template-columns:1fr}.stats-row>div,.stats-row>div+div{border-right:0;border-bottom:1px solid rgba(7,17,15,.2);padding:26px 0}.service-item{grid-template-columns:36px 1fr}.service-item>svg{display:none}.process-grid{grid-template-columns:1fr}.process-grid article,.process-grid article+article{padding:28px 0;border-right:0;border-bottom:1px solid rgba(7,17,15,.2);min-height:210px}.material-note{left:var(--pad);right:auto}.material-note.lower{display:none}.contact{gap:60px}footer{align-items:flex-start;gap:25px;flex-direction:column}footer>p{order:3}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none}.scroll-cue svg{animation:none}.scrub-section{height:100vh}.scrub-section .reveal-line{opacity:1!important;transform:none!important}.scene-copy,.material-note{display:none}}

/* Spatial atelier extension — interaction adapted from 21st.dev's 3D spotlight pattern. */
.spatial-grid{--cinema-p:0;position:absolute;z-index:4;left:50%;bottom:-18%;width:120vw;height:55vh;transform:translateX(-50%) perspective(700px) rotateX(68deg) translateY(calc(var(--cinema-p) * -70px));transform-origin:center bottom;opacity:calc(.22 - var(--cinema-p) * .1);background-image:linear-gradient(rgba(78,199,189,.3) 1px,transparent 1px),linear-gradient(90deg,rgba(78,199,189,.3) 1px,transparent 1px);background-size:70px 70px;mask-image:linear-gradient(to top,#000,transparent 78%);pointer-events:none}.spatial-grid i{position:absolute;left:50%;top:50%;width:34vw;height:34vw;border:1px solid rgba(78,199,189,.28);border-radius:50%;transform:translate(-50%,-50%) scale(calc(.74 + var(--cinema-p) * .5))}.spatial-grid i:nth-child(2){width:48vw;height:48vw;opacity:.55}.spatial-grid i:nth-child(3){width:64vw;height:64vw;opacity:.28}
.stats-row strong{font:500 clamp(1.7rem,3.2vw,3.6rem)/1 "Manrope"}.stats-row span{max-width:32ch;margin-top:16px;line-height:1.55}
.service-list{perspective:1200px}.service-item{--rx:0deg;--ry:0deg;--lift:0px;position:relative;grid-template-columns:130px 1fr auto;padding-inline:20px;transform:perspective(1200px) rotateX(var(--rx)) rotateY(var(--ry)) translate3d(0,var(--lift),0);transform-style:preserve-3d;transition:transform .2s ease,background .25s}.service-item::before{content:"";position:absolute;inset:8px 0;background:radial-gradient(500px circle at var(--mx,50%) var(--my,50%),rgba(78,199,189,.13),transparent 46%);opacity:0;transition:opacity .25s;pointer-events:none}.service-item:hover{--lift:-5px;padding-left:20px}.service-item:hover::before{opacity:1}.service-item>span{font-size:10px;letter-spacing:.13em;text-transform:uppercase}.service-item>div,.service-item>svg{position:relative;z-index:1;transform:translateZ(22px)}
.project-lens{display:grid;grid-template-columns:1.05fr .95fr;gap:8vw;align-items:center;background:var(--copper);color:#160f0b;perspective:1400px}.project-lens-image{--rx:0deg;--ry:0deg;overflow:hidden;min-height:620px;box-shadow:0 35px 80px rgba(31,14,5,.25);transform:perspective(1400px) rotateX(var(--rx)) rotateY(var(--ry));transform-style:preserve-3d;transition:transform .2s ease}.project-lens-image img{display:block;width:100%;height:100%;min-height:620px;object-fit:cover;transform:scale(1.035) translateZ(20px)}.project-lens-copy .display{font-size:clamp(2.5rem,4.8vw,5.5rem)}.project-lens-copy>p:last-of-type{max-width:56ch;line-height:1.7}.light-link{color:#160f0b}
@media(max-width:900px){.project-lens{grid-template-columns:1fr}.project-lens-image,.project-lens-image img{min-height:500px}}
@media(max-width:600px){.service-item{grid-template-columns:1fr auto;padding-inline:0}.service-item:hover{padding-left:0}.service-item>span{grid-column:1/-1}.service-item>div{transform:none}.project-lens{padding-inline:20px}.project-lens-image,.project-lens-image img{min-height:390px}}
@media(prefers-reduced-motion:reduce){.spatial-grid{display:none}.service-item,.project-lens-image{transform:none!important}}
.aurum-3d-canvas{display:block;touch-action:pan-y;cursor:grab}.aurum-3d-canvas:active{cursor:grabbing}.three-loader{position:absolute;z-index:9;inset:0;display:grid;place-items:center;align-content:center;gap:18px;background:#07110f;color:rgba(243,240,232,.75);text-transform:uppercase;letter-spacing:.16em;font-size:9px;transition:opacity .4s}.three-loader span{width:46px;height:46px;border:1px solid rgba(78,199,189,.25);border-top-color:var(--teal);border-radius:50%;animation:three-spin 1s linear infinite}.three-ready .three-loader{opacity:0;pointer-events:none}@keyframes three-spin{to{transform:rotate(360deg)}}.three-fallback .aurum-3d-canvas,.no-webgl .aurum-3d-canvas{display:none}.interior-hero .aurum-3d-canvas{position:absolute;z-index:0;inset:0;width:100%;height:100%}.interior-hero::after{z-index:1}.interior-hero-media{transition:opacity .65s}.interior-hero.three-ready .interior-hero-media{opacity:0}.scrub-sticky.three-ready .frame-fallback{opacity:0;transition:opacity .8s}.scrub-sticky.three-ready canvas{opacity:1}.scrub-sticky.three-ready .spatial-grid{opacity:.08}.three-ready+.frame-fallback{opacity:0}
.orbit-indicator{--orbit:0turn;position:absolute;z-index:7;right:var(--pad);top:100px;display:flex;align-items:center;gap:12px;color:rgba(243,240,232,.78);font-size:9px;letter-spacing:.16em;text-transform:uppercase;pointer-events:none}.orbit-indicator i{position:relative;width:50px;height:50px;border:1px solid rgba(243,240,232,.28);border-radius:50%}.orbit-indicator i::before{content:"";position:absolute;width:7px;height:7px;left:50%;top:-4px;border-radius:50%;background:var(--teal);box-shadow:0 0 18px rgba(78,199,189,.8);transform-origin:0 29px;transform:rotate(var(--orbit))}.orbit-indicator i::after{content:"";position:absolute;inset:7px;border:1px dashed rgba(243,240,232,.18);border-radius:50%}
.orbit-photo-layer{position:absolute;z-index:2;inset:-2%;width:104%;height:104%;object-fit:cover;opacity:0;will-change:opacity,transform;pointer-events:none}.orbit-photo-2{object-position:center 50%}.orbit-photo-3{object-position:center 58%}
@media(max-width:700px){.aurum-3d-canvas{cursor:default}.spatial-grid{display:none}.orbit-indicator{top:78px;right:var(--pad)}.orbit-indicator span{display:none}.orbit-indicator i{width:42px;height:42px}.orbit-indicator i::before{transform-origin:0 25px}}
@media(prefers-reduced-motion:reduce){.three-loader span{animation:none}.aurum-3d-canvas{cursor:default}}
.demo-disclosure{position:fixed;z-index:70;left:18px;bottom:18px;display:flex;flex-direction:column;gap:2px;padding:10px 13px;border:1px solid rgba(243,240,232,.18);border-radius:2px;background:rgba(7,17,15,.82);backdrop-filter:blur(12px);box-shadow:0 8px 30px rgba(0,0,0,.22);color:#f3f0e8;text-decoration:none;text-transform:uppercase;letter-spacing:.12em}.demo-disclosure span{font-size:8px;color:#54d8cf}.demo-disclosure b{font-size:8px;font-weight:500}@media(max-width:700px){.demo-disclosure{left:10px;bottom:10px;padding:8px 10px}.demo-disclosure span,.demo-disclosure b{font-size:7px}}
