@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
:root{font-family:'DM Sans',system-ui,sans-serif;color:#354c3b;background:#f8f6f0}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #9e8059;outline-offset:5px}header,main,footer{max-width:1240px;margin:auto}header{height:92px;display:flex;align-items:center;justify-content:space-between;padding:20px 36px;border-bottom:1px solid #daddd1}.brand{font-size:21px;letter-spacing:6px;line-height:1.1}.brand small{display:block;font-size:8px;letter-spacing:6px;margin-top:7px}.page-nav{display:flex;gap:28px;font-size:12px}.page-nav a{padding:12px 0}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:2.5px;color:#8d896e}.intro{padding:66px 36px 36px;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:48px}h1,h2,h3{font-family:Georgia,serif;font-weight:400}h1{font-size:clamp(42px,5vw,70px);line-height:1.04;letter-spacing:-2px;margin:18px 0 24px}h1 em{color:#a0865f;font-weight:400}p{font-size:14px;line-height:1.8;color:#747c6c}.intro p{max-width:450px}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:46px;padding:12px 20px;border-radius:25px;background:#354c3b;color:#fff;border:1px solid #354c3b;font-size:12px}.intro .button{margin-top:16px}.project-preview{background:#e9e8dd;padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:12px;border-radius:4px}.project-preview figure{margin:0;min-width:0}.project-preview img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:2px}.project-preview figcaption{font-size:10px;margin-top:10px;line-height:1.5;color:#68735f}.section{padding:40px 36px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:25px}.section-heading h2{font-size:34px;margin:10px 0 0}.section-heading p{max-width:410px;font-size:12px}.spaces{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.space{margin:0}.space img{width:100%;aspect-ratio:2;object-fit:cover;border-radius:3px;display:block}.space figcaption{font-size:12px;padding:12px 0;color:#747c6c}.typologies{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.type-card{min-width:0;background:#fffdf8;border:1px solid #e0e3d6;border-radius:4px;overflow:hidden}.type-card img{display:block;width:100%;aspect-ratio:1.15;object-fit:cover}.type-copy{padding:18px}.type-copy h3{font-size:26px;margin:5px 0 8px}.type-copy .area{font-size:10px;letter-spacing:1px;color:#a0865f}.type-copy button,.type-copy a{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:44px;padding:10px 0;border:0;border-top:1px solid #e4e6dc;background:transparent;font-size:11px;margin-top:17px;text-align:left}.type-card.featured{border-color:#657956}.type-card.featured .type-copy{background:#edf0e5}.type-copy .tag{font-size:8px;letter-spacing:1px;text-transform:uppercase;color:#68795c;min-height:12px;display:block}.lumen-intro{background:#e9e8dd;margin:20px 36px 54px;padding:30px 34px;border-radius:5px;display:flex;align-items:center;justify-content:space-between;gap:24px}.lumen-intro h2{font-size:33px;margin:8px 0}.lumen-intro p{font-size:12px;max-width:620px}.lumen-intro .button{flex-shrink:0}footer{border-top:1px solid #dadfd0;padding:23px 36px;display:flex;justify-content:space-between;font-size:10px;color:#919681;gap:16px}dialog{border:1px solid #d9dfcd;border-radius:14px;padding:24px;width:min(520px,calc(100% - 32px));color:#354c3b;background:#fffdf7}dialog::backdrop{background:#1b2c2180}dialog header{height:auto;padding:0 0 14px;border:0}dialog h2{font-size:30px;margin:0}dialog .close{width:44px;height:44px;border:0;background:transparent;font-size:29px}dialog img{width:100%;max-height:52dvh;object-fit:contain;background:#edece3}dialog p{font-size:12px}dialog .button{margin-top:8px}[hidden]{display:none!important}html{scroll-behavior:smooth}
@media(max-width:760px){header{height:76px;padding:16px 20px}.brand{font-size:16px;letter-spacing:4px}.brand small{font-size:6px;letter-spacing:4px}.page-nav{gap:14px;font-size:11px}.intro{padding:36px 20px 20px;grid-template-columns:1fr;gap:28px}h1{letter-spacing:-1.2px;margin-top:14px}.intro p{font-size:13px}.project-preview{padding:12px;gap:10px}.section{padding:28px 20px}.section-heading{display:block}.section-heading h2{font-size:30px}.section-heading p{font-size:12px}.spaces{gap:10px}.space img{aspect-ratio:1}.space figcaption{font-size:10px}.typologies{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.type-copy{padding:12px}.type-copy h3{font-size:24px}.type-copy .tag{font-size:7px}.type-copy a,.type-copy button{font-size:10px}.lumen-intro{margin:16px 20px 36px;padding:24px;display:block}.lumen-intro .button{margin-top:12px}footer{padding:20px;font-size:9px}.lumen-intro h2{font-size:28px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.project-stage{height:650px;position:relative;overflow:hidden;border:1px solid #d9dfce;border-radius:8px;background:#e3e7dd;isolation:isolate}.project-stage>canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}.project-toolbar{position:absolute;top:12px;left:14px;right:14px;display:flex;align-items:center;justify-content:space-between;gap:10px;z-index:2;pointer-events:none;font-size:10px;color:#64775c}.project-toolbar>*{background:#fffdf5eb;border:1px solid #fff;padding:11px 14px;border-radius:24px;pointer-events:auto}.project-toolbar button{font-size:11px;min-height:42px}.project-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;background:#e8eade;z-index:4;color:#607459}.project-loading strong{font-size:14px;font-weight:500}.project-loading small{font-size:11px}.project-gesture{position:absolute;bottom:14px;left:18px;right:18px;color:#57654e;font-size:10px;text-shadow:0 1px 4px #fff;pointer-events:none}.project-data-note{font-size:10px;line-height:1.7;color:#929980}.project-data-note a{text-decoration:underline}#house-card{position:absolute;right:14px;top:70px;width:270px;max-height:calc(100% - 115px);overflow:auto;background:#fffdf7f5;border:1px solid #d8dfca;border-radius:14px;padding:15px;box-shadow:0 8px 24px #27402220;z-index:3;animation:house-card-in .3s ease-out}#house-card header{padding:0;height:auto;border:0}#house-card h3{font:23px Georgia,serif;margin:0}#house-close{border:0;background:none;width:36px;height:36px;font-size:25px}#house-card label{display:block;font-size:11px;margin-top:12px}#house-type{width:100%;min-height:42px;border:1px solid #d6dec9;border-radius:7px;padding:8px;background:#fffdf9;color:#40583e;font:12px 'DM Sans',sans-serif;margin-top:7px}#house-card h4{font:22px Georgia,serif;margin:15px 0 6px}#house-area{font-size:11px;color:#99815e}#house-preview{width:100%;height:130px;object-fit:cover;margin-top:13px;border-radius:5px}#house-reference{font-size:10px;line-height:1.6;margin:10px 0}#house-enter{font-size:10px;padding:10px 12px;width:100%;gap:8px}#project-tour-progress{position:absolute;bottom:46px;left:50%;transform:translateX(-50%);padding:14px 20px;background:#354c3bed;color:white;border-radius:24px;z-index:7;font-size:12px;max-width:90%;text-align:center}#project-tour-cancel{position:absolute;bottom:12px;right:14px;font-size:11px;border:0;background:#fffdf7ed;border-radius:20px;padding:8px 14px;z-index:7}#tour-overlay{position:fixed;inset:0;z-index:100;opacity:0;pointer-events:none;transition:opacity .55s ease;background:#ebe9df}#tour-overlay.visible{opacity:1;pointer-events:auto}#lumen-frame{border:0;width:100%;height:100%;display:block}body.tour-open{overflow:hidden}@keyframes house-card-in{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:none}}
@media(max-width:760px){.page-nav{gap:12px;font-size:10px}.project-stage{height:600px}.project-toolbar{left:8px;right:8px;top:8px;font-size:9px}.project-toolbar>*{padding:9px 10px}.project-toolbar button{font-size:10px}#house-card{top:auto;bottom:35px;left:8px;right:8px;width:auto;max-height:230px;padding:12px}#house-card h3{font-size:21px}#house-card h4{font-size:18px;margin:8px 0 4px}#house-preview{display:none}#house-type{font-size:16px;min-height:40px}#house-reference{margin:6px 0}#house-enter{margin-top:6px}#house-card label{margin-top:3px}.project-gesture{font-size:8px;left:10px;right:10px}.project-data-note{font-size:9px}#project-house-count{max-width:48%;line-height:1.5}}
@media(max-height:500px) and (orientation:landscape){.project-stage{height:440px}#house-card{left:auto;top:60px;bottom:auto;width:260px;max-height:340px}}
@media(prefers-reduced-motion:reduce){#tour-overlay{transition:none}#house-card{animation:none}}

#house-card{transition:opacity .3s,transform .3s}.project-stage.flying #house-card{opacity:0;transform:translateX(8px);pointer-events:none}@media(prefers-reduced-motion:reduce){#house-card{transition:none}}

#tour-bridge{position:fixed;inset:0;overflow:hidden;z-index:101;pointer-events:none}#tour-bridge img{display:block;max-width:none;transform-origin:0 0;will-change:transform}#tour-overlay{transition:opacity .24s ease}#house-card{transition:opacity .18s,transform .18s}.project-stage.flying #house-card{opacity:1;transform:none;pointer-events:auto}

.project-demo{padding:12px 0;border:0;background:none;font-size:12px;text-decoration:underline;text-underline-offset:4px}#exterior-stage{position:fixed;inset:0;z-index:90;background:#e9e5de;opacity:0;transition:opacity .34s ease;overflow:hidden}#exterior-stage.visible{opacity:1}.exterior-image{position:absolute;inset:0;display:grid;place-items:center}.exterior-image img{width:100%;height:100%;object-fit:contain;will-change:transform}.exterior-top{position:absolute;top:max(20px,env(safe-area-inset-top));left:28px;right:28px;display:flex;align-items:center;justify-content:space-between}.exterior-top button{border:1px solid #ffffffc9;background:#fffdf6e8;border-radius:24px;padding:12px 18px;font-size:12px;min-height:44px}.exterior-top span{letter-spacing:4px;font-size:11px;color:#40533f;text-shadow:0 1px 8px white}.exterior-caption{position:absolute;bottom:0;left:0;right:0;padding:65px 36px max(24px,env(safe-area-inset-bottom));display:flex;align-items:end;justify-content:space-between;gap:24px;background:linear-gradient(transparent,#f7f5efeb 68%)}.exterior-eyebrow{font-size:9px;letter-spacing:1.7px;color:#6a715e}.exterior-caption h2{font:40px Georgia,serif;margin:10px 0 5px}.exterior-caption p{font-size:12px;margin:0}.exterior-caption .button{min-height:48px;flex-shrink:0;box-shadow:0 5px 25px #27382720}.exterior-caption .button:disabled{opacity:.7;cursor:wait}body.exterior-open{overflow:hidden}
@media(max-width:760px){.exterior-image{inset:84px 0 170px}.exterior-image img{object-fit:contain}.exterior-top{left:16px;right:16px;top:max(14px,env(safe-area-inset-top))}.exterior-top span{font-size:8px;letter-spacing:2px}.exterior-caption{display:block;padding:30px 20px max(22px,env(safe-area-inset-bottom));background:linear-gradient(transparent,#e9e5de 25%)}.exterior-caption h2{font-size:32px}.exterior-caption .button{width:100%;margin-top:18px}.exterior-eyebrow{font-size:8px;letter-spacing:1px}.project-demo{font-size:11px}}
@media(max-height:500px) and (orientation:landscape){.exterior-image{inset:0}.exterior-caption{display:flex;padding:30px 20px 14px}.exterior-caption h2{font-size:26px}.exterior-top{top:10px}.exterior-caption .button{width:auto;margin:0}.exterior-caption p{font-size:10px}}
@media(prefers-reduced-motion:reduce){#exterior-stage{transition:none}}

.project-preview img[src*="renders-v18/conjunto"]{object-fit:contain;background:#e3e7dd}

#entry-loader{position:fixed;inset:0;z-index:110;background:#ebe9df;opacity:0;transition:opacity .28s ease;--entry-top:87px;--entry-bottom:75px}#entry-loader.visible{opacity:1}.entry-heading{height:var(--entry-top);display:flex;align-items:center;gap:24px;padding:0 28px;border-bottom:1px solid #d9d8ce;background:#eeebe3}.entry-heading button{font:11px 'DM Sans',sans-serif;border:1px solid #d4dacb;border-radius:24px;background:#fafaf4;padding:11px 16px;min-height:42px}.entry-heading>span{font:29px Georgia,serif;color:#354c3b}.entry-heading em{font-weight:400;color:#a0865f}#entry-viewport{position:absolute;overflow:hidden;background:#b7bdc0}#entry-image{position:absolute;display:block;max-width:none;max-height:none;transform-origin:center;will-change:opacity}.entry-bottom{position:absolute;bottom:0;left:0;right:0;height:var(--entry-bottom);background:#e9e8df}.entry-note{position:absolute;bottom:24px;left:24px;display:flex;align-items:center;gap:9px;padding:11px 15px;border-radius:24px;background:#f9f8f0e8;color:#43563d;font-size:11px;box-shadow:0 2px 12px #1a291112}.entry-dot{width:6px;height:6px;border-radius:50%;background:#7c8e62;animation:entry-pulse 1.3s ease-in-out infinite}#entry-viewport>small{position:absolute;bottom:26px;right:24px;color:white;text-shadow:0 1px 5px #172014;font-size:9px}#entry-retry{border:0;background:#405e46;color:white;border-radius:16px;padding:7px 12px}body.entry-open{overflow:hidden}@keyframes entry-pulse{50%{opacity:.35}}@media(max-width:760px){.entry-heading{padding:0 12px;gap:18px}.entry-heading>span{font-size:23px}.entry-heading button{min-height:38px;padding:8px 12px}.entry-note{bottom:38px;left:12px;font-size:10px;padding:10px 12px}#entry-viewport>small{right:12px;bottom:14px;font-size:8px}}@media(prefers-reduced-motion:reduce){#entry-loader{transition:none}.entry-dot{animation:none}}

.entry-video{position:absolute;display:block;max-width:none;max-height:none;object-fit:fill;pointer-events:none;opacity:0}

.project-stage.approaching #house-card{opacity:0;transform:translateY(8px);pointer-events:none}.project-stage.approaching canvas{pointer-events:none;transition:filter .2s ease}.project-stage.approach-blend canvas{filter:blur(1.5px)}

#project-transition{position:fixed;inset:0;z-index:105;outline:none;touch-action:none;overscroll-behavior:contain}.project-transition-backdrop,.project-transition-frame{position:absolute;inset:0}.project-transition-backdrop{background:#eeebe3}.project-transition-frame{overflow:hidden;pointer-events:none;will-change:clip-path}.project-transition-frame canvas{display:block;will-change:transform}.project-transition-cancel{position:absolute;top:max(16px,env(safe-area-inset-top));left:20px;min-height:42px;padding:10px 16px;border-radius:24px;border:1px solid #d4dacb;background:#fffdf5ed;color:#354c3b;font:12px 'DM Sans',sans-serif}

#entry-loader{transition:opacity .65s cubic-bezier(.22,1,.36,1)}
@media(prefers-reduced-motion:reduce){#entry-loader{transition:none}}

.project-toolbar,.project-gesture{transition:opacity .35s ease}.project-stage.approaching .project-toolbar,.project-stage.approaching .project-gesture{opacity:0;pointer-events:none}@media(prefers-reduced-motion:reduce){.project-toolbar,.project-gesture{transition:none}}

.intro .text-link{display:inline-flex;align-items:center;min-height:46px;margin:12px 0 0 18px;color:#354c3b;font-size:13px;text-underline-offset:5px}.project-data-note{max-width:850px;font-size:12px;line-height:1.7;color:#697262}.type-card .tag{letter-spacing:.04em}.lumen-intro p{max-width:620px;margin-left:auto;margin-right:auto}@media(max-width:600px){.intro .text-link{margin:8px 0 0;display:flex}.intro h1{font-size:clamp(38px,10vw,54px)}header nav{gap:12px;font-size:11px}.project-data-note{padding:0 4px}.lumen-intro{padding:38px 20px}.type-card .tag{font-size:9px}}

.project-preview img{height:auto;aspect-ratio:1;object-fit:cover}.project-preview figure:first-child{grid-column:1/-1}.project-preview figure:first-child img{aspect-ratio:1.6}.project-preview figure:nth-child(2){display:none}

/* Approved typology previews: a single shared canvas and compact touch layout. */
#type-dialog{width:min(900px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:20px;box-sizing:border-box;overflow:auto}#type-dialog header{display:flex;align-items:center;justify-content:space-between;gap:16px}#type-dialog header h2{margin:0}#type-dialog .close{flex:0 0 42px;width:42px;height:42px}#type-dialog #type-image[hidden],#type-preview[hidden]{display:none}.type-switcher{display:flex;gap:6px;margin:12px 0}.type-switcher button{border:1px solid #d6d9cd;border-radius:20px;padding:9px 15px;background:transparent;color:inherit;cursor:pointer}.type-switcher [aria-pressed=true]{background:#385340;color:white}#type-preview{position:relative;border-radius:16px;overflow:hidden;background:#e8e9e1}#type-model{height:clamp(280px,49dvh,520px);width:100%;position:relative;touch-action:none}#type-model canvas{width:100%!important;height:100%!important;display:block;opacity:0;transition:opacity .25s ease}#type-model.three-ready canvas{opacity:1}#type-status{position:absolute;inset:45% 24px auto;text-align:center;pointer-events:none;font-size:13px;color:#415141}#type-reset{position:absolute;top:12px;right:12px;border:0;border-radius:50%;background:#fffdf3df;width:42px;height:42px;font-size:23px;cursor:pointer}.type-gesture{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#fffdf3df;border-radius:20px;padding:7px 12px;font-size:11px;pointer-events:none}#type-dialog>p{font-size:13px;margin:12px 0}#type-dialog>p strong{font-size:16px}#type-dialog>.button{font-size:13px;padding:11px 16px}@media(max-width:600px){#type-dialog{padding:14px;border-radius:20px}#type-dialog h2{font-size:24px}#type-model{height:clamp(230px,43dvh,420px)}#type-dialog>.button{display:flex;justify-content:center}.type-gesture{font-size:10px}}@media(prefers-reduced-motion:reduce){#type-model canvas{transition:none}}

@media(orientation:landscape) and (max-height:500px){#type-model{height:52dvh;min-height:180px}#type-dialog header{position:sticky;top:-14px;background:#fffdf3;z-index:3}}

#type-model{background-size:contain;background-position:center;background-repeat:no-repeat}#type-status{inset:12px auto auto 12px;background:#fffdf3e8;border-radius:12px;padding:6px 10px;max-width:75%;text-align:left}#type-status:empty{display:none}#type-dialog[open]{animation:type-appear .2s ease-out}@keyframes type-appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){#type-dialog[open]{animation:none}}
